From 716e66b0c396763ca82a1fc7e55338600ce8d291 Mon Sep 17 00:00:00 2001 From: Keith Williams Date: Mon, 29 Dec 2025 00:52:12 -0300 Subject: [PATCH] chore: Use relative imports for @calcom/prisma inside of @calcom/prisma (#26245) ## Summary by cubic Switch @calcom/prisma to use relative imports for client and enums. This removes self-references, stabilizes builds, and improves type resolution. - **Refactors** - Replaced imports from "@calcom/prisma/*" with local "./client" and "./enums" across extensions, selects, mocks, and availability check. - Updated safeJSONStringify parameter type from any to unknown. - Minor formatting cleanup in zod-utils. Written for commit 85c0a7b75fb1291be5b848a73d1ccb5543283f49. Summary will update automatically on new commits. --- packages/prisma/__mocks__/prisma.ts | 2 +- packages/prisma/extensions/booking-idempotency-key.ts | 4 ++-- packages/prisma/extensions/exclude-locked-users.ts | 4 ++-- packages/prisma/extensions/exclude-pending-payment-teams.ts | 2 +- packages/prisma/is-prisma-available-check.ts | 2 +- packages/prisma/selects/app.ts | 2 +- packages/prisma/selects/booking.ts | 2 +- packages/prisma/selects/credential.ts | 2 +- packages/prisma/selects/event-types.ts | 2 +- packages/prisma/selects/payment.ts | 2 +- packages/prisma/selects/user.ts | 2 +- packages/prisma/zod-utils.ts | 6 +++--- 12 files changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/prisma/__mocks__/prisma.ts b/packages/prisma/__mocks__/prisma.ts index 35e2c0a352..5a6468fb63 100644 --- a/packages/prisma/__mocks__/prisma.ts +++ b/packages/prisma/__mocks__/prisma.ts @@ -1,7 +1,7 @@ import { beforeEach } from "vitest"; import { mockDeep, mockReset } from "vitest-mock-extended"; -import type { PrismaClient } from "@calcom/prisma"; +import type { PrismaClient } from "../client"; beforeEach(() => { mockReset(prisma); diff --git a/packages/prisma/extensions/booking-idempotency-key.ts b/packages/prisma/extensions/booking-idempotency-key.ts index 8e3378c979..df8e35bb89 100644 --- a/packages/prisma/extensions/booking-idempotency-key.ts +++ b/packages/prisma/extensions/booking-idempotency-key.ts @@ -1,7 +1,7 @@ import { v5 as uuidv5 } from "uuid"; -import { Prisma } from "@calcom/prisma/client"; -import { BookingStatus } from "@calcom/prisma/enums"; +import { Prisma } from "../client"; +import { BookingStatus } from "../enums"; function generateIdempotencyKey({ startTime, diff --git a/packages/prisma/extensions/exclude-locked-users.ts b/packages/prisma/extensions/exclude-locked-users.ts index addc47eff0..c74c802621 100644 --- a/packages/prisma/extensions/exclude-locked-users.ts +++ b/packages/prisma/extensions/exclude-locked-users.ts @@ -1,4 +1,4 @@ -import { Prisma } from "@calcom/prisma/client"; +import { Prisma } from "../client"; export function excludeLockedUsersExtension() { return Prisma.defineExtension({ @@ -24,7 +24,7 @@ export function excludeLockedUsersExtension() { }); } -function safeJSONStringify(x: any) { +function safeJSONStringify(x: unknown) { try { return JSON.stringify(x); } catch { diff --git a/packages/prisma/extensions/exclude-pending-payment-teams.ts b/packages/prisma/extensions/exclude-pending-payment-teams.ts index 5d07fa9bd0..eaae60d9c6 100644 --- a/packages/prisma/extensions/exclude-pending-payment-teams.ts +++ b/packages/prisma/extensions/exclude-pending-payment-teams.ts @@ -1,4 +1,4 @@ -import { Prisma } from "@calcom/prisma/client"; +import { Prisma } from "../client"; export function excludePendingPaymentsExtension() { return Prisma.defineExtension({ diff --git a/packages/prisma/is-prisma-available-check.ts b/packages/prisma/is-prisma-available-check.ts index 98dcc2a039..2a746671ef 100644 --- a/packages/prisma/is-prisma-available-check.ts +++ b/packages/prisma/is-prisma-available-check.ts @@ -1,4 +1,4 @@ -import { Prisma } from "@calcom/prisma/client"; +import { Prisma } from "./client"; export async function isPrismaAvailableCheck(): Promise { try { diff --git a/packages/prisma/selects/app.ts b/packages/prisma/selects/app.ts index 702da7a8db..7e9252dfc6 100644 --- a/packages/prisma/selects/app.ts +++ b/packages/prisma/selects/app.ts @@ -1,4 +1,4 @@ -import type { Prisma } from "@calcom/prisma/client"; +import type { Prisma } from "../client"; export const safeAppSelect = { slug: true, diff --git a/packages/prisma/selects/booking.ts b/packages/prisma/selects/booking.ts index 2b74e888af..2cc5c8223f 100644 --- a/packages/prisma/selects/booking.ts +++ b/packages/prisma/selects/booking.ts @@ -1,4 +1,4 @@ -import type { Prisma } from "@calcom/prisma/client"; +import type { Prisma } from "../client"; export const bookingMinimalSelect = { id: true, diff --git a/packages/prisma/selects/credential.ts b/packages/prisma/selects/credential.ts index 05795034c6..0490fde7d3 100644 --- a/packages/prisma/selects/credential.ts +++ b/packages/prisma/selects/credential.ts @@ -1,4 +1,4 @@ -import type { Prisma } from "@calcom/prisma/client"; +import type { Prisma } from "../client"; export const credentialForCalendarServiceSelect = { id: true, diff --git a/packages/prisma/selects/event-types.ts b/packages/prisma/selects/event-types.ts index 0f0d2c1ba6..dc60edded0 100644 --- a/packages/prisma/selects/event-types.ts +++ b/packages/prisma/selects/event-types.ts @@ -1,4 +1,4 @@ -import type { Prisma } from "@calcom/prisma/client"; +import type { Prisma } from "../client"; export const baseEventTypeSelect = { id: true, diff --git a/packages/prisma/selects/payment.ts b/packages/prisma/selects/payment.ts index 48abe62db4..36a1dfc300 100644 --- a/packages/prisma/selects/payment.ts +++ b/packages/prisma/selects/payment.ts @@ -1,4 +1,4 @@ -import type { Prisma } from "@calcom/prisma/client"; +import type { Prisma } from "../client"; export const paymentDataSelect = { data: true, diff --git a/packages/prisma/selects/user.ts b/packages/prisma/selects/user.ts index b3f1465959..6a698173e9 100644 --- a/packages/prisma/selects/user.ts +++ b/packages/prisma/selects/user.ts @@ -1,4 +1,4 @@ -import type { Prisma } from "@calcom/prisma/client"; +import type { Prisma } from "../client"; export const availabilityUserSelect = { id: true, diff --git a/packages/prisma/zod-utils.ts b/packages/prisma/zod-utils.ts index 88c880c32e..d245a4304a 100644 --- a/packages/prisma/zod-utils.ts +++ b/packages/prisma/zod-utils.ts @@ -11,9 +11,8 @@ import type { ZodTypeAny, } from "zod"; -import { EventTypeCustomInputType } from "@calcom/prisma/enums"; - import type { Prisma } from "./client"; +import { EventTypeCustomInputType } from "./enums"; /** @see https://github.com/colinhacks/zod/issues/3155#issuecomment-2060045794 */ export const emailRegex = @@ -1056,7 +1055,8 @@ export const excludeOrRequireEmailSchema = z.string().superRefine((val, ctx) => // Accept forms: domain-only, `@domain`, or `local@domain` // - Domain labels: alnum, hyphens allowed internally, no leading/trailing hyphen // - Require at least one dot and end with an alpha TLD of length ≥2 - const EMAIL_OR_DOMAIN_PATTERN = /^(?:[a-z0-9._+'-]+@|@)?(?:[a-z]{2,}|(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z]{2,})$/i; + const EMAIL_OR_DOMAIN_PATTERN = + /^(?:[a-z0-9._+'-]+@|@)?(?:[a-z]{2,}|(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z]{2,})$/i; const isValid = allDomains.every((entry) => EMAIL_OR_DOMAIN_PATTERN.test(entry));