[];
})[] = [
{
diff --git a/apps/web/pages/[user]/[type]/embed.tsx b/apps/web/pages/[user]/[type]/embed.tsx
index 4b701ce151..31d34e03f4 100644
--- a/apps/web/pages/[user]/[type]/embed.tsx
+++ b/apps/web/pages/[user]/[type]/embed.tsx
@@ -1,4 +1,4 @@
-import { GetStaticPropsContext } from "next";
+import type { GetStaticPropsContext } from "next";
import { getStaticProps as _getStaticProps } from "../[type]";
diff --git a/apps/web/pages/[user]/book.tsx b/apps/web/pages/[user]/book.tsx
index fe382dc389..6886395074 100644
--- a/apps/web/pages/[user]/book.tsx
+++ b/apps/web/pages/[user]/book.tsx
@@ -1,6 +1,7 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
-import { LocationObject, privacyFilteredLocations } from "@calcom/app-store/locations";
+import type { LocationObject } from "@calcom/app-store/locations";
+import { privacyFilteredLocations } from "@calcom/app-store/locations";
import { getAppFromSlug } from "@calcom/app-store/utils";
import { getBookingFieldsWithSystemFields } from "@calcom/features/bookings/lib/getBookingFields";
import { parseRecurringEvent } from "@calcom/lib";
@@ -20,8 +21,9 @@ import {
} from "@calcom/prisma/zod-utils";
import { asStringOrNull, asStringOrThrow } from "@lib/asStringOrNull";
-import getBooking, { GetBookingType } from "@lib/getBooking";
-import { inferSSRProps } from "@lib/types/inferSSRProps";
+import type { GetBookingType } from "@lib/getBooking";
+import getBooking from "@lib/getBooking";
+import type { inferSSRProps } from "@lib/types/inferSSRProps";
import BookingPage from "@components/booking/pages/BookingPage";
diff --git a/apps/web/pages/[user]/calendar-cache/[month].tsx b/apps/web/pages/[user]/calendar-cache/[month].tsx
index 423eedc054..d1a8bfbf54 100644
--- a/apps/web/pages/[user]/calendar-cache/[month].tsx
+++ b/apps/web/pages/[user]/calendar-cache/[month].tsx
@@ -3,7 +3,7 @@
* caching system that NextJS uses SSG pages.
* TODO: Redirect to user profile on browser
*/
-import { GetStaticPaths, GetStaticProps } from "next";
+import type { GetStaticPaths, GetStaticProps } from "next";
import { z } from "zod";
import { getCachedResults } from "@calcom/core";
diff --git a/apps/web/pages/_app.tsx b/apps/web/pages/_app.tsx
index c83f7c88b4..a086947b01 100644
--- a/apps/web/pages/_app.tsx
+++ b/apps/web/pages/_app.tsx
@@ -6,7 +6,8 @@ import "@calcom/embed-core/src/embed-iframe";
import LicenseRequired from "@calcom/features/ee/common/components/LicenseRequired";
import { trpc } from "@calcom/trpc/react";
-import AppProviders, { AppProps } from "@lib/app-providers";
+import type { AppProps } from "@lib/app-providers";
+import AppProviders from "@lib/app-providers";
import { seoConfig } from "@lib/config/next-seo.config";
import I18nLanguageHandler from "@components/I18nLanguageHandler";
diff --git a/apps/web/pages/_document.tsx b/apps/web/pages/_document.tsx
index c5a42edc03..eddbff9943 100644
--- a/apps/web/pages/_document.tsx
+++ b/apps/web/pages/_document.tsx
@@ -1,4 +1,5 @@
-import Document, { DocumentContext, Head, Html, Main, NextScript, DocumentProps } from "next/document";
+import type { DocumentContext, DocumentProps } from "next/document";
+import Document, { Head, Html, Main, NextScript } from "next/document";
import Script from "next/script";
import { z } from "zod";
diff --git a/apps/web/pages/_error.tsx b/apps/web/pages/_error.tsx
index bc98d49d22..528294e7a5 100644
--- a/apps/web/pages/_error.tsx
+++ b/apps/web/pages/_error.tsx
@@ -3,8 +3,9 @@
* @link https://nextjs.org/docs/advanced-features/custom-error-page
*/
import * as Sentry from "@sentry/nextjs";
-import { NextPage, NextPageContext } from "next";
-import NextError, { ErrorProps } from "next/error";
+import type { NextPage, NextPageContext } from "next";
+import type { ErrorProps } from "next/error";
+import NextError from "next/error";
import React from "react";
import { getErrorFromUnknown } from "@calcom/lib/errors";
diff --git a/apps/web/pages/api/auth/[...nextauth].tsx b/apps/web/pages/api/auth/[...nextauth].tsx
index 54976e8202..4030bdbd6d 100644
--- a/apps/web/pages/api/auth/[...nextauth].tsx
+++ b/apps/web/pages/api/auth/[...nextauth].tsx
@@ -1,13 +1,16 @@
-import { IdentityProvider, UserPermissionRole } from "@prisma/client";
+import type { UserPermissionRole } from "@prisma/client";
+import { IdentityProvider } from "@prisma/client";
import { readFileSync } from "fs";
import Handlebars from "handlebars";
-import NextAuth, { Session } from "next-auth";
+import type { Session } from "next-auth";
+import NextAuth from "next-auth";
import { encode } from "next-auth/jwt";
-import { Provider } from "next-auth/providers";
+import type { Provider } from "next-auth/providers";
import CredentialsProvider from "next-auth/providers/credentials";
import EmailProvider from "next-auth/providers/email";
import GoogleProvider from "next-auth/providers/google";
-import nodemailer, { TransportOptions } from "nodemailer";
+import type { TransportOptions } from "nodemailer";
+import nodemailer from "nodemailer";
import { authenticator } from "otplib";
import path from "path";
diff --git a/apps/web/pages/api/auth/forgot-password.ts b/apps/web/pages/api/auth/forgot-password.ts
index 2e31ebace5..c9bd079797 100644
--- a/apps/web/pages/api/auth/forgot-password.ts
+++ b/apps/web/pages/api/auth/forgot-password.ts
@@ -1,5 +1,5 @@
-import { ResetPasswordRequest } from "@prisma/client";
-import { NextApiRequest, NextApiResponse } from "next";
+import type { ResetPasswordRequest } from "@prisma/client";
+import type { NextApiRequest, NextApiResponse } from "next";
import dayjs from "@calcom/dayjs";
import { sendPasswordResetEmail } from "@calcom/emails";
diff --git a/apps/web/pages/api/auth/oidc.ts b/apps/web/pages/api/auth/oidc.ts
index 1cd2af2c69..f8cd8799eb 100644
--- a/apps/web/pages/api/auth/oidc.ts
+++ b/apps/web/pages/api/auth/oidc.ts
@@ -1,4 +1,4 @@
-import { NextApiRequest, NextApiResponse } from "next";
+import type { NextApiRequest, NextApiResponse } from "next";
import jackson from "@calcom/features/ee/sso/lib/jackson";
diff --git a/apps/web/pages/api/auth/reset-password.ts b/apps/web/pages/api/auth/reset-password.ts
index 16db8d1fa0..56504a505b 100644
--- a/apps/web/pages/api/auth/reset-password.ts
+++ b/apps/web/pages/api/auth/reset-password.ts
@@ -1,4 +1,4 @@
-import { NextApiRequest, NextApiResponse } from "next";
+import type { NextApiRequest, NextApiResponse } from "next";
import prisma from "@calcom/prisma";
diff --git a/apps/web/pages/api/auth/saml/authorize.ts b/apps/web/pages/api/auth/saml/authorize.ts
index 7dd9acd865..8d42bec42e 100644
--- a/apps/web/pages/api/auth/saml/authorize.ts
+++ b/apps/web/pages/api/auth/saml/authorize.ts
@@ -1,9 +1,9 @@
-import { OAuthReq } from "@boxyhq/saml-jackson";
-import { NextApiRequest, NextApiResponse } from "next";
+import type { OAuthReq } from "@boxyhq/saml-jackson";
+import type { NextApiRequest, NextApiResponse } from "next";
import jackson from "@calcom/features/ee/sso/lib/jackson";
-import { HttpError } from "@lib/core/http/error";
+import type { HttpError } from "@lib/core/http/error";
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
const { oauthController } = await jackson();
diff --git a/apps/web/pages/api/auth/saml/callback.ts b/apps/web/pages/api/auth/saml/callback.ts
index f7c91928ff..fd51d97314 100644
--- a/apps/web/pages/api/auth/saml/callback.ts
+++ b/apps/web/pages/api/auth/saml/callback.ts
@@ -1,4 +1,4 @@
-import { NextApiRequest, NextApiResponse } from "next";
+import type { NextApiRequest, NextApiResponse } from "next";
import jackson from "@calcom/features/ee/sso/lib/jackson";
import { defaultHandler, defaultResponder } from "@calcom/lib/server";
diff --git a/apps/web/pages/api/auth/saml/token.ts b/apps/web/pages/api/auth/saml/token.ts
index 703a010850..dce000f484 100644
--- a/apps/web/pages/api/auth/saml/token.ts
+++ b/apps/web/pages/api/auth/saml/token.ts
@@ -1,4 +1,4 @@
-import { NextApiRequest } from "next";
+import type { NextApiRequest } from "next";
import jackson from "@calcom/features/ee/sso/lib/jackson";
import { defaultHandler, defaultResponder } from "@calcom/lib/server";
diff --git a/apps/web/pages/api/auth/saml/userinfo.ts b/apps/web/pages/api/auth/saml/userinfo.ts
index e408357a37..b2caa1691f 100644
--- a/apps/web/pages/api/auth/saml/userinfo.ts
+++ b/apps/web/pages/api/auth/saml/userinfo.ts
@@ -1,4 +1,4 @@
-import { NextApiRequest } from "next";
+import type { NextApiRequest } from "next";
import z from "zod";
import jackson from "@calcom/features/ee/sso/lib/jackson";
diff --git a/apps/web/pages/api/auth/setup.ts b/apps/web/pages/api/auth/setup.ts
index c44caec059..fc5186bd29 100644
--- a/apps/web/pages/api/auth/setup.ts
+++ b/apps/web/pages/api/auth/setup.ts
@@ -1,5 +1,5 @@
import { IdentityProvider } from "@prisma/client";
-import { NextApiRequest } from "next";
+import type { NextApiRequest } from "next";
import z from "zod";
import { isPasswordValid } from "@calcom/lib/auth";
diff --git a/apps/web/pages/api/auth/signup.ts b/apps/web/pages/api/auth/signup.ts
index a838f0d47d..5d098a772f 100644
--- a/apps/web/pages/api/auth/signup.ts
+++ b/apps/web/pages/api/auth/signup.ts
@@ -1,5 +1,5 @@
import { IdentityProvider } from "@prisma/client";
-import { NextApiRequest, NextApiResponse } from "next";
+import type { NextApiRequest, NextApiResponse } from "next";
import { hashPassword } from "@calcom/lib/auth";
import slugify from "@calcom/lib/slugify";
diff --git a/apps/web/pages/api/auth/two-factor/totp/disable.ts b/apps/web/pages/api/auth/two-factor/totp/disable.ts
index 02e83a66f9..7dc0557225 100644
--- a/apps/web/pages/api/auth/two-factor/totp/disable.ts
+++ b/apps/web/pages/api/auth/two-factor/totp/disable.ts
@@ -1,4 +1,4 @@
-import { NextApiRequest, NextApiResponse } from "next";
+import type { NextApiRequest, NextApiResponse } from "next";
import { authenticator } from "otplib";
import { symmetricDecrypt } from "@calcom/lib/crypto";
diff --git a/apps/web/pages/api/auth/two-factor/totp/enable.ts b/apps/web/pages/api/auth/two-factor/totp/enable.ts
index 5a580a39cc..6f95a4b8a9 100644
--- a/apps/web/pages/api/auth/two-factor/totp/enable.ts
+++ b/apps/web/pages/api/auth/two-factor/totp/enable.ts
@@ -1,4 +1,4 @@
-import { NextApiRequest, NextApiResponse } from "next";
+import type { NextApiRequest, NextApiResponse } from "next";
import { authenticator } from "otplib";
import { symmetricDecrypt } from "@calcom/lib/crypto";
diff --git a/apps/web/pages/api/auth/two-factor/totp/setup.ts b/apps/web/pages/api/auth/two-factor/totp/setup.ts
index 565c5c3391..e40f5622f8 100644
--- a/apps/web/pages/api/auth/two-factor/totp/setup.ts
+++ b/apps/web/pages/api/auth/two-factor/totp/setup.ts
@@ -1,5 +1,5 @@
import { IdentityProvider } from "@prisma/client";
-import { NextApiRequest, NextApiResponse } from "next";
+import type { NextApiRequest, NextApiResponse } from "next";
import { authenticator } from "otplib";
import qrcode from "qrcode";
diff --git a/apps/web/pages/api/email.ts b/apps/web/pages/api/email.ts
index 8681aa3d65..e353dfa4c6 100644
--- a/apps/web/pages/api/email.ts
+++ b/apps/web/pages/api/email.ts
@@ -1,4 +1,4 @@
-import { NextApiRequest, NextApiResponse } from "next";
+import type { NextApiRequest, NextApiResponse } from "next";
import { renderEmail } from "@calcom/emails";
import { getTranslation } from "@calcom/lib/server/i18n";
diff --git a/apps/web/pages/api/integrations/[...args].ts b/apps/web/pages/api/integrations/[...args].ts
index b1598dfd3a..f72574cac6 100644
--- a/apps/web/pages/api/integrations/[...args].ts
+++ b/apps/web/pages/api/integrations/[...args].ts
@@ -1,4 +1,4 @@
-import { NextApiRequest, NextApiResponse } from "next";
+import type { NextApiRequest, NextApiResponse } from "next";
import type { Session } from "next-auth";
import getInstalledAppPath from "@calcom/app-store/_utils/getInstalledAppPath";
diff --git a/apps/web/pages/api/revalidate-calendar-cache/[username].ts b/apps/web/pages/api/revalidate-calendar-cache/[username].ts
index 1c37729466..3b42b64b46 100644
--- a/apps/web/pages/api/revalidate-calendar-cache/[username].ts
+++ b/apps/web/pages/api/revalidate-calendar-cache/[username].ts
@@ -1,4 +1,4 @@
-import { NextApiRequest, NextApiResponse } from "next";
+import type { NextApiRequest, NextApiResponse } from "next";
import { z } from "zod";
import { revalidateCalendarCache } from "@calcom/lib/server/revalidateCalendarCache";
diff --git a/apps/web/pages/api/social/og/image.tsx b/apps/web/pages/api/social/og/image.tsx
index c82f97fc5e..6c71d8256a 100644
--- a/apps/web/pages/api/social/og/image.tsx
+++ b/apps/web/pages/api/social/og/image.tsx
@@ -1,5 +1,5 @@
import { ImageResponse } from "@vercel/og";
-import { NextApiRequest } from "next";
+import type { NextApiRequest } from "next";
import type { SatoriOptions } from "satori";
import { z } from "zod";
diff --git a/apps/web/pages/apps/[slug]/[...pages].tsx b/apps/web/pages/apps/[slug]/[...pages].tsx
index 80c3fd0f6e..2c1729009a 100644
--- a/apps/web/pages/apps/[slug]/[...pages].tsx
+++ b/apps/web/pages/apps/[slug]/[...pages].tsx
@@ -1,12 +1,12 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { useRouter } from "next/router";
import RoutingFormsRoutingConfig from "@calcom/app-store/ee/routing-forms/pages/app-routing.config";
import TypeformRoutingConfig from "@calcom/app-store/typeform/pages/app-routing.config";
import prisma from "@calcom/prisma";
-import { AppGetServerSideProps } from "@calcom/types/AppGetServerSideProps";
+import type { AppGetServerSideProps } from "@calcom/types/AppGetServerSideProps";
-import { AppProps } from "@lib/app-providers";
+import type { AppProps } from "@lib/app-providers";
import { getSession } from "@lib/auth";
import { ssrInit } from "@server/lib/ssr";
diff --git a/apps/web/pages/apps/[slug]/index.tsx b/apps/web/pages/apps/[slug]/index.tsx
index 03c3ffe37b..fc6398cc1b 100644
--- a/apps/web/pages/apps/[slug]/index.tsx
+++ b/apps/web/pages/apps/[slug]/index.tsx
@@ -1,14 +1,14 @@
import fs from "fs";
import matter from "gray-matter";
import MarkdownIt from "markdown-it";
-import { GetStaticPaths, GetStaticPropsContext } from "next";
+import type { GetStaticPaths, GetStaticPropsContext } from "next";
import path from "path";
import { getAppWithMetadata } from "@calcom/app-store/_appRegistry";
import ExisitingGoogleCal from "@calcom/app-store/googlevideo/components/ExistingGoogleCal";
import prisma from "@calcom/prisma";
-import { inferSSRProps } from "@lib/types/inferSSRProps";
+import type { inferSSRProps } from "@lib/types/inferSSRProps";
import App from "@components/apps/App";
diff --git a/apps/web/pages/apps/[slug]/setup.tsx b/apps/web/pages/apps/[slug]/setup.tsx
index d72d29e2e2..f2d840d1a3 100644
--- a/apps/web/pages/apps/[slug]/setup.tsx
+++ b/apps/web/pages/apps/[slug]/setup.tsx
@@ -1,4 +1,4 @@
-import { GetStaticPaths, InferGetStaticPropsType } from "next";
+import type { GetStaticPaths, InferGetStaticPropsType } from "next";
import { useSession } from "next-auth/react";
import { useRouter } from "next/router";
diff --git a/apps/web/pages/apps/categories/[category].tsx b/apps/web/pages/apps/categories/[category].tsx
index 1d0e638125..3829db7470 100644
--- a/apps/web/pages/apps/categories/[category].tsx
+++ b/apps/web/pages/apps/categories/[category].tsx
@@ -1,5 +1,5 @@
import { AppCategories } from "@prisma/client";
-import { GetStaticPropsContext, InferGetStaticPropsType } from "next";
+import type { GetStaticPropsContext, InferGetStaticPropsType } from "next";
import Link from "next/link";
import { useRouter } from "next/router";
diff --git a/apps/web/pages/apps/categories/index.tsx b/apps/web/pages/apps/categories/index.tsx
index 7cfbcef51c..0fc363b4e6 100644
--- a/apps/web/pages/apps/categories/index.tsx
+++ b/apps/web/pages/apps/categories/index.tsx
@@ -1,4 +1,4 @@
-import { InferGetStaticPropsType } from "next";
+import type { InferGetStaticPropsType } from "next";
import Link from "next/link";
import { getAppRegistry } from "@calcom/app-store/_appRegistry";
diff --git a/apps/web/pages/apps/index.tsx b/apps/web/pages/apps/index.tsx
index b244b36997..974c1918c7 100644
--- a/apps/web/pages/apps/index.tsx
+++ b/apps/web/pages/apps/index.tsx
@@ -1,20 +1,15 @@
-import { GetServerSidePropsContext } from "next";
-import { ChangeEventHandler, useState } from "react";
+import type { GetServerSidePropsContext } from "next";
+import type { ChangeEventHandler } from "react";
+import { useState } from "react";
import { getAppRegistry, getAppRegistryWithCredentials } from "@calcom/app-store/_appRegistry";
import { classNames } from "@calcom/lib";
import { getSession } from "@calcom/lib/auth";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import type { AppCategories } from "@calcom/prisma/client";
-import { inferSSRProps } from "@calcom/types/inferSSRProps";
-import {
- AllApps,
- AppStoreCategories,
- HorizontalTabItemProps,
- HorizontalTabs,
- TextField,
- PopularAppsSlider,
-} from "@calcom/ui";
+import type { inferSSRProps } from "@calcom/types/inferSSRProps";
+import type { HorizontalTabItemProps } from "@calcom/ui";
+import { AllApps, AppStoreCategories, HorizontalTabs, TextField, PopularAppsSlider } from "@calcom/ui";
import { FiSearch } from "@calcom/ui/components/icon";
import AppsLayout from "@components/apps/layouts/AppsLayout";
diff --git a/apps/web/pages/apps/installed/[category].tsx b/apps/web/pages/apps/installed/[category].tsx
index 94fbc01f10..f5e9a0f528 100644
--- a/apps/web/pages/apps/installed/[category].tsx
+++ b/apps/web/pages/apps/installed/[category].tsx
@@ -4,14 +4,16 @@ import z from "zod";
import { AppSettings } from "@calcom/app-store/_components/AppSettings";
import { InstallAppButton } from "@calcom/app-store/components";
-import { EventLocationType, getEventLocationTypeFromApp } from "@calcom/app-store/locations";
+import type { EventLocationType } from "@calcom/app-store/locations";
+import { getEventLocationTypeFromApp } from "@calcom/app-store/locations";
import { InstalledAppVariants } from "@calcom/app-store/utils";
import { AppSetDefaultLinkDailog } from "@calcom/features/apps/components/AppSetDefaultLinkDialog";
import DisconnectIntegrationModal from "@calcom/features/apps/components/DisconnectIntegrationModal";
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { RouterOutputs, trpc } from "@calcom/trpc/react";
-import { App } from "@calcom/types/App";
-import { AppGetServerSidePropsContext } from "@calcom/types/AppGetServerSideProps";
+import type { RouterOutputs } from "@calcom/trpc/react";
+import { trpc } from "@calcom/trpc/react";
+import type { App } from "@calcom/types/App";
+import type { AppGetServerSidePropsContext } from "@calcom/types/AppGetServerSideProps";
import {
Alert,
Button,
@@ -97,8 +99,8 @@ function ConnectOrDisconnectIntegrationMenuItem(props: {
}
interface IntegrationsContainerProps {
- variant?: typeof InstalledAppVariants[number];
- exclude?: typeof InstalledAppVariants[number][];
+ variant?: (typeof InstalledAppVariants)[number];
+ exclude?: (typeof InstalledAppVariants)[number][];
handleDisconnect: (credentialId: number) => void;
}
diff --git a/apps/web/pages/auth/error.tsx b/apps/web/pages/auth/error.tsx
index 8179fa99e2..e76d12cea2 100644
--- a/apps/web/pages/auth/error.tsx
+++ b/apps/web/pages/auth/error.tsx
@@ -1,4 +1,4 @@
-import { GetStaticPropsContext } from "next";
+import type { GetStaticPropsContext } from "next";
import Link from "next/link";
import { useRouter } from "next/router";
import z from "zod";
diff --git a/apps/web/pages/auth/forgot-password/[id].tsx b/apps/web/pages/auth/forgot-password/[id].tsx
index 35450c2f59..145a396b7d 100644
--- a/apps/web/pages/auth/forgot-password/[id].tsx
+++ b/apps/web/pages/auth/forgot-password/[id].tsx
@@ -1,6 +1,6 @@
-import { ResetPasswordRequest } from "@prisma/client";
+import type { ResetPasswordRequest } from "@prisma/client";
import debounce from "lodash/debounce";
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { getCsrfToken } from "next-auth/react";
import Link from "next/link";
import React, { useMemo } from "react";
diff --git a/apps/web/pages/auth/forgot-password/index.tsx b/apps/web/pages/auth/forgot-password/index.tsx
index b995d33c4c..08becc2793 100644
--- a/apps/web/pages/auth/forgot-password/index.tsx
+++ b/apps/web/pages/auth/forgot-password/index.tsx
@@ -1,9 +1,10 @@
import debounce from "lodash/debounce";
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { getCsrfToken } from "next-auth/react";
import Link from "next/link";
import { useRouter } from "next/router";
-import React, { SyntheticEvent } from "react";
+import type { SyntheticEvent } from "react";
+import React from "react";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { Button, EmailField } from "@calcom/ui";
diff --git a/apps/web/pages/auth/login.tsx b/apps/web/pages/auth/login.tsx
index c9876f1800..9f1f6f148e 100644
--- a/apps/web/pages/auth/login.tsx
+++ b/apps/web/pages/auth/login.tsx
@@ -1,5 +1,5 @@
import classNames from "classnames";
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { getCsrfToken, signIn } from "next-auth/react";
import Link from "next/link";
import { useRouter } from "next/router";
@@ -18,8 +18,9 @@ import prisma from "@calcom/prisma";
import { Alert, Button, EmailField, PasswordField } from "@calcom/ui";
import { FiArrowLeft } from "@calcom/ui/components/icon";
-import { inferSSRProps } from "@lib/types/inferSSRProps";
-import withNonce, { WithNonceProps } from "@lib/withNonce";
+import type { inferSSRProps } from "@lib/types/inferSSRProps";
+import type { WithNonceProps } from "@lib/withNonce";
+import withNonce from "@lib/withNonce";
import AddToHomescreen from "@components/AddToHomescreen";
import TwoFactor from "@components/auth/TwoFactor";
diff --git a/apps/web/pages/auth/logout.tsx b/apps/web/pages/auth/logout.tsx
index 587a9cfbe0..686546fd13 100644
--- a/apps/web/pages/auth/logout.tsx
+++ b/apps/web/pages/auth/logout.tsx
@@ -1,4 +1,4 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { signOut, useSession } from "next-auth/react";
import { useRouter } from "next/router";
import { useEffect } from "react";
@@ -8,7 +8,7 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
import { Button } from "@calcom/ui";
import { FiCheck } from "@calcom/ui/components/icon";
-import { inferSSRProps } from "@lib/types/inferSSRProps";
+import type { inferSSRProps } from "@lib/types/inferSSRProps";
import AuthContainer from "@components/ui/AuthContainer";
diff --git a/apps/web/pages/auth/setup/index.tsx b/apps/web/pages/auth/setup/index.tsx
index 4f88a28d83..fd8a75ea5f 100644
--- a/apps/web/pages/auth/setup/index.tsx
+++ b/apps/web/pages/auth/setup/index.tsx
@@ -1,5 +1,5 @@
import { UserPermissionRole } from "@prisma/client";
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { useRouter } from "next/router";
import { useState } from "react";
@@ -8,7 +8,7 @@ import { getDeploymentKey } from "@calcom/features/ee/deployment/lib/getDeployme
import { getSession } from "@calcom/lib/auth";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import prisma from "@calcom/prisma";
-import { inferSSRProps } from "@calcom/types/inferSSRProps";
+import type { inferSSRProps } from "@calcom/types/inferSSRProps";
import { Meta, WizardForm } from "@calcom/ui";
import { AdminUserContainer as AdminUser } from "@components/setup/AdminUser";
diff --git a/apps/web/pages/auth/signin.tsx b/apps/web/pages/auth/signin.tsx
index 0d0e78f173..8c6f542e16 100644
--- a/apps/web/pages/auth/signin.tsx
+++ b/apps/web/pages/auth/signin.tsx
@@ -1,4 +1,4 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { getProviders, signIn, getSession, getCsrfToken } from "next-auth/react";
import { Button } from "@calcom/ui";
diff --git a/apps/web/pages/auth/sso/[provider].tsx b/apps/web/pages/auth/sso/[provider].tsx
index 2f63d5044e..ab81a482a8 100644
--- a/apps/web/pages/auth/sso/[provider].tsx
+++ b/apps/web/pages/auth/sso/[provider].tsx
@@ -1,4 +1,4 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { signIn } from "next-auth/react";
import { useRouter } from "next/router";
import { useEffect } from "react";
@@ -17,7 +17,7 @@ import prisma from "@calcom/prisma";
import { asStringOrNull } from "@lib/asStringOrNull";
import { getSession } from "@lib/auth";
-import { inferSSRProps } from "@lib/types/inferSSRProps";
+import type { inferSSRProps } from "@lib/types/inferSSRProps";
import { ssrInit } from "@server/lib/ssr";
diff --git a/apps/web/pages/availability/[schedule].tsx b/apps/web/pages/availability/[schedule].tsx
index cbd5663f46..9b8673d75e 100644
--- a/apps/web/pages/availability/[schedule].tsx
+++ b/apps/web/pages/availability/[schedule].tsx
@@ -1,4 +1,4 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { Controller, useFieldArray, useForm } from "react-hook-form";
import { z } from "zod";
diff --git a/apps/web/pages/availability/index.tsx b/apps/web/pages/availability/index.tsx
index c12f8c40d9..7c6f79a2a6 100644
--- a/apps/web/pages/availability/index.tsx
+++ b/apps/web/pages/availability/index.tsx
@@ -1,10 +1,11 @@
import { useAutoAnimate } from "@formkit/auto-animate/react";
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { NewScheduleButton, ScheduleListItem } from "@calcom/features/schedules";
import Shell from "@calcom/features/shell/Shell";
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { RouterOutputs, trpc } from "@calcom/trpc/react";
+import type { RouterOutputs } from "@calcom/trpc/react";
+import { trpc } from "@calcom/trpc/react";
import { EmptyScreen, showToast } from "@calcom/ui";
import { FiClock } from "@calcom/ui/components/icon";
diff --git a/apps/web/pages/availability/troubleshoot.tsx b/apps/web/pages/availability/troubleshoot.tsx
index e39e75d122..5290c7edac 100644
--- a/apps/web/pages/availability/troubleshoot.tsx
+++ b/apps/web/pages/availability/troubleshoot.tsx
@@ -1,7 +1,8 @@
import dayjs from "@calcom/dayjs";
import Shell from "@calcom/features/shell/Shell";
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { RouterOutputs, trpc } from "@calcom/trpc/react";
+import type { RouterOutputs } from "@calcom/trpc/react";
+import { trpc } from "@calcom/trpc/react";
import { SkeletonText } from "@calcom/ui";
import useRouterQuery from "@lib/hooks/useRouterQuery";
diff --git a/apps/web/pages/booking/[uid].tsx b/apps/web/pages/booking/[uid].tsx
index e49b02fe12..f94a333132 100644
--- a/apps/web/pages/booking/[uid].tsx
+++ b/apps/web/pages/booking/[uid].tsx
@@ -2,7 +2,7 @@ import { BookingStatus } from "@prisma/client";
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@radix-ui/react-collapsible";
import classNames from "classnames";
import { createEvent } from "ics";
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { useSession } from "next-auth/react";
import Link from "next/link";
import { useRouter } from "next/router";
@@ -11,14 +11,12 @@ import { RRule } from "rrule";
import { z } from "zod";
import BookingPageTagManager from "@calcom/app-store/BookingPageTagManager";
-import {
- getEventLocationValue,
- getSuccessPageLocationMessage,
- guessEventLocationType,
-} from "@calcom/app-store/locations";
+import type { getEventLocationValue } from "@calcom/app-store/locations";
+import { getSuccessPageLocationMessage, guessEventLocationType } from "@calcom/app-store/locations";
import { getEventTypeAppData } from "@calcom/app-store/utils";
import { getEventName } from "@calcom/core/event";
-import dayjs, { ConfigType } from "@calcom/dayjs";
+import type { ConfigType } from "@calcom/dayjs";
+import dayjs from "@calcom/dayjs";
import {
sdkActionManager,
useEmbedNonStylesConfig,
@@ -32,7 +30,11 @@ import {
import { parseRecurringEvent } from "@calcom/lib";
import CustomBranding from "@calcom/lib/CustomBranding";
import { APP_NAME } from "@calcom/lib/constants";
-import { formatTime } from "@calcom/lib/date-fns";
+import {
+ formatToLocalizedDate,
+ formatToLocalizedTime,
+ formatToLocalizedTimezone,
+} from "@calcom/lib/date-fns";
import { getDefaultEvent } from "@calcom/lib/defaultEvents";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import useTheme from "@calcom/lib/hooks/useTheme";
@@ -41,14 +43,14 @@ import { collectPageParameters, telemetryEventTypes, useTelemetry } from "@calco
import { getIs24hClockFromLocalStorage, isBrowserLocale24h } from "@calcom/lib/timeFormat";
import { localStorage } from "@calcom/lib/webstorage";
import prisma from "@calcom/prisma";
-import { Prisma } from "@calcom/prisma/client";
+import type { Prisma } from "@calcom/prisma/client";
import { customInputSchema, bookingMetadataSchema, EventTypeMetaDataSchema } from "@calcom/prisma/zod-utils";
import { Button, EmailInput, HeadSeo, Label } from "@calcom/ui";
import { FiX, FiChevronLeft, FiCheck, FiCalendar, FiExternalLink } from "@calcom/ui/components/icon";
import { timeZone } from "@lib/clock";
import { getBookingWithResponses } from "@lib/getBooking";
-import { inferSSRProps } from "@lib/types/inferSSRProps";
+import type { inferSSRProps } from "@lib/types/inferSSRProps";
import CancelBooking from "@components/booking/CancelBooking";
import EventReservationSchema from "@components/schemas/EventReservationSchema";
@@ -780,7 +782,10 @@ export function RecurringBookings({
isCancelled,
}: RecurringBookingsProps) {
const [moreEventsVisible, setMoreEventsVisible] = useState(false);
- const { t } = useLocale();
+ const {
+ t,
+ i18n: { language },
+ } = useLocale();
const recurringBookingsSorted = recurringBookings
? recurringBookings.sort((a: ConfigType, b: ConfigType) => (dayjs(a).isAfter(dayjs(b)) ? 1 : -1))
@@ -803,11 +808,13 @@ export function RecurringBookings({
{eventType.recurringEvent?.count &&
recurringBookingsSorted.slice(0, 4).map((dateStr: string, idx: number) => (
- {dayjs.tz(dateStr, timeZone()).format("dddd, DD MMMM YYYY")}
+ {formatToLocalizedDate(dayjs.tz(dateStr, timeZone()), language, "full")}
- {formatTime(dateStr, is24h ? 24 : 12, timeZone().toLowerCase())} -{" "}
- {formatTime(dayjs(dateStr).add(duration, "m"), is24h ? 24 : 12, timeZone().toLowerCase())}{" "}
- ({timeZone()})
+ {formatToLocalizedTime(dayjs(dateStr), language, undefined, !is24h)} -{" "}
+ {formatToLocalizedTime(dayjs(dateStr).add(duration, "m"), language, undefined, !is24h)}{" "}
+
+ ({formatToLocalizedTimezone(dayjs(dateStr), language)})
+
))}
{recurringBookingsSorted.length > 4 && (
@@ -821,11 +828,13 @@ export function RecurringBookings({
{eventType.recurringEvent?.count &&
recurringBookingsSorted.slice(4).map((dateStr: string, idx: number) => (
- {dayjs.tz(dateStr, timeZone()).format("dddd, DD MMMM YYYY")}
+ {formatToLocalizedDate(dayjs.tz(date, timeZone()), language, "full")}
- {formatTime(dateStr, is24h ? 24 : 12, timeZone().toLowerCase())} -{" "}
- {formatTime(dayjs(dateStr).add(duration, "m"), is24h ? 24 : 12, timeZone().toLowerCase())}{" "}
- ({timeZone()})
+ {formatToLocalizedTime(date, language, undefined, !is24h)} -{" "}
+ {formatToLocalizedTime(dayjs(date).add(duration, "m"), language, undefined, !is24h)}{" "}
+
+ ({formatToLocalizedTimezone(dayjs(dateStr), language)})
+
))}
@@ -837,11 +846,11 @@ export function RecurringBookings({
return (
- {dayjs.tz(date, timeZone()).format("dddd, DD MMMM YYYY")}
+ {formatToLocalizedDate(dayjs.tz(date, timeZone()), language, "full")}
- {formatTime(date, is24h ? 24 : 12, timeZone().toLowerCase())} -{" "}
- {formatTime(dayjs(date).add(duration, "m"), is24h ? 24 : 12, timeZone().toLowerCase())}{" "}
- ({timeZone()})
+ {formatToLocalizedTime(date, language, undefined, !is24h)} -{" "}
+ {formatToLocalizedTime(dayjs(date).add(duration, "m"), language, undefined, !is24h)}{" "}
+ ({formatToLocalizedTimezone(date, language)})
);
}
diff --git a/apps/web/pages/bookings/[status].tsx b/apps/web/pages/bookings/[status].tsx
index a2faa08121..d3b036b147 100644
--- a/apps/web/pages/bookings/[status].tsx
+++ b/apps/web/pages/bookings/[status].tsx
@@ -1,14 +1,16 @@
import { useAutoAnimate } from "@formkit/auto-animate/react";
-import { GetStaticPaths, GetStaticProps } from "next";
+import type { GetStaticPaths, GetStaticProps } from "next";
import { useRouter } from "next/router";
import { Fragment } from "react";
import { z } from "zod";
import { WipeMyCalActionButton } from "@calcom/app-store/wipemycalother/components";
import BookingLayout from "@calcom/features/bookings/layout/BookingLayout";
-import { filterQuerySchema, useFilterQuery } from "@calcom/features/bookings/lib/useFilterQuery";
+import type { filterQuerySchema } from "@calcom/features/bookings/lib/useFilterQuery";
+import { useFilterQuery } from "@calcom/features/bookings/lib/useFilterQuery";
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { RouterOutputs, trpc } from "@calcom/trpc/react";
+import type { RouterOutputs } from "@calcom/trpc/react";
+import { trpc } from "@calcom/trpc/react";
import { Alert, Button, EmptyScreen } from "@calcom/ui";
import { FiCalendar } from "@calcom/ui/components/icon";
diff --git a/apps/web/pages/d/[link]/[slug].tsx b/apps/web/pages/d/[link]/[slug].tsx
index 0ae6ea9d4d..29ec5b3f80 100644
--- a/apps/web/pages/d/[link]/[slug].tsx
+++ b/apps/web/pages/d/[link]/[slug].tsx
@@ -1,16 +1,17 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { z } from "zod";
-import { privacyFilteredLocations, LocationObject } from "@calcom/core/location";
+import type { LocationObject } from "@calcom/core/location";
+import { privacyFilteredLocations } from "@calcom/core/location";
import { parseRecurringEvent } from "@calcom/lib";
import { getWorkingHours } from "@calcom/lib/availability";
import { availiblityPageEventTypeSelect } from "@calcom/prisma";
import prisma from "@calcom/prisma";
import { EventTypeMetaDataSchema } from "@calcom/prisma/zod-utils";
-import { GetBookingType } from "@lib/getBooking";
-import { inferSSRProps } from "@lib/types/inferSSRProps";
-import { EmbedProps } from "@lib/withEmbedSsr";
+import type { GetBookingType } from "@lib/getBooking";
+import type { inferSSRProps } from "@lib/types/inferSSRProps";
+import type { EmbedProps } from "@lib/withEmbedSsr";
import AvailabilityPage from "@components/booking/pages/AvailabilityPage";
diff --git a/apps/web/pages/d/[link]/book.tsx b/apps/web/pages/d/[link]/book.tsx
index 77e74af28d..4985b2ccc3 100644
--- a/apps/web/pages/d/[link]/book.tsx
+++ b/apps/web/pages/d/[link]/book.tsx
@@ -1,4 +1,4 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { parseRecurringEvent } from "@calcom/lib";
import prisma from "@calcom/prisma";
@@ -6,7 +6,7 @@ import { bookEventTypeSelect } from "@calcom/prisma/selects";
import { customInputSchema, eventTypeBookingFields, EventTypeMetaDataSchema } from "@calcom/prisma/zod-utils";
import { asStringOrNull, asStringOrThrow } from "@lib/asStringOrNull";
-import { inferSSRProps } from "@lib/types/inferSSRProps";
+import type { inferSSRProps } from "@lib/types/inferSSRProps";
import BookingPage from "@components/booking/pages/BookingPage";
diff --git a/apps/web/pages/event-types/[type]/index.tsx b/apps/web/pages/event-types/[type]/index.tsx
index 1e3b19d12b..5808efe651 100644
--- a/apps/web/pages/event-types/[type]/index.tsx
+++ b/apps/web/pages/event-types/[type]/index.tsx
@@ -1,13 +1,14 @@
/* eslint-disable @typescript-eslint/no-empty-function */
import { useAutoAnimate } from "@formkit/auto-animate/react";
import { zodResolver } from "@hookform/resolvers/zod";
-import { PeriodType, SchedulingType } from "@prisma/client";
-import { GetServerSidePropsContext } from "next";
+import type { PeriodType } from "@prisma/client";
+import { SchedulingType } from "@prisma/client";
+import type { GetServerSidePropsContext } from "next";
import { useEffect, useState } from "react";
import { useForm } from "react-hook-form";
import { z } from "zod";
-import { EventLocationType } from "@calcom/core/location";
+import type { EventLocationType } from "@calcom/core/location";
import { validateBookingLimitOrder } from "@calcom/lib";
import { CAL_URL } from "@calcom/lib/constants";
import getEventTypeById from "@calcom/lib/getEventTypeById";
@@ -15,14 +16,16 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
import { useTypedQuery } from "@calcom/lib/hooks/useTypedQuery";
import { HttpError } from "@calcom/lib/http-error";
import prisma from "@calcom/prisma";
-import { customInputSchema, eventTypeBookingFields, EventTypeMetaDataSchema } from "@calcom/prisma/zod-utils";
-import { trpc, RouterOutputs } from "@calcom/trpc/react";
+import { eventTypeBookingFields } from "@calcom/prisma/zod-utils";
+import type { customInputSchema, EventTypeMetaDataSchema } from "@calcom/prisma/zod-utils";
+import type { RouterOutputs } from "@calcom/trpc/react";
+import { trpc } from "@calcom/trpc/react";
import type { BookingLimit, RecurringEvent } from "@calcom/types/Calendar";
import { Form, showToast } from "@calcom/ui";
import { asStringOrThrow } from "@lib/asStringOrNull";
import { getSession } from "@lib/auth";
-import { inferSSRProps } from "@lib/types/inferSSRProps";
+import type { inferSSRProps } from "@lib/types/inferSSRProps";
import { AvailabilityTab } from "@components/eventtype/AvailabilityTab";
// These can't really be moved into calcom/ui due to the fact they use infered getserverside props typings
@@ -305,7 +308,7 @@ const EventTypePage = (props: EventTypeSetupProps) => {
...input
} = values;
- const hosts: (typeof hostsInput[number] & { isFixed?: boolean })[] = [];
+ const hosts: ((typeof hostsInput)[number] & { isFixed?: boolean })[] = [];
if (hostsInput || hostsFixed) {
hosts.push(...hostsInput.concat(hostsFixed.map((host) => ({ isFixed: true, ...host }))));
}
diff --git a/apps/web/pages/event-types/index.tsx b/apps/web/pages/event-types/index.tsx
index f005d34f5b..430a5975f5 100644
--- a/apps/web/pages/event-types/index.tsx
+++ b/apps/web/pages/event-types/index.tsx
@@ -1,8 +1,9 @@
import { useAutoAnimate } from "@formkit/auto-animate/react";
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import Link from "next/link";
import { useRouter } from "next/router";
-import { FC, useEffect, useState, memo } from "react";
+import type { FC } from "react";
+import { useEffect, useState, memo } from "react";
import { z } from "zod";
import {
@@ -14,7 +15,8 @@ import { APP_NAME, CAL_URL, WEBAPP_URL } from "@calcom/lib/constants";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import useMediaQuery from "@calcom/lib/hooks/useMediaQuery";
import { useTypedQuery } from "@calcom/lib/hooks/useTypedQuery";
-import { RouterOutputs, trpc, TRPCClientError } from "@calcom/trpc/react";
+import type { RouterOutputs } from "@calcom/trpc/react";
+import { trpc, TRPCClientError } from "@calcom/trpc/react";
import {
Avatar,
AvatarGroup,
diff --git a/apps/web/pages/getting-started/[[...step]].tsx b/apps/web/pages/getting-started/[[...step]].tsx
index 88f457b456..c360b4c40e 100644
--- a/apps/web/pages/getting-started/[[...step]].tsx
+++ b/apps/web/pages/getting-started/[[...step]].tsx
@@ -1,4 +1,4 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { serverSideTranslations } from "next-i18next/serverSideTranslations";
import Head from "next/head";
import { useRouter } from "next/router";
@@ -10,7 +10,7 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
import prisma from "@calcom/prisma";
import { Button, StepCard, Steps } from "@calcom/ui";
-import { inferSSRProps } from "@lib/types/inferSSRProps";
+import type { inferSSRProps } from "@lib/types/inferSSRProps";
import { ConnectedCalendars } from "@components/getting-started/steps-views/ConnectCalendars";
import { SetupAvailability } from "@components/getting-started/steps-views/SetupAvailability";
@@ -22,7 +22,7 @@ export type IOnboardingPageProps = inferSSRProps;
const INITIAL_STEP = "user-settings";
const steps = ["user-settings", "connected-calendar", "setup-availability", "user-profile"] as const;
-const stepTransform = (step: typeof steps[number]) => {
+const stepTransform = (step: (typeof steps)[number]) => {
const stepIndex = steps.indexOf(step);
if (stepIndex > -1) {
return steps[stepIndex];
diff --git a/apps/web/pages/index.tsx b/apps/web/pages/index.tsx
index 8730636947..ddfb7116b9 100644
--- a/apps/web/pages/index.tsx
+++ b/apps/web/pages/index.tsx
@@ -1,4 +1,4 @@
-import { NextPageContext } from "next";
+import type { NextPageContext } from "next";
import { getSession } from "@lib/auth";
diff --git a/apps/web/pages/payment/[uid].tsx b/apps/web/pages/payment/[uid].tsx
index 6fa998361d..296462f34d 100644
--- a/apps/web/pages/payment/[uid].tsx
+++ b/apps/web/pages/payment/[uid].tsx
@@ -1,6 +1,6 @@
import PaymentPage from "@calcom/features/ee/payments/components/PaymentPage";
import { getServerSideProps } from "@calcom/features/ee/payments/pages/payment";
-import { inferSSRProps } from "@calcom/types/inferSSRProps";
+import type { inferSSRProps } from "@calcom/types/inferSSRProps";
export default function Payment(props: inferSSRProps) {
return ;
diff --git a/apps/web/pages/reschedule/[uid].tsx b/apps/web/pages/reschedule/[uid].tsx
index 9baeb7c1af..8f5193c6d0 100644
--- a/apps/web/pages/reschedule/[uid].tsx
+++ b/apps/web/pages/reschedule/[uid].tsx
@@ -1,4 +1,4 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { getDefaultEvent } from "@calcom/lib/defaultEvents";
import prisma, { bookingMinimalSelect } from "@calcom/prisma";
diff --git a/apps/web/pages/settings/admin/apps/[category].tsx b/apps/web/pages/settings/admin/apps/[category].tsx
index f2ed6c9943..0fcc2c0dd0 100644
--- a/apps/web/pages/settings/admin/apps/[category].tsx
+++ b/apps/web/pages/settings/admin/apps/[category].tsx
@@ -1,4 +1,4 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import AdminAppsList from "@calcom/features/apps/AdminAppsList";
import { useLocale } from "@calcom/lib/hooks/useLocale";
diff --git a/apps/web/pages/settings/admin/impersonation.tsx b/apps/web/pages/settings/admin/impersonation.tsx
index dacdbfa948..dbce021dc3 100644
--- a/apps/web/pages/settings/admin/impersonation.tsx
+++ b/apps/web/pages/settings/admin/impersonation.tsx
@@ -1,4 +1,4 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { signIn } from "next-auth/react";
import { useRef } from "react";
diff --git a/apps/web/pages/settings/admin/index.tsx b/apps/web/pages/settings/admin/index.tsx
index 83cd7f53c0..71e729a468 100644
--- a/apps/web/pages/settings/admin/index.tsx
+++ b/apps/web/pages/settings/admin/index.tsx
@@ -1,4 +1,4 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { Meta } from "@calcom/ui";
diff --git a/apps/web/pages/settings/billing/index.tsx b/apps/web/pages/settings/billing/index.tsx
index 528c47e137..5193b6af6c 100644
--- a/apps/web/pages/settings/billing/index.tsx
+++ b/apps/web/pages/settings/billing/index.tsx
@@ -1,4 +1,4 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { useRouter } from "next/router";
import { useState } from "react";
import { HelpScout, useChat } from "react-live-chat-loader";
diff --git a/apps/web/pages/settings/developer/api-keys.tsx b/apps/web/pages/settings/developer/api-keys.tsx
index 9d890edca6..aaf3b7eab0 100644
--- a/apps/web/pages/settings/developer/api-keys.tsx
+++ b/apps/web/pages/settings/developer/api-keys.tsx
@@ -1,7 +1,7 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { useState } from "react";
-import { TApiKeys } from "@calcom/ee/api-keys/components/ApiKeyListItem";
+import type { TApiKeys } from "@calcom/ee/api-keys/components/ApiKeyListItem";
import LicenseRequired from "@calcom/ee/common/components/v2/LicenseRequired";
import ApiKeyDialogForm from "@calcom/features/ee/api-keys/components/ApiKeyDialogForm";
import ApiKeyListItem from "@calcom/features/ee/api-keys/components/ApiKeyListItem";
diff --git a/apps/web/pages/settings/my-account/appearance.tsx b/apps/web/pages/settings/my-account/appearance.tsx
index 0a665570b7..92ebffe2b2 100644
--- a/apps/web/pages/settings/my-account/appearance.tsx
+++ b/apps/web/pages/settings/my-account/appearance.tsx
@@ -1,4 +1,4 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { Controller, useForm } from "react-hook-form";
import ThemeLabel from "@calcom/features/settings/ThemeLabel";
diff --git a/apps/web/pages/settings/my-account/calendars.tsx b/apps/web/pages/settings/my-account/calendars.tsx
index 5479b7d604..67957ba4da 100644
--- a/apps/web/pages/settings/my-account/calendars.tsx
+++ b/apps/web/pages/settings/my-account/calendars.tsx
@@ -1,4 +1,4 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { Trans } from "next-i18next";
import Link from "next/link";
import { useRouter } from "next/router";
diff --git a/apps/web/pages/settings/my-account/conferencing.tsx b/apps/web/pages/settings/my-account/conferencing.tsx
index cc73c98ec4..3e14dbef27 100644
--- a/apps/web/pages/settings/my-account/conferencing.tsx
+++ b/apps/web/pages/settings/my-account/conferencing.tsx
@@ -1,6 +1,7 @@
import { useState } from "react";
-import { EventLocationType, getEventLocationTypeFromApp } from "@calcom/app-store/locations";
+import type { EventLocationType } from "@calcom/app-store/locations";
+import { getEventLocationTypeFromApp } from "@calcom/app-store/locations";
import { AppSetDefaultLinkDailog } from "@calcom/features/apps/components/AppSetDefaultLinkDialog";
import { getLayout } from "@calcom/features/settings/layouts/SettingsLayout";
import { useLocale } from "@calcom/lib/hooks/useLocale";
diff --git a/apps/web/pages/settings/my-account/general.tsx b/apps/web/pages/settings/my-account/general.tsx
index 7de2e10bf7..a7373f91d3 100644
--- a/apps/web/pages/settings/my-account/general.tsx
+++ b/apps/web/pages/settings/my-account/general.tsx
@@ -1,4 +1,4 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { useRouter } from "next/router";
import { useMemo } from "react";
import { Controller, useForm } from "react-hook-form";
@@ -6,7 +6,8 @@ import { Controller, useForm } from "react-hook-form";
import { getLayout } from "@calcom/features/settings/layouts/SettingsLayout";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { nameOfDay } from "@calcom/lib/weekday";
-import { RouterOutputs, trpc } from "@calcom/trpc/react";
+import type { RouterOutputs } from "@calcom/trpc/react";
+import { trpc } from "@calcom/trpc/react";
import {
Button,
Form,
diff --git a/apps/web/pages/settings/my-account/profile.tsx b/apps/web/pages/settings/my-account/profile.tsx
index a3d576335c..ab0acd99d4 100644
--- a/apps/web/pages/settings/my-account/profile.tsx
+++ b/apps/web/pages/settings/my-account/profile.tsx
@@ -1,9 +1,10 @@
import { IdentityProvider } from "@prisma/client";
import crypto from "crypto";
import MarkdownIt from "markdown-it";
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { signOut } from "next-auth/react";
-import { BaseSyntheticEvent, useRef, useState } from "react";
+import type { BaseSyntheticEvent } from "react";
+import { useRef, useState } from "react";
import { Controller, useForm } from "react-hook-form";
import { getLayout } from "@calcom/features/settings/layouts/SettingsLayout";
@@ -11,9 +12,9 @@ import { ErrorCode } from "@calcom/lib/auth";
import { APP_NAME } from "@calcom/lib/constants";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import turndown from "@calcom/lib/turndownService";
-import { TRPCClientErrorLike } from "@calcom/trpc/client";
+import type { TRPCClientErrorLike } from "@calcom/trpc/client";
import { trpc } from "@calcom/trpc/react";
-import { AppRouter } from "@calcom/trpc/server/routers/_app";
+import type { AppRouter } from "@calcom/trpc/server/routers/_app";
import {
Alert,
Avatar,
diff --git a/apps/web/pages/settings/security/impersonation.tsx b/apps/web/pages/settings/security/impersonation.tsx
index cea19bbd20..f8c7f84ce7 100644
--- a/apps/web/pages/settings/security/impersonation.tsx
+++ b/apps/web/pages/settings/security/impersonation.tsx
@@ -1,4 +1,4 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { useForm } from "react-hook-form";
import { getLayout } from "@calcom/features/settings/layouts/SettingsLayout";
diff --git a/apps/web/pages/settings/security/password.tsx b/apps/web/pages/settings/security/password.tsx
index 37f8e217b0..eea4adf821 100644
--- a/apps/web/pages/settings/security/password.tsx
+++ b/apps/web/pages/settings/security/password.tsx
@@ -1,5 +1,5 @@
import { IdentityProvider } from "@prisma/client";
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { signOut, useSession } from "next-auth/react";
import { useForm } from "react-hook-form";
diff --git a/apps/web/pages/settings/security/sso.tsx b/apps/web/pages/settings/security/sso.tsx
index e38d927f45..ae8027dcf9 100644
--- a/apps/web/pages/settings/security/sso.tsx
+++ b/apps/web/pages/settings/security/sso.tsx
@@ -1,4 +1,4 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { ssrInit } from "@server/lib/ssr";
diff --git a/apps/web/pages/settings/security/two-factor-auth.tsx b/apps/web/pages/settings/security/two-factor-auth.tsx
index 33795f82f1..6d09a09e0a 100644
--- a/apps/web/pages/settings/security/two-factor-auth.tsx
+++ b/apps/web/pages/settings/security/two-factor-auth.tsx
@@ -1,4 +1,4 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { useState } from "react";
import { getLayout } from "@calcom/features/settings/layouts/SettingsLayout";
diff --git a/apps/web/pages/settings/teams/[id]/appearance.tsx b/apps/web/pages/settings/teams/[id]/appearance.tsx
index 182e6fbdd4..f40cbf75fb 100644
--- a/apps/web/pages/settings/teams/[id]/appearance.tsx
+++ b/apps/web/pages/settings/teams/[id]/appearance.tsx
@@ -1,4 +1,4 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { ssrInit } from "@server/lib/ssr";
diff --git a/apps/web/pages/settings/teams/[id]/billing.tsx b/apps/web/pages/settings/teams/[id]/billing.tsx
index 4da2121863..8b89a9480f 100644
--- a/apps/web/pages/settings/teams/[id]/billing.tsx
+++ b/apps/web/pages/settings/teams/[id]/billing.tsx
@@ -1,4 +1,4 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { ssrInit } from "@server/lib/ssr";
diff --git a/apps/web/pages/settings/teams/[id]/members.tsx b/apps/web/pages/settings/teams/[id]/members.tsx
index c6150cc754..d40ef1b94f 100644
--- a/apps/web/pages/settings/teams/[id]/members.tsx
+++ b/apps/web/pages/settings/teams/[id]/members.tsx
@@ -1,4 +1,4 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { ssrInit } from "@server/lib/ssr";
diff --git a/apps/web/pages/settings/teams/[id]/profile.tsx b/apps/web/pages/settings/teams/[id]/profile.tsx
index 02434b0c86..ca1e3e9f0d 100644
--- a/apps/web/pages/settings/teams/[id]/profile.tsx
+++ b/apps/web/pages/settings/teams/[id]/profile.tsx
@@ -1,4 +1,4 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { ssrInit } from "@server/lib/ssr";
diff --git a/apps/web/pages/settings/teams/[id]/sso.tsx b/apps/web/pages/settings/teams/[id]/sso.tsx
index 97db4771eb..dbb0bf0225 100644
--- a/apps/web/pages/settings/teams/[id]/sso.tsx
+++ b/apps/web/pages/settings/teams/[id]/sso.tsx
@@ -1,4 +1,4 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { ssrInit } from "@server/lib/ssr";
diff --git a/apps/web/pages/settings/teams/new/index.tsx b/apps/web/pages/settings/teams/new/index.tsx
index 85a8039937..b119e6f6d3 100644
--- a/apps/web/pages/settings/teams/new/index.tsx
+++ b/apps/web/pages/settings/teams/new/index.tsx
@@ -1,4 +1,4 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import Head from "next/head";
import { CreateANewTeamForm } from "@calcom/features/ee/teams/components";
diff --git a/apps/web/pages/signup.tsx b/apps/web/pages/signup.tsx
index 0fca86f626..0fac2ad1e4 100644
--- a/apps/web/pages/signup.tsx
+++ b/apps/web/pages/signup.tsx
@@ -1,7 +1,8 @@
import type { GetServerSidePropsContext } from "next";
import { signIn } from "next-auth/react";
import { useRouter } from "next/router";
-import { FormProvider, SubmitHandler, useForm } from "react-hook-form";
+import type { SubmitHandler } from "react-hook-form";
+import { FormProvider, useForm } from "react-hook-form";
import LicenseRequired from "@calcom/features/ee/common/components/v2/LicenseRequired";
import { isSAMLLoginEnabled } from "@calcom/features/ee/sso/lib/saml";
@@ -9,7 +10,7 @@ import { WEBAPP_URL } from "@calcom/lib/constants";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { collectPageParameters, telemetryEventTypes, useTelemetry } from "@calcom/lib/telemetry";
import prisma from "@calcom/prisma";
-import { inferSSRProps } from "@calcom/types/inferSSRProps";
+import type { inferSSRProps } from "@calcom/types/inferSSRProps";
import { Alert, Button, EmailField, HeadSeo, PasswordField, TextField } from "@calcom/ui";
import { asStringOrNull } from "../lib/asStringOrNull";
diff --git a/apps/web/pages/team/[slug].tsx b/apps/web/pages/team/[slug].tsx
index 1855c3f32d..bb0b2a32da 100644
--- a/apps/web/pages/team/[slug].tsx
+++ b/apps/web/pages/team/[slug].tsx
@@ -1,6 +1,6 @@
import classNames from "classnames";
import MarkdownIt from "markdown-it";
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import Link from "next/link";
import { useRouter } from "next/router";
import { useEffect } from "react";
@@ -17,7 +17,7 @@ import { Avatar, Button, HeadSeo, AvatarGroup } from "@calcom/ui";
import { FiArrowRight } from "@calcom/ui/components/icon";
import { useToggleQuery } from "@lib/hooks/useToggleQuery";
-import { inferSSRProps } from "@lib/types/inferSSRProps";
+import type { inferSSRProps } from "@lib/types/inferSSRProps";
import Team from "@components/team/screens/Team";
diff --git a/apps/web/pages/team/[slug]/[type].tsx b/apps/web/pages/team/[slug]/[type].tsx
index d8baf45332..4a4fa6019d 100644
--- a/apps/web/pages/team/[slug]/[type].tsx
+++ b/apps/web/pages/team/[slug]/[type].tsx
@@ -1,6 +1,7 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
-import { privacyFilteredLocations, LocationObject } from "@calcom/core/location";
+import { privacyFilteredLocations } from "@calcom/core/location";
+import type { LocationObject } from "@calcom/core/location";
import { getBookingFieldsWithSystemFields } from "@calcom/features/bookings/lib/getBookingFields";
import { parseRecurringEvent } from "@calcom/lib";
import { getWorkingHours } from "@calcom/lib/availability";
@@ -8,9 +9,10 @@ import prisma from "@calcom/prisma";
import { EventTypeMetaDataSchema } from "@calcom/prisma/zod-utils";
import { asStringOrNull } from "@lib/asStringOrNull";
-import getBooking, { GetBookingType } from "@lib/getBooking";
-import { inferSSRProps } from "@lib/types/inferSSRProps";
-import { EmbedProps } from "@lib/withEmbedSsr";
+import type { GetBookingType } from "@lib/getBooking";
+import getBooking from "@lib/getBooking";
+import type { inferSSRProps } from "@lib/types/inferSSRProps";
+import type { EmbedProps } from "@lib/withEmbedSsr";
import AvailabilityPage from "@components/booking/pages/AvailabilityPage";
diff --git a/apps/web/pages/team/[slug]/book.tsx b/apps/web/pages/team/[slug]/book.tsx
index 193ccad03f..f1700bbeed 100644
--- a/apps/web/pages/team/[slug]/book.tsx
+++ b/apps/web/pages/team/[slug]/book.tsx
@@ -1,14 +1,16 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
-import { LocationObject, privacyFilteredLocations } from "@calcom/app-store/locations";
+import type { LocationObject } from "@calcom/app-store/locations";
+import { privacyFilteredLocations } from "@calcom/app-store/locations";
import { getBookingFieldsWithSystemFields } from "@calcom/features/bookings/lib/getBookingFields";
import { parseRecurringEvent } from "@calcom/lib";
import prisma from "@calcom/prisma";
import { customInputSchema, eventTypeBookingFields, EventTypeMetaDataSchema } from "@calcom/prisma/zod-utils";
import { asStringOrNull, asStringOrThrow } from "@lib/asStringOrNull";
-import getBooking, { GetBookingType } from "@lib/getBooking";
-import { inferSSRProps } from "@lib/types/inferSSRProps";
+import type { GetBookingType } from "@lib/getBooking";
+import getBooking from "@lib/getBooking";
+import type { inferSSRProps } from "@lib/types/inferSSRProps";
import BookingPage from "@components/booking/pages/BookingPage";
diff --git a/apps/web/pages/teams/index.tsx b/apps/web/pages/teams/index.tsx
index e5e651f29d..25e9934942 100644
--- a/apps/web/pages/teams/index.tsx
+++ b/apps/web/pages/teams/index.tsx
@@ -1,4 +1,4 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { TeamsListing } from "@calcom/features/ee/teams/components";
import Shell from "@calcom/features/shell/Shell";
diff --git a/apps/web/pages/video/[uid].tsx b/apps/web/pages/video/[uid].tsx
index 0601265375..bf8b57917e 100644
--- a/apps/web/pages/video/[uid].tsx
+++ b/apps/web/pages/video/[uid].tsx
@@ -1,5 +1,5 @@
import DailyIframe from "@daily-co/daily-js";
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { getSession } from "next-auth/react";
import Head from "next/head";
import { useEffect } from "react";
@@ -7,7 +7,7 @@ import { useEffect } from "react";
import { APP_NAME, SEO_IMG_OGIMG_VIDEO, WEBSITE_URL } from "@calcom/lib/constants";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import prisma, { bookingMinimalSelect } from "@calcom/prisma";
-import { inferSSRProps } from "@calcom/types/inferSSRProps";
+import type { inferSSRProps } from "@calcom/types/inferSSRProps";
import { ssrInit } from "@server/lib/ssr";
diff --git a/apps/web/pages/video/meeting-ended/[uid].tsx b/apps/web/pages/video/meeting-ended/[uid].tsx
index d3c709cd87..8ff650478b 100644
--- a/apps/web/pages/video/meeting-ended/[uid].tsx
+++ b/apps/web/pages/video/meeting-ended/[uid].tsx
@@ -1,4 +1,4 @@
-import { NextPageContext } from "next";
+import type { NextPageContext } from "next";
import dayjs from "@calcom/dayjs";
import { useLocale } from "@calcom/lib/hooks/useLocale";
@@ -7,7 +7,7 @@ import prisma, { bookingMinimalSelect } from "@calcom/prisma";
import { Button, HeadSeo } from "@calcom/ui";
import { FiArrowRight, FiCalendar, FiX } from "@calcom/ui/components/icon";
-import { inferSSRProps } from "@lib/types/inferSSRProps";
+import type { inferSSRProps } from "@lib/types/inferSSRProps";
export default function MeetingUnavailable(props: inferSSRProps) {
const { t } = useLocale();
diff --git a/apps/web/pages/video/meeting-not-started/[uid].tsx b/apps/web/pages/video/meeting-not-started/[uid].tsx
index 11bda5d35a..87c361e926 100644
--- a/apps/web/pages/video/meeting-not-started/[uid].tsx
+++ b/apps/web/pages/video/meeting-not-started/[uid].tsx
@@ -1,4 +1,4 @@
-import { NextPageContext } from "next";
+import type { NextPageContext } from "next";
import dayjs from "@calcom/dayjs";
import { useLocale } from "@calcom/lib/hooks/useLocale";
diff --git a/apps/web/pages/workflows/[workflow].tsx b/apps/web/pages/workflows/[workflow].tsx
index 02cf9fa15b..1be2ceb1bc 100644
--- a/apps/web/pages/workflows/[workflow].tsx
+++ b/apps/web/pages/workflows/[workflow].tsx
@@ -1,4 +1,4 @@
-import { GetStaticPaths, GetStaticProps } from "next";
+import type { GetStaticPaths, GetStaticProps } from "next";
import { z } from "zod";
export { default } from "@calcom/features/ee/workflows/pages/workflow";
diff --git a/apps/web/pages/workflows/index.tsx b/apps/web/pages/workflows/index.tsx
index 7e2a4b8500..ec67dd2d82 100644
--- a/apps/web/pages/workflows/index.tsx
+++ b/apps/web/pages/workflows/index.tsx
@@ -1,4 +1,4 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import { ssrInit } from "@server/lib/ssr";
diff --git a/apps/web/playwright/embed-code-generator.e2e.ts b/apps/web/playwright/embed-code-generator.e2e.ts
index 0d6ccec579..30579183c6 100644
--- a/apps/web/playwright/embed-code-generator.e2e.ts
+++ b/apps/web/playwright/embed-code-generator.e2e.ts
@@ -1,4 +1,5 @@
-import { expect, Page } from "@playwright/test";
+import type { Page } from "@playwright/test";
+import { expect } from "@playwright/test";
import { test } from "./lib/fixtures";
diff --git a/apps/web/playwright/event-types.e2e.ts b/apps/web/playwright/event-types.e2e.ts
index 760804a27b..54cc43a04d 100644
--- a/apps/web/playwright/event-types.e2e.ts
+++ b/apps/web/playwright/event-types.e2e.ts
@@ -62,7 +62,7 @@ test.describe("Event Types tests", () => {
});
await page.click("[data-testid=vertical-tab-recurring]");
- await expect(page.locator("[data-testid=recurring-event-collapsible]")).not.toBeVisible();
+ await expect(page.locator("[data-testid=recurring-event-collapsible]")).toBeHidden();
await page.click("[data-testid=recurring-event-check]");
await expect(page.locator("[data-testid=recurring-event-collapsible]")).toBeVisible();
diff --git a/apps/web/playwright/fixtures/users.ts b/apps/web/playwright/fixtures/users.ts
index c0e485dad3..3896ecea52 100644
--- a/apps/web/playwright/fixtures/users.ts
+++ b/apps/web/playwright/fixtures/users.ts
@@ -7,7 +7,7 @@ import dayjs from "@calcom/dayjs";
import { DEFAULT_SCHEDULE, getAvailabilityFromSchedule } from "@calcom/lib/availability";
import { prisma } from "@calcom/prisma";
-import { TimeZoneEnum } from "./types";
+import type { TimeZoneEnum } from "./types";
// Don't import hashPassword from app as that ends up importing next-auth and initializing it before NEXTAUTH_URL can be updated during tests.
export async function hashPassword(password: string) {
diff --git a/apps/web/playwright/integrations.e2e.ts b/apps/web/playwright/integrations.e2e.ts
index f5383ef834..3b89b19013 100644
--- a/apps/web/playwright/integrations.e2e.ts
+++ b/apps/web/playwright/integrations.e2e.ts
@@ -1,4 +1,5 @@
-import { expect, Page, Route } from "@playwright/test";
+import type { Page, Route } from "@playwright/test";
+import { expect } from "@playwright/test";
import { rest } from "msw";
import { setupServer } from "msw/node";
import { v4 as uuidv4 } from "uuid";
diff --git a/apps/web/playwright/lib/next-server.ts b/apps/web/playwright/lib/next-server.ts
index 34c57969a4..c7433f62a6 100644
--- a/apps/web/playwright/lib/next-server.ts
+++ b/apps/web/playwright/lib/next-server.ts
@@ -1,5 +1,6 @@
import detect from "detect-port";
-import { createServer, Server } from "http";
+import type { Server } from "http";
+import { createServer } from "http";
import next from "next";
import { parse } from "url";
diff --git a/apps/web/playwright/lib/teardown.ts b/apps/web/playwright/lib/teardown.ts
index ba5fb0e277..0bcbb1a81c 100644
--- a/apps/web/playwright/lib/teardown.ts
+++ b/apps/web/playwright/lib/teardown.ts
@@ -1,4 +1,4 @@
-import { Prisma } from "@prisma/client";
+import type { Prisma } from "@prisma/client";
import prisma from "@calcom/prisma";
diff --git a/apps/web/playwright/lib/testUtils.ts b/apps/web/playwright/lib/testUtils.ts
index ae898ff789..ef64586a92 100644
--- a/apps/web/playwright/lib/testUtils.ts
+++ b/apps/web/playwright/lib/testUtils.ts
@@ -1,5 +1,7 @@
-import { expect, Page, test } from "@playwright/test";
-import { createServer, IncomingMessage, ServerResponse } from "http";
+import type { Page } from "@playwright/test";
+import { expect, test } from "@playwright/test";
+import type { IncomingMessage, ServerResponse } from "http";
+import { createServer } from "http";
import noop from "lodash/noop";
export function todo(title: string) {
diff --git a/apps/web/playwright/reschedule.e2e.ts b/apps/web/playwright/reschedule.e2e.ts
index 036d1d08bb..d69470daa6 100644
--- a/apps/web/playwright/reschedule.e2e.ts
+++ b/apps/web/playwright/reschedule.e2e.ts
@@ -35,7 +35,7 @@ test.describe("Reschedule Tests", async () => {
await page.fill('[data-testid="reschedule_reason"]', "I can't longer have it");
await page.locator('button[data-testid="send_request"]').click();
- await expect(page.locator('[id="modal-title"]')).not.toBeVisible();
+ await expect(page.locator('[id="modal-title"]')).toBeHidden();
const updatedBooking = await booking.self();
diff --git a/apps/web/server/lib/ssg.ts b/apps/web/server/lib/ssg.ts
index 8fa773e935..c21f5f3b2d 100644
--- a/apps/web/server/lib/ssg.ts
+++ b/apps/web/server/lib/ssg.ts
@@ -1,4 +1,4 @@
-import { GetStaticPropsContext } from "next";
+import type { GetStaticPropsContext } from "next";
import { i18n } from "next-i18next.config";
import { serverSideTranslations } from "next-i18next/serverSideTranslations";
import superjson from "superjson";
diff --git a/apps/web/server/lib/ssr.ts b/apps/web/server/lib/ssr.ts
index 709aa4f9dc..a177615943 100644
--- a/apps/web/server/lib/ssr.ts
+++ b/apps/web/server/lib/ssr.ts
@@ -1,4 +1,4 @@
-import { GetServerSidePropsContext } from "next";
+import type { GetServerSidePropsContext } from "next";
import superjson from "superjson";
import { createProxySSGHelpers } from "@calcom/trpc/react/ssg";
diff --git a/apps/web/test/lib/checkBookingLimits.test.ts b/apps/web/test/lib/checkBookingLimits.test.ts
index fe61a2ab23..8054535038 100644
--- a/apps/web/test/lib/checkBookingLimits.test.ts
+++ b/apps/web/test/lib/checkBookingLimits.test.ts
@@ -1,7 +1,7 @@
import dayjs from "@calcom/dayjs";
import { validateBookingLimitOrder } from "@calcom/lib/isBookingLimits";
import { checkBookingLimits, checkLimit } from "@calcom/lib/server";
-import { BookingLimit } from "@calcom/types/Calendar";
+import type { BookingLimit } from "@calcom/types/Calendar";
import { prismaMock } from "../../../../tests/config/singleton";
diff --git a/apps/web/test/lib/getAvailabilityFromSchedule.test.ts b/apps/web/test/lib/getAvailabilityFromSchedule.test.ts
index fcee4dcf6a..bac272f260 100644
--- a/apps/web/test/lib/getAvailabilityFromSchedule.test.ts
+++ b/apps/web/test/lib/getAvailabilityFromSchedule.test.ts
@@ -1,5 +1,5 @@
import { expect, it } from "@jest/globals";
-import { Availability } from "@prisma/client";
+import type { Availability } from "@prisma/client";
import MockDate from "mockdate";
import dayjs from "@calcom/dayjs";
diff --git a/apps/web/test/lib/getSchedule.test.ts b/apps/web/test/lib/getSchedule.test.ts
index 9c7025e680..b865d6c614 100644
--- a/apps/web/test/lib/getSchedule.test.ts
+++ b/apps/web/test/lib/getSchedule.test.ts
@@ -1,4 +1,4 @@
-import {
+import type {
EventType as PrismaEventType,
User as PrismaUser,
Booking as PrismaBooking,
@@ -10,8 +10,9 @@ import { v4 as uuidv4 } from "uuid";
import logger from "@calcom/lib/logger";
import prisma from "@calcom/prisma";
-import { BookingStatus } from "@calcom/prisma/client";
-import { getSchedule, Slot } from "@calcom/trpc/server/routers/viewer/slots";
+import type { BookingStatus } from "@calcom/prisma/client";
+import type { Slot } from "@calcom/trpc/server/routers/viewer/slots";
+import { getSchedule } from "@calcom/trpc/server/routers/viewer/slots";
import { prismaMock, CalendarManagerMock } from "../../../../tests/config/singleton";
diff --git a/package.json b/package.json
index 1e2d6979ec..8f2d9a0878 100644
--- a/package.json
+++ b/package.json
@@ -76,7 +76,7 @@
"jest-watch-select-projects": "^2.0.0",
"jest-watch-typeahead": "^2.0.0",
"lint-staged": "^12.5.0",
- "prettier": "^2.7.1",
+ "prettier": "^2.8.4",
"ts-jest": "^28.0.8"
},
"dependencies": {
@@ -85,8 +85,8 @@
"resolutions": {
"@apidevtools/json-schema-ref-parser": "9.0.9",
"@types/node": "16.9.1",
- "@types/react": "^18.0.17",
- "@types/react-dom": "^18.0.6"
+ "@types/react": "18.0.26",
+ "@types/react-dom": "18.0.9"
},
"lint-staged": {
"(apps|packages)/**/*.{js,ts,jsx,tsx}": [
diff --git a/packages/app-store-cli/README.md b/packages/app-store-cli/README.md
index 48153efd01..17618b6719 100644
--- a/packages/app-store-cli/README.md
+++ b/packages/app-store-cli/README.md
@@ -1,9 +1,11 @@
## How to build an App using the CLI
+
Refer to https://developer.cal.com/guides/how-to-build-an-app
## TODO
+
- Merge app-store:watch and app-store commands; introduce app-store --watch
- An app created through CLI should be able to completely skip API validation for testing purposes. Credentials should be created with no API specified specific to the app. It would allow us to test any app end to end not worrying about the corresponding API endpoint.
- Someone can add wrong directory name(which doesn't satisfy slug requirements) manually. How to handle it.
- Allow editing and updating app from the cal app itself - including assets uploading when developing locally.
-- Use AppDeclarativeHandler across all apps. Whatever isn't supported in it, support that.
\ No newline at end of file
+- Use AppDeclarativeHandler across all apps. Whatever isn't supported in it, support that.
diff --git a/packages/app-store-cli/package.json b/packages/app-store-cli/package.json
index 3b76be06c0..20085091a7 100644
--- a/packages/app-store-cli/package.json
+++ b/packages/app-store-cli/package.json
@@ -25,7 +25,7 @@
"react": "^18.2.0"
},
"devDependencies": {
- "@types/react": "^18.0.17",
+ "@types/react": "18.0.26",
"chokidar": "^3.5.3",
"eslint-plugin-react": "^7.30.1",
"eslint-plugin-react-hooks": "^4.6.0",
diff --git a/packages/app-store/BookingPageTagManager.tsx b/packages/app-store/BookingPageTagManager.tsx
index ef2ff57ad0..72abf76c59 100644
--- a/packages/app-store/BookingPageTagManager.tsx
+++ b/packages/app-store/BookingPageTagManager.tsx
@@ -3,7 +3,7 @@ import Script from "next/script";
import { appStoreMetadata } from "@calcom/app-store/appStoreMetaData";
import { getEventTypeAppData } from "@calcom/app-store/utils";
-import { appDataSchemas } from "./apps.schemas.generated";
+import type { appDataSchemas } from "./apps.schemas.generated";
export default function BookingPageTagManager({
eventType,
@@ -26,7 +26,7 @@ export default function BookingPageTagManager({
val ? (val.replace(/\{TRACKING_ID\}/g, trackingId) as T) : val;
return tag.scripts.map((script, index) => {
- const parsedAttributes: NonNullable = {};
+ const parsedAttributes: NonNullable<(typeof tag.scripts)[number]["attrs"]> = {};
const attrs = script.attrs || {};
Object.entries(attrs).forEach(([name, value]) => {
if (typeof value === "string") {
diff --git a/packages/app-store/EventTypeAppContext.tsx b/packages/app-store/EventTypeAppContext.tsx
index 0aa4cfb832..042044d8d8 100644
--- a/packages/app-store/EventTypeAppContext.tsx
+++ b/packages/app-store/EventTypeAppContext.tsx
@@ -1,5 +1,5 @@
import React from "react";
-import { z, ZodType } from "zod";
+import type { z, ZodType } from "zod";
export type GetAppData = (key: string) => unknown;
export type SetAppData = (key: string, value: unknown) => void;
diff --git a/packages/app-store/_appRegistry.ts b/packages/app-store/_appRegistry.ts
index ec63be2ba4..c7915da10f 100644
--- a/packages/app-store/_appRegistry.ts
+++ b/packages/app-store/_appRegistry.ts
@@ -1,7 +1,7 @@
import { appStoreMetadata } from "@calcom/app-store/appStoreMetaData";
import prisma, { safeAppSelect, safeCredentialSelect } from "@calcom/prisma";
-import { AppFrontendPayload as App } from "@calcom/types/App";
-import { CredentialFrontendPayload as Credential } from "@calcom/types/Credential";
+import type { AppFrontendPayload as App } from "@calcom/types/App";
+import type { CredentialFrontendPayload as Credential } from "@calcom/types/Credential";
export async function getAppWithMetadata(app: { dirName: string }) {
const appMetadata: App | null = appStoreMetadata[app.dirName as keyof typeof appStoreMetadata] as App;
diff --git a/packages/app-store/_components/AppCard.tsx b/packages/app-store/_components/AppCard.tsx
index 1350a2cf2a..00a938da3f 100644
--- a/packages/app-store/_components/AppCard.tsx
+++ b/packages/app-store/_components/AppCard.tsx
@@ -1,11 +1,11 @@
import { useAutoAnimate } from "@formkit/auto-animate/react";
import Link from "next/link";
-import { RouterOutputs } from "@calcom/trpc/react";
+import type { RouterOutputs } from "@calcom/trpc/react";
import { Switch } from "@calcom/ui";
-import { SetAppDataGeneric } from "../EventTypeAppContext";
-import { eventTypeAppCardZod } from "../eventTypeAppCardZod";
+import type { SetAppDataGeneric } from "../EventTypeAppContext";
+import type { eventTypeAppCardZod } from "../eventTypeAppCardZod";
import OmniInstallAppButton from "./OmniInstallAppButton";
export default function AppCard({
diff --git a/packages/app-store/_components/EventTypeAppCardInterface.tsx b/packages/app-store/_components/EventTypeAppCardInterface.tsx
index 102edf53a5..559d40d69f 100644
--- a/packages/app-store/_components/EventTypeAppCardInterface.tsx
+++ b/packages/app-store/_components/EventTypeAppCardInterface.tsx
@@ -1,9 +1,10 @@
-import EventTypeAppContext, { GetAppData, SetAppData } from "@calcom/app-store/EventTypeAppContext";
+import type { GetAppData, SetAppData } from "@calcom/app-store/EventTypeAppContext";
+import EventTypeAppContext from "@calcom/app-store/EventTypeAppContext";
import { EventTypeAddonMap } from "@calcom/app-store/apps.browser.generated";
-import { RouterOutputs } from "@calcom/trpc/react";
+import type { RouterOutputs } from "@calcom/trpc/react";
import { ErrorBoundary } from "@calcom/ui";
-import { EventTypeAppCardComponentProps } from "../types";
+import type { EventTypeAppCardComponentProps } from "../types";
import { DynamicComponent } from "./DynamicComponent";
export const EventTypeAppCard = (props: {
diff --git a/packages/app-store/_pages/setup/_getStaticProps.tsx b/packages/app-store/_pages/setup/_getStaticProps.tsx
index 0e8b631199..5e1f963ef6 100644
--- a/packages/app-store/_pages/setup/_getStaticProps.tsx
+++ b/packages/app-store/_pages/setup/_getStaticProps.tsx
@@ -1,4 +1,4 @@
-import { GetStaticPropsContext } from "next";
+import type { GetStaticPropsContext } from "next";
export const AppSetupPageMap = {
zapier: import("../../zapier/pages/setup/_getStaticProps"),
diff --git a/packages/app-store/_utils/decodeOAuthState.ts b/packages/app-store/_utils/decodeOAuthState.ts
index 9c593ad175..082d61177f 100644
--- a/packages/app-store/_utils/decodeOAuthState.ts
+++ b/packages/app-store/_utils/decodeOAuthState.ts
@@ -1,6 +1,6 @@
-import { NextApiRequest } from "next";
+import type { NextApiRequest } from "next";
-import { IntegrationOAuthCallbackState } from "../types";
+import type { IntegrationOAuthCallbackState } from "../types";
export function decodeOAuthState(req: NextApiRequest) {
if (typeof req.query.state !== "string") {
diff --git a/packages/app-store/_utils/encodeOAuthState.ts b/packages/app-store/_utils/encodeOAuthState.ts
index ba4f67c365..03cfaafbbd 100644
--- a/packages/app-store/_utils/encodeOAuthState.ts
+++ b/packages/app-store/_utils/encodeOAuthState.ts
@@ -1,6 +1,6 @@
-import { NextApiRequest } from "next";
+import type { NextApiRequest } from "next";
-import { IntegrationOAuthCallbackState } from "../types";
+import type { IntegrationOAuthCallbackState } from "../types";
export function encodeOAuthState(req: NextApiRequest) {
if (typeof req.query.state !== "string") {
diff --git a/packages/app-store/_utils/getCalendar.ts b/packages/app-store/_utils/getCalendar.ts
index 9ae28c128b..342e1cd74a 100644
--- a/packages/app-store/_utils/getCalendar.ts
+++ b/packages/app-store/_utils/getCalendar.ts
@@ -1,6 +1,6 @@
import logger from "@calcom/lib/logger";
import type { Calendar } from "@calcom/types/Calendar";
-import { CredentialPayload } from "@calcom/types/Credential";
+import type { CredentialPayload } from "@calcom/types/Credential";
import appStore from "..";
diff --git a/packages/app-store/_utils/useAddAppMutation.ts b/packages/app-store/_utils/useAddAppMutation.ts
index a5a67ad4d0..48dc918af0 100644
--- a/packages/app-store/_utils/useAddAppMutation.ts
+++ b/packages/app-store/_utils/useAddAppMutation.ts
@@ -1,8 +1,9 @@
-import { useMutation, UseMutationOptions } from "@tanstack/react-query";
+import type { UseMutationOptions } from "@tanstack/react-query";
+import { useMutation } from "@tanstack/react-query";
import type { IntegrationOAuthCallbackState } from "@calcom/app-store/types";
import { WEBAPP_URL } from "@calcom/lib/constants";
-import { App } from "@calcom/types/App";
+import type { App } from "@calcom/types/App";
import getInstalledAppPath from "./getInstalledAppPath";
diff --git a/packages/app-store/amie/DESCRIPTION.md b/packages/app-store/amie/DESCRIPTION.md
index c2c1986343..011c2862b2 100644
--- a/packages/app-store/amie/DESCRIPTION.md
+++ b/packages/app-store/amie/DESCRIPTION.md
@@ -15,4 +15,3 @@ items:
- Track what you listened to when
- Send scheduling links guests love
- Always know what your team is up to
-
diff --git a/packages/app-store/amie/api/add.ts b/packages/app-store/amie/api/add.ts
index 2537562817..d939f9cf79 100644
--- a/packages/app-store/amie/api/add.ts
+++ b/packages/app-store/amie/api/add.ts
@@ -1,4 +1,4 @@
-import { AppDeclarativeHandler } from "@calcom/types/AppHandler";
+import type { AppDeclarativeHandler } from "@calcom/types/AppHandler";
import { createDefaultInstallation } from "../../_utils/installation";
import appConfig from "../config.json";
diff --git a/packages/app-store/appStoreMetaData.ts b/packages/app-store/appStoreMetaData.ts
index c5212788d8..000861575d 100644
--- a/packages/app-store/appStoreMetaData.ts
+++ b/packages/app-store/appStoreMetaData.ts
@@ -1,4 +1,4 @@
-import { AppMeta } from "@calcom/types/App";
+import type { AppMeta } from "@calcom/types/App";
import { appStoreMetadata as rawAppStoreMetadata } from "./apps.metadata.generated";
diff --git a/packages/app-store/applecalendar/lib/CalendarService.ts b/packages/app-store/applecalendar/lib/CalendarService.ts
index 2b7aac1291..4565ba2d7d 100644
--- a/packages/app-store/applecalendar/lib/CalendarService.ts
+++ b/packages/app-store/applecalendar/lib/CalendarService.ts
@@ -1,5 +1,5 @@
import CalendarService from "@calcom/lib/CalendarService";
-import { CredentialPayload } from "@calcom/types/Credential";
+import type { CredentialPayload } from "@calcom/types/Credential";
export default class AppleCalendarService extends CalendarService {
constructor(credential: CredentialPayload) {
diff --git a/packages/app-store/around/DESCRIPTION.md b/packages/app-store/around/DESCRIPTION.md
index 12bf570c0e..c03182bf88 100644
--- a/packages/app-store/around/DESCRIPTION.md
+++ b/packages/app-store/around/DESCRIPTION.md
@@ -10,4 +10,4 @@ items:
- /api/app-store/around/8.jpg
---
-Discover radically unique video calls designed to help hybrid-remote teams create, collaborate and celebrate together.
\ No newline at end of file
+Discover radically unique video calls designed to help hybrid-remote teams create, collaborate and celebrate together.
diff --git a/packages/app-store/caldavcalendar/DESCRIPTION.md b/packages/app-store/caldavcalendar/DESCRIPTION.md
index a542acfddd..39f9e1c4cd 100644
--- a/packages/app-store/caldavcalendar/DESCRIPTION.md
+++ b/packages/app-store/caldavcalendar/DESCRIPTION.md
@@ -16,4 +16,4 @@ Every CalDav Provider is different and needs minor adjustments.
Follow our CalDav Roadmap here: https://github.com/calcom/cal.com/issues/3457.
-If your CalDav connection is not working, please try another Calendar provider (Google Mail or another CalDav).
\ No newline at end of file
+If your CalDav connection is not working, please try another Calendar provider (Google Mail or another CalDav).
diff --git a/packages/app-store/caldavcalendar/lib/CalendarService.ts b/packages/app-store/caldavcalendar/lib/CalendarService.ts
index 13bc20daf0..7c6b2db659 100644
--- a/packages/app-store/caldavcalendar/lib/CalendarService.ts
+++ b/packages/app-store/caldavcalendar/lib/CalendarService.ts
@@ -1,5 +1,5 @@
import CalendarService from "@calcom/lib/CalendarService";
-import { CredentialPayload } from "@calcom/types/Credential";
+import type { CredentialPayload } from "@calcom/types/Credential";
export default class CalDavCalendarService extends CalendarService {
constructor(credential: CredentialPayload) {
diff --git a/packages/app-store/campfire/DESCRIPTION.md b/packages/app-store/campfire/DESCRIPTION.md
index 87d30abbc4..f69dd985ac 100644
--- a/packages/app-store/campfire/DESCRIPTION.md
+++ b/packages/app-store/campfire/DESCRIPTION.md
@@ -9,20 +9,25 @@ items:
## Feel connected with your remote team
+
Team events, new hire onboardings, coffee chats, all on Campfire. No more awkward Zoom calls.
## Actually fun virtual socials
+
Campfire updates your team space with new games & activities weekly. You’ll never need to find another app or plan anything - ever!
## Your team's relaxed social space
+
Give your team the space to unwind and connect- separate from rigid Zoom calls.
### Fun & casual activities
+
We deliver fun and easy-to-play games & activities for teams of 2 to 20+, so you can just relax and connect.
### Organic interactions
+
80% of teams that use Campfire start having spontaneous social hangouts.
### Casual and friendly
-Separate work chats from social & human interactions by giving your team a more relaxed space to share.
+Separate work chats from social & human interactions by giving your team a more relaxed space to share.
diff --git a/packages/app-store/campfire/api/add.ts b/packages/app-store/campfire/api/add.ts
index 8f569c854c..44d56bb0fa 100644
--- a/packages/app-store/campfire/api/add.ts
+++ b/packages/app-store/campfire/api/add.ts
@@ -1,4 +1,4 @@
-import { AppDeclarativeHandler } from "@calcom/types/AppHandler";
+import type { AppDeclarativeHandler } from "@calcom/types/AppHandler";
import { createDefaultInstallation } from "../../_utils/installation";
import appConfig from "../config.json";
diff --git a/packages/app-store/closecom/DESCRIPTION.md b/packages/app-store/closecom/DESCRIPTION.md
index 4f94afbcca..c1839449e1 100644
--- a/packages/app-store/closecom/DESCRIPTION.md
+++ b/packages/app-store/closecom/DESCRIPTION.md
@@ -12,5 +12,3 @@ items:
- Track the entire sales process and performance with powerful activity and funnel reporting
Close.com subscriptions range from $29 - $149 per month. See pricing page
-
-
diff --git a/packages/app-store/closecom/lib/CalendarService.ts b/packages/app-store/closecom/lib/CalendarService.ts
index 276cb94026..f707b46207 100644
--- a/packages/app-store/closecom/lib/CalendarService.ts
+++ b/packages/app-store/closecom/lib/CalendarService.ts
@@ -1,6 +1,7 @@
import z from "zod";
-import CloseCom, { CloseComFieldOptions } from "@calcom/lib/CloseCom";
+import type { CloseComFieldOptions } from "@calcom/lib/CloseCom";
+import CloseCom from "@calcom/lib/CloseCom";
import { getCustomActivityTypeInstanceData } from "@calcom/lib/CloseComeUtils";
import { symmetricDecrypt } from "@calcom/lib/crypto";
import logger from "@calcom/lib/logger";
@@ -11,7 +12,7 @@ import type {
IntegrationCalendar,
NewCalendarEventType,
} from "@calcom/types/Calendar";
-import { CredentialPayload } from "@calcom/types/Credential";
+import type { CredentialPayload } from "@calcom/types/Credential";
const apiKeySchema = z.object({
encrypted: z.string(),
diff --git a/packages/app-store/dailyvideo/DESCRIPTION.md b/packages/app-store/dailyvideo/DESCRIPTION.md
index 647207c43c..864668b22f 100644
--- a/packages/app-store/dailyvideo/DESCRIPTION.md
+++ b/packages/app-store/dailyvideo/DESCRIPTION.md
@@ -5,4 +5,4 @@ items:
- /api/app-store/dailyvideo/3.jpg
---
-Cal Video is the in-house web-based video conferencing platform powered by Daily.co, which is minimalistic and lightweight, but has most of the features you need.
\ No newline at end of file
+Cal Video is the in-house web-based video conferencing platform powered by Daily.co, which is minimalistic and lightweight, but has most of the features you need.
diff --git a/packages/app-store/dailyvideo/lib/VideoApiAdapter.ts b/packages/app-store/dailyvideo/lib/VideoApiAdapter.ts
index 463bdec28e..7e6313d96f 100644
--- a/packages/app-store/dailyvideo/lib/VideoApiAdapter.ts
+++ b/packages/app-store/dailyvideo/lib/VideoApiAdapter.ts
@@ -1,9 +1,10 @@
import { z } from "zod";
import { handleErrorsJson } from "@calcom/lib/errors";
-import { GetRecordingsResponseSchema, getRecordingsResponseSchema } from "@calcom/prisma/zod-utils";
+import type { GetRecordingsResponseSchema } from "@calcom/prisma/zod-utils";
+import { getRecordingsResponseSchema } from "@calcom/prisma/zod-utils";
import type { CalendarEvent } from "@calcom/types/Calendar";
-import { CredentialPayload } from "@calcom/types/Credential";
+import type { CredentialPayload } from "@calcom/types/Credential";
import type { PartialReference } from "@calcom/types/EventManager";
import type { VideoApiAdapter, VideoCallData } from "@calcom/types/VideoApiAdapter";
diff --git a/packages/app-store/ee/routing-forms/api/add.ts b/packages/app-store/ee/routing-forms/api/add.ts
index 30cedc3f81..b80e0605f9 100644
--- a/packages/app-store/ee/routing-forms/api/add.ts
+++ b/packages/app-store/ee/routing-forms/api/add.ts
@@ -1,5 +1,5 @@
import prisma from "@calcom/prisma";
-import { AppDeclarativeHandler } from "@calcom/types/AppHandler";
+import type { AppDeclarativeHandler } from "@calcom/types/AppHandler";
import appConfig from "../config.json";
diff --git a/packages/app-store/ee/routing-forms/api/responses/[formId].ts b/packages/app-store/ee/routing-forms/api/responses/[formId].ts
index 2cdf1846ac..0480804d49 100644
--- a/packages/app-store/ee/routing-forms/api/responses/[formId].ts
+++ b/packages/app-store/ee/routing-forms/api/responses/[formId].ts
@@ -1,10 +1,10 @@
+import type { App_RoutingForms_Form } from "@prisma/client";
import type { NextApiRequest, NextApiResponse } from "next";
import prisma from "@calcom/prisma";
import { getSerializableForm } from "../../lib/getSerializableForm";
-import { Response, SerializableForm } from "../../types/types";
-import { App_RoutingForms_Form } from ".prisma/client";
+import type { Response, SerializableForm } from "../../types/types";
function escapeCsvText(str: string) {
return str.replace(/,/, "%2C");
diff --git a/packages/app-store/ee/routing-forms/components/FormActions.tsx b/packages/app-store/ee/routing-forms/components/FormActions.tsx
index 379e1f3157..890a9443f9 100644
--- a/packages/app-store/ee/routing-forms/components/FormActions.tsx
+++ b/packages/app-store/ee/routing-forms/components/FormActions.tsx
@@ -1,3 +1,4 @@
+import type { App_RoutingForms_Form } from "@prisma/client";
import type { NextRouter } from "next/router";
import { useRouter } from "next/router";
import { createContext, forwardRef, useContext, useState } from "react";
@@ -10,9 +11,9 @@ import { classNames } from "@calcom/lib";
import { CAL_URL } from "@calcom/lib/constants";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { trpc } from "@calcom/trpc/react";
+import type { ButtonProps } from "@calcom/ui";
import {
Button,
- ButtonProps,
ConfirmationDialogContent,
Dialog,
DialogClose,
@@ -33,8 +34,7 @@ import { FiMoreHorizontal } from "@calcom/ui/components/icon";
import { EmbedButton, EmbedDialog } from "@components/Embed";
import getFieldIdentifier from "../lib/getFieldIdentifier";
-import { SerializableForm } from "../types/types";
-import { App_RoutingForms_Form } from ".prisma/client";
+import type { SerializableForm } from "../types/types";
type RoutingForm = SerializableForm;
diff --git a/packages/app-store/ee/routing-forms/components/FormInputFields.tsx b/packages/app-store/ee/routing-forms/components/FormInputFields.tsx
index bae6fc581e..a692e2a4be 100644
--- a/packages/app-store/ee/routing-forms/components/FormInputFields.tsx
+++ b/packages/app-store/ee/routing-forms/components/FormInputFields.tsx
@@ -1,9 +1,9 @@
-import { App_RoutingForms_Form } from "@prisma/client";
-import { Dispatch, SetStateAction } from "react";
+import type { App_RoutingForms_Form } from "@prisma/client";
+import type { Dispatch, SetStateAction } from "react";
import { getQueryBuilderConfig } from "../lib/getQueryBuilderConfig";
import isRouterLinkedField from "../lib/isRouterLinkedField";
-import { SerializableForm, Response } from "../types/types";
+import type { SerializableForm, Response } from "../types/types";
type Props = {
form: SerializableForm;
diff --git a/packages/app-store/ee/routing-forms/components/RoutingNavBar.tsx b/packages/app-store/ee/routing-forms/components/RoutingNavBar.tsx
index e3fe52dd9b..25c53a3610 100644
--- a/packages/app-store/ee/routing-forms/components/RoutingNavBar.tsx
+++ b/packages/app-store/ee/routing-forms/components/RoutingNavBar.tsx
@@ -1,6 +1,6 @@
import { HorizontalTabs } from "@calcom/ui";
-import { getSerializableForm } from "../lib/getSerializableForm";
+import type { getSerializableForm } from "../lib/getSerializableForm";
export default function RoutingNavBar({
form,
diff --git a/packages/app-store/ee/routing-forms/components/SingleForm.tsx b/packages/app-store/ee/routing-forms/components/SingleForm.tsx
index 3052a832e8..989e40378b 100644
--- a/packages/app-store/ee/routing-forms/components/SingleForm.tsx
+++ b/packages/app-store/ee/routing-forms/components/SingleForm.tsx
@@ -1,13 +1,14 @@
-import { App_RoutingForms_Form } from "@prisma/client";
+import type { App_RoutingForms_Form } from "@prisma/client";
import Link from "next/link";
import { useEffect, useState } from "react";
-import { Controller, useForm, UseFormReturn } from "react-hook-form";
+import type { UseFormReturn } from "react-hook-form";
+import { Controller, useForm } from "react-hook-form";
import { ShellMain } from "@calcom/features/shell/Shell";
import useApp from "@calcom/lib/hooks/useApp";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { trpc } from "@calcom/trpc/react";
-import {
+import type {
AppGetServerSidePropsContext,
AppPrisma,
AppSsrInit,
@@ -38,7 +39,7 @@ import { FiExternalLink, FiLink, FiDownload, FiCode, FiTrash } from "@calcom/ui/
import { RoutingPages } from "../lib/RoutingPages";
import { getSerializableForm } from "../lib/getSerializableForm";
import { processRoute } from "../lib/processRoute";
-import { Response, Route, SerializableForm } from "../types/types";
+import type { Response, Route, SerializableForm } from "../types/types";
import { FormAction, FormActionsDropdown, FormActionsProvider } from "./FormActions";
import FormInputFields from "./FormInputFields";
import RoutingNavBar from "./RoutingNavBar";
diff --git a/packages/app-store/ee/routing-forms/components/react-awesome-query-builder/config/config.tsx b/packages/app-store/ee/routing-forms/components/react-awesome-query-builder/config/config.tsx
index 808bdcee30..8a00f35443 100644
--- a/packages/app-store/ee/routing-forms/components/react-awesome-query-builder/config/config.tsx
+++ b/packages/app-store/ee/routing-forms/components/react-awesome-query-builder/config/config.tsx
@@ -1,4 +1,4 @@
-import { Settings, Widgets, SelectWidgetProps } from "react-awesome-query-builder";
+import type { Settings, Widgets, SelectWidgetProps } from "react-awesome-query-builder";
// Figure out why ee/routing-forms/env.d.ts doesn't work
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
//@ts-ignore
diff --git a/packages/app-store/ee/routing-forms/components/react-awesome-query-builder/widgets.tsx b/packages/app-store/ee/routing-forms/components/react-awesome-query-builder/widgets.tsx
index 19200e8aac..76a476a02c 100644
--- a/packages/app-store/ee/routing-forms/components/react-awesome-query-builder/widgets.tsx
+++ b/packages/app-store/ee/routing-forms/components/react-awesome-query-builder/widgets.tsx
@@ -1,5 +1,5 @@
-import { ChangeEvent } from "react";
-import {
+import type { ChangeEvent } from "react";
+import type {
ButtonGroupProps,
ButtonProps,
ConjsProps,
diff --git a/packages/app-store/ee/routing-forms/emails/components/ResponseEmail.tsx b/packages/app-store/ee/routing-forms/emails/components/ResponseEmail.tsx
index 8a935f548d..77ae541933 100644
--- a/packages/app-store/ee/routing-forms/emails/components/ResponseEmail.tsx
+++ b/packages/app-store/ee/routing-forms/emails/components/ResponseEmail.tsx
@@ -1,8 +1,9 @@
+import type { App_RoutingForms_Form } from "@prisma/client";
+
import { BaseEmailHtml, Info } from "@calcom/emails/src/components";
import { WEBAPP_URL } from "@calcom/lib/constants";
-import { Response } from "../../types/types";
-import { App_RoutingForms_Form } from ".prisma/client";
+import type { Response } from "../../types/types";
export const ResponseEmail = ({
form,
diff --git a/packages/app-store/ee/routing-forms/emails/templates/response-email.ts b/packages/app-store/ee/routing-forms/emails/templates/response-email.ts
index 1805b96b46..fdfb9e5a65 100644
--- a/packages/app-store/ee/routing-forms/emails/templates/response-email.ts
+++ b/packages/app-store/ee/routing-forms/emails/templates/response-email.ts
@@ -1,8 +1,9 @@
+import type { App_RoutingForms_Form } from "@prisma/client";
+
import { renderEmail } from "@calcom/emails";
import BaseEmail from "@calcom/emails/templates/_base-email";
-import { Response } from "../../types/types";
-import { App_RoutingForms_Form } from ".prisma/client";
+import type { Response } from "../../types/types";
type Form = Pick;
export default class ResponseEmail extends BaseEmail {
diff --git a/packages/app-store/ee/routing-forms/lib/RoutingPages.ts b/packages/app-store/ee/routing-forms/lib/RoutingPages.ts
index ba87e6819e..182267f6c7 100644
--- a/packages/app-store/ee/routing-forms/lib/RoutingPages.ts
+++ b/packages/app-store/ee/routing-forms/lib/RoutingPages.ts
@@ -1,4 +1,4 @@
-import { LocalRoute } from "../types/types";
+import type { LocalRoute } from "../types/types";
export const RoutingPages: { label: string; value: NonNullable["type"] }[] = [
{
diff --git a/packages/app-store/ee/routing-forms/lib/createFallbackRoute.ts b/packages/app-store/ee/routing-forms/lib/createFallbackRoute.ts
index d509bd2aa9..b030f0092e 100644
--- a/packages/app-store/ee/routing-forms/lib/createFallbackRoute.ts
+++ b/packages/app-store/ee/routing-forms/lib/createFallbackRoute.ts
@@ -1,6 +1,6 @@
import { Utils as QbUtils } from "react-awesome-query-builder";
-import { GlobalRoute, SerializableRoute } from "../types/types";
+import type { GlobalRoute, SerializableRoute } from "../types/types";
export const createFallbackRoute = (): Exclude => {
const uuid = QbUtils.uuid();
diff --git a/packages/app-store/ee/routing-forms/lib/getConnectedForms.ts b/packages/app-store/ee/routing-forms/lib/getConnectedForms.ts
index d989d70933..defeb335e1 100644
--- a/packages/app-store/ee/routing-forms/lib/getConnectedForms.ts
+++ b/packages/app-store/ee/routing-forms/lib/getConnectedForms.ts
@@ -1,4 +1,4 @@
-import { App_RoutingForms_Form } from "@calcom/prisma/client";
+import type { App_RoutingForms_Form } from "@calcom/prisma/client";
export default async function getConnectedForms(
prisma: typeof import("@calcom/prisma").default,
diff --git a/packages/app-store/ee/routing-forms/lib/getFieldIdentifier.ts b/packages/app-store/ee/routing-forms/lib/getFieldIdentifier.ts
index 7df9c1146f..9d0eebdeaf 100644
--- a/packages/app-store/ee/routing-forms/lib/getFieldIdentifier.ts
+++ b/packages/app-store/ee/routing-forms/lib/getFieldIdentifier.ts
@@ -1,4 +1,4 @@
-import { Field } from "../types/types";
+import type { Field } from "../types/types";
const getFieldIdentifier = (field: Field) => field.identifier || field.label;
diff --git a/packages/app-store/ee/routing-forms/lib/getQueryBuilderConfig.ts b/packages/app-store/ee/routing-forms/lib/getQueryBuilderConfig.ts
index f76db80617..46af4cd1c9 100644
--- a/packages/app-store/ee/routing-forms/lib/getQueryBuilderConfig.ts
+++ b/packages/app-store/ee/routing-forms/lib/getQueryBuilderConfig.ts
@@ -1,5 +1,5 @@
import { FieldTypes } from "../pages/form-edit/[...appPages]";
-import { QueryBuilderUpdatedConfig, RoutingForm } from "../types/types";
+import type { QueryBuilderUpdatedConfig, RoutingForm } from "../types/types";
import { InitialConfig } from "./InitialConfig";
export function getQueryBuilderConfig(form: RoutingForm, forReporting = false) {
diff --git a/packages/app-store/ee/routing-forms/lib/getSerializableForm.ts b/packages/app-store/ee/routing-forms/lib/getSerializableForm.ts
index 45dbed715b..f25fbb8efe 100644
--- a/packages/app-store/ee/routing-forms/lib/getSerializableForm.ts
+++ b/packages/app-store/ee/routing-forms/lib/getSerializableForm.ts
@@ -1,10 +1,11 @@
-import { App_RoutingForms_Form } from "@prisma/client";
-import { z } from "zod";
+import type { App_RoutingForms_Form } from "@prisma/client";
+import type { z } from "zod";
import { RoutingFormSettings } from "@calcom/prisma/zod-utils";
-import { SerializableForm } from "../types/types";
-import { zodFields, zodRoutes, zodRoutesView, zodFieldsView } from "../zod";
+import type { SerializableForm } from "../types/types";
+import type { zodRoutesView, zodFieldsView } from "../zod";
+import { zodFields, zodRoutes } from "../zod";
import getConnectedForms from "./getConnectedForms";
import isRouter from "./isRouter";
import isRouterLinkedField from "./isRouterLinkedField";
diff --git a/packages/app-store/ee/routing-forms/lib/isFallbackRoute.ts b/packages/app-store/ee/routing-forms/lib/isFallbackRoute.ts
index ab02bd04ac..d47b7f50d6 100644
--- a/packages/app-store/ee/routing-forms/lib/isFallbackRoute.ts
+++ b/packages/app-store/ee/routing-forms/lib/isFallbackRoute.ts
@@ -1,6 +1,6 @@
-import { z } from "zod";
+import type { z } from "zod";
-import { zodRoute } from "../zod";
+import type { zodRoute } from "../zod";
import isRouter from "./isRouter";
export const isFallbackRoute = (route: z.infer) => {
diff --git a/packages/app-store/ee/routing-forms/lib/isFormEditAllowed.ts b/packages/app-store/ee/routing-forms/lib/isFormEditAllowed.ts
index 1e4d9de86a..1d1bc15a7e 100644
--- a/packages/app-store/ee/routing-forms/lib/isFormEditAllowed.ts
+++ b/packages/app-store/ee/routing-forms/lib/isFormEditAllowed.ts
@@ -1,6 +1,6 @@
-import prisma from "@calcom/prisma";
+import type { App_RoutingForms_Form, User } from "@prisma/client";
-import { App_RoutingForms_Form, User } from ".prisma/client";
+import prisma from "@calcom/prisma";
export async function isFormEditAllowed({
userId,
diff --git a/packages/app-store/ee/routing-forms/lib/isRouter.ts b/packages/app-store/ee/routing-forms/lib/isRouter.ts
index 7710b1c50f..093a8428b3 100644
--- a/packages/app-store/ee/routing-forms/lib/isRouter.ts
+++ b/packages/app-store/ee/routing-forms/lib/isRouter.ts
@@ -1,6 +1,6 @@
-import { z } from "zod";
+import type { z } from "zod";
-import { zodRouterRouteView, zodRoute, zodRouterRoute, zodRouteView } from "../zod";
+import type { zodRouterRouteView, zodRoute, zodRouterRoute, zodRouteView } from "../zod";
export default function isRouter(
route: z.infer | z.infer
diff --git a/packages/app-store/ee/routing-forms/lib/isRouterLinkedField.ts b/packages/app-store/ee/routing-forms/lib/isRouterLinkedField.ts
index a2bd6428b7..d57889cf4b 100644
--- a/packages/app-store/ee/routing-forms/lib/isRouterLinkedField.ts
+++ b/packages/app-store/ee/routing-forms/lib/isRouterLinkedField.ts
@@ -1,6 +1,6 @@
-import { z } from "zod";
+import type { z } from "zod";
-import { zodFieldView, zodField, zodRouterField, zodRouterFieldView } from "../zod";
+import type { zodFieldView, zodField, zodRouterField, zodRouterFieldView } from "../zod";
export default function isRouterLinkedField(
field: z.infer | z.infer
diff --git a/packages/app-store/ee/routing-forms/lib/processRoute.tsx b/packages/app-store/ee/routing-forms/lib/processRoute.tsx
index 9bb0e834b5..d3268d2b43 100644
--- a/packages/app-store/ee/routing-forms/lib/processRoute.tsx
+++ b/packages/app-store/ee/routing-forms/lib/processRoute.tsx
@@ -1,13 +1,13 @@
+import type { App_RoutingForms_Form } from "@prisma/client";
import jsonLogic from "json-logic-js";
import { Utils as QbUtils } from "react-awesome-query-builder";
-import { z } from "zod";
+import type { z } from "zod";
-import { Response, Route, SerializableForm } from "../types/types";
-import { zodNonRouterRoute } from "../zod";
+import type { Response, Route, SerializableForm } from "../types/types";
+import type { zodNonRouterRoute } from "../zod";
import { getQueryBuilderConfig } from "./getQueryBuilderConfig";
import { isFallbackRoute } from "./isFallbackRoute";
import isRouter from "./isRouter";
-import { App_RoutingForms_Form } from ".prisma/client";
export function processRoute({
form,
diff --git a/packages/app-store/ee/routing-forms/pages/form-edit/[...appPages].tsx b/packages/app-store/ee/routing-forms/pages/form-edit/[...appPages].tsx
index 2a9e15b54b..1636c58af2 100644
--- a/packages/app-store/ee/routing-forms/pages/form-edit/[...appPages].tsx
+++ b/packages/app-store/ee/routing-forms/pages/form-edit/[...appPages].tsx
@@ -1,6 +1,7 @@
import { useAutoAnimate } from "@formkit/auto-animate/react";
import { useEffect, useState } from "react";
-import { Controller, useFieldArray, UseFormReturn } from "react-hook-form";
+import type { UseFormReturn } from "react-hook-form";
+import { Controller, useFieldArray } from "react-hook-form";
import { v4 as uuidv4 } from "uuid";
import Shell from "@calcom/features/shell/Shell";
@@ -16,11 +17,11 @@ import {
} from "@calcom/ui";
import { FiPlus, FiFileText } from "@calcom/ui/components/icon";
-import { inferSSRProps } from "@lib/types/inferSSRProps";
+import type { inferSSRProps } from "@lib/types/inferSSRProps";
+import type { RoutingFormWithResponseCount } from "../../components/SingleForm";
import SingleForm, {
getServerSidePropsForSingleFormView as getServerSideProps,
- RoutingFormWithResponseCount,
} from "../../components/SingleForm";
export { getServerSideProps };
diff --git a/packages/app-store/ee/routing-forms/pages/forms/[...appPages].tsx b/packages/app-store/ee/routing-forms/pages/forms/[...appPages].tsx
index d29ee773f8..ec7a5df3cd 100644
--- a/packages/app-store/ee/routing-forms/pages/forms/[...appPages].tsx
+++ b/packages/app-store/ee/routing-forms/pages/forms/[...appPages].tsx
@@ -9,7 +9,7 @@ import useApp from "@calcom/lib/hooks/useApp";
import { useHasPaidPlan } from "@calcom/lib/hooks/useHasPaidPlan";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { trpc } from "@calcom/trpc/react";
-import { AppGetServerSidePropsContext, AppPrisma, AppUser } from "@calcom/types/AppGetServerSideProps";
+import type { AppGetServerSidePropsContext, AppPrisma, AppUser } from "@calcom/types/AppGetServerSideProps";
import {
Badge,
ButtonGroup,
@@ -39,7 +39,7 @@ import {
FiMail,
} from "@calcom/ui/components/icon";
-import { inferSSRProps } from "@lib/types/inferSSRProps";
+import type { inferSSRProps } from "@lib/types/inferSSRProps";
import { FormAction, FormActionsDropdown, FormActionsProvider } from "../../components/FormActions";
import { getSerializableForm } from "../../lib/getSerializableForm";
diff --git a/packages/app-store/ee/routing-forms/pages/reporting/[...appPages].tsx b/packages/app-store/ee/routing-forms/pages/reporting/[...appPages].tsx
index 2c3616490e..695afe8b7b 100644
--- a/packages/app-store/ee/routing-forms/pages/reporting/[...appPages].tsx
+++ b/packages/app-store/ee/routing-forms/pages/reporting/[...appPages].tsx
@@ -1,20 +1,18 @@
import React, { useCallback, useRef, useState } from "react";
-import {
- Builder,
+import type {
BuilderProps,
Config,
ImmutableTree,
JsonLogicResult,
JsonTree,
- Query,
- Utils as QbUtils,
} from "react-awesome-query-builder";
+import { Builder, Query, Utils as QbUtils } from "react-awesome-query-builder";
import Shell from "@calcom/features/shell/Shell";
import { classNames } from "@calcom/lib";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { trpc } from "@calcom/trpc/react";
-import { inferSSRProps } from "@calcom/types/inferSSRProps";
+import type { inferSSRProps } from "@calcom/types/inferSSRProps";
import { Button } from "@calcom/ui";
import { useInViewObserver } from "@lib/hooks/useInViewObserver";
@@ -22,9 +20,9 @@ import { useInViewObserver } from "@lib/hooks/useInViewObserver";
import SingleForm, {
getServerSidePropsForSingleFormView as getServerSideProps,
} from "../../components/SingleForm";
-import QueryBuilderInitialConfig from "../../components/react-awesome-query-builder/config/config";
+import type QueryBuilderInitialConfig from "../../components/react-awesome-query-builder/config/config";
import "../../components/react-awesome-query-builder/styles.css";
-import { JsonLogicQuery } from "../../jsonLogicToPrisma";
+import type { JsonLogicQuery } from "../../jsonLogicToPrisma";
import { getQueryBuilderConfig } from "../../lib/getQueryBuilderConfig";
export { getServerSideProps };
diff --git a/packages/app-store/ee/routing-forms/pages/route-builder/[...appPages].tsx b/packages/app-store/ee/routing-forms/pages/route-builder/[...appPages].tsx
index c3c09a6c58..7ef136d4c9 100644
--- a/packages/app-store/ee/routing-forms/pages/route-builder/[...appPages].tsx
+++ b/packages/app-store/ee/routing-forms/pages/route-builder/[...appPages].tsx
@@ -3,11 +3,11 @@ import Link from "next/link";
import React, { useCallback, useState } from "react";
import { Query, Builder, Utils as QbUtils } from "react-awesome-query-builder";
// types
-import { JsonTree, ImmutableTree, BuilderProps } from "react-awesome-query-builder";
+import type { JsonTree, ImmutableTree, BuilderProps } from "react-awesome-query-builder";
import Shell from "@calcom/features/shell/Shell";
import { trpc } from "@calcom/trpc/react";
-import { inferSSRProps } from "@calcom/types/inferSSRProps";
+import type { inferSSRProps } from "@calcom/types/inferSSRProps";
import {
SelectField,
FormCard,
@@ -25,7 +25,12 @@ import { RoutingPages } from "../../lib/RoutingPages";
import { createFallbackRoute } from "../../lib/createFallbackRoute";
import { getQueryBuilderConfig } from "../../lib/getQueryBuilderConfig";
import isRouter from "../../lib/isRouter";
-import { GlobalRoute, LocalRoute, QueryBuilderUpdatedConfig, SerializableRoute } from "../../types/types";
+import type {
+ GlobalRoute,
+ LocalRoute,
+ QueryBuilderUpdatedConfig,
+ SerializableRoute,
+} from "../../types/types";
export { getServerSideProps };
diff --git a/packages/app-store/ee/routing-forms/pages/router/[...appPages].tsx b/packages/app-store/ee/routing-forms/pages/router/[...appPages].tsx
index 3c3792c331..85ed598a6c 100644
--- a/packages/app-store/ee/routing-forms/pages/router/[...appPages].tsx
+++ b/packages/app-store/ee/routing-forms/pages/router/[...appPages].tsx
@@ -1,13 +1,13 @@
import Head from "next/head";
import z from "zod";
-import { AppGetServerSidePropsContext, AppPrisma } from "@calcom/types/AppGetServerSideProps";
-import { inferSSRProps } from "@calcom/types/inferSSRProps";
+import type { AppGetServerSidePropsContext, AppPrisma } from "@calcom/types/AppGetServerSideProps";
+import type { inferSSRProps } from "@calcom/types/inferSSRProps";
import getFieldIdentifier from "../../lib/getFieldIdentifier";
import { getSerializableForm } from "../../lib/getSerializableForm";
import { processRoute } from "../../lib/processRoute";
-import { Response } from "../../types/types";
+import type { Response } from "../../types/types";
export default function Router({ form, message }: inferSSRProps) {
return (
diff --git a/packages/app-store/ee/routing-forms/pages/routing-link/[...appPages].tsx b/packages/app-store/ee/routing-forms/pages/routing-link/[...appPages].tsx
index 63e02bc2c2..8c09ccd342 100644
--- a/packages/app-store/ee/routing-forms/pages/routing-link/[...appPages].tsx
+++ b/packages/app-store/ee/routing-forms/pages/routing-link/[...appPages].tsx
@@ -1,6 +1,7 @@
import Head from "next/head";
import { useRouter } from "next/router";
-import { FormEvent, useEffect, useRef, useState } from "react";
+import type { FormEvent } from "react";
+import { useEffect, useRef, useState } from "react";
import { Toaster } from "react-hot-toast";
import { v4 as uuidv4 } from "uuid";
@@ -10,14 +11,14 @@ import classNames from "@calcom/lib/classNames";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import useTheme from "@calcom/lib/hooks/useTheme";
import { trpc } from "@calcom/trpc/react";
-import { AppGetServerSidePropsContext, AppPrisma } from "@calcom/types/AppGetServerSideProps";
-import { inferSSRProps } from "@calcom/types/inferSSRProps";
+import type { AppGetServerSidePropsContext, AppPrisma } from "@calcom/types/AppGetServerSideProps";
+import type { inferSSRProps } from "@calcom/types/inferSSRProps";
import { Button, showToast } from "@calcom/ui";
import FormInputFields from "../../components/FormInputFields";
import { getSerializableForm } from "../../lib/getSerializableForm";
import { processRoute } from "../../lib/processRoute";
-import { Response, Route } from "../../types/types";
+import type { Response, Route } from "../../types/types";
function RoutingForm({ form, profile, ...restProps }: inferSSRProps) {
const [customPageMessage, setCustomPageMessage] = useState("");
diff --git a/packages/app-store/ee/routing-forms/playwright/tests/basic.e2e.ts b/packages/app-store/ee/routing-forms/playwright/tests/basic.e2e.ts
index e413277403..bf7f7855f0 100644
--- a/packages/app-store/ee/routing-forms/playwright/tests/basic.e2e.ts
+++ b/packages/app-store/ee/routing-forms/playwright/tests/basic.e2e.ts
@@ -1,6 +1,8 @@
-import { expect, Page } from "@playwright/test";
+import type { Page } from "@playwright/test";
+import { expect } from "@playwright/test";
-import { Fixtures, test } from "@calcom/web/playwright/lib/fixtures";
+import type { Fixtures } from "@calcom/web/playwright/lib/fixtures";
+import { test } from "@calcom/web/playwright/lib/fixtures";
function todo(title: string) {
// eslint-disable-next-line playwright/no-skipped-test, @typescript-eslint/no-empty-function
@@ -47,7 +49,7 @@ test.describe("Routing Forms", () => {
await page.reload();
- expect(await page.inputValue(`[data-testid="description"]`), description);
+ expect(await page.inputValue(`[data-testid="description"]`)).toMatch(description);
expect(await page.locator('[data-testid="field"]').count()).toBe(1);
await expectCurrentFormToHaveFields(page, { 0: field }, types);
@@ -340,14 +342,9 @@ async function expectCurrentFormToHaveFields(
) {
for (const [index, field] of Object.entries(fields)) {
expect(await page.inputValue(`[name="fields.${index}.label"]`)).toBe(field.label);
- expect(
- await page
- .locator(".data-testid-field-type")
- .nth(+index)
- .locator("div")
- .nth(1)
- .innerText()
- ).toBe(types[field.typeIndex]);
+ expect(await page.locator(".data-testid-field-type").nth(+index).locator("div").nth(1).innerText()).toBe(
+ types[field.typeIndex]
+ );
}
}
diff --git a/packages/app-store/ee/routing-forms/trpc-router.ts b/packages/app-store/ee/routing-forms/trpc-router.ts
index 3125b186ab..600e8314e5 100644
--- a/packages/app-store/ee/routing-forms/trpc-router.ts
+++ b/packages/app-store/ee/routing-forms/trpc-router.ts
@@ -1,4 +1,5 @@
-import { App_RoutingForms_Form, Prisma, User, WebhookTriggerEvents } from "@prisma/client";
+import type { App_RoutingForms_Form, User } from "@prisma/client";
+import { Prisma, WebhookTriggerEvents } from "@prisma/client";
import { z } from "zod";
import getWebhooks from "@calcom/features/webhooks/lib/getWebhooks";
@@ -7,7 +8,7 @@ import logger from "@calcom/lib/logger";
import { RoutingFormSettings } from "@calcom/prisma/zod-utils";
import { TRPCError } from "@calcom/trpc/server";
import { authedProcedure, publicProcedure, router } from "@calcom/trpc/server/trpc";
-import { Ensure } from "@calcom/types/utils";
+import type { Ensure } from "@calcom/types/utils";
import ResponseEmail from "./emails/templates/response-email";
import { jsonLogicToPrisma } from "./jsonLogicToPrisma";
@@ -18,14 +19,14 @@ import { isFallbackRoute } from "./lib/isFallbackRoute";
import { isFormEditAllowed } from "./lib/isFormEditAllowed";
import isRouter from "./lib/isRouter";
import isRouterLinkedField from "./lib/isRouterLinkedField";
-import { Response, SerializableForm } from "./types/types";
+import type { Response, SerializableForm } from "./types/types";
import { zodFields, zodRouterRoute, zodRoutes } from "./zod";
async function onFormSubmission(
form: Ensure & { user: User }, "fields">,
response: Response
) {
- const fieldResponsesByName: Record = {};
+ const fieldResponsesByName: Record = {};
for (const [fieldId, fieldResponse] of Object.entries(response)) {
// Use the label lowercased as the key to identify a field.
diff --git a/packages/app-store/ee/routing-forms/types/types.d.ts b/packages/app-store/ee/routing-forms/types/types.d.ts
index 76e778b291..30ace46329 100644
--- a/packages/app-store/ee/routing-forms/types/types.d.ts
+++ b/packages/app-store/ee/routing-forms/types/types.d.ts
@@ -1,10 +1,10 @@
-import { App_RoutingForms_Form } from "@prisma/client";
-import z from "zod";
+import type { App_RoutingForms_Form } from "@prisma/client";
+import type z from "zod";
-import { RoutingFormSettings } from "@calcom/prisma/zod-utils";
+import type { RoutingFormSettings } from "@calcom/prisma/zod-utils";
-import QueryBuilderInitialConfig from "../components/react-awesome-query-builder/config/config";
-import { zodRouterRouteView, zodNonRouterRoute, zodFieldsView, zodRoutesView } from "../zod";
+import type QueryBuilderInitialConfig from "../components/react-awesome-query-builder/config/config";
+import type { zodRouterRouteView, zodNonRouterRoute, zodFieldsView, zodRoutesView } from "../zod";
export type RoutingForm = SerializableForm;
diff --git a/packages/app-store/exchange2013calendar/lib/CalendarService.ts b/packages/app-store/exchange2013calendar/lib/CalendarService.ts
index fcf029edf4..ac00747b65 100644
--- a/packages/app-store/exchange2013calendar/lib/CalendarService.ts
+++ b/packages/app-store/exchange2013calendar/lib/CalendarService.ts
@@ -24,14 +24,14 @@ import { symmetricDecrypt } from "@calcom/lib/crypto";
// Probably don't need
// import { CALENDAR_INTEGRATIONS_TYPES } from "@calcom/lib/integrations/calendar/constants/generals";
import logger from "@calcom/lib/logger";
-import {
+import type {
Calendar,
CalendarEvent,
EventBusyDate,
IntegrationCalendar,
NewCalendarEventType,
} from "@calcom/types/Calendar";
-import { CredentialPayload } from "@calcom/types/Credential";
+import type { CredentialPayload } from "@calcom/types/Credential";
export default class ExchangeCalendarService implements Calendar {
private url = "";
diff --git a/packages/app-store/exchange2016calendar/components/InstallAppButton.tsx b/packages/app-store/exchange2016calendar/components/InstallAppButton.tsx
index 1f31c13b77..e0339a3638 100644
--- a/packages/app-store/exchange2016calendar/components/InstallAppButton.tsx
+++ b/packages/app-store/exchange2016calendar/components/InstallAppButton.tsx
@@ -1,5 +1,5 @@
import useAddAppMutation from "../../_utils/useAddAppMutation";
-import { InstallAppButtonProps } from "../../types";
+import type { InstallAppButtonProps } from "../../types";
export default function InstallAppButton(props: InstallAppButtonProps) {
const mutation = useAddAppMutation("exchange2016_calendar");
diff --git a/packages/app-store/exchange2016calendar/lib/CalendarService.ts b/packages/app-store/exchange2016calendar/lib/CalendarService.ts
index 71868477c3..2c60e4fe64 100644
--- a/packages/app-store/exchange2016calendar/lib/CalendarService.ts
+++ b/packages/app-store/exchange2016calendar/lib/CalendarService.ts
@@ -24,14 +24,14 @@ import { symmetricDecrypt } from "@calcom/lib/crypto";
// Probably don't need
// import { CALENDAR_INTEGRATIONS_TYPES } from "@calcom/lib/integrations/calendar/constants/generals";
import logger from "@calcom/lib/logger";
-import {
+import type {
Calendar,
CalendarEvent,
EventBusyDate,
IntegrationCalendar,
NewCalendarEventType,
} from "@calcom/types/Calendar";
-import { CredentialPayload } from "@calcom/types/Credential";
+import type { CredentialPayload } from "@calcom/types/Credential";
export default class ExchangeCalendarService implements Calendar {
private url = "";
diff --git a/packages/app-store/exchangecalendar/lib/CalendarService.ts b/packages/app-store/exchangecalendar/lib/CalendarService.ts
index dd87692f92..9a93cd00fd 100644
--- a/packages/app-store/exchangecalendar/lib/CalendarService.ts
+++ b/packages/app-store/exchangecalendar/lib/CalendarService.ts
@@ -1,4 +1,5 @@
import { XhrApi } from "@ewsjs/xhr";
+import type { FindFoldersResults, FindItemsResults } from "ews-javascript-api";
import {
Appointment,
Attendee,
@@ -8,8 +9,6 @@ import {
DateTime,
DeleteMode,
ExchangeService,
- FindFoldersResults,
- FindItemsResults,
Folder,
FolderId,
FolderSchema,
@@ -30,7 +29,7 @@ import {
import { symmetricDecrypt } from "@calcom/lib/crypto";
import logger from "@calcom/lib/logger";
-import {
+import type {
Calendar,
CalendarEvent,
EventBusyDate,
@@ -38,7 +37,7 @@ import {
NewCalendarEventType,
Person,
} from "@calcom/types/Calendar";
-import { CredentialPayload } from "@calcom/types/Credential";
+import type { CredentialPayload } from "@calcom/types/Credential";
import { ExchangeAuthentication } from "../enums";
diff --git a/packages/app-store/fathom/api/add.ts b/packages/app-store/fathom/api/add.ts
index 8f569c854c..44d56bb0fa 100644
--- a/packages/app-store/fathom/api/add.ts
+++ b/packages/app-store/fathom/api/add.ts
@@ -1,4 +1,4 @@
-import { AppDeclarativeHandler } from "@calcom/types/AppHandler";
+import type { AppDeclarativeHandler } from "@calcom/types/AppHandler";
import { createDefaultInstallation } from "../../_utils/installation";
import appConfig from "../config.json";
diff --git a/packages/app-store/fathom/components/EventTypeAppCardInterface.tsx b/packages/app-store/fathom/components/EventTypeAppCardInterface.tsx
index 77c5b45b59..d86dc6a17c 100644
--- a/packages/app-store/fathom/components/EventTypeAppCardInterface.tsx
+++ b/packages/app-store/fathom/components/EventTypeAppCardInterface.tsx
@@ -5,7 +5,7 @@ import AppCard from "@calcom/app-store/_components/AppCard";
import type { EventTypeAppCardComponent } from "@calcom/app-store/types";
import { TextField } from "@calcom/ui";
-import { appDataSchema } from "../zod";
+import type { appDataSchema } from "../zod";
const EventTypeAppCard: EventTypeAppCardComponent = function EventTypeAppCard({ app }) {
const [getAppData, setAppData] = useAppContextWithSchema();
diff --git a/packages/app-store/ga4/api/add.ts b/packages/app-store/ga4/api/add.ts
index 8f569c854c..44d56bb0fa 100644
--- a/packages/app-store/ga4/api/add.ts
+++ b/packages/app-store/ga4/api/add.ts
@@ -1,4 +1,4 @@
-import { AppDeclarativeHandler } from "@calcom/types/AppHandler";
+import type { AppDeclarativeHandler } from "@calcom/types/AppHandler";
import { createDefaultInstallation } from "../../_utils/installation";
import appConfig from "../config.json";
diff --git a/packages/app-store/ga4/components/EventTypeAppCardInterface.tsx b/packages/app-store/ga4/components/EventTypeAppCardInterface.tsx
index 77c5b45b59..d86dc6a17c 100644
--- a/packages/app-store/ga4/components/EventTypeAppCardInterface.tsx
+++ b/packages/app-store/ga4/components/EventTypeAppCardInterface.tsx
@@ -5,7 +5,7 @@ import AppCard from "@calcom/app-store/_components/AppCard";
import type { EventTypeAppCardComponent } from "@calcom/app-store/types";
import { TextField } from "@calcom/ui";
-import { appDataSchema } from "../zod";
+import type { appDataSchema } from "../zod";
const EventTypeAppCard: EventTypeAppCardComponent = function EventTypeAppCard({ app }) {
const [getAppData, setAppData] = useAppContextWithSchema();
diff --git a/packages/app-store/giphy/DESCRIPTION.md b/packages/app-store/giphy/DESCRIPTION.md
index e9c13923ff..d06290ee24 100644
--- a/packages/app-store/giphy/DESCRIPTION.md
+++ b/packages/app-store/giphy/DESCRIPTION.md
@@ -4,4 +4,4 @@ items:
- /api/app-store/giphy/GIPHY2.png
---
-An online database and search engine that allows users to search for and share short looping videos with no sound that resemble animated GIF files. GIPHY is your top source for the best & newest GIFs & Animated Stickers online. Find everything from funny GIFs, reaction GIFs, unique GIFs and more to add to your custom booking page. Located under advanced settings in each event type.
\ No newline at end of file
+An online database and search engine that allows users to search for and share short looping videos with no sound that resemble animated GIF files. GIPHY is your top source for the best & newest GIFs & Animated Stickers online. Find everything from funny GIFs, reaction GIFs, unique GIFs and more to add to your custom booking page. Located under advanced settings in each event type.
diff --git a/packages/app-store/giphy/components/EventTypeAppCardInterface.tsx b/packages/app-store/giphy/components/EventTypeAppCardInterface.tsx
index ea7cc2a304..ad5e54a857 100644
--- a/packages/app-store/giphy/components/EventTypeAppCardInterface.tsx
+++ b/packages/app-store/giphy/components/EventTypeAppCardInterface.tsx
@@ -6,7 +6,7 @@ import { SelectGifInput } from "@calcom/app-store/giphy/components";
import type { EventTypeAppCardComponent } from "@calcom/app-store/types";
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { appDataSchema } from "../zod";
+import type { appDataSchema } from "../zod";
const EventTypeAppCard: EventTypeAppCardComponent = function EventTypeAppCard({ app }) {
const [getAppData, setAppData] = useAppContextWithSchema();
diff --git a/packages/app-store/giphy/components/SearchDialog.tsx b/packages/app-store/giphy/components/SearchDialog.tsx
index 2228938f60..249fbfdd7a 100644
--- a/packages/app-store/giphy/components/SearchDialog.tsx
+++ b/packages/app-store/giphy/components/SearchDialog.tsx
@@ -1,5 +1,6 @@
import { LinkIcon, SearchIcon } from "@heroicons/react/outline";
-import { Dispatch, SetStateAction, useState } from "react";
+import type { Dispatch, SetStateAction } from "react";
+import { useState } from "react";
import classNames from "@calcom/lib/classNames";
import { useLocale } from "@calcom/lib/hooks/useLocale";
diff --git a/packages/app-store/googlecalendar/lib/CalendarService.ts b/packages/app-store/googlecalendar/lib/CalendarService.ts
index 42c6a7c916..6ab3811fda 100644
--- a/packages/app-store/googlecalendar/lib/CalendarService.ts
+++ b/packages/app-store/googlecalendar/lib/CalendarService.ts
@@ -1,9 +1,10 @@
-import { Prisma } from "@prisma/client";
-import { calendar_v3, google } from "googleapis";
+import type { Prisma } from "@prisma/client";
+import type { calendar_v3 } from "googleapis";
+import { google } from "googleapis";
import { MeetLocationType } from "@calcom/app-store/locations";
import { getLocation, getRichDescription } from "@calcom/lib/CalEventParser";
-import CalendarService from "@calcom/lib/CalendarService";
+import type CalendarService from "@calcom/lib/CalendarService";
import logger from "@calcom/lib/logger";
import prisma from "@calcom/prisma";
import type {
@@ -13,7 +14,7 @@ import type {
IntegrationCalendar,
NewCalendarEventType,
} from "@calcom/types/Calendar";
-import { CredentialPayload } from "@calcom/types/Credential";
+import type { CredentialPayload } from "@calcom/types/Credential";
import { getGoogleAppKeys } from "./getGoogleAppKeys";
import { googleCredentialSchema } from "./googleCredentialSchema";
diff --git a/packages/app-store/hubspot/DESCRIPTION.md b/packages/app-store/hubspot/DESCRIPTION.md
index ecce11527a..a1e911fac1 100644
--- a/packages/app-store/hubspot/DESCRIPTION.md
+++ b/packages/app-store/hubspot/DESCRIPTION.md
@@ -6,5 +6,6 @@ items:
HubSpot is a cloud-based CRM designed to help align sales and marketing teams, foster sales enablement, boost ROI and optimize your inbound marketing strategy to generate more, qualified leads.
Features:
- - Creates a meeting in HubSpot for one or many attendees
- - Attendees that don't exist in HubSpot, gets created first to associate them in the meeting
+
+- Creates a meeting in HubSpot for one or many attendees
+- Attendees that don't exist in HubSpot, gets created first to associate them in the meeting
diff --git a/packages/app-store/hubspot/api/callback.ts b/packages/app-store/hubspot/api/callback.ts
index ccc4dd8dfd..80414cb736 100644
--- a/packages/app-store/hubspot/api/callback.ts
+++ b/packages/app-store/hubspot/api/callback.ts
@@ -1,5 +1,5 @@
import * as hubspot from "@hubspot/api-client";
-import { TokenResponseIF } from "@hubspot/api-client/lib/codegen/oauth/models/TokenResponseIF";
+import type { TokenResponseIF } from "@hubspot/api-client/lib/codegen/oauth/models/TokenResponseIF";
import type { NextApiRequest, NextApiResponse } from "next";
import { WEBAPP_URL } from "@calcom/lib/constants";
diff --git a/packages/app-store/hubspot/lib/CalendarService.ts b/packages/app-store/hubspot/lib/CalendarService.ts
index a9d7988dad..1ab601d124 100644
--- a/packages/app-store/hubspot/lib/CalendarService.ts
+++ b/packages/app-store/hubspot/lib/CalendarService.ts
@@ -1,7 +1,7 @@
import * as hubspot from "@hubspot/api-client";
-import { BatchInputPublicAssociation } from "@hubspot/api-client/lib/codegen/crm/associations";
-import { PublicObjectSearchRequest } from "@hubspot/api-client/lib/codegen/crm/contacts";
-import { SimplePublicObjectInput } from "@hubspot/api-client/lib/codegen/crm/objects/meetings";
+import type { BatchInputPublicAssociation } from "@hubspot/api-client/lib/codegen/crm/associations";
+import type { PublicObjectSearchRequest } from "@hubspot/api-client/lib/codegen/crm/contacts";
+import type { SimplePublicObjectInput } from "@hubspot/api-client/lib/codegen/crm/objects/meetings";
import { getLocation } from "@calcom/lib/CalEventParser";
import { WEBAPP_URL } from "@calcom/lib/constants";
@@ -16,7 +16,7 @@ import type {
NewCalendarEventType,
Person,
} from "@calcom/types/Calendar";
-import { CredentialPayload } from "@calcom/types/Credential";
+import type { CredentialPayload } from "@calcom/types/Credential";
import getAppKeysFromSlug from "../../_utils/getAppKeysFromSlug";
import type { HubspotToken } from "../api/callback";
diff --git a/packages/app-store/larkcalendar/common.ts b/packages/app-store/larkcalendar/common.ts
index f00e0a9628..379ee16d5a 100644
--- a/packages/app-store/larkcalendar/common.ts
+++ b/packages/app-store/larkcalendar/common.ts
@@ -1,7 +1,7 @@
-import logger from "@calcom/lib/logger";
+import type logger from "@calcom/lib/logger";
import getAppKeysFromSlug from "../_utils/getAppKeysFromSlug";
-import { LarkAppKeys } from "./types/LarkCalendar";
+import type { LarkAppKeys } from "./types/LarkCalendar";
export const LARK_HOST = "open.larksuite.com";
diff --git a/packages/app-store/larkcalendar/lib/CalendarService.ts b/packages/app-store/larkcalendar/lib/CalendarService.ts
index 5df551a6c9..e9ba925c24 100644
--- a/packages/app-store/larkcalendar/lib/CalendarService.ts
+++ b/packages/app-store/larkcalendar/lib/CalendarService.ts
@@ -9,7 +9,7 @@ import type {
IntegrationCalendar,
NewCalendarEventType,
} from "@calcom/types/Calendar";
-import { CredentialPayload } from "@calcom/types/Credential";
+import type { CredentialPayload } from "@calcom/types/Credential";
import { handleLarkError, isExpired, LARK_HOST } from "../common";
import type {
diff --git a/packages/app-store/locations.ts b/packages/app-store/locations.ts
index 02207656aa..d674cbe8d2 100644
--- a/packages/app-store/locations.ts
+++ b/packages/app-store/locations.ts
@@ -3,7 +3,7 @@ import type { TFunction } from "next-i18next";
import { appStoreMetadata } from "@calcom/app-store/appStoreMetaData";
import logger from "@calcom/lib/logger";
-import { Ensure, Optional } from "@calcom/types/utils";
+import type { Ensure, Optional } from "@calcom/types/utils";
import type { EventLocationTypeFromAppMeta } from "../types/App";
diff --git a/packages/app-store/n8n/DESCRIPTION.md b/packages/app-store/n8n/DESCRIPTION.md
index ff3aa6742e..a10f1ba537 100644
--- a/packages/app-store/n8n/DESCRIPTION.md
+++ b/packages/app-store/n8n/DESCRIPTION.md
@@ -20,4 +20,4 @@ items:
Click on Settings.
There you will find the API keys section which allows you to generate a key for use. More information on this can be found on the Cal Authentication page.
Use API key in your Cal trigger node credentials in n8n.
-
\ No newline at end of file
+
diff --git a/packages/app-store/n8n/api/add.ts b/packages/app-store/n8n/api/add.ts
index b4c95f1426..49ac6be693 100644
--- a/packages/app-store/n8n/api/add.ts
+++ b/packages/app-store/n8n/api/add.ts
@@ -1,4 +1,4 @@
-import { AppDeclarativeHandler } from "@calcom/types/AppHandler";
+import type { AppDeclarativeHandler } from "@calcom/types/AppHandler";
import { createDefaultInstallation } from "../../_utils/installation";
import appConfig from "../config.json";
diff --git a/packages/app-store/office365calendar/lib/CalendarService.ts b/packages/app-store/office365calendar/lib/CalendarService.ts
index 6823ce0823..ebc0bf5346 100644
--- a/packages/app-store/office365calendar/lib/CalendarService.ts
+++ b/packages/app-store/office365calendar/lib/CalendarService.ts
@@ -1,4 +1,4 @@
-import { Calendar as OfficeCalendar, User } from "@microsoft/microsoft-graph-types-beta";
+import type { Calendar as OfficeCalendar, User } from "@microsoft/microsoft-graph-types-beta";
import { getLocation, getRichDescription } from "@calcom/lib/CalEventParser";
import { handleErrorsJson, handleErrorsRaw } from "@calcom/lib/errors";
@@ -12,9 +12,9 @@ import type {
IntegrationCalendar,
NewCalendarEventType,
} from "@calcom/types/Calendar";
-import { CredentialPayload } from "@calcom/types/Credential";
+import type { CredentialPayload } from "@calcom/types/Credential";
-import { O365AuthCredentials } from "../types/Office365Calendar";
+import type { O365AuthCredentials } from "../types/Office365Calendar";
import { getOfficeAppKeys } from "./getOfficeAppKeys";
interface IRequest {
diff --git a/packages/app-store/office365video/components/InstallAppButton.tsx b/packages/app-store/office365video/components/InstallAppButton.tsx
index 778d00423c..a5cbdafd43 100644
--- a/packages/app-store/office365video/components/InstallAppButton.tsx
+++ b/packages/app-store/office365video/components/InstallAppButton.tsx
@@ -1,6 +1,6 @@
import { useState } from "react";
-import { InstallAppButtonProps } from "../../types";
+import type { InstallAppButtonProps } from "../../types";
import AddIntegration from "./AccountDialog";
export default function InstallAppButton(props: InstallAppButtonProps) {
diff --git a/packages/app-store/office365video/lib/VideoApiAdapter.ts b/packages/app-store/office365video/lib/VideoApiAdapter.ts
index 9c59d395dc..44c096b4aa 100644
--- a/packages/app-store/office365video/lib/VideoApiAdapter.ts
+++ b/packages/app-store/office365video/lib/VideoApiAdapter.ts
@@ -1,10 +1,10 @@
-import { Prisma } from "@prisma/client";
+import type { Prisma } from "@prisma/client";
import { handleErrorsJson, handleErrorsRaw } from "@calcom/lib/errors";
import { HttpError } from "@calcom/lib/http-error";
import prisma from "@calcom/prisma";
import type { CalendarEvent } from "@calcom/types/Calendar";
-import { CredentialPayload } from "@calcom/types/Credential";
+import type { CredentialPayload } from "@calcom/types/Credential";
import type { PartialReference } from "@calcom/types/EventManager";
import type { VideoApiAdapter, VideoCallData } from "@calcom/types/VideoApiAdapter";
diff --git a/packages/app-store/pipedream/api/add.ts b/packages/app-store/pipedream/api/add.ts
index 3b4b5384ef..269ab32227 100644
--- a/packages/app-store/pipedream/api/add.ts
+++ b/packages/app-store/pipedream/api/add.ts
@@ -1,4 +1,4 @@
-import { AppDeclarativeHandler } from "@calcom/types/AppHandler";
+import type { AppDeclarativeHandler } from "@calcom/types/AppHandler";
import { createDefaultInstallation } from "../../_utils/installation";
import appConfig from "../config.json";
diff --git a/packages/app-store/plausible/api/add.ts b/packages/app-store/plausible/api/add.ts
index 8f569c854c..44d56bb0fa 100644
--- a/packages/app-store/plausible/api/add.ts
+++ b/packages/app-store/plausible/api/add.ts
@@ -1,4 +1,4 @@
-import { AppDeclarativeHandler } from "@calcom/types/AppHandler";
+import type { AppDeclarativeHandler } from "@calcom/types/AppHandler";
import { createDefaultInstallation } from "../../_utils/installation";
import appConfig from "../config.json";
diff --git a/packages/app-store/plausible/components/EventTypeAppCardInterface.tsx b/packages/app-store/plausible/components/EventTypeAppCardInterface.tsx
index 9066d98024..1d35515358 100644
--- a/packages/app-store/plausible/components/EventTypeAppCardInterface.tsx
+++ b/packages/app-store/plausible/components/EventTypeAppCardInterface.tsx
@@ -5,7 +5,7 @@ import AppCard from "@calcom/app-store/_components/AppCard";
import type { EventTypeAppCardComponent } from "@calcom/app-store/types";
import { TextField } from "@calcom/ui";
-import { appDataSchema } from "../zod";
+import type { appDataSchema } from "../zod";
const EventTypeAppCard: EventTypeAppCardComponent = function EventTypeAppCard({ app }) {
const [getAppData, setAppData] = useAppContextWithSchema();
diff --git a/packages/app-store/qr_code/api/add.ts b/packages/app-store/qr_code/api/add.ts
index 8f569c854c..44d56bb0fa 100644
--- a/packages/app-store/qr_code/api/add.ts
+++ b/packages/app-store/qr_code/api/add.ts
@@ -1,4 +1,4 @@
-import { AppDeclarativeHandler } from "@calcom/types/AppHandler";
+import type { AppDeclarativeHandler } from "@calcom/types/AppHandler";
import { createDefaultInstallation } from "../../_utils/installation";
import appConfig from "../config.json";
diff --git a/packages/app-store/qr_code/components/EventTypeAppCardInterface.tsx b/packages/app-store/qr_code/components/EventTypeAppCardInterface.tsx
index 9146f836a1..e716cca742 100644
--- a/packages/app-store/qr_code/components/EventTypeAppCardInterface.tsx
+++ b/packages/app-store/qr_code/components/EventTypeAppCardInterface.tsx
@@ -5,7 +5,7 @@ import AppCard from "@calcom/app-store/_components/AppCard";
import type { EventTypeAppCardComponent } from "@calcom/app-store/types";
import { Tooltip } from "@calcom/ui";
-import { appDataSchema } from "../zod";
+import type { appDataSchema } from "../zod";
const EventTypeAppCard: EventTypeAppCardComponent = function EventTypeAppCard({ eventType, app }) {
const [getAppData, setAppData] = useAppContextWithSchema();
diff --git a/packages/app-store/rainbow/DESCRIPTION.md b/packages/app-store/rainbow/DESCRIPTION.md
index d8e1257f1d..cde42e0c27 100644
--- a/packages/app-store/rainbow/DESCRIPTION.md
+++ b/packages/app-store/rainbow/DESCRIPTION.md
@@ -6,4 +6,3 @@ items:
---
Token gate bookings based on NFTs, DAO tokens, and ERC-20 tokens. Rainbow supports dozens of trusted Ethereum wallet apps to verify token ownership. Available blockchains are Ethereum mainnet, Arbitrum, Optimism, and Polygon mainnet.
-
diff --git a/packages/app-store/rainbow/api/add.ts b/packages/app-store/rainbow/api/add.ts
index 5834fdbd88..b209b5fb19 100644
--- a/packages/app-store/rainbow/api/add.ts
+++ b/packages/app-store/rainbow/api/add.ts
@@ -1,4 +1,4 @@
-import { AppDeclarativeHandler } from "@calcom/types/AppHandler";
+import type { AppDeclarativeHandler } from "@calcom/types/AppHandler";
import { createDefaultInstallation } from "../../_utils/installation";
import appConfig from "../config.json";
diff --git a/packages/app-store/rainbow/components/EventTypeAppCardInterface.tsx b/packages/app-store/rainbow/components/EventTypeAppCardInterface.tsx
index c5be915de6..0e64fd44aa 100644
--- a/packages/app-store/rainbow/components/EventTypeAppCardInterface.tsx
+++ b/packages/app-store/rainbow/components/EventTypeAppCardInterface.tsx
@@ -5,7 +5,7 @@ import AppCard from "@calcom/app-store/_components/AppCard";
import RainbowInstallForm from "@calcom/app-store/rainbow/components/RainbowInstallForm";
import type { EventTypeAppCardComponent } from "@calcom/app-store/types";
-import { appDataSchema } from "../zod";
+import type { appDataSchema } from "../zod";
const EventTypeAppCard: EventTypeAppCardComponent = function EventTypeAppCard({ app }) {
const [getAppData, setAppData] = useAppContextWithSchema();
diff --git a/packages/app-store/rainbow/components/RainbowInstallForm.tsx b/packages/app-store/rainbow/components/RainbowInstallForm.tsx
index 2f05d7f7f0..3de2c3e518 100644
--- a/packages/app-store/rainbow/components/RainbowInstallForm.tsx
+++ b/packages/app-store/rainbow/components/RainbowInstallForm.tsx
@@ -1,11 +1,11 @@
-import { z } from "zod";
+import type { z } from "zod";
-import { SetAppDataGeneric } from "@calcom/app-store/EventTypeAppContext";
+import type { SetAppDataGeneric } from "@calcom/app-store/EventTypeAppContext";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { SUPPORTED_CHAINS_FOR_FORM } from "@calcom/rainbow/utils/ethereum";
import { Select } from "@calcom/ui";
-import { appDataSchema } from "../zod";
+import type { appDataSchema } from "../zod";
type RainbowInstallFormProps = {
setAppData: SetAppDataGeneric;
diff --git a/packages/app-store/raycast/api/add.ts b/packages/app-store/raycast/api/add.ts
index 7f13c0244e..8b788d621c 100644
--- a/packages/app-store/raycast/api/add.ts
+++ b/packages/app-store/raycast/api/add.ts
@@ -1,4 +1,4 @@
-import { AppDeclarativeHandler } from "@calcom/types/AppHandler";
+import type { AppDeclarativeHandler } from "@calcom/types/AppHandler";
import { createDefaultInstallation } from "../../_utils/installation";
import appConfig from "../config.json";
diff --git a/packages/app-store/salesforce/lib/CalendarService.ts b/packages/app-store/salesforce/lib/CalendarService.ts
index 4d23c11d0a..93ce6762f0 100644
--- a/packages/app-store/salesforce/lib/CalendarService.ts
+++ b/packages/app-store/salesforce/lib/CalendarService.ts
@@ -1,4 +1,5 @@
-import jsforce, { TokenResponse } from "jsforce";
+import type { TokenResponse } from "jsforce";
+import jsforce from "jsforce";
import { RRule } from "rrule";
import { getLocation } from "@calcom/lib/CalEventParser";
@@ -12,7 +13,7 @@ import type {
NewCalendarEventType,
Person,
} from "@calcom/types/Calendar";
-import { CredentialPayload } from "@calcom/types/Credential";
+import type { CredentialPayload } from "@calcom/types/Credential";
import getAppKeysFromSlug from "../../_utils/getAppKeysFromSlug";
diff --git a/packages/app-store/sendgrid/lib/CalendarService.ts b/packages/app-store/sendgrid/lib/CalendarService.ts
index 162eeff94d..de1bd8cc02 100644
--- a/packages/app-store/sendgrid/lib/CalendarService.ts
+++ b/packages/app-store/sendgrid/lib/CalendarService.ts
@@ -1,6 +1,7 @@
import z from "zod";
-import Sendgrid, { SendgridNewContact } from "@calcom/lib/Sendgrid";
+import type { SendgridNewContact } from "@calcom/lib/Sendgrid";
+import Sendgrid from "@calcom/lib/Sendgrid";
import { symmetricDecrypt } from "@calcom/lib/crypto";
import logger from "@calcom/lib/logger";
import type {
@@ -10,7 +11,7 @@ import type {
IntegrationCalendar,
NewCalendarEventType,
} from "@calcom/types/Calendar";
-import { CredentialPayload } from "@calcom/types/Credential";
+import type { CredentialPayload } from "@calcom/types/Credential";
const apiKeySchema = z.object({
encrypted: z.string(),
diff --git a/packages/app-store/signal/api/add.ts b/packages/app-store/signal/api/add.ts
index 8f569c854c..44d56bb0fa 100644
--- a/packages/app-store/signal/api/add.ts
+++ b/packages/app-store/signal/api/add.ts
@@ -1,4 +1,4 @@
-import { AppDeclarativeHandler } from "@calcom/types/AppHandler";
+import type { AppDeclarativeHandler } from "@calcom/types/AppHandler";
import { createDefaultInstallation } from "../../_utils/installation";
import appConfig from "../config.json";
diff --git a/packages/app-store/sirius_video/api/add.ts b/packages/app-store/sirius_video/api/add.ts
index 8f569c854c..44d56bb0fa 100644
--- a/packages/app-store/sirius_video/api/add.ts
+++ b/packages/app-store/sirius_video/api/add.ts
@@ -1,4 +1,4 @@
-import { AppDeclarativeHandler } from "@calcom/types/AppHandler";
+import type { AppDeclarativeHandler } from "@calcom/types/AppHandler";
import { createDefaultInstallation } from "../../_utils/installation";
import appConfig from "../config.json";
diff --git a/packages/app-store/stripepayment/DESCRIPTION.md b/packages/app-store/stripepayment/DESCRIPTION.md
index 189bb307c4..8a30ef11a3 100644
--- a/packages/app-store/stripepayment/DESCRIPTION.md
+++ b/packages/app-store/stripepayment/DESCRIPTION.md
@@ -7,4 +7,4 @@ items:
- /api/app-store/stripepayment/stripe5.jpg
---
-Stripe provides payment infrastructure for everyone from startups to Fortune 500 companies. They provide payment processing software as well as application programming interfaces (APIs) for mobile applications as well as e-commerce websites processing payments from (but not limited to) credit cards, debit cards, digital wallets, Google Pay, Apple Pay, Bank Transfers, Alipay and WeChat.
\ No newline at end of file
+Stripe provides payment infrastructure for everyone from startups to Fortune 500 companies. They provide payment processing software as well as application programming interfaces (APIs) for mobile applications as well as e-commerce websites processing payments from (but not limited to) credit cards, debit cards, digital wallets, Google Pay, Apple Pay, Bank Transfers, Alipay and WeChat.
diff --git a/packages/app-store/stripepayment/api/add.ts b/packages/app-store/stripepayment/api/add.ts
index 1f82f1e4f1..ba481f3e8f 100644
--- a/packages/app-store/stripepayment/api/add.ts
+++ b/packages/app-store/stripepayment/api/add.ts
@@ -1,6 +1,6 @@
import type { NextApiRequest, NextApiResponse } from "next";
import stringify from "qs-stringify";
-import Stripe from "stripe";
+import type Stripe from "stripe";
import { z } from "zod";
import { WEBAPP_URL } from "@calcom/lib/constants";
diff --git a/packages/app-store/stripepayment/api/callback.ts b/packages/app-store/stripepayment/api/callback.ts
index bc2b1d5b53..c89abc239e 100644
--- a/packages/app-store/stripepayment/api/callback.ts
+++ b/packages/app-store/stripepayment/api/callback.ts
@@ -1,11 +1,12 @@
-import { Prisma } from "@prisma/client";
+import type { Prisma } from "@prisma/client";
import type { NextApiRequest, NextApiResponse } from "next";
import { stringify } from "querystring";
import prisma from "@calcom/prisma";
import getInstalledAppPath from "../../_utils/getInstalledAppPath";
-import stripe, { StripeData } from "../lib/server";
+import type { StripeData } from "../lib/server";
+import stripe from "../lib/server";
function getReturnToValueFromQueryState(req: NextApiRequest) {
let returnTo = "";
diff --git a/packages/app-store/stripepayment/api/paymentCallback.ts b/packages/app-store/stripepayment/api/paymentCallback.ts
index 85af159ee2..e10df2d0bc 100644
--- a/packages/app-store/stripepayment/api/paymentCallback.ts
+++ b/packages/app-store/stripepayment/api/paymentCallback.ts
@@ -1,11 +1,11 @@
-import { NextApiRequest, NextApiResponse } from "next";
+import type { NextApiRequest, NextApiResponse } from "next";
import z from "zod";
import { getCustomerAndCheckoutSession } from "@calcom/app-store/stripepayment/lib/getCustomerAndCheckoutSession";
import { WEBAPP_URL } from "@calcom/lib/constants";
import { defaultHandler, defaultResponder } from "@calcom/lib/server";
import { prisma } from "@calcom/prisma";
-import { Prisma } from "@calcom/prisma/client";
+import type { Prisma } from "@calcom/prisma/client";
const querySchema = z.object({
callbackUrl: z.string().transform((url) => {
diff --git a/packages/app-store/stripepayment/api/subscription.ts b/packages/app-store/stripepayment/api/subscription.ts
index 857d8066c4..1d15027747 100644
--- a/packages/app-store/stripepayment/api/subscription.ts
+++ b/packages/app-store/stripepayment/api/subscription.ts
@@ -1,11 +1,11 @@
import type { NextApiRequest, NextApiResponse } from "next";
-import Stripe from "stripe";
+import type Stripe from "stripe";
import { getPremiumMonthlyPlanPriceId } from "@calcom/app-store/stripepayment/lib/utils";
import { checkPremiumUsername } from "@calcom/features/ee/common/lib/checkPremiumUsername";
import { WEBAPP_URL } from "@calcom/lib/constants";
import prisma from "@calcom/prisma";
-import { Prisma } from "@calcom/prisma/client";
+import type { Prisma } from "@calcom/prisma/client";
import { getStripeCustomerIdFromUserId } from "../lib/customer";
import stripe from "../lib/server";
diff --git a/packages/app-store/stripepayment/components/EventTypeAppCardInterface.tsx b/packages/app-store/stripepayment/components/EventTypeAppCardInterface.tsx
index a90adf2457..98e713b0ee 100644
--- a/packages/app-store/stripepayment/components/EventTypeAppCardInterface.tsx
+++ b/packages/app-store/stripepayment/components/EventTypeAppCardInterface.tsx
@@ -9,7 +9,7 @@ import { WEBAPP_URL } from "@calcom/lib/constants";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { Alert, TextField } from "@calcom/ui";
-import { appDataSchema } from "../zod";
+import type { appDataSchema } from "../zod";
const EventTypeAppCard: EventTypeAppCardComponent = function EventTypeAppCard({ app, eventType }) {
const { asPath } = useRouter();
diff --git a/packages/app-store/stripepayment/lib/PaymentService.ts b/packages/app-store/stripepayment/lib/PaymentService.ts
index 7271b6ecd6..957797b16e 100644
--- a/packages/app-store/stripepayment/lib/PaymentService.ts
+++ b/packages/app-store/stripepayment/lib/PaymentService.ts
@@ -1,16 +1,16 @@
-import { Booking, Payment, Prisma } from "@prisma/client";
+import type { Booking, Payment, Prisma } from "@prisma/client";
import Stripe from "stripe";
import { v4 as uuidv4 } from "uuid";
import z from "zod";
import { sendAwaitingPaymentEmail } from "@calcom/emails";
-import { IAbstractPaymentService } from "@calcom/lib/PaymentService";
+import type { IAbstractPaymentService } from "@calcom/lib/PaymentService";
import { getErrorFromUnknown } from "@calcom/lib/errors";
import prisma from "@calcom/prisma";
-import { CalendarEvent } from "@calcom/types/Calendar";
+import type { CalendarEvent } from "@calcom/types/Calendar";
import { createPaymentLink } from "./client";
-import { StripePaymentData } from "./server";
+import type { StripePaymentData } from "./server";
const stripeCredentialKeysSchema = z.object({
stripe_user_id: z.string(),
diff --git a/packages/app-store/stripepayment/lib/client/getStripe.ts b/packages/app-store/stripepayment/lib/client/getStripe.ts
index b53453933a..b618bf5825 100644
--- a/packages/app-store/stripepayment/lib/client/getStripe.ts
+++ b/packages/app-store/stripepayment/lib/client/getStripe.ts
@@ -1,4 +1,4 @@
-import { Stripe } from "@stripe/stripe-js";
+import type { Stripe } from "@stripe/stripe-js";
import { loadStripe } from "@stripe/stripe-js/pure";
export type Maybe = T | undefined | null;
diff --git a/packages/app-store/tandemvideo/lib/VideoApiAdapter.ts b/packages/app-store/tandemvideo/lib/VideoApiAdapter.ts
index 28ad87b21a..9f7b959959 100644
--- a/packages/app-store/tandemvideo/lib/VideoApiAdapter.ts
+++ b/packages/app-store/tandemvideo/lib/VideoApiAdapter.ts
@@ -1,10 +1,10 @@
-import { Prisma } from "@prisma/client";
+import type { Prisma } from "@prisma/client";
import { handleErrorsJson, handleErrorsRaw } from "@calcom/lib/errors";
import { HttpError } from "@calcom/lib/http-error";
import prisma from "@calcom/prisma";
import type { CalendarEvent } from "@calcom/types/Calendar";
-import { CredentialPayload } from "@calcom/types/Credential";
+import type { CredentialPayload } from "@calcom/types/Credential";
import type { PartialReference } from "@calcom/types/EventManager";
import type { VideoApiAdapter, VideoCallData } from "@calcom/types/VideoApiAdapter";
diff --git a/packages/app-store/telegram/api/add.ts b/packages/app-store/telegram/api/add.ts
index 8f569c854c..44d56bb0fa 100644
--- a/packages/app-store/telegram/api/add.ts
+++ b/packages/app-store/telegram/api/add.ts
@@ -1,4 +1,4 @@
-import { AppDeclarativeHandler } from "@calcom/types/AppHandler";
+import type { AppDeclarativeHandler } from "@calcom/types/AppHandler";
import { createDefaultInstallation } from "../../_utils/installation";
import appConfig from "../config.json";
diff --git a/packages/app-store/templates/_auth-based-app/README.md b/packages/app-store/templates/_auth-based-app/README.md
index b3d6e23ef2..2fcc280ebe 100644
--- a/packages/app-store/templates/_auth-based-app/README.md
+++ b/packages/app-store/templates/_auth-based-app/README.md
@@ -1,2 +1,3 @@
## TODO:
-Identify an ideal app among existing auth based apps and add it here
\ No newline at end of file
+
+Identify an ideal app among existing auth based apps and add it here
diff --git a/packages/app-store/templates/_calendar/README.md b/packages/app-store/templates/_calendar/README.md
index 124b3749c6..6059799d78 100644
--- a/packages/app-store/templates/_calendar/README.md
+++ b/packages/app-store/templates/_calendar/README.md
@@ -1 +1 @@
-Calendar apps are not streamlined and thus a template for it needs some good amount of work
\ No newline at end of file
+Calendar apps are not streamlined and thus a template for it needs some good amount of work
diff --git a/packages/app-store/templates/basic/api/add.ts b/packages/app-store/templates/basic/api/add.ts
index f8c6354180..9a4afb9b2c 100644
--- a/packages/app-store/templates/basic/api/add.ts
+++ b/packages/app-store/templates/basic/api/add.ts
@@ -1,5 +1,5 @@
import { createDefaultInstallation } from "@calcom/app-store/_utils/installation";
-import { AppDeclarativeHandler } from "@calcom/types/AppHandler";
+import type { AppDeclarativeHandler } from "@calcom/types/AppHandler";
import appConfig from "../config.json";
diff --git a/packages/app-store/templates/booking-pages-tag/DESCRIPTION.md b/packages/app-store/templates/booking-pages-tag/DESCRIPTION.md
index 02c40f00ac..a4b15502c3 100644
--- a/packages/app-store/templates/booking-pages-tag/DESCRIPTION.md
+++ b/packages/app-store/templates/booking-pages-tag/DESCRIPTION.md
@@ -5,4 +5,4 @@ items:
- 3.jpeg
---
-{DESCRIPTION}
\ No newline at end of file
+{DESCRIPTION}
diff --git a/packages/app-store/templates/booking-pages-tag/api/add.ts b/packages/app-store/templates/booking-pages-tag/api/add.ts
index f8c6354180..9a4afb9b2c 100644
--- a/packages/app-store/templates/booking-pages-tag/api/add.ts
+++ b/packages/app-store/templates/booking-pages-tag/api/add.ts
@@ -1,5 +1,5 @@
import { createDefaultInstallation } from "@calcom/app-store/_utils/installation";
-import { AppDeclarativeHandler } from "@calcom/types/AppHandler";
+import type { AppDeclarativeHandler } from "@calcom/types/AppHandler";
import appConfig from "../config.json";
diff --git a/packages/app-store/templates/booking-pages-tag/components/EventTypeAppCardInterface.tsx b/packages/app-store/templates/booking-pages-tag/components/EventTypeAppCardInterface.tsx
index 77c5b45b59..d86dc6a17c 100644
--- a/packages/app-store/templates/booking-pages-tag/components/EventTypeAppCardInterface.tsx
+++ b/packages/app-store/templates/booking-pages-tag/components/EventTypeAppCardInterface.tsx
@@ -5,7 +5,7 @@ import AppCard from "@calcom/app-store/_components/AppCard";
import type { EventTypeAppCardComponent } from "@calcom/app-store/types";
import { TextField } from "@calcom/ui";
-import { appDataSchema } from "../zod";
+import type { appDataSchema } from "../zod";
const EventTypeAppCard: EventTypeAppCardComponent = function EventTypeAppCard({ app }) {
const [getAppData, setAppData] = useAppContextWithSchema();
diff --git a/packages/app-store/templates/event-type-app-card/DESCRIPTION.md b/packages/app-store/templates/event-type-app-card/DESCRIPTION.md
index 30a038f826..a4b15502c3 100644
--- a/packages/app-store/templates/event-type-app-card/DESCRIPTION.md
+++ b/packages/app-store/templates/event-type-app-card/DESCRIPTION.md
@@ -6,4 +6,3 @@ items:
---
{DESCRIPTION}
-
diff --git a/packages/app-store/templates/event-type-app-card/api/add.ts b/packages/app-store/templates/event-type-app-card/api/add.ts
index f8c6354180..9a4afb9b2c 100644
--- a/packages/app-store/templates/event-type-app-card/api/add.ts
+++ b/packages/app-store/templates/event-type-app-card/api/add.ts
@@ -1,5 +1,5 @@
import { createDefaultInstallation } from "@calcom/app-store/_utils/installation";
-import { AppDeclarativeHandler } from "@calcom/types/AppHandler";
+import type { AppDeclarativeHandler } from "@calcom/types/AppHandler";
import appConfig from "../config.json";
diff --git a/packages/app-store/templates/event-type-app-card/components/EventTypeAppCardInterface.tsx b/packages/app-store/templates/event-type-app-card/components/EventTypeAppCardInterface.tsx
index 8eaa31e84c..74770964e7 100644
--- a/packages/app-store/templates/event-type-app-card/components/EventTypeAppCardInterface.tsx
+++ b/packages/app-store/templates/event-type-app-card/components/EventTypeAppCardInterface.tsx
@@ -5,7 +5,7 @@ import AppCard from "@calcom/app-store/_components/AppCard";
import type { EventTypeAppCardComponent } from "@calcom/app-store/types";
import { FiSunrise, FiSunset } from "@calcom/ui/components/icon";
-import { appDataSchema } from "../zod";
+import type { appDataSchema } from "../zod";
const EventTypeAppCard: EventTypeAppCardComponent = function EventTypeAppCard({ eventType, app }) {
const [getAppData, setAppData] = useAppContextWithSchema();
diff --git a/packages/app-store/templates/event-type-location-video-static/DESCRIPTION.md b/packages/app-store/templates/event-type-location-video-static/DESCRIPTION.md
index 02c40f00ac..a4b15502c3 100644
--- a/packages/app-store/templates/event-type-location-video-static/DESCRIPTION.md
+++ b/packages/app-store/templates/event-type-location-video-static/DESCRIPTION.md
@@ -5,4 +5,4 @@ items:
- 3.jpeg
---
-{DESCRIPTION}
\ No newline at end of file
+{DESCRIPTION}
diff --git a/packages/app-store/templates/event-type-location-video-static/api/add.ts b/packages/app-store/templates/event-type-location-video-static/api/add.ts
index f8c6354180..9a4afb9b2c 100644
--- a/packages/app-store/templates/event-type-location-video-static/api/add.ts
+++ b/packages/app-store/templates/event-type-location-video-static/api/add.ts
@@ -1,5 +1,5 @@
import { createDefaultInstallation } from "@calcom/app-store/_utils/installation";
-import { AppDeclarativeHandler } from "@calcom/types/AppHandler";
+import type { AppDeclarativeHandler } from "@calcom/types/AppHandler";
import appConfig from "../config.json";
diff --git a/packages/app-store/templates/general-app-settings/DESCRIPTION.md b/packages/app-store/templates/general-app-settings/DESCRIPTION.md
index 02c40f00ac..a4b15502c3 100644
--- a/packages/app-store/templates/general-app-settings/DESCRIPTION.md
+++ b/packages/app-store/templates/general-app-settings/DESCRIPTION.md
@@ -5,4 +5,4 @@ items:
- 3.jpeg
---
-{DESCRIPTION}
\ No newline at end of file
+{DESCRIPTION}
diff --git a/packages/app-store/templates/general-app-settings/api/add.ts b/packages/app-store/templates/general-app-settings/api/add.ts
index f8c6354180..9a4afb9b2c 100644
--- a/packages/app-store/templates/general-app-settings/api/add.ts
+++ b/packages/app-store/templates/general-app-settings/api/add.ts
@@ -1,5 +1,5 @@
import { createDefaultInstallation } from "@calcom/app-store/_utils/installation";
-import { AppDeclarativeHandler } from "@calcom/types/AppHandler";
+import type { AppDeclarativeHandler } from "@calcom/types/AppHandler";
import appConfig from "../config.json";
diff --git a/packages/app-store/templates/link-as-an-app/api/add.ts b/packages/app-store/templates/link-as-an-app/api/add.ts
index d27cdfd098..37dda83e44 100644
--- a/packages/app-store/templates/link-as-an-app/api/add.ts
+++ b/packages/app-store/templates/link-as-an-app/api/add.ts
@@ -1,5 +1,5 @@
import { createDefaultInstallation } from "@calcom/app-store/_utils/installation";
-import { AppDeclarativeHandler } from "@calcom/types/AppHandler";
+import type { AppDeclarativeHandler } from "@calcom/types/AppHandler";
import appConfig from "../config.json";
diff --git a/packages/app-store/typeform/api/add.ts b/packages/app-store/typeform/api/add.ts
index dc41ae123c..7f6af388be 100644
--- a/packages/app-store/typeform/api/add.ts
+++ b/packages/app-store/typeform/api/add.ts
@@ -1,4 +1,4 @@
-import { AppDeclarativeHandler } from "@calcom/types/AppHandler";
+import type { AppDeclarativeHandler } from "@calcom/types/AppHandler";
import { createDefaultInstallation } from "../../_utils/installation";
import appConfig from "../config.json";
diff --git a/packages/app-store/typeform/playwright/tests/basic.e2e.ts b/packages/app-store/typeform/playwright/tests/basic.e2e.ts
index ce52acb620..dcbee5aea2 100644
--- a/packages/app-store/typeform/playwright/tests/basic.e2e.ts
+++ b/packages/app-store/typeform/playwright/tests/basic.e2e.ts
@@ -1,11 +1,13 @@
-import { Page, expect } from "@playwright/test";
+import type { Page } from "@playwright/test";
+import { expect } from "@playwright/test";
import {
addForm as addRoutingForm,
addOneFieldAndDescriptionAndSaveForm,
} from "@calcom/app-store/ee/routing-forms/playwright/tests/basic.e2e";
import { CAL_URL } from "@calcom/lib/constants";
-import { Fixtures, test } from "@calcom/web/playwright/lib/fixtures";
+import type { Fixtures } from "@calcom/web/playwright/lib/fixtures";
+import { test } from "@calcom/web/playwright/lib/fixtures";
const installApps = async (page: Page, users: Fixtures["users"]) => {
const user = await users.create(
diff --git a/packages/app-store/types.d.ts b/packages/app-store/types.d.ts
index 37c8b91951..ed44f5f0c6 100644
--- a/packages/app-store/types.d.ts
+++ b/packages/app-store/types.d.ts
@@ -1,9 +1,9 @@
-import React from "react";
-import { z } from "zod";
+import type React from "react";
+import type { z } from "zod";
-import { _EventTypeModel } from "@calcom/prisma/zod";
-import { RouterOutputs } from "@calcom/trpc/react";
-import { ButtonProps } from "@calcom/ui";
+import type { _EventTypeModel } from "@calcom/prisma/zod";
+import type { RouterOutputs } from "@calcom/trpc/react";
+import type { ButtonProps } from "@calcom/ui";
export type IntegrationOAuthCallbackState = {
returnTo: string;
diff --git a/packages/app-store/utils.ts b/packages/app-store/utils.ts
index 2e5de4e8db..4ef88f073e 100644
--- a/packages/app-store/utils.ts
+++ b/packages/app-store/utils.ts
@@ -1,13 +1,14 @@
import { Prisma } from "@prisma/client";
-import { TFunction } from "next-i18next";
-import { z } from "zod";
+import type { TFunction } from "next-i18next";
+import type { z } from "zod";
// If you import this file on any app it should produce circular dependency
// import appStore from "./index";
import { appStoreMetadata } from "@calcom/app-store/appStoreMetaData";
-import { defaultLocations, EventLocationType } from "@calcom/app-store/locations";
-import { EventTypeModel } from "@calcom/prisma/zod";
-import { EventTypeMetaDataSchema } from "@calcom/prisma/zod-utils";
+import type { EventLocationType } from "@calcom/app-store/locations";
+import { defaultLocations } from "@calcom/app-store/locations";
+import type { EventTypeModel } from "@calcom/prisma/zod";
+import type { EventTypeMetaDataSchema } from "@calcom/prisma/zod-utils";
import type { App, AppMeta } from "@calcom/types/App";
type LocationOption = {
@@ -148,7 +149,7 @@ function getApps(userCredentials: CredentialData[]) {
};
}
- const credential: typeof credentials[number] | null = credentials[0] || null;
+ const credential: (typeof credentials)[number] | null = credentials[0] || null;
return {
...appMeta,
/**
diff --git a/packages/app-store/vimcal/api/add.ts b/packages/app-store/vimcal/api/add.ts
index b1cbdc1ac1..8a7e247023 100644
--- a/packages/app-store/vimcal/api/add.ts
+++ b/packages/app-store/vimcal/api/add.ts
@@ -1,4 +1,4 @@
-import { AppDeclarativeHandler } from "@calcom/types/AppHandler";
+import type { AppDeclarativeHandler } from "@calcom/types/AppHandler";
import { createDefaultInstallation } from "../../_utils/installation";
import appConfig from "../config.json";
diff --git a/packages/app-store/vital/api/callback.ts b/packages/app-store/vital/api/callback.ts
index 1147a77e79..ecdb278849 100644
--- a/packages/app-store/vital/api/callback.ts
+++ b/packages/app-store/vital/api/callback.ts
@@ -1,4 +1,4 @@
-import { Prisma } from "@prisma/client";
+import type { Prisma } from "@prisma/client";
import type { NextApiRequest, NextApiResponse } from "next";
import prisma from "@calcom/prisma";
diff --git a/packages/app-store/vital/api/save.ts b/packages/app-store/vital/api/save.ts
index 96bb9a5ee5..8348fb5d6d 100644
--- a/packages/app-store/vital/api/save.ts
+++ b/packages/app-store/vital/api/save.ts
@@ -1,4 +1,4 @@
-import { Prisma } from "@prisma/client";
+import type { Prisma } from "@prisma/client";
import type { NextApiRequest, NextApiResponse } from "next";
import { ZodError } from "zod";
diff --git a/packages/app-store/vital/api/settings.ts b/packages/app-store/vital/api/settings.ts
index 86da2d2759..cbaf8df97b 100644
--- a/packages/app-store/vital/api/settings.ts
+++ b/packages/app-store/vital/api/settings.ts
@@ -1,5 +1,5 @@
import type { NextApiRequest, NextApiResponse } from "next";
-import { JSONObject } from "superjson/dist/types";
+import type { JSONObject } from "superjson/dist/types";
import prisma from "@calcom/prisma";
diff --git a/packages/app-store/vital/api/token.ts b/packages/app-store/vital/api/token.ts
index ae083b4c3b..ab38427e22 100644
--- a/packages/app-store/vital/api/token.ts
+++ b/packages/app-store/vital/api/token.ts
@@ -1,4 +1,4 @@
-import { Prisma } from "@prisma/client";
+import type { Prisma } from "@prisma/client";
import type { NextApiRequest, NextApiResponse } from "next";
import { WEBAPP_URL } from "@calcom/lib/constants";
diff --git a/packages/app-store/vital/api/webhook.ts b/packages/app-store/vital/api/webhook.ts
index fcd3f2c0e9..b49c17d5f4 100644
--- a/packages/app-store/vital/api/webhook.ts
+++ b/packages/app-store/vital/api/webhook.ts
@@ -1,4 +1,5 @@
-import { BookingStatus, Prisma } from "@prisma/client";
+import type { Prisma } from "@prisma/client";
+import { BookingStatus } from "@prisma/client";
import type { NextApiRequest, NextApiResponse } from "next";
import queue from "queue";
diff --git a/packages/app-store/vital/components/InstallAppButton.tsx b/packages/app-store/vital/components/InstallAppButton.tsx
index 0c29769f00..232cceb785 100644
--- a/packages/app-store/vital/components/InstallAppButton.tsx
+++ b/packages/app-store/vital/components/InstallAppButton.tsx
@@ -1,6 +1,6 @@
import { useState } from "react";
-import { InstallAppButtonProps } from "../../types";
+import type { InstallAppButtonProps } from "../../types";
export default function InstallAppButton(props: InstallAppButtonProps) {
const getLinkToken = async () => {
diff --git a/packages/app-store/vital/lib/reschedule.ts b/packages/app-store/vital/lib/reschedule.ts
index 169ecf8b55..d216a987cf 100644
--- a/packages/app-store/vital/lib/reschedule.ts
+++ b/packages/app-store/vital/lib/reschedule.ts
@@ -1,4 +1,5 @@
-import { Booking, BookingReference, BookingStatus, User } from "@prisma/client";
+import type { Booking, BookingReference, User } from "@prisma/client";
+import { BookingStatus } from "@prisma/client";
import type { TFunction } from "next-i18next";
import { CalendarEventBuilder } from "@calcom/core/builders/CalendarEvent/builder";
diff --git a/packages/app-store/weather_in_your_calendar/api/add.ts b/packages/app-store/weather_in_your_calendar/api/add.ts
index 8f569c854c..44d56bb0fa 100644
--- a/packages/app-store/weather_in_your_calendar/api/add.ts
+++ b/packages/app-store/weather_in_your_calendar/api/add.ts
@@ -1,4 +1,4 @@
-import { AppDeclarativeHandler } from "@calcom/types/AppHandler";
+import type { AppDeclarativeHandler } from "@calcom/types/AppHandler";
import { createDefaultInstallation } from "../../_utils/installation";
import appConfig from "../config.json";
diff --git a/packages/app-store/whatsapp/DESCRIPTION.md b/packages/app-store/whatsapp/DESCRIPTION.md
index 6fc6397a2e..88ee147287 100644
--- a/packages/app-store/whatsapp/DESCRIPTION.md
+++ b/packages/app-store/whatsapp/DESCRIPTION.md
@@ -5,4 +5,4 @@ items:
- /api/app-store/whatsapp/3.jpg
---
-Schedule a chat with your guests or have a WhatsApp Video call.
\ No newline at end of file
+Schedule a chat with your guests or have a WhatsApp Video call.
diff --git a/packages/app-store/whatsapp/api/add.ts b/packages/app-store/whatsapp/api/add.ts
index 8f569c854c..44d56bb0fa 100644
--- a/packages/app-store/whatsapp/api/add.ts
+++ b/packages/app-store/whatsapp/api/add.ts
@@ -1,4 +1,4 @@
-import { AppDeclarativeHandler } from "@calcom/types/AppHandler";
+import type { AppDeclarativeHandler } from "@calcom/types/AppHandler";
import { createDefaultInstallation } from "../../_utils/installation";
import appConfig from "../config.json";
diff --git a/packages/app-store/whereby/DESCRIPTION.md b/packages/app-store/whereby/DESCRIPTION.md
index 9cc18e9f7d..5477309ffc 100644
--- a/packages/app-store/whereby/DESCRIPTION.md
+++ b/packages/app-store/whereby/DESCRIPTION.md
@@ -4,4 +4,4 @@ items:
- /api/app-store/whereby/whereby2.webp
---
-Whereby's the easiest way to connect over video – with no app or software download required. Connect with anyone, anywhere with zero hassle.
\ No newline at end of file
+Whereby's the easiest way to connect over video – with no app or software download required. Connect with anyone, anywhere with zero hassle.
diff --git a/packages/app-store/wipemycalother/components/confirmDialog.tsx b/packages/app-store/wipemycalother/components/confirmDialog.tsx
index d8023feb95..98c40d8202 100644
--- a/packages/app-store/wipemycalother/components/confirmDialog.tsx
+++ b/packages/app-store/wipemycalother/components/confirmDialog.tsx
@@ -1,6 +1,7 @@
import { ClockIcon } from "@heroicons/react/outline";
import { useMutation } from "@tanstack/react-query";
-import { Dispatch, SetStateAction, useState } from "react";
+import type { Dispatch, SetStateAction } from "react";
+import { useState } from "react";
import dayjs from "@calcom/dayjs";
import { useLocale } from "@calcom/lib/hooks/useLocale";
diff --git a/packages/app-store/wipemycalother/lib/reschedule.ts b/packages/app-store/wipemycalother/lib/reschedule.ts
index cd423846c1..5e735097f2 100644
--- a/packages/app-store/wipemycalother/lib/reschedule.ts
+++ b/packages/app-store/wipemycalother/lib/reschedule.ts
@@ -1,4 +1,5 @@
-import { Booking, BookingReference, BookingStatus, User } from "@prisma/client";
+import type { Booking, BookingReference, User } from "@prisma/client";
+import { BookingStatus } from "@prisma/client";
import type { TFunction } from "next-i18next";
import { CalendarEventBuilder } from "@calcom/core/builders/CalendarEvent/builder";
diff --git a/packages/app-store/wordpress/DESCRIPTION.md b/packages/app-store/wordpress/DESCRIPTION.md
index 5b5c61f6e6..d8e878b94f 100644
--- a/packages/app-store/wordpress/DESCRIPTION.md
+++ b/packages/app-store/wordpress/DESCRIPTION.md
@@ -1,16 +1,17 @@
-Embedded booking pages right into your wordpress page.
+Embedded booking pages right into your wordpress page.
#### FEATURES
+
- Add Cal.com booking calendar to any WordPress page/post with a simple shortcode.
- Display your Cal.com booking calendar inline or in a popup.
- Customize your booking button to suit you.
#### SHORTCODE
-[cal url=/username/meetingid type=2 text="Schedule a call with me"]
+[cal url=/username/meetingid type=2 text="Schedule a call with me"]
#### SHORTCODE CUSTOMIZATION
+
- url: URL of the booking calendar
- type: Add inline or popup embed. Inline embed: 1, Popup embed: 2
- text: For popup embed, customize the text/button that triggers the popup.
-
diff --git a/packages/app-store/wordpress/api/add.ts b/packages/app-store/wordpress/api/add.ts
index f4b106f9d4..8f15564741 100644
--- a/packages/app-store/wordpress/api/add.ts
+++ b/packages/app-store/wordpress/api/add.ts
@@ -1,4 +1,4 @@
-import { AppDeclarativeHandler } from "@calcom/types/AppHandler";
+import type { AppDeclarativeHandler } from "@calcom/types/AppHandler";
import { createDefaultInstallation } from "../../_utils/installation";
import appConfig from "../config.json";
diff --git a/packages/app-store/zapier/components/TemplateCard.tsx b/packages/app-store/zapier/components/TemplateCard.tsx
index 34b955858f..2eee775cdd 100644
--- a/packages/app-store/zapier/components/TemplateCard.tsx
+++ b/packages/app-store/zapier/components/TemplateCard.tsx
@@ -1,6 +1,6 @@
import { Button } from "@calcom/ui";
-import { Template } from "./AppSettingsInterface";
+import type { Template } from "./AppSettingsInterface";
export default function TemplateCard({ template }: { template: Template }) {
return (
diff --git a/packages/app-store/zapier/pages/setup/_getStaticProps.tsx b/packages/app-store/zapier/pages/setup/_getStaticProps.tsx
index b73a0786cc..05b728d3fe 100644
--- a/packages/app-store/zapier/pages/setup/_getStaticProps.tsx
+++ b/packages/app-store/zapier/pages/setup/_getStaticProps.tsx
@@ -1,4 +1,4 @@
-import { GetStaticPropsContext } from "next";
+import type { GetStaticPropsContext } from "next";
import getAppKeysFromSlug from "../../../_utils/getAppKeysFromSlug";
diff --git a/packages/app-store/zoomvideo/lib/VideoApiAdapter.ts b/packages/app-store/zoomvideo/lib/VideoApiAdapter.ts
index 6d01a93430..ca00ee9a75 100644
--- a/packages/app-store/zoomvideo/lib/VideoApiAdapter.ts
+++ b/packages/app-store/zoomvideo/lib/VideoApiAdapter.ts
@@ -2,10 +2,10 @@ import { z } from "zod";
import dayjs from "@calcom/dayjs";
import prisma from "@calcom/prisma";
-import { Credential } from "@calcom/prisma/client";
+import type { Credential } from "@calcom/prisma/client";
import { Frequency } from "@calcom/prisma/zod-utils";
import type { CalendarEvent } from "@calcom/types/Calendar";
-import { CredentialPayload } from "@calcom/types/Credential";
+import type { CredentialPayload } from "@calcom/types/Credential";
import type { PartialReference } from "@calcom/types/EventManager";
import type { VideoApiAdapter, VideoCallData } from "@calcom/types/VideoApiAdapter";
diff --git a/packages/config/eslint-preset.js b/packages/config/eslint-preset.js
index a0eeee0c8a..8825b059ed 100644
--- a/packages/config/eslint-preset.js
+++ b/packages/config/eslint-preset.js
@@ -5,7 +5,6 @@ module.exports = {
plugins: ["unused-imports"],
parserOptions: {
tsconfigRootDir: __dirname,
- project: ["./tsconfig.json"],
project: ["./apps/*/tsconfig.json", "./packages/*/tsconfig.json"],
},
settings: {
@@ -32,6 +31,18 @@ module.exports = {
extends: ["plugin:@typescript-eslint/recommended", "plugin:@calcom/eslint/recommended"],
plugins: ["@typescript-eslint", "@calcom/eslint"],
parser: "@typescript-eslint/parser",
+ rules: {
+ "@typescript-eslint/consistent-type-imports": [
+ "error",
+ {
+ prefer: "type-imports",
+ // TODO: enable this once prettier supports it
+ // fixStyle: "inline-type-imports",
+ fixStyle: "separate-type-imports",
+ disallowTypeAnnotations: false,
+ },
+ ],
+ },
overrides: [
{
files: ["playwright/**/*.{tsx,ts}"],
diff --git a/packages/config/package.json b/packages/config/package.json
index 8c9312bab1..302ff87adf 100644
--- a/packages/config/package.json
+++ b/packages/config/package.json
@@ -10,10 +10,10 @@
],
"dependencies": {
"@calcom/eslint-plugin-eslint": "*",
- "eslint-config-next": "^13.1.1",
- "eslint-config-prettier": "^8.5.0",
- "eslint-config-turbo": "^0.0.3",
- "eslint-plugin-playwright": "^0.9.0",
+ "eslint-config-next": "^13.1.6",
+ "eslint-config-prettier": "^8.6.0",
+ "eslint-config-turbo": "^0.0.7",
+ "eslint-plugin-playwright": "^0.12.0",
"eslint-plugin-prettier": "^4.2.1"
},
"devDependencies": {
@@ -21,11 +21,11 @@
"@tailwindcss/line-clamp": "^0.4.0",
"@tailwindcss/typography": "^0.5.4",
"@trivago/prettier-plugin-sort-imports": "3.2.0",
- "@typescript-eslint/eslint-plugin": "^5.33.1",
- "@typescript-eslint/parser": "^5.33.1",
- "eslint": "^8.22.0",
+ "@typescript-eslint/eslint-plugin": "^5.52.0",
+ "@typescript-eslint/parser": "^5.52.0",
+ "eslint": "^8.34.0",
"eslint-plugin-unused-imports": "^2.0.0",
- "prettier": "^2.7.1",
+ "prettier": "^2.8.4",
"prettier-plugin-tailwindcss": "^0.1.13",
"tailwind-scrollbar": "^2.0.1",
"tailwindcss": "^3.2.1",
diff --git a/packages/emails/src/renderEmail.ts b/packages/emails/src/renderEmail.ts
index bb0cce8a31..4404c94a47 100644
--- a/packages/emails/src/renderEmail.ts
+++ b/packages/emails/src/renderEmail.ts
@@ -4,7 +4,7 @@ import * as templates from "./templates";
function renderEmail(
template: K,
- props: React.ComponentProps
+ props: React.ComponentProps<(typeof templates)[K]>
) {
const Component = templates[template];
return (
diff --git a/packages/embeds/embed-core/package.json b/packages/embeds/embed-core/package.json
index 4e38daf641..a363ef5fed 100644
--- a/packages/embeds/embed-core/package.json
+++ b/packages/embeds/embed-core/package.json
@@ -24,6 +24,7 @@
"dev-real": "vite dev --port 3100",
"type-check": "tsc --pretty --noEmit",
"lint": "eslint --ext .ts,.js src",
+ "lint:fix": "eslint --ext .ts,.js src --fix",
"embed-tests": "yarn playwright test --config=playwright/config/playwright.config.ts",
"embed-tests-quick": "QUICK=true yarn embed-tests",
"embed-tests-update-snapshots:ci": "yarn embed-tests-quick --update-snapshots",
@@ -43,7 +44,7 @@
},
"devDependencies": {
"autoprefixer": "^10.4.12",
- "eslint": "^8.22.0",
+ "eslint": "^8.34.0",
"npm-run-all": "^4.1.5",
"postcss": "^8.4.18",
"tailwindcss": "^3.2.1",
diff --git a/packages/embeds/embed-core/src/FloatingButton/FloatingButton.ts b/packages/embeds/embed-core/src/FloatingButton/FloatingButton.ts
index 484fa3088b..5a4aad9913 100644
--- a/packages/embeds/embed-core/src/FloatingButton/FloatingButton.ts
+++ b/packages/embeds/embed-core/src/FloatingButton/FloatingButton.ts
@@ -1,4 +1,4 @@
-import { CalWindow } from "../embed";
+import type { CalWindow } from "../embed";
import getFloatingButtonHtml from "./FloatingButtonHtml";
export class FloatingButton extends HTMLElement {
diff --git a/packages/embeds/embed-core/src/Inline/inline.ts b/packages/embeds/embed-core/src/Inline/inline.ts
index a1f1c260d4..98ba5c47e9 100644
--- a/packages/embeds/embed-core/src/Inline/inline.ts
+++ b/packages/embeds/embed-core/src/Inline/inline.ts
@@ -1,4 +1,4 @@
-import { CalWindow } from "../embed";
+import type { CalWindow } from "../embed";
import loaderCss from "../loader.css";
import { getErrorString } from "../utils";
import inlineHtml from "./inlineHtml";
diff --git a/packages/embeds/embed-core/src/ModalBox/ModalBox.ts b/packages/embeds/embed-core/src/ModalBox/ModalBox.ts
index a592566e03..b9e5787ce4 100644
--- a/packages/embeds/embed-core/src/ModalBox/ModalBox.ts
+++ b/packages/embeds/embed-core/src/ModalBox/ModalBox.ts
@@ -1,4 +1,4 @@
-import { CalWindow } from "../embed";
+import type { CalWindow } from "../embed";
import loaderCss from "../loader.css";
import { getErrorString } from "../utils";
import modalBoxHtml from "./ModalBoxHtml";
diff --git a/packages/embeds/embed-core/src/embed-iframe.ts b/packages/embeds/embed-core/src/embed-iframe.ts
index addb350572..26c61f38fb 100644
--- a/packages/embeds/embed-core/src/embed-iframe.ts
+++ b/packages/embeds/embed-core/src/embed-iframe.ts
@@ -1,5 +1,6 @@
import { useRouter } from "next/router";
-import { useState, useEffect, CSSProperties } from "react";
+import type { CSSProperties } from "react";
+import { useState, useEffect } from "react";
import { sdkActionManager } from "./sdk-event";
diff --git a/packages/embeds/embed-core/src/embed.ts b/packages/embeds/embed-core/src/embed.ts
index 8f279311e9..9a2c47a4bd 100644
--- a/packages/embeds/embed-core/src/embed.ts
+++ b/packages/embeds/embed-core/src/embed.ts
@@ -1,7 +1,7 @@
import { FloatingButton } from "./FloatingButton/FloatingButton";
import { Inline } from "./Inline/inline";
import { ModalBox } from "./ModalBox/ModalBox";
-import { methods, UiConfig } from "./embed-iframe";
+import type { methods, UiConfig } from "./embed-iframe";
import css from "./embed.css";
import { SdkActionManager } from "./sdk-action-manager";
import allCss from "./tailwind.generated.css";
@@ -428,7 +428,7 @@ export class Cal {
method,
arg,
}: // TODO: Need some TypeScript magic here to remove hardcoded types
- | { method: "ui"; arg: Parameters[0] }
+ | { method: "ui"; arg: Parameters<(typeof methods)["ui"]>[0] }
| { method: "parentKnowsIframeReady"; arg: undefined }) {
if (!this.iframeReady) {
this.iframeDoQueue.push({ method, arg });
diff --git a/packages/embeds/embed-core/src/preview.ts b/packages/embeds/embed-core/src/preview.ts
index 6a9168aafb..030d4846c5 100644
--- a/packages/embeds/embed-core/src/preview.ts
+++ b/packages/embeds/embed-core/src/preview.ts
@@ -1,4 +1,4 @@
-import { CalWindow } from "./embed";
+import type { CalWindow } from "./embed";
const WEBAPP_URL =
import.meta.env.EMBED_PUBLIC_WEBAPP_URL || `https://${import.meta.env.EMBED_PUBLIC_VERCEL_URL}`;
diff --git a/packages/embeds/embed-react/package.json b/packages/embeds/embed-react/package.json
index 0344e608ae..2585b44e8f 100644
--- a/packages/embeds/embed-react/package.json
+++ b/packages/embeds/embed-react/package.json
@@ -41,10 +41,10 @@
}
},
"devDependencies": {
- "@types/react": "^18.0.17",
- "@types/react-dom": "^18.0.6",
- "@vitejs/plugin-react": "^1.3.2",
- "eslint": "^8.22.0",
+ "@types/react": "18.0.26",
+ "@types/react-dom": "18.0.9",
+ "@vitejs/plugin-react": "1.3.2",
+ "eslint": "^8.34.0",
"npm-run-all": "^4.1.5",
"typescript": "^4.9.4",
"vite": "^2.9.15"
diff --git a/packages/embeds/embed-react/src/index.ts b/packages/embeds/embed-react/src/index.ts
index 196ae4d55f..1ba24fd6a3 100644
--- a/packages/embeds/embed-react/src/index.ts
+++ b/packages/embeds/embed-react/src/index.ts
@@ -1,4 +1,4 @@
-import { CalWindow } from "@calcom/embed-core";
+import type { CalWindow } from "@calcom/embed-core";
import EmbedSnippet from "@calcom/embed-snippet";
import Cal from "./Cal";
diff --git a/packages/embeds/embed-snippet/package.json b/packages/embeds/embed-snippet/package.json
index e234603943..bc119a7e34 100644
--- a/packages/embeds/embed-snippet/package.json
+++ b/packages/embeds/embed-snippet/package.json
@@ -24,7 +24,7 @@
],
"types": "./dist/index.d.ts",
"devDependencies": {
- "eslint": "^8.22.0",
+ "eslint": "^8.34.0",
"typescript": "^4.9.4"
},
"dependencies": {
diff --git a/packages/embeds/embed-snippet/src/index.ts b/packages/embeds/embed-snippet/src/index.ts
index ab9d2a5b1d..997d72cfc3 100644
--- a/packages/embeds/embed-snippet/src/index.ts
+++ b/packages/embeds/embed-snippet/src/index.ts
@@ -4,7 +4,7 @@
* As we want to keep control on the size of this snippet but we want some portion of it to be still readable.
* So, write the code that you need directly but keep it short.
*/
-import { CalWindow } from "@calcom/embed-core";
+import type { CalWindow } from "@calcom/embed-core";
const WEBAPP_URL =
import.meta.env.EMBED_PUBLIC_WEBAPP_URL || `https://${import.meta.env.EMBED_PUBLIC_VERCEL_URL}`;
diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json
index 2dcbdec19d..3d2c1ff29c 100644
--- a/packages/eslint-plugin/package.json
+++ b/packages/eslint-plugin/package.json
@@ -4,9 +4,9 @@
"version": "0.1.0",
"main": "./src/index.js",
"dependencies": {
- "@typescript-eslint/parser": "^5.33.1",
- "@typescript-eslint/utils": "^5.33.1",
- "eslint": "^8.22.0",
+ "@typescript-eslint/parser": "^5.52.0",
+ "@typescript-eslint/utils": "^5.52.0",
+ "eslint": "^8.34.0",
"ts-node": "^10.9.1",
"typescript": "^4.9.4"
},
diff --git a/packages/features/auth/PermissionContainer.tsx b/packages/features/auth/PermissionContainer.tsx
index e5865aec43..dbe4a8222d 100644
--- a/packages/features/auth/PermissionContainer.tsx
+++ b/packages/features/auth/PermissionContainer.tsx
@@ -1,7 +1,7 @@
+import { UserPermissionRole } from "@prisma/client";
import { useSession } from "next-auth/react";
-import { FC, Fragment } from "react";
-
-import { UserPermissionRole } from ".prisma/client";
+import type { FC } from "react";
+import { Fragment } from "react";
type AdminRequiredProps = {
as?: keyof JSX.IntrinsicElements;
diff --git a/packages/features/ee/payments/pages/payment.tsx b/packages/features/ee/payments/pages/payment.tsx
index fc2839700d..c39a072276 100644
--- a/packages/features/ee/payments/pages/payment.tsx
+++ b/packages/features/ee/payments/pages/payment.tsx
@@ -1,15 +1,14 @@
-import { GetServerSidePropsContext } from "next";
+import { BookingStatus } from "@prisma/client";
+import type { GetServerSidePropsContext } from "next";
import { z } from "zod";
-import { StripePaymentData } from "@calcom/app-store/stripepayment/lib/server";
+import type { StripePaymentData } from "@calcom/app-store/stripepayment/lib/server";
import prisma from "@calcom/prisma";
import { EventTypeMetaDataSchema } from "@calcom/prisma/zod-utils";
import type { inferSSRProps } from "@calcom/types/inferSSRProps";
import { ssrInit } from "@server/lib/ssr";
-import { BookingStatus } from ".prisma/client";
-
export type PaymentPageProps = inferSSRProps;
const querySchema = z.object({
diff --git a/packages/features/schedules/components/Schedule.tsx b/packages/features/schedules/components/Schedule.tsx
index 91ad0c549b..271be2ba32 100644
--- a/packages/features/schedules/components/Schedule.tsx
+++ b/packages/features/schedules/components/Schedule.tsx
@@ -117,6 +117,7 @@ const CopyButton = ({
disabled={parseInt(getValuesFromDayRange.replace(fieldArrayName + ".", ""), 10)}
onClick={(selected) => {
selected.forEach((day) => setValue(`${fieldArrayName}.${day}`, getValues(getValuesFromDayRange)));
+ setOpen(false);
}}
onCancel={() => setOpen(false)}
/>
diff --git a/packages/lib/CalendarService.ts b/packages/lib/CalendarService.ts
index 96f3a25a22..de8dd69551 100644
--- a/packages/lib/CalendarService.ts
+++ b/packages/lib/CalendarService.ts
@@ -1,13 +1,13 @@
/* eslint-disable @typescript-eslint/triple-slash-reference */
///
-import { Prisma } from "@prisma/client";
+import type { Prisma } from "@prisma/client";
import ICAL from "ical.js";
import type { Attendee, DateArray, DurationObject, Person } from "ics";
import { createEvent } from "ics";
+import type { DAVAccount } from "tsdav";
import {
createAccount,
createCalendarObject,
- DAVAccount,
deleteCalendarObject,
fetchCalendarObjects,
fetchCalendars,
@@ -26,7 +26,7 @@ import type {
IntegrationCalendar,
NewCalendarEventType,
} from "@calcom/types/Calendar";
-import { CredentialPayload } from "@calcom/types/Credential";
+import type { CredentialPayload } from "@calcom/types/Credential";
import { getLocation, getRichDescription } from "./CalEventParser";
import { symmetricDecrypt } from "./crypto";
diff --git a/packages/lib/CloseComeUtils.ts b/packages/lib/CloseComeUtils.ts
index 5e06113dbd..d9f6dccdc0 100644
--- a/packages/lib/CloseComeUtils.ts
+++ b/packages/lib/CloseComeUtils.ts
@@ -1,12 +1,13 @@
import type { CalendarEvent } from "@calcom/types/Calendar";
-import CloseCom, {
+import type {
CloseComCustomActivityCreate,
CloseComCustomActivityFieldGet,
CloseComCustomContactFieldGet,
CloseComFieldOptions,
CloseComLead,
} from "./CloseCom";
+import type CloseCom from "./CloseCom";
import { APP_NAME } from "./constants";
export async function getCloseComContactIds(
diff --git a/packages/lib/PaymentService.ts b/packages/lib/PaymentService.ts
index c81f9fce57..cfc6d5ef41 100644
--- a/packages/lib/PaymentService.ts
+++ b/packages/lib/PaymentService.ts
@@ -1,6 +1,6 @@
-import { Payment, Prisma, Booking } from "@prisma/client";
+import type { Payment, Prisma, Booking } from "@prisma/client";
-import { CalendarEvent } from "@calcom/types/Calendar";
+import type { CalendarEvent } from "@calcom/types/Calendar";
export interface IAbstractPaymentService {
create(
diff --git a/packages/lib/Sendgrid.ts b/packages/lib/Sendgrid.ts
index bf9fe90809..6677094fee 100644
--- a/packages/lib/Sendgrid.ts
+++ b/packages/lib/Sendgrid.ts
@@ -1,6 +1,6 @@
import client from "@sendgrid/client";
-import { ClientRequest } from "@sendgrid/client/src/request";
-import { ClientResponse } from "@sendgrid/client/src/response";
+import type { ClientRequest } from "@sendgrid/client/src/request";
+import type { ClientResponse } from "@sendgrid/client/src/response";
import logger from "@calcom/lib/logger";
diff --git a/packages/lib/auth.ts b/packages/lib/auth.ts
index 2b17bb0815..4eb1102e45 100644
--- a/packages/lib/auth.ts
+++ b/packages/lib/auth.ts
@@ -2,7 +2,8 @@ import { IdentityProvider } from "@prisma/client";
import { compare, hash } from "bcryptjs";
import type { NextApiRequest } from "next";
import type { Session } from "next-auth";
-import { getSession as getSessionInner, GetSessionParams } from "next-auth/react";
+import type { GetSessionParams } from "next-auth/react";
+import { getSession as getSessionInner } from "next-auth/react";
import { HttpError } from "@calcom/lib/http-error";
diff --git a/packages/lib/availability.ts b/packages/lib/availability.ts
index 3e40631bc2..f9574269a7 100644
--- a/packages/lib/availability.ts
+++ b/packages/lib/availability.ts
@@ -1,6 +1,7 @@
import type { Availability } from "@prisma/client";
-import dayjs, { ConfigType } from "@calcom/dayjs";
+import type { ConfigType } from "@calcom/dayjs";
+import dayjs from "@calcom/dayjs";
import type { Schedule, TimeRange, WorkingHours } from "@calcom/types/schedule";
import { nameOfDay } from "./weekday";
diff --git a/packages/lib/date-fns/index.ts b/packages/lib/date-fns/index.ts
index f816377583..57658bcb04 100644
--- a/packages/lib/date-fns/index.ts
+++ b/packages/lib/date-fns/index.ts
@@ -1,4 +1,5 @@
-import dayjs, { Dayjs } from "@calcom/dayjs";
+import type { Dayjs } from "@calcom/dayjs";
+import dayjs from "@calcom/dayjs";
// converts a date to 2022-04-25 for example.
export const yyyymmdd = (date: Date | Dayjs) =>
@@ -29,6 +30,61 @@ export const formatTime = (
: dayjs(date).format(timeFormat === 12 ? "h:mma" : "HH:mm");
};
+/**
+ * Returns a localized and translated date or time, based on the native
+ * Intl.DateTimeFormat available to JS. Undefined values mean the browser's
+ * locale will be used.
+ */
+export const formatLocalizedDateTime = (
+ date: Date | Dayjs,
+ options: Intl.DateTimeFormatOptions = {},
+ locale: string | undefined = undefined
+) => {
+ const theDate = date instanceof dayjs ? (date as Dayjs).toDate() : (date as Date);
+ return Intl.DateTimeFormat(locale, options).format(theDate);
+};
+
+/**
+ * Returns a localized and translated calendar day based on the
+ * given Date object and locale. Undefined values mean the defaults
+ * associated with the browser's current locale will be used.
+ */
+export const formatToLocalizedDate = (
+ date: Date | Dayjs,
+ locale: string | undefined = undefined,
+ dateStyle: Intl.DateTimeFormatOptions["dateStyle"] = "long"
+) => formatLocalizedDateTime(date, { dateStyle }, locale);
+
+/**
+ * Returns a localized and translated time of day based on the
+ * given Date object and locale. Undefined values mean the defaults
+ * associated with the browser's current locale will be used.
+ */
+export const formatToLocalizedTime = (
+ date: Date | Dayjs,
+ locale: string | undefined = undefined,
+ timeStyle: Intl.DateTimeFormatOptions["timeStyle"] = "short",
+ hour12: Intl.DateTimeFormatOptions["hour12"] = undefined
+) => formatLocalizedDateTime(date, { timeStyle, hour12 }, locale);
+
+/**
+ * Returns a translated timezone based on the given Date object and
+ * locale. Undefined values mean the browser's current locale
+ * will be used.
+ */
+export const formatToLocalizedTimezone = (
+ date: Date | Dayjs,
+ locale: string | undefined = undefined,
+ timeZoneName: Intl.DateTimeFormatOptions["timeZoneName"] = "long"
+) => {
+ // Intl.DateTimeFormat doesn't format into a timezone only, so we must
+ // formatToParts() and return the piece we want
+ const theDate = date instanceof dayjs ? (date as Dayjs).toDate() : (date as Date);
+ return Intl.DateTimeFormat(locale, { timeZoneName })
+ .formatToParts(theDate)
+ .find((d) => d.type == "timeZoneName")?.value;
+};
+
/**
* Sorts two timezones by their offset from GMT.
*/
diff --git a/packages/lib/defaultEvents.ts b/packages/lib/defaultEvents.ts
index b8fc95f438..fc835fed33 100644
--- a/packages/lib/defaultEvents.ts
+++ b/packages/lib/defaultEvents.ts
@@ -1,9 +1,11 @@
-import { PeriodType, Prisma, SchedulingType } from "@prisma/client";
+import type { Prisma } from "@prisma/client";
+import { PeriodType, SchedulingType } from "@prisma/client";
import { DailyLocationType } from "@calcom/app-store/locations";
import { getBookingFieldsWithSystemFields } from "@calcom/features/bookings/lib/getBookingFields";
-import { userSelect } from "@calcom/prisma/selects";
-import { CustomInputSchema, EventTypeMetaDataSchema } from "@calcom/prisma/zod-utils";
+import type { userSelect } from "@calcom/prisma/selects";
+import type { CustomInputSchema } from "@calcom/prisma/zod-utils";
+import { EventTypeMetaDataSchema } from "@calcom/prisma/zod-utils";
type User = Prisma.UserGetPayload;
diff --git a/packages/lib/findDurationType.ts b/packages/lib/findDurationType.ts
index 5d09e3348b..fa16ca6f11 100644
--- a/packages/lib/findDurationType.ts
+++ b/packages/lib/findDurationType.ts
@@ -1,4 +1,5 @@
-import { DurationType, MINUTES_IN_DAY, MINUTES_IN_HOUR } from "./convertToNewDurationType";
+import type { DurationType } from "./convertToNewDurationType";
+import { MINUTES_IN_DAY, MINUTES_IN_HOUR } from "./convertToNewDurationType";
export default function findDurationType(value: number): DurationType {
if (value % MINUTES_IN_DAY === 0) return "days";
diff --git a/packages/lib/getEventTypeById.ts b/packages/lib/getEventTypeById.ts
index d25f1eb906..5a89d9d11c 100644
--- a/packages/lib/getEventTypeById.ts
+++ b/packages/lib/getEventTypeById.ts
@@ -1,8 +1,9 @@
-import { Prisma, PrismaClient } from "@prisma/client";
+import type { PrismaClient } from "@prisma/client";
+import { Prisma } from "@prisma/client";
-import { StripeData } from "@calcom/app-store/stripepayment/lib/server";
+import type { StripeData } from "@calcom/app-store/stripepayment/lib/server";
import { getEventTypeAppData, getLocationGroupedOptions } from "@calcom/app-store/utils";
-import { LocationObject } from "@calcom/core/location";
+import type { LocationObject } from "@calcom/core/location";
import { getBookingFieldsWithSystemFields } from "@calcom/features/bookings/lib/getBookingFields";
import { parseBookingLimit, parseRecurringEvent } from "@calcom/lib";
import getEnabledApps from "@calcom/lib/apps/getEnabledApps";
diff --git a/packages/lib/getPaymentAppData.ts b/packages/lib/getPaymentAppData.ts
index 8cdadade88..fa9ccc4d6a 100644
--- a/packages/lib/getPaymentAppData.ts
+++ b/packages/lib/getPaymentAppData.ts
@@ -1,8 +1,9 @@
-import { z } from "zod";
+import type { z } from "zod";
-import { appDataSchemas } from "@calcom/app-store/apps.schemas.generated";
-import { appDataSchema } from "@calcom/app-store/stripepayment/zod";
-import { EventTypeAppsList, getEventTypeAppData } from "@calcom/app-store/utils";
+import type { appDataSchemas } from "@calcom/app-store/apps.schemas.generated";
+import type { appDataSchema } from "@calcom/app-store/stripepayment/zod";
+import type { EventTypeAppsList } from "@calcom/app-store/utils";
+import { getEventTypeAppData } from "@calcom/app-store/utils";
export default function getPaymentAppData(
eventType: Parameters[0],
diff --git a/packages/lib/hooks/useKeyPress.ts b/packages/lib/hooks/useKeyPress.ts
index 8ee7e83c17..e5e430b0a9 100644
--- a/packages/lib/hooks/useKeyPress.ts
+++ b/packages/lib/hooks/useKeyPress.ts
@@ -1,4 +1,5 @@
-import { useState, useEffect, RefObject } from "react";
+import type { RefObject } from "react";
+import { useState, useEffect } from "react";
export function useKeyPress(
targetKey: string,
diff --git a/packages/lib/hooks/useOnclickOutside.ts b/packages/lib/hooks/useOnclickOutside.ts
index ad7872aa98..6174f2ad07 100644
--- a/packages/lib/hooks/useOnclickOutside.ts
+++ b/packages/lib/hooks/useOnclickOutside.ts
@@ -1,4 +1,5 @@
-import React, { useEffect } from "react";
+import type React from "react";
+import { useEffect } from "react";
export default function useOnClickOutside(
ref: React.RefObject,
diff --git a/packages/lib/hooks/useTheme.tsx b/packages/lib/hooks/useTheme.tsx
index de2b6bcb84..ed9e29c0dc 100644
--- a/packages/lib/hooks/useTheme.tsx
+++ b/packages/lib/hooks/useTheme.tsx
@@ -2,7 +2,7 @@ import { useTheme as useNextTheme } from "next-themes";
import { useEffect, useState } from "react";
import { useEmbedTheme } from "@calcom/embed-core/embed-iframe";
-import { Maybe } from "@calcom/trpc/server";
+import type { Maybe } from "@calcom/trpc/server";
// makes sure the ui doesn't flash
export default function useTheme(theme?: Maybe) {
diff --git a/packages/lib/i18n.ts b/packages/lib/i18n.ts
index 6e2d08e2f5..4b26a28743 100644
--- a/packages/lib/i18n.ts
+++ b/packages/lib/i18n.ts
@@ -1,8 +1,8 @@
/* eslint-disable @typescript-eslint/no-var-requires */
import parser from "accept-language-parser";
-import { IncomingMessage } from "http";
+import type { IncomingMessage } from "http";
-import { Maybe } from "@calcom/trpc/server";
+import type { Maybe } from "@calcom/trpc/server";
const { i18n } = require("@calcom/config/next-i18next.config");
diff --git a/packages/lib/isBookingLimits.ts b/packages/lib/isBookingLimits.ts
index ae8455ad93..16d66cfe7e 100644
--- a/packages/lib/isBookingLimits.ts
+++ b/packages/lib/isBookingLimits.ts
@@ -1,5 +1,5 @@
import { bookingLimitsType } from "@calcom/prisma/zod-utils";
-import { BookingLimit } from "@calcom/types/Calendar";
+import type { BookingLimit } from "@calcom/types/Calendar";
export function isBookingLimit(obj: unknown): obj is BookingLimit {
return bookingLimitsType.safeParse(obj).success;
diff --git a/packages/lib/isOutOfBounds.tsx b/packages/lib/isOutOfBounds.tsx
index 11216b1ea7..eeba900c3f 100644
--- a/packages/lib/isOutOfBounds.tsx
+++ b/packages/lib/isOutOfBounds.tsx
@@ -1,4 +1,5 @@
-import { EventType, PeriodType } from "@prisma/client";
+import type { EventType } from "@prisma/client";
+import { PeriodType } from "@prisma/client";
import dayjs from "@calcom/dayjs";
diff --git a/packages/lib/next-seo.config.ts b/packages/lib/next-seo.config.ts
index d39e7c58ca..22431488bf 100644
--- a/packages/lib/next-seo.config.ts
+++ b/packages/lib/next-seo.config.ts
@@ -1,8 +1,8 @@
-import { DefaultSeoProps, NextSeoProps } from "next-seo";
+import type { DefaultSeoProps, NextSeoProps } from "next-seo";
import { APP_NAME, SEO_IMG_DEFAULT, SEO_IMG_OGIMG } from "@calcom/lib/constants";
-import { AppImageProps, MeetingImageProps } from "./OgImages";
+import type { AppImageProps, MeetingImageProps } from "./OgImages";
export type HeadSeoProps = {
title: string;
diff --git a/packages/lib/payment/deletePayment.ts b/packages/lib/payment/deletePayment.ts
index ea7954caf8..b4e1fb4ce7 100644
--- a/packages/lib/payment/deletePayment.ts
+++ b/packages/lib/payment/deletePayment.ts
@@ -1,6 +1,6 @@
-import appStore from "@calcom/app-store";
+import type { AppCategories, Payment, Prisma } from "@prisma/client";
-import { AppCategories, Payment, Prisma } from ".prisma/client";
+import appStore from "@calcom/app-store";
const deletePayment = async (
paymentId: Payment["id"],
diff --git a/packages/lib/payment/handlePayment.ts b/packages/lib/payment/handlePayment.ts
index 05565979fe..dcded8e6e8 100644
--- a/packages/lib/payment/handlePayment.ts
+++ b/packages/lib/payment/handlePayment.ts
@@ -1,9 +1,9 @@
-import appStore from "@calcom/app-store";
-import { EventTypeAppsList } from "@calcom/app-store/utils";
-import { EventTypeModel } from "@calcom/prisma/zod";
-import { CalendarEvent } from "@calcom/types/Calendar";
+import type { AppCategories, Prisma } from "@prisma/client";
-import { AppCategories, Prisma } from ".prisma/client";
+import appStore from "@calcom/app-store";
+import type { EventTypeAppsList } from "@calcom/app-store/utils";
+import type { EventTypeModel } from "@calcom/prisma/zod";
+import type { CalendarEvent } from "@calcom/types/Calendar";
const handlePayment = async (
evt: CalendarEvent,
diff --git a/packages/lib/payment/handleRefundError.ts b/packages/lib/payment/handleRefundError.ts
index acb61826e5..9332a5aa77 100644
--- a/packages/lib/payment/handleRefundError.ts
+++ b/packages/lib/payment/handleRefundError.ts
@@ -1,5 +1,5 @@
import { sendOrganizerPaymentRefundFailedEmail } from "@calcom/emails";
-import { CalendarEvent } from "@calcom/types/Calendar";
+import type { CalendarEvent } from "@calcom/types/Calendar";
const handleRefundError = async (opts: { event: CalendarEvent; reason: string; paymentId: string }) => {
console.error(`refund failed: ${opts.reason} for booking '${opts.event.uid}'`);
diff --git a/packages/lib/recurringStrings.ts b/packages/lib/recurringStrings.ts
index 81301c8cde..df41371c8c 100644
--- a/packages/lib/recurringStrings.ts
+++ b/packages/lib/recurringStrings.ts
@@ -1,4 +1,4 @@
-import { TFunction } from "next-i18next";
+import type { TFunction } from "next-i18next";
import { Frequency } from "@calcom/prisma/zod-utils";
import type { RecurringEvent } from "@calcom/types/Calendar";
diff --git a/packages/lib/sanitizeCalendarObject.ts b/packages/lib/sanitizeCalendarObject.ts
index 19c52c8dc2..65c368a711 100644
--- a/packages/lib/sanitizeCalendarObject.ts
+++ b/packages/lib/sanitizeCalendarObject.ts
@@ -1,4 +1,4 @@
-import { DAVObject } from "tsdav";
+import type { DAVObject } from "tsdav";
export const sanitizeCalendarObject = (obj: DAVObject) => {
return obj.data
diff --git a/packages/lib/server/checkBookingLimits.ts b/packages/lib/server/checkBookingLimits.ts
index a187ead226..386b628567 100644
--- a/packages/lib/server/checkBookingLimits.ts
+++ b/packages/lib/server/checkBookingLimits.ts
@@ -1,6 +1,6 @@
import dayjs from "@calcom/dayjs";
import prisma from "@calcom/prisma";
-import { BookingLimit } from "@calcom/types/Calendar";
+import type { BookingLimit } from "@calcom/types/Calendar";
import { HttpError } from "../http-error";
import { parseBookingLimit } from "../isBookingLimits";
diff --git a/packages/lib/server/getLuckyUser.ts b/packages/lib/server/getLuckyUser.ts
index 26f3f65436..5d0be1969d 100644
--- a/packages/lib/server/getLuckyUser.ts
+++ b/packages/lib/server/getLuckyUser.ts
@@ -1,4 +1,4 @@
-import { User } from "@prisma/client";
+import type { User } from "@prisma/client";
import prisma from "@calcom/prisma";
diff --git a/packages/lib/server/getServerErrorFromUnknown.ts b/packages/lib/server/getServerErrorFromUnknown.ts
index dd4766ca9f..977705d735 100644
--- a/packages/lib/server/getServerErrorFromUnknown.ts
+++ b/packages/lib/server/getServerErrorFromUnknown.ts
@@ -1,6 +1,7 @@
import { PrismaClientKnownRequestError, NotFoundError } from "@prisma/client/runtime";
import Stripe from "stripe";
-import { ZodError, ZodIssue } from "zod";
+import type { ZodIssue } from "zod";
+import { ZodError } from "zod";
import { HttpError } from "../http-error";
diff --git a/packages/lib/server/revalidateCalendarCache.ts b/packages/lib/server/revalidateCalendarCache.ts
index ce580f2d7f..b8dd68e088 100644
--- a/packages/lib/server/revalidateCalendarCache.ts
+++ b/packages/lib/server/revalidateCalendarCache.ts
@@ -1,4 +1,4 @@
-import { NextApiResponse } from "next";
+import type { NextApiResponse } from "next";
import dayjs from "@calcom/dayjs";
diff --git a/packages/lib/serverConfig.ts b/packages/lib/serverConfig.ts
index d492f27778..46c6dca0a5 100644
--- a/packages/lib/serverConfig.ts
+++ b/packages/lib/serverConfig.ts
@@ -1,5 +1,5 @@
-import SendmailTransport from "nodemailer/lib/sendmail-transport";
-import SMTPConnection from "nodemailer/lib/smtp-connection";
+import type SendmailTransport from "nodemailer/lib/sendmail-transport";
+import type SMTPConnection from "nodemailer/lib/smtp-connection";
import { isENVDev } from "@calcom/lib/env";
diff --git a/packages/lib/slots.ts b/packages/lib/slots.ts
index 81a00b43fb..181749c1b2 100644
--- a/packages/lib/slots.ts
+++ b/packages/lib/slots.ts
@@ -1,5 +1,6 @@
-import dayjs, { Dayjs } from "@calcom/dayjs";
-import { WorkingHours, TimeRange as DateOverride } from "@calcom/types/schedule";
+import type { Dayjs } from "@calcom/dayjs";
+import dayjs from "@calcom/dayjs";
+import type { WorkingHours, TimeRange as DateOverride } from "@calcom/types/schedule";
import { getWorkingHours } from "./availability";
@@ -175,7 +176,7 @@ const getSlots = ({
const computedLocalAvailability: TimeFrame[] = [];
let tempComputeTimeFrame: TimeFrame | undefined;
const computeLength = localWorkingHours.length - 1;
- const makeTimeFrame = (item: typeof localWorkingHours[0]): TimeFrame => ({
+ const makeTimeFrame = (item: (typeof localWorkingHours)[0]): TimeFrame => ({
userIds: item.userId ? [item.userId] : [],
startTime: item.startTime,
endTime: item.endTime,
diff --git a/packages/lib/sync/ISyncService.ts b/packages/lib/sync/ISyncService.ts
index 631f0a0d8e..8b2a17788c 100644
--- a/packages/lib/sync/ISyncService.ts
+++ b/packages/lib/sync/ISyncService.ts
@@ -1,4 +1,4 @@
-import logger from "@calcom/lib/logger";
+import type logger from "@calcom/lib/logger";
import { default as webPrisma } from "@calcom/prisma";
export type UserInfo = {
diff --git a/packages/lib/sync/SyncServiceManager.ts b/packages/lib/sync/SyncServiceManager.ts
index 990eaab306..4c9851889a 100644
--- a/packages/lib/sync/SyncServiceManager.ts
+++ b/packages/lib/sync/SyncServiceManager.ts
@@ -1,8 +1,8 @@
-import { MembershipRole } from "@prisma/client";
+import type { MembershipRole } from "@prisma/client";
import logger from "@calcom/lib/logger";
-import { ConsoleUserInfoType, TeamInfoType, WebUserInfoType } from "./ISyncService";
+import type { ConsoleUserInfoType, TeamInfoType, WebUserInfoType } from "./ISyncService";
import services from "./services";
import CloseComService from "./services/CloseComService";
diff --git a/packages/lib/sync/services/CloseComService.ts b/packages/lib/sync/services/CloseComService.ts
index 8acbd3e6c5..9b730038e9 100644
--- a/packages/lib/sync/services/CloseComService.ts
+++ b/packages/lib/sync/services/CloseComService.ts
@@ -1,10 +1,13 @@
import { MembershipRole } from "@prisma/client";
-import CloseCom, { CloseComFieldOptions, CloseComLead } from "@calcom/lib/CloseCom";
+import type { CloseComFieldOptions, CloseComLead } from "@calcom/lib/CloseCom";
+import CloseCom from "@calcom/lib/CloseCom";
import { getCloseComContactIds, getCloseComLeadId, getCustomFieldsIds } from "@calcom/lib/CloseComeUtils";
import logger from "@calcom/lib/logger";
-import SyncServiceCore, { TeamInfoType } from "@calcom/lib/sync/ISyncService";
-import ISyncService, { ConsoleUserInfoType, WebUserInfoType } from "@calcom/lib/sync/ISyncService";
+import type { TeamInfoType } from "@calcom/lib/sync/ISyncService";
+import SyncServiceCore from "@calcom/lib/sync/ISyncService";
+import type { ConsoleUserInfoType, WebUserInfoType } from "@calcom/lib/sync/ISyncService";
+import type ISyncService from "@calcom/lib/sync/ISyncService";
// Cal.com Custom Contact Fields
const calComCustomContactFields: CloseComFieldOptions = [
diff --git a/packages/lib/sync/services/SendgridService.ts b/packages/lib/sync/services/SendgridService.ts
index cfc26e460a..8d4762d357 100644
--- a/packages/lib/sync/services/SendgridService.ts
+++ b/packages/lib/sync/services/SendgridService.ts
@@ -1,7 +1,9 @@
import logger from "@calcom/lib/logger";
-import Sendgrid, { SendgridFieldOptions, SendgridNewContact } from "../../Sendgrid";
-import ISyncService, { ConsoleUserInfoType, WebUserInfoType } from "../ISyncService";
+import type { SendgridFieldOptions, SendgridNewContact } from "../../Sendgrid";
+import Sendgrid from "../../Sendgrid";
+import type { ConsoleUserInfoType, WebUserInfoType } from "../ISyncService";
+import type ISyncService from "../ISyncService";
import SyncServiceCore from "../ISyncService";
// Cal.com Custom Contact Fields
diff --git a/packages/lib/sync/services/index.ts b/packages/lib/sync/services/index.ts
index bf91d8c967..3b5b0af93b 100644
--- a/packages/lib/sync/services/index.ts
+++ b/packages/lib/sync/services/index.ts
@@ -1,4 +1,4 @@
-import { ISyncServices } from "../ISyncService";
+import type { ISyncServices } from "../ISyncService";
import SendgridService from "./SendgridService";
const services: ISyncServices[] = [
diff --git a/packages/lib/telemetry.ts b/packages/lib/telemetry.ts
index a41165c753..f2d08299ec 100644
--- a/packages/lib/telemetry.ts
+++ b/packages/lib/telemetry.ts
@@ -1,5 +1,5 @@
-import { NextApiRequest, NextApiResponse } from "next";
-import { CollectOpts, EventHandler } from "next-collect";
+import type { NextApiRequest, NextApiResponse } from "next";
+import type { CollectOpts, EventHandler } from "next-collect";
import { useCollector } from "next-collect/client";
// Importing types so we're not directly importing next/server
import type { NextRequest, NextResponse } from "next/server";
diff --git a/packages/lib/test/builder.ts b/packages/lib/test/builder.ts
index f5449dce01..9fce24cdfe 100644
--- a/packages/lib/test/builder.ts
+++ b/packages/lib/test/builder.ts
@@ -1,7 +1,8 @@
import { faker } from "@faker-js/faker";
-import { Booking, BookingStatus, EventType, Prisma, Webhook } from "@prisma/client";
+import type { Booking, EventType, Prisma, Webhook } from "@prisma/client";
+import { BookingStatus } from "@prisma/client";
-import { CalendarEvent, Person, VideoCallData } from "@calcom/types/Calendar";
+import type { CalendarEvent, Person, VideoCallData } from "@calcom/types/Calendar";
export const buildVideoCallData = (callData?: Partial): VideoCallData => {
return {
diff --git a/packages/trpc/server/routers/viewer.tsx b/packages/trpc/server/routers/viewer.tsx
index ffa9e944da..e4a7f9ec6c 100644
--- a/packages/trpc/server/routers/viewer.tsx
+++ b/packages/trpc/server/routers/viewer.tsx
@@ -1108,6 +1108,7 @@ const loggedInViewerRouter = router({
});
await prisma.webhook.deleteMany({
where: {
+ userId: ctx.user.id,
appId: "zapier",
},
});
diff --git a/packages/trpc/server/routers/viewer/apiKeys.tsx b/packages/trpc/server/routers/viewer/apiKeys.tsx
index 6c68aa6bf1..72f5547e5e 100644
--- a/packages/trpc/server/routers/viewer/apiKeys.tsx
+++ b/packages/trpc/server/routers/viewer/apiKeys.tsx
@@ -140,6 +140,7 @@ export const apiKeysRouter = router({
if (apiKeyToDelete && apiKeyToDelete.appId === "zapier") {
await ctx.prisma.webhook.deleteMany({
where: {
+ userId: ctx.user.id,
appId: "zapier",
},
});
diff --git a/packages/trpc/server/routers/viewer/bookings.tsx b/packages/trpc/server/routers/viewer/bookings.tsx
index cd1013ddc0..d3d36bb837 100644
--- a/packages/trpc/server/routers/viewer/bookings.tsx
+++ b/packages/trpc/server/routers/viewer/bookings.tsx
@@ -1,16 +1,18 @@
-import {
+import type {
BookingReference,
- BookingStatus,
EventType,
- MembershipRole,
- Prisma,
- SchedulingType,
User,
- WebhookTriggerEvents,
Workflow,
WorkflowsOnEventTypes,
WorkflowStep,
PrismaPromise,
+} from "@prisma/client";
+import {
+ BookingStatus,
+ MembershipRole,
+ Prisma,
+ SchedulingType,
+ WebhookTriggerEvents,
WorkflowMethods,
} from "@prisma/client";
import type { TFunction } from "next-i18next";
@@ -36,7 +38,8 @@ import {
} from "@calcom/emails";
import { scheduleWorkflowReminders } from "@calcom/features/ee/workflows/lib/reminders/reminderScheduler";
import getWebhooks from "@calcom/features/webhooks/lib/getWebhooks";
-import sendPayload, { EventTypeInfo } from "@calcom/features/webhooks/lib/sendPayload";
+import type { EventTypeInfo } from "@calcom/features/webhooks/lib/sendPayload";
+import sendPayload from "@calcom/features/webhooks/lib/sendPayload";
import { isPrismaObjOrUndefined, parseRecurringEvent } from "@calcom/lib";
import logger from "@calcom/lib/logger";
import { getTranslation } from "@calcom/lib/server";
@@ -325,7 +328,7 @@ export const bookingsRouter = router({
const recurringInfo = recurringInfoBasic.map(
(
- info: typeof recurringInfoBasic[number]
+ info: (typeof recurringInfoBasic)[number]
): {
recurringEventId: string | null;
count: number;
diff --git a/packages/trpc/server/routers/viewer/eventTypes.ts b/packages/trpc/server/routers/viewer/eventTypes.ts
index 57660bb6f8..db002cab61 100644
--- a/packages/trpc/server/routers/viewer/eventTypes.ts
+++ b/packages/trpc/server/routers/viewer/eventTypes.ts
@@ -14,9 +14,9 @@ import { CAL_URL } from "@calcom/lib/constants";
import getEventTypeById from "@calcom/lib/getEventTypeById";
import { baseEventTypeSelect, baseUserSelect } from "@calcom/prisma";
import { _DestinationCalendarModel, _EventTypeModel } from "@calcom/prisma/zod";
+import type { CustomInputSchema } from "@calcom/prisma/zod-utils";
import {
customInputSchema,
- CustomInputSchema,
EventTypeMetaDataSchema,
stringOrNumber,
userMetadata as userMetadataSchema,
@@ -272,7 +272,7 @@ export const eventTypesRouter = router({
throw new TRPCError({ code: "INTERNAL_SERVER_ERROR" });
}
- const mapEventType = (eventType: typeof user.eventTypes[number]) => ({
+ const mapEventType = (eventType: (typeof user.eventTypes)[number]) => ({
...eventType,
users: !!eventType.hosts?.length ? eventType.hosts.map((host) => host.user) : eventType.users,
// @FIXME: cc @hariombalhara This is failing with production data
@@ -301,8 +301,8 @@ export const eventTypesRouter = router({
type EventTypeGroup = {
teamId?: number | null;
profile: {
- slug: typeof user["username"];
- name: typeof user["name"];
+ slug: (typeof user)["username"];
+ name: (typeof user)["name"];
image?: string;
};
metadata: {
diff --git a/packages/trpc/server/routers/viewer/teams.tsx b/packages/trpc/server/routers/viewer/teams.tsx
index b0a55cd6ce..e96543e124 100644
--- a/packages/trpc/server/routers/viewer/teams.tsx
+++ b/packages/trpc/server/routers/viewer/teams.tsx
@@ -687,7 +687,7 @@ export const viewerTeamsRouter = router({
},
},
});
- type UserMap = Record;
+ type UserMap = Record;
// flattern users to be unique by id
const users = teams
.flatMap((t) => t.members)
diff --git a/packages/types/Calendar.d.ts b/packages/types/Calendar.d.ts
index c6ee6f27f0..422b6e3c70 100644
--- a/packages/types/Calendar.d.ts
+++ b/packages/types/Calendar.d.ts
@@ -117,7 +117,7 @@ export interface BookingLimit {
export type AppsStatus = {
appName: string;
- type: typeof App["type"];
+ type: (typeof App)["type"];
success: number;
failures: number;
errors: string[];
diff --git a/packages/types/Credential.d.ts b/packages/types/Credential.d.ts
index 265d4ca978..9db77c2ff7 100644
--- a/packages/types/Credential.d.ts
+++ b/packages/types/Credential.d.ts
@@ -1,4 +1,4 @@
-import { Prisma } from ".prisma/client";
+import type { Prisma } from "@prisma/client";
/*
* The logic on this it's just using Credential Type doesn't reflect that some fields can be
diff --git a/packages/ui/components/alert/Alert.tsx b/packages/ui/components/alert/Alert.tsx
index c208e5bdf6..699262be54 100644
--- a/packages/ui/components/alert/Alert.tsx
+++ b/packages/ui/components/alert/Alert.tsx
@@ -1,6 +1,6 @@
import { CheckCircleIcon, ExclamationIcon, InformationCircleIcon, XCircleIcon } from "@heroicons/react/solid";
import classNames from "classnames";
-import { ReactNode } from "react";
+import type { ReactNode } from "react";
import { FiInfo } from "../icon";
diff --git a/packages/ui/components/apps/AllApps.tsx b/packages/ui/components/apps/AllApps.tsx
index 630b632249..0f44c696cb 100644
--- a/packages/ui/components/apps/AllApps.tsx
+++ b/packages/ui/components/apps/AllApps.tsx
@@ -1,6 +1,7 @@
import { useAutoAnimate } from "@formkit/auto-animate/react";
import { useRouter } from "next/router";
-import { UIEvent, useEffect, useRef, useState } from "react";
+import type { UIEvent } from "react";
+import { useEffect, useRef, useState } from "react";
import { classNames } from "@calcom/lib";
import { useLocale } from "@calcom/lib/hooks/useLocale";
diff --git a/packages/ui/components/apps/AppCard.tsx b/packages/ui/components/apps/AppCard.tsx
index d478e74441..e3c7f92153 100644
--- a/packages/ui/components/apps/AppCard.tsx
+++ b/packages/ui/components/apps/AppCard.tsx
@@ -4,7 +4,7 @@ import { useEffect, useState } from "react";
import useAddAppMutation from "@calcom/app-store/_utils/useAddAppMutation";
import { InstallAppButton } from "@calcom/app-store/components";
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { AppFrontendPayload as App } from "@calcom/types/App";
+import type { AppFrontendPayload as App } from "@calcom/types/App";
import type { CredentialFrontendPayload as Credential } from "@calcom/types/Credential";
import { Button } from "../button";
diff --git a/packages/ui/components/apps/PopularAppsSlider.tsx b/packages/ui/components/apps/PopularAppsSlider.tsx
index 3c95ff2e70..260f60bb97 100644
--- a/packages/ui/components/apps/PopularAppsSlider.tsx
+++ b/packages/ui/components/apps/PopularAppsSlider.tsx
@@ -1,5 +1,5 @@
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { AppFrontendPayload as App } from "@calcom/types/App";
+import type { AppFrontendPayload as App } from "@calcom/types/App";
import { AppCard } from "./AppCard";
import { Slider } from "./Slider";
diff --git a/packages/ui/components/apps/Slider.tsx b/packages/ui/components/apps/Slider.tsx
index b84ffee7e7..76ccda870b 100644
--- a/packages/ui/components/apps/Slider.tsx
+++ b/packages/ui/components/apps/Slider.tsx
@@ -1,7 +1,9 @@
-import Glide, { Options } from "@glidejs/glide";
+import type { Options } from "@glidejs/glide";
+import Glide from "@glidejs/glide";
import "@glidejs/glide/dist/css/glide.core.min.css";
import "@glidejs/glide/dist/css/glide.theme.min.css";
-import { ComponentProps, FC, useEffect, useRef } from "react";
+import type { ComponentProps, FC } from "react";
+import { useEffect, useRef } from "react";
import { useLocale } from "@calcom/lib/hooks/useLocale";
diff --git a/packages/ui/components/apps/_storybookData.ts b/packages/ui/components/apps/_storybookData.ts
index 4307562c76..8994519230 100644
--- a/packages/ui/components/apps/_storybookData.ts
+++ b/packages/ui/components/apps/_storybookData.ts
@@ -1,4 +1,4 @@
-import { AppFrontendPayload as App } from "@calcom/types/App";
+import type { AppFrontendPayload as App } from "@calcom/types/App";
export const _SBApps: App[] = [
{
diff --git a/packages/ui/components/avatar/Avatar.tsx b/packages/ui/components/avatar/Avatar.tsx
index ea64cd953d..d5f127b66c 100644
--- a/packages/ui/components/avatar/Avatar.tsx
+++ b/packages/ui/components/avatar/Avatar.tsx
@@ -5,7 +5,7 @@ import Link from "next/link";
import classNames from "@calcom/lib/classNames";
import { defaultAvatarSrc } from "@calcom/lib/defaultAvatarImage";
-import { Maybe } from "@trpc/server";
+import type { Maybe } from "@trpc/server";
import { FiCheck } from "../icon";
diff --git a/packages/ui/components/badge/Badge.tsx b/packages/ui/components/badge/Badge.tsx
index 2eac4f1736..91e220cb25 100644
--- a/packages/ui/components/badge/Badge.tsx
+++ b/packages/ui/components/badge/Badge.tsx
@@ -1,7 +1,7 @@
import { GoPrimitiveDot } from "react-icons/go";
import classNames from "@calcom/lib/classNames";
-import { SVGComponent } from "@calcom/types/SVGComponent";
+import type { SVGComponent } from "@calcom/types/SVGComponent";
const badgeClassNameByVariant = {
default: "bg-orange-100 text-orange-800",
diff --git a/packages/ui/components/button/Button.tsx b/packages/ui/components/button/Button.tsx
index 91c17f2511..016470fdae 100644
--- a/packages/ui/components/button/Button.tsx
+++ b/packages/ui/components/button/Button.tsx
@@ -1,10 +1,12 @@
-import { cva, VariantProps } from "class-variance-authority";
-import Link, { LinkProps } from "next/link";
+import type { VariantProps } from "class-variance-authority";
+import { cva } from "class-variance-authority";
+import type { LinkProps } from "next/link";
+import Link from "next/link";
import React, { forwardRef } from "react";
import classNames from "@calcom/lib/classNames";
import { applyStyleToMultipleVariants } from "@calcom/lib/cva";
-import { SVGComponent } from "@calcom/types/SVGComponent";
+import type { SVGComponent } from "@calcom/types/SVGComponent";
import { FiPlus } from "../icon";
import { Tooltip } from "../tooltip";
diff --git a/packages/ui/components/button/LinkIconButton.tsx b/packages/ui/components/button/LinkIconButton.tsx
index e57846a6b1..f43f6027e2 100644
--- a/packages/ui/components/button/LinkIconButton.tsx
+++ b/packages/ui/components/button/LinkIconButton.tsx
@@ -1,6 +1,6 @@
import React from "react";
-import { SVGComponent } from "@calcom/types/SVGComponent";
+import type { SVGComponent } from "@calcom/types/SVGComponent";
interface LinkIconButtonProps extends React.ButtonHTMLAttributes {
Icon: SVGComponent;
diff --git a/packages/ui/components/buttonGroup/ButtonGroup.tsx b/packages/ui/components/buttonGroup/ButtonGroup.tsx
index b3982aee48..1401d2a4fd 100644
--- a/packages/ui/components/buttonGroup/ButtonGroup.tsx
+++ b/packages/ui/components/buttonGroup/ButtonGroup.tsx
@@ -21,7 +21,7 @@ export function ButtonGroup({ children, combined = false, containerProps }: Prop
"flex",
!combined
? "space-x-2 rtl:space-x-reverse"
- : "ltr:[&>*:first-child]:ml-0 ltr:[&>*:first-child]:rounded-l-md ltr:[&>*:first-child]:border-l rtl:[&>*:first-child]:rounded-r-md rtl:[&>*:first-child]:border-r ltr:[&>*:last-child]:rounded-r-md rtl:[&>*:last-child]:rounded-l-md [&_button]:rounded-none [&_a]:rounded-none [&>a]:-ml-[1px] hover:[&>a]:z-[1] [&>button]:-ml-[1px] hover:[&>button]:z-[1]",
+ : "[&_a]:rounded-none ltr:[&>*:first-child]:ml-0 ltr:[&>*:first-child]:rounded-l-md ltr:[&>*:first-child]:border-l rtl:[&>*:first-child]:rounded-r-md rtl:[&>*:first-child]:border-r ltr:[&>*:last-child]:rounded-r-md rtl:[&>*:last-child]:rounded-l-md [&_button]:rounded-none [&>a]:-ml-[1px] hover:[&>a]:z-[1] [&>button]:-ml-[1px] hover:[&>button]:z-[1]",
containerProps?.className
)}>
{children}
diff --git a/packages/ui/components/card/Card.tsx b/packages/ui/components/card/Card.tsx
index d2acc03e15..6b4a08e634 100644
--- a/packages/ui/components/card/Card.tsx
+++ b/packages/ui/components/card/Card.tsx
@@ -1,6 +1,6 @@
// @TODO: turn this into a more generic component that has the same Props API as MUI https://mui.com/material-ui/react-card/
import Link from "next/link";
-import { ReactNode } from "react";
+import type { ReactNode } from "react";
import React from "react";
import classNames from "@calcom/lib/classNames";
diff --git a/packages/ui/components/card/FormCard.tsx b/packages/ui/components/card/FormCard.tsx
index 53aeb2a5ab..adf63c252e 100644
--- a/packages/ui/components/card/FormCard.tsx
+++ b/packages/ui/components/card/FormCard.tsx
@@ -2,7 +2,8 @@ import Link from "next/link";
import { classNames } from "@calcom/lib";
-import { Badge, BadgeProps } from "../..";
+import type { BadgeProps } from "../..";
+import { Badge } from "../..";
import { Divider } from "../divider";
import { FiArrowDown, FiArrowUp, FiTrash } from "../icon";
diff --git a/packages/ui/components/dialog/ConfirmationDialogContent.tsx b/packages/ui/components/dialog/ConfirmationDialogContent.tsx
index ed245d16c0..578cee497c 100644
--- a/packages/ui/components/dialog/ConfirmationDialogContent.tsx
+++ b/packages/ui/components/dialog/ConfirmationDialogContent.tsx
@@ -1,5 +1,6 @@
import * as DialogPrimitive from "@radix-ui/react-dialog";
-import React, { PropsWithChildren, ReactNode } from "react";
+import type { PropsWithChildren, ReactNode } from "react";
+import React from "react";
import { useLocale } from "@calcom/lib/hooks/useLocale";
diff --git a/packages/ui/components/dialog/Dialog.tsx b/packages/ui/components/dialog/Dialog.tsx
index a8083191e5..b30a327da0 100644
--- a/packages/ui/components/dialog/Dialog.tsx
+++ b/packages/ui/components/dialog/Dialog.tsx
@@ -1,14 +1,16 @@
import * as DialogPrimitive from "@radix-ui/react-dialog";
import { useRouter } from "next/router";
-import React, { ReactNode, useState } from "react";
+import type { ReactNode } from "react";
+import React, { useState } from "react";
import classNames from "@calcom/lib/classNames";
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { SVGComponent } from "@calcom/types/SVGComponent";
+import type { SVGComponent } from "@calcom/types/SVGComponent";
-import { Button, ButtonProps } from "../../components/button";
+import type { ButtonProps } from "../../components/button";
+import { Button } from "../../components/button";
-export type DialogProps = React.ComponentProps & {
+export type DialogProps = React.ComponentProps<(typeof DialogPrimitive)["Root"]> & {
name?: string;
clearQueryParamsOnClose?: string[];
};
@@ -55,7 +57,7 @@ export function Dialog(props: DialogProps) {
return {children};
}
-type DialogContentProps = React.ComponentProps & {
+type DialogContentProps = React.ComponentProps<(typeof DialogPrimitive)["Content"]> & {
size?: "xl" | "lg" | "md";
type?: "creation" | "confirmation";
title?: string;
@@ -142,7 +144,7 @@ export const DialogTrigger = DialogPrimitive.Trigger;
export function DialogClose(
props: {
- dialogCloseProps?: React.ComponentProps;
+ dialogCloseProps?: React.ComponentProps<(typeof DialogPrimitive)["Close"]>;
children?: ReactNode;
onClick?: (e: React.MouseEvent) => void;
disabled?: boolean;
diff --git a/packages/ui/components/editor/plugins/ToolbarPlugin.tsx b/packages/ui/components/editor/plugins/ToolbarPlugin.tsx
index e2ed05a223..d265e858c9 100644
--- a/packages/ui/components/editor/plugins/ToolbarPlugin.tsx
+++ b/packages/ui/components/editor/plugins/ToolbarPlugin.tsx
@@ -12,18 +12,14 @@ import { $createHeadingNode, $isHeadingNode } from "@lexical/rich-text";
import { $isAtNodeEnd, $wrapNodes } from "@lexical/selection";
import { $getNearestNodeOfType, mergeRegister } from "@lexical/utils";
import classNames from "classnames";
+import type { EditorState, GridSelection, LexicalEditor, NodeSelection, RangeSelection } from "lexical";
import {
$createParagraphNode,
$getRoot,
$getSelection,
$insertNodes,
$isRangeSelection,
- EditorState,
FORMAT_TEXT_COMMAND,
- GridSelection,
- LexicalEditor,
- NodeSelection,
- RangeSelection,
SELECTION_CHANGE_COMMAND,
} from "lexical";
import { useCallback, useEffect, useRef, useState } from "react";
@@ -32,7 +28,7 @@ import { createPortal } from "react-dom";
import { Button } from "../../button";
import { Dropdown, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "../../form/dropdown";
import { FiChevronDown } from "../../icon";
-import { TextEditorProps } from "../Editor";
+import type { TextEditorProps } from "../Editor";
import { AddVariablesDropdown } from "./AddVariablesDropdown";
const LowPriority = 1;
diff --git a/packages/ui/components/empty-screen/EmptyScreen.tsx b/packages/ui/components/empty-screen/EmptyScreen.tsx
index d27e7c874d..02251bd9b1 100644
--- a/packages/ui/components/empty-screen/EmptyScreen.tsx
+++ b/packages/ui/components/empty-screen/EmptyScreen.tsx
@@ -1,7 +1,8 @@
-import React, { ReactNode } from "react";
-import { IconType } from "react-icons";
+import type { ReactNode } from "react";
+import React from "react";
+import type { IconType } from "react-icons";
-import { SVGComponent } from "@calcom/types/SVGComponent";
+import type { SVGComponent } from "@calcom/types/SVGComponent";
import { Button } from "../../components/button";
diff --git a/packages/ui/components/errorBoundary/ErrorBoundary.tsx b/packages/ui/components/errorBoundary/ErrorBoundary.tsx
index 0d78df256a..a1523ae329 100644
--- a/packages/ui/components/errorBoundary/ErrorBoundary.tsx
+++ b/packages/ui/components/errorBoundary/ErrorBoundary.tsx
@@ -1,4 +1,5 @@
-import React, { ErrorInfo } from "react";
+import type { ErrorInfo } from "react";
+import React from "react";
class ErrorBoundary extends React.Component<
{ children: React.ReactNode; message?: string },
diff --git a/packages/ui/components/form/checkbox/Checkbox.tsx b/packages/ui/components/form/checkbox/Checkbox.tsx
index 670df098ba..e44c346fab 100644
--- a/packages/ui/components/form/checkbox/Checkbox.tsx
+++ b/packages/ui/components/form/checkbox/Checkbox.tsx
@@ -1,4 +1,5 @@
-import React, { forwardRef, InputHTMLAttributes } from "react";
+import type { InputHTMLAttributes } from "react";
+import React, { forwardRef } from "react";
import classNames from "@calcom/lib/classNames";
diff --git a/packages/ui/components/form/checkbox/MultiSelectCheckboxes.tsx b/packages/ui/components/form/checkbox/MultiSelectCheckboxes.tsx
index cbfbef8deb..f9bf6f7d44 100644
--- a/packages/ui/components/form/checkbox/MultiSelectCheckboxes.tsx
+++ b/packages/ui/components/form/checkbox/MultiSelectCheckboxes.tsx
@@ -1,6 +1,8 @@
-import React, { Dispatch, SetStateAction } from "react";
-import { components, GroupBase, OptionProps } from "react-select";
-import { Props } from "react-select";
+import type { Dispatch, SetStateAction } from "react";
+import React from "react";
+import type { GroupBase, OptionProps } from "react-select";
+import { components } from "react-select";
+import type { Props } from "react-select";
import { classNames } from "@calcom/lib";
import { useLocale } from "@calcom/lib/hooks/useLocale";
diff --git a/packages/ui/components/form/dropdown/Dropdown.tsx b/packages/ui/components/form/dropdown/Dropdown.tsx
index 23c789c7d6..b682d70925 100644
--- a/packages/ui/components/form/dropdown/Dropdown.tsx
+++ b/packages/ui/components/form/dropdown/Dropdown.tsx
@@ -1,16 +1,17 @@
import { CheckCircleIcon } from "@heroicons/react/outline";
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
import Link from "next/link";
-import { ComponentProps, forwardRef } from "react";
+import type { ComponentProps } from "react";
+import { forwardRef } from "react";
import { classNames } from "@calcom/lib";
-import { SVGComponent } from "@calcom/types/SVGComponent";
+import type { SVGComponent } from "@calcom/types/SVGComponent";
-import { ButtonColor } from "../../button/Button";
+import type { ButtonColor } from "../../button/Button";
export const Dropdown = DropdownMenuPrimitive.Root;
-type DropdownMenuTriggerProps = ComponentProps;
+type DropdownMenuTriggerProps = ComponentProps<(typeof DropdownMenuPrimitive)["Trigger"]>;
export const DropdownMenuTrigger = forwardRef(
({ className = "", ...props }, forwardedRef) => (
;
+type DropdownMenuContentProps = ComponentProps<(typeof DropdownMenuPrimitive)["Content"]>;
export const DropdownMenuContent = forwardRef(
({ children, sideOffset = 2, align = "end", ...props }, forwardedRef) => {
return (
@@ -49,12 +50,12 @@ export const DropdownMenuContent = forwardRef;
+type DropdownMenuLabelProps = ComponentProps<(typeof DropdownMenuPrimitive)["Label"]>;
export const DropdownMenuLabel = (props: DropdownMenuLabelProps) => (
);
-type DropdownMenuItemProps = ComponentProps;
+type DropdownMenuItemProps = ComponentProps<(typeof DropdownMenuPrimitive)["CheckboxItem"]>;
export const DropdownMenuItem = forwardRef(
({ className = "", ...props }, forwardedRef) => (
;
+type DropdownMenuCheckboxItemProps = ComponentProps<(typeof DropdownMenuPrimitive)["CheckboxItem"]>;
export const DropdownMenuCheckboxItem = forwardRef(
({ children, ...props }, forwardedRef) => {
return (
@@ -85,7 +86,7 @@ DropdownMenuCheckboxItem.displayName = "DropdownMenuCheckboxItem";
export const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
-type DropdownMenuRadioItemProps = ComponentProps;
+type DropdownMenuRadioItemProps = ComponentProps<(typeof DropdownMenuPrimitive)["RadioItem"]>;
export const DropdownMenuRadioItem = forwardRef(
({ children, ...props }, forwardedRef) => {
return (
@@ -146,7 +147,7 @@ export const DropdownItem = (props: DropdownItemProps) => {
);
};
-type DropdownMenuSeparatorProps = ComponentProps;
+type DropdownMenuSeparatorProps = ComponentProps<(typeof DropdownMenuPrimitive)["Separator"]>;
export const DropdownMenuSeparator = forwardRef(
({ className = "", ...props }, forwardedRef) => {
return (
diff --git a/packages/ui/components/form/inputs/HintOrErrors.tsx b/packages/ui/components/form/inputs/HintOrErrors.tsx
index d050044649..14ad3945e9 100644
--- a/packages/ui/components/form/inputs/HintOrErrors.tsx
+++ b/packages/ui/components/form/inputs/HintOrErrors.tsx
@@ -1,4 +1,5 @@
-import { FieldValues, useFormContext } from "react-hook-form";
+import type { FieldValues } from "react-hook-form";
+import { useFormContext } from "react-hook-form";
import { FiCheck, FiCircle, FiInfo, FiX } from "../../icon";
diff --git a/packages/ui/components/form/inputs/Input.tsx b/packages/ui/components/form/inputs/Input.tsx
index bf44769913..1d681e8528 100644
--- a/packages/ui/components/form/inputs/Input.tsx
+++ b/packages/ui/components/form/inputs/Input.tsx
@@ -1,5 +1,7 @@
-import React, { forwardRef, ReactElement, ReactNode, Ref, useCallback, useId, useState } from "react";
-import { FieldValues, FormProvider, SubmitHandler, useFormContext, UseFormReturn } from "react-hook-form";
+import type { ReactElement, ReactNode, Ref } from "react";
+import React, { forwardRef, useCallback, useId, useState } from "react";
+import type { FieldValues, SubmitHandler, UseFormReturn } from "react-hook-form";
+import { FormProvider, useFormContext } from "react-hook-form";
import classNames from "@calcom/lib/classNames";
import { getErrorFromUnknown } from "@calcom/lib/errors";
diff --git a/packages/ui/components/form/select/Select.tsx b/packages/ui/components/form/select/Select.tsx
index 1e2fed6462..55c44e0bb5 100644
--- a/packages/ui/components/form/select/Select.tsx
+++ b/packages/ui/components/form/select/Select.tsx
@@ -1,7 +1,6 @@
import { useId } from "@radix-ui/react-id";
import * as React from "react";
-import ReactSelect, {
- components as reactSelectComponents,
+import type {
GroupBase,
Props,
SingleValue,
@@ -9,6 +8,7 @@ import ReactSelect, {
SelectComponentsConfig,
MenuPlacement,
} from "react-select";
+import ReactSelect, { components as reactSelectComponents } from "react-select";
import classNames from "@calcom/lib/classNames";
import { useLocale } from "@calcom/lib/hooks/useLocale";
diff --git a/packages/ui/components/form/select/components.tsx b/packages/ui/components/form/select/components.tsx
index 9d63b1b224..a50bc43c5c 100644
--- a/packages/ui/components/form/select/components.tsx
+++ b/packages/ui/components/form/select/components.tsx
@@ -1,5 +1,4 @@
-import {
- components as reactSelectComponents,
+import type {
ControlProps,
GroupBase,
InputProps,
@@ -10,6 +9,7 @@ import {
SingleValueProps,
ValueContainerProps,
} from "react-select";
+import { components as reactSelectComponents } from "react-select";
import { classNames } from "@calcom/lib";
diff --git a/packages/ui/components/form/selectimproved/components/Item.tsx b/packages/ui/components/form/selectimproved/components/Item.tsx
index a1ac1715ce..2d437568db 100755
--- a/packages/ui/components/form/selectimproved/components/Item.tsx
+++ b/packages/ui/components/form/selectimproved/components/Item.tsx
@@ -4,7 +4,7 @@ import { FiCheck } from "react-icons/fi";
import { classNames as cn } from "@calcom/lib";
import { useSelectContext } from "./SelectProvider";
-import { Option } from "./type";
+import type { Option } from "./type";
interface ItemProps {
item: Option;
diff --git a/packages/ui/components/form/selectimproved/components/Options.tsx b/packages/ui/components/form/selectimproved/components/Options.tsx
index 456dc406bd..feab464a12 100755
--- a/packages/ui/components/form/selectimproved/components/Options.tsx
+++ b/packages/ui/components/form/selectimproved/components/Options.tsx
@@ -6,7 +6,7 @@ import { useKeyPress } from "@calcom/lib/hooks/useKeyPress";
import { Label } from "../../inputs/Label";
import Item from "./Item";
import { SelectContext } from "./SelectProvider";
-import { Option } from "./type";
+import type { Option } from "./type";
interface OptionsProps {
list: T[];
diff --git a/packages/ui/components/form/selectimproved/components/Select.tsx b/packages/ui/components/form/selectimproved/components/Select.tsx
index 7407e9e7e2..8db99e6e06 100755
--- a/packages/ui/components/form/selectimproved/components/Select.tsx
+++ b/packages/ui/components/form/selectimproved/components/Select.tsx
@@ -8,7 +8,7 @@ import { FiX, FiChevronDown } from "../../../icon";
import Options from "./Options";
import SearchInput from "./SearchInput";
import SelectProvider from "./SelectProvider";
-import { Option } from "./type";
+import type { Option } from "./type";
interface SelectProps {
options: T[];
diff --git a/packages/ui/components/form/selectimproved/components/SelectProvider.tsx b/packages/ui/components/form/selectimproved/components/SelectProvider.tsx
index d8648da86f..adbc7e782f 100644
--- a/packages/ui/components/form/selectimproved/components/SelectProvider.tsx
+++ b/packages/ui/components/form/selectimproved/components/SelectProvider.tsx
@@ -1,6 +1,6 @@
import React, { createContext, useContext, useMemo } from "react";
-import { ClassNames, Option } from "./type";
+import type { ClassNames, Option } from "./type";
interface Store {
selectedItems: Option | Option[] | null;
diff --git a/packages/ui/components/form/switch/SettingsToggle.tsx b/packages/ui/components/form/switch/SettingsToggle.tsx
index b3c1dda661..a18fce67bf 100644
--- a/packages/ui/components/form/switch/SettingsToggle.tsx
+++ b/packages/ui/components/form/switch/SettingsToggle.tsx
@@ -1,5 +1,5 @@
import { useAutoAnimate } from "@formkit/auto-animate/react";
-import { ReactNode } from "react";
+import type { ReactNode } from "react";
import { Label } from "..";
import Switch from "./Switch";
diff --git a/packages/ui/components/form/timezone-select/TimezoneSelect.tsx b/packages/ui/components/form/timezone-select/TimezoneSelect.tsx
index 38a6ef9d86..40430460dd 100644
--- a/packages/ui/components/form/timezone-select/TimezoneSelect.tsx
+++ b/packages/ui/components/form/timezone-select/TimezoneSelect.tsx
@@ -1,10 +1,6 @@
import { useMemo } from "react";
-import BaseSelect, {
- allTimezones,
- ITimezoneOption,
- ITimezone,
- Props as SelectProps,
-} from "react-timezone-select";
+import type { ITimezoneOption, ITimezone, Props as SelectProps } from "react-timezone-select";
+import BaseSelect, { allTimezones } from "react-timezone-select";
import { getReactSelectProps } from "../select";
diff --git a/packages/ui/components/form/wizard/WizardForm.tsx b/packages/ui/components/form/wizard/WizardForm.tsx
index 6d413ea2fb..ad16c01931 100644
--- a/packages/ui/components/form/wizard/WizardForm.tsx
+++ b/packages/ui/components/form/wizard/WizardForm.tsx
@@ -1,6 +1,7 @@
import { noop } from "lodash";
import { useRouter } from "next/router";
-import { Dispatch, SetStateAction, useEffect, useState } from "react";
+import type { Dispatch, SetStateAction } from "react";
+import { useEffect, useState } from "react";
import classNames from "@calcom/lib/classNames";
diff --git a/packages/ui/components/head-seo/HeadSeo.tsx b/packages/ui/components/head-seo/HeadSeo.tsx
index 977a9d42f5..81c01203eb 100644
--- a/packages/ui/components/head-seo/HeadSeo.tsx
+++ b/packages/ui/components/head-seo/HeadSeo.tsx
@@ -1,14 +1,10 @@
import merge from "lodash/merge";
-import { NextSeo, NextSeoProps } from "next-seo";
+import type { NextSeoProps } from "next-seo";
+import { NextSeo } from "next-seo";
import { useRouter } from "next/router";
-import {
- AppImageProps,
- constructAppImage,
- constructGenericImage,
- constructMeetingImage,
- MeetingImageProps,
-} from "@calcom/lib/OgImages";
+import type { AppImageProps, MeetingImageProps } from "@calcom/lib/OgImages";
+import { constructAppImage, constructGenericImage, constructMeetingImage } from "@calcom/lib/OgImages";
import { getBrowserInfo } from "@calcom/lib/browser/browser.utils";
import { APP_NAME } from "@calcom/lib/constants";
import { seoConfig, getSeoImage } from "@calcom/lib/next-seo.config";
diff --git a/packages/ui/components/image-uploader/ImageUploader.tsx b/packages/ui/components/image-uploader/ImageUploader.tsx
index 303381e547..686c890515 100644
--- a/packages/ui/components/image-uploader/ImageUploader.tsx
+++ b/packages/ui/components/image-uploader/ImageUploader.tsx
@@ -1,5 +1,6 @@
import * as SliderPrimitive from "@radix-ui/react-slider";
-import { FormEvent, useCallback, useEffect, useState } from "react";
+import type { FormEvent } from "react";
+import { useCallback, useEffect, useState } from "react";
import Cropper from "react-easy-crop";
import { useLocale } from "@calcom/lib/hooks/useLocale";
diff --git a/packages/ui/components/layout/ShellSubHeading.tsx b/packages/ui/components/layout/ShellSubHeading.tsx
index 6752aac2ef..7f95a3e28d 100644
--- a/packages/ui/components/layout/ShellSubHeading.tsx
+++ b/packages/ui/components/layout/ShellSubHeading.tsx
@@ -1,4 +1,4 @@
-import { ReactNode } from "react";
+import type { ReactNode } from "react";
import { classNames } from "@calcom/lib";
diff --git a/packages/ui/components/navigation/tabs/HorizontalTabItem.tsx b/packages/ui/components/navigation/tabs/HorizontalTabItem.tsx
index f71f9b589f..0ebe7db6de 100644
--- a/packages/ui/components/navigation/tabs/HorizontalTabItem.tsx
+++ b/packages/ui/components/navigation/tabs/HorizontalTabItem.tsx
@@ -1,10 +1,10 @@
import Link from "next/link";
import { useRouter } from "next/router";
-import { ComponentProps } from "react";
+import type { ComponentProps } from "react";
import classNames from "@calcom/lib/classNames";
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { SVGComponent } from "@calcom/types/SVGComponent";
+import type { SVGComponent } from "@calcom/types/SVGComponent";
import { Avatar } from "../../avatar";
import { SkeletonText } from "../../skeleton";
diff --git a/packages/ui/components/navigation/tabs/HorizontalTabs.tsx b/packages/ui/components/navigation/tabs/HorizontalTabs.tsx
index 16babfe0a8..b8229b7c0b 100644
--- a/packages/ui/components/navigation/tabs/HorizontalTabs.tsx
+++ b/packages/ui/components/navigation/tabs/HorizontalTabs.tsx
@@ -1,4 +1,5 @@
-import HorizontalTabItem, { HorizontalTabItemProps } from "./HorizontalTabItem";
+import type { HorizontalTabItemProps } from "./HorizontalTabItem";
+import HorizontalTabItem from "./HorizontalTabItem";
export interface NavTabProps {
tabs: HorizontalTabItemProps[];
diff --git a/packages/ui/components/navigation/tabs/VerticalTabItem.tsx b/packages/ui/components/navigation/tabs/VerticalTabItem.tsx
index 5ef08a088c..06dab62437 100644
--- a/packages/ui/components/navigation/tabs/VerticalTabItem.tsx
+++ b/packages/ui/components/navigation/tabs/VerticalTabItem.tsx
@@ -1,10 +1,11 @@
import Link from "next/link";
import { useRouter } from "next/router";
-import { ComponentProps, Fragment } from "react";
+import type { ComponentProps } from "react";
+import { Fragment } from "react";
import classNames from "@calcom/lib/classNames";
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { SVGComponent } from "@calcom/types/SVGComponent";
+import type { SVGComponent } from "@calcom/types/SVGComponent";
import { FiChevronRight, FiExternalLink } from "../../icon";
import { Skeleton } from "../../skeleton";
diff --git a/packages/ui/components/navigation/tabs/VerticalTabs.tsx b/packages/ui/components/navigation/tabs/VerticalTabs.tsx
index 1a20dedbe0..49574c25fc 100644
--- a/packages/ui/components/navigation/tabs/VerticalTabs.tsx
+++ b/packages/ui/components/navigation/tabs/VerticalTabs.tsx
@@ -1,6 +1,7 @@
import { classNames } from "@calcom/lib";
-import VerticalTabItem, { VerticalTabItemProps } from "./VerticalTabItem";
+import type { VerticalTabItemProps } from "./VerticalTabItem";
+import VerticalTabItem from "./VerticalTabItem";
export { VerticalTabItem };
diff --git a/packages/ui/components/table/TableActions.tsx b/packages/ui/components/table/TableActions.tsx
index 537774527f..81e372d577 100644
--- a/packages/ui/components/table/TableActions.tsx
+++ b/packages/ui/components/table/TableActions.tsx
@@ -1,7 +1,9 @@
-import React, { FC } from "react";
-import { IconType } from "react-icons/lib";
+import type { FC } from "react";
+import React from "react";
+import type { IconType } from "react-icons/lib";
-import { Button, ButtonBaseProps } from "../button";
+import type { ButtonBaseProps } from "../button";
+import { Button } from "../button";
import {
Dropdown,
DropdownMenuContent,
diff --git a/packages/ui/components/top-banner/TopBanner.tsx b/packages/ui/components/top-banner/TopBanner.tsx
index 231076c883..a1e8bf2215 100644
--- a/packages/ui/components/top-banner/TopBanner.tsx
+++ b/packages/ui/components/top-banner/TopBanner.tsx
@@ -1,7 +1,7 @@
import { XIcon } from "@heroicons/react/solid";
import classNames from "classnames";
import noop from "lodash/noop";
-import { ReactNode } from "react";
+import type { ReactNode } from "react";
import { FiAlertTriangle, FiInfo } from "../icon";
diff --git a/packages/ui/form/MultiSelectCheckboxes.tsx b/packages/ui/form/MultiSelectCheckboxes.tsx
index 286a98b00e..47a0c13d4b 100644
--- a/packages/ui/form/MultiSelectCheckboxes.tsx
+++ b/packages/ui/form/MultiSelectCheckboxes.tsx
@@ -3,9 +3,11 @@
* All new changes should be made to the V2 file in
* `/packages/ui/v2/core/form/MultiSelectCheckboxes.tsx`
*/
-import React, { Dispatch, SetStateAction } from "react";
-import { components, GroupBase, OptionProps } from "react-select";
-import { Props } from "react-select";
+import type { Dispatch, SetStateAction } from "react";
+import React from "react";
+import type { GroupBase, OptionProps } from "react-select";
+import { components } from "react-select";
+import type { Props } from "react-select";
import { useLocale } from "@calcom/lib/hooks/useLocale";
diff --git a/packages/ui/form/PhoneInput.tsx b/packages/ui/form/PhoneInput.tsx
index 72a7d37b02..5e5296745b 100644
--- a/packages/ui/form/PhoneInput.tsx
+++ b/packages/ui/form/PhoneInput.tsx
@@ -1,4 +1,5 @@
-import BasePhoneInput, { Props } from "react-phone-number-input";
+import BasePhoneInput from "react-phone-number-input";
+import type { Props } from "react-phone-number-input";
import "react-phone-number-input/style.css";
export type PhoneInputProps = Props<{
diff --git a/packages/ui/form/Select.tsx b/packages/ui/form/Select.tsx
index d09dcd78cb..838dbd00a1 100644
--- a/packages/ui/form/Select.tsx
+++ b/packages/ui/form/Select.tsx
@@ -1,4 +1,5 @@
-import ReactSelect, { components, GroupBase, InputProps, Props } from "react-select";
+import type { GroupBase, InputProps, Props } from "react-select";
+import ReactSelect, { components } from "react-select";
import classNames from "@calcom/lib/classNames";
diff --git a/packages/ui/form/TimezoneSelect.tsx b/packages/ui/form/TimezoneSelect.tsx
index 40d17d66eb..03b62ec2e3 100644
--- a/packages/ui/form/TimezoneSelect.tsx
+++ b/packages/ui/form/TimezoneSelect.tsx
@@ -1,11 +1,7 @@
import classNames from "classnames";
import { components } from "react-select";
-import BaseSelect, {
- allTimezones,
- ITimezone,
- ITimezoneOption,
- Props as SelectProps,
-} from "react-timezone-select";
+import type { ITimezone, ITimezoneOption, Props as SelectProps } from "react-timezone-select";
+import BaseSelect, { allTimezones } from "react-timezone-select";
import { InputComponent } from "../components/form/select/components";
diff --git a/packages/ui/form/fields.tsx b/packages/ui/form/fields.tsx
index 59a989264d..b9b3b1d884 100644
--- a/packages/ui/form/fields.tsx
+++ b/packages/ui/form/fields.tsx
@@ -1,6 +1,8 @@
import { useId } from "@radix-ui/react-id";
-import React, { forwardRef, ReactElement, ReactNode, Ref } from "react";
-import { FieldValues, FormProvider, SubmitHandler, useFormContext, UseFormReturn } from "react-hook-form";
+import type { ReactElement, ReactNode, Ref } from "react";
+import React, { forwardRef } from "react";
+import type { FieldValues, SubmitHandler, UseFormReturn } from "react-hook-form";
+import { FormProvider, useFormContext } from "react-hook-form";
import classNames from "@calcom/lib/classNames";
import { getErrorFromUnknown } from "@calcom/lib/errors";
diff --git a/packages/ui/form/radio-area/Radio.tsx b/packages/ui/form/radio-area/Radio.tsx
index 8b892c900b..6d4e336d93 100644
--- a/packages/ui/form/radio-area/Radio.tsx
+++ b/packages/ui/form/radio-area/Radio.tsx
@@ -1,5 +1,5 @@
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
-import { ReactNode } from "react";
+import type { ReactNode } from "react";
import classNames from "@calcom/lib/classNames";
diff --git a/packages/ui/form/radio-area/Select.tsx b/packages/ui/form/radio-area/Select.tsx
index 6371db64b7..4bd82a3adf 100644
--- a/packages/ui/form/radio-area/Select.tsx
+++ b/packages/ui/form/radio-area/Select.tsx
@@ -1,7 +1,7 @@
import { ChevronDownIcon } from "@heroicons/react/solid";
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@radix-ui/react-collapsible";
import React from "react";
-import { FieldValues, Path, UseFormReturn } from "react-hook-form";
+import type { FieldValues, Path, UseFormReturn } from "react-hook-form";
import classNames from "@calcom/lib/classNames";
import { useLocale } from "@calcom/lib/hooks/useLocale";
diff --git a/packages/ui/package.json b/packages/ui/package.json
index eb3d9f5df4..3efa7ac300 100644
--- a/packages/ui/package.json
+++ b/packages/ui/package.json
@@ -38,8 +38,8 @@
"devDependencies": {
"@calcom/config": "*",
"@calcom/tsconfig": "*",
- "@types/react": "^18.0.17",
- "@types/react-dom": "^18.0.6",
+ "@types/react": "18.0.26",
+ "@types/react-dom": "18.0.9",
"typescript": "^4.9.4"
}
}
diff --git a/yarn.lock b/yarn.lock
index 4830775426..e27ebdb51f 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -990,10 +990,10 @@
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.4.tgz#95c86de137bf0317f3a570e1b6e996b427299747"
integrity sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==
-"@babel/compat-data@^7.20.0":
- version "7.20.1"
- resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.1.tgz#f2e6ef7790d8c8dbf03d379502dcc246dcce0b30"
- integrity sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==
+"@babel/compat-data@^7.20.5":
+ version "7.20.14"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.14.tgz#4106fc8b755f3e3ee0a0a7c27dde5de1d2b2baf8"
+ integrity sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==
"@babel/core@7.12.9":
version "7.12.9"
@@ -1082,24 +1082,24 @@
semver "^6.3.0"
"@babel/core@^7.17.10":
- version "7.20.2"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.2.tgz#8dc9b1620a673f92d3624bd926dc49a52cf25b92"
- integrity sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==
+ version "7.20.12"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.12.tgz#7930db57443c6714ad216953d1356dac0eb8496d"
+ integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==
dependencies:
"@ampproject/remapping" "^2.1.0"
"@babel/code-frame" "^7.18.6"
- "@babel/generator" "^7.20.2"
- "@babel/helper-compilation-targets" "^7.20.0"
- "@babel/helper-module-transforms" "^7.20.2"
- "@babel/helpers" "^7.20.1"
- "@babel/parser" "^7.20.2"
- "@babel/template" "^7.18.10"
- "@babel/traverse" "^7.20.1"
- "@babel/types" "^7.20.2"
+ "@babel/generator" "^7.20.7"
+ "@babel/helper-compilation-targets" "^7.20.7"
+ "@babel/helper-module-transforms" "^7.20.11"
+ "@babel/helpers" "^7.20.7"
+ "@babel/parser" "^7.20.7"
+ "@babel/template" "^7.20.7"
+ "@babel/traverse" "^7.20.12"
+ "@babel/types" "^7.20.7"
convert-source-map "^1.7.0"
debug "^4.1.0"
gensync "^1.0.0-beta.2"
- json5 "^2.2.1"
+ json5 "^2.2.2"
semver "^6.3.0"
"@babel/core@^7.18.10":
@@ -1216,15 +1216,6 @@
"@jridgewell/gen-mapping" "^0.3.2"
jsesc "^2.5.1"
-"@babel/generator@^7.20.1", "@babel/generator@^7.20.2":
- version "7.20.3"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.3.tgz#e58c9ae2f7bf7fdf4899160cf1e04400a82cd641"
- integrity sha512-Wl5ilw2UD1+ZYprHVprxHZJCFeBWlzZYOovE4SDYLZnqCOD11j+0QzNeEWKLLTWM7nixrZEh7vNIyb76MyJg3A==
- dependencies:
- "@babel/types" "^7.20.2"
- "@jridgewell/gen-mapping" "^0.3.2"
- jsesc "^2.5.1"
-
"@babel/helper-annotate-as-pure@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb"
@@ -1280,14 +1271,15 @@
browserslist "^4.21.3"
semver "^6.3.0"
-"@babel/helper-compilation-targets@^7.20.0":
- version "7.20.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz#6bf5374d424e1b3922822f1d9bdaa43b1a139d0a"
- integrity sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==
+"@babel/helper-compilation-targets@^7.20.7":
+ version "7.20.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb"
+ integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==
dependencies:
- "@babel/compat-data" "^7.20.0"
+ "@babel/compat-data" "^7.20.5"
"@babel/helper-validator-option" "^7.18.6"
browserslist "^4.21.3"
+ lru-cache "^5.1.1"
semver "^6.3.0"
"@babel/helper-create-class-features-plugin@^7.18.6":
@@ -1445,7 +1437,7 @@
dependencies:
"@babel/types" "^7.18.6"
-"@babel/helper-module-transforms@^7.12.1":
+"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.20.11":
version "7.20.11"
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0"
integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==
@@ -1515,20 +1507,6 @@
"@babel/traverse" "^7.19.6"
"@babel/types" "^7.19.4"
-"@babel/helper-module-transforms@^7.20.2":
- version "7.20.2"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz#ac53da669501edd37e658602a21ba14c08748712"
- integrity sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==
- dependencies:
- "@babel/helper-environment-visitor" "^7.18.9"
- "@babel/helper-module-imports" "^7.18.6"
- "@babel/helper-simple-access" "^7.20.2"
- "@babel/helper-split-export-declaration" "^7.18.6"
- "@babel/helper-validator-identifier" "^7.19.1"
- "@babel/template" "^7.18.10"
- "@babel/traverse" "^7.20.1"
- "@babel/types" "^7.20.2"
-
"@babel/helper-optimise-call-expression@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe"
@@ -1556,7 +1534,7 @@
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz#4b8aea3b069d8cb8a72cdfe28ddf5ceca695ef2f"
integrity sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==
-"@babel/helper-plugin-utils@^7.19.0":
+"@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2":
version "7.20.2"
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629"
integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==
@@ -1721,14 +1699,14 @@
"@babel/traverse" "^7.19.4"
"@babel/types" "^7.19.4"
-"@babel/helpers@^7.20.1":
- version "7.20.1"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.1.tgz#2ab7a0fcb0a03b5bf76629196ed63c2d7311f4c9"
- integrity sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==
+"@babel/helpers@^7.20.7":
+ version "7.20.13"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.13.tgz#e3cb731fb70dc5337134cadc24cbbad31cc87ad2"
+ integrity sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==
dependencies:
- "@babel/template" "^7.18.10"
- "@babel/traverse" "^7.20.1"
- "@babel/types" "^7.20.0"
+ "@babel/template" "^7.20.7"
+ "@babel/traverse" "^7.20.13"
+ "@babel/types" "^7.20.7"
"@babel/highlight@^7.16.7":
version "7.16.10"
@@ -1788,10 +1766,10 @@
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.6.tgz#b923430cb94f58a7eae8facbffa9efd19130e7f8"
integrity sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA==
-"@babel/parser@^7.20.1", "@babel/parser@^7.20.2":
- version "7.20.3"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.3.tgz#5358cf62e380cf69efcb87a7bb922ff88bfac6e2"
- integrity sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==
+"@babel/parser@^7.20.13":
+ version "7.20.15"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.15.tgz#eec9f36d8eaf0948bb88c87a46784b5ee9fd0c89"
+ integrity sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6":
version "7.18.6"
@@ -2375,15 +2353,15 @@
"@babel/types" "^7.18.6"
"@babel/plugin-transform-react-jsx@^7.17.3":
- version "7.19.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz#b3cbb7c3a00b92ec8ae1027910e331ba5c500eb9"
- integrity sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==
+ version "7.20.13"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.20.13.tgz#f950f0b0c36377503d29a712f16287cedf886cbb"
+ integrity sha512-MmTZx/bkUrfJhhYAYt3Urjm+h8DQGrPrnKQ94jLo7NLuOU+T89a7IByhKmrb8SKhrIYIQ0FN0CHMbnFRen4qNw==
dependencies:
"@babel/helper-annotate-as-pure" "^7.18.6"
"@babel/helper-module-imports" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.19.0"
+ "@babel/helper-plugin-utils" "^7.20.2"
"@babel/plugin-syntax-jsx" "^7.18.6"
- "@babel/types" "^7.19.0"
+ "@babel/types" "^7.20.7"
"@babel/plugin-transform-react-jsx@^7.18.10":
version "7.18.10"
@@ -2845,19 +2823,19 @@
debug "^4.1.0"
globals "^11.1.0"
-"@babel/traverse@^7.20.1":
- version "7.20.1"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.1.tgz#9b15ccbf882f6d107eeeecf263fbcdd208777ec8"
- integrity sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==
+"@babel/traverse@^7.20.12", "@babel/traverse@^7.20.13":
+ version "7.20.13"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.13.tgz#817c1ba13d11accca89478bd5481b2d168d07473"
+ integrity sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==
dependencies:
"@babel/code-frame" "^7.18.6"
- "@babel/generator" "^7.20.1"
+ "@babel/generator" "^7.20.7"
"@babel/helper-environment-visitor" "^7.18.9"
"@babel/helper-function-name" "^7.19.0"
"@babel/helper-hoist-variables" "^7.18.6"
"@babel/helper-split-export-declaration" "^7.18.6"
- "@babel/parser" "^7.20.1"
- "@babel/types" "^7.20.0"
+ "@babel/parser" "^7.20.13"
+ "@babel/types" "^7.20.7"
debug "^4.1.0"
globals "^11.1.0"
@@ -2921,7 +2899,7 @@
"@babel/helper-validator-identifier" "^7.19.1"
to-fast-properties "^2.0.0"
-"@babel/types@^7.20.0", "@babel/types@^7.20.2":
+"@babel/types@^7.20.2":
version "7.20.2"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.2.tgz#67ac09266606190f496322dbaff360fdaa5e7842"
integrity sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==
@@ -3025,17 +3003,6 @@
dependencies:
"@jridgewell/trace-mapping" "0.3.9"
-"@daily-co/daily-js@^0.26.0":
- version "0.26.0"
- resolved "https://registry.yarnpkg.com/@daily-co/daily-js/-/daily-js-0.26.0.tgz#f90828b80e7d7ceaa29e5bb3a7e666c96a37c3b0"
- integrity sha512-JLKiTQs4HFKSzR5ES8GANPSbbs8Ri8HbJXSx54bYO6Y9bR5jr46cP0YlOwfxZIrPEXT3g3Jvt/Q1yRWqljZYVQ==
- dependencies:
- "@babel/runtime" "^7.12.5"
- bowser "^2.8.1"
- events "^3.1.0"
- fast-equals "^1.6.3"
- lodash "^4.17.15"
-
"@daily-co/daily-js@^0.37.0":
version "0.37.0"
resolved "https://registry.yarnpkg.com/@daily-co/daily-js/-/daily-js-0.37.0.tgz#39efac8003b3676d3ff21535fcdb38265815126d"
@@ -3223,7 +3190,7 @@
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz#de2a4be678bd4d0d1ffbb86e6de779cde5999028"
integrity sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==
-"@eslint/eslintrc@^1.0.5", "@eslint/eslintrc@^1.3.0":
+"@eslint/eslintrc@^1.0.5":
version "1.3.0"
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.0.tgz#29f92c30bb3e771e4a2048c95fa6855392dfac4f"
integrity sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==
@@ -3238,6 +3205,21 @@
minimatch "^3.1.2"
strip-json-comments "^3.1.1"
+"@eslint/eslintrc@^1.4.1":
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e"
+ integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==
+ dependencies:
+ ajv "^6.12.4"
+ debug "^4.3.2"
+ espree "^9.4.0"
+ globals "^13.19.0"
+ ignore "^5.2.0"
+ import-fresh "^3.2.1"
+ js-yaml "^4.1.0"
+ minimatch "^3.1.2"
+ strip-json-comments "^3.1.1"
+
"@ethereumjs/common@^2.5.0", "@ethereumjs/common@^2.6.3":
version "2.6.3"
resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.6.3.tgz#39ddece7300b336276bad6c02f6a9f1a082caa05"
@@ -3987,14 +3969,14 @@
node-fetch "^2.6.0"
url-parse "^1.4.3"
-"@humanwhocodes/config-array@^0.10.4":
- version "0.10.4"
- resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz#01e7366e57d2ad104feea63e72248f22015c520c"
- integrity sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==
+"@humanwhocodes/config-array@^0.11.8":
+ version "0.11.8"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9"
+ integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==
dependencies:
"@humanwhocodes/object-schema" "^1.2.1"
debug "^4.1.1"
- minimatch "^3.0.4"
+ minimatch "^3.0.5"
"@humanwhocodes/config-array@^0.9.2":
version "0.9.5"
@@ -4005,10 +3987,10 @@
debug "^4.1.1"
minimatch "^3.0.4"
-"@humanwhocodes/gitignore-to-minimatch@^1.0.2":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d"
- integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==
+"@humanwhocodes/module-importer@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
+ integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
"@humanwhocodes/object-schema@^1.2.1":
version "1.2.1"
@@ -4973,10 +4955,10 @@
resolved "https://registry.yarnpkg.com/@next/env/-/env-13.1.1.tgz#6ff26488dc7674ef2bfdd1ca28fe43eed1113bea"
integrity sha512-vFMyXtPjSAiOXOywMojxfKIqE3VWN5RCAx+tT3AS3pcKjMLFTCJFUWsKv8hC+87Z1F4W3r68qTwDFZIFmd5Xkw==
-"@next/eslint-plugin-next@13.1.1":
- version "13.1.1"
- resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-13.1.1.tgz#cc5e419cc85587f73f2ac0046a91df01dc6fef8b"
- integrity sha512-SBrOFS8PC3nQ5aeZmawJkjKkWjwK9RoxvBSv/86nZp0ubdoVQoko8r8htALd9ufp16NhacCdqhu9bzZLDWtALQ==
+"@next/eslint-plugin-next@13.1.6":
+ version "13.1.6"
+ resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-13.1.6.tgz#ad8be22dd3d8aee9a9bd9a2507e2c55a2f7ebdd9"
+ integrity sha512-o7cauUYsXjzSJkay8wKjpKJf2uLzlggCsGUkPu3lP09Pv97jYlekTC20KJrjQKmSv5DXV0R/uks2ZXhqjNkqAw==
dependencies:
glob "7.1.7"
@@ -5063,7 +5045,7 @@
resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b"
integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==
-"@nodelib/fs.walk@^1.2.3":
+"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8":
version "1.2.8"
resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
@@ -5602,28 +5584,6 @@
"@radix-ui/react-use-previous" "1.0.0"
"@radix-ui/react-visually-hidden" "1.0.1"
-"@radix-ui/react-popover@^1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@radix-ui/react-popover/-/react-popover-1.0.0.tgz#5ee72013089fdf9038417fc1eb98a749c17457fd"
- integrity sha512-osxFFO0TiZ9ABpEOitZu0R1Fdd+tSpJgAqLZxRLLdZQ7ya0onSODcITp5hXDVuYQeVXH6pKEBGwXN6ZGjZ0a5g==
- dependencies:
- "@babel/runtime" "^7.13.10"
- "@radix-ui/primitive" "1.0.0"
- "@radix-ui/react-compose-refs" "1.0.0"
- "@radix-ui/react-context" "1.0.0"
- "@radix-ui/react-dismissable-layer" "1.0.0"
- "@radix-ui/react-focus-guards" "1.0.0"
- "@radix-ui/react-focus-scope" "1.0.0"
- "@radix-ui/react-id" "1.0.0"
- "@radix-ui/react-popper" "1.0.0"
- "@radix-ui/react-portal" "1.0.0"
- "@radix-ui/react-presence" "1.0.0"
- "@radix-ui/react-primitive" "1.0.0"
- "@radix-ui/react-slot" "1.0.0"
- "@radix-ui/react-use-controllable-state" "1.0.0"
- aria-hidden "^1.1.1"
- react-remove-scroll "2.5.4"
-
"@radix-ui/react-popover@^1.0.2":
version "1.0.2"
resolved "https://registry.yarnpkg.com/@radix-ui/react-popover/-/react-popover-1.0.2.tgz#f761c8aafb61519522b8e80501c589e619073a2c"
@@ -8362,7 +8322,7 @@
dependencies:
"@types/node" "*"
-"@types/node@*", "@types/node@16.9.1", "@types/node@18.11.15", "@types/node@>=4.0", "@types/node@>=8.1.0", "@types/node@^12.12.54", "@types/node@^12.12.6", "@types/node@^14.0.10 || ^16.0.0", "@types/node@^14.14.20 || ^16.0.0":
+"@types/node@*", "@types/node@16.9.1", "@types/node@>=4.0", "@types/node@>=8.1.0", "@types/node@^12.12.54", "@types/node@^12.12.6", "@types/node@^14.0.10 || ^16.0.0", "@types/node@^14.14.20 || ^16.0.0":
version "16.9.1"
resolved "https://registry.yarnpkg.com/@types/node/-/node-16.9.1.tgz#0611b37db4246c937feef529ddcc018cf8e35708"
integrity sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==
@@ -8445,10 +8405,10 @@
dependencies:
"@types/react" "*"
-"@types/react-dom@18.0.9", "@types/react-dom@^18.0.0", "@types/react-dom@^18.0.6":
- version "18.0.8"
- resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.8.tgz#d2606d855186cd42cc1b11e63a71c39525441685"
- integrity sha512-C3GYO0HLaOkk9dDAz3Dl4sbe4AKUGTCfFIZsz3n/82dPNN8Du533HzKatDxeUYWu24wJgMP1xICqkWk1YOLOIw==
+"@types/react-dom@18.0.9", "@types/react-dom@^18.0.0":
+ version "18.0.9"
+ resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.9.tgz#ffee5e4bfc2a2f8774b15496474f8e7fe8d0b504"
+ integrity sha512-qnVvHxASt/H7i+XG1U1xMiY5t+IHcPGUK7TDMDzom08xa7e86eCeKOiLZezwCKVxJn6NEiiy2ekgX8aQssjIKg==
dependencies:
"@types/react" "*"
@@ -8495,10 +8455,10 @@
dependencies:
"@types/react" "*"
-"@types/react@*", "@types/react@16 || 17 || 18", "@types/react@18.0.26", "@types/react@^18.0.17":
- version "18.0.17"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.17.tgz#4583d9c322d67efe4b39a935d223edcc7050ccf4"
- integrity sha512-38ETy4tL+rn4uQQi7mB81G7V1g0u2ryquNmsVIOKUAEIDK+3CUjZ6rSRpdvS99dNBnkLFL83qfmtLacGOTIhwQ==
+"@types/react@*", "@types/react@16 || 17 || 18", "@types/react@18.0.26":
+ version "18.0.26"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.26.tgz#8ad59fc01fef8eaf5c74f4ea392621749f0b7917"
+ integrity sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==
dependencies:
"@types/prop-types" "*"
"@types/scheduler" "*"
@@ -8523,6 +8483,11 @@
dependencies:
"@types/node" "*"
+"@types/semver@^7.3.12":
+ version "7.3.13"
+ resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91"
+ integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==
+
"@types/serve-static@*":
version "1.13.10"
resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9"
@@ -8684,31 +8649,22 @@
resolved "https://registry.yarnpkg.com/@types/yoga-layout/-/yoga-layout-1.9.2.tgz#efaf9e991a7390dc081a0b679185979a83a9639a"
integrity sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==
-"@typescript-eslint/eslint-plugin@^5.33.1":
- version "5.33.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.33.1.tgz#c0a480d05211660221eda963cc844732fe9b1714"
- integrity sha512-S1iZIxrTvKkU3+m63YUOxYPKaP+yWDQrdhxTglVDVEVBf+aCSw85+BmJnyUaQQsk5TXFG/LpBu9fa+LrAQ91fQ==
+"@typescript-eslint/eslint-plugin@^5.52.0":
+ version "5.52.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.52.0.tgz#5fb0d43574c2411f16ea80f5fc335b8eaa7b28a8"
+ integrity sha512-lHazYdvYVsBokwCdKOppvYJKaJ4S41CgKBcPvyd0xjZNbvQdhn/pnJlGtQksQ/NhInzdaeaSarlBjDXHuclEbg==
dependencies:
- "@typescript-eslint/scope-manager" "5.33.1"
- "@typescript-eslint/type-utils" "5.33.1"
- "@typescript-eslint/utils" "5.33.1"
+ "@typescript-eslint/scope-manager" "5.52.0"
+ "@typescript-eslint/type-utils" "5.52.0"
+ "@typescript-eslint/utils" "5.52.0"
debug "^4.3.4"
- functional-red-black-tree "^1.0.1"
+ grapheme-splitter "^1.0.4"
ignore "^5.2.0"
+ natural-compare-lite "^1.4.0"
regexpp "^3.2.0"
semver "^7.3.7"
tsutils "^3.21.0"
-"@typescript-eslint/parser@^5.33.1":
- version "5.33.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.33.1.tgz#e4b253105b4d2a4362cfaa4e184e2d226c440ff3"
- integrity sha512-IgLLtW7FOzoDlmaMoXdxG8HOCByTBXrB1V2ZQYSEV1ggMmJfAkMWTwUjjzagS6OkfpySyhKFkBw7A9jYmcHpZA==
- dependencies:
- "@typescript-eslint/scope-manager" "5.33.1"
- "@typescript-eslint/types" "5.33.1"
- "@typescript-eslint/typescript-estree" "5.33.1"
- debug "^4.3.4"
-
"@typescript-eslint/parser@^5.42.0":
version "5.48.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.48.0.tgz#02803355b23884a83e543755349809a50b7ed9ba"
@@ -8719,13 +8675,15 @@
"@typescript-eslint/typescript-estree" "5.48.0"
debug "^4.3.4"
-"@typescript-eslint/scope-manager@5.33.1":
- version "5.33.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.33.1.tgz#8d31553e1b874210018ca069b3d192c6d23bc493"
- integrity sha512-8ibcZSqy4c5m69QpzJn8XQq9NnqAToC8OdH/W6IXPXv83vRyEDPYLdjAlUx8h/rbusq6MkW4YdQzURGOqsn3CA==
+"@typescript-eslint/parser@^5.52.0":
+ version "5.52.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.52.0.tgz#73c136df6c0133f1d7870de7131ccf356f5be5a4"
+ integrity sha512-e2KiLQOZRo4Y0D/b+3y08i3jsekoSkOYStROYmPUnGMEoA0h+k2qOH5H6tcjIc68WDvGwH+PaOrP1XRzLJ6QlA==
dependencies:
- "@typescript-eslint/types" "5.33.1"
- "@typescript-eslint/visitor-keys" "5.33.1"
+ "@typescript-eslint/scope-manager" "5.52.0"
+ "@typescript-eslint/types" "5.52.0"
+ "@typescript-eslint/typescript-estree" "5.52.0"
+ debug "^4.3.4"
"@typescript-eslint/scope-manager@5.48.0":
version "5.48.0"
@@ -8735,37 +8693,33 @@
"@typescript-eslint/types" "5.48.0"
"@typescript-eslint/visitor-keys" "5.48.0"
-"@typescript-eslint/type-utils@5.33.1":
- version "5.33.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.33.1.tgz#1a14e94650a0ae39f6e3b77478baff002cec4367"
- integrity sha512-X3pGsJsD8OiqhNa5fim41YtlnyiWMF/eKsEZGsHID2HcDqeSC5yr/uLOeph8rNF2/utwuI0IQoAK3fpoxcLl2g==
+"@typescript-eslint/scope-manager@5.52.0":
+ version "5.52.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.52.0.tgz#a993d89a0556ea16811db48eabd7c5b72dcb83d1"
+ integrity sha512-AR7sxxfBKiNV0FWBSARxM8DmNxrwgnYMPwmpkC1Pl1n+eT8/I2NAUPuwDy/FmDcC6F8pBfmOcaxcxRHspgOBMw==
dependencies:
- "@typescript-eslint/utils" "5.33.1"
+ "@typescript-eslint/types" "5.52.0"
+ "@typescript-eslint/visitor-keys" "5.52.0"
+
+"@typescript-eslint/type-utils@5.52.0":
+ version "5.52.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.52.0.tgz#9fd28cd02e6f21f5109e35496df41893f33167aa"
+ integrity sha512-tEKuUHfDOv852QGlpPtB3lHOoig5pyFQN/cUiZtpw99D93nEBjexRLre5sQZlkMoHry/lZr8qDAt2oAHLKA6Jw==
+ dependencies:
+ "@typescript-eslint/typescript-estree" "5.52.0"
+ "@typescript-eslint/utils" "5.52.0"
debug "^4.3.4"
tsutils "^3.21.0"
-"@typescript-eslint/types@5.33.1":
- version "5.33.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.33.1.tgz#3faef41793d527a519e19ab2747c12d6f3741ff7"
- integrity sha512-7K6MoQPQh6WVEkMrMW5QOA5FO+BOwzHSNd0j3+BlBwd6vtzfZceJ8xJ7Um2XDi/O3umS8/qDX6jdy2i7CijkwQ==
-
"@typescript-eslint/types@5.48.0":
version "5.48.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.48.0.tgz#d725da8dfcff320aab2ac6f65c97b0df30058449"
integrity sha512-UTe67B0Ypius0fnEE518NB2N8gGutIlTojeTg4nt0GQvikReVkurqxd2LvYa9q9M5MQ6rtpNyWTBxdscw40Xhw==
-"@typescript-eslint/typescript-estree@5.33.1":
- version "5.33.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.33.1.tgz#a573bd360790afdcba80844e962d8b2031984f34"
- integrity sha512-JOAzJ4pJ+tHzA2pgsWQi4804XisPHOtbvwUyqsuuq8+y5B5GMZs7lI1xDWs6V2d7gE/Ez5bTGojSK12+IIPtXA==
- dependencies:
- "@typescript-eslint/types" "5.33.1"
- "@typescript-eslint/visitor-keys" "5.33.1"
- debug "^4.3.4"
- globby "^11.1.0"
- is-glob "^4.0.3"
- semver "^7.3.7"
- tsutils "^3.21.0"
+"@typescript-eslint/types@5.52.0":
+ version "5.52.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.52.0.tgz#19e9abc6afb5bd37a1a9bea877a1a836c0b3241b"
+ integrity sha512-oV7XU4CHYfBhk78fS7tkum+/Dpgsfi91IIDy7fjCyq2k6KB63M6gMC0YIvy+iABzmXThCRI6xpCEyVObBdWSDQ==
"@typescript-eslint/typescript-estree@5.48.0":
version "5.48.0"
@@ -8780,25 +8734,32 @@
semver "^7.3.7"
tsutils "^3.21.0"
-"@typescript-eslint/utils@5.33.1", "@typescript-eslint/utils@^5.33.1":
- version "5.33.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.33.1.tgz#171725f924fe1fe82bb776522bb85bc034e88575"
- integrity sha512-uphZjkMaZ4fE8CR4dU7BquOV6u0doeQAr8n6cQenl/poMaIyJtBu8eys5uk6u5HiDH01Mj5lzbJ5SfeDz7oqMQ==
+"@typescript-eslint/typescript-estree@5.52.0":
+ version "5.52.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.52.0.tgz#6408cb3c2ccc01c03c278cb201cf07e73347dfca"
+ integrity sha512-WeWnjanyEwt6+fVrSR0MYgEpUAuROxuAH516WPjUblIrClzYJj0kBbjdnbQXLpgAN8qbEuGywiQsXUVDiAoEuQ==
+ dependencies:
+ "@typescript-eslint/types" "5.52.0"
+ "@typescript-eslint/visitor-keys" "5.52.0"
+ debug "^4.3.4"
+ globby "^11.1.0"
+ is-glob "^4.0.3"
+ semver "^7.3.7"
+ tsutils "^3.21.0"
+
+"@typescript-eslint/utils@5.52.0", "@typescript-eslint/utils@^5.52.0":
+ version "5.52.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.52.0.tgz#b260bb5a8f6b00a0ed51db66bdba4ed5e4845a72"
+ integrity sha512-As3lChhrbwWQLNk2HC8Ree96hldKIqk98EYvypd3It8Q1f8d5zWyIoaZEp2va5667M4ZyE7X8UUR+azXrFl+NA==
dependencies:
"@types/json-schema" "^7.0.9"
- "@typescript-eslint/scope-manager" "5.33.1"
- "@typescript-eslint/types" "5.33.1"
- "@typescript-eslint/typescript-estree" "5.33.1"
+ "@types/semver" "^7.3.12"
+ "@typescript-eslint/scope-manager" "5.52.0"
+ "@typescript-eslint/types" "5.52.0"
+ "@typescript-eslint/typescript-estree" "5.52.0"
eslint-scope "^5.1.1"
eslint-utils "^3.0.0"
-
-"@typescript-eslint/visitor-keys@5.33.1":
- version "5.33.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.33.1.tgz#0155c7571c8cd08956580b880aea327d5c34a18b"
- integrity sha512-nwIxOK8Z2MPWltLKMLOEZwmfBZReqUdbEoHQXeCpa+sRVARe5twpJGHCB4dk9903Yaf0nMAlGbQfaAH92F60eg==
- dependencies:
- "@typescript-eslint/types" "5.33.1"
- eslint-visitor-keys "^3.3.0"
+ semver "^7.3.7"
"@typescript-eslint/visitor-keys@5.48.0":
version "5.48.0"
@@ -8808,6 +8769,14 @@
"@typescript-eslint/types" "5.48.0"
eslint-visitor-keys "^3.3.0"
+"@typescript-eslint/visitor-keys@5.52.0":
+ version "5.52.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.52.0.tgz#e38c971259f44f80cfe49d97dbffa38e3e75030f"
+ integrity sha512-qMwpw6SU5VHCPr99y274xhbm+PRViK/NATY6qzt+Et7+mThGuFSl/ompj2/hrBlRP/kq+BFdgagnOSgw9TB0eA==
+ dependencies:
+ "@typescript-eslint/types" "5.52.0"
+ eslint-visitor-keys "^3.3.0"
+
"@vanilla-extract/css@1.7.0":
version "1.7.0"
resolved "https://registry.yarnpkg.com/@vanilla-extract/css/-/css-1.7.0.tgz#7276830c7741b17b7a70720be88c9083682f5206"
@@ -8869,7 +8838,7 @@
satori "0.0.44"
yoga-wasm-web "0.1.2"
-"@vitejs/plugin-react@^1.3.2":
+"@vitejs/plugin-react@1.3.2":
version "1.3.2"
resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-1.3.2.tgz#2fcf0b6ce9bcdcd4cec5c760c199779d5657ece1"
integrity sha512-aurBNmMo0kz1O4qRoY+FM4epSA39y3ShWGuqfLRA/3z0oEJAdtoSfgA3aO98/PCCHAqMaduLxIxErWrVKIFzXA==
@@ -13621,12 +13590,12 @@ escodegen@^2.0.0:
optionalDependencies:
source-map "~0.6.1"
-eslint-config-next@^13.1.1:
- version "13.1.1"
- resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-13.1.1.tgz#b1a6602b0a339820585d4b2f8d2e08866b6699a7"
- integrity sha512-/5S2XGWlGaiqrRhzpn51ux5JUSLwx8PVK2keLi5xk7QmhfYB8PqE6R6SlVw6hgnf/VexvUXSrlNJ/su00NhtHQ==
+eslint-config-next@^13.1.6:
+ version "13.1.6"
+ resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-13.1.6.tgz#ab6894fe5b80080f1e9b9306d1c4b0003230620e"
+ integrity sha512-0cg7h5wztg/SoLAlxljZ0ZPUQ7i6QKqRiP4M2+MgTZtxWwNKb2JSwNc18nJ6/kXBI6xYvPraTbQSIhAuVw6czw==
dependencies:
- "@next/eslint-plugin-next" "13.1.1"
+ "@next/eslint-plugin-next" "13.1.6"
"@rushstack/eslint-patch" "^1.1.3"
"@typescript-eslint/parser" "^5.42.0"
eslint-import-resolver-node "^0.3.6"
@@ -13636,17 +13605,17 @@ eslint-config-next@^13.1.1:
eslint-plugin-react "^7.31.7"
eslint-plugin-react-hooks "^4.5.0"
-eslint-config-prettier@^8.5.0:
- version "8.5.0"
- resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1"
- integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==
+eslint-config-prettier@^8.6.0:
+ version "8.6.0"
+ resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz#dec1d29ab728f4fa63061774e1672ac4e363d207"
+ integrity sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==
-eslint-config-turbo@^0.0.3:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/eslint-config-turbo/-/eslint-config-turbo-0.0.3.tgz#61a3b6fdc4186bb6832ab4b48bb6ed2d3bad57a8"
- integrity sha512-hK5MlxDugUWZV9ZKcyfNwLXrlMuM2wPgAUk51cUFBC3nXRCVmCA9uSRFBZsyAIurN1wH7mS7G1NBo5F8VkF7lQ==
+eslint-config-turbo@^0.0.7:
+ version "0.0.7"
+ resolved "https://registry.yarnpkg.com/eslint-config-turbo/-/eslint-config-turbo-0.0.7.tgz#1a4ef7b28df40fb168a695e34d58d1d25477aab3"
+ integrity sha512-WbrGlyfs94rOXrhombi1wjIAYGdV2iosgJRndOZtmDQeq5GLTzYmBUCJQZWtLBEBUPCj96RxZ2OL7Cn+xv/Azg==
dependencies:
- eslint-plugin-turbo "0.0.3"
+ eslint-plugin-turbo "0.0.7"
eslint-import-resolver-node@^0.3.6:
version "0.3.6"
@@ -13714,10 +13683,10 @@ eslint-plugin-jsx-a11y@^6.5.1:
language-tags "^1.0.5"
minimatch "^3.0.4"
-eslint-plugin-playwright@^0.9.0:
- version "0.9.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-playwright/-/eslint-plugin-playwright-0.9.0.tgz#e14ac6c834f2704b293fc3f45cd40d771ec2e840"
- integrity sha512-5bxAhiKjRASSgtQ4IipwtdesgQ8GT9m0PK61Uqxclu/TpiZS4eaAksydVeiiSPIOQph5GvuuLA7+oBS0WkWO6w==
+eslint-plugin-playwright@^0.12.0:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-playwright/-/eslint-plugin-playwright-0.12.0.tgz#0c728e07c217b5ea48acef46c52eefba9cf8ebd3"
+ integrity sha512-KXuzQjVzca5irMT/7rvzJKsVDGbQr43oQPc8i+SLEBqmfrTxlwMwRqfv9vtZqh4hpU0jmrnA/EOfwtls+5QC1w==
eslint-plugin-prettier@^4.2.1:
version "4.2.1"
@@ -13777,10 +13746,10 @@ eslint-plugin-react@^7.31.7:
semver "^6.3.0"
string.prototype.matchall "^4.0.8"
-eslint-plugin-turbo@0.0.3:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/eslint-plugin-turbo/-/eslint-plugin-turbo-0.0.3.tgz#9d86895732f95b0c236d6363177a52368fffdc71"
- integrity sha512-QjidATGxWtaB9QUrD3NocUySmsgWKZlBMFlw4kX2IIjRLAxMPwukk90h3ZTaNXyRHuaQsrEgh7hhlCZoxP0TTw==
+eslint-plugin-turbo@0.0.7:
+ version "0.0.7"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-turbo/-/eslint-plugin-turbo-0.0.7.tgz#b70155dfeddc530f2f3ca383d850145f22e92fa6"
+ integrity sha512-iajOH8eD4jha3duztGVBD1BEmvNrQBaA/y3HFHf91vMDRYRwH7BpHSDFtxydDpk5ghlhRxG299SFxz7D6z4MBQ==
eslint-plugin-unused-imports@^2.0.0:
version "2.0.0"
@@ -13879,14 +13848,15 @@ eslint@8.4.1:
text-table "^0.2.0"
v8-compile-cache "^2.0.3"
-eslint@^8.22.0:
- version "8.22.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.22.0.tgz#78fcb044196dfa7eef30a9d65944f6f980402c48"
- integrity sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==
+eslint@^8.34.0:
+ version "8.34.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.34.0.tgz#fe0ab0ef478104c1f9ebc5537e303d25a8fb22d6"
+ integrity sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg==
dependencies:
- "@eslint/eslintrc" "^1.3.0"
- "@humanwhocodes/config-array" "^0.10.4"
- "@humanwhocodes/gitignore-to-minimatch" "^1.0.2"
+ "@eslint/eslintrc" "^1.4.1"
+ "@humanwhocodes/config-array" "^0.11.8"
+ "@humanwhocodes/module-importer" "^1.0.1"
+ "@nodelib/fs.walk" "^1.2.8"
ajv "^6.10.0"
chalk "^4.0.0"
cross-spawn "^7.0.2"
@@ -13896,21 +13866,21 @@ eslint@^8.22.0:
eslint-scope "^7.1.1"
eslint-utils "^3.0.0"
eslint-visitor-keys "^3.3.0"
- espree "^9.3.3"
+ espree "^9.4.0"
esquery "^1.4.0"
esutils "^2.0.2"
fast-deep-equal "^3.1.3"
file-entry-cache "^6.0.1"
find-up "^5.0.0"
- functional-red-black-tree "^1.0.1"
- glob-parent "^6.0.1"
- globals "^13.15.0"
- globby "^11.1.0"
+ glob-parent "^6.0.2"
+ globals "^13.19.0"
grapheme-splitter "^1.0.4"
ignore "^5.2.0"
import-fresh "^3.0.0"
imurmurhash "^0.1.4"
is-glob "^4.0.0"
+ is-path-inside "^3.0.3"
+ js-sdsl "^4.1.4"
js-yaml "^4.1.0"
json-stable-stringify-without-jsonify "^1.0.1"
levn "^0.4.1"
@@ -13922,7 +13892,6 @@ eslint@^8.22.0:
strip-ansi "^6.0.1"
strip-json-comments "^3.1.0"
text-table "^0.2.0"
- v8-compile-cache "^2.0.3"
espree@9.2.0:
version "9.2.0"
@@ -13933,7 +13902,7 @@ espree@9.2.0:
acorn-jsx "^5.3.1"
eslint-visitor-keys "^3.1.0"
-espree@^9.2.0, espree@^9.3.3:
+espree@^9.2.0:
version "9.3.3"
resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.3.tgz#2dd37c4162bb05f433ad3c1a52ddf8a49dc08e9d"
integrity sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==
@@ -13951,6 +13920,15 @@ espree@^9.3.2:
acorn-jsx "^5.3.2"
eslint-visitor-keys "^3.3.0"
+espree@^9.4.0:
+ version "9.4.1"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.1.tgz#51d6092615567a2c2cff7833445e37c28c0065bd"
+ integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==
+ dependencies:
+ acorn "^8.8.0"
+ acorn-jsx "^5.3.2"
+ eslint-visitor-keys "^3.3.0"
+
esprima@^4.0.0, esprima@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
@@ -15588,6 +15566,13 @@ globals@^13.15.0:
dependencies:
type-fest "^0.20.2"
+globals@^13.19.0:
+ version "13.20.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82"
+ integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==
+ dependencies:
+ type-fest "^0.20.2"
+
globals@^13.6.0:
version "13.16.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-13.16.0.tgz#9be4aca28f311aaeb974ea54978ebbb5e35ce46a"
@@ -17140,6 +17125,11 @@ is-object@^1.0.1:
resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf"
integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==
+is-path-inside@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
+ integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
+
is-plain-obj@^1.0.0, is-plain-obj@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
@@ -18006,6 +17996,11 @@ js-md4@^0.3.2:
resolved "https://registry.yarnpkg.com/js-md4/-/js-md4-0.3.2.tgz#cd3b3dc045b0c404556c81ddb5756c23e59d7cf5"
integrity sha512-/GDnfQYsltsjRswQhN9fhv3EMw2sCpUdrdxyWDOUK7eyD++r3gRhzgiQgc/x4MAv2i1iuQ4lxO5mvqM3vj4bwA==
+js-sdsl@^4.1.4:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.3.0.tgz#aeefe32a451f7af88425b11fdb5f58c90ae1d711"
+ integrity sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==
+
js-sha3@0.8.0, js-sha3@^0.8.0:
version "0.8.0"
resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840"
@@ -18219,6 +18214,11 @@ json5@^2.1.2, json5@^2.1.3, json5@^2.2.1:
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c"
integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==
+json5@^2.2.2:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
+ integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
+
jsonfile@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
@@ -19468,10 +19468,10 @@ methods@^1.1.2, methods@~1.1.2:
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
-micro@^9.4.1:
- version "9.4.1"
- resolved "https://registry.yarnpkg.com/micro/-/micro-9.4.1.tgz#3a7eedd96718d8569a324475cd1967441df4b3c7"
- integrity sha512-Lpjcbp6Y9GJIfewxDfTmu9eW0rt0MGo+Gs1d3yJLFa7mhErtKkCngGhDbA/O1gqUjEwsHh+jWPg8BJ0Bx4AgFA==
+micro@^10.0.1:
+ version "10.0.1"
+ resolved "https://registry.yarnpkg.com/micro/-/micro-10.0.1.tgz#2601e02b0dacd2eaee77e9de18f12b2e595c5951"
+ integrity sha512-9uwZSsUrqf6+4FLLpiPj5TRWQv5w5uJrJwsx1LR/TjqvQmKC1XnGQ9OHrFwR3cbZ46YqPqxO/XJCOpWnqMPw2Q==
dependencies:
arg "4.1.0"
content-type "1.0.4"
@@ -19923,7 +19923,7 @@ minimalistic-crypto-utils@^1.0.1:
resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
-minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2:
+minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
@@ -20314,6 +20314,11 @@ native-duplexpair@^1.0.0:
resolved "https://registry.yarnpkg.com/native-duplexpair/-/native-duplexpair-1.0.0.tgz#7899078e64bf3c8a3d732601b3d40ff05db58fa0"
integrity sha512-E7QQoM+3jvNtlmyfqRZ0/U75VFgCls+fSkbml2MpgWkWyz3ox8Y58gNhfuziuQYGNNQAbFZJQck55LHCnCK6CA==
+natural-compare-lite@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4"
+ integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==
+
natural-compare@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
@@ -20341,21 +20346,6 @@ next-api-middleware@^1.0.1:
dependencies:
debug "^4.3.2"
-next-auth@^4.10.3:
- version "4.17.0"
- resolved "https://registry.yarnpkg.com/next-auth/-/next-auth-4.17.0.tgz#776d2a0999d4e2eb56968cad282c1ecd37516a2c"
- integrity sha512-aN2tdnjS0MDeUpB2tBDOaWnegkgeMWrsccujbXRGMJ607b+EwRcy63MFGSr0OAboDJEe0902piXQkt94GqF8Qw==
- dependencies:
- "@babel/runtime" "^7.16.3"
- "@panva/hkdf" "^1.0.1"
- cookie "^0.5.0"
- jose "^4.9.3"
- oauth "^0.9.15"
- openid-client "^5.1.0"
- preact "^10.6.3"
- preact-render-to-string "^5.1.19"
- uuid "^8.3.2"
-
next-auth@^4.18.8:
version "4.19.2"
resolved "https://registry.yarnpkg.com/next-auth/-/next-auth-4.19.2.tgz#8dbdc4886d4f006e7c67c77ab56e0aec5693064d"
@@ -22065,10 +22055,10 @@ prettier-plugin-tailwindcss@^0.1.13:
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.0.tgz#b6a5bf1284026ae640f17f7ff5658a7567fc0d18"
integrity sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==
-prettier@^2.7.1:
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64"
- integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==
+prettier@^2.8.4:
+ version "2.8.4"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.4.tgz#34dd2595629bfbb79d344ac4a91ff948694463c3"
+ integrity sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==
pretty-error@^2.1.1:
version "2.1.2"
@@ -22679,7 +22669,7 @@ react-docgen@^6.0.0-alpha.0:
resolve "^1.17.0"
strip-indent "^3.0.0"
-react-dom@18.2.0, react-dom@^18.2.0:
+react-dom@^18.2.0:
version "18.2.0"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d"
integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==
@@ -23067,7 +23057,7 @@ react-window@^1.8.7:
"@babel/runtime" "^7.0.0"
memoize-one ">=3.1.1 <6"
-react@18.2.0, react@^18.2.0:
+react@^18.2.0:
version "18.2.0"
resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5"
integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==