* feat: Cal.diy — community-driven MIT-licensed fork of Cal.com This squashed commit contains all Cal.diy changes applied on top of calcom/cal.com main: - Rebrand Cal.com to Cal.diy across the entire codebase - Remove Enterprise Edition (EE) features, license checks, and AGPL restrictions - Switch license from AGPL-3.0 to MIT - Remove docs/ directory (migrated to Nextra at cal.diy) - Remove dead code: org tests, EE tips, platform nav, premium username, SAML/SSO, etc. - Clean up .env.example for self-hosted Cal.diy - Update Docker image references to calcom/cal.diy - Update README, CONTRIBUTING.md, and issue templates for Cal.diy community fork - Add PR welcome bot for Cal.diy contributors - Fix API v2 breaking changes oasdiff ignore entries - Replace Blacksmith CI runners with default GitHub Actions 3893 files changed, 20789 insertions(+), 411020 deletions(-) Co-Authored-By: benny@cal.com <sldisek783@gmail.com> * refactor: remove org-specific /organizations/:orgId endpoints from API v2 atoms controllers (#1701) Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * fix: revert Cal.diy Inc to Cal.com, Inc. in license files, copyright notices, and package metadata (#1702) Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * rip out org related comments in api v2 --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
215 lines
8.6 KiB
TypeScript
215 lines
8.6 KiB
TypeScript
import { getBookingForReschedule } from "@calcom/features/bookings/lib/get-booking";
|
|
import getAllUserBookings from "@calcom/features/bookings/lib/getAllUserBookings";
|
|
import { getBookingFieldsWithSystemFields } from "@calcom/features/bookings/lib/getBookingFields";
|
|
import getBookingInfo from "@calcom/features/bookings/lib/getBookingInfo";
|
|
import handleCancelBooking from "@calcom/features/bookings/lib/handleCancelBooking";
|
|
import handleMarkNoShow from "@calcom/features/handleMarkNoShow";
|
|
import { getTranslation } from "@calcom/i18n/server";
|
|
import { symmetricDecrypt, symmetricEncrypt } from "@calcom/lib/crypto";
|
|
import type { Prisma } from "@calcom/prisma/client";
|
|
import { credentialForCalendarServiceSelect } from "@calcom/prisma/selects/credential";
|
|
import { paymentDataSelect } from "@calcom/prisma/selects/payment";
|
|
|
|
export { slugify } from "@calcom/lib/slugify";
|
|
export { slugifyLenient } from "@calcom/lib/slugify-lenient";
|
|
export { getBookingForReschedule };
|
|
|
|
export { getWebhookProducer } from "@calcom/features/di/webhooks/containers/webhook";
|
|
export { getUsernameList } from "@calcom/features/eventtypes/lib/defaultEvents";
|
|
export {
|
|
DEFAULT_WEBHOOK_VERSION,
|
|
WebhookVersion,
|
|
} from "@calcom/features/webhooks/lib/interface/IWebhookRepository";
|
|
export type { IWebhookProducerService } from "@calcom/features/webhooks/lib/interface/WebhookProducerService";
|
|
export {
|
|
AttributeType,
|
|
CreationSource,
|
|
MembershipRole,
|
|
PeriodType,
|
|
SchedulingType,
|
|
TimeUnit,
|
|
WebhookTriggerEvents,
|
|
} from "@calcom/prisma/enums";
|
|
export type { CalendarEvent, EventBusyDate } from "@calcom/types/Calendar";
|
|
|
|
export { handleMarkNoShow };
|
|
|
|
export type {
|
|
BookingCreateBody,
|
|
BookingResponse,
|
|
} from "@calcom/features/bookings/types";
|
|
export type { ConnectedCalendar } from "@calcom/features/calendars/lib/CalendarManager";
|
|
export {
|
|
getBusyCalendarTimes,
|
|
updateEvent,
|
|
} from "@calcom/features/calendars/lib/CalendarManager";
|
|
export type { ConnectedDestinationCalendars } from "@calcom/features/calendars/lib/getConnectedDestinationCalendars";
|
|
export { getConnectedDestinationCalendarsAndEnsureDefaultsInDb } from "@calcom/features/calendars/lib/getConnectedDestinationCalendars";
|
|
export type { CityTimezones } from "@calcom/features/cityTimezones/cityTimezonesHandler";
|
|
export { cityTimezonesHandler } from "@calcom/features/cityTimezones/cityTimezonesHandler";
|
|
export { ENABLE_ASYNC_TASKER, MINUTES_TO_BOOK } from "@calcom/lib/constants";
|
|
export { TRPCError } from "@trpc/server";
|
|
|
|
export { getAllUserBookings };
|
|
export { getBookingInfo };
|
|
export { handleCancelBooking };
|
|
|
|
export { dynamicEvent } from "@calcom/features/eventtypes/lib/defaultEvents";
|
|
export { parseBookingLimit } from "@calcom/lib/intervalLimits/isBookingLimits";
|
|
export { parseRecurringEvent } from "@calcom/lib/isRecurringEvent";
|
|
export {
|
|
bookingMetadataSchema,
|
|
teamMetadataSchema,
|
|
userMetadata,
|
|
} from "@calcom/prisma/zod-utils";
|
|
|
|
export { symmetricEncrypt, symmetricDecrypt };
|
|
|
|
export { getTranslation };
|
|
|
|
export { validateCustomEventName } from "@calcom/features/eventtypes/lib/eventNaming";
|
|
|
|
export type TeamQuery = Prisma.TeamGetPayload<{
|
|
select: {
|
|
id: true;
|
|
credentials: {
|
|
select: typeof import("@calcom/prisma/selects/credential").credentialForCalendarServiceSelect;
|
|
};
|
|
name: true;
|
|
logoUrl: true;
|
|
members: {
|
|
select: {
|
|
role: true;
|
|
};
|
|
};
|
|
};
|
|
}>;
|
|
|
|
export { credentialForCalendarServiceSelect };
|
|
export { paymentDataSelect };
|
|
export { confirmHandler as confirmBookingHandler } from "@calcom/trpc/server/routers/viewer/bookings/confirm.handler";
|
|
export { getBookingFieldsWithSystemFields };
|
|
|
|
export { checkAdminOrOwner } from "@calcom/features/auth/lib/checkAdminOrOwner";
|
|
export { sendLocationChangeEmailsAndSMS } from "@calcom/emails/email-manager";
|
|
export { verifyCodeUnAuthenticated } from "@calcom/features/auth/lib/verifyCodeUnAuthenticated";
|
|
export { sendEmailVerificationByCode } from "@calcom/features/auth/lib/verifyEmail";
|
|
export { getCalendarLinks } from "@calcom/features/bookings/lib/getCalendarLinks";
|
|
export { BookingReferenceRepository } from "@calcom/features/bookingReference/repositories/BookingReferenceRepository";
|
|
export { BookingAccessService } from "@calcom/features/bookings/services/BookingAccessService";
|
|
export { CredentialRepository } from "@calcom/features/credentials/repositories/CredentialRepository";
|
|
export type { OrgMembershipLookup } from "@calcom/features/di/modules/OrgMembershipLookup";
|
|
export type { OAuth2Tokens } from "@calcom/features/oauth/services/OAuthService";
|
|
export { OAuthService } from "@calcom/features/oauth/services/OAuthService";
|
|
export { generateSecret } from "@calcom/features/oauth/utils/generateSecret";
|
|
export { ProfileRepository } from "@calcom/features/profile/repositories/ProfileRepository";
|
|
export { SelectedCalendarRepository } from "@calcom/features/selectedCalendar/repositories/SelectedCalendarRepository";
|
|
export type { Tasker } from "@calcom/features/tasker/tasker";
|
|
export { getTasker } from "@calcom/features/tasker/tasker-factory";
|
|
export { buildCalEventFromBooking } from "@calcom/lib/buildCalEventFromBooking";
|
|
export { getVideoCallUrlFromCalEvent } from "@calcom/lib/CalEventParser";
|
|
export { verifyCodeChallenge } from "@calcom/lib/pkce";
|
|
export { encryptServiceAccountKey } from "@calcom/lib/server/serviceAccountKey";
|
|
export { validateUrlForSSRFSync } from "@calcom/lib/ssrfProtection";
|
|
export type { TraceContext } from "@calcom/lib/tracing";
|
|
export { distributedTracing } from "@calcom/lib/tracing/factory";
|
|
export {
|
|
type BookingWithUserAndEventDetails,
|
|
bookingWithUserAndEventDetailsSelect,
|
|
} from "@calcom/prisma/selects/booking";
|
|
export { checkEmailVerificationRequired } from "@calcom/trpc/server/routers/publicViewer/checkIfUserEmailVerificationRequired.handler";
|
|
export type { CredentialForCalendarService } from "@calcom/types/Credential";
|
|
|
|
// === Stubs for deleted EE features still imported by API v2 ===
|
|
|
|
// Round-robin reassignment removed (EE feature) — stubs for API v2
|
|
export async function roundRobinManualReassignment(_args: {
|
|
bookingId: number;
|
|
newUserId: number;
|
|
orgId?: number | null;
|
|
reassignReason?: string;
|
|
reassignedById?: number;
|
|
emailsEnabled?: boolean;
|
|
platformClientParams?: unknown;
|
|
actionSource?: string;
|
|
reassignedByUuid?: string;
|
|
}): Promise<void> {
|
|
// No-op in community edition
|
|
}
|
|
|
|
export async function roundRobinReassignment(_args: {
|
|
bookingId: number;
|
|
orgId?: number | null;
|
|
emailsEnabled?: boolean;
|
|
platformClientParams?: unknown;
|
|
reassignedById?: number;
|
|
actionSource?: string;
|
|
reassignedByUuid?: string;
|
|
}): Promise<void> {
|
|
// No-op in community edition
|
|
}
|
|
|
|
// createApiKeyHandler removed (EE feature) — stub for API v2
|
|
export async function createApiKeyHandler(_args: {
|
|
ctx: { user: { id: number } };
|
|
input: {
|
|
note?: string | null;
|
|
neverExpires?: boolean;
|
|
expiresAt?: Date | null;
|
|
teamId?: number;
|
|
};
|
|
}): Promise<string> {
|
|
throw new Error("API key creation is not available in community edition");
|
|
}
|
|
|
|
// getClientSecretFromPayment removed (EE feature) — stub for API v2
|
|
export function getClientSecretFromPayment(payment: { data: Record<string, unknown> }): string | null {
|
|
const data = payment.data;
|
|
if (data && typeof data === "object" && "client_secret" in data) {
|
|
return data.client_secret as string;
|
|
}
|
|
return null;
|
|
}
|
|
|
|
// verifyCodeAuthenticated removed (EE feature) — stub for API v2
|
|
export async function verifyCodeAuthenticated(_args: {
|
|
user: { id: number; email?: string; [key: string]: unknown };
|
|
email: string;
|
|
code: string;
|
|
}): Promise<boolean> {
|
|
return false;
|
|
}
|
|
|
|
// createNewUsersConnectToOrgIfExists removed (EE feature) — stub for API v2
|
|
export async function createNewUsersConnectToOrgIfExists(_args: {
|
|
invitations: { usernameOrEmail: string; role: string }[];
|
|
creationSource?: string;
|
|
teamId: number;
|
|
isOrg: boolean;
|
|
parentId: number | null;
|
|
autoAcceptEmailDomain: string;
|
|
orgConnectInfoByUsernameOrEmail: Record<string, { orgId: number; autoAccept: boolean }>;
|
|
isPlatformManaged?: boolean;
|
|
timeFormat?: number;
|
|
weekStart?: string;
|
|
timeZone?: string;
|
|
language?: string;
|
|
}): Promise<{ id: number; email: string; username: string }[]> {
|
|
throw new Error("Organization user creation is not available in community edition");
|
|
}
|
|
|
|
// sendVerificationCode removed (EE feature) — stub for API v2
|
|
export async function sendVerificationCode(_phoneNumber: string): Promise<void> {
|
|
throw new Error("Phone verification is not available in community edition");
|
|
}
|
|
|
|
// verifyPhoneNumber removed (EE feature) — stub for API v2
|
|
export async function verifyPhoneNumber(
|
|
_phoneNumber: string,
|
|
_code: string,
|
|
_userId: number,
|
|
_teamId?: number
|
|
): Promise<boolean> {
|
|
throw new Error("Phone verification is not available in community edition");
|
|
}
|