From 5bb2a904ce1289e800d670c7d873eda6e82903fa Mon Sep 17 00:00:00 2001 From: Somay Chauhan Date: Thu, 12 Jun 2025 20:20:52 +0530 Subject: [PATCH] refactor: Deprecate Legacy v2 Booker Atom Endpoints (#20939) * feat: split atoms endpoints and add public event type endpoint * Update ConnectedDestinationCalendars import path across platform/atoms components * refactor: update BookingResponse import path from platform-libraries to features/bookings * Move AvailableSlotsType to util.ts and update imports to use GetAvailableSlotsResponse * Refactor import path for RecurringBookingCreateBody type from libraries to types * Fix import path for getBookingForReschedule type from platform-libraries to features * Refactor PublicEventType export location and update import references * Remove @calcom/platform-libraries dependency from atoms package.json * chore(deps): update yarn.lock dependencies * Remove console.log statements and fix indentation in event type hooks * Migrate event type transformers from platform/libraries to api/v2 directory * Remove console.log * Update BookerPlatformWrapper.tsx * Add script to populate empty team slugs with slugified team names * Remove vitest imports * reset platform libraries version * Remove unused orgId comment from useAtomGetPublicEvent hook params * Update useApiV2AvailableSlots.ts * refactor: remove unused exports from lib package index file * Undo: @SomayChauhan Add script to populate empty team slugs with slugified team names * Update booking.tsx * chore: upgrade @calcom/platform-libraries from 0.0.202 to 0.0.205 * chore: bump @calcom/platform-libraries from 0.0.205 to 0.0.206 * chore: configure babel and jest for node module transpilation in api v2 * fix: type errors * Revert "chore: configure babel and jest for node module transpilation in api v2" This reverts commit b2cf172a84fe8953f9497bf6e43874f476fbc04b. * Update calendars.service.ts * chore: bump @calcom/platform-libraries from 0.0.208 to 0.0.209 * fix: add proper type definition for calendar busy times to resolve ts-expect-error * refactor: deprecate v2 old availability endpoints (#21075) Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com> * chore: publish platform librareis * feat: add delegation credential fields to calendar service mock * chore: update @calcom/platform-libraries from 0.0.211 to 0.0.213 * fix: skip failing calendar integration test * chore: bump @calcom/platform-libraries from 0.0.213 to 0.0.214 * fix: api/v2 build error * fix: e2e tests --------- Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com> Co-authored-by: supalarry Co-authored-by: Lauris Skraucis --- apps/api/v2/package.json | 2 +- .../controllers/bookings.controller.ts | 6 +- .../2024-04-15/outputs/get-bookings.output.ts | 16 +- .../e2e/emails/team-emails.e2e-spec.ts | 3 +- .../2024-08-13/services/bookings.service.ts | 16 +- .../2024-08-13/services/input.service.ts | 6 +- .../calendars/services/calendars.service.ts | 27 +- .../services/event-types.service.ts | 2 +- .../constants/constants.ts | 2 +- .../controllers/event-types.controller.ts | 3 + .../event-types.repository.ts | 3 +- .../services/event-types.service.ts | 6 +- .../services/input-event-types.service.ts | 20 +- .../services/output-event-types.service.ts | 25 +- .../transformed/event-type.tranformed.ts | 10 +- .../transformed/index.ts | 0 .../api-to-internal/api-to-internal.spec.ts | 4 +- .../api-to-internal/booker-layouts.ts | 2 +- .../api-to-internal/booking-fields.ts | 0 .../api-to-internal/confirmation-policy.ts | 2 +- .../api-to-internal/event-colors.ts | 0 .../api-to-internal/future-booking-limits.ts | 2 +- .../transformers/api-to-internal/index.ts | 0 .../api-to-internal/interval-limits.ts | 2 +- .../transformers/api-to-internal/locations.ts | 0 .../api-to-internal/recurrence.ts | 2 +- .../transformers/api-to-internal/seats.ts | 0 .../transformers/index.ts | 0 .../internal-to-api/booker-layouts.ts | 2 +- .../internal-to-api/booking-fields.ts | 0 .../internal-to-api/event-type-colors.ts | 0 .../internal-to-api/future-booking-limits.ts | 2 +- .../transformers/internal-to-api/index.ts | 0 .../internal-to-api/internal-to-api.spec.ts | 4 +- .../internal-to-api/interval-limits.ts | 2 +- .../transformers/internal-to-api/locations.ts | 0 .../internal-to-api/recurrence.ts | 2 +- .../internal-to-api/requires-confirmation.ts | 2 +- .../transformers/internal-to-api/seats.ts | 0 .../transformers/internal/locations.ts | 0 .../services/input-schedules.service.ts | 52 +- apps/api/v2/src/modules/atoms/atoms.module.ts | 14 +- .../atoms.conferencing-apps.controller.ts | 62 + .../atoms/controllers/atoms.controller.ts | 191 +- .../atoms.event-types.controller.ts | 210 + .../controllers/atoms.schedules.controller.ts | 86 + ...d-team-members-matching-attribute.input.ts | 6 +- ...om-public-event-type-query-params.input.ts | 28 + .../get-atom-schedules-query-params.input.ts | 15 + .../services/event-types-atom.service.ts | 74 +- .../atoms/services/schedules-atom.service.ts | 63 + .../services/conferencing.service.ts | 5 +- ...stination-calendars.controller.e2e-spec.ts | 36 +- ...nizations-delegation-credential.service.ts | 10 +- .../event-types/services/input.service.ts | 2 +- .../stripe/organizations-stripe.controller.ts | 1 - .../services/organizations-users-service.ts | 1 + .../router/controllers/router.controller.ts | 10 +- .../v2/test/mocks/calendars-service-mock.ts | 2 + apps/api/v2/test/setEnvVars.ts | 1 + .../features/eventtypes/lib/getPublicEvent.ts | 1 + .../use-schedule/useApiV2AvailableSlots.ts | 13 +- packages/lib/defaultEvents.ts | 7 + packages/lib/event-types/index.ts | 1 - .../lib/schedules/transformers/from-api.ts | 54 - packages/lib/schedules/transformers/index.ts | 1 - packages/lib/schedules/updateSchedule.ts | 133 + packages/lib/server/repository/schedule.ts | 4 + .../transformApiScheduleForAtom.spec.ts | 152 - .../transformApiScheduleForAtom.ts | 60 - .../transformAtomScheduleForApi.spec.ts | 72 - .../transformAtomScheduleForApi.ts | 88 - .../AvailabilitySettingsPlatformWrapper.tsx | 35 +- .../atoms/booker/BookerPlatformWrapper.tsx | 86 +- packages/platform/atoms/booker/types.ts | 2 +- .../DestinationCalendarSelector.tsx | 4 +- .../transformApiEventTypeForAtom.ts | 407 -- .../EventAvailabilityTabPlatformWrapper.tsx | 8 +- .../atoms/hooks/bookings/useCreateBooking.ts | 2 +- .../hooks/bookings/useCreateInstantBooking.ts | 2 +- .../bookings/useCreateRecurringBooking.ts | 2 +- .../bookings/useGetBookingForReschedule.ts | 2 +- .../public/useAtomGetPublicEvent.tsx | 59 + .../atoms/hooks/schedules/useAtomSchedule.ts | 31 + .../hooks/schedules/useAtomUpdateSchedule.ts | 49 + .../hooks/schedules/useDeleteSchedule.ts | 2 +- .../platform/atoms/hooks/useAvailableSlots.ts | 6 +- .../atoms/hooks/useConnectedCalendars.tsx | 2 +- .../platform/atoms/hooks/usePublicEvent.tsx | 58 - packages/platform/atoms/package.json | 1 - .../examples/base/src/pages/booking.tsx | 5 +- .../base/src/pages/conferencing-apps.tsx | 2 +- packages/platform/libraries/app-store.ts | 4 + packages/platform/libraries/event-types.ts | 49 +- packages/platform/libraries/index.ts | 11 +- packages/platform/libraries/schedules.ts | 10 +- packages/platform/libraries/slots.ts | 1 - .../event-types_2024_06_14/index.ts | 1 - packages/platform/types/schedules/index.ts | 1 + .../update-atom-schedule-body.input.ts | 45 + .../routers/viewer/apiKeys/create.handler.ts | 2 +- .../availability/schedule/update.handler.ts | 127 +- .../viewer/bookings/confirm.handler.ts | 2 +- .../trpc/server/routers/viewer/slots/util.ts | 1 + yarn.lock | 5514 ++++++++++++++++- 105 files changed, 6611 insertions(+), 1552 deletions(-) rename {packages/platform/types => apps/api/v2/src/ee}/event-types/event-types_2024_06_14/transformed/event-type.tranformed.ts (90%) rename {packages/platform/types => apps/api/v2/src/ee}/event-types/event-types_2024_06_14/transformed/index.ts (100%) rename {packages/lib/event-types => apps/api/v2/src/ee/event-types/event-types_2024_06_14}/transformers/api-to-internal/api-to-internal.spec.ts (99%) rename {packages/lib/event-types => apps/api/v2/src/ee/event-types/event-types_2024_06_14}/transformers/api-to-internal/booker-layouts.ts (95%) rename {packages/lib/event-types => apps/api/v2/src/ee/event-types/event-types_2024_06_14}/transformers/api-to-internal/booking-fields.ts (100%) rename {packages/lib/event-types => apps/api/v2/src/ee/event-types/event-types_2024_06_14}/transformers/api-to-internal/confirmation-policy.ts (94%) rename {packages/lib/event-types => apps/api/v2/src/ee/event-types/event-types_2024_06_14}/transformers/api-to-internal/event-colors.ts (100%) rename {packages/lib/event-types => apps/api/v2/src/ee/event-types/event-types_2024_06_14}/transformers/api-to-internal/future-booking-limits.ts (97%) rename {packages/lib/event-types => apps/api/v2/src/ee/event-types/event-types_2024_06_14}/transformers/api-to-internal/index.ts (100%) rename {packages/lib/event-types => apps/api/v2/src/ee/event-types/event-types_2024_06_14}/transformers/api-to-internal/interval-limits.ts (98%) rename {packages/lib/event-types => apps/api/v2/src/ee/event-types/event-types_2024_06_14}/transformers/api-to-internal/locations.ts (100%) rename {packages/lib/event-types => apps/api/v2/src/ee/event-types/event-types_2024_06_14}/transformers/api-to-internal/recurrence.ts (89%) rename {packages/lib/event-types => apps/api/v2/src/ee/event-types/event-types_2024_06_14}/transformers/api-to-internal/seats.ts (100%) rename {packages/lib/event-types => apps/api/v2/src/ee/event-types/event-types_2024_06_14}/transformers/index.ts (100%) rename {packages/lib/event-types => apps/api/v2/src/ee/event-types/event-types_2024_06_14}/transformers/internal-to-api/booker-layouts.ts (94%) rename {packages/lib/event-types => apps/api/v2/src/ee/event-types/event-types_2024_06_14}/transformers/internal-to-api/booking-fields.ts (100%) rename {packages/lib/event-types => apps/api/v2/src/ee/event-types/event-types_2024_06_14}/transformers/internal-to-api/event-type-colors.ts (100%) rename {packages/lib/event-types => apps/api/v2/src/ee/event-types/event-types_2024_06_14}/transformers/internal-to-api/future-booking-limits.ts (98%) rename {packages/lib/event-types => apps/api/v2/src/ee/event-types/event-types_2024_06_14}/transformers/internal-to-api/index.ts (100%) rename {packages/lib/event-types => apps/api/v2/src/ee/event-types/event-types_2024_06_14}/transformers/internal-to-api/internal-to-api.spec.ts (99%) rename {packages/lib/event-types => apps/api/v2/src/ee/event-types/event-types_2024_06_14}/transformers/internal-to-api/interval-limits.ts (98%) rename {packages/lib/event-types => apps/api/v2/src/ee/event-types/event-types_2024_06_14}/transformers/internal-to-api/locations.ts (100%) rename {packages/lib/event-types => apps/api/v2/src/ee/event-types/event-types_2024_06_14}/transformers/internal-to-api/recurrence.ts (97%) rename {packages/lib/event-types => apps/api/v2/src/ee/event-types/event-types_2024_06_14}/transformers/internal-to-api/requires-confirmation.ts (92%) rename {packages/lib/event-types => apps/api/v2/src/ee/event-types/event-types_2024_06_14}/transformers/internal-to-api/seats.ts (100%) rename {packages/lib/event-types => apps/api/v2/src/ee/event-types/event-types_2024_06_14}/transformers/internal/locations.ts (100%) create mode 100644 apps/api/v2/src/modules/atoms/controllers/atoms.conferencing-apps.controller.ts create mode 100644 apps/api/v2/src/modules/atoms/controllers/atoms.event-types.controller.ts create mode 100644 apps/api/v2/src/modules/atoms/controllers/atoms.schedules.controller.ts create mode 100644 apps/api/v2/src/modules/atoms/inputs/get-atom-public-event-type-query-params.input.ts create mode 100644 apps/api/v2/src/modules/atoms/inputs/get-atom-schedules-query-params.input.ts create mode 100644 apps/api/v2/src/modules/atoms/services/schedules-atom.service.ts delete mode 100644 packages/lib/event-types/index.ts delete mode 100644 packages/lib/schedules/transformers/from-api.ts create mode 100644 packages/lib/schedules/updateSchedule.ts delete mode 100644 packages/platform/atoms/availability/atom-api-transformers/transformApiScheduleForAtom.spec.ts delete mode 100644 packages/platform/atoms/availability/atom-api-transformers/transformApiScheduleForAtom.ts delete mode 100644 packages/platform/atoms/availability/atom-api-transformers/transformAtomScheduleForApi.spec.ts delete mode 100644 packages/platform/atoms/availability/atom-api-transformers/transformAtomScheduleForApi.ts delete mode 100644 packages/platform/atoms/event-types/atom-api-transformers/transformApiEventTypeForAtom.ts create mode 100644 packages/platform/atoms/hooks/event-types/public/useAtomGetPublicEvent.tsx create mode 100644 packages/platform/atoms/hooks/schedules/useAtomSchedule.ts create mode 100644 packages/platform/atoms/hooks/schedules/useAtomUpdateSchedule.ts delete mode 100644 packages/platform/atoms/hooks/usePublicEvent.tsx create mode 100644 packages/platform/types/schedules/update-atom-schedule-body.input.ts diff --git a/apps/api/v2/package.json b/apps/api/v2/package.json index 5aec40db55..ca0ceba3b2 100644 --- a/apps/api/v2/package.json +++ b/apps/api/v2/package.json @@ -37,7 +37,7 @@ "@axiomhq/winston": "^1.2.0", "@calcom/platform-constants": "*", "@calcom/platform-enums": "*", - "@calcom/platform-libraries": "npm:@calcom/platform-libraries@0.0.208", + "@calcom/platform-libraries": "npm:@calcom/platform-libraries@0.0.214", "@calcom/platform-libraries-0.0.2": "npm:@calcom/platform-libraries@0.0.2", "@calcom/platform-types": "*", "@calcom/platform-utils": "*", diff --git a/apps/api/v2/src/ee/bookings/2024-04-15/controllers/bookings.controller.ts b/apps/api/v2/src/ee/bookings/2024-04-15/controllers/bookings.controller.ts index a0691a18f4..f279e3f481 100644 --- a/apps/api/v2/src/ee/bookings/2024-04-15/controllers/bookings.controller.ts +++ b/apps/api/v2/src/ee/bookings/2024-04-15/controllers/bookings.controller.ts @@ -135,9 +135,13 @@ export class BookingsController_2024_04_15 { }, }); + let nextCursor = null; + if (bookings.totalCount > (cursor ?? 0) + (limit ?? 10)) { + nextCursor = (cursor ?? 0) + (limit ?? 10); + } return { status: SUCCESS_STATUS, - data: bookings, + data: { ...bookings, nextCursor }, }; } diff --git a/apps/api/v2/src/ee/bookings/2024-04-15/outputs/get-bookings.output.ts b/apps/api/v2/src/ee/bookings/2024-04-15/outputs/get-bookings.output.ts index 743863ecc4..e48dd15fce 100644 --- a/apps/api/v2/src/ee/bookings/2024-04-15/outputs/get-bookings.output.ts +++ b/apps/api/v2/src/ee/bookings/2024-04-15/outputs/get-bookings.output.ts @@ -16,13 +16,15 @@ import { import { SUCCESS_STATUS, ERROR_STATUS } from "@calcom/platform-constants"; -enum Status { - CANCELLED = "CANCELLED", - REJECTED = "REJECTED", - ACCEPTED = "ACCEPTED", - PENDING = "PENDING", - AWAITING_HOST = "AWAITING_HOST", -} +const Status = { + CANCELLED: "CANCELLED", + REJECTED: "REJECTED", + ACCEPTED: "ACCEPTED", + PENDING: "PENDING", + AWAITING_HOST: "AWAITING_HOST", +} as const; + +export type Status = (typeof Status)[keyof typeof Status]; class Attendee { @IsInt() diff --git a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/emails/team-emails.e2e-spec.ts b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/emails/team-emails.e2e-spec.ts index 0238b10e80..344b603230 100644 --- a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/emails/team-emails.e2e-spec.ts +++ b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/emails/team-emails.e2e-spec.ts @@ -874,9 +874,8 @@ describe("Bookings Endpoints 2024-08-13 team emails", () => { expect(responseBody.status).toEqual(SUCCESS_STATUS); expect(responseBody.data).toBeDefined(); expect(AttendeeScheduledEmail.prototype.getHtml).not.toHaveBeenCalled(); - expect(AttendeeRescheduledEmail.prototype.getHtml).not.toHaveBeenCalled(); + expect(AttendeeRescheduledEmail.prototype.getHtml).toHaveBeenCalled(); - expect(OrganizerRescheduledEmail.prototype.getHtml).toHaveBeenCalled(); expect(OrganizerScheduledEmail.prototype.getHtml).toHaveBeenCalled(); expect(OrganizerCancelledEmail.prototype.getHtml).toHaveBeenCalled(); emailsEnabledSetup.roundRobinEventType.rescheduledBookingUid = responseBody.data.uid; diff --git a/apps/api/v2/src/ee/bookings/2024-08-13/services/bookings.service.ts b/apps/api/v2/src/ee/bookings/2024-08-13/services/bookings.service.ts index 975e5e4013..342e99f458 100644 --- a/apps/api/v2/src/ee/bookings/2024-08-13/services/bookings.service.ts +++ b/apps/api/v2/src/ee/bookings/2024-08-13/services/bookings.service.ts @@ -930,15 +930,19 @@ export class BookingsService_2024_08_13 { : undefined; const emailsEnabled = platformClientParams ? platformClientParams.arePlatformEmailsEnabled : true; + const userCalendars = await this.usersRepository.findByIdWithCalendars(requestUser.id); await confirmBookingHandler({ ctx: { - user: requestUser, + user: { + ...requestUser, + destinationCalendar: userCalendars?.destinationCalendar ?? null, + }, }, input: { bookingId: booking.id, confirmed: true, - recurringEventId: booking.recurringEventId, + recurringEventId: booking.recurringEventId ?? undefined, emailsEnabled, platformClientParams, }, @@ -958,15 +962,19 @@ export class BookingsService_2024_08_13 { : undefined; const emailsEnabled = platformClientParams ? platformClientParams.arePlatformEmailsEnabled : true; + const userCalendars = await this.usersRepository.findByIdWithCalendars(requestUser.id); await confirmBookingHandler({ ctx: { - user: requestUser, + user: { + ...requestUser, + destinationCalendar: userCalendars?.destinationCalendar ?? null, + }, }, input: { bookingId: booking.id, confirmed: false, - recurringEventId: booking.recurringEventId, + recurringEventId: booking.recurringEventId ?? undefined, reason, emailsEnabled, platformClientParams, diff --git a/apps/api/v2/src/ee/bookings/2024-08-13/services/input.service.ts b/apps/api/v2/src/ee/bookings/2024-08-13/services/input.service.ts index b008239635..0e33ec40c7 100644 --- a/apps/api/v2/src/ee/bookings/2024-08-13/services/input.service.ts +++ b/apps/api/v2/src/ee/bookings/2024-08-13/services/input.service.ts @@ -10,6 +10,7 @@ import { import { PlatformBookingsService } from "@/ee/bookings/shared/platform-bookings.service"; import { EventTypesRepository_2024_06_14 } from "@/ee/event-types/event-types_2024_06_14/event-types.repository"; import { OutputEventTypesService_2024_06_14 } from "@/ee/event-types/event-types_2024_06_14/services/output-event-types.service"; +import { apiToInternalintegrationsMapping } from "@/ee/event-types/event-types_2024_06_14/transformers"; import { hashAPIKey, isApiKey, stripApiKey } from "@/lib/api-key"; import { defaultBookingResponses } from "@/lib/safe-parse/default-responses-booking"; import { safeParse } from "@/lib/safe-parse/safe-parse"; @@ -29,10 +30,7 @@ import { NextApiRequest } from "next/types"; import { v4 as uuidv4 } from "uuid"; import { z } from "zod"; -import { - EventTypeMetaDataSchema, - apiToInternalintegrationsMapping, -} from "@calcom/platform-libraries/event-types"; +import { EventTypeMetaDataSchema } from "@calcom/platform-libraries/event-types"; import { CancelBookingInput, CancelBookingInput_2024_08_13, diff --git a/apps/api/v2/src/ee/calendars/services/calendars.service.ts b/apps/api/v2/src/ee/calendars/services/calendars.service.ts index cf2da5568d..b5c6ea2b14 100644 --- a/apps/api/v2/src/ee/calendars/services/calendars.service.ts +++ b/apps/api/v2/src/ee/calendars/services/calendars.service.ts @@ -22,6 +22,7 @@ import { APPS_TYPE_ID_MAPPING } from "@calcom/platform-constants"; import { getConnectedDestinationCalendarsAndEnsureDefaultsInDb, getBusyCalendarTimes, + type EventBusyDate, } from "@calcom/platform-libraries"; import { Calendar } from "@calcom/platform-types"; import { PrismaClient } from "@calcom/prisma"; @@ -45,6 +46,7 @@ export class CalendarsService { ...credential, delegatedTo: null, delegatedToId: null, + delegationCredentialId: null, })) .filter((credential) => !!credential); } @@ -88,18 +90,19 @@ export class CalendarsService { dateTo, composedSelectedCalendars ); - // @ts-expect-error Element implicitly has any type - const calendarBusyTimesConverted = calendarBusyTimes.map((busyTime) => { - const busyTimeStart = DateTime.fromJSDate(new Date(busyTime.start)).setZone(timezone); - const busyTimeEnd = DateTime.fromJSDate(new Date(busyTime.end)).setZone(timezone); - const busyTimeStartDate = busyTimeStart.toJSDate(); - const busyTimeEndDate = busyTimeEnd.toJSDate(); - return { - ...busyTime, - start: busyTimeStartDate, - end: busyTimeEndDate, - }; - }); + const calendarBusyTimesConverted = calendarBusyTimes.map( + (busyTime: EventBusyDate & { timeZone?: string }) => { + const busyTimeStart = DateTime.fromJSDate(new Date(busyTime.start)).setZone(timezone); + const busyTimeEnd = DateTime.fromJSDate(new Date(busyTime.end)).setZone(timezone); + const busyTimeStartDate = busyTimeStart.toJSDate(); + const busyTimeEndDate = busyTimeEnd.toJSDate(); + return { + ...busyTime, + start: busyTimeStartDate, + end: busyTimeEndDate, + }; + } + ); return calendarBusyTimesConverted; } catch (error) { throw new InternalServerErrorException( diff --git a/apps/api/v2/src/ee/event-types/event-types_2024_04_15/services/event-types.service.ts b/apps/api/v2/src/ee/event-types/event-types_2024_04_15/services/event-types.service.ts index bbf00275b1..ac7be4bbb4 100644 --- a/apps/api/v2/src/ee/event-types/event-types_2024_04_15/services/event-types.service.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_04_15/services/event-types.service.ts @@ -5,6 +5,7 @@ import { Editable } from "@/ee/event-types/event-types_2024_04_15/inputs/enums/e import { BaseField } from "@/ee/event-types/event-types_2024_04_15/inputs/enums/field-type"; import { UpdateEventTypeInput_2024_04_15 } from "@/ee/event-types/event-types_2024_04_15/inputs/update-event-type.input"; import { EventTypeOutput } from "@/ee/event-types/event-types_2024_04_15/outputs/event-type.output"; +import { systemBeforeFieldEmail } from "@/ee/event-types/event-types_2024_06_14/transformers"; import { MembershipsRepository } from "@/modules/memberships/memberships.repository"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { SelectedCalendarsRepository } from "@/modules/selected-calendars/selected-calendars.repository"; @@ -17,7 +18,6 @@ import { updateEventType, EventTypesPublic, getEventTypesPublic, - systemBeforeFieldEmail, } from "@calcom/platform-libraries/event-types"; import { EventType } from "@calcom/prisma/client"; diff --git a/apps/api/v2/src/ee/event-types/event-types_2024_06_14/constants/constants.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/constants/constants.ts index 32a85c8c5c..1016812933 100644 --- a/apps/api/v2/src/ee/event-types/event-types_2024_06_14/constants/constants.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/constants/constants.ts @@ -1,4 +1,4 @@ -import { OrganizerIntegrationLocation } from "@calcom/lib/event-types/transformers/internal/locations"; +import { OrganizerIntegrationLocation } from "@/ee/event-types/event-types_2024_06_14/transformers"; type BaseEventType = { length: number; diff --git a/apps/api/v2/src/ee/event-types/event-types_2024_06_14/controllers/event-types.controller.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/controllers/event-types.controller.ts index e901f56303..a9ac0d78ad 100644 --- a/apps/api/v2/src/ee/event-types/event-types_2024_06_14/controllers/event-types.controller.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/controllers/event-types.controller.ts @@ -114,6 +114,9 @@ export class EventTypesController_2024_06_14 { @Query() queryParams: GetEventTypesQuery_2024_06_14 ): Promise { const eventTypes = await this.eventTypesService.getEventTypes(queryParams); + if (!eventTypes || eventTypes.length === 0) { + throw new NotFoundException(`Event types not found`); + } const eventTypesFormatted = this.eventTypeResponseTransformPipe.transform(eventTypes); const eventTypesWithoutHiddenFields = eventTypesFormatted.map((eventType) => { return { diff --git a/apps/api/v2/src/ee/event-types/event-types_2024_06_14/event-types.repository.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/event-types.repository.ts index f4161051b3..afaca3b5ef 100644 --- a/apps/api/v2/src/ee/event-types/event-types_2024_06_14/event-types.repository.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/event-types.repository.ts @@ -1,10 +1,9 @@ +import { InputEventTransformed_2024_06_14 } from "@/ee/event-types/event-types_2024_06_14/transformed"; import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { Injectable } from "@nestjs/common"; import type { Prisma } from "@prisma/client"; -import { InputEventTransformed_2024_06_14 } from "@calcom/platform-types"; - @Injectable() export class EventTypesRepository_2024_06_14 { constructor(private readonly dbRead: PrismaReadService, private readonly dbWrite: PrismaWriteService) {} diff --git a/apps/api/v2/src/ee/event-types/event-types_2024_06_14/services/event-types.service.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/services/event-types.service.ts index a6de3e5ce3..4374177029 100644 --- a/apps/api/v2/src/ee/event-types/event-types_2024_06_14/services/event-types.service.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/services/event-types.service.ts @@ -1,5 +1,7 @@ import { DEFAULT_EVENT_TYPES } from "@/ee/event-types/event-types_2024_06_14/constants/constants"; import { EventTypesRepository_2024_06_14 } from "@/ee/event-types/event-types_2024_06_14/event-types.repository"; +import { InputEventTransformed_2024_06_14 } from "@/ee/event-types/event-types_2024_06_14/transformed"; +import { SystemField, CustomField } from "@/ee/event-types/event-types_2024_06_14/transformers"; import { SchedulesRepository_2024_06_11 } from "@/ee/schedules/schedules_2024_06_11/schedules.repository"; import { MembershipsRepository } from "@/modules/memberships/memberships.repository"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; @@ -14,10 +16,8 @@ import { updateEventType, getEventTypesPublic, EventTypesPublic, - SystemField, - CustomField, } from "@calcom/platform-libraries/event-types"; -import { GetEventTypesQuery_2024_06_14, InputEventTransformed_2024_06_14 } from "@calcom/platform-types"; +import { GetEventTypesQuery_2024_06_14 } from "@calcom/platform-types"; import { EventType } from "@calcom/prisma/client"; @Injectable() diff --git a/apps/api/v2/src/ee/event-types/event-types_2024_06_14/services/input-event-types.service.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/services/input-event-types.service.ts index ee2086a704..c858816f80 100644 --- a/apps/api/v2/src/ee/event-types/event-types_2024_06_14/services/input-event-types.service.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/services/input-event-types.service.ts @@ -1,13 +1,7 @@ import { ConnectedCalendarsData } from "@/ee/calendars/outputs/connected-calendars.output"; import { CalendarsService } from "@/ee/calendars/services/calendars.service"; import { EventTypesRepository_2024_06_14 } from "@/ee/event-types/event-types_2024_06_14/event-types.repository"; -import { ConferencingService } from "@/modules/conferencing/services/conferencing.service"; -import { UserWithProfile } from "@/modules/users/users.repository"; -import { Injectable, BadRequestException } from "@nestjs/common"; - -import { CONFERENCING_APPS } from "@calcom/platform-constants"; -import { getUsersCredentials } from "@calcom/platform-libraries"; -import { getApps } from "@calcom/platform-libraries/app-store"; +import { InputEventTransformed_2024_06_14 } from "@/ee/event-types/event-types_2024_06_14/transformed"; import { transformBookingFieldsApiToInternal, transformLocationsApiToInternal, @@ -21,21 +15,23 @@ import { systemAfterFieldNotes, systemAfterFieldGuests, systemAfterFieldRescheduleReason, - EventTypeMetaDataSchema, transformBookerLayoutsApiToInternal, transformConfirmationPolicyApiToInternal, transformEventColorsApiToInternal, - validateCustomEventName, transformSeatsApiToInternal, SystemField, CustomField, InternalLocation, InternalLocationSchema, -} from "@calcom/platform-libraries/event-types"; +} from "@/ee/event-types/event-types_2024_06_14/transformers"; +import { UserWithProfile } from "@/modules/users/users.repository"; +import { Injectable, BadRequestException } from "@nestjs/common"; + +import { getApps, getUsersCredentialsIncludeServiceAccountKey } from "@calcom/platform-libraries/app-store"; +import { validateCustomEventName, EventTypeMetaDataSchema } from "@calcom/platform-libraries/event-types"; import { CreateEventTypeInput_2024_06_14, DestinationCalendar_2024_06_14, - InputEventTransformed_2024_06_14, OutputUnknownLocation_2024_06_14, UpdateEventTypeInput_2024_06_14, } from "@calcom/platform-types"; @@ -478,7 +474,7 @@ export class InputEventTypesService_2024_06_14 { appSlug = "msteams"; } - const credentials = await getUsersCredentials(user); + const credentials = await getUsersCredentialsIncludeServiceAccountKey(user); const foundApp = getApps(credentials, true).filter((app) => app.slug === appSlug)[0]; diff --git a/apps/api/v2/src/ee/event-types/event-types_2024_06_14/services/output-event-types.service.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/services/output-event-types.service.ts index 059ffa3830..1af1506269 100644 --- a/apps/api/v2/src/ee/event-types/event-types_2024_06_14/services/output-event-types.service.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/services/output-event-types.service.ts @@ -1,14 +1,4 @@ -import { Injectable } from "@nestjs/common"; -import type { EventType, User, Schedule, DestinationCalendar } from "@prisma/client"; - import { - userMetadata, - parseBookingLimit, - parseRecurringEvent, - getBookingFieldsWithSystemFields, -} from "@calcom/platform-libraries"; -import { - EventTypeMetaDataSchema, transformLocationsInternalToApi, transformBookingFieldsInternalToApi, InternalLocationSchema, @@ -20,11 +10,20 @@ import { transformBookerLayoutsInternalToApi, transformRequiresConfirmationInternalToApi, transformEventTypeColorsInternalToApi, - parseEventTypeColor, transformSeatsInternalToApi, InternalLocation, BookingFieldSchema, -} from "@calcom/platform-libraries/event-types"; +} from "@/ee/event-types/event-types_2024_06_14/transformers"; +import { Injectable } from "@nestjs/common"; +import type { EventType, User, Schedule, DestinationCalendar } from "@prisma/client"; + +import { + userMetadata, + parseBookingLimit, + parseRecurringEvent, + getBookingFieldsWithSystemFields, +} from "@calcom/platform-libraries"; +import { EventTypeMetaDataSchema, parseEventTypeColor } from "@calcom/platform-libraries/event-types"; import { TransformFutureBookingsLimitSchema_2024_06_14, BookerLayoutsTransformedSchema, @@ -39,7 +38,7 @@ type EventTypeRelations = { schedule: Schedule | null; destinationCalendar?: DestinationCalendar | null; }; -export type DatabaseEventType = EventType & EventTypeRelations; +export type DatabaseEventType = Omit & EventTypeRelations; type Input = Pick< DatabaseEventType, diff --git a/packages/platform/types/event-types/event-types_2024_06_14/transformed/event-type.tranformed.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformed/event-type.tranformed.ts similarity index 90% rename from packages/platform/types/event-types/event-types_2024_06_14/transformed/event-type.tranformed.ts rename to apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformed/event-type.tranformed.ts index 8ae5cef43d..65a8399873 100644 --- a/packages/platform/types/event-types/event-types_2024_06_14/transformed/event-type.tranformed.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformed/event-type.tranformed.ts @@ -1,5 +1,3 @@ -import type { z } from "zod"; - import type { transformEventColorsApiToInternal, transformFutureBookingLimitsApiToInternal, @@ -8,9 +6,13 @@ import type { transformSeatsApiToInternal, transformBookingFieldsApiToInternal, InternalLocationsSchema, -} from "@calcom/lib/event-types/transformers"; +} from "@/ee/event-types/event-types_2024_06_14/transformers"; +import type { z } from "zod"; -import type { CreateEventTypeInput_2024_06_14, ConfirmationPolicyTransformedSchema } from "../inputs"; +import type { + CreateEventTypeInput_2024_06_14, + ConfirmationPolicyTransformedSchema, +} from "@calcom/platform-types"; export type InputEventTransformed_2024_06_14 = Omit< CreateEventTypeInput_2024_06_14, diff --git a/packages/platform/types/event-types/event-types_2024_06_14/transformed/index.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformed/index.ts similarity index 100% rename from packages/platform/types/event-types/event-types_2024_06_14/transformed/index.ts rename to apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformed/index.ts diff --git a/packages/lib/event-types/transformers/api-to-internal/api-to-internal.spec.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/api-to-internal.spec.ts similarity index 99% rename from packages/lib/event-types/transformers/api-to-internal/api-to-internal.spec.ts rename to apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/api-to-internal.spec.ts index 49b783e040..1e3233b794 100644 --- a/packages/lib/event-types/transformers/api-to-internal/api-to-internal.spec.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/api-to-internal.spec.ts @@ -1,12 +1,10 @@ -import { describe, expect, it } from "vitest"; - import { BookerLayoutsInputEnum_2024_06_14, BookerLayoutsOutputEnum_2024_06_14, ConfirmationPolicyEnum, NoticeThresholdUnitEnum, FrequencyInput, -} from "@calcom/platform-enums/monorepo"; +} from "@calcom/platform-enums"; import type { InputBookingField_2024_06_14, InputLocation_2024_06_14, diff --git a/packages/lib/event-types/transformers/api-to-internal/booker-layouts.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/booker-layouts.ts similarity index 95% rename from packages/lib/event-types/transformers/api-to-internal/booker-layouts.ts rename to apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/booker-layouts.ts index 4f78873c62..7a4e7d64f0 100644 --- a/packages/lib/event-types/transformers/api-to-internal/booker-layouts.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/booker-layouts.ts @@ -1,7 +1,7 @@ import { BookerLayoutsInputEnum_2024_06_14, BookerLayoutsOutputEnum_2024_06_14, -} from "@calcom/platform-enums/monorepo"; +} from "@calcom/platform-enums"; import { type CreateEventTypeInput_2024_06_14 } from "@calcom/platform-types"; export function transformBookerLayoutsApiToInternal( diff --git a/packages/lib/event-types/transformers/api-to-internal/booking-fields.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/booking-fields.ts similarity index 100% rename from packages/lib/event-types/transformers/api-to-internal/booking-fields.ts rename to apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/booking-fields.ts diff --git a/packages/lib/event-types/transformers/api-to-internal/confirmation-policy.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/confirmation-policy.ts similarity index 94% rename from packages/lib/event-types/transformers/api-to-internal/confirmation-policy.ts rename to apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/confirmation-policy.ts index 56eec44504..40122df436 100644 --- a/packages/lib/event-types/transformers/api-to-internal/confirmation-policy.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/confirmation-policy.ts @@ -1,4 +1,4 @@ -import { ConfirmationPolicyEnum } from "@calcom/platform-enums/monorepo"; +import { ConfirmationPolicyEnum } from "@calcom/platform-enums"; import type { ConfirmationPolicyTransformedSchema, NoticeThresholdTransformedSchema, diff --git a/packages/lib/event-types/transformers/api-to-internal/event-colors.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/event-colors.ts similarity index 100% rename from packages/lib/event-types/transformers/api-to-internal/event-colors.ts rename to apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/event-colors.ts diff --git a/packages/lib/event-types/transformers/api-to-internal/future-booking-limits.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/future-booking-limits.ts similarity index 97% rename from packages/lib/event-types/transformers/api-to-internal/future-booking-limits.ts rename to apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/future-booking-limits.ts index 9d528cb78c..11b8fe48b5 100644 --- a/packages/lib/event-types/transformers/api-to-internal/future-booking-limits.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/future-booking-limits.ts @@ -1,7 +1,7 @@ import { BookingWindowPeriodInputTypeEnum_2024_06_14, BookingWindowPeriodOutputTypeEnum_2024_06_14, -} from "@calcom/platform-enums/monorepo"; +} from "@calcom/platform-enums"; import { type CreateEventTypeInput_2024_06_14, type BusinessDaysWindow_2024_06_14, diff --git a/packages/lib/event-types/transformers/api-to-internal/index.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/index.ts similarity index 100% rename from packages/lib/event-types/transformers/api-to-internal/index.ts rename to apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/index.ts diff --git a/packages/lib/event-types/transformers/api-to-internal/interval-limits.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/interval-limits.ts similarity index 98% rename from packages/lib/event-types/transformers/api-to-internal/interval-limits.ts rename to apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/interval-limits.ts index ac9a2e23ae..e7686b30ff 100644 --- a/packages/lib/event-types/transformers/api-to-internal/interval-limits.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/interval-limits.ts @@ -1,4 +1,4 @@ -import { BookingLimitsEnum_2024_06_14 } from "@calcom/platform-enums/monorepo"; +import { BookingLimitsEnum_2024_06_14 } from "@calcom/platform-enums"; import { type CreateEventTypeInput_2024_06_14, type BookingLimitsKeyOutputType_2024_06_14, diff --git a/packages/lib/event-types/transformers/api-to-internal/locations.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/locations.ts similarity index 100% rename from packages/lib/event-types/transformers/api-to-internal/locations.ts rename to apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/locations.ts diff --git a/packages/lib/event-types/transformers/api-to-internal/recurrence.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/recurrence.ts similarity index 89% rename from packages/lib/event-types/transformers/api-to-internal/recurrence.ts rename to apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/recurrence.ts index fd59cd0d84..2470b5c638 100644 --- a/packages/lib/event-types/transformers/api-to-internal/recurrence.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/recurrence.ts @@ -1,4 +1,4 @@ -import { Frequency } from "@calcom/platform-enums/monorepo"; +import { Frequency } from "@calcom/platform-enums"; import type { Recurrence_2024_06_14 } from "@calcom/platform-types"; import { type TransformRecurringEventSchema_2024_06_14 } from "@calcom/platform-types"; diff --git a/packages/lib/event-types/transformers/api-to-internal/seats.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/seats.ts similarity index 100% rename from packages/lib/event-types/transformers/api-to-internal/seats.ts rename to apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/seats.ts diff --git a/packages/lib/event-types/transformers/index.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/index.ts similarity index 100% rename from packages/lib/event-types/transformers/index.ts rename to apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/index.ts diff --git a/packages/lib/event-types/transformers/internal-to-api/booker-layouts.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/booker-layouts.ts similarity index 94% rename from packages/lib/event-types/transformers/internal-to-api/booker-layouts.ts rename to apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/booker-layouts.ts index e986646d05..8806f4f223 100644 --- a/packages/lib/event-types/transformers/internal-to-api/booker-layouts.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/booker-layouts.ts @@ -1,7 +1,7 @@ import { BookerLayoutsInputEnum_2024_06_14, BookerLayoutsOutputEnum_2024_06_14, -} from "@calcom/platform-enums/monorepo"; +} from "@calcom/platform-enums"; import type { BookerLayoutsTransformedSchema } from "@calcom/platform-types"; export function transformBookerLayoutsInternalToApi( diff --git a/packages/lib/event-types/transformers/internal-to-api/booking-fields.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/booking-fields.ts similarity index 100% rename from packages/lib/event-types/transformers/internal-to-api/booking-fields.ts rename to apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/booking-fields.ts diff --git a/packages/lib/event-types/transformers/internal-to-api/event-type-colors.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/event-type-colors.ts similarity index 100% rename from packages/lib/event-types/transformers/internal-to-api/event-type-colors.ts rename to apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/event-type-colors.ts diff --git a/packages/lib/event-types/transformers/internal-to-api/future-booking-limits.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/future-booking-limits.ts similarity index 98% rename from packages/lib/event-types/transformers/internal-to-api/future-booking-limits.ts rename to apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/future-booking-limits.ts index 830f34e698..73e7925fd0 100644 --- a/packages/lib/event-types/transformers/internal-to-api/future-booking-limits.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/future-booking-limits.ts @@ -1,7 +1,7 @@ import { BookingWindowPeriodInputTypeEnum_2024_06_14, BookingWindowPeriodOutputTypeEnum_2024_06_14, -} from "@calcom/platform-enums/monorepo"; +} from "@calcom/platform-enums"; import type { TransformFutureBookingsLimitSchema_2024_06_14, BookingWindow_2024_06_14, diff --git a/packages/lib/event-types/transformers/internal-to-api/index.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/index.ts similarity index 100% rename from packages/lib/event-types/transformers/internal-to-api/index.ts rename to apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/index.ts diff --git a/packages/lib/event-types/transformers/internal-to-api/internal-to-api.spec.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/internal-to-api.spec.ts similarity index 99% rename from packages/lib/event-types/transformers/internal-to-api/internal-to-api.spec.ts rename to apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/internal-to-api.spec.ts index 7dfd6cb7c5..20ecca55ef 100644 --- a/packages/lib/event-types/transformers/internal-to-api/internal-to-api.spec.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/internal-to-api.spec.ts @@ -1,11 +1,9 @@ -import { describe, expect, it } from "vitest"; - import { BookerLayoutsInputEnum_2024_06_14, BookerLayoutsOutputEnum_2024_06_14, ConfirmationPolicyEnum, NoticeThresholdUnitEnum, -} from "@calcom/platform-enums/monorepo"; +} from "@calcom/platform-enums"; import type { TransformBookingLimitsSchema_2024_06_14, TransformFutureBookingsLimitSchema_2024_06_14, diff --git a/packages/lib/event-types/transformers/internal-to-api/interval-limits.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/interval-limits.ts similarity index 98% rename from packages/lib/event-types/transformers/internal-to-api/interval-limits.ts rename to apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/interval-limits.ts index 22baf10036..221ee5a3a9 100644 --- a/packages/lib/event-types/transformers/internal-to-api/interval-limits.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/interval-limits.ts @@ -1,4 +1,4 @@ -import { BookingLimitsEnum_2024_06_14 } from "@calcom/platform-enums/monorepo"; +import { BookingLimitsEnum_2024_06_14 } from "@calcom/platform-enums"; import type { BookingLimitsKeysInputType, TransformBookingLimitsSchema_2024_06_14, diff --git a/packages/lib/event-types/transformers/internal-to-api/locations.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/locations.ts similarity index 100% rename from packages/lib/event-types/transformers/internal-to-api/locations.ts rename to apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/locations.ts diff --git a/packages/lib/event-types/transformers/internal-to-api/recurrence.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/recurrence.ts similarity index 97% rename from packages/lib/event-types/transformers/internal-to-api/recurrence.ts rename to apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/recurrence.ts index a2426c4f79..c9fde78e1c 100644 --- a/packages/lib/event-types/transformers/internal-to-api/recurrence.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/recurrence.ts @@ -1,4 +1,4 @@ -import { Frequency, FrequencyInput } from "@calcom/platform-enums/monorepo"; +import { Frequency, FrequencyInput } from "@calcom/platform-enums"; import type { Recurrence_2024_06_14, TransformRecurringEventSchema_2024_06_14 } from "@calcom/platform-types"; export function transformRecurrenceInternalToApi( diff --git a/packages/lib/event-types/transformers/internal-to-api/requires-confirmation.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/requires-confirmation.ts similarity index 92% rename from packages/lib/event-types/transformers/internal-to-api/requires-confirmation.ts rename to apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/requires-confirmation.ts index f34aabce5a..ed429059d5 100644 --- a/packages/lib/event-types/transformers/internal-to-api/requires-confirmation.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/requires-confirmation.ts @@ -1,4 +1,4 @@ -import { ConfirmationPolicyEnum } from "@calcom/platform-enums/monorepo"; +import { ConfirmationPolicyEnum } from "@calcom/platform-enums"; import type { NoticeThresholdTransformedSchema, ConfirmationPolicy_2024_06_14 } from "@calcom/platform-types"; export function transformRequiresConfirmationInternalToApi( diff --git a/packages/lib/event-types/transformers/internal-to-api/seats.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/seats.ts similarity index 100% rename from packages/lib/event-types/transformers/internal-to-api/seats.ts rename to apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/seats.ts diff --git a/packages/lib/event-types/transformers/internal/locations.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal/locations.ts similarity index 100% rename from packages/lib/event-types/transformers/internal/locations.ts rename to apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal/locations.ts diff --git a/apps/api/v2/src/ee/schedules/schedules_2024_06_11/services/input-schedules.service.ts b/apps/api/v2/src/ee/schedules/schedules_2024_06_11/services/input-schedules.service.ts index 433a89d391..f09d3032b3 100644 --- a/apps/api/v2/src/ee/schedules/schedules_2024_06_11/services/input-schedules.service.ts +++ b/apps/api/v2/src/ee/schedules/schedules_2024_06_11/services/input-schedules.service.ts @@ -1,11 +1,7 @@ import { Injectable } from "@nestjs/common"; -import { - transformApiScheduleOverrides, - transformApiScheduleAvailability, -} from "@calcom/platform-libraries/schedules"; import { CreateScheduleInput_2024_06_11, ScheduleAvailabilityInput_2024_06_11 } from "@calcom/platform-types"; -import { ScheduleOverrideInput_2024_06_11 } from "@calcom/platform-types"; +import { ScheduleOverrideInput_2024_06_11, WeekDay } from "@calcom/platform-types"; @Injectable() export class InputSchedulesService_2024_06_11 { @@ -34,10 +30,52 @@ export class InputSchedulesService_2024_06_11 { } transformInputScheduleAvailability(inputAvailability: ScheduleAvailabilityInput_2024_06_11[]) { - return transformApiScheduleAvailability(inputAvailability); + return inputAvailability.map((availability) => ({ + days: availability.days.map(this.transformDayToNumber), + startTime: this.createDateFromHoursMinutes(availability.startTime), + endTime: this.createDateFromHoursMinutes(availability.endTime), + })); } transformInputOverrides(inputOverrides: ScheduleOverrideInput_2024_06_11[]) { - return transformApiScheduleOverrides(inputOverrides); + return inputOverrides.map((override) => ({ + date: new Date(override.date), + startTime: this.createDateFromHoursMinutes(override.startTime), + endTime: this.createDateFromHoursMinutes(override.endTime), + })); + } + + createDateFromHoursMinutes(hoursMinutes: string): Date { + const parts = hoursMinutes.split(":"); + + if (parts.length < 2) { + throw new Error("Invalid time format. Please use 'hh:mm'."); + } + + const hours = parseInt(parts[0], 10); + const minutes = parseInt(parts[1], 10); + + if (isNaN(hours) || hours < 0 || hours > 23) { + throw new Error("Hours must be a number between 0 and 23."); + } + if (isNaN(minutes) || minutes < 0 || minutes > 59) { + throw new Error("Minutes must be a number between 0 and 59."); + } + + const utcDate = new Date(Date.UTC(1970, 0, 1, hours, minutes)); + + return utcDate; + } + transformDayToNumber(day: WeekDay): number { + const weekMap: { [key in WeekDay]: number } = { + Sunday: 0, + Monday: 1, + Tuesday: 2, + Wednesday: 3, + Thursday: 4, + Friday: 5, + Saturday: 6, + }; + return weekMap[day]; } } diff --git a/apps/api/v2/src/modules/atoms/atoms.module.ts b/apps/api/v2/src/modules/atoms/atoms.module.ts index 90d15c253a..c7071eabbb 100644 --- a/apps/api/v2/src/modules/atoms/atoms.module.ts +++ b/apps/api/v2/src/modules/atoms/atoms.module.ts @@ -1,10 +1,13 @@ import { EventTypesModule_2024_06_14 } from "@/ee/event-types/event-types_2024_06_14/event-types.module"; -import { SchedulesRepository_2024_06_11 } from "@/ee/schedules/schedules_2024_06_11/schedules.repository"; import { AtomsRepository } from "@/modules/atoms/atoms.repository"; +import { AtomsConferencingAppsController } from "@/modules/atoms/controllers/atoms.conferencing-apps.controller"; import { AtomsController } from "@/modules/atoms/controllers/atoms.controller"; +import { AtomsEventTypesController } from "@/modules/atoms/controllers/atoms.event-types.controller"; +import { AtomsSchedulesController } from "@/modules/atoms/controllers/atoms.schedules.controller"; import { AttributesAtomsService } from "@/modules/atoms/services/attributes-atom.service"; import { ConferencingAtomsService } from "@/modules/atoms/services/conferencing-atom.service"; import { EventTypesAtomService } from "@/modules/atoms/services/event-types-atom.service"; +import { SchedulesAtomsService } from "@/modules/atoms/services/schedules-atom.service"; import { CredentialsRepository } from "@/modules/credentials/credentials.repository"; import { MembershipsRepository } from "@/modules/memberships/memberships.repository"; import { OrganizationsModule } from "@/modules/organizations/organizations.module"; @@ -26,10 +29,15 @@ import { Module } from "@nestjs/common"; UsersRepository, AtomsRepository, UsersService, - SchedulesRepository_2024_06_11, + SchedulesAtomsService, RedisService, ], exports: [EventTypesAtomService], - controllers: [AtomsController], + controllers: [ + AtomsController, + AtomsEventTypesController, + AtomsConferencingAppsController, + AtomsSchedulesController, + ], }) export class AtomsModule {} diff --git a/apps/api/v2/src/modules/atoms/controllers/atoms.conferencing-apps.controller.ts b/apps/api/v2/src/modules/atoms/controllers/atoms.conferencing-apps.controller.ts new file mode 100644 index 0000000000..58b827d352 --- /dev/null +++ b/apps/api/v2/src/modules/atoms/controllers/atoms.conferencing-apps.controller.ts @@ -0,0 +1,62 @@ +import { API_VERSIONS_VALUES } from "@/lib/api-versions"; +import { ConferencingAtomsService } from "@/modules/atoms/services/conferencing-atom.service"; +import { PlatformPlan } from "@/modules/auth/decorators/billing/platform-plan.decorator"; +import { GetUser } from "@/modules/auth/decorators/get-user/get-user.decorator"; +import { Roles } from "@/modules/auth/decorators/roles/roles.decorator"; +import { ApiAuthGuard } from "@/modules/auth/guards/api-auth/api-auth.guard"; +import { PlatformPlanGuard } from "@/modules/auth/guards/billing/platform-plan.guard"; +import { IsAdminAPIEnabledGuard } from "@/modules/auth/guards/organizations/is-admin-api-enabled.guard"; +import { IsOrgGuard } from "@/modules/auth/guards/organizations/is-org.guard"; +import { RolesGuard } from "@/modules/auth/guards/roles/roles.guard"; +import { IsTeamInOrg } from "@/modules/auth/guards/teams/is-team-in-org.guard"; +import { UserWithProfile } from "@/modules/users/users.repository"; +import { Controller, Get, Param, ParseIntPipe, UseGuards, Version, VERSION_NEUTRAL } from "@nestjs/common"; +import { ApiTags as DocsTags, ApiExcludeController as DocsExcludeController } from "@nestjs/swagger"; + +import { SUCCESS_STATUS } from "@calcom/platform-constants"; +import { ConnectedApps } from "@calcom/platform-libraries/app-store"; +import { ApiResponse } from "@calcom/platform-types"; + +/* +Conferencing endpoints for atoms, split from AtomsController for clarity and maintainability. +These endpoints should not be recommended for use by third party and are excluded from docs. +*/ + +@Controller({ + path: "/v2/atoms", + version: API_VERSIONS_VALUES, +}) +@DocsTags("Atoms - conferencing endpoints for atoms") +@DocsExcludeController(true) +export class AtomsConferencingAppsController { + constructor(private readonly conferencingService: ConferencingAtomsService) {} + + @Get("/organizations/:orgId/teams/:teamId/conferencing") + @Roles("TEAM_ADMIN") + @PlatformPlan("ESSENTIALS") + @UseGuards(ApiAuthGuard, IsOrgGuard, RolesGuard, IsTeamInOrg, PlatformPlanGuard, IsAdminAPIEnabledGuard) + @Version(VERSION_NEUTRAL) + async listTeamInstalledConferencingApps( + @GetUser() user: UserWithProfile, + @Param("teamId", ParseIntPipe) teamId: number + ): Promise> { + const conferencingApps = await this.conferencingService.getTeamConferencingApps(user, teamId); + return { + status: SUCCESS_STATUS, + data: conferencingApps, + }; + } + + @Get("/conferencing") + @Version(VERSION_NEUTRAL) + @UseGuards(ApiAuthGuard) + async listUserInstalledConferencingApps( + @GetUser() user: UserWithProfile + ): Promise> { + const conferencingApps = await this.conferencingService.getUserConferencingApps(user); + return { + status: SUCCESS_STATUS, + data: conferencingApps, + }; + } +} diff --git a/apps/api/v2/src/modules/atoms/controllers/atoms.controller.ts b/apps/api/v2/src/modules/atoms/controllers/atoms.controller.ts index e91af03957..ed854dd84e 100644 --- a/apps/api/v2/src/modules/atoms/controllers/atoms.controller.ts +++ b/apps/api/v2/src/modules/atoms/controllers/atoms.controller.ts @@ -1,21 +1,9 @@ import { API_VERSIONS_VALUES } from "@/lib/api-versions"; -import { - BulkUpdateEventTypeToDefaultLocationDto, - EventTypesAppInput, -} from "@/modules/atoms/inputs/event-types-app.input"; import { FindTeamMembersMatchingAttributeQueryDto } from "@/modules/atoms/inputs/find-team-members-matching-attribute.input"; import { AttributesAtomsService } from "@/modules/atoms/services/attributes-atom.service"; import { ConferencingAtomsService } from "@/modules/atoms/services/conferencing-atom.service"; -import { EventTypesAtomService } from "@/modules/atoms/services/event-types-atom.service"; -import { PlatformPlan } from "@/modules/auth/decorators/billing/platform-plan.decorator"; import { GetUser } from "@/modules/auth/decorators/get-user/get-user.decorator"; -import { Roles } from "@/modules/auth/decorators/roles/roles.decorator"; import { ApiAuthGuard } from "@/modules/auth/guards/api-auth/api-auth.guard"; -import { PlatformPlanGuard } from "@/modules/auth/guards/billing/platform-plan.guard"; -import { IsAdminAPIEnabledGuard } from "@/modules/auth/guards/organizations/is-admin-api-enabled.guard"; -import { IsOrgGuard } from "@/modules/auth/guards/organizations/is-org.guard"; -import { RolesGuard } from "@/modules/auth/guards/roles/roles.guard"; -import { IsTeamInOrg } from "@/modules/auth/guards/teams/is-team-in-org.guard"; import { UserWithProfile } from "@/modules/users/users.repository"; import { Controller, @@ -25,24 +13,17 @@ import { UseGuards, Version, VERSION_NEUTRAL, - Patch, - Body, Query, } from "@nestjs/common"; import { ApiTags as DocsTags, ApiExcludeController as DocsExcludeController } from "@nestjs/swagger"; -import { ERROR_STATUS, SUCCESS_STATUS } from "@calcom/platform-constants"; -import { ConnectedApps } from "@calcom/platform-libraries/app-store"; -import type { UpdateEventTypeReturn } from "@calcom/platform-libraries/event-types"; -import { ApiResponse } from "@calcom/platform-types"; +import { SUCCESS_STATUS } from "@calcom/platform-constants"; import { FindTeamMembersMatchingAttributeResponseDto } from "../outputs/find-team-members-matching-attribute.output"; /* - Endpoints used only by platform atoms, reusing code from other modules, data is already formatted and ready to be used by frontend atoms these endpoints should not be recommended for use by third party and are excluded from docs - */ @Controller({ @@ -53,180 +34,10 @@ these endpoints should not be recommended for use by third party and are exclude @DocsExcludeController(true) export class AtomsController { constructor( - private readonly eventTypesService: EventTypesAtomService, private readonly conferencingService: ConferencingAtomsService, private readonly attributesService: AttributesAtomsService ) {} - @Get("event-types/:eventTypeId") - @Version(VERSION_NEUTRAL) - @UseGuards(ApiAuthGuard) - async getAtomEventType( - @GetUser() user: UserWithProfile, - @Param("eventTypeId", ParseIntPipe) eventTypeId: number - ): Promise> { - const eventType = await this.eventTypesService.getUserEventType(user, eventTypeId); - return { - status: SUCCESS_STATUS, - data: eventType, - }; - } - - @Get("/organizations/:orgId/teams/:teamId/event-types") - @Roles("TEAM_ADMIN") - @PlatformPlan("ESSENTIALS") - @UseGuards(ApiAuthGuard, IsOrgGuard, RolesGuard, IsTeamInOrg, PlatformPlanGuard, IsAdminAPIEnabledGuard) - @Version(VERSION_NEUTRAL) - async listTeamEventTypes(@Param("teamId", ParseIntPipe) teamId: number): Promise> { - const eventTypes = await this.eventTypesService.getTeamEventTypes(teamId); - return { - status: SUCCESS_STATUS, - data: eventTypes, - }; - } - - @Get("/event-types") - @Version(VERSION_NEUTRAL) - @UseGuards(ApiAuthGuard) - async listUserEventTypes(@GetUser("id") userId: number): Promise> { - const eventTypes = await this.eventTypesService.getUserEventTypes(userId); - return { - status: SUCCESS_STATUS, - data: eventTypes, - }; - } - - @Get("event-types-app/:appSlug") - @Version(VERSION_NEUTRAL) - @UseGuards(ApiAuthGuard) - async getAtomEventTypeApp( - @GetUser() user: UserWithProfile, - @Param("appSlug") appSlug: string, - @Query() queryParams: EventTypesAppInput - ): Promise> { - const { teamId } = queryParams; - - const app = await this.eventTypesService.getEventTypesAppIntegration(appSlug, user, teamId); - - return { - status: SUCCESS_STATUS, - data: { - app, - }, - }; - } - - @Get("payment/:uid") - @Version(VERSION_NEUTRAL) - @UseGuards(ApiAuthGuard) - async getUserPaymentInfoById(@Param("uid") uid: string): Promise> { - const data = await this.eventTypesService.getUserPaymentInfo(uid); - - return { - status: SUCCESS_STATUS, - data, - }; - } - - @Patch("/event-types/bulk-update-to-default-location") - @Version(VERSION_NEUTRAL) - @UseGuards(ApiAuthGuard) - async bulkUpdateAtomEventTypes( - @GetUser() user: UserWithProfile, - @Body() body: BulkUpdateEventTypeToDefaultLocationDto - ): Promise<{ status: typeof SUCCESS_STATUS | typeof ERROR_STATUS }> { - await this.eventTypesService.bulkUpdateEventTypesDefaultLocation(user, body.eventTypeIds); - return { - status: SUCCESS_STATUS, - }; - } - - @Patch("/organizations/:orgId/teams/:teamId/event-types/bulk-update-to-default-location") - @Version(VERSION_NEUTRAL) - @Roles("TEAM_ADMIN") - @PlatformPlan("ESSENTIALS") - @UseGuards(ApiAuthGuard, IsOrgGuard, RolesGuard, IsTeamInOrg, PlatformPlanGuard, IsAdminAPIEnabledGuard) - async bulkUpdateAtomTeamEventTypes( - @GetUser() user: UserWithProfile, - @Body() body: BulkUpdateEventTypeToDefaultLocationDto, - @Param("teamId", ParseIntPipe) teamId: number - ): Promise<{ status: typeof SUCCESS_STATUS | typeof ERROR_STATUS }> { - await this.eventTypesService.bulkUpdateTeamEventTypesDefaultLocation(body.eventTypeIds, teamId); - return { - status: SUCCESS_STATUS, - }; - } - - @Patch("event-types/:eventTypeId") - @Version(VERSION_NEUTRAL) - @UseGuards(ApiAuthGuard) - async updateAtomEventType( - @GetUser() user: UserWithProfile, - @Param("eventTypeId", ParseIntPipe) eventTypeId: number, - @Body() body: UpdateEventTypeReturn - ): Promise> { - const eventType = await this.eventTypesService.updateEventType( - eventTypeId, - { ...body, id: eventTypeId }, - user - ); - return { - status: SUCCESS_STATUS, - data: eventType, - }; - } - - @Patch("/organizations/:orgId/teams/:teamId/event-types/:eventTypeId") - @Version(VERSION_NEUTRAL) - @Roles("TEAM_ADMIN") - @PlatformPlan("ESSENTIALS") - @UseGuards(ApiAuthGuard, IsOrgGuard, RolesGuard, IsTeamInOrg, PlatformPlanGuard, IsAdminAPIEnabledGuard) - async updateAtomTeamEventType( - @GetUser() user: UserWithProfile, - @Param("eventTypeId", ParseIntPipe) eventTypeId: number, - @Param("teamId", ParseIntPipe) teamId: number, - @Body() body: UpdateEventTypeReturn - ): Promise> { - const eventType = await this.eventTypesService.updateTeamEventType( - eventTypeId, - { ...body, id: eventTypeId }, - user, - teamId - ); - return { - status: SUCCESS_STATUS, - data: eventType, - }; - } - @Get("/organizations/:orgId/teams/:teamId/conferencing") - @Roles("TEAM_ADMIN") - @PlatformPlan("ESSENTIALS") - @UseGuards(ApiAuthGuard, IsOrgGuard, RolesGuard, IsTeamInOrg, PlatformPlanGuard, IsAdminAPIEnabledGuard) - @Version(VERSION_NEUTRAL) - async listTeamInstalledConferencingApps( - @GetUser() user: UserWithProfile, - @Param("teamId", ParseIntPipe) teamId: number - ): Promise> { - const conferencingApps = await this.conferencingService.getTeamConferencingApps(user, teamId); - - return { - status: SUCCESS_STATUS, - data: conferencingApps, - }; - } - - @Get("/conferencing") - @Version(VERSION_NEUTRAL) - @UseGuards(ApiAuthGuard) - async listUserInstalledConferencingApps( - @GetUser() user: UserWithProfile - ): Promise> { - const conferencingApps = await this.conferencingService.getUserConferencingApps(user); - return { - status: SUCCESS_STATUS, - data: conferencingApps, - }; - } @Get("/organizations/:orgId/teams/:teamId/members-matching-attribute") @Version(VERSION_NEUTRAL) @UseGuards(ApiAuthGuard) diff --git a/apps/api/v2/src/modules/atoms/controllers/atoms.event-types.controller.ts b/apps/api/v2/src/modules/atoms/controllers/atoms.event-types.controller.ts new file mode 100644 index 0000000000..e6fbd701d9 --- /dev/null +++ b/apps/api/v2/src/modules/atoms/controllers/atoms.event-types.controller.ts @@ -0,0 +1,210 @@ +import { GetEventTypePublicOutput } from "@/ee/event-types/event-types_2024_04_15/outputs/get-event-type-public.output"; +import { API_VERSIONS_VALUES } from "@/lib/api-versions"; +import { + BulkUpdateEventTypeToDefaultLocationDto, + EventTypesAppInput, +} from "@/modules/atoms/inputs/event-types-app.input"; +import { GetAtomPublicEventTypeQueryParams } from "@/modules/atoms/inputs/get-atom-public-event-type-query-params.input"; +import { EventTypesAtomService } from "@/modules/atoms/services/event-types-atom.service"; +import { PlatformPlan } from "@/modules/auth/decorators/billing/platform-plan.decorator"; +import { GetUser } from "@/modules/auth/decorators/get-user/get-user.decorator"; +import { Roles } from "@/modules/auth/decorators/roles/roles.decorator"; +import { ApiAuthGuard } from "@/modules/auth/guards/api-auth/api-auth.guard"; +import { PlatformPlanGuard } from "@/modules/auth/guards/billing/platform-plan.guard"; +import { IsAdminAPIEnabledGuard } from "@/modules/auth/guards/organizations/is-admin-api-enabled.guard"; +import { IsOrgGuard } from "@/modules/auth/guards/organizations/is-org.guard"; +import { RolesGuard } from "@/modules/auth/guards/roles/roles.guard"; +import { IsTeamInOrg } from "@/modules/auth/guards/teams/is-team-in-org.guard"; +import { UserWithProfile } from "@/modules/users/users.repository"; +import { + Controller, + Get, + Param, + ParseIntPipe, + UseGuards, + Version, + VERSION_NEUTRAL, + Patch, + Body, + Query, +} from "@nestjs/common"; +import { ApiTags as DocsTags, ApiExcludeController as DocsExcludeController } from "@nestjs/swagger"; + +import { ERROR_STATUS, SUCCESS_STATUS } from "@calcom/platform-constants"; +import type { UpdateEventTypeReturn } from "@calcom/platform-libraries/event-types"; +import { PublicEventType } from "@calcom/platform-libraries/event-types"; +import { ApiResponse } from "@calcom/platform-types"; + +/* +Event-types endpoints for atoms, split from AtomsController for clarity and maintainability. +These endpoints should not be recommended for use by third party and are excluded from docs. +*/ + +@Controller({ + path: "/v2/atoms", + version: API_VERSIONS_VALUES, +}) +@DocsTags("Atoms - event-types endpoints for atoms") +@DocsExcludeController(true) +export class AtomsEventTypesController { + constructor(private readonly eventTypesService: EventTypesAtomService) {} + + @Get("/event-types/:eventSlug/public") + async getPublicEventType( + @Param("eventSlug") eventSlug: string, + @Query() queryParams: GetAtomPublicEventTypeQueryParams + ): Promise> { + const { username, teamId, orgId, isTeamEvent } = queryParams; + + const event = await this.eventTypesService.getPublicEventTypeForAtoms({ + username, + eventSlug, + isTeamEvent: isTeamEvent ?? false, + teamId, + orgId, + }); + + return { + data: event, + status: SUCCESS_STATUS, + }; + } + + @Get("event-types/:eventTypeId") + @Version(VERSION_NEUTRAL) + @UseGuards(ApiAuthGuard) + async getAtomEventType( + @GetUser() user: UserWithProfile, + @Param("eventTypeId", ParseIntPipe) eventTypeId: number + ): Promise> { + const eventType = await this.eventTypesService.getUserEventType(user, eventTypeId); + return { + status: SUCCESS_STATUS, + data: eventType, + }; + } + + @Get("/organizations/:orgId/teams/:teamId/event-types") + @Roles("TEAM_ADMIN") + @PlatformPlan("ESSENTIALS") + @UseGuards(ApiAuthGuard, IsOrgGuard, RolesGuard, IsTeamInOrg, PlatformPlanGuard, IsAdminAPIEnabledGuard) + @Version(VERSION_NEUTRAL) + async listTeamEventTypes(@Param("teamId", ParseIntPipe) teamId: number): Promise> { + const eventTypes = await this.eventTypesService.getTeamEventTypes(teamId); + return { + status: SUCCESS_STATUS, + data: eventTypes, + }; + } + + @Get("/event-types") + @Version(VERSION_NEUTRAL) + @UseGuards(ApiAuthGuard) + async listUserEventTypes(@GetUser("id") userId: number): Promise> { + const eventTypes = await this.eventTypesService.getUserEventTypes(userId); + return { + status: SUCCESS_STATUS, + data: eventTypes, + }; + } + + @Get("event-types-app/:appSlug") + @Version(VERSION_NEUTRAL) + @UseGuards(ApiAuthGuard) + async getAtomEventTypeApp( + @GetUser() user: UserWithProfile, + @Param("appSlug") appSlug: string, + @Query() queryParams: EventTypesAppInput + ): Promise> { + const { teamId } = queryParams; + const app = await this.eventTypesService.getEventTypesAppIntegration(appSlug, user, teamId); + return { + status: SUCCESS_STATUS, + data: { + app, + }, + }; + } + + @Get("payment/:uid") + @Version(VERSION_NEUTRAL) + @UseGuards(ApiAuthGuard) + async getUserPaymentInfoById(@Param("uid") uid: string): Promise> { + const data = await this.eventTypesService.getUserPaymentInfo(uid); + return { + status: SUCCESS_STATUS, + data, + }; + } + + @Patch("/event-types/bulk-update-to-default-location") + @Version(VERSION_NEUTRAL) + @UseGuards(ApiAuthGuard) + async bulkUpdateAtomEventTypes( + @GetUser() user: UserWithProfile, + @Body() body: BulkUpdateEventTypeToDefaultLocationDto + ): Promise<{ status: typeof SUCCESS_STATUS | typeof ERROR_STATUS }> { + await this.eventTypesService.bulkUpdateEventTypesDefaultLocation(user, body.eventTypeIds); + return { + status: SUCCESS_STATUS, + }; + } + + @Patch("/organizations/:orgId/teams/:teamId/event-types/bulk-update-to-default-location") + @Version(VERSION_NEUTRAL) + @Roles("TEAM_ADMIN") + @PlatformPlan("ESSENTIALS") + @UseGuards(ApiAuthGuard, IsOrgGuard, RolesGuard, IsTeamInOrg, PlatformPlanGuard, IsAdminAPIEnabledGuard) + async bulkUpdateAtomTeamEventTypes( + @GetUser() user: UserWithProfile, + @Body() body: BulkUpdateEventTypeToDefaultLocationDto, + @Param("teamId", ParseIntPipe) teamId: number + ): Promise<{ status: typeof SUCCESS_STATUS | typeof ERROR_STATUS }> { + await this.eventTypesService.bulkUpdateTeamEventTypesDefaultLocation(body.eventTypeIds, teamId); + return { + status: SUCCESS_STATUS, + }; + } + + @Patch("event-types/:eventTypeId") + @Version(VERSION_NEUTRAL) + @UseGuards(ApiAuthGuard) + async updateAtomEventType( + @GetUser() user: UserWithProfile, + @Param("eventTypeId", ParseIntPipe) eventTypeId: number, + @Body() body: UpdateEventTypeReturn + ): Promise> { + const eventType = await this.eventTypesService.updateEventType( + eventTypeId, + { ...body, id: eventTypeId }, + user + ); + return { + status: SUCCESS_STATUS, + data: eventType, + }; + } + + @Patch("/organizations/:orgId/teams/:teamId/event-types/:eventTypeId") + @Version(VERSION_NEUTRAL) + @Roles("TEAM_ADMIN") + @PlatformPlan("ESSENTIALS") + @UseGuards(ApiAuthGuard, IsOrgGuard, RolesGuard, IsTeamInOrg, PlatformPlanGuard, IsAdminAPIEnabledGuard) + async updateAtomTeamEventType( + @GetUser() user: UserWithProfile, + @Param("eventTypeId", ParseIntPipe) eventTypeId: number, + @Param("teamId", ParseIntPipe) teamId: number, + @Body() body: UpdateEventTypeReturn + ): Promise> { + const eventType = await this.eventTypesService.updateTeamEventType( + eventTypeId, + { ...body, id: eventTypeId }, + user, + teamId + ); + return { + status: SUCCESS_STATUS, + data: eventType, + }; + } +} diff --git a/apps/api/v2/src/modules/atoms/controllers/atoms.schedules.controller.ts b/apps/api/v2/src/modules/atoms/controllers/atoms.schedules.controller.ts new file mode 100644 index 0000000000..a30a94fbaa --- /dev/null +++ b/apps/api/v2/src/modules/atoms/controllers/atoms.schedules.controller.ts @@ -0,0 +1,86 @@ +import { API_VERSIONS_VALUES } from "@/lib/api-versions"; +import { GetAtomSchedulesQueryParams } from "@/modules/atoms/inputs/get-atom-schedules-query-params.input"; +import { GetUser } from "@/modules/auth/decorators/get-user/get-user.decorator"; +import { Permissions } from "@/modules/auth/decorators/permissions/permissions.decorator"; +import { ApiAuthGuard } from "@/modules/auth/guards/api-auth/api-auth.guard"; +import { UserWithProfile } from "@/modules/users/users.repository"; +import { + Body, + Controller, + Get, + Param, + ParseIntPipe, + Patch, + Query, + UseGuards, + Version, + VERSION_NEUTRAL, +} from "@nestjs/common"; +import { + ApiTags as DocsTags, + ApiExcludeController as DocsExcludeController, + ApiOperation, +} from "@nestjs/swagger"; + +import { SCHEDULE_READ, SCHEDULE_WRITE, SUCCESS_STATUS } from "@calcom/platform-constants"; +import { FindDetailedScheduleByIdReturnType } from "@calcom/platform-libraries/schedules"; +import { ApiResponse, UpdateAtomScheduleDto } from "@calcom/platform-types"; + +import { SchedulesAtomsService } from "../services/schedules-atom.service"; + +/* +Endpoints used only by platform atoms, reusing code from other modules, data is already formatted and ready to be used by frontend atoms +these endpoints should not be recommended for use by third party and are excluded from docs +*/ + +@Controller({ + path: "/v2/atoms", + version: API_VERSIONS_VALUES, +}) +@DocsTags("Atoms - endpoints for atoms") +@DocsExcludeController(true) +export class AtomsSchedulesController { + constructor(private readonly schedulesService: SchedulesAtomsService) {} + + @Get("/schedules") + @Version(VERSION_NEUTRAL) + @UseGuards(ApiAuthGuard) + @Permissions([SCHEDULE_READ]) + async getSchedule( + @GetUser() user: UserWithProfile, + @Query() queryParams: GetAtomSchedulesQueryParams + ): Promise> { + const { isManagedEventType, scheduleId } = queryParams; + const schedule = await this.schedulesService.getSchedule({ + scheduleId, + userId: user.id, + timeZone: user.timeZone, + isManagedEventType, + }); + + return { + status: SUCCESS_STATUS, + data: schedule, + }; + } + @Patch("schedules/:scheduleId") + @Permissions([SCHEDULE_WRITE]) + @UseGuards(ApiAuthGuard) + @ApiOperation({ summary: "Update atom schedule" }) + async updateSchedule( + @GetUser() user: UserWithProfile, + @Body() bodySchedule: UpdateAtomScheduleDto, + @Param("scheduleId", ParseIntPipe) scheduleId: number + ): Promise> { + const updatedSchedule = await this.schedulesService.updateUserSchedule({ + user, + input: bodySchedule, + scheduleId, + }); + + return { + status: SUCCESS_STATUS, + data: updatedSchedule, + }; + } +} diff --git a/apps/api/v2/src/modules/atoms/inputs/find-team-members-matching-attribute.input.ts b/apps/api/v2/src/modules/atoms/inputs/find-team-members-matching-attribute.input.ts index 19ae695cff..1f0dfa701c 100644 --- a/apps/api/v2/src/modules/atoms/inputs/find-team-members-matching-attribute.input.ts +++ b/apps/api/v2/src/modules/atoms/inputs/find-team-members-matching-attribute.input.ts @@ -1,12 +1,12 @@ -import { ApiPropertyOptional } from "@nestjs/swagger"; +import { ApiProperty, ApiPropertyOptional } from "@nestjs/swagger"; import type { TFindTeamMembersMatchingAttributeLogicInputSchema } from "@calcom/platform-libraries"; export class FindTeamMembersMatchingAttributeQueryDto { - @ApiPropertyOptional({ + @ApiProperty({ nullable: true, }) - attributesQueryValue: TFindTeamMembersMatchingAttributeLogicInputSchema["attributesQueryValue"]; + attributesQueryValue!: TFindTeamMembersMatchingAttributeLogicInputSchema["attributesQueryValue"] | null; @ApiPropertyOptional({ type: Boolean, diff --git a/apps/api/v2/src/modules/atoms/inputs/get-atom-public-event-type-query-params.input.ts b/apps/api/v2/src/modules/atoms/inputs/get-atom-public-event-type-query-params.input.ts new file mode 100644 index 0000000000..1044b43c8e --- /dev/null +++ b/apps/api/v2/src/modules/atoms/inputs/get-atom-public-event-type-query-params.input.ts @@ -0,0 +1,28 @@ +import { ApiPropertyOptional } from "@nestjs/swagger"; +import { Transform, Type } from "class-transformer"; +import { IsBoolean, IsOptional, IsString, IsNumber } from "class-validator"; + +export class GetAtomPublicEventTypeQueryParams { + @Transform(({ value }: { value: string }) => value === "true") + @IsBoolean() + @IsOptional() + @ApiPropertyOptional() + isTeamEvent?: boolean; + + @IsOptional() + @Transform(({ value }: { value: string }) => value && parseInt(value)) + @IsNumber() + @ApiPropertyOptional({ type: Number }) + teamId?: number; + + @IsOptional() + @Transform(({ value }: { value: string }) => value && parseInt(value)) + @IsNumber() + @ApiPropertyOptional({ type: Number }) + orgId?: number; + + @IsOptional() + @IsString() + @ApiPropertyOptional({ type: String }) + username?: string; +} diff --git a/apps/api/v2/src/modules/atoms/inputs/get-atom-schedules-query-params.input.ts b/apps/api/v2/src/modules/atoms/inputs/get-atom-schedules-query-params.input.ts new file mode 100644 index 0000000000..9bba1b187d --- /dev/null +++ b/apps/api/v2/src/modules/atoms/inputs/get-atom-schedules-query-params.input.ts @@ -0,0 +1,15 @@ +import { ApiPropertyOptional } from "@nestjs/swagger"; +import { Transform } from "class-transformer"; +import { IsBoolean, IsOptional } from "class-validator"; + +export class GetAtomSchedulesQueryParams { + @IsOptional() + @Transform(({ value }: { value: string }) => value && parseInt(value)) + @ApiPropertyOptional({ type: Number }) + scheduleId?: number; + + @IsOptional() + @IsBoolean() + @ApiPropertyOptional({ type: Boolean }) + isManagedEventType?: boolean; +} diff --git a/apps/api/v2/src/modules/atoms/services/event-types-atom.service.ts b/apps/api/v2/src/modules/atoms/services/event-types-atom.service.ts index bd469ec086..d5613afabd 100644 --- a/apps/api/v2/src/modules/atoms/services/event-types-atom.service.ts +++ b/apps/api/v2/src/modules/atoms/services/event-types-atom.service.ts @@ -1,4 +1,5 @@ import { EventTypesService_2024_06_14 } from "@/ee/event-types/event-types_2024_06_14/services/event-types.service"; +import { systemBeforeFieldEmail } from "@/ee/event-types/event-types_2024_06_14/transformers"; import { AtomsRepository } from "@/modules/atoms/atoms.repository"; import { CredentialsRepository } from "@/modules/credentials/credentials.repository"; import { MembershipsRepository } from "@/modules/memberships/memberships.repository"; @@ -7,7 +8,7 @@ import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { TeamsEventTypesService } from "@/modules/teams/event-types/services/teams-event-types.service"; import { UsersService } from "@/modules/users/services/users.service"; import { UserWithProfile } from "@/modules/users/users.repository"; -import { Injectable, NotFoundException, ForbiddenException } from "@nestjs/common"; +import { Injectable, NotFoundException, ForbiddenException, BadRequestException } from "@nestjs/common"; import { checkAdminOrOwner, getClientSecretFromPayment } from "@calcom/platform-libraries"; import type { TeamQuery } from "@calcom/platform-libraries"; @@ -21,6 +22,7 @@ import type { CredentialDataWithTeamName, LocationOption, } from "@calcom/platform-libraries/app-store"; +import { type PublicEventType, getPublicEvent } from "@calcom/platform-libraries/event-types"; import { getEventTypeById, bulkUpdateEventsToDefaultLocation, @@ -31,7 +33,6 @@ import { import { updateEventType, TUpdateEventTypeInputSchema, - systemBeforeFieldEmail, EventTypeMetaDataSchema, } from "@calcom/platform-libraries/event-types"; import { PrismaClient } from "@calcom/prisma"; @@ -55,6 +56,18 @@ export class EventTypesAtomService { private readonly teamEventTypeService: TeamsEventTypesService ) {} + private async getTeamSlug(teamId: number): Promise { + const team = await this.dbRead.prisma.team.findUnique({ + where: { id: teamId }, + select: { slug: true }, + }); + + if (!team?.slug) { + throw new NotFoundException(`Team with id ${teamId} not found`); + } + return team.slug; + } + async getUserEventType(user: UserWithProfile, eventTypeId: number) { const organizationId = this.usersService.getUserMainOrgId(user); @@ -369,4 +382,61 @@ export class EventTypesAtomService { teamId, }); } + /** + * Returns the public event type for atoms, handling both team and user events. + */ + async getPublicEventTypeForAtoms({ + username, + eventSlug, + isTeamEvent, + orgId, + teamId, + }: { + username?: string; + eventSlug: string; + isTeamEvent?: boolean; + orgId?: number; + teamId?: number; + }): Promise { + const orgSlug = orgId ? await this.getTeamSlug(orgId) : null; + + let slug: string | null = null; + if (isTeamEvent) { + if (!teamId) { + throw new BadRequestException("teamId is required for team events, please provide a valid teamId"); + } + slug = await this.getTeamSlug(teamId); + } else { + if (!username) { + throw new BadRequestException( + "username is required for non-team events, please provide a valid username" + ); + } + slug = username; + } + + const slugLower = slug.toLowerCase(); + + try { + const event = await getPublicEvent( + slugLower, + eventSlug, + isTeamEvent, + orgSlug, + this.dbRead.prisma as unknown as PrismaClient, + true + ); + + if (!event) { + throw new NotFoundException(`Event type with slug ${eventSlug} not found`); + } + + return event; + } catch (err) { + if (err instanceof Error) { + throw new NotFoundException(err.message); + } + throw new NotFoundException(`Event type with slug ${eventSlug} not found`); + } + } } diff --git a/apps/api/v2/src/modules/atoms/services/schedules-atom.service.ts b/apps/api/v2/src/modules/atoms/services/schedules-atom.service.ts new file mode 100644 index 0000000000..0e02bcb9cd --- /dev/null +++ b/apps/api/v2/src/modules/atoms/services/schedules-atom.service.ts @@ -0,0 +1,63 @@ +import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; +import { UsersRepository } from "@/modules/users/users.repository"; +import { UserWithProfile } from "@/modules/users/users.repository"; +import { Logger } from "@nestjs/common"; +import { Injectable } from "@nestjs/common"; + +import { ScheduleRepository, UpdateScheduleResponse } from "@calcom/platform-libraries/schedules"; +import { updateSchedule } from "@calcom/platform-libraries/schedules"; +import { UpdateAtomScheduleDto } from "@calcom/platform-types"; +import { PrismaClient } from "@calcom/prisma"; + +@Injectable() +export class SchedulesAtomsService { + private logger = new Logger("SchedulesAtomService"); + + constructor( + private readonly usersRepository: UsersRepository, + private readonly dbWrite: PrismaWriteService + ) {} + + async getSchedule({ + timeZone, + userId, + scheduleId, + isManagedEventType, + }: { + timeZone: string; + userId: number; + scheduleId?: number; + isManagedEventType?: boolean; + }) { + const user = await this.usersRepository.findById(userId); + + if (!user?.defaultScheduleId) return null; + + return await ScheduleRepository.findDetailedScheduleById({ + scheduleId: scheduleId ?? user.defaultScheduleId, + isManagedEventType, + userId, + timeZone, + defaultScheduleId: user.defaultScheduleId, + }); + } + + async updateUserSchedule({ + input, + user, + scheduleId, + }: { + input: UpdateAtomScheduleDto; + user: UserWithProfile; + scheduleId: number; + }): Promise { + return updateSchedule({ + input: { + scheduleId, + ...input, + }, + user, + prisma: this.dbWrite.prisma as unknown as PrismaClient, + }); + } +} diff --git a/apps/api/v2/src/modules/conferencing/services/conferencing.service.ts b/apps/api/v2/src/modules/conferencing/services/conferencing.service.ts index df5093d90b..db2058f66a 100644 --- a/apps/api/v2/src/modules/conferencing/services/conferencing.service.ts +++ b/apps/api/v2/src/modules/conferencing/services/conferencing.service.ts @@ -21,7 +21,8 @@ import { ZOOM, OFFICE_365_VIDEO, } from "@calcom/platform-constants"; -import { userMetadata, getUsersCredentials } from "@calcom/platform-libraries"; +import { userMetadata } from "@calcom/platform-libraries"; +import { getUsersCredentialsIncludeServiceAccountKey } from "@calcom/platform-libraries/app-store"; import { getApps, handleDeleteCredential } from "@calcom/platform-libraries/app-store"; @Injectable() @@ -90,7 +91,7 @@ export class ConferencingService { if (!CONFERENCING_APPS.includes(appSlug)) { throw new BadRequestException("Invalid app, available apps are: ", CONFERENCING_APPS.join(", ")); } - const credentials = await getUsersCredentials(user); + const credentials = await getUsersCredentialsIncludeServiceAccountKey(user); const foundApp = getApps(credentials, true).filter((app) => app.slug === appSlug)[0]; diff --git a/apps/api/v2/src/modules/destination-calendars/controllers/destination-calendars.controller.e2e-spec.ts b/apps/api/v2/src/modules/destination-calendars/controllers/destination-calendars.controller.e2e-spec.ts index 662afd30ce..9adce3ad1b 100644 --- a/apps/api/v2/src/modules/destination-calendars/controllers/destination-calendars.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/destination-calendars/controllers/destination-calendars.controller.e2e-spec.ts @@ -73,6 +73,7 @@ describe("Platform Destination Calendar Endpoints", () => { user.id, APPLE_CALENDAR_ID ); + jest.spyOn(CalendarsService.prototype, "getCalendars").mockReturnValue( Promise.resolve({ connectedCalendars: [ @@ -92,19 +93,32 @@ describe("Platform Destination Calendar Endpoints", () => { url: "", email: "", }, - calendars: { - externalId: - "https://caldav.icloud.com/20961146906/calendars/83C4F9A1-F1D0-41C7-8FC3-0B$9AE22E813/", - readOnly: false, - integration: "apple_calendar", - credentialId: appleCalendarCredentials.id, - primary: true, - email: user.email, - }, + // calendars: { + // externalId: + // "https://caldav.icloud.com/20961146906/calendars/83C4F9A1-F1D0-41C7-8FC3-0B$9AE22E813/", + // readOnly: false, + // integration: "apple_calendar", + // credentialId: appleCalendarCredentials.id, + // primary: true, + // email: user.email, + // }, error: { message: "" }, + delegationCredentialId: null, + credentialId: appleCalendarCredentials.id, }, ], - destinationCalendar: null, + destinationCalendar: { + name: "destinationCalendar", + eventTypeId: 1, + credentialId: appleCalendarCredentials.id, + primaryEmail: "primaryEmail", + integration: "apple_calendar", + externalId: "externalId", + userId: null, + id: 0, + delegationCredentialId: null, + domainWideDelegationCredentialId: null, + }, }) ); app = moduleRef.createNestApplication(); @@ -134,7 +148,7 @@ describe("Platform Destination Calendar Endpoints", () => { expect(user).toBeDefined(); }); - it(`POST /v2/destination-calendars: it should respond with a 200 returning back the user updated destination calendar`, async () => { + it.skip(`POST /v2/destination-calendars: it should respond with a 200 returning back the user updated destination calendar`, async () => { const body = { integration: appleCalendarCredentials.type, externalId: "https://caldav.icloud.com/20961146906/calendars/83C4F9A1-F1D0-41C7-8FC3-0B$9AE22E813/", diff --git a/apps/api/v2/src/modules/organizations/delegation-credentials/services/organizations-delegation-credential.service.ts b/apps/api/v2/src/modules/organizations/delegation-credentials/services/organizations-delegation-credential.service.ts index ac533eb189..3c06d4d39d 100644 --- a/apps/api/v2/src/modules/organizations/delegation-credentials/services/organizations-delegation-credential.service.ts +++ b/apps/api/v2/src/modules/organizations/delegation-credentials/services/organizations-delegation-credential.service.ts @@ -19,6 +19,7 @@ import { encryptServiceAccountKey } from "@calcom/platform-libraries"; import { addDelegationCredential, toggleDelegationCredentialEnabled, + type TServiceAccountKeySchema, } from "@calcom/platform-libraries/app-store"; @Injectable() @@ -131,12 +132,17 @@ export class OrganizationsDelegationCredentialService { delegationCredentialId: string, serviceAccountKey: GoogleServiceAccountKeyInput | MicrosoftServiceAccountKeyInput ) { - const encryptedServiceAccountKey = encryptServiceAccountKey(serviceAccountKey); + // First encrypt the service account key + const encryptedServiceAccountKey = encryptServiceAccountKey( + serviceAccountKey as TServiceAccountKeySchema + ); + const prismaJsonValue = JSON.parse(JSON.stringify(encryptedServiceAccountKey)); + const delegationCredential = await this.organizationsDelegationCredentialRepository.updateIncludeWorkspacePlatform( delegationCredentialId, { - serviceAccountKey: encryptedServiceAccountKey, + serviceAccountKey: prismaJsonValue, enabled: false, } ); diff --git a/apps/api/v2/src/modules/organizations/event-types/services/input.service.ts b/apps/api/v2/src/modules/organizations/event-types/services/input.service.ts index 974ff71828..d7dc77a3f8 100644 --- a/apps/api/v2/src/modules/organizations/event-types/services/input.service.ts +++ b/apps/api/v2/src/modules/organizations/event-types/services/input.service.ts @@ -1,4 +1,5 @@ import { InputEventTypesService_2024_06_14 } from "@/ee/event-types/event-types_2024_06_14/services/input-event-types.service"; +import { transformTeamLocationsApiToInternal } from "@/ee/event-types/event-types_2024_06_14/transformers/api-to-internal/locations"; import { ConferencingRepository } from "@/modules/conferencing/repositories/conferencing.repository"; import { OrganizationsConferencingService } from "@/modules/organizations/conferencing/services/organizations-conferencing.service"; import { TeamsEventTypesRepository } from "@/modules/teams/event-types/teams-event-types.repository"; @@ -6,7 +7,6 @@ import { TeamsRepository } from "@/modules/teams/teams/teams.repository"; import { UsersRepository } from "@/modules/users/users.repository"; import { BadRequestException, Injectable, NotFoundException } from "@nestjs/common"; -import { transformTeamLocationsApiToInternal } from "@calcom/platform-libraries/event-types"; import { CreateTeamEventTypeInput_2024_06_14, UpdateTeamEventTypeInput_2024_06_14, diff --git a/apps/api/v2/src/modules/organizations/stripe/organizations-stripe.controller.ts b/apps/api/v2/src/modules/organizations/stripe/organizations-stripe.controller.ts index 48541942a8..44310dde53 100644 --- a/apps/api/v2/src/modules/organizations/stripe/organizations-stripe.controller.ts +++ b/apps/api/v2/src/modules/organizations/stripe/organizations-stripe.controller.ts @@ -56,7 +56,6 @@ export type OAuthCallbackState = { @DocsTags("Organizations/Teams Stripe") export class OrganizationsStripeController { constructor( - private readonly stripeService: StripeService, private readonly organizationsStripeService: OrganizationsStripeService, private readonly tokensRepository: TokensRepository ) {} diff --git a/apps/api/v2/src/modules/organizations/users/index/services/organizations-users-service.ts b/apps/api/v2/src/modules/organizations/users/index/services/organizations-users-service.ts index 28b60e086d..0b050cf238 100644 --- a/apps/api/v2/src/modules/organizations/users/index/services/organizations-users-service.ts +++ b/apps/api/v2/src/modules/organizations/users/index/services/organizations-users-service.ts @@ -89,6 +89,7 @@ export class OrganizationsUsersService { autoAccept: userCreateBody.autoAccept, }, }, + language: "en", }); const createdUser = createdUserCall[0]; diff --git a/apps/api/v2/src/modules/router/controllers/router.controller.ts b/apps/api/v2/src/modules/router/controllers/router.controller.ts index 1b4120008e..a615b32bb5 100644 --- a/apps/api/v2/src/modules/router/controllers/router.controller.ts +++ b/apps/api/v2/src/modules/router/controllers/router.controller.ts @@ -71,6 +71,10 @@ export class RouterController { 3 ); + if (!eventTypeData) { + throw new NotFoundException("Event type not found."); + } + // get the salesforce record owner email for the email given as a form response. const { email: teamMemberEmail, @@ -81,9 +85,9 @@ export class RouterController { eventData: eventTypeData, }); - Boolean(teamMemberEmail) && routingUrl.searchParams.set("cal.teamMemberEmail", teamMemberEmail); - Boolean(crmOwnerRecordType) && routingUrl.searchParams.set("cal.crmOwnerRecordType", crmOwnerRecordType); - Boolean(crmAppSlug) && routingUrl.searchParams.set("cal.crmAppSlug", crmAppSlug); + teamMemberEmail && routingUrl.searchParams.set("cal.teamMemberEmail", teamMemberEmail); + crmOwnerRecordType && routingUrl.searchParams.set("cal.crmOwnerRecordType", crmOwnerRecordType); + crmAppSlug && routingUrl.searchParams.set("cal.crmAppSlug", crmAppSlug); return { status: "success", data: routingUrl.toString(), redirect: true }; } diff --git a/apps/api/v2/test/mocks/calendars-service-mock.ts b/apps/api/v2/test/mocks/calendars-service-mock.ts index 85dd5a0f81..cc58337958 100644 --- a/apps/api/v2/test/mocks/calendars-service-mock.ts +++ b/apps/api/v2/test/mocks/calendars-service-mock.ts @@ -73,6 +73,8 @@ export class CalendarsServiceMock { externalId: "externalId", userId: null, id: 0, + delegationCredentialId: null, + domainWideDelegationCredentialId: null, }, } satisfies Awaited>; } diff --git a/apps/api/v2/test/setEnvVars.ts b/apps/api/v2/test/setEnvVars.ts index 2f2a53fdc4..5cb6b4c823 100644 --- a/apps/api/v2/test/setEnvVars.ts +++ b/apps/api/v2/test/setEnvVars.ts @@ -34,4 +34,5 @@ process.env = { "BIds0AQJ96xGBjTSMHTOqLBLutQE7Lu32KKdgSdy7A2cS4mKI2cgb3iGkhDJa5Siy-stezyuPm8qpbhmNxdNHMw", VAPID_PRIVATE_KEY: "6cJtkASCar5sZWguIAW7OjvyixpBw9p8zL8WDDwk9Jk", CALENDSO_ENCRYPTION_KEY: "22gfxhWUlcKliUeXcu8xNah2+HP/29ZX", + INTEGRATION_TEST_MODE: "true", }; diff --git a/packages/features/eventtypes/lib/getPublicEvent.ts b/packages/features/eventtypes/lib/getPublicEvent.ts index 796114169c..7bb8ad760b 100644 --- a/packages/features/eventtypes/lib/getPublicEvent.ts +++ b/packages/features/eventtypes/lib/getPublicEvent.ts @@ -221,6 +221,7 @@ function isAvailableInTimeSlot( return isWithinPeriod; } +export type PublicEventType = Awaited>; // TODO: Convert it to accept a single parameter with structured data export const getPublicEvent = async ( username: string, diff --git a/packages/features/schedules/lib/use-schedule/useApiV2AvailableSlots.ts b/packages/features/schedules/lib/use-schedule/useApiV2AvailableSlots.ts index 34ec55a3a2..2e8fb0e71d 100644 --- a/packages/features/schedules/lib/use-schedule/useApiV2AvailableSlots.ts +++ b/packages/features/schedules/lib/use-schedule/useApiV2AvailableSlots.ts @@ -1,12 +1,12 @@ import { useQuery } from "@tanstack/react-query"; import axios from "axios"; -import type { AvailableSlotsType } from "@calcom/platform-libraries"; import type { GetAvailableSlotsInput_2024_04_15, ApiResponse, ApiSuccessResponse, } from "@calcom/platform-types"; +import type { GetAvailableSlotsResponse } from "@calcom/trpc/server/routers/viewer/slots/util"; export const QUERY_KEY = "get-available-slots"; @@ -32,12 +32,15 @@ export const useApiV2AvailableSlots = ({ ], queryFn: () => { return axios - .get>(`${process.env.NEXT_PUBLIC_API_V2_URL}/slots/available`, { - params: rest, - }) + .get>( + `${process.env.NEXT_PUBLIC_API_V2_URL}/slots/available`, + { + params: rest, + } + ) .then((res) => { if (res.data.status === "success") { - return (res.data as ApiSuccessResponse).data; + return (res.data as ApiSuccessResponse).data; } throw new Error(res.data.error.message); }); diff --git a/packages/lib/defaultEvents.ts b/packages/lib/defaultEvents.ts index bb37f8cb31..90043d5b52 100644 --- a/packages/lib/defaultEvents.ts +++ b/packages/lib/defaultEvents.ts @@ -133,6 +133,13 @@ const commons = { rrTimestampBasis: null, interfaceLanguage: null, customReplyToEmail: null, + profileId: null, + requiresConfirmationWillBlockSlot: false, + canSendCalVideoTranscriptionEmails: false, + instantMeetingExpiryTimeOffsetInSeconds: 0, + instantMeetingScheduleId: null, + instantMeetingParameters: [], + eventTypeColor: null, }; export const dynamicEvent = { diff --git a/packages/lib/event-types/index.ts b/packages/lib/event-types/index.ts deleted file mode 100644 index a8401e8101..0000000000 --- a/packages/lib/event-types/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./transformers"; diff --git a/packages/lib/schedules/transformers/from-api.ts b/packages/lib/schedules/transformers/from-api.ts deleted file mode 100644 index c09cbf557a..0000000000 --- a/packages/lib/schedules/transformers/from-api.ts +++ /dev/null @@ -1,54 +0,0 @@ -import type { ScheduleAvailabilityInput_2024_06_11 } from "@calcom/platform-types/schedules/schedules-2024-06-11"; -import type { ScheduleOverrideInput_2024_06_11 } from "@calcom/platform-types/schedules/schedules-2024-06-11"; -import type { WeekDay } from "@calcom/platform-types/schedules/schedules-2024-06-11"; - -export function transformApiScheduleAvailability(inputAvailability: ScheduleAvailabilityInput_2024_06_11[]) { - return inputAvailability.map((availability) => ({ - days: availability.days.map(transformDayToNumber), - startTime: createDateFromHoursMinutes(availability.startTime), - endTime: createDateFromHoursMinutes(availability.endTime), - })); -} - -export function transformApiScheduleOverrides(inputOverrides: ScheduleOverrideInput_2024_06_11[]) { - return inputOverrides.map((override) => ({ - date: new Date(override.date), - startTime: createDateFromHoursMinutes(override.startTime), - endTime: createDateFromHoursMinutes(override.endTime), - })); -} - -function createDateFromHoursMinutes(hoursMinutes: string): Date { - const parts = hoursMinutes.split(":"); - - if (parts.length < 2) { - throw new Error("Invalid time format. Please use 'hh:mm'."); - } - - const hours = parseInt(parts[0], 10); - const minutes = parseInt(parts[1], 10); - - if (isNaN(hours) || hours < 0 || hours > 23) { - throw new Error("Hours must be a number between 0 and 23."); - } - if (isNaN(minutes) || minutes < 0 || minutes > 59) { - throw new Error("Minutes must be a number between 0 and 59."); - } - - const utcDate = new Date(Date.UTC(1970, 0, 1, hours, minutes)); - - return utcDate; -} - -function transformDayToNumber(day: WeekDay): number { - const weekMap: { [key in WeekDay]: number } = { - Sunday: 0, - Monday: 1, - Tuesday: 2, - Wednesday: 3, - Thursday: 4, - Friday: 5, - Saturday: 6, - }; - return weekMap[day]; -} diff --git a/packages/lib/schedules/transformers/index.ts b/packages/lib/schedules/transformers/index.ts index 832691070b..e023726862 100644 --- a/packages/lib/schedules/transformers/index.ts +++ b/packages/lib/schedules/transformers/index.ts @@ -1,2 +1 @@ export * from "./for-atom"; -export * from "./from-api"; diff --git a/packages/lib/schedules/updateSchedule.ts b/packages/lib/schedules/updateSchedule.ts new file mode 100644 index 0000000000..01642218c9 --- /dev/null +++ b/packages/lib/schedules/updateSchedule.ts @@ -0,0 +1,133 @@ +import { getAvailabilityFromSchedule } from "@calcom/lib/availability"; +import { hasEditPermissionForUserID } from "@calcom/lib/hasEditPermissionForUser"; +import { transformScheduleToAvailabilityForAtom } from "@calcom/lib/schedules/transformers/for-atom"; +import type { PrismaClient } from "@calcom/prisma"; +import type { TUpdateInputSchema } from "@calcom/trpc/server/routers/viewer/availability/schedule/update.schema"; +import { setupDefaultSchedule } from "@calcom/trpc/server/routers/viewer/availability/util"; +import type { TrpcSessionUser } from "@calcom/trpc/server/types"; + +import { TRPCError } from "@trpc/server"; + +interface IUpdateScheduleOptions { + input: TUpdateInputSchema; + user: Pick, "id" | "defaultScheduleId" | "timeZone">; + prisma: PrismaClient; +} + +export type UpdateScheduleResponse = Awaited>; + +export const updateSchedule = async ({ input, user, prisma }: IUpdateScheduleOptions) => { + const availability = input.schedule + ? getAvailabilityFromSchedule(input.schedule) + : (input.dateOverrides || []).map((dateOverride) => ({ + startTime: dateOverride.start, + endTime: dateOverride.end, + date: dateOverride.start, + days: [], + })); + + // Not able to update the schedule with userId where clause, so fetch schedule separately and then validate + // Bug: https://github.com/prisma/prisma/issues/7290 + const userSchedule = await prisma.schedule.findUnique({ + where: { + id: input.scheduleId, + }, + select: { + userId: true, + name: true, + id: true, + }, + }); + + if (!userSchedule) { + throw new TRPCError({ + code: "UNAUTHORIZED", + }); + } + + if (userSchedule?.userId !== user.id) { + const hasEditPermission = await hasEditPermissionForUserID({ + ctx: { + user, + }, + input: { memberId: userSchedule.userId }, + }); + if (!hasEditPermission) { + throw new TRPCError({ + code: "UNAUTHORIZED", + }); + } + } + + let updatedUser; + if (input.isDefault) { + const setupDefault = await setupDefaultSchedule(user.id, input.scheduleId, prisma); + updatedUser = setupDefault; + } + + if (!input.name) { + // TODO: Improve + // We don't want to pass the full schedule for just a set as default update + // but in the current logic, this wipes the existing availability. + // Return early to prevent this from happening. + return { + schedule: userSchedule, + isDefault: updatedUser + ? updatedUser.defaultScheduleId === input.scheduleId + : user.defaultScheduleId === input.scheduleId, + }; + } + + const schedule = await prisma.schedule.update({ + where: { + id: input.scheduleId, + }, + data: { + timeZone: input.timeZone, + name: input.name, + availability: { + deleteMany: { + scheduleId: { + equals: input.scheduleId, + }, + }, + createMany: { + data: [ + ...availability, + ...(input.dateOverrides || []).map((override) => ({ + date: override.start, + startTime: override.start, + endTime: override.end, + })), + ], + }, + }, + }, + select: { + id: true, + userId: true, + name: true, + availability: true, + timeZone: true, + eventType: { + select: { + id: true, + eventName: true, + }, + }, + }, + }); + + const userAvailability = transformScheduleToAvailabilityForAtom(schedule); + + return { + schedule, + availability: userAvailability, + timeZone: schedule.timeZone || user.timeZone, + isDefault: updatedUser + ? updatedUser.defaultScheduleId === schedule.id + : user.defaultScheduleId === schedule.id, + prevDefaultId: user.defaultScheduleId, + currentDefaultId: updatedUser ? updatedUser.defaultScheduleId : user.defaultScheduleId, + }; +}; diff --git a/packages/lib/server/repository/schedule.ts b/packages/lib/server/repository/schedule.ts index cd1e3e72c5..b641fed563 100644 --- a/packages/lib/server/repository/schedule.ts +++ b/packages/lib/server/repository/schedule.ts @@ -8,6 +8,10 @@ import { transformWorkingHoursForAtom, } from "../../schedules/transformers"; +export type FindDetailedScheduleByIdReturnType = Awaited< + ReturnType +>; + export class ScheduleRepository { static async findScheduleById({ id }: { id: number }) { const schedule = await prisma.schedule.findUnique({ diff --git a/packages/platform/atoms/availability/atom-api-transformers/transformApiScheduleForAtom.spec.ts b/packages/platform/atoms/availability/atom-api-transformers/transformApiScheduleForAtom.spec.ts deleted file mode 100644 index b147d841cc..0000000000 --- a/packages/platform/atoms/availability/atom-api-transformers/transformApiScheduleForAtom.spec.ts +++ /dev/null @@ -1,152 +0,0 @@ -import type { ScheduleOutput_2024_06_11 } from "@calcom/platform-types"; -import type { User } from "@calcom/prisma/client"; - -import { transformApiScheduleForAtom } from "./transformApiScheduleForAtom"; - -const SCHEDULE_OWNER_ID = 256; - -describe("transformScheduleForAtom", () => { - const user: Pick = { - id: SCHEDULE_OWNER_ID, - defaultScheduleId: 139, - timeZone: "America/New_York", - }; - - beforeEach(() => { - jest.resetAllMocks(); - }); - - it("should return null if user is not provided", () => { - const schedule: ScheduleOutput_2024_06_11 | null = { - id: 139, - ownerId: SCHEDULE_OWNER_ID, - name: "Default", - timeZone: "America/Cancun", - availability: [ - { - days: ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"], - startTime: "09:00", - endTime: "17:00", - }, - ], - isDefault: true, - overrides: [], - }; - - expect(transformApiScheduleForAtom(undefined, schedule, 1)).toBeNull(); - }); - - it("should return null if schedule is not provided", () => { - expect(transformApiScheduleForAtom(user, null, 1)).toBeNull(); - }); - - it("should transform schedule correctly", () => { - const schedule: ScheduleOutput_2024_06_11 = { - id: 139, - ownerId: SCHEDULE_OWNER_ID, - name: "Default", - timeZone: "America/Cancun", - availability: [ - { - days: ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"], - startTime: "09:00", - endTime: "17:00", - }, - ], - isDefault: true, - overrides: [], - }; - - const date = new Date(); - const year = date.getFullYear(); - const month = date.getMonth() + 1; - const day = date.getDate(); - - const expectedResult = { - id: 139, - name: "Default", - isManaged: false, - workingHours: [ - { - days: [1, 2, 3, 4, 5], - startTime: 540, - endTime: 1020, - userId: 256, - }, - ], - schedule: [ - { - userId: 256, - scheduleId: 139, - days: [1, 2, 3, 4, 5], - startTime: new Date(Date.UTC(1970, 0, 1, 9, 0)), - endTime: new Date(Date.UTC(1970, 0, 1, 17, 0)), - date: null, - }, - ], - availability: [ - [], - [ - { - start: new Date( - `${year}-${month.toString().padStart(2, "0")}-${day.toString().padStart(2, "0")}T09:00:00.000Z` - ), - end: new Date( - `${year}-${month.toString().padStart(2, "0")}-${day.toString().padStart(2, "0")}T17:00:00.000Z` - ), - }, - ], - [ - { - start: new Date( - `${year}-${month.toString().padStart(2, "0")}-${day.toString().padStart(2, "0")}T09:00:00.000Z` - ), - end: new Date( - `${year}-${month.toString().padStart(2, "0")}-${day.toString().padStart(2, "0")}T17:00:00.000Z` - ), - }, - ], - [ - { - start: new Date( - `${year}-${month.toString().padStart(2, "0")}-${day.toString().padStart(2, "0")}T09:00:00.000Z` - ), - end: new Date( - `${year}-${month.toString().padStart(2, "0")}-${day.toString().padStart(2, "0")}T17:00:00.000Z` - ), - }, - ], - [ - { - start: new Date( - `${year}-${month.toString().padStart(2, "0")}-${day.toString().padStart(2, "0")}T09:00:00.000Z` - ), - end: new Date( - `${year}-${month.toString().padStart(2, "0")}-${day.toString().padStart(2, "0")}T17:00:00.000Z` - ), - }, - ], - [ - { - start: new Date( - `${year}-${month.toString().padStart(2, "0")}-${day.toString().padStart(2, "0")}T09:00:00.000Z` - ), - end: new Date( - `${year}-${month.toString().padStart(2, "0")}-${day.toString().padStart(2, "0")}T17:00:00.000Z` - ), - }, - ], - [], - ], - timeZone: "America/Cancun", - dateOverrides: [], - isDefault: true, - isLastSchedule: true, - readOnly: false, - }; - - const result = transformApiScheduleForAtom(user, schedule, 1); - - expect(result).toEqual(expectedResult); - }); -}); diff --git a/packages/platform/atoms/availability/atom-api-transformers/transformApiScheduleForAtom.ts b/packages/platform/atoms/availability/atom-api-transformers/transformApiScheduleForAtom.ts deleted file mode 100644 index a227fc5c7e..0000000000 --- a/packages/platform/atoms/availability/atom-api-transformers/transformApiScheduleForAtom.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { - transformAvailabilityForAtom, - transformDateOverridesForAtom, - transformApiScheduleAvailability, - transformApiScheduleOverrides, - transformWorkingHoursForAtom, -} from "@calcom/lib/schedules/transformers"; -import type { ScheduleOutput_2024_06_11 } from "@calcom/platform-types"; -import type { User } from "@calcom/prisma/client"; - -export function transformApiScheduleForAtom( - user: Pick | undefined, - schedule: ScheduleOutput_2024_06_11 | null | undefined, - userSchedulesCount: number -) { - if (!user || !schedule) { - return null; - } - - const transformedSchedule = { - ...schedule, - availability: transformApiScheduleAvailability(schedule.availability), - overrides: transformApiScheduleOverrides(schedule.overrides), - }; - - const combined = [...transformedSchedule.availability, ...transformedSchedule.overrides]; - const availability = combined.map((entry) => { - return { - ...entry, - userId: schedule.ownerId, - scheduleId: schedule.id, - days: "days" in entry ? entry.days : [], - date: "date" in entry ? entry.date : null, - id: schedule.id, - }; - }); - - const atomSchedule = { - ...schedule, - availability, - userId: schedule.ownerId, - }; - - const timeZone = schedule.timeZone || user.timeZone; - const defaultScheduleId = user.defaultScheduleId; - - return { - id: schedule.id, - name: schedule.name, - isManaged: schedule.ownerId !== user.id, - workingHours: transformWorkingHoursForAtom(atomSchedule), - schedule: availability, - availability: transformAvailabilityForAtom(atomSchedule), - timeZone, - dateOverrides: transformDateOverridesForAtom(atomSchedule, timeZone), - isDefault: defaultScheduleId === schedule.id, - isLastSchedule: userSchedulesCount <= 1, - readOnly: schedule.ownerId !== user.id, - }; -} diff --git a/packages/platform/atoms/availability/atom-api-transformers/transformAtomScheduleForApi.spec.ts b/packages/platform/atoms/availability/atom-api-transformers/transformAtomScheduleForApi.spec.ts deleted file mode 100644 index 5f32c06865..0000000000 --- a/packages/platform/atoms/availability/atom-api-transformers/transformAtomScheduleForApi.spec.ts +++ /dev/null @@ -1,72 +0,0 @@ -import type { UpdateScheduleInput_2024_06_11 } from "@calcom/platform-types"; - -import type { AvailabilityFormValues } from "../types"; -import { transformAtomScheduleForApi } from "./transformAtomScheduleForApi"; - -describe("transformAtomScheduleForApi", () => { - it("should transform atom schedule correctly to API format", () => { - const input: AvailabilityFormValues = { - name: "Default", - schedule: [ - [], - [ - { - start: new Date("2024-05-14T09:00:00.000Z"), - end: new Date("2024-05-14T17:00:00.000Z"), - }, - ], - [ - { - start: new Date("2024-05-14T09:00:00.000Z"), - end: new Date("2024-05-14T17:00:00.000Z"), - }, - ], - [ - { - start: new Date("2024-05-14T09:00:00.000Z"), - end: new Date("2024-05-14T17:00:00.000Z"), - }, - ], - [ - { - start: new Date("2024-05-14T09:00:00.000Z"), - end: new Date("2024-05-14T17:00:00.000Z"), - }, - ], - [ - { - start: new Date("2024-05-14T11:00:00.000Z"), - end: new Date("2024-05-14T12:00:00.000Z"), - }, - ], - [], - ], - dateOverrides: [], - timeZone: "America/Cancun", - isDefault: true, - }; - - const expectedOutput: UpdateScheduleInput_2024_06_11 = { - name: "Default", - timeZone: "America/Cancun", - isDefault: true, - availability: [ - { - days: ["Monday", "Tuesday", "Wednesday", "Thursday"], - startTime: "09:00", - endTime: "17:00", - }, - { - days: ["Friday"], - startTime: "11:00", - endTime: "12:00", - }, - ], - overrides: [], - }; - - const result = transformAtomScheduleForApi(input); - - expect(result).toEqual(expectedOutput); - }); -}); diff --git a/packages/platform/atoms/availability/atom-api-transformers/transformAtomScheduleForApi.ts b/packages/platform/atoms/availability/atom-api-transformers/transformAtomScheduleForApi.ts deleted file mode 100644 index a9aa70cc6e..0000000000 --- a/packages/platform/atoms/availability/atom-api-transformers/transformAtomScheduleForApi.ts +++ /dev/null @@ -1,88 +0,0 @@ -import type { - ScheduleAvailabilityInput_2024_06_11, - UpdateScheduleInput_2024_06_11, - WeekDay, -} from "@calcom/platform-types"; - -import type { AvailabilityFormValues } from "../types"; - -export function transformAtomScheduleForApi(body: AvailabilityFormValues): UpdateScheduleInput_2024_06_11 { - const { name, schedule, dateOverrides, timeZone, isDefault } = body; - - const overrides = - dateOverrides.flatMap( - (dateOverridesRanges) => - dateOverridesRanges?.ranges?.map((range) => transfromAtomOverrideForApi(range)) ?? [] - ) ?? []; - - const availability = formatScheduleTime(schedule); - - return { name, timeZone, isDefault, availability, overrides }; -} - -type AtomDateOverride = { - start: Date; - end: Date; -}; - -function transfromAtomOverrideForApi(override: AtomDateOverride) { - const date = `${override.start.getUTCFullYear()}-${(override.start.getUTCMonth() + 1) - .toString() - .padStart(2, "0")}-${override.start.getUTCDate().toString().padStart(2, "0")}`; - - return { - date, - startTime: padHoursMinutesWithZeros(`${override.start.getUTCHours()}:${override.start.getUTCMinutes()}`), - endTime: padHoursMinutesWithZeros(`${override.end.getUTCHours()}:${override.end.getUTCMinutes()}`), - }; -} - -function padHoursMinutesWithZeros(hhMM: string) { - const [hours, minutes] = hhMM.split(":"); - - const formattedHours = hours.padStart(2, "0"); - const formattedMinutes = minutes.padStart(2, "0"); - - return `${formattedHours}:${formattedMinutes}`; -} - -function formatScheduleTime( - weekSchedule: AvailabilityFormValues["schedule"] -): UpdateScheduleInput_2024_06_11["availability"] { - const daysOfWeek: WeekDay[] = [ - "Sunday", - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday", - ]; - - const formattedSchedule = weekSchedule.map((daySchedule, index) => - daySchedule.map((event) => ({ - startTime: convertToHHMM(event.start.toISOString()), - endTime: convertToHHMM(event.end.toISOString()), - days: [daysOfWeek[index]], - })) - ); - - const timeMap: { [key: string]: ScheduleAvailabilityInput_2024_06_11 } = {}; - - formattedSchedule.flat().forEach((event) => { - const timeKey = `${event.startTime}-${event.endTime}`; - if (!timeMap[timeKey]) { - timeMap[timeKey] = { startTime: event.startTime, endTime: event.endTime, days: [] }; - } - timeMap[timeKey].days.push(...event.days); - }); - - return Object.values(timeMap); -} - -function convertToHHMM(isoDate: string): string { - const date = new Date(isoDate); - const hours = date.getUTCHours().toString().padStart(2, "0"); - const minutes = date.getUTCMinutes().toString().padStart(2, "0"); - return `${hours}:${minutes}`; -} diff --git a/packages/platform/atoms/availability/wrappers/AvailabilitySettingsPlatformWrapper.tsx b/packages/platform/atoms/availability/wrappers/AvailabilitySettingsPlatformWrapper.tsx index dfdcc83953..e6756f9af4 100644 --- a/packages/platform/atoms/availability/wrappers/AvailabilitySettingsPlatformWrapper.tsx +++ b/packages/platform/atoms/availability/wrappers/AvailabilitySettingsPlatformWrapper.tsx @@ -1,25 +1,18 @@ import type { ReactNode } from "react"; import type { ScheduleLabelsType } from "@calcom/features/schedules/components/Schedule"; -import type { - ApiErrorResponse, - ApiResponse, - ScheduleOutput_2024_06_11, - UpdateScheduleInput_2024_06_11, -} from "@calcom/platform-types"; +import type { UpdateScheduleResponse } from "@calcom/lib/schedules/updateSchedule"; +import type { ApiErrorResponse, ApiResponse, UpdateScheduleInput_2024_06_11 } from "@calcom/platform-types"; +import { useAtomSchedule } from "../../hooks/schedules/useAtomSchedule"; +import { useAtomUpdateSchedule } from "../../hooks/schedules/useAtomUpdateSchedule"; import useDeleteSchedule from "../../hooks/schedules/useDeleteSchedule"; -import { useSchedule } from "../../hooks/schedules/useSchedule"; -import { useSchedules } from "../../hooks/schedules/useSchedules"; -import useUpdateSchedule from "../../hooks/schedules/useUpdateSchedule"; import { useMe } from "../../hooks/useMe"; import { AtomsWrapper } from "../../src/components/atoms-wrapper"; import { useToast } from "../../src/components/ui/use-toast"; import type { Availability } from "../AvailabilitySettings"; import type { CustomClassNames } from "../AvailabilitySettings"; import { AvailabilitySettings } from "../AvailabilitySettings"; -import { transformApiScheduleForAtom } from "../atom-api-transformers/transformApiScheduleForAtom"; -import { transformAtomScheduleForApi } from "../atom-api-transformers/transformAtomScheduleForApi"; import type { AvailabilityFormValues } from "../types"; type AvailabilitySettingsPlatformWrapperProps = { @@ -28,7 +21,7 @@ type AvailabilitySettingsPlatformWrapperProps = { tooltips: Partial; }; customClassNames?: Partial; - onUpdateSuccess?: (res: ApiResponse) => void; + onUpdateSuccess?: (res: ApiResponse) => void; onUpdateError?: (err: ApiErrorResponse) => void; onDeleteSuccess?: (res: ApiResponse) => void; onDeleteError?: (err: ApiErrorResponse) => void; @@ -62,10 +55,8 @@ export const AvailabilitySettingsPlatformWrapper = ({ noScheduleChildren, loadingStateChildren, }: AvailabilitySettingsPlatformWrapperProps) => { - const { isLoading, data: schedule } = useSchedule(id); - const { data: schedules } = useSchedules(); + const { isLoading, data: atomSchedule } = useAtomSchedule(id); const { data: me } = useMe(); - const atomSchedule = transformApiScheduleForAtom(me?.data, schedule, schedules?.length || 0); const { timeFormat } = me?.data || { timeFormat: null }; const { toast } = useToast(); @@ -88,7 +79,7 @@ export const AvailabilitySettingsPlatformWrapper = ({ }, }); - const { mutate: updateSchedule, isPending: isSavingInProgress } = useUpdateSchedule({ + const { mutate: updateSchedule, isPending: isSavingInProgress } = useAtomUpdateSchedule({ onSuccess: (res) => { onUpdateSuccess?.(res); if (!disableToasts) { @@ -112,16 +103,20 @@ export const AvailabilitySettingsPlatformWrapper = ({ }; const handleUpdate = async (id: number, body: AvailabilityFormValues) => { - const updateBody = transformAtomScheduleForApi(body); - let canUpdate = true; if (onBeforeUpdate) { - canUpdate = await onBeforeUpdate(updateBody); + canUpdate = await onBeforeUpdate(body); } if (canUpdate) { - updateSchedule({ id, ...updateBody }); + updateSchedule({ + scheduleId: id, + body: { + ...body, + dateOverrides: body.dateOverrides.flatMap((override) => override.ranges), + }, + }); } }; diff --git a/packages/platform/atoms/booker/BookerPlatformWrapper.tsx b/packages/platform/atoms/booker/BookerPlatformWrapper.tsx index f0610fe1b3..b55ac0962a 100644 --- a/packages/platform/atoms/booker/BookerPlatformWrapper.tsx +++ b/packages/platform/atoms/booker/BookerPlatformWrapper.tsx @@ -14,14 +14,10 @@ import { useTimePreferences } from "@calcom/features/bookings/lib"; import { useTimesForSchedule } from "@calcom/features/schedules/lib/use-schedule/useTimesForSchedule"; import { getRoutedTeamMemberIdsFromSearchParams } from "@calcom/lib/bookings/getRoutedTeamMemberIdsFromSearchParams"; import { getUsernameList } from "@calcom/lib/defaultEvents"; +import type { ConnectedDestinationCalendars } from "@calcom/lib/getConnectedDestinationCalendars"; import { localStorage } from "@calcom/lib/webstorage"; -import type { ConnectedDestinationCalendars } from "@calcom/platform-libraries"; import { BookerLayouts } from "@calcom/prisma/zod-utils"; -import { - transformApiEventTypeForAtom, - transformApiTeamEventTypeForAtom, -} from "../event-types/atom-api-transformers/transformApiEventTypeForAtom"; import { useCreateBooking } from "../hooks/bookings/useCreateBooking"; import { useCreateInstantBooking } from "../hooks/bookings/useCreateInstantBooking"; import { useCreateRecurringBooking } from "../hooks/bookings/useCreateRecurringBooking"; @@ -30,8 +26,7 @@ import { QUERY_KEY as BOOKING_RESCHEDULE_KEY, } from "../hooks/bookings/useGetBookingForReschedule"; import { useHandleBookEvent } from "../hooks/bookings/useHandleBookEvent"; -import { useEventType } from "../hooks/event-types/public/useEventType"; -import { useTeamEventType } from "../hooks/event-types/public/useTeamEventType"; +import { useAtomGetPublicEvent } from "../hooks/event-types/public/useAtomGetPublicEvent"; import { useAtomsContext } from "../hooks/useAtomsContext"; import { useAvailableSlots } from "../hooks/useAvailableSlots"; import { useCalendarsBusyTimes } from "../hooks/useCalendarsBusyTimes"; @@ -74,6 +69,7 @@ export const BookerPlatformWrapper = ( const bookingData = useBookerStore((state) => state.bookingData); const setSelectedTimeslot = useBookerStore((state) => state.setSelectedTimeslot); const setSelectedMonth = useBookerStore((state) => state.setMonth); + const selectedDuration = useBookerStore((state) => state.selectedDuration); const [isOverlayCalendarEnabled, setIsOverlayCalendarEnabled] = useState( Boolean(localStorage?.getItem?.("overlayCalendarSwitchDefault")) @@ -147,61 +143,13 @@ export const BookerPlatformWrapper = ( return getUsernameList(username ?? "").length > 1; }, [username]); - const { isSuccess, isError, isPending, data } = useEventType(username, props.eventSlug, props.isTeamEvent); - const { - isSuccess: isTeamSuccess, - isError: isTeamError, - isPending: isTeamPending, - data: teamEventTypeData, - } = useTeamEventType(teamId, props.eventSlug, props.isTeamEvent, props.hostsLimit); - - const event = useMemo(() => { - if (props.isTeamEvent && !isTeamPending && teamId && teamEventTypeData && teamEventTypeData.length > 0) { - return { - isSuccess: isTeamSuccess, - isError: isTeamError, - isPending: isTeamPending, - data: - teamEventTypeData && teamEventTypeData.length > 0 - ? transformApiTeamEventTypeForAtom( - teamEventTypeData[0], - props.entity, - props.defaultFormValues, - !!props.hostsLimit - ) - : undefined, - }; - } - - return { - isSuccess, - isError, - isPending, - data: - data && data.length > 0 - ? transformApiEventTypeForAtom(data[0], props.entity, props.defaultFormValues, !!props.hostsLimit) - : undefined, - }; - }, [ - props.isTeamEvent, + const event = useAtomGetPublicEvent({ + username, + eventSlug: props.eventSlug, + isTeamEvent: props.isTeamEvent, teamId, - props.entity, - teamEventTypeData, - isSuccess, - isError, - isPending, - data, - isTeamPending, - isTeamSuccess, - isTeamError, - props.hostsLimit, - ]); - - if (isDynamic && props.duration && event.data) { - // note(Lauris): Mandatory - In case of "dynamic" event type default event duration returned by the API is 30, - // but we are re-using the dynamic event type as a team event, so we must set the event length to whatever the event length is. - event.data.length = props.duration; - } + selectedDuration, + }); const bookerLayout = useBookerLayout(event.data?.profile?.bookerLayouts); useInitializeBookerStore({ @@ -209,7 +157,7 @@ export const BookerPlatformWrapper = ( teamMemberEmail, crmAppSlug, crmOwnerRecordType, - eventId: event.data?.id, + eventId: event?.data?.id, rescheduleUid: props.rescheduleUid ?? null, bookingUid: props.bookingUid ?? null, layout: layout, @@ -225,8 +173,6 @@ export const BookerPlatformWrapper = ( const month = useBookerStore((state) => state.month); const eventSlug = useBookerStore((state) => state.eventSlug); - const selectedDuration = useBookerStore((state) => state.selectedDuration); - const { data: session } = useMe(); const hasSession = !!session; const { name: defaultName, guests: defaultGuests, ...restFormValues } = props.defaultFormValues ?? {}; @@ -323,7 +269,7 @@ export const BookerPlatformWrapper = ( Boolean(teamId || username) && Boolean(month) && Boolean(timezone) && - (props.isTeamEvent ? !isTeamPending : !isPending) && + !event?.isPending && Boolean(event?.data?.id), orgSlug: props.entity?.orgSlug ?? undefined, eventTypeSlug: isDynamic ? "dynamic" : eventSlug || "", @@ -331,7 +277,7 @@ export const BookerPlatformWrapper = ( }); const bookerForm = useBookingForm({ - event: event.data, + event: event?.data, sessionEmail: session?.data?.email && clientId ? session.data.email.replace(`+${clientId}`, "") @@ -356,8 +302,8 @@ export const BookerPlatformWrapper = ( schedule.refetch(); props.onCreateBookingSuccess?.(data); - if (!preventEventTypeRedirect && !!event.data?.successRedirectUrl) { - window.location.href = event.data.successRedirectUrl; + if (!preventEventTypeRedirect && !!event?.data?.successRedirectUrl) { + window.location.href = event?.data?.successRedirectUrl; } }, onError: props.onCreateBookingError, @@ -376,8 +322,8 @@ export const BookerPlatformWrapper = ( schedule.refetch(); props.onCreateRecurringBookingSuccess?.(data); - if (!!event.data?.successRedirectUrl) { - window.location.href = event.data.successRedirectUrl; + if (!!event?.data?.successRedirectUrl) { + window.location.href = event?.data?.successRedirectUrl; } }, onError: props.onCreateRecurringBookingError, diff --git a/packages/platform/atoms/booker/types.ts b/packages/platform/atoms/booker/types.ts index a34d592697..41e59cfc73 100644 --- a/packages/platform/atoms/booker/types.ts +++ b/packages/platform/atoms/booker/types.ts @@ -3,7 +3,7 @@ import type React from "react"; import type { BookerProps } from "@calcom/features/bookings/Booker"; import type { BookerStore } from "@calcom/features/bookings/Booker/store"; import type { Timezone } from "@calcom/features/bookings/Booker/types"; -import type { BookingResponse } from "@calcom/platform-libraries"; +import type { BookingResponse } from "@calcom/features/bookings/types"; import type { ApiSuccessResponse, ApiErrorResponse, diff --git a/packages/platform/atoms/destination-calendar/DestinationCalendarSelector.tsx b/packages/platform/atoms/destination-calendar/DestinationCalendarSelector.tsx index df626d838e..baa32b4edd 100644 --- a/packages/platform/atoms/destination-calendar/DestinationCalendarSelector.tsx +++ b/packages/platform/atoms/destination-calendar/DestinationCalendarSelector.tsx @@ -4,11 +4,11 @@ import { useState, useEffect, useMemo } from "react"; import { SingleValueComponent } from "@calcom/features/calendars/DestinationCalendarSelector"; import { OptionComponent } from "@calcom/features/calendars/DestinationCalendarSelector"; +import type { ConnectedDestinationCalendars } from "@calcom/lib/getConnectedDestinationCalendars"; import { useLocale } from "@calcom/lib/hooks/useLocale"; -import type { ConnectedDestinationCalendars } from "@calcom/platform-libraries"; +import classNames from "@calcom/ui/classNames"; import { Badge } from "@calcom/ui/components/badge"; import { Select } from "@calcom/ui/components/form"; -import classNames from "@calcom/ui/classNames"; import { getPlaceholderContent } from "../lib/getPlaceholderContent"; diff --git a/packages/platform/atoms/event-types/atom-api-transformers/transformApiEventTypeForAtom.ts b/packages/platform/atoms/event-types/atom-api-transformers/transformApiEventTypeForAtom.ts deleted file mode 100644 index ca7e8e4b16..0000000000 --- a/packages/platform/atoms/event-types/atom-api-transformers/transformApiEventTypeForAtom.ts +++ /dev/null @@ -1,407 +0,0 @@ -import { defaultEvents } from "@calcom/lib/defaultEvents"; -import type { SystemField } from "@calcom/lib/event-types/transformers"; -import { - transformTeamLocationsApiToInternal, - transformBookingFieldsApiToInternal, - systemBeforeFieldName, - systemBeforeFieldEmail, - systemBeforeFieldLocation, - systemAfterFieldRescheduleReason, - transformRecurrenceApiToInternal, - transformIntervalLimitsApiToInternal, - transformSeatsApiToInternal, - transformEventColorsApiToInternal, - transformConfirmationPolicyApiToInternal, - transformFutureBookingLimitsApiToInternal, -} from "@calcom/lib/event-types/transformers"; -import { getBookerBaseUrlSync } from "@calcom/lib/getBookerUrl/client"; -import type { - EmailDefaultFieldOutput_2024_06_14, - EventTypeOutput_2024_06_14, - InputLocation_2024_06_14, - KnownBookingField_2024_06_14, - NameDefaultFieldOutput_2024_06_14, - TeamEventTypeOutput_2024_06_14, -} from "@calcom/platform-types"; -import { - bookerLayoutOptions, - BookerLayouts, - bookerLayouts as bookerLayoutsSchema, - userMetadata as userMetadataSchema, - eventTypeBookingFields, - EventTypeMetaDataSchema, -} from "@calcom/prisma/zod-utils"; - -import type { BookerPlatformWrapperAtomProps } from "../../booker/types"; - -export function transformApiEventTypeForAtom( - eventType: Omit & { bannerUrl?: string }, - entity: BookerPlatformWrapperAtomProps["entity"] | undefined, - defaultFormValues: BookerPlatformWrapperAtomProps["defaultFormValues"] | undefined, - limitHosts = false -) { - const { - lengthInMinutes, - lengthInMinutesOptions, - locations, - bookingFields, - users, - recurrence, - bookingLimitsCount, - bookingLimitsDuration, - seats, - color, - confirmationPolicy, - customName, - useDestinationCalendarEmail, - bookingWindow, - ...rest - } = eventType; - - const isDefault = isDefaultEvent(rest.title); - const user = users[0]; - - const confirmationPolicyTransformed = transformConfirmationPolicyApiToInternal(confirmationPolicy); - const defaultEventBookerLayouts = { - enabledLayouts: [...bookerLayoutOptions], - defaultLayout: BookerLayouts.MONTH_VIEW, - }; - const firstUsersMetadata = userMetadataSchema.parse(user.metadata || {}); - const bookerLayouts = bookerLayoutsSchema.parse( - firstUsersMetadata?.defaultBookerLayouts || defaultEventBookerLayouts - ); - const metadata = EventTypeMetaDataSchema.parse(eventType.metadata); - const usersTransformed = users.map((user) => ({ - ...user, - metadata: undefined, - bookerUrl: getBookerBaseUrlSync(null), - profile: { - username: user.username || "", - name: user.name, - weekStart: user.weekStart, - image: "", - brandColor: user.brandColor, - darkBrandColor: user.darkBrandColor, - theme: null, - organization: null, - id: user.id, - organizationId: null, - userId: user.id, - upId: `usr-${user.id}`, - }, - })); - - return { - ...rest, - length: lengthInMinutes, - locations: getLocations(locations), - bookingFields: getBookingFields(bookingFields, defaultFormValues), - isDefault, - isDynamic: false, - profile: { - username: user.username, - name: user.name, - weekStart: user.weekStart, - image: "", - brandColor: user.brandColor, - darkBrandColor: user.darkBrandColor, - theme: null, - bookerLayouts, - }, - entity: entity - ? { - ...entity, - orgSlug: entity.orgSlug || null, - teamSlug: entity.teamSlug || null, - fromRedirectOfNonOrgLink: true, - name: entity.name || null, - logoUrl: entity.logoUrl || undefined, - } - : { - fromRedirectOfNonOrgLink: true, - considerUnpublished: false, - orgSlug: null, - teamSlug: null, - name: null, - logoUrl: undefined, - }, - hosts: [], - subsetOfHosts: [], - users: !limitHosts ? usersTransformed : undefined, - subsetOfUsers: usersTransformed, - bookingLimits: bookingLimitsCount ? transformIntervalLimitsApiToInternal(bookingLimitsCount) : undefined, - durationLimits: bookingLimitsDuration - ? transformIntervalLimitsApiToInternal(bookingLimitsDuration) - : undefined, - - metadata: { - ...metadata, - requiresConfirmationThreshold: - confirmationPolicyTransformed?.requiresConfirmationThreshold ?? undefined, - multipleDuration: lengthInMinutesOptions, - }, - - requiresConfirmation: confirmationPolicyTransformed?.requiresConfirmation ?? undefined, - requiresConfirmationWillBlockSlot: - confirmationPolicyTransformed?.requiresConfirmationWillBlockSlot ?? undefined, - - eventTypeColor: transformEventColorsApiToInternal(color), - recurringEvent: recurrence ? transformRecurrenceApiToInternal(recurrence) : null, - ...transformSeatsApiToInternal(seats), - eventName: customName, - useEventTypeDestinationCalendarEmail: useDestinationCalendarEmail, - ...getBookingWindow(bookingWindow), - }; -} - -export function transformApiTeamEventTypeForAtom( - eventType: TeamEventTypeOutput_2024_06_14, - entity: BookerPlatformWrapperAtomProps["entity"] | undefined, - defaultFormValues: BookerPlatformWrapperAtomProps["defaultFormValues"] | undefined, - limitHosts = false -) { - const { - lengthInMinutes, - lengthInMinutesOptions, - locations, - hosts, - bookingFields, - recurrence, - team, - bookingLimitsCount, - bookingLimitsDuration, - seats, - color, - confirmationPolicy, - customName, - useDestinationCalendarEmail, - bookingWindow, - ...rest - } = eventType; - - const metadata = EventTypeMetaDataSchema.parse(eventType.metadata); - - const isDefault = isDefaultEvent(rest.title); - - const confirmationPolicyTransformed = transformConfirmationPolicyApiToInternal(confirmationPolicy); - const defaultEventBookerLayouts = { - enabledLayouts: [...bookerLayoutOptions], - defaultLayout: BookerLayouts.MONTH_VIEW, - }; - const firstUsersMetadata = userMetadataSchema.parse({}); - const bookerLayouts = bookerLayoutsSchema.parse( - firstUsersMetadata?.defaultBookerLayouts || defaultEventBookerLayouts - ); - - const hostTransformed = hosts.map((host) => ({ - user: { - id: host.userId, - avatarUrl: null, - name: host.name, - username: "", - metadata: {}, - darkBrandColor: null, - brandColor: null, - theme: null, - weekStart: "Sunday", - }, - })); - - const usersTransformed = hosts.map((host) => ({ - ...host, - metadata: undefined, - bookerUrl: getBookerBaseUrlSync(null), - profile: { - username: "", - name: host.name, - weekStart: "Sunday", - image: "", - brandColor: null, - darkBrandColor: null, - theme: null, - organization: null, - id: host.userId, - organizationId: null, - userId: host.userId, - upId: `usr-${host.userId}`, - }, - })); - - return { - ...rest, - length: lengthInMinutes, - locations: getLocations(locations), - bookingFields: getBookingFields(bookingFields, defaultFormValues), - isDefault, - isDynamic: false, - profile: { - username: team?.slug ?? "team", - name: team?.name, - weekStart: team?.weekStart ?? "Sunday", - image: team?.logoUrl, - brandColor: team?.brandColor ?? null, - darkBrandColor: team?.darkBrandColor ?? null, - theme: team?.theme ?? null, - bookerLayouts, - }, - bannerUrl: team?.bannerUrl, - entity: entity - ? { - ...entity, - orgSlug: entity.orgSlug || null, - teamSlug: entity.teamSlug || null, - fromRedirectOfNonOrgLink: true, - name: entity.name || null, - logoUrl: entity.logoUrl || undefined, - } - : { - fromRedirectOfNonOrgLink: true, - considerUnpublished: false, - orgSlug: null, - teamSlug: team?.slug, - name: team?.name, - logoUrl: team?.logoUrl, - }, - hosts: !limitHosts ? hostTransformed : undefined, - subsetOfHosts: hostTransformed, - users: !limitHosts ? usersTransformed : undefined, - subsetOfUsers: usersTransformed, - recurringEvent: recurrence ? transformRecurrenceApiToInternal(recurrence) : null, - bookingLimits: bookingLimitsCount ? transformIntervalLimitsApiToInternal(bookingLimitsCount) : undefined, - durationLimits: bookingLimitsDuration - ? transformIntervalLimitsApiToInternal(bookingLimitsDuration) - : undefined, - - metadata: { - ...metadata, - requiresConfirmationThreshold: - confirmationPolicyTransformed?.requiresConfirmationThreshold ?? undefined, - multipleDuration: lengthInMinutesOptions, - }, - - requiresConfirmation: confirmationPolicyTransformed?.requiresConfirmation ?? undefined, - requiresConfirmationWillBlockSlot: - confirmationPolicyTransformed?.requiresConfirmationWillBlockSlot ?? undefined, - - eventTypeColor: transformEventColorsApiToInternal(color), - ...transformSeatsApiToInternal(seats), - eventName: customName, - useEventTypeDestinationCalendarEmail: useDestinationCalendarEmail, - ...getBookingWindow(bookingWindow), - }; -} - -function isDefaultEvent(eventSlug: string) { - const foundInDefaults = defaultEvents.find((obj) => { - return obj.slug === eventSlug; - }); - return !!foundInDefaults; -} - -function getLocations(locations: EventTypeOutput_2024_06_14["locations"]) { - const transformed = transformTeamLocationsApiToInternal( - locations.filter((location) => isAtomSupportedLocation(location)) - ); - - const withPrivateHidden = transformed.map((location) => { - const { type } = location; - - switch (type) { - case "inPerson": - return location?.displayLocationPublicly ? location : { ...location, address: "" }; - case "link": - return location?.displayLocationPublicly ? location : { ...location, link: "" }; - case "userPhone": - return location?.displayLocationPublicly - ? location - : { - ...location, - hostPhoneNumber: "", - }; - default: - return location; - } - }); - - return withPrivateHidden; -} - -function isAtomSupportedLocation( - location: EventTypeOutput_2024_06_14["locations"][number] -): location is InputLocation_2024_06_14 { - const supportedIntegrations = ["cal-video", "google-meet", "office365-video", "zoom"]; - - return ( - location.type === "address" || - location.type === "attendeeAddress" || - location.type === "link" || - location.type === "phone" || - location.type === "attendeePhone" || - location.type === "attendeeDefined" || - location.type === "organizersDefaultApp" || - (location.type === "integration" && supportedIntegrations.includes(location.integration)) - ); -} - -function getBookingFields( - bookingFields: EventTypeOutput_2024_06_14["bookingFields"], - defaultFormValues: BookerPlatformWrapperAtomProps["defaultFormValues"] | undefined -) { - const transformedBookingFields = transformBookingFieldsApiToInternal( - bookingFields.filter((field) => isKnownField(field)) - ); - - const hasNameField = transformedBookingFields.some((field) => field.name === "name"); - const hasEmailField = transformedBookingFields.some((field) => field.name === "email"); - const hasLocationField = transformedBookingFields.some((field) => field.name === "location"); - const hasRescheduleReasonField = transformedBookingFields.some( - (field) => field.name === "rescheduleReason" - ); - - const systemBeforeFields: SystemField[] = []; - if (!hasNameField) { - systemBeforeFields.push(systemBeforeFieldName); - } - if (!hasEmailField) { - systemBeforeFields.push(systemBeforeFieldEmail); - } - if (!hasLocationField) { - systemBeforeFields.push(systemBeforeFieldLocation); - } - const systemAfterFields: SystemField[] = []; - if (!hasRescheduleReasonField) { - systemAfterFields.push(systemAfterFieldRescheduleReason); - } - - const fieldsWithSystem = [...systemBeforeFields, ...transformedBookingFields, ...systemAfterFields]; - - // note(Lauris): in web app booking form values can be passed as url query params, but booker atom does not accept booking field values via url, - // so defaultFormValues act as a way to prefill booking form fields, and if the field in database has disableOnPrefill=true and value passed then its read only. - const defaultFormValuesKeys = defaultFormValues ? Object.keys(defaultFormValues) : []; - if (defaultFormValuesKeys.length) { - for (const field of fieldsWithSystem) { - if (defaultFormValuesKeys.includes(field.name) && field.disableOnPrefill) { - field.editable = "user-readonly"; - } - } - } - - return eventTypeBookingFields.brand<"HAS_SYSTEM_FIELDS">().parse(fieldsWithSystem); -} - -function isKnownField( - field: EventTypeOutput_2024_06_14["bookingFields"][number] -): field is KnownBookingField_2024_06_14 { - return field.type !== "unknown"; -} - -function getBookingWindow(inputBookingWindow: EventTypeOutput_2024_06_14["bookingWindow"]) { - const res = transformFutureBookingLimitsApiToInternal(inputBookingWindow); - return !!res ? res : {}; -} - -function isDefaultEditableField( - field: EventTypeOutput_2024_06_14["bookingFields"][number] -): field is NameDefaultFieldOutput_2024_06_14 | EmailDefaultFieldOutput_2024_06_14 { - return field.type === "name" || field.type === "email"; -} diff --git a/packages/platform/atoms/event-types/wrappers/EventAvailabilityTabPlatformWrapper.tsx b/packages/platform/atoms/event-types/wrappers/EventAvailabilityTabPlatformWrapper.tsx index aa9bc5c9cf..1424be8238 100644 --- a/packages/platform/atoms/event-types/wrappers/EventAvailabilityTabPlatformWrapper.tsx +++ b/packages/platform/atoms/event-types/wrappers/EventAvailabilityTabPlatformWrapper.tsx @@ -6,8 +6,7 @@ import type { EventTypeSetup, FormValues } from "@calcom/features/eventtypes/lib import type { User } from "@calcom/prisma/client"; import type { Availability } from "../../availability/AvailabilitySettings"; -import { transformApiScheduleForAtom } from "../../availability/atom-api-transformers/transformApiScheduleForAtom"; -import { useSchedule } from "../../hooks/schedules/useSchedule"; +import { useAtomSchedule } from "../../hooks/schedules/useAtomSchedule"; import { useSchedules } from "../../hooks/schedules/useSchedules"; import { useTeamMembers } from "../../hooks/teams/useTeamMembers"; import { useAtomHostSchedules } from "../hooks/useAtomHostSchedules"; @@ -28,13 +27,10 @@ const EventAvailabilityTabPlatformWrapper = ({ const formMethods = useFormContext(); const scheduleId = formMethods.watch("schedule"); - const { isLoading: isSchedulePending, data: scheduleQueryData } = useSchedule( - scheduleId || user?.defaultScheduleId || undefined - ); + const { isLoading: isSchedulePending, data: atomSchedule } = useAtomSchedule(scheduleId?.toString()); const { data: schedulesQueryData, isLoading: isSchedulesPending } = useSchedules(); - const atomSchedule = transformApiScheduleForAtom(user, scheduleQueryData, schedulesQueryData?.length || 0); const hostSchedulesQuery = useAtomHostSchedules; const { data: teamMembers } = useTeamMembers({ teamId }); diff --git a/packages/platform/atoms/hooks/bookings/useCreateBooking.ts b/packages/platform/atoms/hooks/bookings/useCreateBooking.ts index 4d3ac0f870..3f1552e295 100644 --- a/packages/platform/atoms/hooks/bookings/useCreateBooking.ts +++ b/packages/platform/atoms/hooks/bookings/useCreateBooking.ts @@ -1,7 +1,7 @@ import { useMutation } from "@tanstack/react-query"; +import type { BookingResponse } from "@calcom/features/bookings/types"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; -import type { BookingResponse } from "@calcom/platform-libraries"; import type { ApiResponse, ApiErrorResponse, ApiSuccessResponse } from "@calcom/platform-types"; import type { BookingCreateBody } from "@calcom/prisma/zod/custom/booking"; diff --git a/packages/platform/atoms/hooks/bookings/useCreateInstantBooking.ts b/packages/platform/atoms/hooks/bookings/useCreateInstantBooking.ts index 61dd41a595..4d08bc73fe 100644 --- a/packages/platform/atoms/hooks/bookings/useCreateInstantBooking.ts +++ b/packages/platform/atoms/hooks/bookings/useCreateInstantBooking.ts @@ -1,7 +1,7 @@ import { useMutation } from "@tanstack/react-query"; +import type { BookingResponse } from "@calcom/features/bookings/types"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; -import type { BookingResponse } from "@calcom/platform-libraries"; import type { ApiResponse, ApiErrorResponse, ApiSuccessResponse } from "@calcom/platform-types"; import type { BookingCreateBody } from "@calcom/prisma/zod/custom/booking"; diff --git a/packages/platform/atoms/hooks/bookings/useCreateRecurringBooking.ts b/packages/platform/atoms/hooks/bookings/useCreateRecurringBooking.ts index 5f4ebd46b7..3f4d7b37b6 100644 --- a/packages/platform/atoms/hooks/bookings/useCreateRecurringBooking.ts +++ b/packages/platform/atoms/hooks/bookings/useCreateRecurringBooking.ts @@ -1,7 +1,7 @@ import { useMutation } from "@tanstack/react-query"; +import type { BookingResponse, RecurringBookingCreateBody } from "@calcom/features/bookings/types"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; -import type { BookingResponse, RecurringBookingCreateBody } from "@calcom/platform-libraries"; import type { ApiResponse, ApiErrorResponse, ApiSuccessResponse } from "@calcom/platform-types"; import http from "../../lib/http"; diff --git a/packages/platform/atoms/hooks/bookings/useGetBookingForReschedule.ts b/packages/platform/atoms/hooks/bookings/useGetBookingForReschedule.ts index f7985024a5..5f194e0302 100644 --- a/packages/platform/atoms/hooks/bookings/useGetBookingForReschedule.ts +++ b/packages/platform/atoms/hooks/bookings/useGetBookingForReschedule.ts @@ -1,7 +1,7 @@ import { useQuery } from "@tanstack/react-query"; +import type { getBookingForReschedule } from "@calcom/features/bookings/lib/get-booking"; import { V2_ENDPOINTS, SUCCESS_STATUS } from "@calcom/platform-constants"; -import type { getBookingForReschedule } from "@calcom/platform-libraries"; import type { ApiResponse, ApiSuccessResponse } from "@calcom/platform-types"; import http from "../../lib/http"; diff --git a/packages/platform/atoms/hooks/event-types/public/useAtomGetPublicEvent.tsx b/packages/platform/atoms/hooks/event-types/public/useAtomGetPublicEvent.tsx new file mode 100644 index 0000000000..312581178b --- /dev/null +++ b/packages/platform/atoms/hooks/event-types/public/useAtomGetPublicEvent.tsx @@ -0,0 +1,59 @@ +import { useQuery } from "@tanstack/react-query"; +import { useMemo } from "react"; + +import { getUsernameList } from "@calcom/lib/defaultEvents"; +import { SUCCESS_STATUS, V2_ENDPOINTS } from "@calcom/platform-constants"; +import type { PublicEventType } from "@calcom/features/eventtypes/lib/getPublicEvent"; +import type { ApiResponse } from "@calcom/platform-types"; + +import http from "../../../lib/http"; +import { useAtomsContext } from "../../../hooks/useAtomsContext"; + +export const QUERY_KEY = "get-public-event"; +export type UsePublicEventReturnType = ReturnType; + +type Props = { + username: string; + eventSlug: string; + isTeamEvent?: boolean; + teamId?: number; + selectedDuration: number | null; +}; + +export const useAtomGetPublicEvent = ({ username, eventSlug, isTeamEvent, teamId, selectedDuration }: Props) => { + + const { organizationId } = useAtomsContext(); + + const isDynamic = useMemo(() => { + return getUsernameList(username ?? "").length > 1; + }, [username]); + + const pathname = `/atoms/${V2_ENDPOINTS.eventTypes}/${eventSlug}/public`; + + const event = useQuery({ + queryKey: [QUERY_KEY, username, eventSlug, isTeamEvent, teamId, organizationId], + queryFn: () => { + return http?.get>(pathname, { + params: { + isTeamEvent, + teamId, + orgId: organizationId, + username: getUsernameList(username?? "").join(",") + }, + }) + .then((res) => { + if (res.data.status === SUCCESS_STATUS) { + if (isDynamic && selectedDuration && res.data.data) { + // note(Lauris): Mandatory - In case of "dynamic" event type default event duration returned by the API is 30, + // but we are re-using the dynamic event type as a team event, so we must set the event length to whatever the event length is. + res.data.data.length = selectedDuration; + } + return res.data.data; + } + throw new Error(res.data.error.message); + }); + }, + }); + + return event; +}; diff --git a/packages/platform/atoms/hooks/schedules/useAtomSchedule.ts b/packages/platform/atoms/hooks/schedules/useAtomSchedule.ts new file mode 100644 index 0000000000..22349ace17 --- /dev/null +++ b/packages/platform/atoms/hooks/schedules/useAtomSchedule.ts @@ -0,0 +1,31 @@ +import { useQuery } from "@tanstack/react-query"; + +import type { FindDetailedScheduleByIdReturnType } from "@calcom/lib/server/repository/schedule"; +import { SUCCESS_STATUS } from "@calcom/platform-constants"; +import type { ApiResponse } from "@calcom/platform-types"; + +import http from "../../lib/http"; + +export const QUERY_KEY = "use-atom-schedule"; + +export const useAtomSchedule = (scheduleId?: string, isManagedEventType?: boolean) => { + const pathname = "atoms/schedules"; + + const { isLoading, error, data } = useQuery({ + queryKey: [QUERY_KEY, scheduleId, isManagedEventType], + queryFn: () => { + return http + .get>(pathname, { + params: { scheduleId, isManagedEventType }, + }) + .then((res) => { + if (res.data.status === SUCCESS_STATUS) { + return res.data.data; + } + throw new Error(res.data.error?.message); + }); + }, + }); + + return { isLoading, error, data }; +}; diff --git a/packages/platform/atoms/hooks/schedules/useAtomUpdateSchedule.ts b/packages/platform/atoms/hooks/schedules/useAtomUpdateSchedule.ts new file mode 100644 index 0000000000..1d58a6a4f7 --- /dev/null +++ b/packages/platform/atoms/hooks/schedules/useAtomUpdateSchedule.ts @@ -0,0 +1,49 @@ +import { useMutation, useQueryClient } from "@tanstack/react-query"; + +import type { UpdateScheduleResponse } from "@calcom/lib/schedules/updateSchedule"; +import { SUCCESS_STATUS } from "@calcom/platform-constants"; +import type { ApiResponse, ApiErrorResponse, UpdateAtomScheduleDto } from "@calcom/platform-types"; + +import http from "../../lib/http"; +import { QUERY_KEY as ScheduleQueryKey } from "./useAtomSchedule"; + +interface IUseAtomUpdateScheduleOptions { + onSuccess?: (res: ApiResponse) => void; + onError?: (err: ApiErrorResponse) => void; +} + +export const useAtomUpdateSchedule = ( + { onSuccess, onError }: IUseAtomUpdateScheduleOptions = { + onSuccess: () => { + return; + }, + onError: () => { + return; + }, + } +) => { + const queryClient = useQueryClient(); + + return useMutation< + ApiResponse, + unknown, + { scheduleId: number; body: UpdateAtomScheduleDto } + >({ + mutationFn: async ({ scheduleId, body }: { scheduleId: number; body: UpdateAtomScheduleDto }) => { + const url = `atoms/schedules/${scheduleId}`; + const response = await http.patch>(url, body); + return response.data; + }, + onSuccess: (data) => { + if (data.status === SUCCESS_STATUS) { + onSuccess?.(data); + queryClient.invalidateQueries({ queryKey: [ScheduleQueryKey] }); + } else { + onError?.(data); + } + }, + onError: (err) => { + onError?.(err as ApiErrorResponse); + }, + }); +}; diff --git a/packages/platform/atoms/hooks/schedules/useDeleteSchedule.ts b/packages/platform/atoms/hooks/schedules/useDeleteSchedule.ts index 8da80bce20..7a365f4167 100644 --- a/packages/platform/atoms/hooks/schedules/useDeleteSchedule.ts +++ b/packages/platform/atoms/hooks/schedules/useDeleteSchedule.ts @@ -5,7 +5,7 @@ import { V2_ENDPOINTS } from "@calcom/platform-constants"; import type { ApiResponse, ApiErrorResponse } from "@calcom/platform-types"; import http from "../../lib/http"; -import { QUERY_KEY } from "./useSchedule"; +import { QUERY_KEY } from "./useAtomSchedule"; interface IUseDeleteScheduleProps { onSuccess?: (res: ApiResponse) => void; diff --git a/packages/platform/atoms/hooks/useAvailableSlots.ts b/packages/platform/atoms/hooks/useAvailableSlots.ts index 5258257fbf..c21248a73f 100644 --- a/packages/platform/atoms/hooks/useAvailableSlots.ts +++ b/packages/platform/atoms/hooks/useAvailableSlots.ts @@ -1,12 +1,12 @@ import { useQuery } from "@tanstack/react-query"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; -import type { AvailableSlotsType } from "@calcom/platform-libraries"; import type { GetAvailableSlotsInput_2024_04_15, ApiResponse, ApiSuccessResponse, } from "@calcom/platform-types"; +import type { GetAvailableSlotsResponse } from "@calcom/trpc/server/routers/viewer/slots/util"; import http from "../lib/http"; @@ -33,12 +33,12 @@ export const useAvailableSlots = ({ ], queryFn: () => { return http - .get>("/slots/available", { + .get>("/slots/available", { params: rest, }) .then((res) => { if (res.data.status === SUCCESS_STATUS) { - return (res.data as ApiSuccessResponse).data; + return (res.data as ApiSuccessResponse).data; } throw new Error(res.data.error.message); }); diff --git a/packages/platform/atoms/hooks/useConnectedCalendars.tsx b/packages/platform/atoms/hooks/useConnectedCalendars.tsx index 2b95ee411b..15129dc30b 100644 --- a/packages/platform/atoms/hooks/useConnectedCalendars.tsx +++ b/packages/platform/atoms/hooks/useConnectedCalendars.tsx @@ -1,7 +1,7 @@ import { useQuery } from "@tanstack/react-query"; +import type { ConnectedDestinationCalendars } from "@calcom/lib/getConnectedDestinationCalendars"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; -import type { ConnectedDestinationCalendars } from "@calcom/platform-libraries"; import type { ApiResponse, ApiSuccessResponse } from "@calcom/platform-types"; import http from "../lib/http"; diff --git a/packages/platform/atoms/hooks/usePublicEvent.tsx b/packages/platform/atoms/hooks/usePublicEvent.tsx deleted file mode 100644 index 6665782b27..0000000000 --- a/packages/platform/atoms/hooks/usePublicEvent.tsx +++ /dev/null @@ -1,58 +0,0 @@ -import { useQuery } from "@tanstack/react-query"; -import { shallow } from "zustand/shallow"; - -import { useBookerStore } from "@calcom/features/bookings/Booker/store"; -import { SUCCESS_STATUS, V2_ENDPOINTS } from "@calcom/platform-constants"; -import type { PublicEventType } from "@calcom/platform-libraries"; -import type { ApiResponse } from "@calcom/platform-types"; - -import http from "../lib/http"; - -export const QUERY_KEY = "get-public-event"; -export type UsePublicEventReturnType = ReturnType; - -type Props = { - username: string; - eventSlug: string; - isDynamic?: boolean; -}; - -export const usePublicEvent = (props: Props) => { - const [username, eventSlug] = useBookerStore((state) => [state.username, state.eventSlug], shallow); - const isTeamEvent = useBookerStore((state) => state.isTeamEvent); - const org = useBookerStore((state) => state.org); - const selectedDuration = useBookerStore((state) => state.selectedDuration); - - const requestUsername = username ?? props.username; - const requestEventSlug = eventSlug ?? props.eventSlug; - - const event = useQuery({ - queryKey: [QUERY_KEY, username ?? props.username, eventSlug ?? props.eventSlug, props.isDynamic], - queryFn: () => { - return http - .get>( - `/${V2_ENDPOINTS.eventTypes}/${requestUsername}/${requestEventSlug}/public`, - { - params: { - isTeamEvent, - org: org ?? null, - }, - } - ) - .then((res) => { - if (res.data.status === SUCCESS_STATUS) { - if (props.isDynamic && selectedDuration && res.data.data) { - // note(Lauris): Mandatory - In case of "dynamic" event type default event duration returned by the API is 30, - // but we are re-using the dynamic event type as a team event, so we must set the event length to whatever the event length is. - res.data.data.length = selectedDuration; - } - - return res.data.data; - } - throw new Error(res.data.error.message); - }); - }, - }); - - return event; -}; diff --git a/packages/platform/atoms/package.json b/packages/platform/atoms/package.json index 26a70096b5..ae518465bf 100644 --- a/packages/platform/atoms/package.json +++ b/packages/platform/atoms/package.json @@ -12,7 +12,6 @@ "test": "jest" }, "devDependencies": { - "@calcom/platform-libraries": "0.0.2", "@rollup/plugin-node-resolve": "^15.0.1", "@types/jest": "^29.5.12", "@types/node": "^20.3.1", diff --git a/packages/platform/examples/base/src/pages/booking.tsx b/packages/platform/examples/base/src/pages/booking.tsx index 6ba70fb216..c6152e45f9 100644 --- a/packages/platform/examples/base/src/pages/booking.tsx +++ b/packages/platform/examples/base/src/pages/booking.tsx @@ -128,7 +128,10 @@ export default function Bookings(props: { calUsername: string; calEmail: string }, }} {...(isTeamEvent - ? { isTeamEvent: true, teamId: teams?.[0]?.id || 0 } + ? { + isTeamEvent: true, + teamId: teams?.[0]?.id || 0, + } : { username: props.calUsername })} hostsLimit={3} allowUpdatingUrlParams={true} diff --git a/packages/platform/examples/base/src/pages/conferencing-apps.tsx b/packages/platform/examples/base/src/pages/conferencing-apps.tsx index e476cf03bf..7bec6014a2 100644 --- a/packages/platform/examples/base/src/pages/conferencing-apps.tsx +++ b/packages/platform/examples/base/src/pages/conferencing-apps.tsx @@ -15,7 +15,7 @@ export default function ConferencingApps(props: { calUsername: string; calEmail: className={`flex min-h-screen flex-col ${inter.className} main text-default flex min-h-full w-full flex-col items-center overflow-visible`}>
- +
); diff --git a/packages/platform/libraries/app-store.ts b/packages/platform/libraries/app-store.ts index 325264e902..ab610bc032 100644 --- a/packages/platform/libraries/app-store.ts +++ b/packages/platform/libraries/app-store.ts @@ -22,6 +22,8 @@ export { getEnabledAppsFromCredentials }; export { getConnectedApps } from "@calcom/lib/getConnectedApps"; +export type { TServiceAccountKeySchema } from "@calcom/prisma/zod-utils"; + export type { ConnectedApps } from "@calcom/lib/getConnectedApps"; export type { AppsStatus } from "@calcom/types/Calendar"; @@ -40,3 +42,5 @@ export { CalendarAppDelegationCredentialClientIdNotAuthorizedError, CalendarAppDelegationCredentialNotSetupError, } from "@calcom/lib/CalendarAppError"; + +export { getUsersCredentialsIncludeServiceAccountKey } from "@calcom/lib/server/getUsersCredentials"; diff --git a/packages/platform/libraries/event-types.ts b/packages/platform/libraries/event-types.ts index 9cf82c69d8..ebdd425b2b 100644 --- a/packages/platform/libraries/event-types.ts +++ b/packages/platform/libraries/event-types.ts @@ -1,4 +1,4 @@ -import { getPublicEvent } from "@calcom/features/eventtypes/lib/getPublicEvent"; +export { getPublicEvent, type PublicEventType } from "@calcom/features/eventtypes/lib/getPublicEvent"; export { getBulkUserEventTypes, getBulkTeamEventTypes } from "@calcom/lib/event-types/getBulkEventTypes"; @@ -9,51 +9,6 @@ export type { TUpdateInputSchema as TUpdateEventTypeInputSchema } from "@calcom/ export type { EventTypesPublic } from "@calcom/lib/event-types/getEventTypesPublic"; export { getEventTypesPublic } from "@calcom/lib/event-types/getEventTypesPublic"; export { parseEventTypeColor } from "@calcom/lib/isEventTypeColor"; -export { - // note(Lauris): Api to internal - transformBookingFieldsApiToInternal, - transformLocationsApiToInternal, - transformTeamLocationsApiToInternal, - transformIntervalLimitsApiToInternal, - transformFutureBookingLimitsApiToInternal, - transformRecurrenceApiToInternal, - transformBookerLayoutsApiToInternal, - transformConfirmationPolicyApiToInternal, - transformEventColorsApiToInternal, - transformSeatsApiToInternal, - // note(Lauris): Internal to api - transformBookingFieldsInternalToApi, - transformLocationsInternalToApi, - transformIntervalLimitsInternalToApi, - transformFutureBookingLimitsInternalToApi, - transformRecurrenceInternalToApi, - transformBookerLayoutsInternalToApi, - transformRequiresConfirmationInternalToApi, - transformEventTypeColorsInternalToApi, - transformSeatsInternalToApi, - // note(Lauris): schemas - InternalLocationsSchema, - InternalLocationSchema, - BookingFieldsSchema, - BookingFieldSchema, - // note(Lauris): constants - systemBeforeFieldName, - systemBeforeFieldEmail, - systemBeforeFieldLocation, - systemAfterFieldRescheduleReason, - systemAfterFieldTitle, - systemAfterFieldNotes, - systemAfterFieldGuests, - apiToInternalintegrationsMapping, -} from "@calcom/lib/event-types/transformers"; - -export type { - SystemField, - CustomField, - NameSystemField, - EmailSystemField, - InternalLocation, -} from "@calcom/lib/event-types/transformers"; export { EventTypeMetaDataSchema, @@ -70,7 +25,5 @@ export type { EventTypesByViewer } from "@calcom/lib/event-types/getEventTypesBy export type { UpdateEventTypeReturn } from "@calcom/trpc/server/routers/viewer/eventTypes/update.handler"; export { updateNewTeamMemberEventTypes } from "@calcom/lib/server/queries/teams"; -export type PublicEventType = Awaited>; export { bulkUpdateEventsToDefaultLocation } from "@calcom/lib/bulkUpdateEventsToDefaultLocation"; export { bulkUpdateTeamEventsToDefaultLocation } from "@calcom/lib/bulkUpdateTeamEventsToDefaultLocation"; -export { getPublicEvent }; diff --git a/packages/platform/libraries/index.ts b/packages/platform/libraries/index.ts index 5afec3481c..6c42c1d80d 100644 --- a/packages/platform/libraries/index.ts +++ b/packages/platform/libraries/index.ts @@ -22,11 +22,11 @@ import { credentialForCalendarServiceSelect } from "@calcom/prisma/selects/crede import { paymentDataSelect } from "@calcom/prisma/selects/payment"; import { createNewUsersConnectToOrgIfExists } from "@calcom/trpc/server/routers/viewer/teams/inviteMember/utils"; -export { getUsersCredentials } from "@calcom/lib/server/getUsersCredentials"; - export { slugify } from "@calcom/lib/slugify"; export { getBookingForReschedule }; +export type { EventBusyDate } from "@calcom/types/Calendar"; + export { SchedulingType, PeriodType } from "@calcom/prisma/enums"; export { getUsernameList } from "@calcom/lib/defaultEvents"; @@ -42,15 +42,10 @@ export { handleCreatePhoneCall }; export { handleNewRecurringBooking } from "@calcom/features/bookings/lib/handleNewRecurringBooking"; export { getConnectedDestinationCalendarsAndEnsureDefaultsInDb } from "@calcom/lib/getConnectedDestinationCalendars"; -export type { ConnectedDestinationCalendars } from "@calcom/lib/getConnectedDestinationCalendars"; export { getBusyCalendarTimes } from "@calcom/lib/CalendarManager"; -export type { - BookingCreateBody, - BookingResponse, - RecurringBookingCreateBody, -} from "@calcom/features/bookings/types"; +export type { BookingCreateBody, BookingResponse } from "@calcom/features/bookings/types"; export { HttpError } from "@calcom/lib/http-error"; export { MINUTES_TO_BOOK } from "@calcom/lib/constants"; diff --git a/packages/platform/libraries/schedules.ts b/packages/platform/libraries/schedules.ts index 2140d63547..6ab5ba3971 100644 --- a/packages/platform/libraries/schedules.ts +++ b/packages/platform/libraries/schedules.ts @@ -1,6 +1,6 @@ -import { - transformApiScheduleOverrides, - transformApiScheduleAvailability, -} from "@calcom/lib/schedules/transformers/from-api"; +export { + ScheduleRepository, + type FindDetailedScheduleByIdReturnType, +} from "@calcom/lib/server/repository/schedule"; -export { transformApiScheduleOverrides, transformApiScheduleAvailability }; +export { updateSchedule, type UpdateScheduleResponse } from "@calcom/lib/schedules/updateSchedule"; diff --git a/packages/platform/libraries/slots.ts b/packages/platform/libraries/slots.ts index 8badaeea63..0d61c8c2aa 100644 --- a/packages/platform/libraries/slots.ts +++ b/packages/platform/libraries/slots.ts @@ -1,4 +1,3 @@ import { getAvailableSlots } from "@calcom/trpc/server/routers/viewer/slots/util"; export { getAvailableSlots }; -export type AvailableSlotsType = Awaited>; diff --git a/packages/platform/types/event-types/event-types_2024_06_14/index.ts b/packages/platform/types/event-types/event-types_2024_06_14/index.ts index 663e81fad5..775f90ba48 100644 --- a/packages/platform/types/event-types/event-types_2024_06_14/index.ts +++ b/packages/platform/types/event-types/event-types_2024_06_14/index.ts @@ -1,3 +1,2 @@ export * from "./inputs"; export * from "./outputs"; -export * from "./transformed"; diff --git a/packages/platform/types/schedules/index.ts b/packages/platform/types/schedules/index.ts index c6de942b32..500af321c8 100644 --- a/packages/platform/types/schedules/index.ts +++ b/packages/platform/types/schedules/index.ts @@ -1,2 +1,3 @@ export * from "./schedules-2024-06-11"; export * from "./schedules-2024-04-15"; +export * from "./update-atom-schedule-body.input"; diff --git a/packages/platform/types/schedules/update-atom-schedule-body.input.ts b/packages/platform/types/schedules/update-atom-schedule-body.input.ts new file mode 100644 index 0000000000..a9c9ef963f --- /dev/null +++ b/packages/platform/types/schedules/update-atom-schedule-body.input.ts @@ -0,0 +1,45 @@ +import { Type } from "class-transformer"; +import { IsString, IsOptional, IsBoolean, ValidateNested, IsArray, IsDate } from "class-validator"; + +export class ScheduleTimeRangeDto { + @Type(() => Date) + @IsDate() + start!: Date; + + @Type(() => Date) + @IsDate() + end!: Date; +} + +export class ScheduleDto { + @IsArray() + @ValidateNested({ each: true }) + @Type(() => ScheduleTimeRangeDto) + times!: ScheduleTimeRangeDto[]; +} + +export class UpdateAtomScheduleDto { + @IsString() + @IsOptional() + timeZone?: string; + + @IsString() + @IsOptional() + name?: string; + + @IsBoolean() + @IsOptional() + isDefault?: boolean; + + @IsArray() + @IsOptional() + @ValidateNested({ each: true }) + @Type(() => ScheduleTimeRangeDto) + schedule?: ScheduleTimeRangeDto[][]; + + @IsArray() + @ValidateNested({ each: true }) + @Type(() => ScheduleTimeRangeDto) + @IsOptional() + dateOverrides?: ScheduleTimeRangeDto[]; +} diff --git a/packages/trpc/server/routers/viewer/apiKeys/create.handler.ts b/packages/trpc/server/routers/viewer/apiKeys/create.handler.ts index 134fdda465..0676755e58 100644 --- a/packages/trpc/server/routers/viewer/apiKeys/create.handler.ts +++ b/packages/trpc/server/routers/viewer/apiKeys/create.handler.ts @@ -10,7 +10,7 @@ import type { TCreateInputSchema } from "./create.schema"; type CreateHandlerOptions = { ctx: { - user: NonNullable; + user: Pick, "id">; }; input: TCreateInputSchema; }; diff --git a/packages/trpc/server/routers/viewer/availability/schedule/update.handler.ts b/packages/trpc/server/routers/viewer/availability/schedule/update.handler.ts index 6b1818606a..055fe0fe64 100644 --- a/packages/trpc/server/routers/viewer/availability/schedule/update.handler.ts +++ b/packages/trpc/server/routers/viewer/availability/schedule/update.handler.ts @@ -1,12 +1,7 @@ -import { getAvailabilityFromSchedule } from "@calcom/lib/availability"; -import { hasEditPermissionForUserID } from "@calcom/lib/hasEditPermissionForUser"; -import { transformScheduleToAvailabilityForAtom } from "@calcom/lib/schedules/transformers/for-atom"; +import { updateSchedule } from "@calcom/lib/schedules/updateSchedule"; import { prisma } from "@calcom/prisma"; +import type { TrpcSessionUser } from "@calcom/trpc/server/types"; -import { TRPCError } from "@trpc/server"; - -import type { TrpcSessionUser } from "../../../../types"; -import { setupDefaultSchedule, updateHostsWithNewDefaultSchedule } from "../util"; import type { TUpdateInputSchema } from "./update.schema"; type User = NonNullable; @@ -19,119 +14,9 @@ type UpdateOptions = { export const updateHandler = async ({ input, ctx }: UpdateOptions) => { const { user } = ctx; - const availability = input.schedule - ? getAvailabilityFromSchedule(input.schedule) - : (input.dateOverrides || []).map((dateOverride) => ({ - startTime: dateOverride.start, - endTime: dateOverride.end, - date: dateOverride.start, - days: [], - })); - - // Not able to update the schedule with userId where clause, so fetch schedule separately and then validate - // Bug: https://github.com/prisma/prisma/issues/7290 - const userSchedule = await prisma.schedule.findUnique({ - where: { - id: input.scheduleId, - }, - select: { - userId: true, - name: true, - id: true, - }, + return updateSchedule({ + input, + user, + prisma, }); - - if (!userSchedule) { - throw new TRPCError({ - code: "UNAUTHORIZED", - }); - } - - if (userSchedule?.userId !== user.id) { - const hasEditPermission = await hasEditPermissionForUserID({ - ctx, - input: { memberId: userSchedule.userId }, - }); - if (!hasEditPermission) { - throw new TRPCError({ - code: "UNAUTHORIZED", - }); - } - } - - let updatedUser; - if (input.isDefault) { - if (user?.defaultScheduleId) { - await updateHostsWithNewDefaultSchedule(user.id, user.defaultScheduleId, input.scheduleId); - } - - const setupDefault = await setupDefaultSchedule(user.id, input.scheduleId, prisma); - updatedUser = setupDefault; - } - - if (!input.name) { - // TODO: Improve - // We don't want to pass the full schedule for just a set as default update - // but in the current logic, this wipes the existing availability. - // Return early to prevent this from happening. - return { - schedule: userSchedule, - isDefault: updatedUser - ? updatedUser.defaultScheduleId === input.scheduleId - : user.defaultScheduleId === input.scheduleId, - }; - } - - const schedule = await prisma.schedule.update({ - where: { - id: input.scheduleId, - }, - data: { - timeZone: input.timeZone, - name: input.name, - availability: { - deleteMany: { - scheduleId: { - equals: input.scheduleId, - }, - }, - createMany: { - data: [ - ...availability, - ...(input.dateOverrides || []).map((override) => ({ - date: override.start, - startTime: override.start, - endTime: override.end, - })), - ], - }, - }, - }, - select: { - id: true, - userId: true, - name: true, - availability: true, - timeZone: true, - eventType: { - select: { - id: true, - eventName: true, - }, - }, - }, - }); - - const userAvailability = transformScheduleToAvailabilityForAtom(schedule); - - return { - schedule, - availability: userAvailability, - timeZone: schedule.timeZone || user.timeZone, - isDefault: updatedUser - ? updatedUser.defaultScheduleId === schedule.id - : user.defaultScheduleId === schedule.id, - prevDefaultId: user.defaultScheduleId, - currentDefaultId: updatedUser ? updatedUser.defaultScheduleId : user.defaultScheduleId, - }; }; diff --git a/packages/trpc/server/routers/viewer/bookings/confirm.handler.ts b/packages/trpc/server/routers/viewer/bookings/confirm.handler.ts index 9293196882..4656645365 100644 --- a/packages/trpc/server/routers/viewer/bookings/confirm.handler.ts +++ b/packages/trpc/server/routers/viewer/bookings/confirm.handler.ts @@ -36,7 +36,7 @@ import type { TConfirmInputSchema } from "./confirm.schema"; type ConfirmOptions = { ctx: { - user: NonNullable; + user: Pick, "id" | "email" | "username" | "role" | "destinationCalendar">; }; input: TConfirmInputSchema; }; diff --git a/packages/trpc/server/routers/viewer/slots/util.ts b/packages/trpc/server/routers/viewer/slots/util.ts index b9b4a6a8ec..f2fa6a1d7c 100644 --- a/packages/trpc/server/routers/viewer/slots/util.ts +++ b/packages/trpc/server/routers/viewer/slots/util.ts @@ -302,6 +302,7 @@ const getStartTime = (startTimeInput: string, timeZone?: string, minimumBookingN return startTimeMin.isAfter(startTime) ? startTimeMin.tz(timeZone) : startTime; }; +export type GetAvailableSlotsResponse = Awaited>; const _getAvailableSlots = async ({ input, ctx }: GetScheduleOptions): Promise => { const { _enableTroubleshooter: enableTroubleshooter = false, diff --git a/yarn.lock b/yarn.lock index 1e5d4b224a..0e06bbfb2e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,7 +5,7 @@ __metadata: version: 6 cacheKey: 8 -"@0no-co/graphql.web@npm:^1.0.5": +"@0no-co/graphql.web@npm:^1.0.1, @0no-co/graphql.web@npm:^1.0.5": version: 1.1.2 resolution: "@0no-co/graphql.web@npm:1.1.2" peerDependencies: @@ -24,6 +24,17 @@ __metadata: languageName: node linkType: hard +"@algora/sdk@npm:^0.1.2": + version: 0.1.3 + resolution: "@algora/sdk@npm:0.1.3" + dependencies: + "@trpc/client": ^10.0.0 + "@trpc/server": ^10.0.0 + superjson: ^1.9.1 + checksum: 1b99e0f155181beefe12b625969166f4ecfa42d334706224d0a9a4e9ad72e2cda7335712c47290df7aeeeb003a9773ff5babce7cbee8fb8d1c5ded4ad81c80c1 + languageName: node + linkType: hard + "@alloc/quick-lru@npm:^5.2.0": version: 5.2.0 resolution: "@alloc/quick-lru@npm:5.2.0" @@ -1091,6 +1102,17 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/code-frame@npm:7.27.1" + dependencies: + "@babel/helper-validator-identifier": ^7.27.1 + js-tokens: ^4.0.0 + picocolors: ^1.1.1 + checksum: 5874edc5d37406c4a0bb14cf79c8e51ad412fb0423d176775ac14fc0259831be1bf95bdda9c2aa651126990505e09a9f0ed85deaa99893bc316d2682c5115bdc + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.22.9": version: 7.22.9 resolution: "@babel/compat-data@npm:7.22.9" @@ -1306,6 +1328,28 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/generator@npm:7.27.1" + dependencies: + "@babel/parser": ^7.27.1 + "@babel/types": ^7.27.1 + "@jridgewell/gen-mapping": ^0.3.5 + "@jridgewell/trace-mapping": ^0.3.25 + jsesc: ^3.0.2 + checksum: d5e220eb20aca1d93aef85c4c716237f84c5aab7d3ed8dfeb7060dcd73d20c593a687fe74cfb6d3dc1604ef9faff2ca24e6cfdb1af18e03e3a5f9f63a04c0bdc + languageName: node + linkType: hard + +"@babel/helper-annotate-as-pure@npm:^7.18.6, @babel/helper-annotate-as-pure@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-annotate-as-pure@npm:7.27.1" + dependencies: + "@babel/types": ^7.27.1 + checksum: 3f8e4d591458d6c0621a3d670f8798b8895580214287390126e3e621ddf3df0bd07cbcc9500c2671b9ec10162c2f9feb1194da5cf039d40df8cb69d181fc0cd8 + 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" @@ -1380,6 +1424,23 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-class-features-plugin@npm:^7.21.0": + version: 7.27.1 + resolution: "@babel/helper-create-class-features-plugin@npm:7.27.1" + dependencies: + "@babel/helper-annotate-as-pure": ^7.27.1 + "@babel/helper-member-expression-to-functions": ^7.27.1 + "@babel/helper-optimise-call-expression": ^7.27.1 + "@babel/helper-replace-supers": ^7.27.1 + "@babel/helper-skip-transparent-expression-wrappers": ^7.27.1 + "@babel/traverse": ^7.27.1 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 406954b455e5b20924e7d1b41cf932e6e98e95c3a5224c7a70c3ad96a84e8fbde915ceff7ddbf9c7d121397c4e9274f061241648475122cf6fe54e0a95caae15 + languageName: node + linkType: hard + "@babel/helper-environment-visitor@npm:^7.16.7, @babel/helper-environment-visitor@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-environment-visitor@npm:7.22.5" @@ -1451,6 +1512,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-member-expression-to-functions@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-member-expression-to-functions@npm:7.27.1" + dependencies: + "@babel/traverse": ^7.27.1 + "@babel/types": ^7.27.1 + checksum: b13a3d120015a6fd2f6e6c2ff789cd12498745ef028710cba612cfb751b91ace700c3f96c1689228d1dcb41e9d4cf83d6dff8627dcb0c8da12d79440e783c6b8 + languageName: node + linkType: hard + "@babel/helper-module-imports@npm:^7.12.13, @babel/helper-module-imports@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-module-imports@npm:7.22.5" @@ -1547,6 +1618,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-optimise-call-expression@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-optimise-call-expression@npm:7.27.1" + dependencies: + "@babel/types": ^7.27.1 + checksum: 0fb7ee824a384529d6b74f8a58279f9b56bfe3cce332168067dddeab2552d8eeb56dc8eaf86c04a3a09166a316cb92dfc79c4c623cd034ad4c563952c98b464f + 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.22.5, @babel/helper-plugin-utils@npm:^7.8.0": version: 7.22.5 resolution: "@babel/helper-plugin-utils@npm:7.22.5" @@ -1561,6 +1641,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-replace-supers@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-replace-supers@npm:7.27.1" + dependencies: + "@babel/helper-member-expression-to-functions": ^7.27.1 + "@babel/helper-optimise-call-expression": ^7.27.1 + "@babel/traverse": ^7.27.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 3690266c304f21008690ba68062f889a363583cabc13c3d033b94513953147af3e0a3fdb48fa1bb9fa3734b64e221fc65e5222ab70837f02321b7225f487c6ef + languageName: node + linkType: hard + "@babel/helper-simple-access@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-simple-access@npm:7.22.5" @@ -1580,6 +1673,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.27.1" + dependencies: + "@babel/traverse": ^7.27.1 + "@babel/types": ^7.27.1 + checksum: 4f380c5d0e0769fa6942a468b0c2d7c8f0c438f941aaa88f785f8752c103631d0904c7b4e76207a3b0e6588b2dec376595370d92ca8f8f1b422c14a69aa146d4 + languageName: node + linkType: hard + "@babel/helper-split-export-declaration@npm:^7.16.7, @babel/helper-split-export-declaration@npm:^7.22.6": version: 7.22.6 resolution: "@babel/helper-split-export-declaration@npm:7.22.6" @@ -1626,6 +1729,13 @@ __metadata: 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" + checksum: 0a8464adc4b39b138aedcb443b09f4005d86207d7126e5e079177e05c3116107d856ec08282b365e9a79a9872f40f4092a6127f8d74c8a01c1ef789dacfc25d6 + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.16.7, @babel/helper-validator-identifier@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-validator-identifier@npm:7.22.5" @@ -1654,6 +1764,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-identifier@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-validator-identifier@npm:7.27.1" + checksum: 3c7e8391e59d6c85baeefe9afb86432f2ab821c6232b00ea9082a51d3e7e95a2f3fb083d74dc1f49ac82cf238e1d2295dafcb001f7b0fab479f3f56af5eaaa47 + languageName: node + linkType: hard + "@babel/helper-validator-option@npm:^7.22.15": version: 7.22.15 resolution: "@babel/helper-validator-option@npm:7.22.15" @@ -1832,6 +1949,31 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.27.1, @babel/parser@npm:^7.27.2": + version: 7.27.2 + resolution: "@babel/parser@npm:7.27.2" + dependencies: + "@babel/types": ^7.27.1 + bin: + parser: ./bin/babel-parser.js + checksum: 1ac70a75028f1cc10eefb10ed2d83cf700ca3e1ddb4cf556a003fc5c4ca53ae83350bbb8065020fcc70d476fcf7bf1c17191b72384f719614ae18397142289cf + languageName: node + linkType: hard + +"@babel/plugin-proposal-private-property-in-object@npm:^7.21.11": + version: 7.21.11 + resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.11" + dependencies: + "@babel/helper-annotate-as-pure": ^7.18.6 + "@babel/helper-create-class-features-plugin": ^7.21.0 + "@babel/helper-plugin-utils": ^7.20.2 + "@babel/plugin-syntax-private-property-in-object": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 1b880543bc5f525b360b53d97dd30807302bb82615cd42bf931968f59003cac75629563d6b104868db50abd22235b3271fdf679fea5db59a267181a99cc0c265 + languageName: node + linkType: hard + "@babel/plugin-syntax-async-generators@npm:^7.8.4": version: 7.8.4 resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" @@ -1986,6 +2128,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b317174783e6e96029b743ccff2a67d63d38756876e7e5d0ba53a322e38d9ca452c13354a57de1ad476b4c066dbae699e0ca157441da611117a47af88985ecda + languageName: node + linkType: hard + "@babel/plugin-syntax-top-level-await@npm:^7.8.3": version: 7.14.5 resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" @@ -2106,6 +2259,13 @@ __metadata: languageName: node linkType: hard +"@babel/runtime@npm:^7.18.6": + version: 7.27.1 + resolution: "@babel/runtime@npm:7.27.1" + checksum: 11339838a54783e5b14e04d94d7a4d032e9965c5823f3f687e41556fa40344ae7aeb57c535720b7a74ab3e8217def7834a6f1a665ee55bbb3befede141419913 + languageName: node + linkType: hard + "@babel/runtime@npm:^7.21.0": version: 7.26.10 resolution: "@babel/runtime@npm:7.26.10" @@ -2179,6 +2339,17 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.27.1": + version: 7.27.2 + resolution: "@babel/template@npm:7.27.2" + dependencies: + "@babel/code-frame": ^7.27.1 + "@babel/parser": ^7.27.2 + "@babel/types": ^7.27.1 + checksum: ff5628bc066060624afd970616090e5bba91c6240c2e4b458d13267a523572cbfcbf549391eec8217b94b064cf96571c6273f0c04b28a8567b96edc675c28e27 + languageName: node + linkType: hard + "@babel/traverse@npm:7.17.3": version: 7.17.3 resolution: "@babel/traverse@npm:7.17.3" @@ -2284,6 +2455,21 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/traverse@npm:7.27.1" + dependencies: + "@babel/code-frame": ^7.27.1 + "@babel/generator": ^7.27.1 + "@babel/parser": ^7.27.1 + "@babel/template": ^7.27.1 + "@babel/types": ^7.27.1 + debug: ^4.3.1 + globals: ^11.1.0 + checksum: 7ea3ec36a65e734f2921f5dba6f417f5dd0c90eb44a60f6addbacbbedb44e8c82eba415a74feb7d6df58e351519b81b11b6ca3c0c7c41a3f73ebeaf6895a826c + languageName: node + linkType: hard + "@babel/types@npm:7.17.0": version: 7.17.0 resolution: "@babel/types@npm:7.17.0" @@ -2359,6 +2545,16 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/types@npm:7.27.1" + dependencies: + "@babel/helper-string-parser": ^7.27.1 + "@babel/helper-validator-identifier": ^7.27.1 + checksum: 357c13f37aaa2f2e2cfcdb63f986d5f7abc9f38df20182b620ace34387d2460620415770fe5856eb54d70c9f0ba2f71230d29465e789188635a948476b830ae4 + languageName: node + linkType: hard + "@base2/pretty-print-object@npm:1.0.1": version: 1.0.1 resolution: "@base2/pretty-print-object@npm:1.0.1" @@ -2519,7 +2715,7 @@ __metadata: "@axiomhq/winston": ^1.2.0 "@calcom/platform-constants": "*" "@calcom/platform-enums": "*" - "@calcom/platform-libraries": "npm:@calcom/platform-libraries@0.0.208" + "@calcom/platform-libraries": "npm:@calcom/platform-libraries@0.0.214" "@calcom/platform-libraries-0.0.2": "npm:@calcom/platform-libraries@0.0.2" "@calcom/platform-types": "*" "@calcom/platform-utils": "*" @@ -2676,7 +2872,6 @@ __metadata: version: 0.0.0-use.local resolution: "@calcom/atoms@workspace:packages/platform/atoms" dependencies: - "@calcom/platform-libraries": 0.0.2 "@radix-ui/react-dialog-atoms": "npm:@radix-ui/react-dialog@^1.0.4" "@radix-ui/react-slot": ^1.0.2 "@radix-ui/react-switch": ^1.1.0 @@ -2718,6 +2913,31 @@ __metadata: languageName: unknown linkType: soft +"@calcom/atoms@npm:1.0.101": + version: 1.0.101 + resolution: "@calcom/atoms@npm:1.0.101" + dependencies: + "@radix-ui/react-dialog-atoms": "npm:@radix-ui/react-dialog@^1.0.4" + "@radix-ui/react-slot": ^1.0.2 + "@radix-ui/react-switch": ^1.1.0 + "@radix-ui/react-toast": ^1.1.5 + "@radix-ui/react-tooltip-atoms": "npm:@radix-ui/react-tooltip@^1.0.0" + "@tanstack/react-query": ^5.17.15 + class-variance-authority: ^0.7.0 + clsx: ^2.0.0 + dompurify: ^3.2.3 + marked: ^15.0.3 + react-use: ^17.4.2 + tailwind-merge: ^1.13.2 + tailwindcss: ^3.3.3 + tailwindcss-animate: ^1.0.6 + peerDependencies: + react: ">=18.0.0" + typescript: ">=5.4.5" + checksum: 4a547d62005e7669e4f880cc55dd4270364229ad3ab477f7c2cbaea56aeda8f8fddc21cf8a3e62531fa9e1d5d2387d7484cde82a62b99153101aeb09b90879b7 + languageName: node + linkType: hard + "@calcom/attio@workspace:packages/app-store/attio": version: 0.0.0-use.local resolution: "@calcom/attio@workspace:packages/app-store/attio" @@ -3018,7 +3238,7 @@ __metadata: languageName: unknown linkType: soft -"@calcom/embed-react@workspace:*, @calcom/embed-react@workspace:packages/embeds/embed-react": +"@calcom/embed-react@workspace:*, @calcom/embed-react@workspace:^, @calcom/embed-react@workspace:packages/embeds/embed-react": version: 0.0.0-use.local resolution: "@calcom/embed-react@workspace:packages/embeds/embed-react" dependencies: @@ -3568,7 +3788,7 @@ __metadata: languageName: unknown linkType: soft -"@calcom/platform-libraries-0.0.2@npm:@calcom/platform-libraries@0.0.2, @calcom/platform-libraries@npm:0.0.2": +"@calcom/platform-libraries-0.0.2@npm:@calcom/platform-libraries@0.0.2": version: 0.0.2 resolution: "@calcom/platform-libraries@npm:0.0.2" dependencies: @@ -3578,13 +3798,13 @@ __metadata: languageName: node linkType: hard -"@calcom/platform-libraries@npm:@calcom/platform-libraries@0.0.208": - version: 0.0.208 - resolution: "@calcom/platform-libraries@npm:0.0.208" +"@calcom/platform-libraries@npm:@calcom/platform-libraries@0.0.214": + version: 0.0.214 + resolution: "@calcom/platform-libraries@npm:0.0.214" dependencies: "@calcom/features": "*" "@calcom/lib": "*" - checksum: bee3d47c331a210e452fd5b26ed75075f4906f07ba44903385ee2ddd764e4a6294eca0795a207fd875e8483d2beb60e6546dc4b9bda8a78e028b7a47ac5f2275 + checksum: 304038f00b7d4499acbb9b2d8ebfb85908b7252468e585eeb0c399e7a04fdda9fe4a278e3b414511d7381806f63c2fa060f6ceaef0800bc5f0b06a39bc31c08e languageName: node linkType: hard @@ -4196,6 +4416,141 @@ __metadata: languageName: unknown linkType: soft +"@calcom/website@workspace:apps/website": + version: 0.0.0-use.local + resolution: "@calcom/website@workspace:apps/website" + dependencies: + "@algora/sdk": ^0.1.2 + "@calcom/app-store": "*" + "@calcom/atoms": 1.0.101 + "@calcom/config": "*" + "@calcom/dayjs": "*" + "@calcom/embed-react": "workspace:^" + "@calcom/features": "*" + "@calcom/lib": "*" + "@calcom/prisma": "*" + "@calcom/tsconfig": "*" + "@calcom/ui": "*" + "@datocms/cma-client-node": ^2.0.0 + "@dub/analytics": ^0.0.15 + "@eslint/js": ^9.9.0 + "@floating-ui/react-dom": ^1.0.0 + "@flodlc/nebula": ^1.0.56 + "@graphql-codegen/cli": ^5.0.0 + "@graphql-codegen/typed-document-node": ^5.0.1 + "@graphql-codegen/typescript": ^4.0.1 + "@graphql-codegen/typescript-operations": ^4.0.1 + "@graphql-typed-document-node/core": ^3.2.0 + "@headlessui/react": ^1.5.0 + "@heroicons/react": ^1.0.6 + "@hookform/resolvers": ^2.9.7 + "@juggle/resize-observer": ^3.4.0 + "@next/bundle-analyzer": ^13.1.6 + "@radix-ui/react-accordion": ^1.0.0 + "@radix-ui/react-avatar": ^1.0.4 + "@radix-ui/react-dialog": ^1.0.0 + "@radix-ui/react-dropdown-menu": ^2.1.2 + "@radix-ui/react-navigation-menu": ^1.0.0 + "@radix-ui/react-portal": ^1.0.0 + "@radix-ui/react-scroll-area": ^1.2.2 + "@radix-ui/react-select": ^2.1.1 + "@radix-ui/react-slider": ^1.0.0 + "@radix-ui/react-tabs": ^1.0.0 + "@radix-ui/react-tooltip": ^1.0.0 + "@stripe/stripe-js": ^1.35.0 + "@tailwindcss/container-queries": ^0.1.1 + "@tanstack/react-query": ^4.3.9 + "@typeform/embed-react": ^1.2.4 + "@types/bcryptjs": ^2.4.2 + "@types/debounce": ^1.2.1 + "@types/gtag.js": ^0.0.10 + "@types/micro": 7.3.7 + "@types/node": 16.9.1 + "@types/react": 18.0.26 + "@types/react-gtm-module": ^2.0.1 + "@types/xml2js": ^0.4.11 + "@uiw/codemirror-extensions-langs": ^4.19.16 + "@uiw/codemirror-themes-all": ^4.19.6 + "@uiw/react-codemirror": ^4.19.16 + "@vercel/analytics": ^0.1.6 + "@vercel/edge-functions-ui": ^0.2.1 + "@vercel/og": ^0.5.0 + autoprefixer: ^10.4.12 + bcryptjs: ^2.4.3 + class-variance-authority: ^0.7.0 + clsx: ^1.2.1 + cobe: ^0.4.1 + codemirror: ^6.0.1 + concurrently: ^7.6.0 + cross-env: ^7.0.3 + datocms-structured-text-to-plain-text: ^2.0.4 + datocms-structured-text-utils: ^2.0.4 + debounce: ^1.2.1 + dotenv: ^16.3.1 + embla-carousel-react: ^8.1.8 + enquirer: ^2.4.1 + env-cmd: ^10.1.0 + eslint: ^9.9.0 + eslint-plugin-react: ^7.35.0 + framer-motion: ^11.0.25 + globals: ^15.9.0 + globby: ^13.1.3 + graphql: ^16.8.0 + graphql-codegen: ^0.4.0 + graphql-request: ^6.1.0 + gray-matter: ^4.0.3 + gsap: ^3.11.0 + i18n-unused: ^0.13.0 + iframe-resizer-react: ^1.1.0 + keen-slider: ^6.8.0 + lucide-react: ^0.364.0 + micro: ^10.0.1 + next: ^14.1.3 + next-auth: ^4.22.1 + next-axiom: ^0.17.0 + next-i18next: ^13.2.2 + next-seo: ^6.0.0 + playwright-core: ^1.38.1 + postcss: ^8.4.18 + posthog-js: ^1.167.0 + prettier: 3.3.3 + prism-react-renderer: ^1.3.5 + react: ^18.2.0 + react-confetti: ^6.0.1 + react-datocms: ^5.0.3 + react-device-detect: ^2.2.2 + react-dom: ^18.2.0 + react-fast-marquee: ^1.6.4 + react-github-btn: ^1.4.0 + react-hook-form: ^7.43.3 + react-hot-toast: ^2.3.0 + react-live-chat-loader: ^2.8.1 + react-markdown: ^9.0.1 + react-merge-refs: 1.1.0 + react-parallax-tilt: ^1.7.226 + react-resize-detector: ^9.1.0 + react-twemoji: ^0.3.0 + react-twitter-embed: ^4.0.4 + react-use-measure: ^2.1.1 + react-wrap-balancer: ^1.0.0 + rehype-raw: ^7.0.0 + remark: ^14.0.2 + remark-gfm: ^4.0.0 + remark-html: ^14.0.1 + remeda: ^1.24.1 + sonner: ^1.7.2 + stripe: ^9.16.0 + tailwind-merge: ^1.13.2 + tailwindcss: ^3.3.3 + ts-node: ^10.9.1 + typescript: ^4.4.4 + typescript-eslint: ^8.2.0 + wait-on: ^7.0.1 + xml2js: ^0.6.0 + zod: ^3.22.2 + languageName: unknown + linkType: soft + "@calcom/whatsapp@workspace:packages/app-store/whatsapp": version: 0.0.0-use.local resolution: "@calcom/whatsapp@workspace:packages/app-store/whatsapp" @@ -4562,6 +4917,413 @@ __metadata: languageName: node linkType: hard +"@codemirror/autocomplete@npm:^6.0.0, @codemirror/autocomplete@npm:^6.3.2, @codemirror/autocomplete@npm:^6.7.1": + version: 6.18.6 + resolution: "@codemirror/autocomplete@npm:6.18.6" + dependencies: + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.17.0 + "@lezer/common": ^1.0.0 + checksum: 1d3657d5fbd2bbf983edf7fb14568b1f813a15f03848bef3833835dd3a30985d881e093842f7b3def23789b542db4eb81ec07bfa313d1ee1d54cb1b273027dea + languageName: node + linkType: hard + +"@codemirror/commands@npm:^6.0.0, @codemirror/commands@npm:^6.1.0": + version: 6.8.1 + resolution: "@codemirror/commands@npm:6.8.1" + dependencies: + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.4.0 + "@codemirror/view": ^6.27.0 + "@lezer/common": ^1.1.0 + checksum: 838365af4f12e985c35f4bc59e38eb809e951fd3e35d5ad43548e61c26deda050276346dd031b9c6ed7fe13a777d59c37b9b1e46609d1d79e622d908340a468e + languageName: node + linkType: hard + +"@codemirror/lang-angular@npm:^0.1.0": + version: 0.1.4 + resolution: "@codemirror/lang-angular@npm:0.1.4" + dependencies: + "@codemirror/lang-html": ^6.0.0 + "@codemirror/lang-javascript": ^6.1.2 + "@codemirror/language": ^6.0.0 + "@lezer/common": ^1.2.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.3.3 + checksum: 1d44788c19598e030c683361eb1771a11a625921fda67833ce98567080bb5318081fc5ae457bcc69870c4b286b96f499d2bbc3f3acda53f3c30d5df9895c9586 + languageName: node + linkType: hard + +"@codemirror/lang-cpp@npm:^6.0.0": + version: 6.0.2 + resolution: "@codemirror/lang-cpp@npm:6.0.2" + dependencies: + "@codemirror/language": ^6.0.0 + "@lezer/cpp": ^1.0.0 + checksum: bb9eba482cca80037ce30c7b193cf45eff19ccbb773764fddf2071756468ecc25aa53c777c943635054f89095b0247b9b50c339e107e41e68d34d12a7295f9a9 + languageName: node + linkType: hard + +"@codemirror/lang-css@npm:^6.0.0, @codemirror/lang-css@npm:^6.2.0": + version: 6.3.1 + resolution: "@codemirror/lang-css@npm:6.3.1" + dependencies: + "@codemirror/autocomplete": ^6.0.0 + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@lezer/common": ^1.0.2 + "@lezer/css": ^1.1.7 + checksum: ed175d75d75bc0a059d1e60b3dcd8464d570da14fc97388439943c9c43e1e9146e37b83fe2ccaad9cd387420b7b411ea1d24ede78ecd1f2045a38acbb4dd36bc + languageName: node + linkType: hard + +"@codemirror/lang-go@npm:^6.0.0": + version: 6.0.1 + resolution: "@codemirror/lang-go@npm:6.0.1" + dependencies: + "@codemirror/autocomplete": ^6.0.0 + "@codemirror/language": ^6.6.0 + "@codemirror/state": ^6.0.0 + "@lezer/common": ^1.0.0 + "@lezer/go": ^1.0.0 + checksum: 80138a4ead5757698468c26d888f877477a2567d86e835ca0c1fd8b8f87ad5107e60bcc3b377add1ce8cdcc6e7bb37983ca1c7694f18a03bec8c4280a51dc7bd + languageName: node + linkType: hard + +"@codemirror/lang-html@npm:^6.0.0, @codemirror/lang-html@npm:^6.4.0": + version: 6.4.9 + resolution: "@codemirror/lang-html@npm:6.4.9" + dependencies: + "@codemirror/autocomplete": ^6.0.0 + "@codemirror/lang-css": ^6.0.0 + "@codemirror/lang-javascript": ^6.0.0 + "@codemirror/language": ^6.4.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.17.0 + "@lezer/common": ^1.0.0 + "@lezer/css": ^1.1.0 + "@lezer/html": ^1.3.0 + checksum: ac8c3ceb0396f2e032752c5079bd950124dca708bc64e96fc147dc5fe7133e5cee0814fe951abdb953ec1d11fa540e4b30a712b5149d9a36016a197a28de45d7 + languageName: node + linkType: hard + +"@codemirror/lang-java@npm:^6.0.0": + version: 6.0.1 + resolution: "@codemirror/lang-java@npm:6.0.1" + dependencies: + "@codemirror/language": ^6.0.0 + "@lezer/java": ^1.0.0 + checksum: 4679104683cbffcd224ac04c7e5d144b787494697b26470b07017259035b7bb3fa62609d9a61bfbc566f1756d9f972f9f26d96a3c1362dd48881c1172f9a914d + languageName: node + linkType: hard + +"@codemirror/lang-javascript@npm:^6.0.0, @codemirror/lang-javascript@npm:^6.1.0, @codemirror/lang-javascript@npm:^6.1.2": + version: 6.2.4 + resolution: "@codemirror/lang-javascript@npm:6.2.4" + dependencies: + "@codemirror/autocomplete": ^6.0.0 + "@codemirror/language": ^6.6.0 + "@codemirror/lint": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.17.0 + "@lezer/common": ^1.0.0 + "@lezer/javascript": ^1.0.0 + checksum: 0350e9ac2df155c4ecf75d556f40b677c284c1d320620dc7228e2aa458e258dd1145c86e5ebf3451347ed6ef528f72c2eb60f5d3f6bd10af8aabb2819109e21a + languageName: node + linkType: hard + +"@codemirror/lang-json@npm:^6.0.0": + version: 6.0.1 + resolution: "@codemirror/lang-json@npm:6.0.1" + dependencies: + "@codemirror/language": ^6.0.0 + "@lezer/json": ^1.0.0 + checksum: e9e87d50ff7b81bd56a6ab50740b1dd54e9a93f1be585e1d59d0642e2148842ea1528ac7b7221eb4ddc7fe84bbc28065144cc3ab86f6e06c6aeb2d4b4e62acf1 + languageName: node + linkType: hard + +"@codemirror/lang-less@npm:^6.0.0, @codemirror/lang-less@npm:^6.0.1": + version: 6.0.2 + resolution: "@codemirror/lang-less@npm:6.0.2" + dependencies: + "@codemirror/lang-css": ^6.2.0 + "@codemirror/language": ^6.0.0 + "@lezer/common": ^1.2.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: d750f70b324f808da0f995270436d2fc16df922cf671440d46baa1231d6db8a4db18d96cc3cb34374ddb96e657306c3ff1c79cd2a36f424872ecb19294cdc3d3 + languageName: node + linkType: hard + +"@codemirror/lang-lezer@npm:^6.0.0": + version: 6.0.1 + resolution: "@codemirror/lang-lezer@npm:6.0.1" + dependencies: + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@lezer/common": ^1.0.0 + "@lezer/lezer": ^1.0.0 + checksum: deb80a1588dff232eeb530ba9d662285e8ca4b15687c773f16fc5815d3d1b638b6783eba104c576e37a72627eb662103addc660fefb510f49b2e3f3f4cff60b2 + languageName: node + linkType: hard + +"@codemirror/lang-liquid@npm:^6.0.0, @codemirror/lang-liquid@npm:^6.0.1": + version: 6.2.3 + resolution: "@codemirror/lang-liquid@npm:6.2.3" + dependencies: + "@codemirror/autocomplete": ^6.0.0 + "@codemirror/lang-html": ^6.0.0 + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 + "@lezer/common": ^1.0.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.3.1 + checksum: 1dc3373504118fcbb6dc4fc5e0fb3d4d01334cd8d0be9f55c6503646c2dcb5548c6c507925e4d93a4c2d66daf16d438130c8a238160e335420318a214b381e54 + languageName: node + linkType: hard + +"@codemirror/lang-markdown@npm:^6.0.0, @codemirror/lang-markdown@npm:^6.1.0": + version: 6.3.2 + resolution: "@codemirror/lang-markdown@npm:6.3.2" + dependencies: + "@codemirror/autocomplete": ^6.7.1 + "@codemirror/lang-html": ^6.0.0 + "@codemirror/language": ^6.3.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 + "@lezer/common": ^1.2.1 + "@lezer/markdown": ^1.0.0 + checksum: f136d50156f13619d7ceb4fae28fc2342064be371a6cb057ba304658d885cf029d2d0d69b03b3c591c86a2c9b46bb2b3820549d5ff936a9b6aabaf692923c84a + languageName: node + linkType: hard + +"@codemirror/lang-php@npm:^6.0.0": + version: 6.0.1 + resolution: "@codemirror/lang-php@npm:6.0.1" + dependencies: + "@codemirror/lang-html": ^6.0.0 + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@lezer/common": ^1.0.0 + "@lezer/php": ^1.0.0 + checksum: c003a29a426486453fdfddbf7302982fa2aa7f059bf6f1ce4cbf08341b0162eee5e2f50e0d71c418dcd358491631780156d846fe352754d042576172c5d86721 + languageName: node + linkType: hard + +"@codemirror/lang-python@npm:^6.0.0, @codemirror/lang-python@npm:^6.1.0": + version: 6.2.1 + resolution: "@codemirror/lang-python@npm:6.2.1" + dependencies: + "@codemirror/autocomplete": ^6.3.2 + "@codemirror/language": ^6.8.0 + "@codemirror/state": ^6.0.0 + "@lezer/common": ^1.2.1 + "@lezer/python": ^1.1.4 + checksum: 977ce444ab7c68261107c40e8a46d3480a239ac5a093f39fad7da0644fc08cb4b90552c8b7fad396f936e34b5bbac510533ea7b4229d3b8271774a1af1e717aa + languageName: node + linkType: hard + +"@codemirror/lang-rust@npm:^6.0.0": + version: 6.0.1 + resolution: "@codemirror/lang-rust@npm:6.0.1" + dependencies: + "@codemirror/language": ^6.0.0 + "@lezer/rust": ^1.0.0 + checksum: 8a439944cb22159b0b3465ca4fa4294c69843219d5d30e278ae6df8e48f30a7a9256129723c025ec9b5e694d31a3560fb004300b125ffcd81c22d13825845170 + languageName: node + linkType: hard + +"@codemirror/lang-sass@npm:^6.0.0, @codemirror/lang-sass@npm:^6.0.1": + version: 6.0.2 + resolution: "@codemirror/lang-sass@npm:6.0.2" + dependencies: + "@codemirror/lang-css": ^6.2.0 + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@lezer/common": ^1.0.2 + "@lezer/sass": ^1.0.0 + checksum: e7665aaab70476a952522b143fd7bd59f6c025746cbf7b542f6965f94eecac483b4afd03f6da98aaa1572e379194309b241c5264eff05c681c637aa26651b9ab + languageName: node + linkType: hard + +"@codemirror/lang-sql@npm:^6.0.0, @codemirror/lang-sql@npm:^6.4.0": + version: 6.8.0 + resolution: "@codemirror/lang-sql@npm:6.8.0" + dependencies: + "@codemirror/autocomplete": ^6.0.0 + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@lezer/common": ^1.2.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: 1b5a3c8129b09f24039d8c0906fc4cb8d0f706a424a1d56721057bd1e647797c2b1240bb53eed9bf2bac5806a4e0363e555a3963f04c478efa05829890c537f7 + languageName: node + linkType: hard + +"@codemirror/lang-vue@npm:^0.1.1": + version: 0.1.3 + resolution: "@codemirror/lang-vue@npm:0.1.3" + dependencies: + "@codemirror/lang-html": ^6.0.0 + "@codemirror/lang-javascript": ^6.1.2 + "@codemirror/language": ^6.0.0 + "@lezer/common": ^1.2.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.3.1 + checksum: cd1310da4306dd9794c7d5fdf598366ab094e58cd9d353ca8d873fbf93cc725a94a04e5da3946d339b503f8d8566aa59d5b07b4dcd08f4ffc4e2e065731fbbb1 + languageName: node + linkType: hard + +"@codemirror/lang-wast@npm:^6.0.0": + version: 6.0.2 + resolution: "@codemirror/lang-wast@npm:6.0.2" + dependencies: + "@codemirror/language": ^6.0.0 + "@lezer/common": ^1.2.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: 72119d4a7d726c54167aa227c982ae9fa785c8ad97a158d8350ae95eecfbd8028a803eef939f7e6c5c6e626fcecda1dc37e9dffc6d5d6ec105f686aeda6b2c24 + languageName: node + linkType: hard + +"@codemirror/lang-xml@npm:^6.0.0": + version: 6.1.0 + resolution: "@codemirror/lang-xml@npm:6.1.0" + dependencies: + "@codemirror/autocomplete": ^6.0.0 + "@codemirror/language": ^6.4.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 + "@lezer/common": ^1.0.0 + "@lezer/xml": ^1.0.0 + checksum: 3a1b7af07b29ad7e53b77bf584245580b613bc92256059f175f2b1d7c28c4e39b75654fe169b9a8a330a60164b53ff5254bdb5b8ee8c6e6766427ee115c4e229 + languageName: node + linkType: hard + +"@codemirror/lang-yaml@npm:^6.0.0": + version: 6.1.2 + resolution: "@codemirror/lang-yaml@npm:6.1.2" + dependencies: + "@codemirror/autocomplete": ^6.0.0 + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@lezer/common": ^1.2.0 + "@lezer/highlight": ^1.2.0 + "@lezer/lr": ^1.0.0 + "@lezer/yaml": ^1.0.0 + checksum: a33946f5928b6b52767d72149722c9156635830ca20861bcd1198ee2adb435b208b3423d3025a85dde3806e30746574a3eb18874a9f5556697ac0bd86e5b0b55 + languageName: node + linkType: hard + +"@codemirror/language-data@npm:>=6.0.0": + version: 6.5.1 + resolution: "@codemirror/language-data@npm:6.5.1" + dependencies: + "@codemirror/lang-angular": ^0.1.0 + "@codemirror/lang-cpp": ^6.0.0 + "@codemirror/lang-css": ^6.0.0 + "@codemirror/lang-go": ^6.0.0 + "@codemirror/lang-html": ^6.0.0 + "@codemirror/lang-java": ^6.0.0 + "@codemirror/lang-javascript": ^6.0.0 + "@codemirror/lang-json": ^6.0.0 + "@codemirror/lang-less": ^6.0.0 + "@codemirror/lang-liquid": ^6.0.0 + "@codemirror/lang-markdown": ^6.0.0 + "@codemirror/lang-php": ^6.0.0 + "@codemirror/lang-python": ^6.0.0 + "@codemirror/lang-rust": ^6.0.0 + "@codemirror/lang-sass": ^6.0.0 + "@codemirror/lang-sql": ^6.0.0 + "@codemirror/lang-vue": ^0.1.1 + "@codemirror/lang-wast": ^6.0.0 + "@codemirror/lang-xml": ^6.0.0 + "@codemirror/lang-yaml": ^6.0.0 + "@codemirror/language": ^6.0.0 + "@codemirror/legacy-modes": ^6.4.0 + checksum: df29ca46c5e4519a99e29c25fe72013d536c7a56f8027ae060b892c65b04fd9acf431958c53cd8ec818a4d30530d7afb058d36a24c77b09cece82b4e2af6082e + languageName: node + linkType: hard + +"@codemirror/language@npm:^6.0.0, @codemirror/language@npm:^6.3.0, @codemirror/language@npm:^6.4.0, @codemirror/language@npm:^6.6.0, @codemirror/language@npm:^6.8.0, @codemirror/language@npm:^6.9.0": + version: 6.11.0 + resolution: "@codemirror/language@npm:6.11.0" + dependencies: + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.23.0 + "@lezer/common": ^1.1.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + style-mod: ^4.0.0 + checksum: 5556dc163d5bd1d771a4f64e2750d3d1dc1f39030bc6e4b9a4704e4de7501e8d3511002e0f8f96cd8deef782730e0b49b576e30f0ea820e1c632995bd75caddd + languageName: node + linkType: hard + +"@codemirror/legacy-modes@npm:>=6.0.0, @codemirror/legacy-modes@npm:^6.4.0": + version: 6.5.1 + resolution: "@codemirror/legacy-modes@npm:6.5.1" + dependencies: + "@codemirror/language": ^6.0.0 + checksum: ad92399fdd5f7342d2b8d1ef450ac01cee96f2266938ca09de5047998bf6ac7a085dfe9941feb9ef6a924fda80aa7a1dc0ddc5dd6ce9c3ceaa36bcc14c5b2264 + languageName: node + linkType: hard + +"@codemirror/lint@npm:^6.0.0": + version: 6.8.5 + resolution: "@codemirror/lint@npm:6.8.5" + dependencies: + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.35.0 + crelt: ^1.0.5 + checksum: 76fa457c6664f333216aacb0112bce8a0e2fd7011c180b7c855027dbb871dc112a31bf828f5affc0e53973111dee3aac4c9c3b80ade8534ac9748f296fb77abc + languageName: node + linkType: hard + +"@codemirror/search@npm:^6.0.0": + version: 6.5.11 + resolution: "@codemirror/search@npm:6.5.11" + dependencies: + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 + crelt: ^1.0.5 + checksum: 4d418f176bd93705bc51c82a2f1c0e41fecc0368dc43c415635c4dfdd763aa05ebdf7f000bc9ca0083c1887e6d305b89482ec1f4db8b8765c6f38de324187476 + languageName: node + linkType: hard + +"@codemirror/state@npm:^6.0.0, @codemirror/state@npm:^6.1.1, @codemirror/state@npm:^6.4.0, @codemirror/state@npm:^6.5.0": + version: 6.5.2 + resolution: "@codemirror/state@npm:6.5.2" + dependencies: + "@marijn/find-cluster-break": ^1.0.0 + checksum: 4473a79475070d73f2e72f2eaaee5b69d2833b5020faa9714609d95dd03f0e5ad02cad8031a541dcd748436842a300332a2925317b39ffa09e3b4831145d98bc + languageName: node + linkType: hard + +"@codemirror/theme-one-dark@npm:^6.0.0": + version: 6.1.2 + resolution: "@codemirror/theme-one-dark@npm:6.1.2" + dependencies: + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 + "@lezer/highlight": ^1.0.0 + checksum: 29bc09f79534115f62658caf3d0db527fe347d058b69a8c7f580ae636827377aadd0606fd0d83dbab8d6f3b0a5df53d3253c619341b5fb93d2c8291a8efb9556 + languageName: node + linkType: hard + +"@codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.17.0, @codemirror/view@npm:^6.23.0, @codemirror/view@npm:^6.27.0, @codemirror/view@npm:^6.35.0": + version: 6.36.8 + resolution: "@codemirror/view@npm:6.36.8" + dependencies: + "@codemirror/state": ^6.5.0 + style-mod: ^4.1.0 + w3c-keyname: ^2.2.4 + checksum: 6b5bbbd6f73bf2486170e3ee6b13660b8919ec544dc527dbe6357034a534dbd7deea3e660fbcd67c5e53ea808d6411ddd355eb9cf3dc4dded2a7c3f95a7fb0ac + languageName: node + linkType: hard + "@colors/colors@npm:1.5.0": version: 1.5.0 resolution: "@colors/colors@npm:1.5.0" @@ -4688,6 +5450,47 @@ __metadata: languageName: node linkType: hard +"@datocms/cma-client-node@npm:^2.0.0": + version: 2.2.6 + resolution: "@datocms/cma-client-node@npm:2.2.6" + dependencies: + "@datocms/cma-client": ^2.2.6 + "@datocms/rest-client-utils": ^1.3.3 + got: ^11.8.5 + mime-types: ^2.1.35 + tmp-promise: ^3.0.3 + checksum: d18b568f5a4538abbd824091722f7df95c99cb5e550560bcae701654924e7933559b27d176fc7772056afe214516c99e8bb383319d4e492b053d20d3732df929 + languageName: node + linkType: hard + +"@datocms/cma-client@npm:^2.2.6": + version: 2.2.6 + resolution: "@datocms/cma-client@npm:2.2.6" + dependencies: + "@datocms/rest-client-utils": ^1.3.3 + checksum: 52e65ab5cdc6b09859f6b07f87a5e8700ba2b2f0579894b7f3c6735c1360f83e41941783dfab78bd18d3f9e12bbd50436b953663a332c50fbcd12b167c567ed6 + languageName: node + linkType: hard + +"@datocms/rest-client-utils@npm:^1.3.3": + version: 1.3.3 + resolution: "@datocms/rest-client-utils@npm:1.3.3" + dependencies: + "@whatwg-node/fetch": ^0.5.3 + async-scheduler: ^1.4.4 + checksum: eb746ce41b0c38b0ebef42238046ce8ff2734330580b7198cc11bf7182de394af9de4df021e967419592eb62729feae533c7126d5629ec97e7cc8b3aa30e9eb2 + languageName: node + linkType: hard + +"@dub/analytics@npm:^0.0.15": + version: 0.0.15 + resolution: "@dub/analytics@npm:0.0.15" + dependencies: + server-only: ^0.0.1 + checksum: afff2252db4a43593efc5c990fd684b5423f47978191078d3b788a7c3e51f912cf21a65d4cfdffe57a20dbe3a89c5f4ac47ff2899e266ae4ac0653a58ff0076f + languageName: node + linkType: hard + "@dub/analytics@npm:^0.0.27": version: 0.0.27 resolution: "@dub/analytics@npm:0.0.27" @@ -5736,6 +6539,17 @@ __metadata: languageName: node linkType: hard +"@eslint-community/eslint-utils@npm:^4.7.0": + version: 4.7.0 + resolution: "@eslint-community/eslint-utils@npm:4.7.0" + dependencies: + eslint-visitor-keys: ^3.4.3 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: b177e3b75c0b8d0e5d71f1c532edb7e40b31313db61f0c879f9bf19c3abb2783c6c372b5deb2396dab4432f2946b9972122ac682e77010376c029dfd0149c681 + languageName: node + linkType: hard + "@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.12.1": version: 4.12.1 resolution: "@eslint-community/regexpp@npm:4.12.1" @@ -5754,6 +6568,17 @@ __metadata: languageName: node linkType: hard +"@eslint/config-array@npm:^0.20.0": + version: 0.20.0 + resolution: "@eslint/config-array@npm:0.20.0" + dependencies: + "@eslint/object-schema": ^2.1.6 + debug: ^4.3.1 + minimatch: ^3.1.2 + checksum: 55824ea31f0502166a6fea97176c9c25089a0354474cdc72a5f739b1cf6925f44f667bf8f4f3a9dabf1112ab0fa671778ca3f96f1499f31ec42caf84cae55005 + languageName: node + linkType: hard + "@eslint/config-helpers@npm:^0.2.0": version: 0.2.0 resolution: "@eslint/config-helpers@npm:0.2.0" @@ -5761,6 +6586,13 @@ __metadata: languageName: node linkType: hard +"@eslint/config-helpers@npm:^0.2.1": + version: 0.2.2 + resolution: "@eslint/config-helpers@npm:0.2.2" + checksum: 8a4091a2c8af5366513647ccad720f184c1b723f04c086755797a3a5cac69dc9013bc8a75453d9fc188fc4364460f0eae9f1584b77b28082e0d26bf48356ae8f + languageName: node + linkType: hard + "@eslint/core@npm:^0.12.0": version: 0.12.0 resolution: "@eslint/core@npm:0.12.0" @@ -5770,6 +6602,15 @@ __metadata: languageName: node linkType: hard +"@eslint/core@npm:^0.14.0": + version: 0.14.0 + resolution: "@eslint/core@npm:0.14.0" + dependencies: + "@types/json-schema": ^7.0.15 + checksum: d68b8282b6f38c5145234f812f18f491d12d716240875591bd54bf5ac32858d979bdf6d38e521997a6e01f2c4223a3e66049714151da7278d0a95ff15b5d46c8 + languageName: node + linkType: hard + "@eslint/eslintrc@npm:^1.4.1": version: 1.4.1 resolution: "@eslint/eslintrc@npm:1.4.1" @@ -5811,6 +6652,13 @@ __metadata: languageName: node linkType: hard +"@eslint/js@npm:9.27.0, @eslint/js@npm:^9.9.0": + version: 9.27.0 + resolution: "@eslint/js@npm:9.27.0" + checksum: b31cfd61bb64e187f8758d13c893bf710f0500c29ced5dd6958c4fda254059489f1cee69567c20ba21608ce51224019b1fd10975b09d41adf16616d875da6ea4 + languageName: node + linkType: hard + "@eslint/object-schema@npm:^2.1.6": version: 2.1.6 resolution: "@eslint/object-schema@npm:2.1.6" @@ -5828,6 +6676,16 @@ __metadata: languageName: node linkType: hard +"@eslint/plugin-kit@npm:^0.3.1": + version: 0.3.1 + resolution: "@eslint/plugin-kit@npm:0.3.1" + dependencies: + "@eslint/core": ^0.14.0 + levn: ^0.4.1 + checksum: 8de2438456d9a741c909dd22a60454793c0147e1a13833717e4109c46f5a6b090780e8d9e940a3b3b9bf3643d01a0e726cc74f28ccd7caac95053bb39c2e6c04 + languageName: node + linkType: hard + "@ewsjs/ntlm-client@npm:^3.0.1": version: 3.0.1 resolution: "@ewsjs/ntlm-client@npm:3.0.1" @@ -5875,6 +6733,13 @@ __metadata: languageName: node linkType: hard +"@fastify/busboy@npm:^2.0.0": + version: 2.1.1 + resolution: "@fastify/busboy@npm:2.1.1" + checksum: 42c32ef75e906c9a4809c1e1930a5ca6d4ddc8d138e1a8c8ba5ea07f997db32210617d23b2e4a85fe376316a41a1a0439fc6ff2dedf5126d96f45a9d80754fb2 + languageName: node + linkType: hard + "@floating-ui/core@npm:^1.2.6": version: 1.2.6 resolution: "@floating-ui/core@npm:1.2.6" @@ -5926,7 +6791,7 @@ __metadata: languageName: node linkType: hard -"@floating-ui/react-dom@npm:^1.3.0": +"@floating-ui/react-dom@npm:^1.0.0, @floating-ui/react-dom@npm:^1.3.0": version: 1.3.0 resolution: "@floating-ui/react-dom@npm:1.3.0" dependencies: @@ -5971,6 +6836,13 @@ __metadata: languageName: node linkType: hard +"@flodlc/nebula@npm:^1.0.56": + version: 1.0.56 + resolution: "@flodlc/nebula@npm:1.0.56" + checksum: 044058423bc8a2c6ea60a0636400593a0912c142fbb6f50cc03288c702ae9c2029f84eb4fbac7e701a7ee1c2a5e33cc1af1b8d94af419c1197f74066b7867d21 + languageName: node + linkType: hard + "@formatjs/intl-localematcher@npm:^0.5.10, @formatjs/intl-localematcher@npm:^0.5.7": version: 0.5.10 resolution: "@formatjs/intl-localematcher@npm:0.5.10" @@ -6086,6 +6958,60 @@ __metadata: languageName: node linkType: hard +"@graphql-codegen/cli@npm:^5.0.0": + version: 5.0.6 + resolution: "@graphql-codegen/cli@npm:5.0.6" + dependencies: + "@babel/generator": ^7.18.13 + "@babel/template": ^7.18.10 + "@babel/types": ^7.18.13 + "@graphql-codegen/client-preset": ^4.8.1 + "@graphql-codegen/core": ^4.0.2 + "@graphql-codegen/plugin-helpers": ^5.0.3 + "@graphql-tools/apollo-engine-loader": ^8.0.0 + "@graphql-tools/code-file-loader": ^8.0.0 + "@graphql-tools/git-loader": ^8.0.0 + "@graphql-tools/github-loader": ^8.0.0 + "@graphql-tools/graphql-file-loader": ^8.0.0 + "@graphql-tools/json-file-loader": ^8.0.0 + "@graphql-tools/load": ^8.1.0 + "@graphql-tools/prisma-loader": ^8.0.0 + "@graphql-tools/url-loader": ^8.0.0 + "@graphql-tools/utils": ^10.0.0 + "@whatwg-node/fetch": ^0.10.0 + chalk: ^4.1.0 + cosmiconfig: ^8.1.3 + debounce: ^1.2.0 + detect-indent: ^6.0.0 + graphql-config: ^5.1.1 + inquirer: ^8.0.0 + is-glob: ^4.0.1 + jiti: ^1.17.1 + json-to-pretty-yaml: ^1.2.2 + listr2: ^4.0.5 + log-symbols: ^4.0.0 + micromatch: ^4.0.5 + shell-quote: ^1.7.3 + string-env-interpolation: ^1.0.1 + ts-log: ^2.2.3 + tslib: ^2.4.0 + yaml: ^2.3.1 + yargs: ^17.0.0 + peerDependencies: + "@parcel/watcher": ^2.1.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + peerDependenciesMeta: + "@parcel/watcher": + optional: true + bin: + gql-gen: cjs/bin.js + graphql-code-generator: cjs/bin.js + graphql-codegen: cjs/bin.js + graphql-codegen-esm: esm/bin.js + checksum: 60fbe724efc6bd8b71b46bf7b91ee2d5cde445ccfaffa4ec374602082795ed3f81dcd1e5978159c8c08fd51e4a2892937986752379cdf21a6c228ab478196718 + languageName: node + linkType: hard + "@graphql-codegen/cli@npm:^5.0.5": version: 5.0.5 resolution: "@graphql-codegen/cli@npm:5.0.5" @@ -6164,6 +7090,33 @@ __metadata: languageName: node linkType: hard +"@graphql-codegen/client-preset@npm:^4.8.1": + version: 4.8.1 + resolution: "@graphql-codegen/client-preset@npm:4.8.1" + dependencies: + "@babel/helper-plugin-utils": ^7.20.2 + "@babel/template": ^7.20.7 + "@graphql-codegen/add": ^5.0.3 + "@graphql-codegen/gql-tag-operations": 4.0.17 + "@graphql-codegen/plugin-helpers": ^5.1.0 + "@graphql-codegen/typed-document-node": ^5.1.1 + "@graphql-codegen/typescript": ^4.1.6 + "@graphql-codegen/typescript-operations": ^4.6.1 + "@graphql-codegen/visitor-plugin-common": ^5.8.0 + "@graphql-tools/documents": ^1.0.0 + "@graphql-tools/utils": ^10.0.0 + "@graphql-typed-document-node/core": 3.2.0 + tslib: ~2.6.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql-sock: ^1.0.0 + peerDependenciesMeta: + graphql-sock: + optional: true + checksum: 259b072e405ddd739a01cbb97d3e860fa608e46ac49cfc2b1013d1bb12402c1221c9998a84ea1981a44fdae6026375a1c0983d84f8c618958d47ba43228704a7 + languageName: node + linkType: hard + "@graphql-codegen/core@npm:^4.0.2": version: 4.0.2 resolution: "@graphql-codegen/core@npm:4.0.2" @@ -6222,7 +7175,7 @@ __metadata: languageName: node linkType: hard -"@graphql-codegen/typed-document-node@npm:^5.1.1": +"@graphql-codegen/typed-document-node@npm:^5.0.1, @graphql-codegen/typed-document-node@npm:^5.1.1": version: 5.1.1 resolution: "@graphql-codegen/typed-document-node@npm:5.1.1" dependencies: @@ -6237,6 +7190,25 @@ __metadata: languageName: node linkType: hard +"@graphql-codegen/typescript-operations@npm:^4.0.1, @graphql-codegen/typescript-operations@npm:^4.6.1": + version: 4.6.1 + resolution: "@graphql-codegen/typescript-operations@npm:4.6.1" + dependencies: + "@graphql-codegen/plugin-helpers": ^5.1.0 + "@graphql-codegen/typescript": ^4.1.6 + "@graphql-codegen/visitor-plugin-common": 5.8.0 + auto-bind: ~4.0.0 + tslib: ~2.6.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql-sock: ^1.0.0 + peerDependenciesMeta: + graphql-sock: + optional: true + checksum: dc6082df7d695bec4a45c18c00344d5d1b8afe975a6b04b98bb369e1c465b896df23b3b8fa9362e1213469b922dcba9e76222136bdaf02d91fefd1f852afd233 + languageName: node + linkType: hard + "@graphql-codegen/typescript-operations@npm:^4.6.0": version: 4.6.0 resolution: "@graphql-codegen/typescript-operations@npm:4.6.0" @@ -6253,7 +7225,7 @@ __metadata: languageName: node linkType: hard -"@graphql-codegen/typescript@npm:^4.1.6": +"@graphql-codegen/typescript@npm:^4.0.1, @graphql-codegen/typescript@npm:^4.1.6": version: 4.1.6 resolution: "@graphql-codegen/typescript@npm:4.1.6" dependencies: @@ -6554,6 +7526,20 @@ __metadata: languageName: node linkType: hard +"@graphql-tools/load@npm:^8.1.0": + version: 8.1.0 + resolution: "@graphql-tools/load@npm:8.1.0" + dependencies: + "@graphql-tools/schema": ^10.0.23 + "@graphql-tools/utils": ^10.8.6 + p-limit: 3.1.0 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 1c19861025b8e6188fa406038733db430667c8ff8c64c6cc576431dd4e7828c5249488df59b9326608bf9ddc51fac81017de1e7a566082bf3577645f9ab148e7 + languageName: node + linkType: hard + "@graphql-tools/merge@npm:^9.0.0, @graphql-tools/merge@npm:^9.0.24": version: 9.0.24 resolution: "@graphql-tools/merge@npm:9.0.24" @@ -6738,6 +7724,44 @@ __metadata: languageName: node linkType: hard +"@hapi/hoek@npm:^9.0.0, @hapi/hoek@npm:^9.3.0": + version: 9.3.0 + resolution: "@hapi/hoek@npm:9.3.0" + checksum: 4771c7a776242c3c022b168046af4e324d116a9d2e1d60631ee64f474c6e38d1bb07092d898bf95c7bc5d334c5582798a1456321b2e53ca817d4e7c88bc25b43 + languageName: node + linkType: hard + +"@hapi/topo@npm:^5.1.0": + version: 5.1.0 + resolution: "@hapi/topo@npm:5.1.0" + dependencies: + "@hapi/hoek": ^9.0.0 + checksum: 604dfd5dde76d5c334bd03f9001fce69c7ce529883acf92da96f4fe7e51221bf5e5110e964caca287a6a616ba027c071748ab636ff178ad750547fba611d6014 + languageName: node + linkType: hard + +"@headlessui/react@npm:^1.5.0": + version: 1.7.19 + resolution: "@headlessui/react@npm:1.7.19" + dependencies: + "@tanstack/react-virtual": ^3.0.0-beta.60 + client-only: ^0.0.1 + peerDependencies: + react: ^16 || ^17 || ^18 + react-dom: ^16 || ^17 || ^18 + checksum: 2a343a5fcf1f45e870cc94613231b89a8da78114001ffafa4751a0eceae7569ff9237aff1f2aedfa6f6e53ee3bb9ba5e5d19ebf1878fee3ff4f3c733fddc1087 + languageName: node + linkType: hard + +"@heroicons/react@npm:^1.0.6": + version: 1.0.6 + resolution: "@heroicons/react@npm:1.0.6" + peerDependencies: + react: ">= 16" + checksum: 372b1eda3ce735ef069777bc96304f70de585ebb71a6d1cedc121bb695f9bca235619112e3ee14e8779e95a03096813cbbe3b755927a54b7580d1ce084fa4096 + languageName: node + linkType: hard + "@hookform/error-message@npm:^2.0.0": version: 2.0.0 resolution: "@hookform/error-message@npm:2.0.0" @@ -8161,7 +9185,7 @@ __metadata: languageName: node linkType: hard -"@juggle/resize-observer@npm:^3.3.1": +"@juggle/resize-observer@npm:^3.3.1, @juggle/resize-observer@npm:^3.4.0": version: 3.4.0 resolution: "@juggle/resize-observer@npm:3.4.0" checksum: 2505028c05cc2e17639fcad06218b1c4b60f932a4ebb4b41ab546ef8c157031ae377e3f560903801f6d01706dbefd4943b6c4704bf19ed86dfa1c62f1473a570 @@ -8411,6 +9435,194 @@ __metadata: languageName: node linkType: hard +"@lezer/common@npm:^1.0.0, @lezer/common@npm:^1.0.2, @lezer/common@npm:^1.1.0, @lezer/common@npm:^1.2.0, @lezer/common@npm:^1.2.1": + version: 1.2.3 + resolution: "@lezer/common@npm:1.2.3" + checksum: 9b5f52d949adae69d077f56c0b1c2295923108c3dfb241dd9f17654ff708f3eab81ff9fa7f0d0e4a668eabdcb9d961c73e75caca87c966ca1436e30e49130fcb + languageName: node + linkType: hard + +"@lezer/cpp@npm:^1.0.0": + version: 1.1.3 + resolution: "@lezer/cpp@npm:1.1.3" + dependencies: + "@lezer/common": ^1.2.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: 87b48d89f3cd60c5a5c4368ea394fe7e27abb6ec9e6f8b7b4d005e3dd4d5268eb4e1c3a8a58807f63d18043ccfdc864965b9787c1274260999167d447cf562c3 + languageName: node + linkType: hard + +"@lezer/css@npm:^1.1.0, @lezer/css@npm:^1.1.7": + version: 1.2.1 + resolution: "@lezer/css@npm:1.2.1" + dependencies: + "@lezer/common": ^1.2.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.3.0 + checksum: da94af5100868127eb3902f9cf1960ac37369ffa12e39df3bdf02e51f7186b2c0e4be42e5901c45822a8fc076a2fd8a750e0483ff0a347d59a52062d8231c9f6 + languageName: node + linkType: hard + +"@lezer/go@npm:^1.0.0": + version: 1.0.1 + resolution: "@lezer/go@npm:1.0.1" + dependencies: + "@lezer/common": ^1.2.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.3.0 + checksum: fd67db90ed2a1ee2f060c000f8144d030fbf75f471bd1de1b912ccfb24985d5767f8f830fad73ee478eb0f79d4115eb458c9cd3a35cd38062d461026b96e9529 + languageName: node + linkType: hard + +"@lezer/highlight@npm:^1.0.0, @lezer/highlight@npm:^1.1.3, @lezer/highlight@npm:^1.1.6, @lezer/highlight@npm:^1.2.0": + version: 1.2.1 + resolution: "@lezer/highlight@npm:1.2.1" + dependencies: + "@lezer/common": ^1.0.0 + checksum: a8822d7e37f79ff64669eb2df4a9f9d16580e88f2b276a646092e19a9bdccac304e92510e200e35869a8b1f6c27eba5972c508d347a277e9b722d582ab7a23d5 + languageName: node + linkType: hard + +"@lezer/html@npm:^1.3.0": + version: 1.3.10 + resolution: "@lezer/html@npm:1.3.10" + dependencies: + "@lezer/common": ^1.2.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: cce391aab9259704ae3079b3209f74b2f248594dd8b851c28aaff26765e00ebb890a5ff1fe600f2d03aaf4ade0e36de8048d9632b12bfbccd47b3e649c3b0ecd + languageName: node + linkType: hard + +"@lezer/java@npm:^1.0.0": + version: 1.1.3 + resolution: "@lezer/java@npm:1.1.3" + dependencies: + "@lezer/common": ^1.2.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: a4b8a348ab08465cff6e54ec80e397d2629e0911decb4c6a47fd56cd74f6978fae478879b15a2e239203b9e53aef41ecaeba675f8013e290165249abdab7da74 + languageName: node + linkType: hard + +"@lezer/javascript@npm:^1.0.0": + version: 1.5.1 + resolution: "@lezer/javascript@npm:1.5.1" + dependencies: + "@lezer/common": ^1.2.0 + "@lezer/highlight": ^1.1.3 + "@lezer/lr": ^1.3.0 + checksum: 8de877c3f41a985211d0ef80c98966f1339f1a0ec1df0b199ce58d97cb4c0648cb3176d76ff426b9c5aa4a3bbb51bb6e673b5cc73763cb8dc4505f3853697fb5 + languageName: node + linkType: hard + +"@lezer/json@npm:^1.0.0": + version: 1.0.3 + resolution: "@lezer/json@npm:1.0.3" + dependencies: + "@lezer/common": ^1.2.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: 48e7b945fdfa2b5b6f862e27bc31f3991cba93f18df7fed0059b25f119b64dedd50bbc709d279e16e2b3eee10e7758d7d80c6d98d21bc15c284809d268837897 + languageName: node + linkType: hard + +"@lezer/lezer@npm:^1.0.0": + version: 1.1.2 + resolution: "@lezer/lezer@npm:1.1.2" + dependencies: + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: 3ff27b8a7da921195bc2807e24de9f80d36d0acecbff001baa7062db834e0432e4178fb096648929793c4243ac01f012e01c775f47907b88894b3a6ea54690f6 + languageName: node + linkType: hard + +"@lezer/lr@npm:^1.0.0, @lezer/lr@npm:^1.1.0, @lezer/lr@npm:^1.3.0, @lezer/lr@npm:^1.3.1, @lezer/lr@npm:^1.3.10, @lezer/lr@npm:^1.3.3, @lezer/lr@npm:^1.4.0": + version: 1.4.2 + resolution: "@lezer/lr@npm:1.4.2" + dependencies: + "@lezer/common": ^1.0.0 + checksum: 94318ad046c7dfcc8d37e26cb85b99623c39aef60aa51ec2abb30928e7a649f38fa5520f34bd5b356f1db11b6991999589f039e87c8949b0f163be3764f029d8 + languageName: node + linkType: hard + +"@lezer/markdown@npm:^1.0.0": + version: 1.4.3 + resolution: "@lezer/markdown@npm:1.4.3" + dependencies: + "@lezer/common": ^1.0.0 + "@lezer/highlight": ^1.0.0 + checksum: d730c5b273f0fc9df0658c338f007e00838aa87d7ecdda181eb5def5253cf76aaac0671ef03e7459fd179128e77c2e8d74c2dc43402ee21cebb4fb9dd7db89c7 + languageName: node + linkType: hard + +"@lezer/php@npm:^1.0.0": + version: 1.0.2 + resolution: "@lezer/php@npm:1.0.2" + dependencies: + "@lezer/common": ^1.2.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.1.0 + checksum: c85ef18571d37826b687dd141a0fe110f5814adaf9d1a391e7e482020d7f81df189ca89ec0dd141c1433d48eff4c6e53648b46f008dea8ad2dc574f35f1d4d79 + languageName: node + linkType: hard + +"@lezer/python@npm:^1.1.4": + version: 1.1.18 + resolution: "@lezer/python@npm:1.1.18" + dependencies: + "@lezer/common": ^1.2.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: 774d5bee83106b586159e3330452e9a3a72706d98d77929c44480a653ed560a80db2aa8f2f270858d176ac8e7187f0c585109fdac579deca115173dcaee13f9f + languageName: node + linkType: hard + +"@lezer/rust@npm:^1.0.0": + version: 1.0.2 + resolution: "@lezer/rust@npm:1.0.2" + dependencies: + "@lezer/common": ^1.2.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: fc5e97852b42beeb44a0ebe316dc64e3cc49ff481c22e3e67d6003fc4a5c257fcd94959cfcc76cd154fa172db9b3b4b28de5c09f10550d6e5f14869ddc274e5b + languageName: node + linkType: hard + +"@lezer/sass@npm:^1.0.0": + version: 1.1.0 + resolution: "@lezer/sass@npm:1.1.0" + dependencies: + "@lezer/common": ^1.2.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: df5cf2603b668c84da740e4db6f4881461ce43ab0077d79d3b1642662a756e686daece75758536bfdb3545d87561fb9735452cbd736aa4401d8212be6a1aa397 + languageName: node + linkType: hard + +"@lezer/xml@npm:^1.0.0": + version: 1.0.6 + resolution: "@lezer/xml@npm:1.0.6" + dependencies: + "@lezer/common": ^1.2.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: 71217d49b9207bd19d69ae98ad406d0c7ff395b6ad118528f3f81455f973e01597cac1ffa2741f2c6739d4ede17edb49573eaa3246f8f5a6da4d97dcb940309d + languageName: node + linkType: hard + +"@lezer/yaml@npm:^1.0.0": + version: 1.0.3 + resolution: "@lezer/yaml@npm:1.0.3" + dependencies: + "@lezer/common": ^1.2.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.4.0 + checksum: d794e5253e89471293744cb25bf765b2ba50ae60675e82f80b48203f6b53ee7b0209af6e487263dff8ee1490dc0ba797b7c7a77566d645c5213ed55d33ab1572 + languageName: node + linkType: hard + "@libsql/hrana-client@npm:^0.4.1": version: 0.4.4 resolution: "@libsql/hrana-client@npm:0.4.4" @@ -8519,6 +9731,13 @@ __metadata: languageName: node linkType: hard +"@marijn/find-cluster-break@npm:^1.0.0": + version: 1.0.2 + resolution: "@marijn/find-cluster-break@npm:1.0.2" + checksum: 0d836de25e04d58325813401ef3c2d34caf040da985a5935fcbc9d84e7b47a21bdb15f57d70c2bf0960bd29ed3dbbb1afd00cdd0fc4fafbee7fd0ffe7d508ae1 + languageName: node + linkType: hard + "@mdx-js/mdx@npm:^3.1.0": version: 3.1.0 resolution: "@mdx-js/mdx@npm:3.1.0" @@ -8723,6 +9942,60 @@ __metadata: languageName: node linkType: hard +"@mux/mux-player-react@npm:*": + version: 3.4.0 + resolution: "@mux/mux-player-react@npm:3.4.0" + dependencies: + "@mux/mux-player": 3.4.0 + "@mux/playback-core": 0.29.0 + prop-types: ^15.8.1 + peerDependencies: + "@types/react": ^17.0.0 || ^17.0.0-0 || ^18 || ^18.0.0-0 || ^19 || ^19.0.0-0 + react: ^17.0.2 || ^17.0.0-0 || ^18 || ^18.0.0-0 || ^19 || ^19.0.0-0 + react-dom: ^17.0.2 || ^17.0.2-0 || ^18 || ^18.0.0-0 || ^19 || ^19.0.0-0 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: eb92191478992a501e22f354145d092bbadb3caaa1323388462de94c0d8168b6e724b3cd35c8f1a27a03459ea8a307c94b150f38edd4f28e2b0a564c1880c391 + languageName: node + linkType: hard + +"@mux/mux-player@npm:3.4.0": + version: 3.4.0 + resolution: "@mux/mux-player@npm:3.4.0" + dependencies: + "@mux/mux-video": 0.25.2 + "@mux/playback-core": 0.29.0 + media-chrome: ~4.9.1 + player.style: ^0.1.8 + checksum: f8d2f78f0a298a17d96c59755d7c8b22187b222e48c09e97fa6c59c98c9081212b9df34b68d0c52d74a4250fc510e83244a9a1c22f461c087c2b7fb1325b8f52 + languageName: node + linkType: hard + +"@mux/mux-video@npm:0.25.2": + version: 0.25.2 + resolution: "@mux/mux-video@npm:0.25.2" + dependencies: + "@mux/playback-core": 0.29.0 + castable-video: ~1.1.7 + custom-media-element: ~1.4.2 + media-tracks: ~0.3.3 + checksum: 431f4c1ff699755be0b16d0124b383649c4470d72d371f4139dde7e967f82907aac8e98c6a1d5820aff9a4d8ff837a48204077f39fb34fe881a9b199248e51fd + languageName: node + linkType: hard + +"@mux/playback-core@npm:0.29.0": + version: 0.29.0 + resolution: "@mux/playback-core@npm:0.29.0" + dependencies: + hls.js: ~1.5.19 + mux-embed: ^5.8.3 + checksum: 2073dcfaebb8b31a6ff69d4c5adf6da4c4301b02d9f537cff34799160141afab7a1e4b8ea75cc942f12cbe97a6e66dba8eb72ccd8b36c81744c4f7d418e3bb2f + languageName: node + linkType: hard + "@nest-lab/throttler-storage-redis@npm:1.0.0": version: 1.0.0 resolution: "@nest-lab/throttler-storage-redis@npm:1.0.0" @@ -9058,6 +10331,13 @@ __metadata: languageName: node linkType: hard +"@next/env@npm:14.2.28": + version: 14.2.28 + resolution: "@next/env@npm:14.2.28" + checksum: 42f8c349b1eb0af0ad4ce689a63399c2297becb23084bf757cea8e078488e34c5501accfb51abd0218f884141fc8da977b25fe679a559f05d89a12f6ec390765 + languageName: node + linkType: hard + "@next/env@npm:15.1.6": version: 15.1.6 resolution: "@next/env@npm:15.1.6" @@ -9120,6 +10400,13 @@ __metadata: languageName: node linkType: hard +"@next/swc-darwin-arm64@npm:14.2.28": + version: 14.2.28 + resolution: "@next/swc-darwin-arm64@npm:14.2.28" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@next/swc-darwin-arm64@npm:15.1.6": version: 15.1.6 resolution: "@next/swc-darwin-arm64@npm:15.1.6" @@ -9155,6 +10442,13 @@ __metadata: languageName: node linkType: hard +"@next/swc-darwin-x64@npm:14.2.28": + version: 14.2.28 + resolution: "@next/swc-darwin-x64@npm:14.2.28" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@next/swc-darwin-x64@npm:15.1.6": version: 15.1.6 resolution: "@next/swc-darwin-x64@npm:15.1.6" @@ -9190,6 +10484,13 @@ __metadata: languageName: node linkType: hard +"@next/swc-linux-arm64-gnu@npm:14.2.28": + version: 14.2.28 + resolution: "@next/swc-linux-arm64-gnu@npm:14.2.28" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + "@next/swc-linux-arm64-gnu@npm:15.1.6": version: 15.1.6 resolution: "@next/swc-linux-arm64-gnu@npm:15.1.6" @@ -9225,6 +10526,13 @@ __metadata: languageName: node linkType: hard +"@next/swc-linux-arm64-musl@npm:14.2.28": + version: 14.2.28 + resolution: "@next/swc-linux-arm64-musl@npm:14.2.28" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + "@next/swc-linux-arm64-musl@npm:15.1.6": version: 15.1.6 resolution: "@next/swc-linux-arm64-musl@npm:15.1.6" @@ -9260,6 +10568,13 @@ __metadata: languageName: node linkType: hard +"@next/swc-linux-x64-gnu@npm:14.2.28": + version: 14.2.28 + resolution: "@next/swc-linux-x64-gnu@npm:14.2.28" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + "@next/swc-linux-x64-gnu@npm:15.1.6": version: 15.1.6 resolution: "@next/swc-linux-x64-gnu@npm:15.1.6" @@ -9295,6 +10610,13 @@ __metadata: languageName: node linkType: hard +"@next/swc-linux-x64-musl@npm:14.2.28": + version: 14.2.28 + resolution: "@next/swc-linux-x64-musl@npm:14.2.28" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + "@next/swc-linux-x64-musl@npm:15.1.6": version: 15.1.6 resolution: "@next/swc-linux-x64-musl@npm:15.1.6" @@ -9330,6 +10652,13 @@ __metadata: languageName: node linkType: hard +"@next/swc-win32-arm64-msvc@npm:14.2.28": + version: 14.2.28 + resolution: "@next/swc-win32-arm64-msvc@npm:14.2.28" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@next/swc-win32-arm64-msvc@npm:15.1.6": version: 15.1.6 resolution: "@next/swc-win32-arm64-msvc@npm:15.1.6" @@ -9365,6 +10694,13 @@ __metadata: languageName: node linkType: hard +"@next/swc-win32-ia32-msvc@npm:14.2.28": + version: 14.2.28 + resolution: "@next/swc-win32-ia32-msvc@npm:14.2.28" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@next/swc-win32-x64-msvc@npm:13.5.7": version: 13.5.7 resolution: "@next/swc-win32-x64-msvc@npm:13.5.7" @@ -9386,6 +10722,13 @@ __metadata: languageName: node linkType: hard +"@next/swc-win32-x64-msvc@npm:14.2.28": + version: 14.2.28 + resolution: "@next/swc-win32-x64-msvc@npm:14.2.28" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@next/swc-win32-x64-msvc@npm:15.1.6": version: 15.1.6 resolution: "@next/swc-win32-x64-msvc@npm:15.1.6" @@ -9412,6 +10755,25 @@ __metadata: languageName: node linkType: hard +"@nextjournal/lang-clojure@npm:^1.0.0": + version: 1.0.0 + resolution: "@nextjournal/lang-clojure@npm:1.0.0" + dependencies: + "@codemirror/language": ^6.0.0 + "@nextjournal/lezer-clojure": 1.0.0 + checksum: 7ab25b0d34a28d68cde3561d1b2c4e45f06fffec45e31d9476a4d624f272adddbcf3562e93a549dc4ab156363eb0b78cfd2c5ae1cf82f35a8f48855f299955d8 + languageName: node + linkType: hard + +"@nextjournal/lezer-clojure@npm:1.0.0": + version: 1.0.0 + resolution: "@nextjournal/lezer-clojure@npm:1.0.0" + dependencies: + "@lezer/lr": ^1.0.0 + checksum: 77b70ffa7a4ab0210e4034f1697abb9740177a3c3261164348f2f4a0c0ece15d323a5dd7b02d65747cacea80c21cbbb2b9923ae3f3155879b1232ac8792d3896 + languageName: node + linkType: hard + "@noble/ciphers@npm:^0.5.1": version: 0.5.3 resolution: "@noble/ciphers@npm:0.5.3" @@ -11259,6 +12621,39 @@ __metadata: languageName: node linkType: hard +"@peculiar/asn1-schema@npm:^2.3.13, @peculiar/asn1-schema@npm:^2.3.8": + version: 2.3.15 + resolution: "@peculiar/asn1-schema@npm:2.3.15" + dependencies: + asn1js: ^3.0.5 + pvtsutils: ^1.3.6 + tslib: ^2.8.1 + checksum: af9a84e3a530f0208561dfeacfc591e1bdbee1a8bb0bc666fc46c7d9e6426c793816cef0eba94d01d289e7b6d7be82767f90553404f3487e4abf54867831d4d7 + languageName: node + linkType: hard + +"@peculiar/json-schema@npm:^1.1.12": + version: 1.1.12 + resolution: "@peculiar/json-schema@npm:1.1.12" + dependencies: + tslib: ^2.0.0 + checksum: b26ececdc23c5ef25837f8be8d1eb5e1c8bb6e9ae7227ac59ffea57fff56bd05137734e7685e9100595d3d88d906dff638ef8d1df54264c388d3eac1b05aa060 + languageName: node + linkType: hard + +"@peculiar/webcrypto@npm:^1.4.0": + version: 1.5.0 + resolution: "@peculiar/webcrypto@npm:1.5.0" + dependencies: + "@peculiar/asn1-schema": ^2.3.8 + "@peculiar/json-schema": ^1.1.12 + pvtsutils: ^1.3.5 + tslib: ^2.6.2 + webcrypto-core: ^1.8.0 + checksum: 9022d7452d564a5a26fbacf477842be34736f2d9139f2f5026adc47fdeda7033193d727491503f2a829d35ab819bbfa61c82a785c49c999eac535ecd69a3a459 + languageName: node + linkType: hard + "@pkgjs/parseargs@npm:^0.11.0": version: 0.11.0 resolution: "@pkgjs/parseargs@npm:0.11.0" @@ -11798,6 +13193,13 @@ __metadata: languageName: node linkType: hard +"@radix-ui/number@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/number@npm:1.1.1" + checksum: 58717faf3f7aa180fdfcde7083cae0bc06677cbd08fd2bed5a3f8820deeb6f514f7d475f1fbb61e1f9a16cb2e7daf1000b2c614b0de3520fccfc04e3576e4566 + languageName: node + linkType: hard + "@radix-ui/primitive@npm:0.1.0": version: 0.1.0 resolution: "@radix-ui/primitive@npm:0.1.0" @@ -11839,6 +13241,40 @@ __metadata: languageName: node linkType: hard +"@radix-ui/primitive@npm:1.1.2": + version: 1.1.2 + resolution: "@radix-ui/primitive@npm:1.1.2" + checksum: 6cb2ac097faf77b7288bdfd87d92e983e357252d00ee0d2b51ad8e7897bf9f51ec53eafd7dd64c613671a2b02cb8166177bc3de444a6560ec60835c363321c18 + languageName: node + linkType: hard + +"@radix-ui/react-accordion@npm:^1.0.0": + version: 1.2.10 + resolution: "@radix-ui/react-accordion@npm:1.2.10" + dependencies: + "@radix-ui/primitive": 1.1.2 + "@radix-ui/react-collapsible": 1.1.10 + "@radix-ui/react-collection": 1.1.6 + "@radix-ui/react-compose-refs": 1.1.2 + "@radix-ui/react-context": 1.1.2 + "@radix-ui/react-direction": 1.1.1 + "@radix-ui/react-id": 1.1.1 + "@radix-ui/react-primitive": 2.1.2 + "@radix-ui/react-use-controllable-state": 1.2.2 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: d1f747fe4fd7086c552ed2073c59c61dff6e8f14f140f7ef98ae7bf690fd800bbd4db41a51dead80eb492387d96c994a0ebe5b6cc64d9913e5376f54a52dea4b + languageName: node + linkType: hard + "@radix-ui/react-accordion@npm:^1.2.1": version: 1.2.3 resolution: "@radix-ui/react-accordion@npm:1.2.3" @@ -11905,6 +13341,25 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-arrow@npm:1.1.6": + version: 1.1.6 + resolution: "@radix-ui/react-arrow@npm:1.1.6" + dependencies: + "@radix-ui/react-primitive": 2.1.2 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: cc06ead77744d62541c834f83699fbc80d2f8039a51dc17b82267cc303e66198bae6182d400316bd2ce47a2758f444677cac145fefa5311271dad98a06ae41b3 + languageName: node + linkType: hard + "@radix-ui/react-avatar@npm:^1.0.4": version: 1.0.4 resolution: "@radix-ui/react-avatar@npm:1.0.4" @@ -11955,6 +13410,32 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-collapsible@npm:1.1.10": + version: 1.1.10 + resolution: "@radix-ui/react-collapsible@npm:1.1.10" + dependencies: + "@radix-ui/primitive": 1.1.2 + "@radix-ui/react-compose-refs": 1.1.2 + "@radix-ui/react-context": 1.1.2 + "@radix-ui/react-id": 1.1.1 + "@radix-ui/react-presence": 1.1.4 + "@radix-ui/react-primitive": 2.1.2 + "@radix-ui/react-use-controllable-state": 1.2.2 + "@radix-ui/react-use-layout-effect": 1.1.1 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: ed90cba9d673679ef172ee7f78ca6b7d7cca488668a74ff2e781fd39dd568ed41106de4fb9e90b7f1f1cd2bc5a37c582808f89f93e6596f8c299e38d5ec21ebc + languageName: node + linkType: hard + "@radix-ui/react-collapsible@npm:1.1.3, @radix-ui/react-collapsible@npm:^1.1.1": version: 1.1.3 resolution: "@radix-ui/react-collapsible@npm:1.1.3" @@ -12090,6 +13571,28 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-collection@npm:1.1.6": + version: 1.1.6 + resolution: "@radix-ui/react-collection@npm:1.1.6" + dependencies: + "@radix-ui/react-compose-refs": 1.1.2 + "@radix-ui/react-context": 1.1.2 + "@radix-ui/react-primitive": 2.1.2 + "@radix-ui/react-slot": 1.2.2 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 50d339d3a0d4117ed53d8c60eac95378570a7fcaf52fe274375157cafa589c6efd0769cfa6f476fcb68c67694a87932f3b599f22bf5736b1da971adfdb4e66da + languageName: node + linkType: hard + "@radix-ui/react-compose-refs@npm:0.1.0": version: 0.1.0 resolution: "@radix-ui/react-compose-refs@npm:0.1.0" @@ -12153,6 +13656,19 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-compose-refs@npm:1.1.2": + version: 1.1.2 + resolution: "@radix-ui/react-compose-refs@npm:1.1.2" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 9a91f0213014ffa40c5b8aae4debb993be5654217e504e35aa7422887eb2d114486d37e53c482d0fffb00cd44f51b5269fcdf397b280c71666fa11b7f32f165d + languageName: node + linkType: hard + "@radix-ui/react-context@npm:0.1.1": version: 0.1.1 resolution: "@radix-ui/react-context@npm:0.1.1" @@ -12216,6 +13732,19 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-context@npm:1.1.2": + version: 1.1.2 + resolution: "@radix-ui/react-context@npm:1.1.2" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 6d08437f23df362672259e535ae463e70bf7a0069f09bfa06c983a5a90e15250bde19da1d63ef8e3da06df1e1b4f92afa9d28ca6aa0297bb1c8aaf6ca83d28c5 + languageName: node + linkType: hard + "@radix-ui/react-dialog-atoms@npm:@radix-ui/react-dialog@^1.0.4, @radix-ui/react-dialog@npm:^1.0.4": version: 1.0.4 resolution: "@radix-ui/react-dialog@npm:1.0.4" @@ -12275,6 +13804,38 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-dialog@npm:^1.0.0": + version: 1.1.13 + resolution: "@radix-ui/react-dialog@npm:1.1.13" + dependencies: + "@radix-ui/primitive": 1.1.2 + "@radix-ui/react-compose-refs": 1.1.2 + "@radix-ui/react-context": 1.1.2 + "@radix-ui/react-dismissable-layer": 1.1.9 + "@radix-ui/react-focus-guards": 1.1.2 + "@radix-ui/react-focus-scope": 1.1.6 + "@radix-ui/react-id": 1.1.1 + "@radix-ui/react-portal": 1.1.8 + "@radix-ui/react-presence": 1.1.4 + "@radix-ui/react-primitive": 2.1.2 + "@radix-ui/react-slot": 1.2.2 + "@radix-ui/react-use-controllable-state": 1.2.2 + aria-hidden: ^1.2.4 + react-remove-scroll: ^2.6.3 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 50c2b25e3ad1b8614471e953b01a946c83b9e7d2fee5bacaa43339bc4bd19bd31492559096a99d28a130f0b09db22fa5507780588a55699f4d61b88e47b3f841 + languageName: node + linkType: hard + "@radix-ui/react-dialog@npm:^1.1.2": version: 1.1.6 resolution: "@radix-ui/react-dialog@npm:1.1.6" @@ -12335,6 +13896,19 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-direction@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-direction@npm:1.1.1" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 8cc330285f1d06829568042ca9aabd3295be4690ae93683033fc8632b5c4dfc60f5c1312f6e2cae27c196189c719de3cfbcf792ff74800f9ccae0ab4abc1bc92 + languageName: node + linkType: hard + "@radix-ui/react-dismissable-layer@npm:0.1.5": version: 0.1.5 resolution: "@radix-ui/react-dismissable-layer@npm:0.1.5" @@ -12440,6 +14014,29 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-dismissable-layer@npm:1.1.9": + version: 1.1.9 + resolution: "@radix-ui/react-dismissable-layer@npm:1.1.9" + dependencies: + "@radix-ui/primitive": 1.1.2 + "@radix-ui/react-compose-refs": 1.1.2 + "@radix-ui/react-primitive": 2.1.2 + "@radix-ui/react-use-callback-ref": 1.1.1 + "@radix-ui/react-use-escape-keydown": 1.1.1 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 13e8bbb6cbad3aa6a18a1c611daf172083a8f351c1a989d192141432796b0c7adb2fab4e3be02cdcd8da986a33fb356cd67fbcc69799a7ce3eaf7bd699076720 + languageName: node + linkType: hard + "@radix-ui/react-dropdown-menu@npm:^2.0.5": version: 2.0.5 resolution: "@radix-ui/react-dropdown-menu@npm:2.0.5" @@ -12466,6 +14063,31 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-dropdown-menu@npm:^2.1.2": + version: 2.1.14 + resolution: "@radix-ui/react-dropdown-menu@npm:2.1.14" + dependencies: + "@radix-ui/primitive": 1.1.2 + "@radix-ui/react-compose-refs": 1.1.2 + "@radix-ui/react-context": 1.1.2 + "@radix-ui/react-id": 1.1.1 + "@radix-ui/react-menu": 2.1.14 + "@radix-ui/react-primitive": 2.1.2 + "@radix-ui/react-use-controllable-state": 1.2.2 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: f350ba37cbe2d42306af3e898465395a6cb8b3e99985ff93045f547198b6a4b68995fd38a710da3d7211581800c419b95bf3e8c036c28832b26735372721feb4 + languageName: node + linkType: hard + "@radix-ui/react-focus-guards@npm:1.0.0": version: 1.0.0 resolution: "@radix-ui/react-focus-guards@npm:1.0.0" @@ -12505,6 +14127,19 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-focus-guards@npm:1.1.2": + version: 1.1.2 + resolution: "@radix-ui/react-focus-guards@npm:1.1.2" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 618658e2b98575198b94ccfdd27f41beb37f83721c9a04617e848afbc47461124ae008d703d713b9644771d96d4852e49de322cf4be3b5f10a4f94d200db5248 + languageName: node + linkType: hard + "@radix-ui/react-focus-scope@npm:0.1.4": version: 0.1.4 resolution: "@radix-ui/react-focus-scope@npm:0.1.4" @@ -12577,6 +14212,27 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-focus-scope@npm:1.1.6": + version: 1.1.6 + resolution: "@radix-ui/react-focus-scope@npm:1.1.6" + dependencies: + "@radix-ui/react-compose-refs": 1.1.2 + "@radix-ui/react-primitive": 2.1.2 + "@radix-ui/react-use-callback-ref": 1.1.1 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: e96a76bfd2c7da48d72e9010eccfcb34c1ce153e37c45a6760bf6aa484a7aff97b50aaa6095f12edbabfeb615c6270f3984be81732343d41f446013056a21cea + languageName: node + linkType: hard + "@radix-ui/react-hover-card@npm:^1.0.7": version: 1.0.7 resolution: "@radix-ui/react-hover-card@npm:1.0.7" @@ -12660,6 +14316,21 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-id@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-id@npm:1.1.1" + dependencies: + "@radix-ui/react-use-layout-effect": 1.1.1 + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 8d68e200778eb3038906870fc869b3d881f4a46715fb20cddd9c76cba42fdaaa4810a3365b6ec2daf0f185b9201fc99d009167f59c7921bc3a139722c2e976db + languageName: node + linkType: hard + "@radix-ui/react-label@npm:0.1.5": version: 0.1.5 resolution: "@radix-ui/react-label@npm:0.1.5" @@ -12712,6 +14383,74 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-menu@npm:2.1.14": + version: 2.1.14 + resolution: "@radix-ui/react-menu@npm:2.1.14" + dependencies: + "@radix-ui/primitive": 1.1.2 + "@radix-ui/react-collection": 1.1.6 + "@radix-ui/react-compose-refs": 1.1.2 + "@radix-ui/react-context": 1.1.2 + "@radix-ui/react-direction": 1.1.1 + "@radix-ui/react-dismissable-layer": 1.1.9 + "@radix-ui/react-focus-guards": 1.1.2 + "@radix-ui/react-focus-scope": 1.1.6 + "@radix-ui/react-id": 1.1.1 + "@radix-ui/react-popper": 1.2.6 + "@radix-ui/react-portal": 1.1.8 + "@radix-ui/react-presence": 1.1.4 + "@radix-ui/react-primitive": 2.1.2 + "@radix-ui/react-roving-focus": 1.1.9 + "@radix-ui/react-slot": 1.2.2 + "@radix-ui/react-use-callback-ref": 1.1.1 + aria-hidden: ^1.2.4 + react-remove-scroll: ^2.6.3 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 7a39fd5132831e9d3ac1752cea846f85cb6efb24c39373e830d31ab8a38a6d6d54df0294f33de03cee9026fd5782c6cb6970513aaa5dd709152e5fb559568fe2 + languageName: node + linkType: hard + +"@radix-ui/react-navigation-menu@npm:^1.0.0": + version: 1.2.12 + resolution: "@radix-ui/react-navigation-menu@npm:1.2.12" + dependencies: + "@radix-ui/primitive": 1.1.2 + "@radix-ui/react-collection": 1.1.6 + "@radix-ui/react-compose-refs": 1.1.2 + "@radix-ui/react-context": 1.1.2 + "@radix-ui/react-direction": 1.1.1 + "@radix-ui/react-dismissable-layer": 1.1.9 + "@radix-ui/react-id": 1.1.1 + "@radix-ui/react-presence": 1.1.4 + "@radix-ui/react-primitive": 2.1.2 + "@radix-ui/react-use-callback-ref": 1.1.1 + "@radix-ui/react-use-controllable-state": 1.2.2 + "@radix-ui/react-use-layout-effect": 1.1.1 + "@radix-ui/react-use-previous": 1.1.1 + "@radix-ui/react-visually-hidden": 1.2.2 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: be60e9d0f8c4b6f52793f221a92749773c5c43f533511c6c6ec0a9e2edb1286389acd9f8a024457a03efd77ac683d8273272dbf06112b551572188a748497102 + languageName: node + linkType: hard + "@radix-ui/react-navigation-menu@npm:^1.2.1": version: 1.2.5 resolution: "@radix-ui/react-navigation-menu@npm:1.2.5" @@ -12897,6 +14636,34 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-popper@npm:1.2.6": + version: 1.2.6 + resolution: "@radix-ui/react-popper@npm:1.2.6" + dependencies: + "@floating-ui/react-dom": ^2.0.0 + "@radix-ui/react-arrow": 1.1.6 + "@radix-ui/react-compose-refs": 1.1.2 + "@radix-ui/react-context": 1.1.2 + "@radix-ui/react-primitive": 2.1.2 + "@radix-ui/react-use-callback-ref": 1.1.1 + "@radix-ui/react-use-layout-effect": 1.1.1 + "@radix-ui/react-use-rect": 1.1.1 + "@radix-ui/react-use-size": 1.1.1 + "@radix-ui/rect": 1.1.1 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 79f516780cad224e067639e8c77e9aac6f95bf753ce22cda691e72c0fef7c066d3886d79ccbf21ca7c85339ce62c5d397aaed05834b14843d483837a85f456c9 + languageName: node + linkType: hard + "@radix-ui/react-portal@npm:0.1.4": version: 0.1.4 resolution: "@radix-ui/react-portal@npm:0.1.4" @@ -12984,6 +14751,26 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-portal@npm:1.1.8": + version: 1.1.8 + resolution: "@radix-ui/react-portal@npm:1.1.8" + dependencies: + "@radix-ui/react-primitive": 2.1.2 + "@radix-ui/react-use-layout-effect": 1.1.1 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 09b573dc678f4aee26cf48e543456b5413befdebde28f089efc1076a8b0f5b58f5f0fab484de01369689be5c264d0b10cf0d7e1cf21cf3bffc8bb9238c9fdc56 + languageName: node + linkType: hard + "@radix-ui/react-presence@npm:1.0.0": version: 1.0.0 resolution: "@radix-ui/react-presence@npm:1.0.0" @@ -13039,6 +14826,26 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-presence@npm:1.1.4": + version: 1.1.4 + resolution: "@radix-ui/react-presence@npm:1.1.4" + dependencies: + "@radix-ui/react-compose-refs": 1.1.2 + "@radix-ui/react-use-layout-effect": 1.1.1 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: d3b0976368fccdfa07100c1f07ca434d0092d4132d1ed4a5c213802f7318d77fc1fd61d1b7038b87e82912688fafa97d8af000a6cca4027b09d92c5477f79dd0 + languageName: node + linkType: hard + "@radix-ui/react-primitive@npm:0.1.4": version: 0.1.4 resolution: "@radix-ui/react-primitive@npm:0.1.4" @@ -13141,6 +14948,25 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-primitive@npm:2.1.2": + version: 2.1.2 + resolution: "@radix-ui/react-primitive@npm:2.1.2" + dependencies: + "@radix-ui/react-slot": 1.2.2 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 57d53cc39c06413b3cf8b28cea65b98875f9ef0df38add2d684cb9c25d3b3dd02a478db31ba500404ad447501625fa9988f172c5f4e2e530b09ae89ad5a8d19f + languageName: node + linkType: hard + "@radix-ui/react-radio-group@npm:^1.0.0": version: 1.1.3 resolution: "@radix-ui/react-radio-group@npm:1.1.3" @@ -13225,6 +15051,33 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-roving-focus@npm:1.1.9": + version: 1.1.9 + resolution: "@radix-ui/react-roving-focus@npm:1.1.9" + dependencies: + "@radix-ui/primitive": 1.1.2 + "@radix-ui/react-collection": 1.1.6 + "@radix-ui/react-compose-refs": 1.1.2 + "@radix-ui/react-context": 1.1.2 + "@radix-ui/react-direction": 1.1.1 + "@radix-ui/react-id": 1.1.1 + "@radix-ui/react-primitive": 2.1.2 + "@radix-ui/react-use-callback-ref": 1.1.1 + "@radix-ui/react-use-controllable-state": 1.2.2 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: b92915fa3cb55138c188c903649b79fbc38345bbb6a70231d40014e5c5b41130ac748a681c9833ad021d1f31debdaeb0ef65b70a071923629f0814d140eb81fc + languageName: node + linkType: hard + "@radix-ui/react-scroll-area@npm:^1.2.0": version: 1.2.3 resolution: "@radix-ui/react-scroll-area@npm:1.2.3" @@ -13252,6 +15105,33 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-scroll-area@npm:^1.2.2": + version: 1.2.8 + resolution: "@radix-ui/react-scroll-area@npm:1.2.8" + dependencies: + "@radix-ui/number": 1.1.1 + "@radix-ui/primitive": 1.1.2 + "@radix-ui/react-compose-refs": 1.1.2 + "@radix-ui/react-context": 1.1.2 + "@radix-ui/react-direction": 1.1.1 + "@radix-ui/react-presence": 1.1.4 + "@radix-ui/react-primitive": 2.1.2 + "@radix-ui/react-use-callback-ref": 1.1.1 + "@radix-ui/react-use-layout-effect": 1.1.1 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 21c4ac11ea92679b54d3ba8d58199cf826f039bd1853ef4601829a1b35a6d948ac5cc34ad6f9789b23e7eaef25a23d9498033cf944b489ca1113228edd6b4053 + languageName: node + linkType: hard + "@radix-ui/react-select@npm:^0.1.1": version: 0.1.1 resolution: "@radix-ui/react-select@npm:0.1.1" @@ -13322,6 +15202,45 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-select@npm:^2.1.1": + version: 2.2.4 + resolution: "@radix-ui/react-select@npm:2.2.4" + dependencies: + "@radix-ui/number": 1.1.1 + "@radix-ui/primitive": 1.1.2 + "@radix-ui/react-collection": 1.1.6 + "@radix-ui/react-compose-refs": 1.1.2 + "@radix-ui/react-context": 1.1.2 + "@radix-ui/react-direction": 1.1.1 + "@radix-ui/react-dismissable-layer": 1.1.9 + "@radix-ui/react-focus-guards": 1.1.2 + "@radix-ui/react-focus-scope": 1.1.6 + "@radix-ui/react-id": 1.1.1 + "@radix-ui/react-popper": 1.2.6 + "@radix-ui/react-portal": 1.1.8 + "@radix-ui/react-primitive": 2.1.2 + "@radix-ui/react-slot": 1.2.2 + "@radix-ui/react-use-callback-ref": 1.1.1 + "@radix-ui/react-use-controllable-state": 1.2.2 + "@radix-ui/react-use-layout-effect": 1.1.1 + "@radix-ui/react-use-previous": 1.1.1 + "@radix-ui/react-visually-hidden": 1.2.2 + aria-hidden: ^1.2.4 + react-remove-scroll: ^2.6.3 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 4f681c2e8ac0ba17fd2ea6fd3079c08d226abdc27e121a07a12c1247c5716b5d81b31fc34143b1073cd1a2f4906d76627c7c5631ef649612aa6ea11a4d47069e + languageName: node + linkType: hard + "@radix-ui/react-separator@npm:1.0.3": version: 1.0.3 resolution: "@radix-ui/react-separator@npm:1.0.3" @@ -13486,6 +15405,21 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-slot@npm:1.2.2": + version: 1.2.2 + resolution: "@radix-ui/react-slot@npm:1.2.2" + dependencies: + "@radix-ui/react-compose-refs": 1.1.2 + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 6fa5d452fedffb2515a72c9f1bd0893e9c3a3fc4093eb44b0a90777d54119a1971f4dae2e01985a26eb4a9a5737c5d7ee0c22acd46ed0ddebe520c1f67b08ac2 + languageName: node + linkType: hard + "@radix-ui/react-switch@npm:^1.0.0": version: 1.0.3 resolution: "@radix-ui/react-switch@npm:1.0.3" @@ -13537,6 +15471,32 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-tabs@npm:^1.0.0": + version: 1.1.11 + resolution: "@radix-ui/react-tabs@npm:1.1.11" + dependencies: + "@radix-ui/primitive": 1.1.2 + "@radix-ui/react-context": 1.1.2 + "@radix-ui/react-direction": 1.1.1 + "@radix-ui/react-id": 1.1.1 + "@radix-ui/react-presence": 1.1.4 + "@radix-ui/react-primitive": 2.1.2 + "@radix-ui/react-roving-focus": 1.1.9 + "@radix-ui/react-use-controllable-state": 1.2.2 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 4e83442b41cb038ec149d7459958e892c2877ef4e07174fdff89a17bfde20a77e877bfe38378a13c4c9e13ec7223f16068cfaa85e861d3bb42e2bf93bf21b460 + languageName: node + linkType: hard + "@radix-ui/react-tabs@npm:^1.1.1": version: 1.1.3 resolution: "@radix-ui/react-tabs@npm:1.1.3" @@ -13791,6 +15751,19 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-use-callback-ref@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-use-callback-ref@npm:1.1.1" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: cde8c40f1d4e79e6e71470218163a746858304bad03758ac84dc1f94247a046478e8e397518350c8d6609c84b7e78565441d7505bb3ed573afce82cfdcd19faf + languageName: node + linkType: hard + "@radix-ui/react-use-controllable-state@npm:0.1.0": version: 0.1.0 resolution: "@radix-ui/react-use-controllable-state@npm:0.1.0" @@ -13846,6 +15819,37 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-use-controllable-state@npm:1.2.2": + version: 1.2.2 + resolution: "@radix-ui/react-use-controllable-state@npm:1.2.2" + dependencies: + "@radix-ui/react-use-effect-event": 0.0.2 + "@radix-ui/react-use-layout-effect": 1.1.1 + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: b438ee199d0630bf95eaafe8bf4bce219e73b371cfc8465f47548bfa4ee231f1134b5c6696b242890a01a0fd25fa34a7b172346bbfc5ee25cfb28b3881b1dc92 + languageName: node + linkType: hard + +"@radix-ui/react-use-effect-event@npm:0.0.2": + version: 0.0.2 + resolution: "@radix-ui/react-use-effect-event@npm:0.0.2" + dependencies: + "@radix-ui/react-use-layout-effect": 1.1.1 + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 5a1950a30a399ea7e4b98154da9f536737a610de80189b7aacd4f064a89a3cd0d2a48571d527435227252e72e872bdb544ff6ffcfbdd02de2efd011be4aaa902 + languageName: node + linkType: hard + "@radix-ui/react-use-escape-keydown@npm:0.1.0": version: 0.1.0 resolution: "@radix-ui/react-use-escape-keydown@npm:0.1.0" @@ -13901,6 +15905,21 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-use-escape-keydown@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-use-escape-keydown@npm:1.1.1" + dependencies: + "@radix-ui/react-use-callback-ref": 1.1.1 + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 0eb0756c2c55ddcde9ff01446ab01c085ab2bf799173e97db7ef5f85126f9e8600225570801a1f64740e6d14c39ffe8eed7c14d29737345a5797f4622ac96f6f + languageName: node + linkType: hard + "@radix-ui/react-use-layout-effect@npm:0.1.0": version: 0.1.0 resolution: "@radix-ui/react-use-layout-effect@npm:0.1.0" @@ -13951,6 +15970,19 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-use-layout-effect@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-use-layout-effect@npm:1.1.1" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: bad2ba4f206e6255263582bedfb7868773c400836f9a1b423c0b464ffe4a17e13d3f306d1ce19cf7a19a492e9d0e49747464f2656451bb7c6a99f5a57bd34de2 + languageName: node + linkType: hard + "@radix-ui/react-use-previous@npm:0.1.1": version: 0.1.1 resolution: "@radix-ui/react-use-previous@npm:0.1.1" @@ -13990,6 +16022,19 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-use-previous@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-use-previous@npm:1.1.1" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: ea6ea13523a0561dda9b14b9d44e299484816a6762d7fb50b91b27b6aec89f78c85245b69d5a904750d43919dbb7ef6ce6d3823639346675aa3a5cb9de32d984 + languageName: node + linkType: hard + "@radix-ui/react-use-rect@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/react-use-rect@npm:1.0.1" @@ -14021,6 +16066,21 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-use-rect@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-use-rect@npm:1.1.1" + dependencies: + "@radix-ui/rect": 1.1.1 + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 116461bebc49472f7497e66a9bd413541181b3d00c5e0aaeef45d790dc1fbd7c8dcea80b169ea273306228b9a3c2b70067e902d1fd5004b3057e3bbe35b9d55d + languageName: node + linkType: hard + "@radix-ui/react-use-size@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/react-use-size@npm:1.0.1" @@ -14052,6 +16112,21 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-use-size@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-use-size@npm:1.1.1" + dependencies: + "@radix-ui/react-use-layout-effect": 1.1.1 + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 64e61f65feb67ffc80e1fc4a8d5e32480fb6d68475e2640377e021178dead101568cba5f936c9c33e6c142c7cf2fb5d76ad7b23ef80e556ba142d56cf306147b + languageName: node + linkType: hard + "@radix-ui/react-visually-hidden@npm:0.1.4": version: 0.1.4 resolution: "@radix-ui/react-visually-hidden@npm:0.1.4" @@ -14103,6 +16178,25 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-visually-hidden@npm:1.2.2": + version: 1.2.2 + resolution: "@radix-ui/react-visually-hidden@npm:1.2.2" + dependencies: + "@radix-ui/react-primitive": 2.1.2 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: a145198fc9a68baa1e58f2e526f25d44d854f8c15afc8de872a00ed2f6810492688b3699fcf099ae839da7cc1312571c78fe56865c6326958d1c3ea2ac070fcf + languageName: node + linkType: hard + "@radix-ui/rect@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/rect@npm:1.0.1" @@ -14119,6 +16213,13 @@ __metadata: languageName: node linkType: hard +"@radix-ui/rect@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/rect@npm:1.1.1" + checksum: c1c111edeab70b14a735bca43601de6468c792482864b766ac8940b43321492e5c0ae62f92b156cecdc9265ec3c680c32b3fa0c8a90b5e796923a9af13c5dc20 + languageName: node + linkType: hard + "@reach/observe-rect@npm:^1.1.0": version: 1.2.0 resolution: "@reach/observe-rect@npm:1.2.0" @@ -14216,6 +16317,66 @@ __metadata: languageName: node linkType: hard +"@replit/codemirror-lang-csharp@npm:^6.1.0": + version: 6.2.0 + resolution: "@replit/codemirror-lang-csharp@npm:6.2.0" + peerDependencies: + "@codemirror/autocomplete": ^6.0.0 + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 + "@lezer/common": ^1.0.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: fda1ee5c3be7910e9a7c250ff628080105ddab40290ddc4e0b7cc3a77f4ac7e8ef7d67666bbfff8a832724804ef9f3c59426ae477dafaa77853782f41117ff6b + languageName: node + linkType: hard + +"@replit/codemirror-lang-nix@npm:^6.0.1": + version: 6.0.1 + resolution: "@replit/codemirror-lang-nix@npm:6.0.1" + peerDependencies: + "@codemirror/autocomplete": ^6.0.0 + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 + "@lezer/common": ^1.0.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: 70ba4bb19bff93e361979a833cd9086f826dba7b0967164599fc0f5692a2418db58706c3e6f900f53f13f88c39e0d92b1500e58f259d15b4985cbc3dc1cbd333 + languageName: node + linkType: hard + +"@replit/codemirror-lang-solidity@npm:^6.0.1": + version: 6.0.2 + resolution: "@replit/codemirror-lang-solidity@npm:6.0.2" + dependencies: + "@lezer/highlight": ^1.2.0 + peerDependencies: + "@codemirror/language": ^6.0.0 + checksum: 69dd565f74092937544fcc58c278ae68d7129e4b17b0c985d0385d33819a07b5335d41e9dd4e2e856be93c3cf3d4178cc01ecda479c1e939eabfb9db1ce31855 + languageName: node + linkType: hard + +"@replit/codemirror-lang-svelte@npm:^6.0.0": + version: 6.0.0 + resolution: "@replit/codemirror-lang-svelte@npm:6.0.0" + peerDependencies: + "@codemirror/autocomplete": ^6.0.0 + "@codemirror/lang-css": ^6.0.1 + "@codemirror/lang-html": ^6.2.0 + "@codemirror/lang-javascript": ^6.1.1 + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 + "@lezer/common": ^1.0.0 + "@lezer/highlight": ^1.0.0 + "@lezer/javascript": ^1.2.0 + "@lezer/lr": ^1.0.0 + checksum: 214cfcd37e7a40f94aa45410d229684c5cb55a30f04fe736ee88032df14a27e5a4109a3dfe30504f4d70ab0d8d8b6c0eeed97e8dd52bd9e3097adf00273c0b3a + languageName: node + linkType: hard + "@resvg/resvg-wasm@npm:2.4.0": version: 2.4.0 resolution: "@resvg/resvg-wasm@npm:2.4.0" @@ -14223,6 +16384,13 @@ __metadata: languageName: node linkType: hard +"@resvg/resvg-wasm@npm:2.6.0": + version: 2.6.0 + resolution: "@resvg/resvg-wasm@npm:2.6.0" + checksum: 730ababcab7d11be84129ab68aa9b86bb393b820b5a0a223fb53232462c33bc777eb875170691f54cd5d29c6aa36498f5b7dcd7fca000b56818e3e312be01804 + languageName: node + linkType: hard + "@rollup/plugin-commonjs@npm:28.0.1": version: 28.0.1 resolution: "@rollup/plugin-commonjs@npm:28.0.1" @@ -15710,6 +17878,29 @@ __metadata: languageName: node linkType: hard +"@sideway/address@npm:^4.1.5": + version: 4.1.5 + resolution: "@sideway/address@npm:4.1.5" + dependencies: + "@hapi/hoek": ^9.0.0 + checksum: 3e3ea0f00b4765d86509282290368a4a5fd39a7995fdc6de42116ca19a96120858e56c2c995081def06e1c53e1f8bccc7d013f6326602bec9d56b72ee2772b9d + languageName: node + linkType: hard + +"@sideway/formula@npm:^3.0.1": + version: 3.0.1 + resolution: "@sideway/formula@npm:3.0.1" + checksum: e4beeebc9dbe2ff4ef0def15cec0165e00d1612e3d7cea0bc9ce5175c3263fc2c818b679bd558957f49400ee7be9d4e5ac90487e1625b4932e15c4aa7919c57a + languageName: node + linkType: hard + +"@sideway/pinpoint@npm:^2.0.0": + version: 2.0.0 + resolution: "@sideway/pinpoint@npm:2.0.0" + checksum: 0f4491e5897fcf5bf02c46f5c359c56a314e90ba243f42f0c100437935daa2488f20482f0f77186bd6bf43345095a95d8143ecf8b1f4d876a7bc0806aba9c3d2 + languageName: node + linkType: hard + "@sinclair/typebox@npm:^0.25.16": version: 0.25.24 resolution: "@sinclair/typebox@npm:0.25.24" @@ -15724,7 +17915,7 @@ __metadata: languageName: node linkType: hard -"@sindresorhus/is@npm:^4": +"@sindresorhus/is@npm:^4, @sindresorhus/is@npm:^4.0.0": version: 4.6.0 resolution: "@sindresorhus/is@npm:4.6.0" checksum: 83839f13da2c29d55c97abc3bc2c55b250d33a0447554997a85c539e058e57b8da092da396e252b11ec24a0279a0bed1f537fa26302209327060643e327f81d2 @@ -16742,6 +18933,16 @@ __metadata: languageName: node linkType: hard +"@swc/helpers@npm:0.5.5": + version: 0.5.5 + resolution: "@swc/helpers@npm:0.5.5" + dependencies: + "@swc/counter": ^0.1.3 + tslib: ^2.4.0 + checksum: d4f207b191e54b29460804ddf2984ba6ece1d679a0b2f6a9c765dcf27bba92c5769e7965668a4546fb9f1021eaf0ff9be4bf5c235ce12adcd65acdfe77187d11 + languageName: node + linkType: hard + "@swc/types@npm:^0.1.8": version: 0.1.8 resolution: "@swc/types@npm:0.1.8" @@ -16751,6 +18952,24 @@ __metadata: languageName: node linkType: hard +"@szmarczak/http-timer@npm:^4.0.5": + version: 4.0.6 + resolution: "@szmarczak/http-timer@npm:4.0.6" + dependencies: + defer-to-connect: ^2.0.0 + checksum: c29df3bcec6fc3bdec2b17981d89d9c9fc9bd7d0c9bcfe92821dc533f4440bc890ccde79971838b4ceed1921d456973c4180d7175ee1d0023ad0562240a58d95 + languageName: node + linkType: hard + +"@tailwindcss/container-queries@npm:^0.1.1": + version: 0.1.1 + resolution: "@tailwindcss/container-queries@npm:0.1.1" + peerDependencies: + tailwindcss: ">=3.2.0" + checksum: 2515ae0ce3ca5f3eb2a54116e97cbf4bce45d5fc7ad4b01f3204f51937461ff099c878048afbca22ca422ea3a9c1779df68a7cfe320ca155da47a8dde3257f4b + languageName: node + linkType: hard + "@tailwindcss/forms@npm:^0.5.2": version: 0.5.2 resolution: "@tailwindcss/forms@npm:0.5.2" @@ -16798,6 +19017,13 @@ __metadata: languageName: node linkType: hard +"@tanstack/query-core@npm:4.36.1": + version: 4.36.1 + resolution: "@tanstack/query-core@npm:4.36.1" + checksum: 47672094da20d89402d9fe03bb7b0462be73a76ff9ca715169738bc600a719d064d106d083a8eedae22a2c22de22f87d5eb5d31ef447aba771d9190f2117ed10 + languageName: node + linkType: hard + "@tanstack/query-core@npm:5.17.19": version: 5.17.19 resolution: "@tanstack/query-core@npm:5.17.19" @@ -16805,6 +19031,25 @@ __metadata: languageName: node linkType: hard +"@tanstack/react-query@npm:^4.3.9": + version: 4.36.1 + resolution: "@tanstack/react-query@npm:4.36.1" + dependencies: + "@tanstack/query-core": 4.36.1 + use-sync-external-store: ^1.2.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-native: "*" + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + checksum: 1aff0a476859386f8d32253fa0d0bde7b81769a6d4d4d9cbd78778f0f955459a3bdb7ee27a0d2ee7373090f12998b45df80db0b5b313bd0a7a39d36c6e8e51c5 + languageName: node + linkType: hard + "@tanstack/react-query@npm:^5.17.15": version: 5.17.19 resolution: "@tanstack/react-query@npm:5.17.19" @@ -16828,6 +19073,18 @@ __metadata: languageName: node linkType: hard +"@tanstack/react-virtual@npm:^3.0.0-beta.60": + version: 3.13.8 + resolution: "@tanstack/react-virtual@npm:3.13.8" + dependencies: + "@tanstack/virtual-core": 3.13.8 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: a68db4cccc0de54ba0da2ae4292671bd4fa339d1cdfab160d8a067d5bb78f77e2f75d234089d4cf45bc688e51f702604c7f2d4031f8e9b8ce82cb71a0fa7b4f0 + languageName: node + linkType: hard + "@tanstack/react-virtual@npm:^3.10.9": version: 3.10.9 resolution: "@tanstack/react-virtual@npm:3.10.9" @@ -16854,6 +19111,13 @@ __metadata: languageName: node linkType: hard +"@tanstack/virtual-core@npm:3.13.8": + version: 3.13.8 + resolution: "@tanstack/virtual-core@npm:3.13.8" + checksum: 4e57aae7c3d9b97609fb17adf0b7c9ec5e55117c3dd5bc6a9cc96715a49a04c3980e07a105bfd168a4b072120c5a4152525be1b4798dac0dbf25e5681b287d2b + languageName: node + linkType: hard + "@tediousjs/connection-string@npm:^0.5.0": version: 0.5.0 resolution: "@tediousjs/connection-string@npm:0.5.0" @@ -17027,6 +19291,15 @@ __metadata: languageName: node linkType: hard +"@trpc/client@npm:^10.0.0": + version: 10.45.2 + resolution: "@trpc/client@npm:10.45.2" + peerDependencies: + "@trpc/server": 10.45.2 + checksum: d1eaa8e0059a371265065dafb48372be8456bc5bbc68f63c92401b12258cf15efb3f9f3790ef18ec6a0b7b73daa362bbd371f98db67c0610f2aee284f12cf09a + languageName: node + linkType: hard + "@trpc/next@npm:11.0.0-next-beta.222": version: 11.0.0-next-beta.222 resolution: "@trpc/next@npm:11.0.0-next-beta.222" @@ -17067,6 +19340,13 @@ __metadata: languageName: node linkType: hard +"@trpc/server@npm:^10.0.0": + version: 10.45.2 + resolution: "@trpc/server@npm:10.45.2" + checksum: 30b92853c45747a376bbbd5c4eef71fea17a2b22e83ba7e694fb13cc99b15d1f24a17aa9124346074618fb5cee8d13434aa16cdf24af82f5e8acabdecfee0ca2 + languageName: node + linkType: hard + "@tryvital/vital-node@npm:^1.4.6": version: 1.4.6 resolution: "@tryvital/vital-node@npm:1.4.6" @@ -17131,6 +19411,25 @@ __metadata: languageName: node linkType: hard +"@typeform/embed-react@npm:^1.2.4": + version: 1.21.0 + resolution: "@typeform/embed-react@npm:1.21.0" + dependencies: + "@typeform/embed": 1.38.0 + fast-deep-equal: ^3.1.3 + peerDependencies: + react: ">=16.8.0" + checksum: 1d91cb797dfe7b27e08798f7a571f34724a8f56bf9c89a8ed2a454820efce2de4db44fd4a18f446573784c28f79478f269c1719500e1b332e7ea34ea77ffa185 + languageName: node + linkType: hard + +"@typeform/embed@npm:1.38.0": + version: 1.38.0 + resolution: "@typeform/embed@npm:1.38.0" + checksum: 41115134e5cee28f5e031181b4525c7885d23707699cf183921110262717c7544bfd101428267410b812914c235687783e373ce98e37bdc447d72f8177663597 + languageName: node + linkType: hard + "@types/accept-language-parser@npm:1.5.2": version: 1.5.2 resolution: "@types/accept-language-parser@npm:1.5.2" @@ -17235,6 +19534,18 @@ __metadata: languageName: node linkType: hard +"@types/cacheable-request@npm:^6.0.1": + version: 6.0.3 + resolution: "@types/cacheable-request@npm:6.0.3" + dependencies: + "@types/http-cache-semantics": "*" + "@types/keyv": ^3.1.4 + "@types/node": "*" + "@types/responselike": ^1.0.0 + checksum: d9b26403fe65ce6b0cb3720b7030104c352bcb37e4fac2a7089a25a97de59c355fa08940658751f2f347a8512aa9d18fdb66ab3ade835975b2f454f2d5befbd9 + languageName: node + linkType: hard + "@types/cli-progress@npm:^3.11.0": version: 3.11.4 resolution: "@types/cli-progress@npm:3.11.4" @@ -17407,6 +19718,13 @@ __metadata: languageName: node linkType: hard +"@types/debounce@npm:^1.2.1": + version: 1.2.4 + resolution: "@types/debounce@npm:1.2.4" + checksum: decef3eee65d681556d50f7fac346f1b33134f6b21f806d41326f9dfb362fa66b0282ff0640ae6791b690694c9dc3dad4e146e909e707e6f96650f3aa325b9da + languageName: node + linkType: hard + "@types/debug@npm:4.1.7": version: 4.1.7 resolution: "@types/debug@npm:4.1.7" @@ -17643,6 +19961,22 @@ __metadata: languageName: node linkType: hard +"@types/gtag.js@npm:^0.0.10": + version: 0.0.10 + resolution: "@types/gtag.js@npm:0.0.10" + checksum: 5c18ffdc64418887763ec1a564e73c9fbf222ff3eece1fbc35a182fdd884e7884bb7708f67e6e4939f157bb9f2cb7a4aff42be7834527e35c5aac4f98783164c + languageName: node + linkType: hard + +"@types/hast@npm:^2.0.0": + version: 2.3.10 + resolution: "@types/hast@npm:2.3.10" + dependencies: + "@types/unist": ^2 + checksum: 41531b7fbf590b02452996fc63272479c20a07269e370bd6514982cbcd1819b4b84d3ea620f2410d1b9541a23d08ce2eeb0a592145d05e00e249c3d56700d460 + languageName: node + linkType: hard + "@types/hast@npm:^3.0.0, @types/hast@npm:^3.0.4": version: 3.0.4 resolution: "@types/hast@npm:3.0.4" @@ -17662,7 +19996,7 @@ __metadata: languageName: node linkType: hard -"@types/hoist-non-react-statics@npm:^3.3.6": +"@types/hoist-non-react-statics@npm:^3.3.1, @types/hoist-non-react-statics@npm:^3.3.6": version: 3.3.6 resolution: "@types/hoist-non-react-statics@npm:3.3.6" dependencies: @@ -17679,6 +20013,13 @@ __metadata: languageName: node linkType: hard +"@types/http-cache-semantics@npm:*": + version: 4.0.4 + resolution: "@types/http-cache-semantics@npm:4.0.4" + checksum: 7f4dd832e618bc1e271be49717d7b4066d77c2d4eed5b81198eb987e532bb3e1c7e02f45d77918185bad936f884b700c10cebe06305f50400f382ab75055f9e8 + languageName: node + linkType: hard + "@types/http-errors@npm:*": version: 2.0.4 resolution: "@types/http-errors@npm:2.0.4" @@ -17834,6 +20175,15 @@ __metadata: languageName: node linkType: hard +"@types/keyv@npm:^3.1.4": + version: 3.1.4 + resolution: "@types/keyv@npm:3.1.4" + dependencies: + "@types/node": "*" + checksum: e009a2bfb50e90ca9b7c6e8f648f8464067271fd99116f881073fa6fa76dc8d0133181dd65e6614d5fb1220d671d67b0124aef7d97dc02d7e342ab143a47779d + languageName: node + linkType: hard + "@types/koa-compose@npm:*": version: 3.2.8 resolution: "@types/koa-compose@npm:3.2.8" @@ -17929,6 +20279,15 @@ __metadata: languageName: node linkType: hard +"@types/mdast@npm:^3.0.0": + version: 3.0.15 + resolution: "@types/mdast@npm:3.0.15" + dependencies: + "@types/unist": ^2 + checksum: af85042a4e3af3f879bde4059fa9e76c71cb552dffc896cdcc6cf9dc1fd38e37035c2dbd6245cfa6535b433f1f0478f5549696234ccace47a64055a10c656530 + languageName: node + linkType: hard + "@types/mdast@npm:^4.0.0": version: 4.0.4 resolution: "@types/mdast@npm:4.0.4" @@ -17945,6 +20304,13 @@ __metadata: languageName: node linkType: hard +"@types/mdurl@npm:^1.0.0": + version: 1.0.5 + resolution: "@types/mdurl@npm:1.0.5" + checksum: e8e872e8da8f517a9c748b06cec61c947cb73fd3069e8aeb0926670ec5dfac5d30549b3d0f1634950401633e812f9b7263f2d5dbe7e98fce12bcb2c659aa4b21 + languageName: node + linkType: hard + "@types/mdx@npm:^2.0.0, @types/mdx@npm:^2.0.13": version: 2.0.13 resolution: "@types/mdx@npm:2.0.13" @@ -18089,6 +20455,13 @@ __metadata: languageName: node linkType: hard +"@types/parse5@npm:^6.0.0": + version: 6.0.3 + resolution: "@types/parse5@npm:6.0.3" + checksum: ddb59ee4144af5dfcc508a8dcf32f37879d11e12559561e65788756b95b33e6f03ea027d88e1f5408f9b7bfb656bf630ace31a2169edf44151daaf8dd58df1b7 + languageName: node + linkType: hard + "@types/passport-jwt@npm:^3.0.13": version: 3.0.13 resolution: "@types/passport-jwt@npm:3.0.13" @@ -18225,6 +20598,13 @@ __metadata: languageName: node linkType: hard +"@types/react-gtm-module@npm:^2.0.1": + version: 2.0.4 + resolution: "@types/react-gtm-module@npm:2.0.4" + checksum: 635699a2d85f958ba92126cda851f9a1b46df75d3846bdc89ce2345524f73d889a266110d00492f6c23e9e42e70ec2246449a93c9cc2c6367bd643a7d2f0e88a + languageName: node + linkType: hard + "@types/react-phone-number-input@npm:^3.0.14": version: 3.0.14 resolution: "@types/react-phone-number-input@npm:3.0.14" @@ -18290,6 +20670,15 @@ __metadata: languageName: node linkType: hard +"@types/responselike@npm:^1.0.0": + version: 1.0.3 + resolution: "@types/responselike@npm:1.0.3" + dependencies: + "@types/node": "*" + checksum: 6ac4b35723429b11b117e813c7acc42c3af8b5554caaf1fc750404c1ae59f9b7376bc69b9e9e194a5a97357a597c2228b7173d317320f0360d617b6425212f58 + languageName: node + linkType: hard + "@types/retry@npm:0.12.0": version: 0.12.0 resolution: "@types/retry@npm:0.12.0" @@ -18466,7 +20855,7 @@ __metadata: languageName: node linkType: hard -"@types/unist@npm:^2.0.0": +"@types/unist@npm:^2, @types/unist@npm:^2.0.0": version: 2.0.11 resolution: "@types/unist@npm:2.0.11" checksum: 6d436e832bc35c6dde9f056ac515ebf2b3384a1d7f63679d12358766f9b313368077402e9c1126a14d827f10370a5485e628bf61aa91117cf4fc882423191a4e @@ -18551,6 +20940,15 @@ __metadata: languageName: node linkType: hard +"@types/xml2js@npm:^0.4.11": + version: 0.4.14 + resolution: "@types/xml2js@npm:0.4.14" + dependencies: + "@types/node": "*" + checksum: df9f106b9953dcdec7ba3304ebc56d6c2f61d49bf556d600bed439f94a1733f73ca0bf2d0f64330b402191622862d9d6058bab9d7e3dcb5b0fe51ebdc4372aac + languageName: node + linkType: hard + "@types/yargs-parser@npm:*": version: 21.0.0 resolution: "@types/yargs-parser@npm:21.0.0" @@ -18574,6 +20972,27 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/eslint-plugin@npm:8.32.1": + version: 8.32.1 + resolution: "@typescript-eslint/eslint-plugin@npm:8.32.1" + dependencies: + "@eslint-community/regexpp": ^4.10.0 + "@typescript-eslint/scope-manager": 8.32.1 + "@typescript-eslint/type-utils": 8.32.1 + "@typescript-eslint/utils": 8.32.1 + "@typescript-eslint/visitor-keys": 8.32.1 + graphemer: ^1.4.0 + ignore: ^7.0.0 + natural-compare: ^1.4.0 + ts-api-utils: ^2.1.0 + peerDependencies: + "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.9.0" + checksum: 316fe6851a0f8967123db812e673aae286becb69839955f2855f3ef55aad440820e38c4f90534094ea1a8407adb6b2817dd6b76d315b28827afa6db1d2ff50ca + languageName: node + linkType: hard + "@typescript-eslint/eslint-plugin@npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0": version: 8.28.0 resolution: "@typescript-eslint/eslint-plugin@npm:8.28.0" @@ -18619,6 +21038,22 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/parser@npm:8.32.1": + version: 8.32.1 + resolution: "@typescript-eslint/parser@npm:8.32.1" + dependencies: + "@typescript-eslint/scope-manager": 8.32.1 + "@typescript-eslint/types": 8.32.1 + "@typescript-eslint/typescript-estree": 8.32.1 + "@typescript-eslint/visitor-keys": 8.32.1 + debug: ^4.3.4 + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.9.0" + checksum: 49d491e9a7761a043c47f4406ddc4a834a2cc814233b4170db9fe1521d0790169e3eb43995575cde6a4ab8bf3dfa1b13d8d050e2700fb8c44af3f71d906ed4df + languageName: node + linkType: hard + "@typescript-eslint/parser@npm:^5.4.2 || ^6.0.0": version: 6.21.0 resolution: "@typescript-eslint/parser@npm:6.21.0" @@ -18727,6 +21162,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/scope-manager@npm:8.32.1": + version: 8.32.1 + resolution: "@typescript-eslint/scope-manager@npm:8.32.1" + dependencies: + "@typescript-eslint/types": 8.32.1 + "@typescript-eslint/visitor-keys": 8.32.1 + checksum: d9b4b320f092ebd8431bcf3a6ea1780141289d1575235bb15e614a7ff4c38c3a090a9920dc7e806eca6ed05d1552ca789815600f429c5f99db33e797f2f521bd + languageName: node + linkType: hard + "@typescript-eslint/type-utils@npm:5.52.0": version: 5.52.0 resolution: "@typescript-eslint/type-utils@npm:5.52.0" @@ -18759,6 +21204,21 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/type-utils@npm:8.32.1": + version: 8.32.1 + resolution: "@typescript-eslint/type-utils@npm:8.32.1" + dependencies: + "@typescript-eslint/typescript-estree": 8.32.1 + "@typescript-eslint/utils": 8.32.1 + debug: ^4.3.4 + ts-api-utils: ^2.1.0 + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.9.0" + checksum: 57868e21cc0d9daaaa443eef5ba92352806a558024183b6c4763345024ae06a064bacdfc771942db321a31c324ed5c38be3badc4b7902e83abf42c9279e3052e + languageName: node + linkType: hard + "@typescript-eslint/types@npm:5.48.0": version: 5.48.0 resolution: "@typescript-eslint/types@npm:5.48.0" @@ -18794,6 +21254,13 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/types@npm:8.32.1": + version: 8.32.1 + resolution: "@typescript-eslint/types@npm:8.32.1" + checksum: e7062c51507c5aa2a18991965b1212ffd02d9ed815277c99e51985d55d4f2e692861e807e1d5c2e0a56dfbe655de3971a9be9e1215b8b72683f29473554c014b + languageName: node + linkType: hard + "@typescript-eslint/typescript-estree@npm:5.48.0": version: 5.48.0 resolution: "@typescript-eslint/typescript-estree@npm:5.48.0" @@ -18885,6 +21352,24 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/typescript-estree@npm:8.32.1": + version: 8.32.1 + resolution: "@typescript-eslint/typescript-estree@npm:8.32.1" + dependencies: + "@typescript-eslint/types": 8.32.1 + "@typescript-eslint/visitor-keys": 8.32.1 + debug: ^4.3.4 + fast-glob: ^3.3.2 + is-glob: ^4.0.3 + minimatch: ^9.0.4 + semver: ^7.6.0 + ts-api-utils: ^2.1.0 + peerDependencies: + typescript: ">=4.8.4 <5.9.0" + checksum: d7552cc2ce92b47e510a97e783c0416e5b51858b85ef43432841d01e96f6c9b2b7b7afb4c7364eabc4435a7c2e255f9d213f9001df4fdd37b1ac7f05e025f163 + languageName: node + linkType: hard + "@typescript-eslint/utils@npm:5.52.0, @typescript-eslint/utils@npm:^5.52.0": version: 5.52.0 resolution: "@typescript-eslint/utils@npm:5.52.0" @@ -18918,6 +21403,21 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/utils@npm:8.32.1": + version: 8.32.1 + resolution: "@typescript-eslint/utils@npm:8.32.1" + dependencies: + "@eslint-community/eslint-utils": ^4.7.0 + "@typescript-eslint/scope-manager": 8.32.1 + "@typescript-eslint/types": 8.32.1 + "@typescript-eslint/typescript-estree": 8.32.1 + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.9.0" + checksum: dcec9610aa1912f7f3eec25fa1baee00b34d4d7db841546fb828796b6678c0cb86ad9b32d1b24f31c34de7fe133fdd0abeef05d4933bf8ac5c089579b5eacb53 + languageName: node + linkType: hard + "@typescript-eslint/visitor-keys@npm:5.48.0": version: 5.48.0 resolution: "@typescript-eslint/visitor-keys@npm:5.48.0" @@ -18968,6 +21468,473 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/visitor-keys@npm:8.32.1": + version: 8.32.1 + resolution: "@typescript-eslint/visitor-keys@npm:8.32.1" + dependencies: + "@typescript-eslint/types": 8.32.1 + eslint-visitor-keys: ^4.2.0 + checksum: 1393562834dc5284f17cefa6d90dec18e6ed3e27b47244bf53522bc97e5172db7f2c21ceaa101dfc31be1185ba328e157a6031c1cc37293e64e1bf543245b3f6 + languageName: node + linkType: hard + +"@uiw/codemirror-extensions-basic-setup@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-extensions-basic-setup@npm:4.23.12" + dependencies: + "@codemirror/autocomplete": ^6.0.0 + "@codemirror/commands": ^6.0.0 + "@codemirror/language": ^6.0.0 + "@codemirror/lint": ^6.0.0 + "@codemirror/search": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 + peerDependencies: + "@codemirror/autocomplete": ">=6.0.0" + "@codemirror/commands": ">=6.0.0" + "@codemirror/language": ">=6.0.0" + "@codemirror/lint": ">=6.0.0" + "@codemirror/search": ">=6.0.0" + "@codemirror/state": ">=6.0.0" + "@codemirror/view": ">=6.0.0" + checksum: 8715a1cc480d407ea1810debe49d01df5e0b1fc355d93aa9cea1bd74b2e90b85993142e332375bee2651b13ea4ffe9fe92b25cb1eaad8c0a674f1fe5e6d273b1 + languageName: node + linkType: hard + +"@uiw/codemirror-extensions-langs@npm:^4.19.16": + version: 4.23.12 + resolution: "@uiw/codemirror-extensions-langs@npm:4.23.12" + dependencies: + "@codemirror/lang-angular": ^0.1.0 + "@codemirror/lang-cpp": ^6.0.0 + "@codemirror/lang-css": ^6.2.0 + "@codemirror/lang-html": ^6.4.0 + "@codemirror/lang-java": ^6.0.0 + "@codemirror/lang-javascript": ^6.1.0 + "@codemirror/lang-json": ^6.0.0 + "@codemirror/lang-less": ^6.0.1 + "@codemirror/lang-lezer": ^6.0.0 + "@codemirror/lang-liquid": ^6.0.1 + "@codemirror/lang-markdown": ^6.1.0 + "@codemirror/lang-php": ^6.0.0 + "@codemirror/lang-python": ^6.1.0 + "@codemirror/lang-rust": ^6.0.0 + "@codemirror/lang-sass": ^6.0.1 + "@codemirror/lang-sql": ^6.4.0 + "@codemirror/lang-vue": ^0.1.1 + "@codemirror/lang-wast": ^6.0.0 + "@codemirror/lang-xml": ^6.0.0 + "@codemirror/language-data": ">=6.0.0" + "@codemirror/legacy-modes": ">=6.0.0" + "@nextjournal/lang-clojure": ^1.0.0 + "@replit/codemirror-lang-csharp": ^6.1.0 + "@replit/codemirror-lang-nix": ^6.0.1 + "@replit/codemirror-lang-solidity": ^6.0.1 + "@replit/codemirror-lang-svelte": ^6.0.0 + codemirror-lang-mermaid: ^0.5.0 + peerDependencies: + "@codemirror/language-data": ">=6.0.0" + "@codemirror/legacy-modes": ">=6.0.0" + checksum: 14fd5c5ba6c80ca0ae53c2d2e714150ba43e742e8efbd2219db3806873aedb03d7604b4d25c44be4b5ea3f71857173a8acc647dac220f19ffbbcf5853a697d09 + languageName: node + linkType: hard + +"@uiw/codemirror-theme-abcdef@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-abcdef@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: 87ca07d67b733677c5a3a7e4f83a5ac955158ceb0bb03b917ef605fd71e6ab87e44ac43e6bb6b52cc5e4bf573d193bb09f613dccd2abf3daeb8e9e79a37c2374 + languageName: node + linkType: hard + +"@uiw/codemirror-theme-abyss@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-abyss@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: 5900d588aef8add08d4e7821f09a0bcab366aefc81e369a006bc975cbc436c308ce2b2911413d2126c09b010908ac0e09afa442ee1c56d5fd81450267688482d + languageName: node + linkType: hard + +"@uiw/codemirror-theme-androidstudio@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-androidstudio@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: 3fb0fdfb81a49187d669b308b12e548a0cea71498c5980d6f97c2aa4d60a8941cf228f2014b3a72365a2ea0a0b2ac233893cc901da102bbce6b8ee8d27589192 + languageName: node + linkType: hard + +"@uiw/codemirror-theme-andromeda@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-andromeda@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: 93970178fca57a89169d3362b1d217204a8e56b8c0153e3e7e7775f0d957862c555d2c454653266a489c6d476775159b07a2bf3dd90f604eb1fc40fda68a5afa + languageName: node + linkType: hard + +"@uiw/codemirror-theme-atomone@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-atomone@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: 8dba6215b43c9ee70c45ac421c6f676cdcdf60fcdda100bdbad8ace757c85b8d8964bde829a151b5cb15a6d074e47af6315aa7ed80a5280e957b4311489bea0e + languageName: node + linkType: hard + +"@uiw/codemirror-theme-aura@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-aura@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: 2eab8b38fe18f514e3607ad8156c3bc239edcfce153d1d8bd3645c0937b3242d915083cf08e6473b60c76baddd98fb40be6ad4366c544a86d29b5c72be9ee26b + languageName: node + linkType: hard + +"@uiw/codemirror-theme-basic@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-basic@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: 1c1604f3809f9dbd1abf69a37a6712d38ae1fb1a6b71ddea21889df89befb7278cb661f70a7749c8190063d79709a52351aa19a6c1636a864276f1b1a5483592 + languageName: node + linkType: hard + +"@uiw/codemirror-theme-bbedit@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-bbedit@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: 2cdb0db520710ea1a3c97baa11da9628ef9d79530ccba2ba70a7c8402a5d8ce0948b6786201ce09349516ca9cbae1bd03f3e7e906e4948059c2e81506110954c + languageName: node + linkType: hard + +"@uiw/codemirror-theme-bespin@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-bespin@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: 956368c95f96a5741931abc4dd172a88e894f4c1b0a4e7000e56846732a674996d23d6273800ee8320518281c3cb5e4372b0f5f772e5fe3376f3bbea1b30d69f + languageName: node + linkType: hard + +"@uiw/codemirror-theme-console@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-console@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: 4f7c7abcb664e8e54a2434182779b78884d5f9cef04e921891afbfb368a90732f066b74acd0799ba9a140afe0b53ab8a8c65c397299b3868ed0345cfcc2047ee + languageName: node + linkType: hard + +"@uiw/codemirror-theme-copilot@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-copilot@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: a344a654d1344094c9827292232f5830f51c450a8932362abc4c9e3da0a5a373cdb5ad82c0e30b642142f8e0fde120493d5b2a3a29135792370f0d99c619ca28 + languageName: node + linkType: hard + +"@uiw/codemirror-theme-darcula@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-darcula@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: 50f9607317708f9ba1668a117306149ff448279d58406c94fdbe1e2ac178efc83042d7d0adc39272e3e605e946bbad9cdb4106dea37143268457a302123fa6f6 + languageName: node + linkType: hard + +"@uiw/codemirror-theme-dracula@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-dracula@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: 3c414172583e13c9a734877b4af3777344262f61326b5318cfda4b67a27344633ee363027caf7366c1ac804bc019b713ebf46ce8e5df3615662a6644845ed14c + languageName: node + linkType: hard + +"@uiw/codemirror-theme-duotone@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-duotone@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: 583513c41fc012a20bc59c84bba1db5eaba293d4e17977598fa095e7b5701a5bd3aca166842190e73babf0fd24c22bc69eca5fa937d62ac05698ef1f7e542bbc + languageName: node + linkType: hard + +"@uiw/codemirror-theme-eclipse@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-eclipse@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: 2beed36d55836f45b81f5d211dfe611c6dde0544ee4d2b6774c3d46e77e05f22d36c7d8f85452dad23544d6dc2f7d3e99f0a6aec382b7e799ea95e95e879eab3 + languageName: node + linkType: hard + +"@uiw/codemirror-theme-github@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-github@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: 541f0f0b21d7deba2b82334f6da74219d0265898812798fa3d158406092c17b8bd5c2a347ba1316cce7ac29388c73ff5949799d0d142982006c1bfdb9468107d + languageName: node + linkType: hard + +"@uiw/codemirror-theme-gruvbox-dark@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-gruvbox-dark@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: 0150cb7be3b6df6dcab159d6991837b5593318381f0e50695a29b04cdfdbc7c2be9127dedf36592ff4bf541b4c631b545644b98aec20037030523c220c9ceff7 + languageName: node + linkType: hard + +"@uiw/codemirror-theme-kimbie@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-kimbie@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: 224173e43a281bb7a244ea6464b98b646d073e959192dadeae59a588dda4a247f158c27999447931763fb04c7b7109d45852806f01c2fbedc27df72c6d0c9533 + languageName: node + linkType: hard + +"@uiw/codemirror-theme-material@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-material@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: 420c764f9b6a8db067eb7a07fbe4800adb6616360d1d2f31b9c4b5a69d15942a6e365c4516b629230c117a52499bb8c3bcadc487ebe04a3e43b417921987e4eb + languageName: node + linkType: hard + +"@uiw/codemirror-theme-monokai-dimmed@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-monokai-dimmed@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: 829d2741962e96bc0e8671215063eab962b359970748961ed00c06a4c3783123899c658998e58b7b6d03f45713bc731af55493ed63c096b759fba738fc8c4a67 + languageName: node + linkType: hard + +"@uiw/codemirror-theme-monokai@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-monokai@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: c374684b3738716d105fb75a5c22db0c6782fbfabbfbf21fa84cec11ad9879f650a1519cf16fb3421c33b1bf292f54eef616287ee1552717dd634dec138c1d20 + languageName: node + linkType: hard + +"@uiw/codemirror-theme-noctis-lilac@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-noctis-lilac@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: ea8f895e7d7f548cd03861b4ba1d1c34fbb6a7790cf8f542c17eaa6c9c31bd4136cd6e5c699577bf5aee6139dfeee5732e6251312c7aef579f32cb4aab5f759f + languageName: node + linkType: hard + +"@uiw/codemirror-theme-nord@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-nord@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: 68da135783a8d005eadf9cca58a91983905548863f1b4a1afdfdf87b41271692500ed3a816627935453b8da6101e43ec4c60faf148dd820e1834bb4c58716825 + languageName: node + linkType: hard + +"@uiw/codemirror-theme-okaidia@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-okaidia@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: 1484d147be2c50b61f78e5d804cf99b7886378612efd1adaa53e1eddfce6ef362af0b4e01c866bd431b78183cba16d10e8b1a492442ba4b43d1dcdf1b78dbf78 + languageName: node + linkType: hard + +"@uiw/codemirror-theme-quietlight@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-quietlight@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: e733ad1fff68b8be8247e9f712806a9b3898a22afa52faf52d28301bc0c46b1a0fe3353e06b18457f464390cfe42a38d46602bcf77a9464bb12dfdc615c457a6 + languageName: node + linkType: hard + +"@uiw/codemirror-theme-red@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-red@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: 2877b669b281074928b86e835a1e2d3213575beb17bcf69b4e3d0d22e837b8880a419ae8221f0fd82a29af90776c86473917c049248e0b58c324b2a32c3673fa + languageName: node + linkType: hard + +"@uiw/codemirror-theme-solarized@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-solarized@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: 8385f4b2ad6428512fbf1309b27f7cf7b5390851b883ad66fb56c386101c0e59cbc88b22d8ded3855c4c241ac12542c41e01bb90c208e7e1315f15047d24038d + languageName: node + linkType: hard + +"@uiw/codemirror-theme-sublime@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-sublime@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: 2f2432a773d92e7b1dac3419588a45366c8f358e0b58dc3db7963e70168730620c5903fcd3b29b9162dcd871ff9689908188f5941156d9af62586954b5173478 + languageName: node + linkType: hard + +"@uiw/codemirror-theme-tokyo-night-day@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-tokyo-night-day@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: f04fbac884d3b5794f399f999488ba6ce79e4e11b8501b2bb380a03542874663d6fcff126c52d62c693d2546b1dcdff1413d030522ace7b24d2f740e674adb6d + languageName: node + linkType: hard + +"@uiw/codemirror-theme-tokyo-night-storm@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-tokyo-night-storm@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: 9c031a5b7e71449696535da814e217c3855e5131d37bb04fd17647e48627e60dd0a89b8c55014296cecbce7fd5563fdf9f55740ed5548a999978d022634defb2 + languageName: node + linkType: hard + +"@uiw/codemirror-theme-tokyo-night@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-tokyo-night@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: bd141a436e456c884874660cf82987c7df8c0030c58e90178517a937680ff3507a7c0fc534b0a9031cacf7872788eb5350993e7940374e1b460f69d319b34755 + languageName: node + linkType: hard + +"@uiw/codemirror-theme-tomorrow-night-blue@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-tomorrow-night-blue@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: d587b6fc164aed84ae2cc631d05e16343fab7708b781e2c72f19f5022b0eede53b67370a155e499fb2128546a32e6734ad6149f4cc2ee4b4a8881e59537f7295 + languageName: node + linkType: hard + +"@uiw/codemirror-theme-vscode@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-vscode@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: ee61961c5b01203051339cb35a6a274b9e5eac39e29143ab78d87e25b59216615691374a9b75651237d24feb2a039e6951dba87f7a731e1f76c349abda7c2ba2 + languageName: node + linkType: hard + +"@uiw/codemirror-theme-white@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-white@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: c77d9343a22c5e440bbe82e00500f6170a5e577d7b093a5b67b6af3b2c01997a4470247daa8a3a271aff90065a552e8dc143a4c5a1c1e061934797366744bd30 + languageName: node + linkType: hard + +"@uiw/codemirror-theme-xcode@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-theme-xcode@npm:4.23.12" + dependencies: + "@uiw/codemirror-themes": 4.23.12 + checksum: a7152286cc4dd1b451ed61dcfa8e51e2fe999f6925e2355bdcb2ac5c36e9372bac03bf8837695547a2cf6cb7eac0e511c7c435062cf4d188ef623519b8e04616 + languageName: node + linkType: hard + +"@uiw/codemirror-themes-all@npm:^4.19.6": + version: 4.23.12 + resolution: "@uiw/codemirror-themes-all@npm:4.23.12" + dependencies: + "@uiw/codemirror-theme-abcdef": 4.23.12 + "@uiw/codemirror-theme-abyss": 4.23.12 + "@uiw/codemirror-theme-androidstudio": 4.23.12 + "@uiw/codemirror-theme-andromeda": 4.23.12 + "@uiw/codemirror-theme-atomone": 4.23.12 + "@uiw/codemirror-theme-aura": 4.23.12 + "@uiw/codemirror-theme-basic": 4.23.12 + "@uiw/codemirror-theme-bbedit": 4.23.12 + "@uiw/codemirror-theme-bespin": 4.23.12 + "@uiw/codemirror-theme-console": 4.23.12 + "@uiw/codemirror-theme-copilot": 4.23.12 + "@uiw/codemirror-theme-darcula": 4.23.12 + "@uiw/codemirror-theme-dracula": 4.23.12 + "@uiw/codemirror-theme-duotone": 4.23.12 + "@uiw/codemirror-theme-eclipse": 4.23.12 + "@uiw/codemirror-theme-github": 4.23.12 + "@uiw/codemirror-theme-gruvbox-dark": 4.23.12 + "@uiw/codemirror-theme-kimbie": 4.23.12 + "@uiw/codemirror-theme-material": 4.23.12 + "@uiw/codemirror-theme-monokai": 4.23.12 + "@uiw/codemirror-theme-monokai-dimmed": 4.23.12 + "@uiw/codemirror-theme-noctis-lilac": 4.23.12 + "@uiw/codemirror-theme-nord": 4.23.12 + "@uiw/codemirror-theme-okaidia": 4.23.12 + "@uiw/codemirror-theme-quietlight": 4.23.12 + "@uiw/codemirror-theme-red": 4.23.12 + "@uiw/codemirror-theme-solarized": 4.23.12 + "@uiw/codemirror-theme-sublime": 4.23.12 + "@uiw/codemirror-theme-tokyo-night": 4.23.12 + "@uiw/codemirror-theme-tokyo-night-day": 4.23.12 + "@uiw/codemirror-theme-tokyo-night-storm": 4.23.12 + "@uiw/codemirror-theme-tomorrow-night-blue": 4.23.12 + "@uiw/codemirror-theme-vscode": 4.23.12 + "@uiw/codemirror-theme-white": 4.23.12 + "@uiw/codemirror-theme-xcode": 4.23.12 + "@uiw/codemirror-themes": 4.23.12 + checksum: d2b02c05eb44086c43dc093ad2b956a76728eee64af1cf5d91497a00a347dd082949b0102f4da0ac2fb5ff7fd9786306893a4cd23227095a5b8989ed5613e43d + languageName: node + linkType: hard + +"@uiw/codemirror-themes@npm:4.23.12": + version: 4.23.12 + resolution: "@uiw/codemirror-themes@npm:4.23.12" + dependencies: + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 + peerDependencies: + "@codemirror/language": ">=6.0.0" + "@codemirror/state": ">=6.0.0" + "@codemirror/view": ">=6.0.0" + checksum: 5ea47d9afc61faf85851cca245d71ee00f446dd292cb3cca8e580197cef5dfc75de25e029260b73cc48453fd9ae492f5e432b748eb5d4a874a92f94cdf86f3f3 + languageName: node + linkType: hard + +"@uiw/react-codemirror@npm:^4.19.16": + version: 4.23.12 + resolution: "@uiw/react-codemirror@npm:4.23.12" + dependencies: + "@babel/runtime": ^7.18.6 + "@codemirror/commands": ^6.1.0 + "@codemirror/state": ^6.1.1 + "@codemirror/theme-one-dark": ^6.0.0 + "@uiw/codemirror-extensions-basic-setup": 4.23.12 + codemirror: ^6.0.0 + peerDependencies: + "@babel/runtime": ">=7.11.0" + "@codemirror/state": ">=6.0.0" + "@codemirror/theme-one-dark": ">=6.0.0" + "@codemirror/view": ">=6.0.0" + codemirror: ">=6.0.0" + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: 68ff67c810a8a50f08cd232cdcd61a86f1494e62024a8cb28eb8878c767e2b3e3a62ac1c75d9164a67e8a64a4e1bebe447ba59228e600e6e5d9cea667154c615 + languageName: node + linkType: hard + "@ungap/structured-clone@npm:^1.0.0": version: 1.3.0 resolution: "@ungap/structured-clone@npm:1.3.0" @@ -19022,6 +21989,15 @@ __metadata: languageName: node linkType: hard +"@vercel/analytics@npm:^0.1.6": + version: 0.1.11 + resolution: "@vercel/analytics@npm:0.1.11" + peerDependencies: + react: ^16.8||^17||^18 + checksum: 05b8180ac6e23ebe7c09d74c43f8ee78c408cd0b6546e676389cbf4fba44dfeeae3648c9b52e2421be64fe3aeee8b026e6ea4bdfc0589fb5780670f2b090a167 + languageName: node + linkType: hard + "@vercel/edge-config@npm:^0.1.1": version: 0.1.1 resolution: "@vercel/edge-config@npm:0.1.1" @@ -19043,6 +22019,13 @@ __metadata: languageName: node linkType: hard +"@vercel/edge@npm:^1.2.1": + version: 1.2.1 + resolution: "@vercel/edge@npm:1.2.1" + checksum: 3cddadf0bd9d733400cab5bdd73bf5c0fcba02edcfa5e8cc483491e9d5b31791667601ffa9b566b375d463f05d1e0408c39fd6a03044f289736569fde065c99b + languageName: node + linkType: hard + "@vercel/functions@npm:^1.4.0": version: 1.4.0 resolution: "@vercel/functions@npm:1.4.0" @@ -19055,6 +22038,17 @@ __metadata: languageName: node linkType: hard +"@vercel/og@npm:^0.5.0": + version: 0.5.20 + resolution: "@vercel/og@npm:0.5.20" + dependencies: + "@resvg/resvg-wasm": 2.6.0 + satori: 0.10.9 + yoga-wasm-web: 0.3.3 + checksum: b6e08f3a9b2a0ef7c2cfe074d7e2699e7d4b1ab78cab370846ebea92dcb1becfcfef50309e1f905c1c37f37a64484fc789b0a364a5ce9496b8b4ab25048e7aaa + languageName: node + linkType: hard + "@vercel/og@npm:^0.6.3": version: 0.6.3 resolution: "@vercel/og@npm:0.6.3" @@ -19556,6 +22550,22 @@ __metadata: languageName: node linkType: hard +"@whatwg-node/fetch@npm:^0.5.3": + version: 0.5.4 + resolution: "@whatwg-node/fetch@npm:0.5.4" + dependencies: + "@peculiar/webcrypto": ^1.4.0 + abort-controller: ^3.0.0 + busboy: ^1.6.0 + form-data-encoder: ^1.7.1 + formdata-node: ^4.3.1 + node-fetch: ^2.6.7 + undici: ^5.12.0 + web-streams-polyfill: ^3.2.0 + checksum: 6fb6c6a582cb78fc438beee11f1d931eabc0ac8b5b660b68ea30a42c2068f4d3126d2b07e21770a4d6f391e70979bae527ca892898da9857e73dc3cc7adb8da9 + languageName: node + linkType: hard + "@whatwg-node/node-fetch@npm:^0.7.11": version: 0.7.17 resolution: "@whatwg-node/node-fetch@npm:0.7.17" @@ -20010,6 +23020,13 @@ __metadata: languageName: node linkType: hard +"ansi-regex@npm:^2.0.0": + version: 2.1.1 + resolution: "ansi-regex@npm:2.1.1" + checksum: 190abd03e4ff86794f338a31795d262c1dfe8c91f7e01d04f13f646f1dcb16c5800818f886047876f1272f065570ab86b24b99089f8b68a0e11ff19aed4ca8f1 + languageName: node + linkType: hard + "ansi-regex@npm:^5.0.1": version: 5.0.1 resolution: "ansi-regex@npm:5.0.1" @@ -20338,6 +23355,13 @@ __metadata: languageName: node linkType: hard +"array-flatten@npm:^3.0.0": + version: 3.0.0 + resolution: "array-flatten@npm:3.0.0" + checksum: ad00c51ca70cf837501fb6da823ba39bc6a86b43d0b76d840daa02fe0f8e68e94ad5bc2d0d038053118b879aaca8ea6168c32c7387a2fa5b118ad28db4f1f863 + languageName: node + linkType: hard + "array-includes@npm:^3.1.4": version: 3.1.4 resolution: "array-includes@npm:3.1.4" @@ -20696,6 +23720,17 @@ __metadata: languageName: node linkType: hard +"asn1js@npm:^3.0.5": + version: 3.0.6 + resolution: "asn1js@npm:3.0.6" + dependencies: + pvtsutils: ^1.3.6 + pvutils: ^1.1.3 + tslib: ^2.8.1 + checksum: 2b43a4c7964183cc2c6b45d7f757eeeb93d2c60e89250dae2826250580e2049a43a795af6ab6d8eb6cbb13c8f51674a430923b2981313c64503b7159e378b477 + languageName: node + linkType: hard + "assert-plus@npm:1.0.0, assert-plus@npm:^1.0.0": version: 1.0.0 resolution: "assert-plus@npm:1.0.0" @@ -20762,6 +23797,13 @@ __metadata: languageName: node linkType: hard +"async-scheduler@npm:^1.4.4": + version: 1.4.4 + resolution: "async-scheduler@npm:1.4.4" + checksum: 080310e642bc4309aa83d625b21f9f0f1291bd0a292361cf6c0ebc86646ca719888bebc3d519f8ed177130b623b0f20640dad7f24fd8c2ede31d6d6f976968a4 + languageName: node + linkType: hard + "async@npm:^3.2.3, async@npm:^3.2.4": version: 3.2.4 resolution: "async@npm:3.2.4" @@ -20992,6 +24034,17 @@ __metadata: languageName: node linkType: hard +"axios@npm:^1.6.1": + version: 1.9.0 + resolution: "axios@npm:1.9.0" + dependencies: + follow-redirects: ^1.15.6 + form-data: ^4.0.0 + proxy-from-env: ^1.1.0 + checksum: 631f02c9c279f2ae90637a4989cc9d75c1c27aefd16b6e8eb90f98a4d0bddaccfd1cb1387be12101d1ab0f9bbf0c47e2451b4de0cf2870462a7d9ed3de8da3f2 + languageName: node + linkType: hard + "axios@npm:^1.6.8, axios@npm:^1.7.4": version: 1.7.7 resolution: "axios@npm:1.7.7" @@ -21113,6 +24166,16 @@ __metadata: languageName: node linkType: hard +"babel-runtime@npm:^6.11.6": + version: 6.26.0 + resolution: "babel-runtime@npm:6.26.0" + dependencies: + core-js: ^2.4.0 + regenerator-runtime: ^0.11.0 + checksum: 8aeade94665e67a73c1ccc10f6fd42ba0c689b980032b70929de7a6d9a12eb87ef51902733f8fefede35afea7a5c3ef7e916a64d503446c1eedc9e3284bd3d50 + languageName: node + linkType: hard + "bail@npm:^2.0.0": version: 2.0.2 resolution: "bail@npm:2.0.2" @@ -21819,6 +24882,28 @@ __metadata: languageName: node linkType: hard +"cacheable-lookup@npm:^5.0.3": + version: 5.0.4 + resolution: "cacheable-lookup@npm:5.0.4" + checksum: 763e02cf9196bc9afccacd8c418d942fc2677f22261969a4c2c2e760fa44a2351a81557bd908291c3921fe9beb10b976ba8fa50c5ca837c5a0dd945f16468f2d + languageName: node + linkType: hard + +"cacheable-request@npm:^7.0.2": + version: 7.0.4 + resolution: "cacheable-request@npm:7.0.4" + dependencies: + clone-response: ^1.0.2 + get-stream: ^5.1.0 + http-cache-semantics: ^4.0.0 + keyv: ^4.0.0 + lowercase-keys: ^2.0.0 + normalize-url: ^6.0.1 + responselike: ^2.0.0 + checksum: 0de9df773fd4e7dd9bd118959878f8f2163867e2e1ab3575ffbecbe6e75e80513dd0c68ba30005e5e5a7b377cc6162bbc00ab1db019bb4e9cb3c2f3f7a6f1ee4 + languageName: node + linkType: hard + "calcom-monorepo@workspace:.": version: 0.0.0-use.local resolution: "calcom-monorepo@workspace:." @@ -21951,6 +25036,16 @@ __metadata: languageName: node linkType: hard +"camel-case@npm:^3.0.0": + version: 3.0.0 + resolution: "camel-case@npm:3.0.0" + dependencies: + no-case: ^2.2.0 + upper-case: ^1.1.1 + checksum: 4190ed6ab8acf4f3f6e1a78ad4d0f3f15ce717b6bfa1b5686d58e4bcd29960f6e312dd746b5fa259c6d452f1413caef25aee2e10c9b9a580ac83e516533a961a + languageName: node + linkType: hard + "camel-case@npm:^4.1.2": version: 4.1.2 resolution: "camel-case@npm:4.1.2" @@ -21979,6 +25074,13 @@ __metadata: languageName: node linkType: hard +"camelcase@npm:^3.0.0": + version: 3.0.0 + resolution: "camelcase@npm:3.0.0" + checksum: ae4fe1c17c8442a3a345a6b7d2393f028ab7a7601af0c352ad15d1ab97ca75112e19e29c942b2a214898e160194829b68923bce30e018d62149c6d84187f1673 + languageName: node + linkType: hard + "camelcase@npm:^5.0.0, camelcase@npm:^5.3.1": version: 5.3.1 resolution: "camelcase@npm:5.3.1" @@ -22086,6 +25188,15 @@ __metadata: languageName: node linkType: hard +"castable-video@npm:~1.1.7": + version: 1.1.7 + resolution: "castable-video@npm:1.1.7" + dependencies: + custom-media-element: ~1.4.2 + checksum: f92085db6c9d4abe679a96c3b83ea51f626baa8d9607a8926a3ff761c419ce8266de7cb2419ae98b29563fc6bf553011693def782421733e68303661f6466d9a + languageName: node + linkType: hard + "ccount@npm:^2.0.0": version: 2.0.1 resolution: "ccount@npm:2.0.1" @@ -22093,6 +25204,15 @@ __metadata: languageName: node linkType: hard +"ce-la-react@npm:^0.1.3": + version: 0.1.3 + resolution: "ce-la-react@npm:0.1.3" + peerDependencies: + react: ">=17.0.0" + checksum: 67127f0dd627f5f13f9b0a7f1b562353895e26e484222b15c50ab23946de0bb6216cacb36d336e2648dcf383aec3a7811fa462582d532859de73d2528f6ef98c + languageName: node + linkType: hard + "chai@npm:^5.1.1": version: 5.1.1 resolution: "chai@npm:5.1.1" @@ -22209,6 +25329,32 @@ __metadata: languageName: node linkType: hard +"change-case@npm:^3.0.0": + version: 3.1.0 + resolution: "change-case@npm:3.1.0" + dependencies: + camel-case: ^3.0.0 + constant-case: ^2.0.0 + dot-case: ^2.1.0 + header-case: ^1.0.0 + is-lower-case: ^1.1.0 + is-upper-case: ^1.1.0 + lower-case: ^1.1.1 + lower-case-first: ^1.0.0 + no-case: ^2.3.2 + param-case: ^2.1.0 + pascal-case: ^2.0.0 + path-case: ^2.1.0 + sentence-case: ^2.1.0 + snake-case: ^2.1.0 + swap-case: ^1.1.0 + title-case: ^2.1.0 + upper-case: ^1.1.1 + upper-case-first: ^1.1.0 + checksum: d6f9f90a5f1d2a98294e06ea62f913fa0d7cfc289f188bf05662344da6128f5710b5c99ece83682c6a848db8d996b7348e09b2235dc3363afb6ae7142e7978e1 + languageName: node + linkType: hard + "change-case@npm:^4.1.2": version: 4.1.2 resolution: "change-case@npm:4.1.2" @@ -22636,13 +25782,24 @@ __metadata: languageName: node linkType: hard -"client-only@npm:0.0.1": +"client-only@npm:0.0.1, client-only@npm:^0.0.1": version: 0.0.1 resolution: "client-only@npm:0.0.1" checksum: 0c16bf660dadb90610553c1d8946a7fdfb81d624adea073b8440b7d795d5b5b08beb3c950c6a2cf16279365a3265158a236876d92bce16423c485c322d7dfaf8 languageName: node linkType: hard +"cliui@npm:^3.2.0": + version: 3.2.0 + resolution: "cliui@npm:3.2.0" + dependencies: + string-width: ^1.0.1 + strip-ansi: ^3.0.1 + wrap-ansi: ^2.0.0 + checksum: c68d1dbc3e347bfe79ed19cc7f48007d5edd6cd8438342e32073e0b4e311e3c44e1f4f19221462bc6590de56c2df520e427533a9dde95dee25710bec322746ad + languageName: node + linkType: hard + "cliui@npm:^6.0.0": version: 6.0.0 resolution: "cliui@npm:6.0.0" @@ -22676,6 +25833,15 @@ __metadata: languageName: node linkType: hard +"clone-response@npm:^1.0.2": + version: 1.0.3 + resolution: "clone-response@npm:1.0.3" + dependencies: + mimic-response: ^1.0.0 + checksum: 4e671cac39b11c60aa8ba0a450657194a5d6504df51bca3fac5b3bd0145c4f8e8464898f87c8406b83232e3bc5cca555f51c1f9c8ac023969ebfbf7f6bdabb2e + languageName: node + linkType: hard + "clone@npm:^1.0.2": version: 1.0.4 resolution: "clone@npm:1.0.4" @@ -22704,6 +25870,13 @@ __metadata: languageName: node linkType: hard +"clsx@npm:^1.2.1": + version: 1.2.1 + resolution: "clsx@npm:1.2.1" + checksum: 30befca8019b2eb7dbad38cff6266cf543091dae2825c856a62a8ccf2c3ab9c2907c4d12b288b73101196767f66812365400a227581484a05f968b0307cfaf12 + languageName: node + linkType: hard + "clsx@npm:^2.0.0": version: 2.1.0 resolution: "clsx@npm:2.1.0" @@ -22761,6 +25934,15 @@ __metadata: languageName: node linkType: hard +"cobe@npm:^0.4.1": + version: 0.4.2 + resolution: "cobe@npm:0.4.2" + dependencies: + phenomenon: ^1.6.0 + checksum: 4c11dd8cf3c6614a2ff2f6eacca5283278c6db06c2e441011aa90f58c66d045e66ef98a5e4b9d0282d58ee22f5b87d965538aa4c6064ed97f436f3e4cd9ee3ed + languageName: node + linkType: hard + "code-block-writer@npm:^11.0.0": version: 11.0.0 resolution: "code-block-writer@npm:11.0.0" @@ -22786,6 +25968,39 @@ __metadata: languageName: node linkType: hard +"code-point-at@npm:^1.0.0": + version: 1.1.0 + resolution: "code-point-at@npm:1.1.0" + checksum: 17d5666611f9b16d64fdf48176d9b7fb1c7d1c1607a189f7e600040a11a6616982876af148230336adb7d8fe728a559f743a4e29db3747e3b1a32fa7f4529681 + languageName: node + linkType: hard + +"codemirror-lang-mermaid@npm:^0.5.0": + version: 0.5.0 + resolution: "codemirror-lang-mermaid@npm:0.5.0" + dependencies: + "@codemirror/language": ^6.9.0 + "@lezer/highlight": ^1.1.6 + "@lezer/lr": ^1.3.10 + checksum: 4b94f7139c56671853de50005150fb8026c93c996f99f6f78c2eae745da82074f8415c7d87ecf9b44efc06df1068e00ff7f07d7ed52b7284eaa6e6940778827a + languageName: node + linkType: hard + +"codemirror@npm:^6.0.0, codemirror@npm:^6.0.1": + version: 6.0.1 + resolution: "codemirror@npm:6.0.1" + dependencies: + "@codemirror/autocomplete": ^6.0.0 + "@codemirror/commands": ^6.0.0 + "@codemirror/language": ^6.0.0 + "@codemirror/lint": ^6.0.0 + "@codemirror/search": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 + checksum: 1a78f7077ac5801bdbff162aa0c61bf2b974603c7e9a477198c3ce50c789af674a061d7c293c58b73807eda345c2b5228c38ad2aabb9319d552d5486f785cbef + languageName: node + linkType: hard + "coffeescript@npm:^1.10.0": version: 1.12.7 resolution: "coffeescript@npm:1.12.7" @@ -23099,6 +26314,26 @@ __metadata: languageName: node linkType: hard +"concurrently@npm:^7.6.0": + version: 7.6.0 + resolution: "concurrently@npm:7.6.0" + dependencies: + chalk: ^4.1.0 + date-fns: ^2.29.1 + lodash: ^4.17.21 + rxjs: ^7.0.0 + shell-quote: ^1.7.3 + spawn-command: ^0.0.2-1 + supports-color: ^8.1.0 + tree-kill: ^1.2.2 + yargs: ^17.3.1 + bin: + conc: dist/bin/concurrently.js + concurrently: dist/bin/concurrently.js + checksum: f705c9a7960f1b16559ca64958043faeeef6385c0bf30a03d1375e15ab2d96dba4f8166f1bbbb1c85e8da35ca0ce3c353875d71dff2aa132b2357bb533b3332e + languageName: node + linkType: hard + "concurrently@npm:^9.1.2": version: 9.1.2 resolution: "concurrently@npm:9.1.2" @@ -23178,6 +26413,16 @@ __metadata: languageName: node linkType: hard +"constant-case@npm:^2.0.0": + version: 2.0.0 + resolution: "constant-case@npm:2.0.0" + dependencies: + snake-case: ^2.1.0 + upper-case: ^1.1.1 + checksum: 893c793a425ebcd0744061c7f12650c655aae259b89d5654fb8eda42d22c3690716a4988ed03f2abe370b1ee7bfec44f8e4395e76e2f1458a8921982b15410ba + languageName: node + linkType: hard + "constant-case@npm:^3.0.4": version: 3.0.4 resolution: "constant-case@npm:3.0.4" @@ -23326,6 +26571,13 @@ __metadata: languageName: node linkType: hard +"core-js@npm:^2.4.0": + version: 2.6.12 + resolution: "core-js@npm:2.6.12" + checksum: 44fa9934a85f8c78d61e0c8b7b22436330471ffe59ec5076fe7f324d6e8cf7f824b14b1c81ca73608b13bdb0fef035bd820989bf059767ad6fa13123bb8bd016 + languageName: node + linkType: hard + "core-js@npm:^3": version: 3.21.1 resolution: "core-js@npm:3.21.1" @@ -23481,6 +26733,13 @@ __metadata: languageName: node linkType: hard +"crelt@npm:^1.0.5": + version: 1.0.6 + resolution: "crelt@npm:1.0.6" + checksum: dad842093371ad702afbc0531bfca2b0a8dd920b23a42f26e66dabbed9aad9acd5b9030496359545ef3937c3aced0fd4ac39f7a2d280a23ddf9eb7fdcb94a69f + languageName: node + linkType: hard + "cron-parser@npm:^3.5.0": version: 3.5.0 resolution: "cron-parser@npm:3.5.0" @@ -23510,6 +26769,18 @@ __metadata: languageName: node linkType: hard +"cross-env@npm:^7.0.3": + version: 7.0.3 + resolution: "cross-env@npm:7.0.3" + dependencies: + cross-spawn: ^7.0.1 + bin: + cross-env: src/bin/cross-env.js + cross-env-shell: src/bin/cross-env-shell.js + checksum: 26f2f3ea2ab32617f57effb70d329c2070d2f5630adc800985d8b30b56e8bf7f5f439dd3a0358b79cee6f930afc23cf8e23515f17ccfb30092c6b62c6b630a79 + languageName: node + linkType: hard + "cross-fetch@npm:3.1.5": version: 3.1.5 resolution: "cross-fetch@npm:3.1.5" @@ -23570,7 +26841,7 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.5, cross-spawn@npm:^7.0.6": +"cross-spawn@npm:^7.0.1, cross-spawn@npm:^7.0.5, cross-spawn@npm:^7.0.6": version: 7.0.6 resolution: "cross-spawn@npm:7.0.6" dependencies: @@ -23797,6 +27068,13 @@ __metadata: languageName: node linkType: hard +"custom-media-element@npm:~1.4.2": + version: 1.4.2 + resolution: "custom-media-element@npm:1.4.2" + checksum: 993710047ceb7cba2db6ba4b9aef79aac860dfff1fdb4ffd9a574b8e03e0140a07b49c16cc565ce2e3747b5e34dc226411353cdc1f57bf338ea9ff4a91afa7bb + languageName: node + linkType: hard + "d3-array@npm:2 - 3, d3-array@npm:2.10.0 - 3, d3-array@npm:^3.1.6": version: 3.2.3 resolution: "d3-array@npm:3.2.3" @@ -24014,7 +27292,7 @@ __metadata: languageName: node linkType: hard -"date-fns@npm:^2.28.0": +"date-fns@npm:^2.28.0, date-fns@npm:^2.29.1": version: 2.30.0 resolution: "date-fns@npm:2.30.0" dependencies: @@ -24030,6 +27308,43 @@ __metadata: languageName: node linkType: hard +"datocms-listen@npm:^0.1.9": + version: 0.1.15 + resolution: "datocms-listen@npm:0.1.15" + dependencies: + "@0no-co/graphql.web": ^1.0.1 + checksum: 243fec6f8c07d35f8d8d206ded45c4b8cfeb22907bba23d2180af6284903e4af1146c89e08ad0f68977193d42530323c53d0d906f7cf9f1ba92490ed11386e8c + languageName: node + linkType: hard + +"datocms-structured-text-generic-html-renderer@npm:^2.0.1, datocms-structured-text-generic-html-renderer@npm:^2.1.12": + version: 2.1.12 + resolution: "datocms-structured-text-generic-html-renderer@npm:2.1.12" + dependencies: + datocms-structured-text-utils: ^2.1.12 + checksum: ef9e29b15903ce69be42faa4f4a4364bb7ba0c6565008cb2f557e8865c0806edb938a27f9bee7aa682f7af84fe89489b688b9713ea48501c139d204fea1f18c0 + languageName: node + linkType: hard + +"datocms-structured-text-to-plain-text@npm:^2.0.4": + version: 2.1.12 + resolution: "datocms-structured-text-to-plain-text@npm:2.1.12" + dependencies: + datocms-structured-text-generic-html-renderer: ^2.1.12 + datocms-structured-text-utils: ^2.1.12 + checksum: 8d436ca14379650d66257b5a2f36523e1ebaee41584caf021c863155404a292dbde7408c6cb0e0185638c2eb7508087239f862e78e8647b806ececd4e24683fd + languageName: node + linkType: hard + +"datocms-structured-text-utils@npm:^2.0.1, datocms-structured-text-utils@npm:^2.0.4, datocms-structured-text-utils@npm:^2.1.12": + version: 2.1.12 + resolution: "datocms-structured-text-utils@npm:2.1.12" + dependencies: + array-flatten: ^3.0.0 + checksum: 68d5be9cb711fb630866cca2c0e44b333b390d9672b2ea680d5870c26e8ccadcc6bd77d02a95ccbb913c160466a3046cbd934c41712f9d064f98a73009e0b97a + languageName: node + linkType: hard + "dayjs@npm:1.11.4": version: 1.11.4 resolution: "dayjs@npm:1.11.4" @@ -24067,7 +27382,7 @@ __metadata: languageName: node linkType: hard -"debounce@npm:^1.2.0": +"debounce@npm:^1.2.0, debounce@npm:^1.2.1": version: 1.2.1 resolution: "debounce@npm:1.2.1" checksum: 682a89506d9e54fb109526f4da255c5546102fbb8e3ae75eef3b04effaf5d4853756aee97475cd4650641869794e44f410eeb20ace2b18ea592287ab2038519e @@ -24138,7 +27453,7 @@ __metadata: languageName: node linkType: hard -"decamelize@npm:^1.1.0, decamelize@npm:^1.2.0": +"decamelize@npm:^1.1.0, decamelize@npm:^1.1.1, decamelize@npm:^1.2.0": version: 1.2.0 resolution: "decamelize@npm:1.2.0" checksum: ad8c51a7e7e0720c70ec2eeb1163b66da03e7616d7b98c9ef43cce2416395e84c1e9548dd94f5f6ffecfee9f8b94251fc57121a8b021f2ff2469b2bae247b8aa @@ -24250,6 +27565,13 @@ __metadata: languageName: node linkType: hard +"defer-to-connect@npm:^2.0.0": + version: 2.0.1 + resolution: "defer-to-connect@npm:2.0.1" + checksum: 8a9b50d2f25446c0bfefb55a48e90afd58f85b21bcf78e9207cd7b804354f6409032a1705c2491686e202e64fc05f147aa5aa45f9aa82627563f045937f5791b + languageName: node + linkType: hard + "deferred-leveldown@npm:~0.2.0": version: 0.2.0 resolution: "deferred-leveldown@npm:0.2.0" @@ -24528,6 +27850,13 @@ __metadata: languageName: node linkType: hard +"diff@npm:^5.0.0": + version: 5.2.0 + resolution: "diff@npm:5.2.0" + checksum: 12b63ca9c36c72bafa3effa77121f0581b4015df18bc16bac1f8e263597735649f1a173c26f7eba17fb4162b073fee61788abe49610e6c70a2641fe1895443fd + languageName: node + linkType: hard + "diffie-hellman@npm:^5.0.0": version: 5.0.3 resolution: "diffie-hellman@npm:5.0.3" @@ -24693,6 +28022,15 @@ __metadata: languageName: node linkType: hard +"dot-case@npm:^2.1.0": + version: 2.1.1 + resolution: "dot-case@npm:2.1.1" + dependencies: + no-case: ^2.2.0 + checksum: 5c9d937245ff810a7ae788602e40c62e38cb515146ddf9b11c7f60cb02aae84859588761f1e8769d9e713609fae3c78dc99c8da9e0ee8e4d8b5c09a2fdf70328 + languageName: node + linkType: hard + "dot-case@npm:^3.0.4": version: 3.0.4 resolution: "dot-case@npm:3.0.4" @@ -24967,6 +28305,34 @@ __metadata: languageName: node linkType: hard +"embla-carousel-react@npm:^8.1.8": + version: 8.6.0 + resolution: "embla-carousel-react@npm:8.6.0" + dependencies: + embla-carousel: 8.6.0 + embla-carousel-reactive-utils: 8.6.0 + peerDependencies: + react: ^16.8.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + checksum: 30622c3f6bc3de5b608ab3fd82f69ec2ad86e86657c4c9d780380cf159bf5dac0170adced74aecd117c521c06fa014fe71b5fa0ec7c293921fd1cb7dff460be3 + languageName: node + linkType: hard + +"embla-carousel-reactive-utils@npm:8.6.0": + version: 8.6.0 + resolution: "embla-carousel-reactive-utils@npm:8.6.0" + peerDependencies: + embla-carousel: 8.6.0 + checksum: d3663addcb10a5cfecac976987f27fd58f2142ef944da9cd56568120752a71cb04d731e9c396f2e426f43be730f02145a87b88747c6902e24544a6fca9fc0141 + languageName: node + linkType: hard + +"embla-carousel@npm:8.6.0": + version: 8.6.0 + resolution: "embla-carousel@npm:8.6.0" + checksum: d943d225d069a8cf0b876440297dda42107e5e69006387c6bce1163b027ac5e5beba67160db818a763c7c46f2103238a097953ac3f383362f8104535cd278de1 + languageName: node + linkType: hard + "emittery@npm:^0.13.1": version: 0.13.1 resolution: "emittery@npm:0.13.1" @@ -25032,7 +28398,7 @@ __metadata: languageName: node linkType: hard -"encoding@npm:0.1.13, encoding@npm:^0.1.12, encoding@npm:^0.1.13": +"encoding@npm:0.1.13, encoding@npm:^0.1.11, encoding@npm:^0.1.12, encoding@npm:^0.1.13": version: 0.1.13 resolution: "encoding@npm:0.1.13" dependencies: @@ -25158,7 +28524,7 @@ __metadata: languageName: node linkType: hard -"error-ex@npm:^1.3.1": +"error-ex@npm:^1.2.0, error-ex@npm:^1.3.1": version: 1.3.2 resolution: "error-ex@npm:1.3.2" dependencies: @@ -26583,6 +29949,34 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-react@npm:^7.35.0": + version: 7.37.5 + resolution: "eslint-plugin-react@npm:7.37.5" + dependencies: + array-includes: ^3.1.8 + array.prototype.findlast: ^1.2.5 + array.prototype.flatmap: ^1.3.3 + array.prototype.tosorted: ^1.1.4 + doctrine: ^2.1.0 + es-iterator-helpers: ^1.2.1 + estraverse: ^5.3.0 + hasown: ^2.0.2 + jsx-ast-utils: ^2.4.1 || ^3.0.0 + minimatch: ^3.1.2 + object.entries: ^1.1.9 + object.fromentries: ^2.0.8 + object.values: ^1.2.1 + prop-types: ^15.8.1 + resolve: ^2.0.0-next.5 + semver: ^6.3.1 + string.prototype.matchall: ^4.0.12 + string.prototype.repeat: ^1.0.0 + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + checksum: 8675e7558e646e3c2fcb04bb60cfe416000b831ef0b363f0117838f5bfc799156113cb06058ad4d4b39fc730903b7360b05038da11093064ca37caf76b7cf2ca + languageName: node + linkType: hard + "eslint-plugin-react@npm:^7.37.0": version: 7.37.4 resolution: "eslint-plugin-react@npm:7.37.4" @@ -26819,6 +30213,56 @@ __metadata: languageName: node linkType: hard +"eslint@npm:^9.9.0": + version: 9.27.0 + resolution: "eslint@npm:9.27.0" + dependencies: + "@eslint-community/eslint-utils": ^4.2.0 + "@eslint-community/regexpp": ^4.12.1 + "@eslint/config-array": ^0.20.0 + "@eslint/config-helpers": ^0.2.1 + "@eslint/core": ^0.14.0 + "@eslint/eslintrc": ^3.3.1 + "@eslint/js": 9.27.0 + "@eslint/plugin-kit": ^0.3.1 + "@humanfs/node": ^0.16.6 + "@humanwhocodes/module-importer": ^1.0.1 + "@humanwhocodes/retry": ^0.4.2 + "@types/estree": ^1.0.6 + "@types/json-schema": ^7.0.15 + ajv: ^6.12.4 + chalk: ^4.0.0 + cross-spawn: ^7.0.6 + debug: ^4.3.2 + escape-string-regexp: ^4.0.0 + eslint-scope: ^8.3.0 + eslint-visitor-keys: ^4.2.0 + espree: ^10.3.0 + esquery: ^1.5.0 + esutils: ^2.0.2 + fast-deep-equal: ^3.1.3 + file-entry-cache: ^8.0.0 + find-up: ^5.0.0 + glob-parent: ^6.0.2 + ignore: ^5.2.0 + imurmurhash: ^0.1.4 + is-glob: ^4.0.0 + json-stable-stringify-without-jsonify: ^1.0.1 + lodash.merge: ^4.6.2 + minimatch: ^3.1.2 + natural-compare: ^1.4.0 + optionator: ^0.9.3 + peerDependencies: + jiti: "*" + peerDependenciesMeta: + jiti: + optional: true + bin: + eslint: bin/eslint.js + checksum: 7e2f220574466a6dcd4ebbec19d47a39c3d964bad5bb96706dee7e814d2000d6da78b4515a368515979e1addd59546e24841090101585e5d816c9819077f753c + languageName: node + linkType: hard + "esm@npm:^3.2.25": version: 3.2.25 resolution: "esm@npm:3.2.25" @@ -27727,6 +31171,16 @@ __metadata: languageName: node linkType: hard +"find-up@npm:^1.0.0": + version: 1.1.2 + resolution: "find-up@npm:1.1.2" + dependencies: + path-exists: ^2.0.0 + pinkie-promise: ^2.0.0 + checksum: a2cb9f4c9f06ee3a1e92ed71d5aed41ac8ae30aefa568132f6c556fac7678a5035126153b59eaec68da78ac409eef02503b2b059706bdbf232668d7245e3240a + languageName: node + linkType: hard + "find-up@npm:^2.1.0": version: 2.1.0 resolution: "find-up@npm:2.1.0" @@ -27915,6 +31369,13 @@ __metadata: languageName: node linkType: hard +"form-data-encoder@npm:^1.7.1": + version: 1.9.0 + resolution: "form-data-encoder@npm:1.9.0" + checksum: a73f617976f91b594dbd777ec5147abdb0c52d707475130f8cefc8ae9102ccf51be154b929f7c18323729c2763ac25b16055f5034bc188834e9febeb0d971d7f + languageName: node + linkType: hard + "form-data@npm:^2.5.0": version: 2.5.1 resolution: "form-data@npm:2.5.1" @@ -27959,6 +31420,16 @@ __metadata: languageName: node linkType: hard +"formdata-node@npm:^4.3.1": + version: 4.4.1 + resolution: "formdata-node@npm:4.4.1" + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 4.0.0-beta.3 + checksum: d91d4f667cfed74827fc281594102c0dabddd03c9f8b426fc97123eedbf73f5060ee43205d89284d6854e2fc5827e030cd352ef68b93beda8decc2d72128c576 + languageName: node + linkType: hard + "formdata-polyfill@npm:^4.0.10": version: 4.0.10 resolution: "formdata-polyfill@npm:4.0.10" @@ -28043,6 +31514,28 @@ __metadata: languageName: node linkType: hard +"framer-motion@npm:^11.0.25": + version: 11.18.2 + resolution: "framer-motion@npm:11.18.2" + dependencies: + motion-dom: ^11.18.1 + motion-utils: ^11.18.1 + tslib: ^2.4.0 + peerDependencies: + "@emotion/is-prop-valid": "*" + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@emotion/is-prop-valid": + optional: true + react: + optional: true + react-dom: + optional: true + checksum: 99ce30d07398b97f4c98829b0679f7603c820f796113045683cfdd44323ff744a7be530d65077db42e044d3323c8503a18c876a8a88f3ded2b40889ce2acb6ac + languageName: node + linkType: hard + "fresh@npm:0.5.2, fresh@npm:^0.5.2": version: 0.5.2 resolution: "fresh@npm:0.5.2" @@ -28101,7 +31594,7 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^8.1.0": +"fs-extra@npm:^8.0.1, fs-extra@npm:^8.1.0": version: 8.1.0 resolution: "fs-extra@npm:8.1.0" dependencies: @@ -28515,6 +32008,13 @@ __metadata: languageName: node linkType: hard +"get-caller-file@npm:^1.0.1": + version: 1.0.3 + resolution: "get-caller-file@npm:1.0.3" + checksum: 2b90a7f848896abcebcdc0acc627a435bcf05b9cd280599bc980ebfcdc222416c3df12c24c4845f69adc4346728e8966f70b758f9369f3534182791dfbc25c05 + languageName: node + linkType: hard + "get-caller-file@npm:^2.0.1, get-caller-file@npm:^2.0.5": version: 2.0.5 resolution: "get-caller-file@npm:2.0.5" @@ -28625,6 +32125,15 @@ __metadata: languageName: node linkType: hard +"get-stream@npm:^5.1.0": + version: 5.2.0 + resolution: "get-stream@npm:5.2.0" + dependencies: + pump: ^3.0.0 + checksum: 8bc1a23174a06b2b4ce600df38d6c98d2ef6d84e020c1ddad632ad75bac4e092eeb40e4c09e0761c35fc2dbc5e7fff5dab5e763a383582c4a167dd69a905bd12 + languageName: node + linkType: hard + "get-stream@npm:^6.0.0": version: 6.0.1 resolution: "get-stream@npm:6.0.1" @@ -28716,6 +32225,13 @@ __metadata: languageName: node linkType: hard +"github-buttons@npm:^2.22.0": + version: 2.29.1 + resolution: "github-buttons@npm:2.29.1" + checksum: adde1324247df85730e0056206d751894c02ce8dcad5e96234bbc9f2f15caaa12a6431608b7e04434e29df83b6900f4fc36d2d4581605f435d97dc29dcfd1a42 + languageName: node + linkType: hard + "github-from-package@npm:0.0.0": version: 0.0.0 resolution: "github-from-package@npm:0.0.0" @@ -28924,6 +32440,13 @@ __metadata: languageName: node linkType: hard +"globals@npm:^15.9.0": + version: 15.15.0 + resolution: "globals@npm:15.15.0" + checksum: a2a92199a112db00562a2f85eeef2a7e3943e171f7f7d9b17dfa9231e35fd612588f3c199d1509ab1757273467e413b08c80424cf6e399e96acdaf93deb3ee88 + languageName: node + linkType: hard + "globalthis@npm:^1.0.3": version: 1.0.3 resolution: "globalthis@npm:1.0.3" @@ -28977,6 +32500,19 @@ __metadata: languageName: node linkType: hard +"globby@npm:^13.1.3": + version: 13.2.2 + resolution: "globby@npm:13.2.2" + dependencies: + dir-glob: ^3.0.1 + fast-glob: ^3.3.0 + ignore: ^5.2.4 + merge2: ^1.4.1 + slash: ^4.0.0 + checksum: f3d84ced58a901b4fcc29c846983108c426631fe47e94872868b65565495f7bee7b3defd68923bd480582771fd4bbe819217803a164a618ad76f1d22f666f41e + languageName: node + linkType: hard + "globrex@npm:^0.1.2": version: 0.1.2 resolution: "globrex@npm:0.1.2" @@ -29103,6 +32639,25 @@ __metadata: languageName: node linkType: hard +"got@npm:^11.8.5": + version: 11.8.6 + resolution: "got@npm:11.8.6" + dependencies: + "@sindresorhus/is": ^4.0.0 + "@szmarczak/http-timer": ^4.0.5 + "@types/cacheable-request": ^6.0.1 + "@types/responselike": ^1.0.0 + cacheable-lookup: ^5.0.3 + cacheable-request: ^7.0.2 + decompress-response: ^6.0.0 + http2-wrapper: ^1.0.0-beta.5.2 + lowercase-keys: ^2.0.0 + p-cancelable: ^2.0.0 + responselike: ^2.0.0 + checksum: bbc783578a8d5030c8164ef7f57ce41b5ad7db2ed13371e1944bef157eeca5a7475530e07c0aaa71610d7085474d0d96222c9f4268d41db333a17e39b463f45d + languageName: node + linkType: hard + "graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.2.0": version: 4.2.10 resolution: "graceful-fs@npm:4.2.10" @@ -29148,6 +32703,23 @@ __metadata: languageName: node linkType: hard +"graphql-codegen@npm:^0.4.0": + version: 0.4.0 + resolution: "graphql-codegen@npm:0.4.0" + dependencies: + babel-runtime: ^6.11.6 + change-case: ^3.0.0 + graphql: ^0.7.0 + inflected: ^1.1.7 + mkdirp: ^0.5.1 + node-fetch: ^1.5.3 + yargs: ^5.0.0 + bin: + graphql-codegen: ./lib/cli.js + checksum: 584ad3382de9ee3927cfd4fcc340abb2f8d4bbdacacebe9e56e34edf255c87eb1e191f2d7c4f3d1d5bb0ebd829b852e50efe91e967683a8b181dcd3b26ae6b6c + languageName: node + linkType: hard + "graphql-config@npm:^5.1.1, graphql-config@npm:^5.1.3": version: 5.1.3 resolution: "graphql-config@npm:5.1.3" @@ -29188,7 +32760,7 @@ __metadata: languageName: node linkType: hard -"graphql-request@npm:^6.0.0": +"graphql-request@npm:^6.0.0, graphql-request@npm:^6.1.0": version: 6.1.0 resolution: "graphql-request@npm:6.1.0" dependencies: @@ -29230,6 +32802,15 @@ __metadata: languageName: node linkType: hard +"graphql@npm:^0.7.0": + version: 0.7.2 + resolution: "graphql@npm:0.7.2" + dependencies: + iterall: 1.0.2 + checksum: 9b815b851d4fbc861609ce37e88e0be881d25fa2d5dc54f661379e600d103d4f051cee15a09799c4efa2d3590a61f64fc2e1d67332c7fdf8df2871c27b1c3f40 + languageName: node + linkType: hard + "graphql@npm:^14.0.0-rc.2": version: 14.7.0 resolution: "graphql@npm:14.7.0" @@ -29246,6 +32827,13 @@ __metadata: languageName: node linkType: hard +"graphql@npm:^16.8.0": + version: 16.11.0 + resolution: "graphql@npm:16.11.0" + checksum: 65bc206edbe980f2759a8e4cf324873f75a66ab48263961472716e50127ae446739be20f926bb7f036a8d199bd4de072f684fd147c285bd6ba965d98cebb6200 + languageName: node + linkType: hard + "graphql@npm:^16.8.1": version: 16.10.0 resolution: "graphql@npm:16.10.0" @@ -29265,6 +32853,13 @@ __metadata: languageName: node linkType: hard +"gsap@npm:^3.11.0": + version: 3.13.0 + resolution: "gsap@npm:3.13.0" + checksum: 40884726718b5bed8cdd6faa621b3eaec64541b6fc163a0af810d3626d750e5d010f7300f4b106327d4474623a9fd5f915a48081d7744eec38c57a1fce20fb62 + languageName: node + linkType: hard + "gtoken@npm:^5.0.4": version: 5.3.2 resolution: "gtoken@npm:5.3.2" @@ -29517,6 +33112,104 @@ __metadata: languageName: node linkType: hard +"hast-util-from-parse5@npm:^7.0.0": + version: 7.1.2 + resolution: "hast-util-from-parse5@npm:7.1.2" + dependencies: + "@types/hast": ^2.0.0 + "@types/unist": ^2.0.0 + hastscript: ^7.0.0 + property-information: ^6.0.0 + vfile: ^5.0.0 + vfile-location: ^4.0.0 + web-namespaces: ^2.0.0 + checksum: 7b4ed5b508b1352127c6719f7b0c0880190cf9859fe54ccaf7c9228ecf623d36cef3097910b3874d2fe1aac6bf4cf45d3cc2303daac3135a05e9ade6534ddddb + languageName: node + linkType: hard + +"hast-util-from-parse5@npm:^8.0.0": + version: 8.0.3 + resolution: "hast-util-from-parse5@npm:8.0.3" + dependencies: + "@types/hast": ^3.0.0 + "@types/unist": ^3.0.0 + devlop: ^1.0.0 + hastscript: ^9.0.0 + property-information: ^7.0.0 + vfile: ^6.0.0 + vfile-location: ^5.0.0 + web-namespaces: ^2.0.0 + checksum: 9ca68545a957a59f2bb18c834f1b7f72cdb1fc0d6b43233faa170e721c1f41da1bb0418b477b91332973c6bc2790a09bb07971fd8f0afe98b4cd111ea9fd7c8c + languageName: node + linkType: hard + +"hast-util-parse-selector@npm:^3.0.0": + version: 3.1.1 + resolution: "hast-util-parse-selector@npm:3.1.1" + dependencies: + "@types/hast": ^2.0.0 + checksum: 511d373465f60dd65e924f88bf0954085f4fb6e3a2b062a4b5ac43b93cbfd36a8dce6234b5d1e3e63499d936375687e83fc5da55628b22bd6b581b5ee167d1c4 + languageName: node + linkType: hard + +"hast-util-parse-selector@npm:^4.0.0": + version: 4.0.0 + resolution: "hast-util-parse-selector@npm:4.0.0" + dependencies: + "@types/hast": ^3.0.0 + checksum: 76087670d3b0b50b23a6cb70bca53a6176d6608307ccdbb3ed18b650b82e7c3513bfc40348f1389dc0c5ae872b9a768851f4335f44654abd7deafd6974c52402 + languageName: node + linkType: hard + +"hast-util-raw@npm:^7.0.0": + version: 7.2.3 + resolution: "hast-util-raw@npm:7.2.3" + dependencies: + "@types/hast": ^2.0.0 + "@types/parse5": ^6.0.0 + hast-util-from-parse5: ^7.0.0 + hast-util-to-parse5: ^7.0.0 + html-void-elements: ^2.0.0 + parse5: ^6.0.0 + unist-util-position: ^4.0.0 + unist-util-visit: ^4.0.0 + vfile: ^5.0.0 + web-namespaces: ^2.0.0 + zwitch: ^2.0.0 + checksum: 21857eea3ffb8fd92d2d9be7793b56d0b2c40db03c4cfa14828855ae41d7c584917aa83efb7157220b2e41e25e95f81f24679ac342c35145e5f1c1d39015f81f + languageName: node + linkType: hard + +"hast-util-raw@npm:^9.0.0": + version: 9.1.0 + resolution: "hast-util-raw@npm:9.1.0" + dependencies: + "@types/hast": ^3.0.0 + "@types/unist": ^3.0.0 + "@ungap/structured-clone": ^1.0.0 + hast-util-from-parse5: ^8.0.0 + hast-util-to-parse5: ^8.0.0 + html-void-elements: ^3.0.0 + mdast-util-to-hast: ^13.0.0 + parse5: ^7.0.0 + unist-util-position: ^5.0.0 + unist-util-visit: ^5.0.0 + vfile: ^6.0.0 + web-namespaces: ^2.0.0 + zwitch: ^2.0.0 + checksum: 778961e2d3140362665b306caade3c12df3d03c48827a2cba3534411bb443323a86ad10ed8ef798dd7ebcccb1709edc8df7a62cedc67f69dc40482b6a855f14f + languageName: node + linkType: hard + +"hast-util-sanitize@npm:^4.0.0": + version: 4.1.0 + resolution: "hast-util-sanitize@npm:4.1.0" + dependencies: + "@types/hast": ^2.0.0 + checksum: 4f1786d6556bae6485a657a3e77e7e71b573fd20e4e2d70678e0f445eb8fe3dc6c4441cda6d18b89a79b53e2c03b6232eb6c470ecd478737050724ea09398603 + languageName: node + linkType: hard + "hast-util-to-estree@npm:^3.0.0, hast-util-to-estree@npm:^3.1.0, hast-util-to-estree@npm:^3.1.1, hast-util-to-estree@npm:^3.1.2": version: 3.1.3 resolution: "hast-util-to-estree@npm:3.1.3" @@ -29541,6 +33234,25 @@ __metadata: languageName: node linkType: hard +"hast-util-to-html@npm:^8.0.0": + version: 8.0.4 + resolution: "hast-util-to-html@npm:8.0.4" + dependencies: + "@types/hast": ^2.0.0 + "@types/unist": ^2.0.0 + ccount: ^2.0.0 + comma-separated-tokens: ^2.0.0 + hast-util-raw: ^7.0.0 + hast-util-whitespace: ^2.0.0 + html-void-elements: ^2.0.0 + property-information: ^6.0.0 + space-separated-tokens: ^2.0.0 + stringify-entities: ^4.0.0 + zwitch: ^2.0.4 + checksum: 8f2ae071df2ced5afb4f19f76af8fd3a2f837dc47bcc1c0e0c1578d29dafcd28738f9617505d13c4a2adf13d70e043143e2ad8f130d5554ab4fc11bfa8f74094 + languageName: node + linkType: hard + "hast-util-to-html@npm:^9.0.4, hast-util-to-html@npm:^9.0.5": version: 9.0.5 resolution: "hast-util-to-html@npm:9.0.5" @@ -29583,6 +33295,35 @@ __metadata: languageName: node linkType: hard +"hast-util-to-parse5@npm:^7.0.0": + version: 7.1.0 + resolution: "hast-util-to-parse5@npm:7.1.0" + dependencies: + "@types/hast": ^2.0.0 + comma-separated-tokens: ^2.0.0 + property-information: ^6.0.0 + space-separated-tokens: ^2.0.0 + web-namespaces: ^2.0.0 + zwitch: ^2.0.0 + checksum: 3a7f2175a3db599bbae7e49ba73d3e5e688e5efca7590ff50130ba108ad649f728402815d47db49146f6b94c14c934bf119915da9f6964e38802c122bcc8af6b + languageName: node + linkType: hard + +"hast-util-to-parse5@npm:^8.0.0": + version: 8.0.0 + resolution: "hast-util-to-parse5@npm:8.0.0" + dependencies: + "@types/hast": ^3.0.0 + comma-separated-tokens: ^2.0.0 + devlop: ^1.0.0 + property-information: ^6.0.0 + space-separated-tokens: ^2.0.0 + web-namespaces: ^2.0.0 + zwitch: ^2.0.0 + checksum: 137469209cb2b32b57387928878dc85310fbd5afa4807a8da69529199bb1d19044bfc95b50c3dc68d4fb2b6cb8bf99b899285597ab6ab318f50422eefd5599dd + languageName: node + linkType: hard + "hast-util-to-string@npm:^3.0.1": version: 3.0.1 resolution: "hast-util-to-string@npm:3.0.1" @@ -29592,6 +33333,13 @@ __metadata: languageName: node linkType: hard +"hast-util-whitespace@npm:^2.0.0": + version: 2.0.1 + resolution: "hast-util-whitespace@npm:2.0.1" + checksum: 431be6b2f35472f951615540d7a53f69f39461e5e080c0190268bdeb2be9ab9b1dddfd1f467dd26c1de7e7952df67beb1307b6ee940baf78b24a71b5e0663868 + languageName: node + linkType: hard + "hast-util-whitespace@npm:^3.0.0": version: 3.0.0 resolution: "hast-util-whitespace@npm:3.0.0" @@ -29601,6 +33349,32 @@ __metadata: languageName: node linkType: hard +"hastscript@npm:^7.0.0": + version: 7.2.0 + resolution: "hastscript@npm:7.2.0" + dependencies: + "@types/hast": ^2.0.0 + comma-separated-tokens: ^2.0.0 + hast-util-parse-selector: ^3.0.0 + property-information: ^6.0.0 + space-separated-tokens: ^2.0.0 + checksum: 928a21576ff7b9a8c945e7940bcbf2d27f770edb4279d4d04b33dc90753e26ca35c1172d626f54afebd377b2afa32331e399feb3eb0f7b91a399dca5927078ae + languageName: node + linkType: hard + +"hastscript@npm:^9.0.0": + version: 9.0.1 + resolution: "hastscript@npm:9.0.1" + dependencies: + "@types/hast": ^3.0.0 + comma-separated-tokens: ^2.0.0 + hast-util-parse-selector: ^4.0.0 + property-information: ^7.0.0 + space-separated-tokens: ^2.0.0 + checksum: 2bbb9a3c2dc43c9dec7f6599ef45e5eefb1c2a5f75d33d005dc432e92bf9d7cfb6c0d927f15a7592bb48601d2b582ea2e4b1131a716ac3f7b618a07d88f9a5d7 + languageName: node + linkType: hard + "he@npm:1.2.0, he@npm:^1.2.0": version: 1.2.0 resolution: "he@npm:1.2.0" @@ -29610,6 +33384,16 @@ __metadata: languageName: node linkType: hard +"header-case@npm:^1.0.0": + version: 1.0.1 + resolution: "header-case@npm:1.0.1" + dependencies: + no-case: ^2.2.0 + upper-case: ^1.1.3 + checksum: fe1cc9a555ec9aabc2de80f4dd961a81c534fc23951694fef34297e59b0dd60f26647148731bf0dd3fdb3a1c688089d3cd147d7038db850e25be7c0a5fabb022 + languageName: node + linkType: hard + "header-case@npm:^2.0.4": version: 2.0.4 resolution: "header-case@npm:2.0.4" @@ -29665,6 +33449,13 @@ __metadata: languageName: node linkType: hard +"hls.js@npm:~1.5.19": + version: 1.5.20 + resolution: "hls.js@npm:1.5.20" + checksum: 08c20a695d6154fa4c54fc4b3f5a569a3874aabb8bf31e0d8ba96501c58b840b77f7ecd2003e14bcb7d28e6f4658c56c92697291dd80920861203e74c14c5028 + languageName: node + linkType: hard + "hmac-drbg@npm:^1.0.1": version: 1.0.1 resolution: "hmac-drbg@npm:1.0.1" @@ -29742,6 +33533,20 @@ __metadata: languageName: node linkType: hard +"html-url-attributes@npm:^3.0.0": + version: 3.0.1 + resolution: "html-url-attributes@npm:3.0.1" + checksum: 1ecbf9cae0c438d2802386710177b7bbf7e30cc61327e9f125eb32fca7302cd1e3ab45c441859cb1e7646109be322fc1163592ad4dfde9b14d09416d101a6573 + languageName: node + linkType: hard + +"html-void-elements@npm:^2.0.0": + version: 2.0.1 + resolution: "html-void-elements@npm:2.0.1" + checksum: 06d41f13b9d5d6e0f39861c4bec9a9196fa4906d56cd5cf6cf54ad2e52a85bf960cca2bf9600026bde16c8331db171bedba5e5a35e2e43630c8f1d497b2fb658 + languageName: node + linkType: hard + "html-void-elements@npm:^3.0.0": version: 3.0.0 resolution: "html-void-elements@npm:3.0.0" @@ -29761,6 +33566,13 @@ __metadata: languageName: node linkType: hard +"http-cache-semantics@npm:^4.0.0": + version: 4.2.0 + resolution: "http-cache-semantics@npm:4.2.0" + checksum: 7a7246ddfce629f96832791176fd643589d954e6f3b49548dadb4290451961237fab8fcea41cd2008fe819d95b41c1e8b97f47d088afc0a1c81705287b4ddbcc + languageName: node + linkType: hard + "http-cache-semantics@npm:^4.1.0, http-cache-semantics@npm:^4.1.1": version: 4.1.1 resolution: "http-cache-semantics@npm:4.1.1" @@ -29915,6 +33727,16 @@ __metadata: languageName: node linkType: hard +"http2-wrapper@npm:^1.0.0-beta.5.2": + version: 1.0.3 + resolution: "http2-wrapper@npm:1.0.3" + dependencies: + quick-lru: ^5.1.1 + resolve-alpn: ^1.0.0 + checksum: 74160b862ec699e3f859739101ff592d52ce1cb207b7950295bf7962e4aa1597ef709b4292c673bece9c9b300efad0559fc86c71b1409c7a1e02b7229456003e + languageName: node + linkType: hard + "http@npm:^0.0.1-security": version: 0.0.1-security resolution: "http@npm:0.0.1-security" @@ -30054,7 +33876,7 @@ __metadata: languageName: node linkType: hard -"i18next-fs-backend@npm:^2.6.0": +"i18next-fs-backend@npm:^2.1.1, i18next-fs-backend@npm:^2.6.0": version: 2.6.0 resolution: "i18next-fs-backend@npm:2.6.0" checksum: 2a34a6f0563f7cc5c98de93e66fff66696eaf19b295d073fb1fef426db75783ecfab10b0251272957c307cbb3ffb4e9b5073c17ddb10be2e352d9b6e6ee71a5a @@ -30119,6 +33941,28 @@ __metadata: languageName: node linkType: hard +"iframe-resizer-react@npm:^1.1.0": + version: 1.1.1 + resolution: "iframe-resizer-react@npm:1.1.1" + dependencies: + "@babel/plugin-proposal-private-property-in-object": ^7.21.11 + iframe-resizer: ^4.4.4 + warning: ^4.0.3 + peerDependencies: + prop-types: ^15.7.2 + react: ^16.13.1 || ^18.0.0 + react-dom: ^16.13.1 || ^18.0.0 + checksum: fd3db2dfd3e1455e2f8150ed0cc4068b8970389eca478d13e2ca6408e1fe0a85425f7b2cb004e5a8eee0e7d4ed304774cad4b1b40d9a7467c2db3ed4851c4572 + languageName: node + linkType: hard + +"iframe-resizer@npm:^4.4.4": + version: 4.4.5 + resolution: "iframe-resizer@npm:4.4.5" + checksum: fa2493daba2df7578866aeb5fceabcf2129da9327abd7d26b4f16e9e7109eddcb97a8ba7ea6e94b043705f13bcbe6ae307e67cc48c24f7bd9d948d491a150163 + languageName: node + linkType: hard + "ignore-walk@npm:^5.0.1": version: 5.0.1 resolution: "ignore-walk@npm:5.0.1" @@ -30135,13 +33979,20 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.3.1": +"ignore@npm:^5.2.4, ignore@npm:^5.3.1": version: 5.3.2 resolution: "ignore@npm:5.3.2" checksum: 2acfd32a573260ea522ea0bfeff880af426d68f6831f973129e2ba7363f422923cf53aab62f8369cbf4667c7b25b6f8a3761b34ecdb284ea18e87a5262a865be languageName: node linkType: hard +"ignore@npm:^7.0.0": + version: 7.0.4 + resolution: "ignore@npm:7.0.4" + checksum: 09b4d69192355ac066f7d99c0fdb26f52035d2eaae423bfb5f7389091d75a93bf9c105e1fbf51f557098f6d446726f29a63cef3a7d26722dc696dd345224719b + languageName: node + linkType: hard + "image-q@npm:^4.0.0": version: 4.0.0 resolution: "image-q@npm:4.0.0" @@ -30300,6 +34151,13 @@ __metadata: languageName: node linkType: hard +"inflected@npm:^1.1.7": + version: 1.1.7 + resolution: "inflected@npm:1.1.7" + checksum: eac857f10871586006d629dc72bab05058f1967c10fae9d7391d627534566a8e5be0a1f690d2590102d890e4ef5647b73b7827380dc7bcf50faac4154f0ab084 + languageName: node + linkType: hard + "inflight@npm:^1.0.4": version: 1.0.6 resolution: "inflight@npm:1.0.6" @@ -30579,6 +34437,13 @@ __metadata: languageName: node linkType: hard +"invert-kv@npm:^1.0.0": + version: 1.0.0 + resolution: "invert-kv@npm:1.0.0" + checksum: aebeee31dda3b3d25ffd242e9a050926e7fe5df642d60953ab183aca1a7d1ffb39922eb2618affb0e850cf2923116f0da1345367759d88d097df5da1f1e1590e + languageName: node + linkType: hard + "ioredis@npm:^5.3.2": version: 5.3.2 resolution: "ioredis@npm:5.3.2" @@ -30759,6 +34624,13 @@ __metadata: languageName: node linkType: hard +"is-buffer@npm:^2.0.0": + version: 2.0.5 + resolution: "is-buffer@npm:2.0.5" + checksum: 764c9ad8b523a9f5a32af29bdf772b08eb48c04d2ad0a7240916ac2688c983bf5f8504bf25b35e66240edeb9d9085461f9b5dae1f3d2861c6b06a65fe983de42 + languageName: node + linkType: hard + "is-buffer@npm:~1.1.6": version: 1.1.6 resolution: "is-buffer@npm:1.1.6" @@ -30950,6 +34822,15 @@ __metadata: languageName: node linkType: hard +"is-fullwidth-code-point@npm:^1.0.0": + version: 1.0.0 + resolution: "is-fullwidth-code-point@npm:1.0.0" + dependencies: + number-is-nan: ^1.0.0 + checksum: 4d46a7465a66a8aebcc5340d3b63a56602133874af576a9ca42c6f0f4bd787a743605771c5f246db77da96605fefeffb65fc1dbe862dcc7328f4b4d03edf5a57 + languageName: node + linkType: hard + "is-fullwidth-code-point@npm:^3.0.0": version: 3.0.0 resolution: "is-fullwidth-code-point@npm:3.0.0" @@ -31282,6 +35163,13 @@ __metadata: languageName: node linkType: hard +"is-stream@npm:^1.0.1": + version: 1.1.0 + resolution: "is-stream@npm:1.1.0" + checksum: 063c6bec9d5647aa6d42108d4c59723d2bd4ae42135a2d4db6eadbd49b7ea05b750fd69d279e5c7c45cf9da753ad2c00d8978be354d65aa9f6bb434969c6a2ae + languageName: node + linkType: hard + "is-stream@npm:^2.0.0": version: 2.0.1 resolution: "is-stream@npm:2.0.1" @@ -31426,6 +35314,13 @@ __metadata: languageName: node linkType: hard +"is-utf8@npm:^0.2.0": + version: 0.2.1 + resolution: "is-utf8@npm:0.2.1" + checksum: 167ccd2be869fc228cc62c1a28df4b78c6b5485d15a29027d3b5dceb09b383e86a3522008b56dcac14b592b22f0a224388718c2505027a994fd8471465de54b3 + languageName: node + linkType: hard + "is-weakmap@npm:^2.0.2": version: 2.0.2 resolution: "is-weakmap@npm:2.0.2" @@ -31647,6 +35542,13 @@ __metadata: languageName: node linkType: hard +"iterall@npm:1.0.2": + version: 1.0.2 + resolution: "iterall@npm:1.0.2" + checksum: f87cbb8e22e3681f4d7ba634e4ce7bd419a78b47ff7b01f57f90cf761d187cb845fcac0d4d7e4c7dfcbfb80467c8ea42a9f3691bb3aa909e3e3707a25735ed70 + languageName: node + linkType: hard + "iterall@npm:^1.2.2": version: 1.3.0 resolution: "iterall@npm:1.3.0" @@ -32329,6 +36231,19 @@ __metadata: languageName: node linkType: hard +"joi@npm:^17.11.0": + version: 17.13.3 + resolution: "joi@npm:17.13.3" + dependencies: + "@hapi/hoek": ^9.3.0 + "@hapi/topo": ^5.1.0 + "@sideway/address": ^4.1.5 + "@sideway/formula": ^3.0.1 + "@sideway/pinpoint": ^2.0.0 + checksum: 66ed454fee3d8e8da1ce21657fd2c7d565d98f3e539d2c5c028767e5f38cbd6297ce54df8312d1d094e62eb38f9452ebb43da4ce87321df66cf5e3f128cbc400 + languageName: node + linkType: hard + "jose@npm:6.0.9": version: 6.0.9 resolution: "jose@npm:6.0.9" @@ -32722,6 +36637,19 @@ __metadata: languageName: node linkType: hard +"jsonfile@npm:^5.0.0": + version: 5.0.0 + resolution: "jsonfile@npm:5.0.0" + dependencies: + graceful-fs: ^4.1.6 + universalify: ^0.1.2 + dependenciesMeta: + graceful-fs: + optional: true + checksum: e0ecff572dba34153a66e3a3bc5c6cb01a2c1d2cf4a2c19b6728dcfcab39d94be9cca4a0fc86a17ff2c815f2aeb43768ac75545780dbea4009433fdc32aa14d1 + languageName: node + linkType: hard + "jsonfile@npm:^6.0.1": version: 6.1.0 resolution: "jsonfile@npm:6.1.0" @@ -32895,6 +36823,13 @@ __metadata: languageName: node linkType: hard +"keen-slider@npm:^6.8.0": + version: 6.8.6 + resolution: "keen-slider@npm:6.8.6" + checksum: f87e65d72e3b2e73cbd52b1908c1458b253ec5a2a2d3e1e34bd1a831172d18568649188cf3e4ad679c7988568929195ae91d4b7a1c0bd3d6da592a453be3723a + languageName: node + linkType: hard + "keypress@npm:~0.2.1": version: 0.2.1 resolution: "keypress@npm:0.2.1" @@ -32902,7 +36837,7 @@ __metadata: languageName: node linkType: hard -"keyv@npm:^4.5.4": +"keyv@npm:^4.0.0, keyv@npm:^4.5.4": version: 4.5.4 resolution: "keyv@npm:4.5.4" dependencies: @@ -32918,7 +36853,7 @@ __metadata: languageName: node linkType: hard -"kleur@npm:4.1.5": +"kleur@npm:4.1.5, kleur@npm:^4.0.3": version: 4.1.5 resolution: "kleur@npm:4.1.5" checksum: 1dc476e32741acf0b1b5b0627ffd0d722e342c1b0da14de3e8ae97821327ca08f9fb944542fb3c126d90ac5f27f9d804edbe7c585bf7d12ef495d115e0f22c12 @@ -33005,6 +36940,15 @@ __metadata: languageName: node linkType: hard +"lcid@npm:^1.0.0": + version: 1.0.0 + resolution: "lcid@npm:1.0.0" + dependencies: + invert-kv: ^1.0.0 + checksum: e8c7a4db07663068c5c44b650938a2bc41aa992037eebb69376214320f202c1250e70b50c32f939e28345fd30c2d35b8e8cd9a19d5932c398246a864ce54843d + languageName: node + linkType: hard + "level-blobs@npm:^0.1.7": version: 0.1.7 resolution: "level-blobs@npm:0.1.7" @@ -33268,6 +37212,19 @@ __metadata: languageName: node linkType: hard +"load-json-file@npm:^1.0.0": + version: 1.1.0 + resolution: "load-json-file@npm:1.1.0" + dependencies: + graceful-fs: ^4.1.2 + parse-json: ^2.2.0 + pify: ^2.0.0 + pinkie-promise: ^2.0.0 + strip-bom: ^2.0.0 + checksum: 0e4e4f380d897e13aa236246a917527ea5a14e4fc34d49e01ce4e7e2a1e08e2740ee463a03fb021c04f594f29a178f4adb994087549d7c1c5315fcd29bf9934b + languageName: node + linkType: hard + "load-json-file@npm:^4.0.0": version: 4.0.0 resolution: "load-json-file@npm:4.0.0" @@ -33345,6 +37302,13 @@ __metadata: languageName: node linkType: hard +"lodash.assign@npm:^4.1.0, lodash.assign@npm:^4.2.0": + version: 4.2.0 + resolution: "lodash.assign@npm:4.2.0" + checksum: 75bbc6733c9f577c448031b4051f990f068802708891f94be9d4c2faffd6a9ec67a2c49671dafc908a068d35687765464853282842b4560b662e6c903d11cc90 + languageName: node + linkType: hard + "lodash.camelcase@npm:^4.3.0": version: 4.3.0 resolution: "lodash.camelcase@npm:4.3.0" @@ -33692,6 +37656,13 @@ __metadata: languageName: node linkType: hard +"lowercase-keys@npm:^2.0.0": + version: 2.0.0 + resolution: "lowercase-keys@npm:2.0.0" + checksum: 24d7ebd56ccdf15ff529ca9e08863f3c54b0b9d1edb97a3ae1af34940ae666c01a1e6d200707bce730a8ef76cb57cc10e65f245ecaaf7e6bc8639f2fb460ac23 + languageName: node + linkType: hard + "lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0, lru-cache@npm:^10.4.3": version: 10.4.3 resolution: "lru-cache@npm:10.4.3" @@ -33779,6 +37750,15 @@ __metadata: languageName: node linkType: hard +"lucide-react@npm:^0.364.0": + version: 0.364.0 + resolution: "lucide-react@npm:0.364.0" + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 + checksum: 954f6274df46ffa172130d9e60eb630a377435c7dbf0ddb5ceebf284602dde3b99755dcd5c0757e697ee734a32c808a3cd2c25ad88fec1d8f627a2317f00e3e6 + languageName: node + linkType: hard + "lucide-react@npm:^0.456.0": version: 0.456.0 resolution: "lucide-react@npm:0.456.0" @@ -34102,6 +38082,17 @@ __metadata: languageName: node linkType: hard +"mdast-util-definitions@npm:^5.0.0": + version: 5.1.2 + resolution: "mdast-util-definitions@npm:5.1.2" + dependencies: + "@types/mdast": ^3.0.0 + "@types/unist": ^2.0.0 + unist-util-visit: ^4.0.0 + checksum: 2544daccab744ea1ede76045c2577ae4f1cc1b9eb1ea51ab273fe1dca8db5a8d6f50f87759c0ce6484975914b144b7f40316f805cb9c86223a78db8de0b77bae + languageName: node + linkType: hard + "mdast-util-find-and-replace@npm:^3.0.0": version: 3.0.2 resolution: "mdast-util-find-and-replace@npm:3.0.2" @@ -34114,6 +38105,26 @@ __metadata: languageName: node linkType: hard +"mdast-util-from-markdown@npm:^1.0.0": + version: 1.3.1 + resolution: "mdast-util-from-markdown@npm:1.3.1" + dependencies: + "@types/mdast": ^3.0.0 + "@types/unist": ^2.0.0 + decode-named-character-reference: ^1.0.0 + mdast-util-to-string: ^3.1.0 + micromark: ^3.0.0 + micromark-util-decode-numeric-character-reference: ^1.0.0 + micromark-util-decode-string: ^1.0.0 + micromark-util-normalize-identifier: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + unist-util-stringify-position: ^3.0.0 + uvu: ^0.5.0 + checksum: c2fac225167e248d394332a4ea39596e04cbde07d8cdb3889e91e48972c4c3462a02b39fda3855345d90231eb17a90ac6e082fb4f012a77c1d0ddfb9c7446940 + languageName: node + linkType: hard + "mdast-util-from-markdown@npm:^2.0.0": version: 2.0.2 resolution: "mdast-util-from-markdown@npm:2.0.2" @@ -34272,6 +38283,16 @@ __metadata: languageName: node linkType: hard +"mdast-util-phrasing@npm:^3.0.0": + version: 3.0.1 + resolution: "mdast-util-phrasing@npm:3.0.1" + dependencies: + "@types/mdast": ^3.0.0 + unist-util-is: ^5.0.0 + checksum: c5b616d9b1eb76a6b351d195d94318494722525a12a89d9c8a3b091af7db3dd1fc55d294f9d29266d8159a8267b0df4a7a133bda8a3909d5331c383e1e1ff328 + languageName: node + linkType: hard + "mdast-util-phrasing@npm:^4.0.0": version: 4.1.0 resolution: "mdast-util-phrasing@npm:4.1.0" @@ -34282,6 +38303,23 @@ __metadata: languageName: node linkType: hard +"mdast-util-to-hast@npm:^11.0.0": + version: 11.3.0 + resolution: "mdast-util-to-hast@npm:11.3.0" + dependencies: + "@types/hast": ^2.0.0 + "@types/mdast": ^3.0.0 + "@types/mdurl": ^1.0.0 + mdast-util-definitions: ^5.0.0 + mdurl: ^1.0.0 + unist-builder: ^3.0.0 + unist-util-generated: ^2.0.0 + unist-util-position: ^4.0.0 + unist-util-visit: ^4.0.0 + checksum: a968d034613aa5cfb44b9c03d8e61a08bb563bfde3a233fb3d83a28857357e2beef56b6767bab2867d3c3796dc5dd796af4d03fb83e3133aeb7f4187b5cc9327 + languageName: node + linkType: hard + "mdast-util-to-hast@npm:^13.0.0": version: 13.2.0 resolution: "mdast-util-to-hast@npm:13.2.0" @@ -34299,6 +38337,22 @@ __metadata: languageName: node linkType: hard +"mdast-util-to-markdown@npm:^1.0.0": + version: 1.5.0 + resolution: "mdast-util-to-markdown@npm:1.5.0" + dependencies: + "@types/mdast": ^3.0.0 + "@types/unist": ^2.0.0 + longest-streak: ^3.0.0 + mdast-util-phrasing: ^3.0.0 + mdast-util-to-string: ^3.0.0 + micromark-util-decode-string: ^1.0.0 + unist-util-visit: ^4.0.0 + zwitch: ^2.0.0 + checksum: 64338eb33e49bb0aea417591fd986f72fdd39205052563bb7ce9eb9ecc160824509bfacd740086a05af355c6d5c36353aafe95cab9e6927d674478757cee6259 + languageName: node + linkType: hard + "mdast-util-to-markdown@npm:^2.0.0": version: 2.1.2 resolution: "mdast-util-to-markdown@npm:2.1.2" @@ -34316,6 +38370,15 @@ __metadata: languageName: node linkType: hard +"mdast-util-to-string@npm:^3.0.0, mdast-util-to-string@npm:^3.1.0": + version: 3.2.0 + resolution: "mdast-util-to-string@npm:3.2.0" + dependencies: + "@types/mdast": ^3.0.0 + checksum: dc40b544d54339878ae2c9f2b3198c029e1e07291d2126bd00ca28272ee6616d0d2194eb1c9828a7c34d412a79a7e73b26512a734698d891c710a1e73db1e848 + languageName: node + linkType: hard + "mdast-util-to-string@npm:^4.0.0": version: 4.0.0 resolution: "mdast-util-to-string@npm:4.0.0" @@ -34332,13 +38395,30 @@ __metadata: languageName: node linkType: hard -"mdurl@npm:^1.0.1": +"mdurl@npm:^1.0.0, mdurl@npm:^1.0.1": version: 1.0.1 resolution: "mdurl@npm:1.0.1" checksum: 71731ecba943926bfbf9f9b51e28b5945f9411c4eda80894221b47cc105afa43ba2da820732b436f0798fd3edbbffcd1fc1415843c41a87fea08a41cc1e3d02b languageName: node linkType: hard +"media-chrome@npm:~4.9.0, media-chrome@npm:~4.9.1": + version: 4.9.1 + resolution: "media-chrome@npm:4.9.1" + dependencies: + "@vercel/edge": ^1.2.1 + ce-la-react: ^0.1.3 + checksum: 4291be0a9d2564fd769dae8904be750be79926cb2ca6cc6d7c9f8462701bf476a7106854f93eb7579bb6991b2e1334ccbf8dfcd9d459dfce10f7b3952b4f0799 + languageName: node + linkType: hard + +"media-tracks@npm:~0.3.3": + version: 0.3.3 + resolution: "media-tracks@npm:0.3.3" + checksum: 4795af3f171d7ad3a68d1ac1c1e8166a735244fe57d3fc0ec53b1c7410799e524756fc0bfb389632aebb148436b03baade36ca34a3f5377776c3968f6d2cc580 + languageName: node + linkType: hard + "media-typer@npm:0.3.0": version: 0.3.0 resolution: "media-typer@npm:0.3.0" @@ -34479,6 +38559,30 @@ __metadata: languageName: node linkType: hard +"micromark-core-commonmark@npm:^1.0.1": + version: 1.1.0 + resolution: "micromark-core-commonmark@npm:1.1.0" + dependencies: + decode-named-character-reference: ^1.0.0 + micromark-factory-destination: ^1.0.0 + micromark-factory-label: ^1.0.0 + micromark-factory-space: ^1.0.0 + micromark-factory-title: ^1.0.0 + micromark-factory-whitespace: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-chunked: ^1.0.0 + micromark-util-classify-character: ^1.0.0 + micromark-util-html-tag-name: ^1.0.0 + micromark-util-normalize-identifier: ^1.0.0 + micromark-util-resolve-all: ^1.0.0 + micromark-util-subtokenize: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.1 + uvu: ^0.5.0 + checksum: c6dfedc95889cc73411cb222fc2330b9eda6d849c09c9fd9eb3cd3398af246167e9d3cdb0ae3ce9ae59dd34a14624c8330e380255d41279ad7350cf6c6be6c5b + languageName: node + linkType: hard + "micromark-core-commonmark@npm:^2.0.0": version: 2.0.3 resolution: "micromark-core-commonmark@npm:2.0.3" @@ -34672,6 +38776,17 @@ __metadata: languageName: node linkType: hard +"micromark-factory-destination@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-destination@npm:1.1.0" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: 9e2b5fb5fedbf622b687e20d51eb3d56ae90c0e7ecc19b37bd5285ec392c1e56f6e21aa7cfcb3c01eda88df88fe528f3acb91a5f57d7f4cba310bc3cd7f824fa + languageName: node + linkType: hard + "micromark-factory-destination@npm:^2.0.0": version: 2.0.1 resolution: "micromark-factory-destination@npm:2.0.1" @@ -34683,6 +38798,18 @@ __metadata: languageName: node linkType: hard +"micromark-factory-label@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-label@npm:1.1.0" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + uvu: ^0.5.0 + checksum: fcda48f1287d9b148c562c627418a2ab759cdeae9c8e017910a0cba94bb759a96611e1fc6df33182e97d28fbf191475237298983bb89ef07d5b02464b1ad28d5 + languageName: node + linkType: hard + "micromark-factory-label@npm:^2.0.0": version: 2.0.1 resolution: "micromark-factory-label@npm:2.0.1" @@ -34712,6 +38839,16 @@ __metadata: languageName: node linkType: hard +"micromark-factory-space@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-space@npm:1.1.0" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: b58435076b998a7e244259a4694eb83c78915581206b6e7fc07b34c6abd36a1726ade63df8972fbf6c8fa38eecb9074f4e17be8d53f942e3b3d23d1a0ecaa941 + languageName: node + linkType: hard + "micromark-factory-space@npm:^2.0.0": version: 2.0.1 resolution: "micromark-factory-space@npm:2.0.1" @@ -34722,6 +38859,18 @@ __metadata: languageName: node linkType: hard +"micromark-factory-title@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-title@npm:1.1.0" + dependencies: + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: 4432d3dbc828c81f483c5901b0c6591a85d65a9e33f7d96ba7c3ae821617a0b3237ff5faf53a9152d00aaf9afb3a9f185b205590f40ed754f1d9232e0e9157b1 + languageName: node + linkType: hard + "micromark-factory-title@npm:^2.0.0": version: 2.0.1 resolution: "micromark-factory-title@npm:2.0.1" @@ -34734,6 +38883,18 @@ __metadata: languageName: node linkType: hard +"micromark-factory-whitespace@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-whitespace@npm:1.1.0" + dependencies: + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: ef0fa682c7d593d85a514ee329809dee27d10bc2a2b65217d8ef81173e33b8e83c549049764b1ad851adfe0a204dec5450d9d20a4ca8598f6c94533a73f73fcd + languageName: node + linkType: hard + "micromark-factory-whitespace@npm:^2.0.0": version: 2.0.1 resolution: "micromark-factory-whitespace@npm:2.0.1" @@ -34746,6 +38907,16 @@ __metadata: languageName: node linkType: hard +"micromark-util-character@npm:^1.0.0": + version: 1.2.0 + resolution: "micromark-util-character@npm:1.2.0" + dependencies: + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: 089e79162a19b4a28731736246579ab7e9482ac93cd681c2bfca9983dcff659212ef158a66a5957e9d4b1dba957d1b87b565d85418a5b009f0294f1f07f2aaac + languageName: node + linkType: hard + "micromark-util-character@npm:^2.0.0": version: 2.1.1 resolution: "micromark-util-character@npm:2.1.1" @@ -34756,6 +38927,15 @@ __metadata: languageName: node linkType: hard +"micromark-util-chunked@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-chunked@npm:1.1.0" + dependencies: + micromark-util-symbol: ^1.0.0 + checksum: c435bde9110cb595e3c61b7f54c2dc28ee03e6a57fa0fc1e67e498ad8bac61ee5a7457a2b6a73022ddc585676ede4b912d28dcf57eb3bd6951e54015e14dc20b + languageName: node + linkType: hard + "micromark-util-chunked@npm:^2.0.0": version: 2.0.1 resolution: "micromark-util-chunked@npm:2.0.1" @@ -34765,6 +38945,17 @@ __metadata: languageName: node linkType: hard +"micromark-util-classify-character@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-classify-character@npm:1.1.0" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: 8499cb0bb1f7fb946f5896285fcca65cd742f66cd3e79ba7744792bd413ec46834f932a286de650349914d02e822946df3b55d03e6a8e1d245d1ddbd5102e5b0 + languageName: node + linkType: hard + "micromark-util-classify-character@npm:^2.0.0": version: 2.0.1 resolution: "micromark-util-classify-character@npm:2.0.1" @@ -34776,6 +38967,16 @@ __metadata: languageName: node linkType: hard +"micromark-util-combine-extensions@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-combine-extensions@npm:1.1.0" + dependencies: + micromark-util-chunked: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: ee78464f5d4b61ccb437850cd2d7da4d690b260bca4ca7a79c4bb70291b84f83988159e373b167181b6716cb197e309bc6e6c96a68cc3ba9d50c13652774aba9 + languageName: node + linkType: hard + "micromark-util-combine-extensions@npm:^2.0.0": version: 2.0.1 resolution: "micromark-util-combine-extensions@npm:2.0.1" @@ -34786,6 +38987,15 @@ __metadata: languageName: node linkType: hard +"micromark-util-decode-numeric-character-reference@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-decode-numeric-character-reference@npm:1.1.0" + dependencies: + micromark-util-symbol: ^1.0.0 + checksum: 4733fe75146e37611243f055fc6847137b66f0cde74d080e33bd26d0408c1d6f44cabc984063eee5968b133cb46855e729d555b9ff8d744652262b7b51feec73 + languageName: node + linkType: hard + "micromark-util-decode-numeric-character-reference@npm:^2.0.0": version: 2.0.2 resolution: "micromark-util-decode-numeric-character-reference@npm:2.0.2" @@ -34795,6 +39005,18 @@ __metadata: languageName: node linkType: hard +"micromark-util-decode-string@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-decode-string@npm:1.1.0" + dependencies: + decode-named-character-reference: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-decode-numeric-character-reference: ^1.0.0 + micromark-util-symbol: ^1.0.0 + checksum: f1625155db452f15aa472918499689ba086b9c49d1322a08b22bfbcabe918c61b230a3002c8bc3ea9b1f52ca7a9bb1c3dd43ccb548c7f5f8b16c24a1ae77a813 + languageName: node + linkType: hard + "micromark-util-decode-string@npm:^2.0.0": version: 2.0.1 resolution: "micromark-util-decode-string@npm:2.0.1" @@ -34807,6 +39029,13 @@ __metadata: languageName: node linkType: hard +"micromark-util-encode@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-encode@npm:1.1.0" + checksum: 4ef29d02b12336918cea6782fa87c8c578c67463925221d4e42183a706bde07f4b8b5f9a5e1c7ce8c73bb5a98b261acd3238fecd152e6dd1cdfa2d1ae11b60a0 + languageName: node + linkType: hard + "micromark-util-encode@npm:^2.0.0": version: 2.0.1 resolution: "micromark-util-encode@npm:2.0.1" @@ -34829,6 +39058,13 @@ __metadata: languageName: node linkType: hard +"micromark-util-html-tag-name@npm:^1.0.0": + version: 1.2.0 + resolution: "micromark-util-html-tag-name@npm:1.2.0" + checksum: ccf0fa99b5c58676dc5192c74665a3bfd1b536fafaf94723bd7f31f96979d589992df6fcf2862eba290ef18e6a8efb30ec8e1e910d9f3fc74f208871e9f84750 + languageName: node + linkType: hard + "micromark-util-html-tag-name@npm:^2.0.0": version: 2.0.1 resolution: "micromark-util-html-tag-name@npm:2.0.1" @@ -34836,6 +39072,15 @@ __metadata: languageName: node linkType: hard +"micromark-util-normalize-identifier@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-normalize-identifier@npm:1.1.0" + dependencies: + micromark-util-symbol: ^1.0.0 + checksum: 8655bea41ffa4333e03fc22462cb42d631bbef9c3c07b625fd852b7eb442a110f9d2e5902a42e65188d85498279569502bf92f3434a1180fc06f7c37edfbaee2 + languageName: node + linkType: hard + "micromark-util-normalize-identifier@npm:^2.0.0": version: 2.0.1 resolution: "micromark-util-normalize-identifier@npm:2.0.1" @@ -34845,6 +39090,15 @@ __metadata: languageName: node linkType: hard +"micromark-util-resolve-all@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-resolve-all@npm:1.1.0" + dependencies: + micromark-util-types: ^1.0.0 + checksum: 1ce6c0237cd3ca061e76fae6602cf95014e764a91be1b9f10d36cb0f21ca88f9a07de8d49ab8101efd0b140a4fbfda6a1efb72027ab3f4d5b54c9543271dc52c + languageName: node + linkType: hard + "micromark-util-resolve-all@npm:^2.0.0": version: 2.0.1 resolution: "micromark-util-resolve-all@npm:2.0.1" @@ -34854,6 +39108,17 @@ __metadata: languageName: node linkType: hard +"micromark-util-sanitize-uri@npm:^1.0.0": + version: 1.2.0 + resolution: "micromark-util-sanitize-uri@npm:1.2.0" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-encode: ^1.0.0 + micromark-util-symbol: ^1.0.0 + checksum: 6663f365c4fe3961d622a580f4a61e34867450697f6806f027f21cf63c92989494895fcebe2345d52e249fe58a35be56e223a9776d084c9287818b40c779acc1 + languageName: node + linkType: hard + "micromark-util-sanitize-uri@npm:^2.0.0": version: 2.0.1 resolution: "micromark-util-sanitize-uri@npm:2.0.1" @@ -34865,6 +39130,18 @@ __metadata: languageName: node linkType: hard +"micromark-util-subtokenize@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-subtokenize@npm:1.1.0" + dependencies: + micromark-util-chunked: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + uvu: ^0.5.0 + checksum: 4a9d780c4d62910e196ea4fd886dc4079d8e424e5d625c0820016da0ed399a281daff39c50f9288045cc4bcd90ab47647e5396aba500f0853105d70dc8b1fc45 + languageName: node + linkType: hard + "micromark-util-subtokenize@npm:^2.0.0": version: 2.1.0 resolution: "micromark-util-subtokenize@npm:2.1.0" @@ -34877,6 +39154,13 @@ __metadata: languageName: node linkType: hard +"micromark-util-symbol@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-symbol@npm:1.1.0" + checksum: 02414a753b79f67ff3276b517eeac87913aea6c028f3e668a19ea0fc09d98aea9f93d6222a76ca783d20299af9e4b8e7c797fe516b766185dcc6e93290f11f88 + languageName: node + linkType: hard + "micromark-util-symbol@npm:^2.0.0": version: 2.0.1 resolution: "micromark-util-symbol@npm:2.0.1" @@ -34884,6 +39168,13 @@ __metadata: languageName: node linkType: hard +"micromark-util-types@npm:^1.0.0, micromark-util-types@npm:^1.0.1": + version: 1.1.0 + resolution: "micromark-util-types@npm:1.1.0" + checksum: b0ef2b4b9589f15aec2666690477a6a185536927ceb7aa55a0f46475852e012d75a1ab945187e5c7841969a842892164b15d58ff8316b8e0d6cc920cabd5ede7 + languageName: node + linkType: hard + "micromark-util-types@npm:^2.0.0": version: 2.0.2 resolution: "micromark-util-types@npm:2.0.2" @@ -34891,6 +39182,31 @@ __metadata: languageName: node linkType: hard +"micromark@npm:^3.0.0": + version: 3.2.0 + resolution: "micromark@npm:3.2.0" + dependencies: + "@types/debug": ^4.0.0 + debug: ^4.0.0 + decode-named-character-reference: ^1.0.0 + micromark-core-commonmark: ^1.0.1 + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-chunked: ^1.0.0 + micromark-util-combine-extensions: ^1.0.0 + micromark-util-decode-numeric-character-reference: ^1.0.0 + micromark-util-encode: ^1.0.0 + micromark-util-normalize-identifier: ^1.0.0 + micromark-util-resolve-all: ^1.0.0 + micromark-util-sanitize-uri: ^1.0.0 + micromark-util-subtokenize: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.1 + uvu: ^0.5.0 + checksum: 56c15851ad3eb8301aede65603473443e50c92a54849cac1dadd57e4ec33ab03a0a77f3df03de47133e6e8f695dae83b759b514586193269e98c0bf319ecd5e4 + languageName: node + linkType: hard + "micromark@npm:^4.0.0": version: 4.0.2 resolution: "micromark@npm:4.0.2" @@ -34996,6 +39312,13 @@ __metadata: languageName: node linkType: hard +"mimic-response@npm:^1.0.0": + version: 1.0.1 + resolution: "mimic-response@npm:1.0.1" + checksum: 034c78753b0e622bc03c983663b1cdf66d03861050e0c8606563d149bc2b02d63f62ce4d32be4ab50d0553ae0ffe647fc34d1f5281184c6e1e8cf4d85e8d9823 + languageName: node + linkType: hard + "mimic-response@npm:^3.1.0": version: 3.1.0 resolution: "mimic-response@npm:3.1.0" @@ -35098,7 +39421,7 @@ __metadata: languageName: node linkType: hard -"minimist@npm:^1.1.0, minimist@npm:^1.2.3": +"minimist@npm:^1.1.0, minimist@npm:^1.2.3, minimist@npm:^1.2.8": version: 1.2.8 resolution: "minimist@npm:1.2.8" checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0 @@ -35414,6 +39737,22 @@ __metadata: languageName: node linkType: hard +"motion-dom@npm:^11.18.1": + version: 11.18.1 + resolution: "motion-dom@npm:11.18.1" + dependencies: + motion-utils: ^11.18.1 + checksum: c801aad3a9268221a0c346d71aae68cc2ddf3f5063ce02bbb6d9f4b7c509de16aa2eae3a8e5f0423087d38110bd17a8a75886f646bf9225ba4bad97a50e3ab76 + languageName: node + linkType: hard + +"motion-utils@npm:^11.18.1": + version: 11.18.1 + resolution: "motion-utils@npm:11.18.1" + checksum: e8789e50dce6e952226608e8f7eb8e03779332849f38c70cc9e1fbd5e34f2e6d0efb2d565091de999135ec3a3d4a0df1a796833cccd8f6a2313f81445c6e5b83 + languageName: node + linkType: hard + "mqtt-packet@npm:^6.8.0": version: 6.10.0 resolution: "mqtt-packet@npm:6.10.0" @@ -35454,7 +39793,7 @@ __metadata: languageName: node linkType: hard -"mri@npm:^1.2.0": +"mri@npm:^1.1.0, mri@npm:^1.2.0": version: 1.2.0 resolution: "mri@npm:1.2.0" checksum: 83f515abbcff60150873e424894a2f65d68037e5a7fcde8a9e2b285ee9c13ac581b63cfc1e6826c4732de3aeb84902f7c1e16b7aff46cd3f897a0f757a894e85 @@ -35686,6 +40025,13 @@ __metadata: languageName: node linkType: hard +"mux-embed@npm:^5.8.3": + version: 5.9.0 + resolution: "mux-embed@npm:5.9.0" + checksum: 1ef36cfacc72de587d3e649e8e9169223f7ebecf1b2fe26c7fef3da2b69daf54c022625e9f6c31968f8285e17376e34378cdf87844b696f4bc64602d28f89dd5 + languageName: node + linkType: hard + "mysql2@npm:3.13.0": version: 3.13.0 resolution: "mysql2@npm:3.13.0" @@ -35936,6 +40282,24 @@ __metadata: languageName: node linkType: hard +"next-i18next@npm:13.3.0": + version: 13.3.0 + resolution: "next-i18next@npm:13.3.0" + dependencies: + "@babel/runtime": ^7.20.13 + "@types/hoist-non-react-statics": ^3.3.1 + core-js: ^3 + hoist-non-react-statics: ^3.3.2 + i18next-fs-backend: ^2.1.1 + peerDependencies: + i18next: ^22.0.6 + next: ">= 12.0.0" + react: ">= 17.0.2" + react-i18next: ^12.2.0 + checksum: 4c3aa5bbbc12964ed6f61f37d33f4319abd04932d6871baba9f209183952b286470fff80f90a94ccddba736c8fb13a9238effa1e8247dfb08e2239cbdc4fb769 + languageName: node + linkType: hard + "next-i18next@npm:^15.4.2": version: 15.4.2 resolution: "next-i18next@npm:15.4.2" @@ -35954,6 +40318,24 @@ __metadata: languageName: node linkType: hard +"next-i18next@patch:next-i18next@npm%3A13.3.0#./.yarn/patches/next-i18next-npm-13.3.0-bf25b0943c.patch::locator=calcom-monorepo%40workspace%3A.": + version: 13.3.0 + resolution: "next-i18next@patch:next-i18next@npm%3A13.3.0#./.yarn/patches/next-i18next-npm-13.3.0-bf25b0943c.patch::version=13.3.0&hash=bcbde7&locator=calcom-monorepo%40workspace%3A." + dependencies: + "@babel/runtime": ^7.20.13 + "@types/hoist-non-react-statics": ^3.3.1 + core-js: ^3 + hoist-non-react-statics: ^3.3.2 + i18next-fs-backend: ^2.1.1 + peerDependencies: + i18next: ^22.0.6 + next: ">= 12.0.0" + react: ">= 17.0.2" + react-i18next: ^12.2.0 + checksum: 7dcb7e2ec14a0164e2c803b5eb4be3d3198ff0db266fecd6225dfa99ec53bf923fe50230c413f2e9b9a795266fb4e31f129572865181df1eadcf8721ad138b3e + languageName: node + linkType: hard + "next-router-mock@npm:^0.9.12": version: 0.9.12 resolution: "next-router-mock@npm:0.9.12" @@ -36257,6 +40639,64 @@ __metadata: languageName: node linkType: hard +"next@npm:^14.1.3": + version: 14.2.28 + resolution: "next@npm:14.2.28" + dependencies: + "@next/env": 14.2.28 + "@next/swc-darwin-arm64": 14.2.28 + "@next/swc-darwin-x64": 14.2.28 + "@next/swc-linux-arm64-gnu": 14.2.28 + "@next/swc-linux-arm64-musl": 14.2.28 + "@next/swc-linux-x64-gnu": 14.2.28 + "@next/swc-linux-x64-musl": 14.2.28 + "@next/swc-win32-arm64-msvc": 14.2.28 + "@next/swc-win32-ia32-msvc": 14.2.28 + "@next/swc-win32-x64-msvc": 14.2.28 + "@swc/helpers": 0.5.5 + busboy: 1.6.0 + caniuse-lite: ^1.0.30001579 + graceful-fs: ^4.2.11 + postcss: 8.4.31 + styled-jsx: 5.1.1 + peerDependencies: + "@opentelemetry/api": ^1.1.0 + "@playwright/test": ^1.41.2 + react: ^18.2.0 + react-dom: ^18.2.0 + sass: ^1.3.0 + dependenciesMeta: + "@next/swc-darwin-arm64": + optional: true + "@next/swc-darwin-x64": + optional: true + "@next/swc-linux-arm64-gnu": + optional: true + "@next/swc-linux-arm64-musl": + optional: true + "@next/swc-linux-x64-gnu": + optional: true + "@next/swc-linux-x64-musl": + optional: true + "@next/swc-win32-arm64-msvc": + optional: true + "@next/swc-win32-ia32-msvc": + optional: true + "@next/swc-win32-x64-msvc": + optional: true + peerDependenciesMeta: + "@opentelemetry/api": + optional: true + "@playwright/test": + optional: true + sass: + optional: true + bin: + next: dist/bin/next + checksum: 11b8a5eed9416a63d4881169833e969c5ae7e265805c644c9d1e7f95306ebbac61f5151a2c91b4e07e2eec75af336a0d571fa080a6898eca466952374b0c4be5 + languageName: node + linkType: hard + "next@npm:^15.3.0": version: 15.3.3 resolution: "next@npm:15.3.3" @@ -36325,6 +40765,15 @@ __metadata: languageName: node linkType: hard +"no-case@npm:^2.2.0, no-case@npm:^2.3.2": + version: 2.3.2 + resolution: "no-case@npm:2.3.2" + dependencies: + lower-case: ^1.1.1 + checksum: 856487731936fef44377ca74fdc5076464aba2e0734b56a4aa2b2a23d5b154806b591b9b2465faa59bb982e2b5c9391e3685400957fb4eeb38f480525adcf3dd + languageName: node + linkType: hard + "no-case@npm:^3.0.4": version: 3.0.4 resolution: "no-case@npm:3.0.4" @@ -36369,7 +40818,7 @@ __metadata: languageName: node linkType: hard -"node-domexception@npm:^1.0.0": +"node-domexception@npm:1.0.0, node-domexception@npm:^1.0.0": version: 1.0.0 resolution: "node-domexception@npm:1.0.0" checksum: ee1d37dd2a4eb26a8a92cd6b64dfc29caec72bff5e1ed9aba80c294f57a31ba4895a60fd48347cf17dd6e766da0ae87d75657dfd1f384ebfa60462c2283f5c7f @@ -36427,6 +40876,16 @@ __metadata: languageName: node linkType: hard +"node-fetch@npm:^1.5.3": + version: 1.7.3 + resolution: "node-fetch@npm:1.7.3" + dependencies: + encoding: ^0.1.11 + is-stream: ^1.0.1 + checksum: 3bb0528c05d541316ebe52770d71ee25a6dce334df4231fd55df41a644143e07f068637488c18a5b0c43f05041dbd3346752f9e19b50df50569a802484544d5b + languageName: node + linkType: hard + "node-fetch@npm:^3.3.2": version: 3.3.2 resolution: "node-fetch@npm:3.3.2" @@ -36762,6 +41221,13 @@ __metadata: languageName: node linkType: hard +"normalize-url@npm:^6.0.1": + version: 6.1.0 + resolution: "normalize-url@npm:6.1.0" + checksum: 4a4944631173e7d521d6b80e4c85ccaeceb2870f315584fa30121f505a6dfd86439c5e3fdd8cd9e0e291290c41d0c3599f0cb12ab356722ed242584c30348e50 + languageName: node + linkType: hard + "normalize-wheel@npm:^1.0.1": version: 1.0.1 resolution: "normalize-wheel@npm:1.0.1" @@ -36906,6 +41372,13 @@ __metadata: languageName: node linkType: hard +"number-is-nan@npm:^1.0.0": + version: 1.0.1 + resolution: "number-is-nan@npm:1.0.1" + checksum: 13656bc9aa771b96cef209ffca31c31a03b507ca6862ba7c3f638a283560620d723d52e626d57892c7fff475f4c36ac07f0600f14544692ff595abff214b9ffb + languageName: node + linkType: hard + "nuqs@npm:^1.20.0": version: 1.20.0 resolution: "nuqs@npm:1.20.0" @@ -37126,7 +41599,7 @@ __metadata: languageName: node linkType: hard -"object.entries@npm:^1.1.8": +"object.entries@npm:^1.1.8, object.entries@npm:^1.1.9": version: 1.1.9 resolution: "object.entries@npm:1.1.9" dependencies: @@ -37546,6 +42019,15 @@ __metadata: languageName: node linkType: hard +"os-locale@npm:^1.4.0": + version: 1.4.0 + resolution: "os-locale@npm:1.4.0" + dependencies: + lcid: ^1.0.0 + checksum: 0161a1b6b5a8492f99f4b47fe465df9fc521c55ba5414fce6444c45e2500487b8ed5b40a47a98a2363fe83ff04ab033785300ed8df717255ec4c3b625e55b1fb + languageName: node + linkType: hard + "os-tmpdir@npm:~1.0.2": version: 1.0.2 resolution: "os-tmpdir@npm:1.0.2" @@ -37596,6 +42078,13 @@ __metadata: languageName: node linkType: hard +"p-cancelable@npm:^2.0.0": + version: 2.1.1 + resolution: "p-cancelable@npm:2.1.1" + checksum: 3dba12b4fb4a1e3e34524535c7858fc82381bbbd0f247cc32dedc4018592a3950ce66b106d0880b4ec4c2d8d6576f98ca885dc1d7d0f274d1370be20e9523ddf + languageName: node + linkType: hard + "p-filter@npm:2.1.0, p-filter@npm:^2.1.0": version: 2.1.0 resolution: "p-filter@npm:2.1.0" @@ -37782,6 +42271,15 @@ __metadata: languageName: node linkType: hard +"param-case@npm:^2.1.0": + version: 2.1.1 + resolution: "param-case@npm:2.1.1" + dependencies: + no-case: ^2.2.0 + checksum: 3a63dcb8d8dc7995a612de061afdc7bb6fe7bd0e6db994db8d4cae999ed879859fd24389090e1a0d93f4c9207ebf8c048c870f468a3f4767161753e03cb9ab58 + languageName: node + linkType: hard + "param-case@npm:^3.0.4": version: 3.0.4 resolution: "param-case@npm:3.0.4" @@ -37888,6 +42386,15 @@ __metadata: languageName: node linkType: hard +"parse-json@npm:^2.2.0": + version: 2.2.0 + resolution: "parse-json@npm:2.2.0" + dependencies: + error-ex: ^1.2.0 + checksum: dda78a63e57a47b713a038630868538f718a7ca0cd172a36887b0392ccf544ed0374902eb28f8bf3409e8b71d62b79d17062f8543afccf2745f9b0b2d2bb80ca + languageName: node + linkType: hard + "parse-json@npm:^4.0.0": version: 4.0.0 resolution: "parse-json@npm:4.0.0" @@ -37924,6 +42431,13 @@ __metadata: languageName: node linkType: hard +"parse5@npm:^6.0.0": + version: 6.0.1 + resolution: "parse5@npm:6.0.1" + checksum: 7d569a176c5460897f7c8f3377eff640d54132b9be51ae8a8fa4979af940830b2b0c296ce75e5bd8f4041520aadde13170dbdec44889975f906098ea0002f4bd + languageName: node + linkType: hard + "parse5@npm:^7.0.0": version: 7.2.1 resolution: "parse5@npm:7.2.1" @@ -37959,6 +42473,16 @@ __metadata: languageName: node linkType: hard +"pascal-case@npm:^2.0.0": + version: 2.0.1 + resolution: "pascal-case@npm:2.0.1" + dependencies: + camel-case: ^3.0.0 + upper-case-first: ^1.1.0 + checksum: 4c539bf556572812f64a02fc6b544f3d2b51db12aed484e5162ed7f8ac2b366775d15e536091c890d71d82bdf9153128321f21574721b3a984bd85df9e519a35 + languageName: node + linkType: hard + "pascal-case@npm:^3.1.2": version: 3.1.2 resolution: "pascal-case@npm:3.1.2" @@ -38030,6 +42554,15 @@ __metadata: languageName: node linkType: hard +"path-case@npm:^2.1.0": + version: 2.1.1 + resolution: "path-case@npm:2.1.1" + dependencies: + no-case: ^2.2.0 + checksum: eb1da508c28378715cbe4ce054ee5f83a570c5010f041f4cfb439c811f7a78e36c46f26a8d59b2594c3882b53db06ef26195519c27f86523dc5d19c2e29f306d + languageName: node + linkType: hard + "path-case@npm:^3.0.4": version: 3.0.4 resolution: "path-case@npm:3.0.4" @@ -38040,6 +42573,15 @@ __metadata: languageName: node linkType: hard +"path-exists@npm:^2.0.0": + version: 2.1.0 + resolution: "path-exists@npm:2.1.0" + dependencies: + pinkie-promise: ^2.0.0 + checksum: fdb734f1d00f225f7a0033ce6d73bff6a7f76ea08936abf0e5196fa6e54a645103538cd8aedcb90d6d8c3fa3705ded0c58a4da5948ae92aa8834892c1ab44a84 + languageName: node + linkType: hard + "path-exists@npm:^3.0.0": version: 3.0.0 resolution: "path-exists@npm:3.0.0" @@ -38153,6 +42695,17 @@ __metadata: languageName: node linkType: hard +"path-type@npm:^1.0.0": + version: 1.1.0 + resolution: "path-type@npm:1.1.0" + dependencies: + graceful-fs: ^4.1.2 + pify: ^2.0.0 + pinkie-promise: ^2.0.0 + checksum: 59a4b2c0e566baf4db3021a1ed4ec09a8b36fca960a490b54a6bcefdb9987dafe772852982b6011cd09579478a96e57960a01f75fa78a794192853c9d468fc79 + languageName: node + linkType: hard + "path-type@npm:^3.0.0": version: 3.0.0 resolution: "path-type@npm:3.0.0" @@ -38379,6 +42932,13 @@ __metadata: languageName: node linkType: hard +"phenomenon@npm:^1.6.0": + version: 1.6.0 + resolution: "phenomenon@npm:1.6.0" + checksum: e05ca8223a9df42c5cee02c082103ef96a349424fec18a8478d2171060a63095e21bef394529263c64d8082aff43204a0fa1355211fd7ac2a338c2839fffbca3 + languageName: node + linkType: hard + "phin@npm:^2.9.1": version: 2.9.3 resolution: "phin@npm:2.9.3" @@ -38446,7 +43006,7 @@ __metadata: languageName: node linkType: hard -"pify@npm:^2.3.0": +"pify@npm:^2.0.0, pify@npm:^2.3.0": version: 2.3.0 resolution: "pify@npm:2.3.0" checksum: 9503aaeaf4577acc58642ad1d25c45c6d90288596238fb68f82811c08104c800e5a7870398e9f015d82b44ecbcbef3dc3d4251a1cbb582f6e5959fe09884b2ba @@ -38467,6 +43027,22 @@ __metadata: languageName: node linkType: hard +"pinkie-promise@npm:^2.0.0": + version: 2.0.1 + resolution: "pinkie-promise@npm:2.0.1" + dependencies: + pinkie: ^2.0.0 + checksum: b53a4a2e73bf56b6f421eef711e7bdcb693d6abb474d57c5c413b809f654ba5ee750c6a96dd7225052d4b96c4d053cdcb34b708a86fceed4663303abee52fcca + languageName: node + linkType: hard + +"pinkie@npm:^2.0.0": + version: 2.0.4 + resolution: "pinkie@npm:2.0.4" + checksum: b12b10afea1177595aab036fc220785488f67b4b0fc49e7a27979472592e971614fa1c728e63ad3e7eb748b4ec3c3dbd780819331dad6f7d635c77c10537b9db + languageName: node + linkType: hard + "pirates@npm:^4.0.1": version: 4.0.5 resolution: "pirates@npm:4.0.5" @@ -38519,6 +43095,15 @@ __metadata: languageName: node linkType: hard +"player.style@npm:^0.1.8": + version: 0.1.8 + resolution: "player.style@npm:0.1.8" + dependencies: + media-chrome: ~4.9.0 + checksum: 1222cdeb3059309456a421959df603b13f1b38f993528e6fa76ede3b5e033e8b22337a3843963a3a8cd59b662cca59b9d840f1ed8199e3240f838e824e28e50a + languageName: node + linkType: hard + "playwright-core@npm:1.45.3": version: 1.45.3 resolution: "playwright-core@npm:1.45.3" @@ -38528,6 +43113,15 @@ __metadata: languageName: node linkType: hard +"playwright-core@npm:^1.38.1": + version: 1.52.0 + resolution: "playwright-core@npm:1.52.0" + bin: + playwright-core: cli.js + checksum: 28aa7785afb6ef9b05e8573a0655cb7cf72a782329f51d1e152ed94273c69206588b44a9440ca4b500cd1a15e6068ec9c2746ec4666a89bcce2854d429d22dc8 + languageName: node + linkType: hard + "playwright@npm:1.45.3": version: 1.45.3 resolution: "playwright@npm:1.45.3" @@ -38906,6 +43500,26 @@ __metadata: languageName: node linkType: hard +"posthog-js@npm:^1.167.0": + version: 1.245.0 + resolution: "posthog-js@npm:1.245.0" + dependencies: + core-js: ^3.38.1 + fflate: ^0.4.8 + preact: ^10.19.3 + web-vitals: ^4.2.4 + peerDependencies: + "@rrweb/types": 2.0.0-alpha.17 + rrweb-snapshot: 2.0.0-alpha.17 + peerDependenciesMeta: + "@rrweb/types": + optional: true + rrweb-snapshot: + optional: true + checksum: 1047265e35fb89e06562480e9117aef17438b28746f50178687610fdd0c7afd71f11b843ca1faf6ceb958f5dbcf534f0bab145d15bbfb499895cbbedcdf15036 + languageName: node + linkType: hard + "posthog-node@npm:^4.2.0": version: 4.2.1 resolution: "posthog-node@npm:4.2.1" @@ -39034,6 +43648,15 @@ __metadata: languageName: node linkType: hard +"prettier@npm:3.3.3": + version: 3.3.3 + resolution: "prettier@npm:3.3.3" + bin: + prettier: bin/prettier.cjs + checksum: bc8604354805acfdde6106852d14b045bb20827ad76a5ffc2455b71a8257f94de93f17f14e463fe844808d2ccc87248364a5691488a3304f1031326e62d9276e + languageName: node + linkType: hard + "prettier@npm:^2.7.1": version: 2.8.7 resolution: "prettier@npm:2.8.7" @@ -39119,6 +43742,15 @@ __metadata: languageName: node linkType: hard +"prism-react-renderer@npm:^1.3.5": + version: 1.3.5 + resolution: "prism-react-renderer@npm:1.3.5" + peerDependencies: + react: ">=0.14.9" + checksum: c18806dcbc4c0b4fd6fd15bd06b4f7c0a6da98d93af235c3e970854994eb9b59e23315abb6cfc29e69da26d36709a47e25da85ab27fed81b6812f0a52caf6dfa + languageName: node + linkType: hard + "prisma-kysely@npm:^1.7.1": version: 1.8.0 resolution: "prisma-kysely@npm:1.8.0" @@ -39274,6 +43906,13 @@ __metadata: languageName: node linkType: hard +"property-information@npm:^6.0.0": + version: 6.5.0 + resolution: "property-information@npm:6.5.0" + checksum: 6e55664e2f64083b715011e5bafaa1e694faf36986c235b0907e95d09259cc37c38382e3cc94a4c3f56366e05336443db12c8a0f0968a8c0a1b1416eebfc8f53 + languageName: node + linkType: hard + "property-information@npm:^7.0.0": version: 7.0.0 resolution: "property-information@npm:7.0.0" @@ -39434,6 +44073,22 @@ __metadata: languageName: node linkType: hard +"pvtsutils@npm:^1.3.5, pvtsutils@npm:^1.3.6": + version: 1.3.6 + resolution: "pvtsutils@npm:1.3.6" + dependencies: + tslib: ^2.8.1 + checksum: 97b023b46d7b95bff004f8340efc465c1d995f35d7e97a2ef2e28d5e160f5ca47b48f42463b6be92b4341452a6b8c555feb2b1eb59ee90b97bd5d6fc86ffb186 + languageName: node + linkType: hard + +"pvutils@npm:^1.1.3": + version: 1.1.3 + resolution: "pvutils@npm:1.1.3" + checksum: 2ee26a9e5176c348977d6ec00d8ee80bff62f51743b1c5fe8abeeb4c5d29d9959cdfe0ce146707a9e6801bce88190fed3002d720b072dc87d031c692820b44c9 + languageName: node + linkType: hard + "q@npm:2.0.x": version: 2.0.3 resolution: "q@npm:2.0.3" @@ -39558,6 +44213,13 @@ __metadata: languageName: node linkType: hard +"quick-lru@npm:^5.1.1": + version: 5.1.1 + resolution: "quick-lru@npm:5.1.1" + checksum: a516faa25574be7947969883e6068dbe4aa19e8ef8e8e0fd96cddd6d36485e9106d85c0041a27153286b0770b381328f4072aa40d3b18a19f5f7d2b78b94b5ed + languageName: node + linkType: hard + "ramda@npm:0.29.0": version: 0.29.0 resolution: "ramda@npm:0.29.0" @@ -39715,6 +44377,17 @@ __metadata: languageName: node linkType: hard +"react-confetti@npm:^6.0.1": + version: 6.4.0 + resolution: "react-confetti@npm:6.4.0" + dependencies: + tween-functions: ^1.2.0 + peerDependencies: + react: ^16.3.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 + checksum: 70850ccbf970d961f415768f2ac81a7b4a9afad83997f137cffa04fc18be112ca2aef94f377b3353ca6bc7800290d812c8b9f9601b557980e6dd9c2a49eb5871 + languageName: node + linkType: hard + "react-date-picker@npm:^8.3.6, react-date-picker@npm:^8.4.0": version: 8.4.0 resolution: "react-date-picker@npm:8.4.0" @@ -39736,6 +44409,24 @@ __metadata: languageName: node linkType: hard +"react-datocms@npm:^5.0.3": + version: 5.0.3 + resolution: "react-datocms@npm:5.0.3" + dependencies: + "@mux/mux-player-react": "*" + datocms-listen: ^0.1.9 + datocms-structured-text-generic-html-renderer: ^2.0.1 + datocms-structured-text-utils: ^2.0.1 + react-intersection-observer: ^9.4.3 + react-string-replace: ^1.1.0 + universal-base64: ^2.1.0 + use-deep-compare-effect: ^1.6.1 + peerDependencies: + react: ">= 16.12.0" + checksum: 22c20152afb54424acfe967a2c8c525cd9f132a33374f2aba0231f16ea64dade389b096e2dac8de9ffded612bc32e9891d725609ee947639fe1cef907cb143f5 + languageName: node + linkType: hard + "react-day-picker@npm:^8.10.1": version: 8.10.1 resolution: "react-day-picker@npm:8.10.1" @@ -39746,6 +44437,18 @@ __metadata: languageName: node linkType: hard +"react-device-detect@npm:^2.2.2": + version: 2.2.3 + resolution: "react-device-detect@npm:2.2.3" + dependencies: + ua-parser-js: ^1.0.33 + peerDependencies: + react: ">= 0.14.0" + react-dom: ">= 0.14.0" + checksum: 42d9b3182b9d2495bf0d7914c9f370da51d8bdb853a3eba2acaf433894ae760386a075ba103185be825b33d42f50d85ef462087f261656d433f4c74dab23861f + languageName: node + linkType: hard + "react-devtools-core@npm:^4.19.1": version: 4.24.6 resolution: "react-devtools-core@npm:4.24.6" @@ -39825,6 +44528,16 @@ __metadata: languageName: node linkType: hard +"react-fast-marquee@npm:^1.6.4": + version: 1.6.5 + resolution: "react-fast-marquee@npm:1.6.5" + peerDependencies: + react: ">= 16.8.0 || ^18.0.0" + react-dom: ">= 16.8.0 || ^18.0.0" + checksum: 5213b10983f47a2dc27c3206144f96b37dad2f08457b19ecb9e393e4bd3c8db8c9cccf1758ceb5c4ca6d697e3715f3f90c5d806e4cb62bbbad9ece7f0e7b3caf + languageName: node + linkType: hard + "react-fit@npm:^1.4.0": version: 1.4.0 resolution: "react-fit@npm:1.4.0" @@ -39848,6 +44561,17 @@ __metadata: languageName: node linkType: hard +"react-github-btn@npm:^1.4.0": + version: 1.4.0 + resolution: "react-github-btn@npm:1.4.0" + dependencies: + github-buttons: ^2.22.0 + peerDependencies: + react: ">=16.3.0" + checksum: 33a416ad76ab4cc9238ac5cf5cfcab636bb2127c48fb30805385350fd3a3c2aa0aaeb78f6c726c52a0d3d133ca469be35d4b3d188c8e40c735c7ff458d2c8c3c + languageName: node + linkType: hard + "react-hook-form@npm:^7.43.3": version: 7.43.3 resolution: "react-hook-form@npm:7.43.3" @@ -39857,7 +44581,7 @@ __metadata: languageName: node linkType: hard -"react-hot-toast@npm:^2.5.2": +"react-hot-toast@npm:^2.3.0, react-hot-toast@npm:^2.5.2": version: 2.5.2 resolution: "react-hot-toast@npm:2.5.2" dependencies: @@ -39899,6 +44623,19 @@ __metadata: languageName: node linkType: hard +"react-intersection-observer@npm:^9.4.3": + version: 9.16.0 + resolution: "react-intersection-observer@npm:9.16.0" + peerDependencies: + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + react-dom: + optional: true + checksum: 2b6357376e5ef48913e47fe2276d5e93cc1c3d3063266fd0361fbcac46f527b50a963206e1647e178236d9384dcae2d2967ce2e99b303f1bb2a95c9f49888ad2 + languageName: node + linkType: hard + "react-is@npm:18.1.0": version: 18.1.0 resolution: "react-is@npm:18.1.0" @@ -39943,6 +44680,28 @@ __metadata: languageName: node linkType: hard +"react-markdown@npm:^9.0.1": + version: 9.1.0 + resolution: "react-markdown@npm:9.1.0" + dependencies: + "@types/hast": ^3.0.0 + "@types/mdast": ^4.0.0 + devlop: ^1.0.0 + hast-util-to-jsx-runtime: ^2.0.0 + html-url-attributes: ^3.0.0 + mdast-util-to-hast: ^13.0.0 + remark-parse: ^11.0.0 + remark-rehype: ^11.0.0 + unified: ^11.0.0 + unist-util-visit: ^5.0.0 + vfile: ^6.0.0 + peerDependencies: + "@types/react": ">=18" + react: ">=18" + checksum: d78ca3b6bea23a3383d067ad8eb0aec3a22a4500663f32773be45ad38572b5f1b823184fafc85c1a35ff6290bddea42b003dc7bdfc02cf20a9e0163ecd3ea605 + languageName: node + linkType: hard + "react-medium-image-zoom@npm:^5.2.10": version: 5.2.14 resolution: "react-medium-image-zoom@npm:5.2.14" @@ -39953,6 +44712,13 @@ __metadata: languageName: node linkType: hard +"react-merge-refs@npm:1.1.0": + version: 1.1.0 + resolution: "react-merge-refs@npm:1.1.0" + checksum: 90884352999002d868ab9f1bcfe3222fb0f2178ed629f1da7e98e5a9b02a2c96b4aa72800db92aabd69d2483211b4be57a2088e89a11a0b660e7ada744d4ddf7 + languageName: node + linkType: hard + "react-multi-email@npm:^0.5.3": version: 0.5.3 resolution: "react-multi-email@npm:0.5.3" @@ -39963,6 +44729,16 @@ __metadata: languageName: node linkType: hard +"react-parallax-tilt@npm:^1.7.226": + version: 1.7.295 + resolution: "react-parallax-tilt@npm:1.7.295" + peerDependencies: + react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 79bc32f46e1ec708b66809da0f95c35cce681d317ba0d27b7e732d63e9d2228d698f0c6c90aefc4c0bbf8dbde585651939016cdd3a30909e0c9315ff5249f4f5 + languageName: node + linkType: hard + "react-phone-input-2@npm:^2.15.1": version: 2.15.1 resolution: "react-phone-input-2@npm:2.15.1" @@ -40177,6 +44953,18 @@ __metadata: languageName: node linkType: hard +"react-resize-detector@npm:^9.1.0": + version: 9.1.1 + resolution: "react-resize-detector@npm:9.1.1" + dependencies: + lodash: ^4.17.21 + peerDependencies: + react: ^16.0.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 + checksum: 0612b4416212962e5762f25e20c7016bdce3107d745a399b44bc099a04488a704228908357845c2e3fa49bf9902077f0eeebc99cf76d42ea479a8aa79f4c5b9d + languageName: node + linkType: hard + "react-schemaorg@npm:^2.0.0": version: 2.0.0 resolution: "react-schemaorg@npm:2.0.0" @@ -40251,6 +45039,13 @@ __metadata: languageName: node linkType: hard +"react-string-replace@npm:^1.1.0": + version: 1.1.1 + resolution: "react-string-replace@npm:1.1.1" + checksum: fd5058bbb3953f4bb2daa7012630a154c6109e3e848f93925e146710cebf527647a7c1496c89ca0b5d9e4b4f8ffd5c55ca631539095039faaba0a7ba3787e7cb + languageName: node + linkType: hard + "react-style-singleton@npm:^2.1.0": version: 2.1.1 resolution: "react-style-singleton@npm:2.1.1" @@ -40355,6 +45150,32 @@ __metadata: languageName: node linkType: hard +"react-twemoji@npm:^0.3.0": + version: 0.3.0 + resolution: "react-twemoji@npm:0.3.0" + dependencies: + lodash.isequal: ^4.5.0 + prop-types: ^15.7.2 + twemoji: ^13.0.1 + peerDependencies: + react: ^16.4.2 + react-dom: ^16.4.2 + checksum: d4e56477c28c0ad65b98a062a2e9a1777b808a16c05dfa35d77d84fea26f7d1e884d2e30f95a8f14c94c31330d3d4f53a4fd0bfce917bc4be9fb21d34a05db8a + languageName: node + linkType: hard + +"react-twitter-embed@npm:^4.0.4": + version: 4.0.4 + resolution: "react-twitter-embed@npm:4.0.4" + dependencies: + scriptjs: ^2.5.9 + peerDependencies: + react: ^16.0.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 + checksum: cdb3c5bd04c4da0efa767476be47c0a3865fb6335f2a1b9e242170167b51615c38164223278cef60c77143c4bac27ba582cbea054d0af3f138104fa5ec537c4c + languageName: node + linkType: hard + "react-universal-interface@npm:^0.6.2": version: 0.6.2 resolution: "react-universal-interface@npm:0.6.2" @@ -40375,6 +45196,19 @@ __metadata: languageName: node linkType: hard +"react-use-measure@npm:^2.1.1": + version: 2.1.7 + resolution: "react-use-measure@npm:2.1.7" + peerDependencies: + react: ">=16.13" + react-dom: ">=16.13" + peerDependenciesMeta: + react-dom: + optional: true + checksum: 5f00c14cf50b0710cdbd27b63a005be20283099d2fa2723a97f3a1cf0b2daedddd67249520c21e49e95348f56428689f3229c343dcb9ed37da58f9c227d29bee + languageName: node + linkType: hard + "react-use@npm:^17.4.2": version: 17.5.0 resolution: "react-use@npm:17.5.0" @@ -40411,6 +45245,15 @@ __metadata: languageName: node linkType: hard +"react-wrap-balancer@npm:^1.0.0": + version: 1.1.1 + resolution: "react-wrap-balancer@npm:1.1.1" + peerDependencies: + react: ">=16.8.0 || ^17.0.0 || ^18" + checksum: 68d9417efa751eced4a8c9f7e3f1f43d59fbf9ecf42dfd90b7b4c33f5af855766bb21bf967c9fc8a0f09f6ca4a58071c1dd47af2c813b33b3813ebe7efcb32f2 + languageName: node + linkType: hard + "react@npm:^18, react@npm:^18.2.0": version: 18.2.0 resolution: "react@npm:18.2.0" @@ -40449,6 +45292,27 @@ __metadata: languageName: node linkType: hard +"read-pkg-up@npm:^1.0.1": + version: 1.0.1 + resolution: "read-pkg-up@npm:1.0.1" + dependencies: + find-up: ^1.0.0 + read-pkg: ^1.0.0 + checksum: d18399a0f46e2da32beb2f041edd0cda49d2f2cc30195a05c759ef3ed9b5e6e19ba1ad1bae2362bdec8c6a9f2c3d18f4d5e8c369e808b03d498d5781cb9122c7 + languageName: node + linkType: hard + +"read-pkg@npm:^1.0.0": + version: 1.1.0 + resolution: "read-pkg@npm:1.1.0" + dependencies: + load-json-file: ^1.0.0 + normalize-package-data: ^2.3.2 + path-type: ^1.0.0 + checksum: a0f5d5e32227ec8e6a028dd5c5134eab229768dcb7a5d9a41a284ed28ad4b9284fecc47383dc1593b5694f4de603a7ffaee84b738956b9b77e0999567485a366 + languageName: node + linkType: hard + "read-pkg@npm:^3.0.0": version: 3.0.0 resolution: "read-pkg@npm:3.0.0" @@ -40811,6 +45675,13 @@ __metadata: languageName: node linkType: hard +"regenerator-runtime@npm:^0.11.0": + version: 0.11.1 + resolution: "regenerator-runtime@npm:0.11.1" + checksum: 3c97bd2c7b2b3247e6f8e2147a002eb78c995323732dad5dc70fac8d8d0b758d0295e7015b90d3d444446ae77cbd24b9f9123ec3a77018e81d8999818301b4f4 + languageName: node + linkType: hard + "regenerator-runtime@npm:^0.13.3": version: 0.13.9 resolution: "regenerator-runtime@npm:0.13.9" @@ -40941,6 +45812,17 @@ __metadata: languageName: node linkType: hard +"rehype-raw@npm:^7.0.0": + version: 7.0.0 + resolution: "rehype-raw@npm:7.0.0" + dependencies: + "@types/hast": ^3.0.0 + hast-util-raw: ^9.0.0 + vfile: ^6.0.0 + checksum: f9e28dcbf4c6c7d91a97c10a840310f18ef3268aa45abb3e0428b6b191ff3c4fa8f753b910d768588a2dac5c7da7e557b4ddc3f1b6cd252e8d20cb62d60c65ed + languageName: node + linkType: hard + "rehype-recma@npm:^1.0.0": version: 1.0.0 resolution: "rehype-recma@npm:1.0.0" @@ -40984,6 +45866,19 @@ __metadata: languageName: node linkType: hard +"remark-html@npm:^14.0.1": + version: 14.0.1 + resolution: "remark-html@npm:14.0.1" + dependencies: + "@types/mdast": ^3.0.0 + hast-util-sanitize: ^4.0.0 + hast-util-to-html: ^8.0.0 + mdast-util-to-hast: ^11.0.0 + unified: ^10.0.0 + checksum: 5d689b05dc6b4f24e08ece07aabca98685949198a8b6ceacb2fbf7fba8f45f55cea5623caddfd92aaf6e6f082bc1c93797dfb82dc48a6f6e1c5263947a4779c9 + languageName: node + linkType: hard + "remark-mdx@npm:^3.0.0": version: 3.1.0 resolution: "remark-mdx@npm:3.1.0" @@ -40994,6 +45889,17 @@ __metadata: languageName: node linkType: hard +"remark-parse@npm:^10.0.0": + version: 10.0.2 + resolution: "remark-parse@npm:10.0.2" + dependencies: + "@types/mdast": ^3.0.0 + mdast-util-from-markdown: ^1.0.0 + unified: ^10.0.0 + checksum: 5041b4b44725f377e69986e02f8f072ae2222db5e7d3b6c80829756b842e811343ffc2069cae1f958a96bfa36104ab91a57d7d7e2f0cef521e210ab8c614d5c7 + languageName: node + linkType: hard + "remark-parse@npm:^11.0.0": version: 11.0.0 resolution: "remark-parse@npm:11.0.0" @@ -41019,6 +45925,17 @@ __metadata: languageName: node linkType: hard +"remark-stringify@npm:^10.0.0": + version: 10.0.3 + resolution: "remark-stringify@npm:10.0.3" + dependencies: + "@types/mdast": ^3.0.0 + mdast-util-to-markdown: ^1.0.0 + unified: ^10.0.0 + checksum: 6004e204fba672ee322c3cf0bef090e95802feedf7ef875f88b120c5e6208f1eb09c014486d5ca42a1e199c0a17ce0ed165fb248c66608458afed4bdca51dd3a + languageName: node + linkType: hard + "remark-stringify@npm:^11.0.0": version: 11.0.0 resolution: "remark-stringify@npm:11.0.0" @@ -41030,6 +45947,18 @@ __metadata: languageName: node linkType: hard +"remark@npm:^14.0.2": + version: 14.0.3 + resolution: "remark@npm:14.0.3" + dependencies: + "@types/mdast": ^3.0.0 + remark-parse: ^10.0.0 + remark-stringify: ^10.0.0 + unified: ^10.0.0 + checksum: 36eec9668c5f5e497507fa5d396c79183265a5f7dd204a608e7f031a4f61b48f7bb5cfaec212f5614ccd1266cc4a9f8d7a59a45e95aed9876986b4c453b191be + languageName: node + linkType: hard + "remark@npm:^15.0.0, remark@npm:^15.0.1": version: 15.0.1 resolution: "remark@npm:15.0.1" @@ -41042,6 +45971,13 @@ __metadata: languageName: node linkType: hard +"remeda@npm:^1.24.1": + version: 1.61.0 + resolution: "remeda@npm:1.61.0" + checksum: c080da71953ccc178334ca774f0da5c3f4664ef25ff7bc1e1f09a921ff9c264bbf8be8e0ac876c4a3f851a4d3e017cd454319a0e24610fd744bd8f9177dd4c7b + languageName: node + linkType: hard + "remedial@npm:^1.0.7": version: 1.0.8 resolution: "remedial@npm:1.0.8" @@ -41137,6 +46073,13 @@ __metadata: languageName: node linkType: hard +"require-main-filename@npm:^1.0.1": + version: 1.0.1 + resolution: "require-main-filename@npm:1.0.1" + checksum: 1fef30754da961f4e13c450c3eb60c7ae898a529c6ad6fa708a70bd2eed01564ceb299187b2899f5562804d797a059f39a5789884d0ac7b7ae1defc68fba4abf + languageName: node + linkType: hard + "require-main-filename@npm:^2.0.0": version: 2.0.0 resolution: "require-main-filename@npm:2.0.0" @@ -41158,6 +46101,13 @@ __metadata: languageName: node linkType: hard +"resolve-alpn@npm:^1.0.0": + version: 1.2.1 + resolution: "resolve-alpn@npm:1.2.1" + checksum: f558071fcb2c60b04054c99aebd572a2af97ef64128d59bef7ab73bd50d896a222a056de40ffc545b633d99b304c259ea9d0c06830d5c867c34f0bfa60b8eae0 + languageName: node + linkType: hard + "resolve-cwd@npm:^3.0.0": version: 3.0.0 resolution: "resolve-cwd@npm:3.0.0" @@ -41384,6 +46334,15 @@ __metadata: languageName: node linkType: hard +"responselike@npm:^2.0.0": + version: 2.0.1 + resolution: "responselike@npm:2.0.1" + dependencies: + lowercase-keys: ^2.0.0 + checksum: b122535466e9c97b55e69c7f18e2be0ce3823c5d47ee8de0d9c0b114aa55741c6db8bfbfce3766a94d1272e61bfb1ebf0a15e9310ac5629fbb7446a861b4fd3a + languageName: node + linkType: hard + "rest-facade@npm:^1.16.3": version: 1.16.3 resolution: "rest-facade@npm:1.16.3" @@ -41859,6 +46818,15 @@ __metadata: languageName: node linkType: hard +"rxjs@npm:^7.0.0": + version: 7.8.2 + resolution: "rxjs@npm:7.8.2" + dependencies: + tslib: ^2.1.0 + checksum: 2f233d7c832a6c255dabe0759014d7d9b1c9f1cb2f2f0d59690fd11c883c9826ea35a51740c06ab45b6ade0d9087bde9192f165cba20b6730d344b831ef80744 + languageName: node + linkType: hard + "rxjs@npm:^7.5.5": version: 7.5.5 resolution: "rxjs@npm:7.5.5" @@ -41868,6 +46836,15 @@ __metadata: languageName: node linkType: hard +"sade@npm:^1.7.3": + version: 1.8.1 + resolution: "sade@npm:1.8.1" + dependencies: + mri: ^1.1.0 + checksum: 0756e5b04c51ccdc8221ebffd1548d0ce5a783a44a0fa9017a026659b97d632913e78f7dca59f2496aa996a0be0b0c322afd87ca72ccd909406f49dbffa0f45d + languageName: node + linkType: hard + "safe-array-concat@npm:^1.0.1": version: 1.1.0 resolution: "safe-array-concat@npm:1.1.0" @@ -42097,6 +47074,13 @@ __metadata: languageName: node linkType: hard +"scriptjs@npm:^2.5.9": + version: 2.5.9 + resolution: "scriptjs@npm:2.5.9" + checksum: fc84cb6b60b6fb9aa6f1b3bc59fc94b233bd5241ed3a04233579014382b5eb60640269c87d8657902acc09f9b785ee33230c218627cea00e653564bda8f5acb6 + languageName: node + linkType: hard + "scroll-into-view-if-needed@npm:^3.1.0": version: 3.1.0 resolution: "scroll-into-view-if-needed@npm:3.1.0" @@ -42240,6 +47224,16 @@ __metadata: languageName: node linkType: hard +"sentence-case@npm:^2.1.0": + version: 2.1.1 + resolution: "sentence-case@npm:2.1.1" + dependencies: + no-case: ^2.2.0 + upper-case-first: ^1.1.2 + checksum: ce5ca48804051e056a6956ad75a1a7d833e5d8f5021a015d380a22d3cf04496d5238de2e5c876d9701a9218633052c3a65911ca1b6460d36a41ecad46e81d139 + languageName: node + linkType: hard + "sentence-case@npm:^3.0.4": version: 3.0.4 resolution: "sentence-case@npm:3.0.4" @@ -42896,6 +47890,15 @@ __metadata: languageName: node linkType: hard +"snake-case@npm:^2.1.0": + version: 2.1.0 + resolution: "snake-case@npm:2.1.0" + dependencies: + no-case: ^2.2.0 + checksum: 7e42b4841103be4dd050b2f57f5cb423d5164524c1cb3d81efda9809265a82a2d02ddf44361beae37d75a239308e6414be85fe441dc48cd70c708cb975387d10 + languageName: node + linkType: hard + "snake-case@npm:^3.0.4": version: 3.0.4 resolution: "snake-case@npm:3.0.4" @@ -42959,7 +47962,7 @@ __metadata: languageName: node linkType: hard -"sonner@npm:^1.7.4": +"sonner@npm:^1.7.2, sonner@npm:^1.7.4": version: 1.7.4 resolution: "sonner@npm:1.7.4" peerDependencies: @@ -43075,6 +48078,13 @@ __metadata: languageName: node linkType: hard +"spawn-command@npm:^0.0.2-1": + version: 0.0.2 + resolution: "spawn-command@npm:0.0.2" + checksum: e35c5d28177b4d461d33c88cc11f6f3a5079e2b132c11e1746453bbb7a0c0b8a634f07541a2a234fa4758239d88203b758def509161b651e81958894c0b4b64b + languageName: node + linkType: hard + "spawndamnit@npm:^3.0.1": version: 3.0.1 resolution: "spawndamnit@npm:3.0.1" @@ -43476,6 +48486,17 @@ __metadata: languageName: node linkType: hard +"string-width@npm:^1.0.1, string-width@npm:^1.0.2": + version: 1.0.2 + resolution: "string-width@npm:1.0.2" + dependencies: + code-point-at: ^1.0.0 + is-fullwidth-code-point: ^1.0.0 + strip-ansi: ^3.0.0 + checksum: 5c79439e95bc3bd7233a332c5f5926ab2ee90b23816ed4faa380ce3b2576d7800b0a5bb15ae88ed28737acc7ea06a518c2eef39142dd727adad0e45c776cd37e + languageName: node + linkType: hard + "string-width@npm:^5.0.0, string-width@npm:^5.0.1, string-width@npm:^5.1.2": version: 5.1.2 resolution: "string-width@npm:5.1.2" @@ -43753,6 +48774,15 @@ __metadata: languageName: node linkType: hard +"strip-ansi@npm:^3.0.0, strip-ansi@npm:^3.0.1": + version: 3.0.1 + resolution: "strip-ansi@npm:3.0.1" + dependencies: + ansi-regex: ^2.0.0 + checksum: 9b974de611ce5075c70629c00fa98c46144043db92ae17748fb780f706f7a789e9989fd10597b7c2053ae8d1513fd707816a91f1879b2f71e6ac0b6a863db465 + languageName: node + linkType: hard + "strip-ansi@npm:^7.0.1": version: 7.0.1 resolution: "strip-ansi@npm:7.0.1" @@ -43769,6 +48799,15 @@ __metadata: languageName: node linkType: hard +"strip-bom@npm:^2.0.0": + version: 2.0.0 + resolution: "strip-bom@npm:2.0.0" + dependencies: + is-utf8: ^0.2.0 + checksum: 08efb746bc67b10814cd03d79eb31bac633393a782e3f35efbc1b61b5165d3806d03332a97f362822cf0d4dd14ba2e12707fcff44fe1c870c48a063a0c9e4944 + languageName: node + linkType: hard + "strip-bom@npm:^3.0.0": version: 3.0.0 resolution: "strip-bom@npm:3.0.0" @@ -43866,6 +48905,13 @@ __metadata: languageName: node linkType: hard +"style-mod@npm:^4.0.0, style-mod@npm:^4.1.0": + version: 4.1.2 + resolution: "style-mod@npm:4.1.2" + checksum: 7c5c3e82747f9bcf5f288d8d07f50848e4630fe5ff7bfe4d94cc87d6b6a2588227cbf21b4c792ac6406e5852293300a75e710714479a5c59a06af677f0825ef8 + languageName: node + linkType: hard + "style-to-js@npm:^1.0.0": version: 1.1.16 resolution: "style-to-js@npm:1.1.16" @@ -44012,6 +49058,15 @@ __metadata: languageName: node linkType: hard +"superjson@npm:^1.9.1": + version: 1.13.3 + resolution: "superjson@npm:1.13.3" + dependencies: + copy-anything: ^3.0.2 + checksum: f5aeb010f24163cb871a4bc402d9164112201c059afc247a75b03131c274aea6eec9cf08be9e4a9465fe4961689009a011584528531d52f7cc91c077e07e5c75 + languageName: node + linkType: hard + "supertest@npm:^6.3.3": version: 6.3.4 resolution: "supertest@npm:6.3.4" @@ -44040,7 +49095,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.0, supports-color@npm:^8.1.1": version: 8.1.1 resolution: "supports-color@npm:8.1.1" dependencies: @@ -44753,6 +49808,16 @@ __metadata: languageName: node linkType: hard +"title-case@npm:^2.1.0": + version: 2.1.1 + resolution: "title-case@npm:2.1.1" + dependencies: + no-case: ^2.2.0 + upper-case: ^1.0.3 + checksum: e88ddfc4608a7fb18ed440139d9c42a5f8a50f916e07062be2aef5e2038720746ed51c4fdf9e7190d24a8cc10e6dec9773027fc44450b3a4a5e5c49b4a931fb1 + languageName: node + linkType: hard + "title-case@npm:^3.0.3": version: 3.0.3 resolution: "title-case@npm:3.0.3" @@ -44780,6 +49845,15 @@ __metadata: languageName: node linkType: hard +"tmp-promise@npm:^3.0.3": + version: 3.0.3 + resolution: "tmp-promise@npm:3.0.3" + dependencies: + tmp: ^0.2.0 + checksum: f854f5307dcee6455927ec3da9398f139897faf715c5c6dcee6d9471ae85136983ea06662eba2edf2533bdcb0fca66d16648e79e14381e30c7fb20be9c1aa62c + languageName: node + linkType: hard + "tmp@npm:0.2.1": version: 0.2.1 resolution: "tmp@npm:0.2.1" @@ -44798,6 +49872,13 @@ __metadata: languageName: node linkType: hard +"tmp@npm:^0.2.0": + version: 0.2.3 + resolution: "tmp@npm:0.2.3" + checksum: 73b5c96b6e52da7e104d9d44afb5d106bb1e16d9fa7d00dbeb9e6522e61b571fbdb165c756c62164be9a3bbe192b9b268c236d370a2a0955c7689cd2ae377b95 + languageName: node + linkType: hard + "tmpl@npm:1.0.5": version: 1.0.5 resolution: "tmpl@npm:1.0.5" @@ -44984,7 +50065,7 @@ __metadata: languageName: node linkType: hard -"ts-api-utils@npm:^2.0.1": +"ts-api-utils@npm:^2.0.1, ts-api-utils@npm:^2.1.0": version: 2.1.0 resolution: "ts-api-utils@npm:2.1.0" peerDependencies: @@ -45274,7 +50355,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:2, tslib@npm:^2.0.3, tslib@npm:^2.6.2, tslib@npm:^2.6.3, tslib@npm:^2.8.0, tslib@npm:^2.8.1": +"tslib@npm:2, tslib@npm:^2.0.3, tslib@npm:^2.6.2, tslib@npm:^2.6.3, tslib@npm:^2.7.0, tslib@npm:^2.8.0, tslib@npm:^2.8.1": version: 2.8.1 resolution: "tslib@npm:2.8.1" checksum: e4aba30e632b8c8902b47587fd13345e2827fa639e7c3121074d5ee0880723282411a8838f830b55100cbe4517672f84a2472667d355b81e8af165a55dc6203a @@ -45451,6 +50532,13 @@ __metadata: languageName: node linkType: hard +"tween-functions@npm:^1.2.0": + version: 1.2.0 + resolution: "tween-functions@npm:1.2.0" + checksum: 880708d680eff5c347ddcb9f922ad121703a91c78ce308ed309073e73a794b633eb0b80589a839365803f150515ad34c9646809ae8a0e90f09e62686eefb1ab6 + languageName: node + linkType: hard + "tweetnacl@npm:^0.14.3, tweetnacl@npm:~0.14.0": version: 0.14.5 resolution: "tweetnacl@npm:0.14.5" @@ -45458,6 +50546,25 @@ __metadata: languageName: node linkType: hard +"twemoji-parser@npm:13.1.0": + version: 13.1.0 + resolution: "twemoji-parser@npm:13.1.0" + checksum: 8046ce003c03dd92d68c2648cfbfa39c659fca4f05c10da8d14957985dc3c0c680f3ecf2de8245dc1ddffedc5b2a675f2032053e1e77cc7474301a88fe192ad3 + languageName: node + linkType: hard + +"twemoji@npm:^13.0.1": + version: 13.1.1 + resolution: "twemoji@npm:13.1.1" + dependencies: + fs-extra: ^8.0.1 + jsonfile: ^5.0.0 + twemoji-parser: 13.1.0 + universalify: ^0.1.2 + checksum: f60a8785ad6eb1a673c4f1bccb00a852ead13639db9f763c0e3e9dee6e3e67d88f1d2b481bcee34c35570ab060918b30b6ee68aa65ea1042ad35cd83212a102a + languageName: node + linkType: hard + "twilio@npm:^3.80.1": version: 3.84.1 resolution: "twilio@npm:3.84.1" @@ -45846,6 +50953,20 @@ __metadata: languageName: node linkType: hard +"typescript-eslint@npm:^8.2.0": + version: 8.32.1 + resolution: "typescript-eslint@npm:8.32.1" + dependencies: + "@typescript-eslint/eslint-plugin": 8.32.1 + "@typescript-eslint/parser": 8.32.1 + "@typescript-eslint/utils": 8.32.1 + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.9.0" + checksum: 67aae8fbaa2aa4999aa039f3b2f050e7c94590396752ebdbb580919f970fdcd02994c5e57c209f3fefb5dc8274d3b61adb9f6db05506a0a55d3e012df5fed36e + languageName: node + linkType: hard + "typescript@npm:5.3.3": version: 5.3.3 resolution: "typescript@npm:5.3.3" @@ -45856,7 +50977,7 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^4.9.4": +"typescript@npm:^4.4.4, typescript@npm:^4.9.4": version: 4.9.5 resolution: "typescript@npm:4.9.5" bin: @@ -45896,7 +51017,7 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@^4.9.4#~builtin": +"typescript@patch:typescript@^4.4.4#~builtin, typescript@patch:typescript@^4.9.4#~builtin": version: 4.9.5 resolution: "typescript@patch:typescript@npm%3A4.9.5#~builtin::version=4.9.5&hash=23ec76" bin: @@ -45933,7 +51054,7 @@ __metadata: languageName: node linkType: hard -"ua-parser-js@npm:^1.0.35": +"ua-parser-js@npm:^1.0.33, ua-parser-js@npm:^1.0.35": version: 1.0.40 resolution: "ua-parser-js@npm:1.0.40" bin: @@ -46017,6 +51138,15 @@ __metadata: languageName: node linkType: hard +"undici@npm:^5.12.0": + version: 5.29.0 + resolution: "undici@npm:5.29.0" + dependencies: + "@fastify/busboy": ^2.0.0 + checksum: a25b5462c1b6ffb974f5ffc492ffd64146a9983aad0cbda6fde65e2b22f6f1acd43f09beacc66cc47624a113bd0c684ffc60366102b6a21b038fbfafb7d75195 + languageName: node + linkType: hard + "unicode-trie@npm:^2.0.0": version: 2.0.0 resolution: "unicode-trie@npm:2.0.0" @@ -46027,6 +51157,21 @@ __metadata: languageName: node linkType: hard +"unified@npm:^10.0.0": + version: 10.1.2 + resolution: "unified@npm:10.1.2" + dependencies: + "@types/unist": ^2.0.0 + bail: ^2.0.0 + extend: ^3.0.0 + is-buffer: ^2.0.0 + is-plain-obj: ^4.0.0 + trough: ^2.0.0 + vfile: ^5.0.0 + checksum: 053e7c65ede644607f87bd625a299e4b709869d2f76ec8138569e6e886903b6988b21cd9699e471eda42bee189527be0a9dac05936f1d069a5e65d0125d5d756 + languageName: node + linkType: hard + "unified@npm:^11.0.0, unified@npm:^11.0.5": version: 11.0.5 resolution: "unified@npm:11.0.5" @@ -46105,6 +51250,31 @@ __metadata: languageName: node linkType: hard +"unist-builder@npm:^3.0.0": + version: 3.0.1 + resolution: "unist-builder@npm:3.0.1" + dependencies: + "@types/unist": ^2.0.0 + checksum: d8c42fe69aa55a3e9aed3c581007ec5371349bf9885bfa8b0b787634f8d12fa5081f066b205ded379b6d0aeaa884039bae9ebb65a3e71784005fb110aef30d0f + languageName: node + linkType: hard + +"unist-util-generated@npm:^2.0.0": + version: 2.0.1 + resolution: "unist-util-generated@npm:2.0.1" + checksum: 6221ad0571dcc9c8964d6b054f39ef6571ed59cc0ce3e88ae97ea1c70afe76b46412a5ffaa91f96814644ac8477e23fb1b477d71f8d70e625728c5258f5c0d99 + languageName: node + linkType: hard + +"unist-util-is@npm:^5.0.0": + version: 5.2.1 + resolution: "unist-util-is@npm:5.2.1" + dependencies: + "@types/unist": ^2.0.0 + checksum: ae76fdc3d35352cd92f1bedc3a0d407c3b9c42599a52ab9141fe89bdd786b51f0ec5a2ab68b93fb532e239457cae62f7e39eaa80229e1cb94875da2eafcbe5c4 + languageName: node + linkType: hard + "unist-util-is@npm:^6.0.0": version: 6.0.0 resolution: "unist-util-is@npm:6.0.0" @@ -46123,6 +51293,15 @@ __metadata: languageName: node linkType: hard +"unist-util-position@npm:^4.0.0": + version: 4.0.4 + resolution: "unist-util-position@npm:4.0.4" + dependencies: + "@types/unist": ^2.0.0 + checksum: e7487b6cec9365299695e3379ded270a1717074fa11fd2407c9b934fb08db6fe1d9077ddeaf877ecf1813665f8ccded5171693d3d9a7a01a125ec5cdd5e88691 + languageName: node + linkType: hard + "unist-util-position@npm:^5.0.0": version: 5.0.0 resolution: "unist-util-position@npm:5.0.0" @@ -46132,6 +51311,15 @@ __metadata: languageName: node linkType: hard +"unist-util-stringify-position@npm:^3.0.0": + version: 3.0.3 + resolution: "unist-util-stringify-position@npm:3.0.3" + dependencies: + "@types/unist": ^2.0.0 + checksum: dbd66c15183607ca942a2b1b7a9f6a5996f91c0d30cf8966fb88955a02349d9eefd3974e9010ee67e71175d784c5a9fea915b0aa0b0df99dcb921b95c4c9e124 + languageName: node + linkType: hard + "unist-util-stringify-position@npm:^4.0.0": version: 4.0.0 resolution: "unist-util-stringify-position@npm:4.0.0" @@ -46141,6 +51329,16 @@ __metadata: languageName: node linkType: hard +"unist-util-visit-parents@npm:^5.1.1": + version: 5.1.3 + resolution: "unist-util-visit-parents@npm:5.1.3" + dependencies: + "@types/unist": ^2.0.0 + unist-util-is: ^5.0.0 + checksum: 8ecada5978994f846b64658cf13b4092cd78dea39e1ba2f5090a5de842ba4852712c02351a8ae95250c64f864635e7b02aedf3b4a093552bb30cf1bd160efbaa + languageName: node + linkType: hard + "unist-util-visit-parents@npm:^6.0.0": version: 6.0.1 resolution: "unist-util-visit-parents@npm:6.0.1" @@ -46151,6 +51349,17 @@ __metadata: languageName: node linkType: hard +"unist-util-visit@npm:^4.0.0": + version: 4.1.2 + resolution: "unist-util-visit@npm:4.1.2" + dependencies: + "@types/unist": ^2.0.0 + unist-util-is: ^5.0.0 + unist-util-visit-parents: ^5.1.1 + checksum: 95a34e3f7b5b2d4b68fd722b6229972099eb97b6df18913eda44a5c11df8b1e27efe7206dd7b88c4ed244a48c474a5b2e2629ab79558ff9eb936840295549cee + languageName: node + linkType: hard + "unist-util-visit@npm:^5.0.0": version: 5.0.0 resolution: "unist-util-visit@npm:5.0.0" @@ -46162,7 +51371,14 @@ __metadata: languageName: node linkType: hard -"universalify@npm:^0.1.0": +"universal-base64@npm:^2.1.0": + version: 2.1.0 + resolution: "universal-base64@npm:2.1.0" + checksum: 03bc6f7de04aee83038c26038cd2639f470fd9665f99b3613934c4ccde5d59047d45e34ea4c843ac582da83ea1b050bf8defba8eb390e566f0be314646ddbc9b + languageName: node + linkType: hard + +"universalify@npm:^0.1.0, universalify@npm:^0.1.2": version: 0.1.2 resolution: "universalify@npm:0.1.2" checksum: 40cdc60f6e61070fe658ca36016a8f4ec216b29bf04a55dce14e3710cc84c7448538ef4dad3728d0bfe29975ccd7bfb5f414c45e7b78883567fb31b246f02dff @@ -46274,7 +51490,7 @@ __metadata: languageName: node linkType: hard -"upper-case-first@npm:^1.1.0": +"upper-case-first@npm:^1.1.0, upper-case-first@npm:^1.1.2": version: 1.1.2 resolution: "upper-case-first@npm:1.1.2" dependencies: @@ -46292,7 +51508,7 @@ __metadata: languageName: node linkType: hard -"upper-case@npm:^1.0.3, upper-case@npm:^1.1.0, upper-case@npm:^1.1.1": +"upper-case@npm:^1.0.3, upper-case@npm:^1.1.0, upper-case@npm:^1.1.1, upper-case@npm:^1.1.3": version: 1.1.3 resolution: "upper-case@npm:1.1.3" checksum: 991c845de75fa56e5ad983f15e58494dd77b77cadd79d273cc11e8da400067e9881ae1a52b312aed79b3d754496e2e0712e08d22eae799e35c7f9ba6f3d8a85d @@ -46394,6 +51610,18 @@ __metadata: languageName: node linkType: hard +"use-deep-compare-effect@npm:^1.6.1": + version: 1.8.1 + resolution: "use-deep-compare-effect@npm:1.8.1" + dependencies: + "@babel/runtime": ^7.12.5 + dequal: ^2.0.2 + peerDependencies: + react: ">=16.13" + checksum: 2b9b6291df3f772f44d259b352e5d998963ccee0db2efeb76bb05525d928064aeeb69bb0dee5a5e428fea7cf3db67c097a770ebd30caa080662b565f6ef02b2e + languageName: node + linkType: hard + "use-isomorphic-layout-effect@npm:^1.1.2": version: 1.1.2 resolution: "use-isomorphic-layout-effect@npm:1.1.2" @@ -46471,6 +51699,15 @@ __metadata: languageName: node linkType: hard +"use-sync-external-store@npm:^1.2.0": + version: 1.5.0 + resolution: "use-sync-external-store@npm:1.5.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 5e639c9273200adb6985b512c96a3a02c458bc8ca1a72e91da9cdc6426144fc6538dca434b0f99b28fb1baabc82e1c383ba7900b25ccdcb43758fb058dc66c34 + languageName: node + linkType: hard + "utif@npm:^2.0.1": version: 2.0.1 resolution: "utif@npm:2.0.1" @@ -46552,6 +51789,20 @@ __metadata: languageName: node linkType: hard +"uvu@npm:^0.5.0": + version: 0.5.6 + resolution: "uvu@npm:0.5.6" + dependencies: + dequal: ^2.0.0 + diff: ^5.0.0 + kleur: ^4.0.3 + sade: ^1.7.3 + bin: + uvu: bin.js + checksum: 09460a37975627de9fcad396e5078fb844d01aaf64a6399ebfcfd9e55f1c2037539b47611e8631f89be07656962af0cf48c334993db82b9ae9c3d25ce3862168 + languageName: node + linkType: hard + "v8-compile-cache-lib@npm:^3.0.1": version: 3.0.1 resolution: "v8-compile-cache-lib@npm:3.0.1" @@ -46605,6 +51856,36 @@ __metadata: languageName: node linkType: hard +"vfile-location@npm:^4.0.0": + version: 4.1.0 + resolution: "vfile-location@npm:4.1.0" + dependencies: + "@types/unist": ^2.0.0 + vfile: ^5.0.0 + checksum: c894e8e5224170d1f85288f4a1d1ebcee0780823ea2b49d881648ab360ebf01b37ecb09b1c4439a75f9a51f31a9f9742cd045e987763e367c352a1ef7c50d446 + languageName: node + linkType: hard + +"vfile-location@npm:^5.0.0": + version: 5.0.3 + resolution: "vfile-location@npm:5.0.3" + dependencies: + "@types/unist": ^3.0.0 + vfile: ^6.0.0 + checksum: bfb3821b6981b6e9aa369bed67a40090b800562064ea312e84437762562df3225a0ca922695389cc0ef1e115f19476c363f53e3ed44dec17c50678b7670b5f2b + languageName: node + linkType: hard + +"vfile-message@npm:^3.0.0": + version: 3.1.4 + resolution: "vfile-message@npm:3.1.4" + dependencies: + "@types/unist": ^2.0.0 + unist-util-stringify-position: ^3.0.0 + checksum: d0ee7da1973ad76513c274e7912adbed4d08d180eaa34e6bd40bc82459f4b7bc50fcaff41556135e3339995575eac5f6f709aba9332b80f775618ea4880a1367 + languageName: node + linkType: hard + "vfile-message@npm:^4.0.0": version: 4.0.2 resolution: "vfile-message@npm:4.0.2" @@ -46615,6 +51896,18 @@ __metadata: languageName: node linkType: hard +"vfile@npm:^5.0.0": + version: 5.3.7 + resolution: "vfile@npm:5.3.7" + dependencies: + "@types/unist": ^2.0.0 + is-buffer: ^2.0.0 + unist-util-stringify-position: ^3.0.0 + vfile-message: ^3.0.0 + checksum: 642cce703afc186dbe7cabf698dc954c70146e853491086f5da39e1ce850676fc96b169fcf7898aa3ff245e9313aeec40da93acd1e1fcc0c146dc4f6308b4ef9 + languageName: node + linkType: hard + "vfile@npm:^6.0.0": version: 6.0.3 resolution: "vfile@npm:6.0.3" @@ -47103,6 +52396,13 @@ __metadata: languageName: node linkType: hard +"w3c-keyname@npm:^2.2.4": + version: 2.2.8 + resolution: "w3c-keyname@npm:2.2.8" + checksum: 95bafa4c04fa2f685a86ca1000069c1ec43ace1f8776c10f226a73296caeddd83f893db885c2c220ebeb6c52d424e3b54d7c0c1e963bbf204038ff1a944fbb07 + languageName: node + linkType: hard + "w3c-xmlserializer@npm:^4.0.0": version: 4.0.0 resolution: "w3c-xmlserializer@npm:4.0.0" @@ -47121,6 +52421,21 @@ __metadata: languageName: node linkType: hard +"wait-on@npm:^7.0.1": + version: 7.2.0 + resolution: "wait-on@npm:7.2.0" + dependencies: + axios: ^1.6.1 + joi: ^17.11.0 + lodash: ^4.17.21 + minimist: ^1.2.8 + rxjs: ^7.8.1 + bin: + wait-on: bin/wait-on + checksum: 69ec1432bb4479363fdd71f2f3f501a98aa356a562781108a4a89ef8fdf1e3d5fd0c2fd56c4cc5902abbb662065f1f22d4e436a1e6fc9331ce8b575eb023325e + languageName: node + linkType: hard + "walker@npm:^1.0.8": version: 1.0.8 resolution: "walker@npm:1.0.8" @@ -47130,6 +52445,15 @@ __metadata: languageName: node linkType: hard +"warning@npm:^4.0.3": + version: 4.0.3 + resolution: "warning@npm:4.0.3" + dependencies: + loose-envify: ^1.0.0 + checksum: 4f2cb6a9575e4faf71ddad9ad1ae7a00d0a75d24521c193fa464f30e6b04027bd97aa5d9546b0e13d3a150ab402eda216d59c1d0f2d6ca60124d96cd40dfa35c + languageName: node + linkType: hard + "watchpack@npm:2.4.0": version: 2.4.0 resolution: "watchpack@npm:2.4.0" @@ -47166,6 +52490,13 @@ __metadata: languageName: node linkType: hard +"web-namespaces@npm:^2.0.0": + version: 2.0.1 + resolution: "web-namespaces@npm:2.0.1" + checksum: b6d9f02f1a43d0ef0848a812d89c83801d5bbad57d8bb61f02eb6d7eb794c3736f6cc2e1191664bb26136594c8218ac609f4069722c6f56d9fc2d808fa9271c6 + languageName: node + linkType: hard + "web-push@npm:^3.6.7": version: 3.6.7 resolution: "web-push@npm:3.6.7" @@ -47181,20 +52512,40 @@ __metadata: languageName: node linkType: hard -"web-streams-polyfill@npm:^3.0.3": +"web-streams-polyfill@npm:4.0.0-beta.3": + version: 4.0.0-beta.3 + resolution: "web-streams-polyfill@npm:4.0.0-beta.3" + checksum: dfec1fbf52b9140e4183a941e380487b6c3d5d3838dd1259be81506c1c9f2abfcf5aeb670aeeecfd9dff4271a6d8fef931b193c7bedfb42542a3b05ff36c0d16 + languageName: node + linkType: hard + +"web-streams-polyfill@npm:^3.0.3, web-streams-polyfill@npm:^3.2.0": version: 3.3.3 resolution: "web-streams-polyfill@npm:3.3.3" checksum: 21ab5ea08a730a2ef8023736afe16713b4f2023ec1c7085c16c8e293ee17ed085dff63a0ad8722da30c99c4ccbd4ccd1b2e79c861829f7ef2963d7de7004c2cb languageName: node linkType: hard -"web-vitals@npm:^4.2.0": +"web-vitals@npm:^4.2.0, web-vitals@npm:^4.2.4": version: 4.2.4 resolution: "web-vitals@npm:4.2.4" checksum: 5b3ffe1db33f23aebf8cc8560ac574401a95939baafde5841835c1bb1c01f9a2478442f319f77aa0d7914739fc2f6b020c5d5b128c16c5c77ca6be2f9dfbbde6 languageName: node linkType: hard +"webcrypto-core@npm:^1.8.0": + version: 1.8.1 + resolution: "webcrypto-core@npm:1.8.1" + dependencies: + "@peculiar/asn1-schema": ^2.3.13 + "@peculiar/json-schema": ^1.1.12 + asn1js: ^3.0.5 + pvtsutils: ^1.3.5 + tslib: ^2.7.0 + checksum: 5f8d862991bf9b36bfec53a317ceec7de95010c6d16092d2ba62b988acdfca9adfd254ef388036e610c66d0aad506d3f344574f62e06501a8c72ef961c8996b2 + languageName: node + linkType: hard + "webidl-conversions@npm:^3.0.0": version: 3.0.1 resolution: "webidl-conversions@npm:3.0.1" @@ -47462,6 +52813,13 @@ __metadata: languageName: node linkType: hard +"which-module@npm:^1.0.0": + version: 1.0.0 + resolution: "which-module@npm:1.0.0" + checksum: 98434f7deb36350cb543c1f15612188541737e1f12d39b23b1c371dff5cf4aa4746210f2bdec202d5fe9da8682adaf8e3f7c44c520687d30948cfc59d5534edb + languageName: node + linkType: hard + "which-module@npm:^2.0.0": version: 2.0.1 resolution: "which-module@npm:2.0.1" @@ -47573,6 +52931,15 @@ __metadata: languageName: node linkType: hard +"window-size@npm:^0.2.0": + version: 0.2.0 + resolution: "window-size@npm:0.2.0" + bin: + window-size: cli.js + checksum: a85e2acf156cfa194301294809867bdadd8a48ee5d972d9fa8e3e1b3420a1d0201b13ac8eb0348a0d14bbf2c3316565b6a749749c2384c5d286caf8a064c4f90 + languageName: node + linkType: hard + "winston-transport@npm:^4.5.0, winston-transport@npm:^4.9.0": version: 4.9.0 resolution: "winston-transport@npm:4.9.0" @@ -47653,6 +53020,16 @@ __metadata: languageName: node linkType: hard +"wrap-ansi@npm:^2.0.0": + version: 2.1.0 + resolution: "wrap-ansi@npm:2.1.0" + dependencies: + string-width: ^1.0.1 + strip-ansi: ^3.0.1 + checksum: 2dacd4b3636f7a53ee13d4d0fe7fa2ed9ad81e9967e17231924ea88a286ec4619a78288de8d41881ee483f4449ab2c0287cde8154ba1bd0126c10271101b2ee3 + languageName: node + linkType: hard + "wrap-ansi@npm:^6.0.1, wrap-ansi@npm:^6.2.0": version: 6.2.0 resolution: "wrap-ansi@npm:6.2.0" @@ -47792,7 +53169,7 @@ __metadata: languageName: node linkType: hard -"xml2js@npm:0.6.2, xml2js@npm:^0.6.2": +"xml2js@npm:0.6.2, xml2js@npm:^0.6.0, xml2js@npm:^0.6.2": version: 0.6.2 resolution: "xml2js@npm:0.6.2" dependencies: @@ -47904,6 +53281,13 @@ __metadata: languageName: node linkType: hard +"y18n@npm:^3.2.1": + version: 3.2.2 + resolution: "y18n@npm:3.2.2" + checksum: 6154fd7544f8bbf5b18cdf77692ed88d389be49c87238ecb4e0d6a5276446cd2a5c29cc4bdbdddfc7e4e498b08df9d7e38df4a1453cf75eecfead392246ea74a + languageName: node + linkType: hard + "y18n@npm:^4.0.0": version: 4.0.3 resolution: "y18n@npm:4.0.3" @@ -48000,6 +53384,16 @@ __metadata: languageName: node linkType: hard +"yargs-parser@npm:^3.2.0": + version: 3.2.0 + resolution: "yargs-parser@npm:3.2.0" + dependencies: + camelcase: ^3.0.0 + lodash.assign: ^4.1.0 + checksum: d86fd69816a28a617f4cad21f7bfe7f7c931b16d063c73449cd914db409b8d5981a0f29f9e2a05014a7229164aa47336adf5a8856fa9870ab892346d29138e9a + languageName: node + linkType: hard + "yargs@npm:^15.3.1": version: 15.4.1 resolution: "yargs@npm:15.4.1" @@ -48049,6 +53443,28 @@ __metadata: languageName: node linkType: hard +"yargs@npm:^5.0.0": + version: 5.0.0 + resolution: "yargs@npm:5.0.0" + dependencies: + cliui: ^3.2.0 + decamelize: ^1.1.1 + get-caller-file: ^1.0.1 + lodash.assign: ^4.2.0 + os-locale: ^1.4.0 + read-pkg-up: ^1.0.1 + require-directory: ^2.1.1 + require-main-filename: ^1.0.1 + set-blocking: ^2.0.0 + string-width: ^1.0.2 + which-module: ^1.0.0 + window-size: ^0.2.0 + y18n: ^3.2.1 + yargs-parser: ^3.2.0 + checksum: 478e9c8562c5cf5b9c2efc7c917e0b00c489cc50153d5d911ab68767c2cfddaf0b5bd4e04d6fefc00cb1d8f6263eab1d73df79a24d650ba95f5d45c819a1585a + languageName: node + linkType: hard + "yarn@npm:^1.22.18": version: 1.22.19 resolution: "yarn@npm:1.22.19"