Scheduling infrastructure for absolutely everyone.
This report summarizes scanner evidence for calcom/cal.diy, a TypeScript project with 49,576 GitHub stars. SynthScan examined 801,822 lines of code across 6056 source files, recording 1209 pattern matches distributed across 12 syntactic categories. The legacy adjusted pattern signal is 2.5 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 565 finding(s).
Are imports declared and package/API names verified? 631 finding(s).
Are wrappers, guards, and repeated structures necessary? 510 finding(s).
Which changes need focused human review? 1209 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 1209 distinct pattern matches across 12 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL⚡ | packages/app-store/hubspot/lib/CrmService.test.ts | 251 | mockHubspotClient.crm.owners.ownersApi.getPage.mockResolvedValue({ results: [] }); | CODE |
| CRITICAL⚡ | packages/app-store/hubspot/lib/CrmService.test.ts | 254 | mockHubspotClient.crm.objects.meetings.basicApi.create.mockResolvedValue({ | CODE |
| CRITICAL⚡ | packages/app-store/hubspot/lib/CrmService.test.ts | 260 | mockHubspotClient.crm.associations.batchApi.create.mockResolvedValue({ | CODE |
| CRITICAL⚡ | packages/app-store/hubspot/lib/CrmService.test.ts | 267 | mockHubspotClient.crm.contacts.searchApi.doSearch.mockResolvedValueOnce({ | CODE |
| CRITICAL⚡ | packages/app-store/hubspot/lib/CrmService.test.ts | 590 | mockHubspotClient.crm.properties.coreApi.getAll.mockResolvedValueOnce({ | CODE |
| CRITICAL⚡ | packages/app-store/hubspot/lib/CrmService.test.ts | 889 | mockHubspotClient.crm.owners.ownersApi.getPage.mockResolvedValue({ | CODE |
| CRITICAL⚡ | packages/app-store/hubspot/lib/CrmService.test.ts | 894 | mockHubspotClient.crm.contacts.basicApi.getById.mockResolvedValue({ | CODE |
| CRITICAL⚡ | packages/app-store/hubspot/lib/CrmService.test.ts | 900 | mockHubspotClient.crm.contacts.basicApi.update.mockResolvedValue({ | CODE |
| CRITICAL⚡ | packages/app-store/hubspot/lib/CrmService.test.ts | 905 | mockHubspotClient.crm.objects.meetings.basicApi.create.mockResolvedValue({ | CODE |
| CRITICAL⚡ | packages/app-store/hubspot/lib/CrmService.test.ts | 910 | mockHubspotClient.crm.associations.batchApi.create.mockResolvedValue({ | CODE |
| CRITICAL⚡ | packages/app-store/hubspot/lib/CrmService.test.ts | 932 | mockHubspotClient.crm.owners.ownersApi.getPage.mockResolvedValue({ | CODE |
| CRITICAL⚡ | packages/app-store/hubspot/lib/CrmService.test.ts | 936 | mockHubspotClient.crm.contacts.basicApi.update.mockResolvedValue({ | CODE |
| CRITICAL⚡ | packages/app-store/hubspot/lib/CrmService.test.ts | 941 | mockHubspotClient.crm.objects.meetings.basicApi.create.mockResolvedValue({ | CODE |
| CRITICAL⚡ | packages/app-store/hubspot/lib/CrmService.test.ts | 946 | mockHubspotClient.crm.associations.batchApi.create.mockResolvedValue({ | CODE |
| CRITICAL⚡ | packages/app-store/hubspot/lib/CrmService.test.ts | 964 | mockHubspotClient.crm.owners.ownersApi.getPage.mockResolvedValue({ | CODE |
| CRITICAL⚡ | packages/app-store/hubspot/lib/CrmService.test.ts | 968 | mockHubspotClient.crm.contacts.basicApi.getById.mockResolvedValue({ | CODE |
| CRITICAL⚡ | packages/app-store/hubspot/lib/CrmService.test.ts | 973 | mockHubspotClient.crm.objects.meetings.basicApi.create.mockResolvedValue({ | CODE |
| CRITICAL⚡ | packages/app-store/hubspot/lib/CrmService.test.ts | 978 | mockHubspotClient.crm.associations.batchApi.create.mockResolvedValue({ | CODE |
| CRITICAL⚡ | packages/app-store/hubspot/lib/CrmService.test.ts | 996 | mockHubspotClient.crm.owners.ownersApi.getPage.mockResolvedValue({ results: [] }); | CODE |
| CRITICAL⚡ | packages/app-store/hubspot/lib/CrmService.test.ts | 998 | mockHubspotClient.crm.objects.meetings.basicApi.create.mockResolvedValue({ | CODE |
| CRITICAL⚡ | packages/app-store/hubspot/lib/CrmService.test.ts | 1003 | mockHubspotClient.crm.associations.batchApi.create.mockResolvedValue({ | CODE |
| CRITICAL⚡ | packages/app-store/hubspot/lib/CrmService.test.ts | 1023 | mockHubspotClient.crm.owners.ownersApi.getPage.mockRejectedValue({ | CODE |
| CRITICAL⚡ | packages/app-store/hubspot/lib/CrmService.test.ts | 1032 | mockHubspotClient.crm.objects.meetings.basicApi.create.mockResolvedValue({ | CODE |
| CRITICAL⚡ | packages/app-store/hubspot/lib/CrmService.test.ts | 1037 | mockHubspotClient.crm.associations.batchApi.create.mockResolvedValue({ | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.test.ts | 283 | mockHubspotClient.crm.contacts.searchApi.doSearch.mockResolvedValueOnce({ | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.test.ts | 293 | mockHubspotClient.crm.contacts.searchApi.doSearch.mockResolvedValueOnce({ | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.test.ts | 306 | mockHubspotClient.crm.contacts.searchApi.doSearch.mockResolvedValueOnce({ | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.test.ts | 318 | mockHubspotClient.crm.owners.ownersApi.getById.mockResolvedValueOnce({ | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.test.ts | 350 | mockHubspotClient.crm.contacts.searchApi.doSearch.mockResolvedValueOnce({ | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.test.ts | 384 | mockHubspotClient.crm.contacts.searchApi.doSearch.mockResolvedValueOnce({ | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.test.ts | 420 | mockHubspotClient.crm.contacts.searchApi.doSearch.mockResolvedValueOnce({ | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.test.ts | 432 | mockHubspotClient.crm.owners.ownersApi.getById.mockResolvedValueOnce({ | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.test.ts | 463 | mockHubspotClient.crm.contacts.searchApi.doSearch.mockResolvedValueOnce({ | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.test.ts | 475 | mockHubspotClient.crm.owners.ownersApi.getById.mockRejectedValueOnce(new Error("Owner not found")); | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.test.ts | 497 | mockHubspotClient.crm.contacts.basicApi.create.mockResolvedValueOnce({ | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.test.ts | 515 | mockHubspotClient.crm.contacts.basicApi.create.mockRejectedValueOnce({ | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.test.ts | 564 | mockHubspotClient.crm.properties.coreApi.getAll.mockResolvedValueOnce({ | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.test.ts | 620 | mockHubspotClient.crm.properties.coreApi.getAll.mockResolvedValueOnce({ | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.test.ts | 651 | mockHubspotClient.crm.properties.coreApi.getAll.mockResolvedValueOnce({ | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.test.ts | 677 | mockHubspotClient.crm.properties.coreApi.getAll.mockResolvedValueOnce({ | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.test.ts | 703 | mockHubspotClient.crm.properties.coreApi.getAll.mockResolvedValueOnce({ | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.test.ts | 735 | mockHubspotClient.crm.properties.coreApi.getAll.mockResolvedValueOnce({ | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.test.ts | 767 | mockHubspotClient.crm.properties.coreApi.getAll.mockResolvedValueOnce({ | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.test.ts | 809 | mockHubspotClient.crm.properties.coreApi.getAll.mockResolvedValueOnce({ | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.test.ts | 846 | mockHubspotClient.crm.properties.coreApi.getAll.mockResolvedValueOnce({ | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.test.ts | 1068 | mockHubspotClient.crm.objects.meetings.basicApi.update.mockResolvedValue({ | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.test.ts | 1092 | mockHubspotClient.crm.objects.meetings.basicApi.update.mockResolvedValue({ | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.test.ts | 1109 | mockHubspotClient.crm.objects.meetings.basicApi.archive.mockResolvedValue(undefined); | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.ts | 95 | const properties = await this.hubspotClient.crm.properties.coreApi.getAll("meetings"); | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.ts | 314 | return this.hubspotClient.crm.objects.meetings.basicApi.create(simplePublicObjectInput); | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.ts | 325 | return this.hubspotClient.crm.associations.batchApi.create( | CODE |
| CRITICAL⚡ | packages/app-store/hubspot/lib/CrmService.ts | 350 | return this.hubspotClient.crm.objects.meetings.basicApi.update(uid, simplePublicObjectInput); | CODE |
| CRITICAL⚡ | packages/app-store/hubspot/lib/CrmService.ts | 360 | return this.hubspotClient.crm.objects.meetings.basicApi.update(uid, simplePublicObjectInput); | CODE |
| CRITICAL⚡ | packages/app-store/hubspot/lib/CrmService.ts | 364 | return this.hubspotClient.crm.objects.meetings.basicApi.archive(uid); | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.ts | 579 | this.hubspotClient.crm.contacts.basicApi.create(contact).catch((error) => { | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.ts | 611 | const ownersResponse = await this.hubspotClient.crm.owners.ownersApi.getPage( | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.ts | 630 | await this.hubspotClient.crm.contacts.basicApi.update(contactId, { | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.ts | 639 | const contact = await this.hubspotClient.crm.contacts.basicApi.getById(contactId, ["hubspot_owner_id"]); | CODE |
| CRITICAL | packages/app-store/hubspot/lib/CrmService.ts | 665 | const owner = await this.hubspotClient.crm.owners.ownersApi.getById(parseInt(ownerId, 10)); | CODE |
| CRITICAL | …ents/getting-started/steps-views/SetupAvailability.tsx | 25 | const queryAvailability = trpc.viewer.availability.schedule.get.useQuery( | CODE |
| 17 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | agents/skills/calcom-api/SKILL.md | 95 | "name": "John Doe", | CODE |
| LOW | agents/skills/calcom-api/references/authentication.md | 240 | "email": "user@example.com", | CODE |
| LOW | agents/skills/calcom-api/references/authentication.md | 242 | "name": "John Doe", | CODE |
| LOW | agents/skills/calcom-api/references/webhooks.md | 108 | "name": "John Doe", | CODE |
| LOW | agents/skills/calcom-api/references/webhooks.md | 121 | "name": "John Doe", | CODE |
| LOW | agents/skills/calcom-api/references/event-types.md | 89 | "placeholder": "Any additional information..." | CODE |
| LOW | agents/skills/calcom-api/references/event-types.md | 211 | "placeholder": "Enter your company name" | CODE |
| LOW | agents/skills/calcom-api/references/bookings.md | 62 | "name": "John Doe", | CODE |
| LOW | agents/skills/calcom-api/references/bookings.md | 96 | "name": "John Doe", | CODE |
| LOW | docs/api-reference/v2/openapi.json | 166 | "example": "John Doe", | CODE |
| LOW | docs/api-reference/v2/openapi.json | 7465 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 7477 | "required": ["type", "slug", "label", "required", "placeholder", "hidden"] | CODE |
| LOW | docs/api-reference/v2/openapi.json | 7499 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 7512 | "required": ["type", "slug", "label", "required", "placeholder", "hidden"] | CODE |
| LOW | docs/api-reference/v2/openapi.json | 7534 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 7547 | "required": ["type", "slug", "label", "required", "placeholder", "hidden"] | CODE |
| LOW | docs/api-reference/v2/openapi.json | 7569 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 7582 | "required": ["type", "slug", "label", "required", "placeholder", "hidden"] | CODE |
| LOW | docs/api-reference/v2/openapi.json | 7604 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 7617 | "required": ["type", "slug", "label", "required", "placeholder", "hidden"] | CODE |
| LOW | docs/api-reference/v2/openapi.json | 7639 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 7659 | "required": ["type", "slug", "label", "required", "placeholder", "options", "hidden"] | CODE |
| LOW | docs/api-reference/v2/openapi.json | 7719 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 7732 | "required": ["type", "slug", "label", "required", "placeholder", "hidden"] | CODE |
| LOW | docs/api-reference/v2/openapi.json | 7861 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 7874 | "required": ["type", "slug", "label", "required", "placeholder", "hidden"] | CODE |
| LOW | docs/api-reference/v2/openapi.json | 8141 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 8149 | "required": ["type", "label", "placeholder"] | CODE |
| LOW | docs/api-reference/v2/openapi.json | 8170 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 8178 | "required": ["type", "label", "placeholder"] | CODE |
| LOW | docs/api-reference/v2/openapi.json | 8198 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 8240 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 8268 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 8296 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 8932 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 8950 | "required": ["type", "label", "placeholder", "isDefault", "slug"] | CODE |
| LOW | docs/api-reference/v2/openapi.json | 8964 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 8985 | "required": ["type", "label", "placeholder", "isDefault", "slug", "required"] | CODE |
| LOW | docs/api-reference/v2/openapi.json | 9037 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 9076 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 9115 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 9154 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 9194 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 9213 | "required": ["type", "slug", "label", "required", "placeholder", "hidden", "isDefault"] | CODE |
| LOW | docs/api-reference/v2/openapi.json | 9316 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 9335 | "required": ["type", "slug", "label", "required", "placeholder", "hidden", "isDefault"] | CODE |
| LOW | docs/api-reference/v2/openapi.json | 9401 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 9420 | "required": ["type", "slug", "label", "required", "placeholder", "hidden", "isDefault"] | CODE |
| LOW | docs/api-reference/v2/openapi.json | 9442 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 9461 | "required": ["type", "slug", "label", "required", "placeholder", "hidden", "isDefault"] | CODE |
| LOW | docs/api-reference/v2/openapi.json | 9482 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 9500 | "required": ["type", "slug", "label", "required", "placeholder", "hidden", "isDefault"] | CODE |
| LOW | docs/api-reference/v2/openapi.json | 9566 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 9592 | "required": ["type", "slug", "label", "required", "placeholder", "options", "hidden", "isDefault"] | CODE |
| LOW | docs/api-reference/v2/openapi.json | 9614 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 9633 | "required": ["type", "slug", "label", "required", "placeholder", "hidden", "isDefault"] | CODE |
| LOW | docs/api-reference/v2/openapi.json | 9655 | "placeholder": { | CODE |
| LOW | docs/api-reference/v2/openapi.json | 9674 | "required": ["type", "slug", "label", "required", "placeholder", "hidden", "isDefault"] | CODE |
| LOW | docs/api-reference/v2/openapi.json | 12206 | "example": "John Doe" | CODE |
| LOW | docs/api-reference/v2/openapi.json | 12576 | "example": "Jane Doe" | CODE |
| 493 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | playwright.config.ts | 335 | function ensureAppServerIsReadyToServeEmbed(webServer: { port?: number; url?: string }) { | CODE |
| LOW | example-apps/credential-sync/lib/integrations.ts | 10 | export async function generateGoogleCalendarAccessToken() { | CODE |
| LOW | agents/rules/performance-scheduling-complexity.md | 41 | async function precomputeTeamAvailability(teamId: number) { | CODE |
| LOW | scripts/seed-performance-testing.ts | 242 | async function createAUserWithManyBookings() { | CODE |
| LOW | scripts/seed-huge-event-types.ts | 29 | async function createTeamsWithEventTypes({ | CODE |
| LOW | scripts/seed.ts | 113 | async function createOrganizationAndAddMembersAndTeams({ | CODE |
| LOW | scripts/seed.ts | 522 | async function ensureAcmeOwnerHasApiKeySeeded() { | CODE |
| LOW | scripts/seed.ts | 531 | async function seedPerHostLocationsInAcmeOrg() { | CODE |
| LOW | …ges/ui/components/dialog/ConfirmationDialogContent.tsx | 21 | export function ConfirmationDialogContent(props: PropsWithChildren<ConfirmationDialogContentProps>) { | CODE |
| LOW | packages/types/business-days-plugin.d.ts | 42 | function getAdditionalWorkingDayFormat(): string | undefined; | CODE |
| LOW | packages/types/business-days-plugin.d.ts | 43 | function setAdditionalWorkingDayFormat(additionalWorkingDayFormat: string): void; | CODE |
| LOW | …/routers/loggedInViewer/connectAndJoin.handler.test.ts | 55 | function mockPrismaForSuccessfulJoin({ oldStatus = BookingStatus.AWAITING_HOST } = {}) { | CODE |
| LOW | …iewer/calendars/setDestinationCalendar.handler.test.ts | 74 | function createMockConnectedCalendars({ | CODE |
| LOW | …server/routers/viewer/bookings/editLocation.handler.ts | 41 | async function updateLocationInConnectedAppForBooking({ | CODE |
| LOW | …server/routers/viewer/bookings/editLocation.handler.ts | 66 | function extractAdditionalInformation(result: { | CODE |
| LOW | …server/routers/viewer/bookings/editLocation.handler.ts | 78 | async function updateBookingLocationInDb({ | CODE |
| LOW | …server/routers/viewer/bookings/editLocation.handler.ts | 127 | async function getAllCredentialsIncludeServiceAccountKey({ | CODE |
| LOW | …server/routers/viewer/bookings/editLocation.handler.ts | 159 | async function getLocationInEvtFormatOrThrow({ | CODE |
| LOW | …server/routers/viewer/bookings/editLocation.handler.ts | 213 | export function getLocationForOrganizerDefaultConferencingAppInEvtFormat({ | CODE |
| LOW | …pc/server/routers/viewer/bookings/addGuests.handler.ts | 115 | export function validateGuestsFieldEnabled(booking: Booking): void { | CODE |
| LOW | …pc/server/routers/viewer/bookings/addGuests.handler.ts | 172 | async function getEmailVerificationRequirements(guestEmails: string[]): Promise<Map<string, boolean>> { | CODE |
| LOW | …ges/trpc/server/routers/viewer/bookings/get.handler.ts | 877 | async function getEventTypeIdsFromTeamIdsFilter(prisma: PrismaClient, teamIds?: number[]) { | CODE |
| LOW | …ges/trpc/server/routers/viewer/bookings/get.handler.ts | 897 | async function getAttendeeEmailsFromUserIdsFilter( | CODE |
| LOW | …ges/trpc/server/routers/viewer/bookings/get.handler.ts | 929 | async function getEventTypeIdsFromEventTypeIdsFilter(prisma: PrismaClient, eventTypeIds?: number[]) { | CODE |
| LOW | …ges/trpc/server/routers/viewer/bookings/get.handler.ts | 1051 | function addAdvancedAttendeeWhereClause( | CODE |
| LOW | …uters/viewer/holidays/getSupportedCountries.handler.ts | 3 | export async function getSupportedCountriesHandler() { | CODE |
| LOW | packages/trpc/server/routers/viewer/eventTypes/util.ts | 252 | export function ensureUniqueBookingFields(fields: TUpdateInputSchema["bookingFields"]) { | CODE |
| LOW | packages/trpc/server/routers/viewer/eventTypes/util.ts | 274 | export function ensureEmailOrPhoneNumberIsPresent(fields: TUpdateInputSchema["bookingFields"]) { | CODE |
| LOW | …rver/routers/viewer/eventTypes/utils/transformUtils.ts | 121 | export function createProfilesWithPermissions( | CODE |
| LOW | …/server/routers/viewer/eventTypes/utils/filterUtils.ts | 26 | export function shouldIncludeTeamMembership( | CODE |
| LOW | packages/trpc/server/lib/toTRPCError.ts | 62 | export function convertErrorWithCodeToTRPCError(cause: unknown) { | CODE |
| LOW | packages/emails/templates/organizer-request-email.ts | 12 | async function getOrganizerRequestTemplate(userId?: number) { | CODE |
| LOW | …ooks/organizations/bookings/useOrganizationBookings.ts | 36 | function extractOrganizationBookingsQueryKeys(query: GetOrganizationsBookingsInput) { | CODE |
| LOW | …ility/wrappers/AvailabilitySettingsPlatformWrapper.tsx | 44 | >(function AvailabilitySettingsPlatformWrapper(props, ref) { | CODE |
| LOW | …nnect/conferencing-apps/AppListCardPlatformWrapper.tsx | 4 | export default function AppListCardPlatformWrapper(props: AppListCardProps) { | CODE |
| LOW | …pes/bookings/2024-08-13/inputs/create-booking.input.ts | 48 | function RequireEventTypeIdentification(validationOptions?: ValidationOptions) { | CODE |
| LOW | …pes_2024_06_14/inputs/booking-limits-duration.input.ts | 97 | export function ValidateBookingLimistsDuration(validationOptions?: ValidationOptions) { | CODE |
| LOW | …-types_2024_06_14/inputs/booking-limits-count.input.ts | 106 | export function ValidateBookingLimitsCount(validationOptions?: ValidationOptions) { | CODE |
| LOW | …t-types_2024_06_14/inputs/confirmation-policy.input.ts | 92 | export function ValidateConfirmationPolicy(validationOptions?: ValidationOptions) { | CODE |
| LOW | …/event-types_2024_06_14/inputs/booker-layouts.input.ts | 63 | function IsDefaultLayoutWithinEnabledLayouts(validationOptions?: ValidationOptions) { | CODE |
| LOW | …tors/CantHaveRecurrenceAndBookerActiveBookingsLimit.ts | 9 | export function CantHaveRecurrenceAndBookerActiveBookingsLimit(validationOptions?: ValidationOptions) { | CODE |
| LOW | …/types/utils/RequiresOneOfPropertiesWhenNotDisabled.ts | 13 | export function RequiresAtLeastOnePropertyWhenNotDisabled(validationOptions?: ValidationOptions) { | CODE |
| LOW | packages/platform/libraries/app-store.ts | 47 | export async function enrichUserWithDelegationConferencingCredentialsWithoutOrgId(_args: { | CODE |
| LOW | packages/platform/libraries/organizations.ts | 22 | export function getActiveUserBillingService(): ActiveUserBillingServiceStub { | CODE |
| LOW | packages/platform/libraries/emails.ts | 54 | export async function sendSignupToOrganizationEmail(_args: { | CODE |
| LOW | packages/platform/libraries/tasker.ts | 5 | export function getIncrementUsageIdempotencyKey(bookingUid: string): string { | CODE |
| LOW | packages/platform/libraries/slots.ts | 14 | export async function validateRoundRobinSlotAvailability( | CODE |
| LOW | packages/platform/libraries/index.ts | 126 | export async function roundRobinManualReassignment(_args: { | CODE |
| LOW | packages/platform/libraries/index.ts | 166 | export function getClientSecretFromPayment(payment: { data: Record<string, unknown> }): string | null { | CODE |
| LOW | packages/platform/libraries/index.ts | 184 | export async function createNewUsersConnectToOrgIfExists(_args: { | CODE |
| LOW | …s/platform/examples/base/src/pages/api/managed-user.ts | 15 | async function createUserWithDefaultSchedule(email: string, name: string, avatarUrl: string) { | CODE |
| LOW | …s/platform/examples/base/src/pages/api/managed-user.ts | 175 | async function createOrgTeamMembershipMember(orgId: number, teamId: number, userId: number) { | CODE |
| LOW | …s/platform/examples/base/src/pages/api/managed-user.ts | 221 | async function createCollectiveEventType(orgId: number, teamId: number, userIds: number[]) { | CODE |
| LOW | …s/platform/examples/base/src/pages/api/managed-user.ts | 246 | async function createRoundRobinEventType(orgId: number, teamId: number, userIds: number[]) { | CODE |
| LOW | …tures/settings/appDir/SettingsHeaderWithBackButton.tsx | 17 | export default function SettingsHeaderWithBackButton(props: SettingsHeaderWithBackButtonProps) { | CODE |
| LOW | …slation/di/EventTypeTranslationRepository.container.ts | 10 | export function getEventTypeTranslationRepository(): EventTypeTranslationRepository { | CODE |
| LOW | …ures/calendars/lib/getConnectedDestinationCalendars.ts | 69 | async function handleNoConnectedCalendars(user: UserWithCalendars) { | CODE |
| LOW | …ures/calendars/lib/getConnectedDestinationCalendars.ts | 88 | async function handleNoDestinationCalendar({ | CODE |
| LOW | …ures/calendars/lib/getConnectedDestinationCalendars.ts | 153 | async function handleDestinationCalendarNotInConnectedCalendars({ | CODE |
| LOW | …ures/calendars/lib/getConnectedDestinationCalendars.ts | 213 | async function ensureSelectedCalendarIsInDb({ | CODE |
| 437 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | agents/rules/culture-leverage-ai.md | 39 | // AI-generated test case | COMMENT |
| HIGH⚡ | agents/rules/culture-leverage-ai.md | 43 | // AI-generated test case | COMMENT |
| HIGH⚡ | agents/rules/culture-leverage-ai.md | 47 | // AI-generated test case | COMMENT |
| HIGH⚡ | agents/rules/culture-leverage-ai.md | 51 | // AI-generated test case | COMMENT |
| HIGH⚡ | agents/rules/culture-leverage-ai.md | 55 | // AI-generated test case | COMMENT |
| HIGH⚡ | agents/rules/culture-leverage-ai.md | 59 | // AI-generated test case | COMMENT |
| HIGH⚡ | agents/rules/culture-leverage-ai.md | 64 | // AI-generated edge case | COMMENT |
| HIGH | apps/api/v2/src/main.ts | 114 | // Preserved as requested: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …sync/__tests__/CalendarSyncService.integration.test.ts | 125 | // ─── Helper function tests (pure, no mocks needed) ─────────────────────────── | COMMENT |
| MEDIUM | …sync/__tests__/CalendarSyncService.integration.test.ts | 426 | // ─── Change detection ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …sync/__tests__/CalendarSyncService.integration.test.ts | 529 | // ─── iCalUID parsing edge cases ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | …sync/__tests__/CalendarSyncService.integration.test.ts | 608 | // ─── Zero/negative duration edge cases ──────────────────────────────────────── | COMMENT |
| MEDIUM | …sync/__tests__/CalendarSyncService.integration.test.ts | 658 | // ─── End-to-end data flow: event fields → createBooking ─────────────────────── | COMMENT |
| MEDIUM | …sync/__tests__/CalendarSyncService.integration.test.ts | 845 | // ─── Service-level integration tests ────────────────────────────────────────── | COMMENT |
| MEDIUM | …unified-calendars/services/unified-calendar.service.ts | 51 | // ─── Strategy: validate calendar type ────────────────────────────────── | COMMENT |
| MEDIUM | …unified-calendars/services/unified-calendar.service.ts | 69 | // ─── Connections ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …unified-calendars/services/unified-calendar.service.ts | 93 | // ─── User-scoped calendar operations ─────────────────────────────────── | COMMENT |
| MEDIUM | …unified-calendars/services/unified-calendar.service.ts | 129 | // ─── Connection-scoped operations ────────────────────────────────────── | COMMENT |
| MEDIUM | …-unified-calendars/services/google-calendar.service.ts | 213 | // ─── Shared private helpers (DRY calendar CRUD) ────────────────────── | COMMENT |
| MEDIUM | …-unified-calendars/services/google-calendar.service.ts | 369 | // ─── Public user-scoped methods ────────────────────────────────────── | COMMENT |
| MEDIUM | …-unified-calendars/services/google-calendar.service.ts | 405 | // ─── Public connection-scoped methods ───────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | example-apps/credential-sync/next-env.d.ts | 1 | /// <reference types="next" /> | COMMENT |
| LOW | scripts/wait-for-it.sh | 1 | #!/bin/sh | COMMENT |
| LOW | packages/trpc/index.ts | 1 | // React exports have been moved to @calcom/trpc/react | COMMENT |
| LOW | …atures/bookings/lib/service/RecurringBookingService.ts | 81 | // .flatMap((book) => (book.appsStatus !== undefined ? book.appsStatus : [])) | COMMENT |
| LOW | …eatures/bookings/Booker/utils/getPrefetchMonthCount.ts | 21 | // Column view always needs 2 months because it displays multiple weeks side-by-side, | COMMENT |
| LOW | packages/features/schedules/lib/slots.ts | 41 | // so that maximum possible slots are shown. | COMMENT |
| LOW | …pes/repositories/__tests__/EventTypeRepository.test.ts | 201 | // - describe("findById", () => { ... }) | COMMENT |
| LOW | packages/features/webhooks/lib/WebhookService.test.ts | 61 | const service = await WebhookService.init(mockOptions); | COMMENT |
| LOW | packages/features/webhooks/lib/WebhookService.test.ts | 81 | // appId: "appId2", | COMMENT |
| LOW | packages/features/webhooks/lib/WebhookService.test.ts | 101 | // | COMMENT |
| LOW | packages/features/webhooks/lib/WebhookService.test.ts | 121 | // appId: "appId", | COMMENT |
| LOW | packages/features/webhooks/lib/WebhookService.test.ts | 141 | // data: "test" | COMMENT |
| LOW | packages/features/tasker/repository.ts | 201 | // TODO: Uncomment this later | COMMENT |
| LOW | packages/prisma/run-enum-generator.js | 1 | #!/usr/bin/env node | COMMENT |
| LOW | packages/lib/sdk-event.ts | 1 | // We can't use sdkActionManager without embed because sdkActionManager needs embed namespace to be able to inform the c | COMMENT |
| LOW | packages/lib/deriveAppDictKeyFromType.ts | 41 | // if (appType.match(matcher)) { | COMMENT |
| LOW | packages/embeds/embed-core/src/embed.test.ts | 681 | }) | COMMENT |
| LOW | .github/workflows/nextjs-bundle-analysis-annotation.yml | 21 | uses: dawidd6/action-download-artifact@v6 | COMMENT |
| LOW | apps/web/pagesAndRewritePaths.ts | 61 | // It would also not match /free/30min/embed because we are ensuring just two slashes | COMMENT |
| LOW | apps/web/playwright/overlay-calendar.e2e.ts | 1 | export {}; | COMMENT |
| LOW | apps/web/playwright/overlay-calendar.e2e.ts | 21 | // await test.step("Log in and return to booking page", async () => { | COMMENT |
| LOW | apps/web/pages/_error.tsx | 81 | // threw or returned a Promise that rejected | COMMENT |
| LOW | apps/docs/next-env.d.ts | 1 | /// <reference types="next" /> | COMMENT |
| LOW | …ent-types_2024_04_15/inputs/update-event-type.input.ts | 321 | // @IsOptional() | COMMENT |
| LOW | …ent-types_2024_04_15/inputs/update-event-type.input.ts | 361 | // periodStartDate?: Date; | COMMENT |
| LOW | …ent-types_2024_04_15/inputs/update-event-type.input.ts | 381 | // requiresConfirmation?: boolean; | COMMENT |
| LOW | …ent-types_2024_04_15/inputs/update-event-type.input.ts | 441 | // @IsOptional() | COMMENT |
| LOW | …ent-types_2024_04_15/inputs/update-event-type.input.ts | 461 | @Min(0) | COMMENT |
| LOW | …ent-types_2024_04_15/inputs/update-event-type.input.ts | 481 | // @IsBoolean() | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | AGENTS.md | 200 | // Step 1: In packages/platform/libraries/index.ts, add the export | COMMENT |
| LOW | AGENTS.md | 203 | // Step 2: In apps/api/v2, import from platform-libraries | COMMENT |
| LOW | CLAUDE.md | 200 | // Step 1: In packages/platform/libraries/index.ts, add the export | COMMENT |
| LOW | CLAUDE.md | 203 | // Step 2: In apps/api/v2, import from platform-libraries | COMMENT |
| LOW | scripts/seed.ts | 276 | // Step 1: Create organization (team) with just metadata and organizationSettings | COMMENT |
| LOW | scripts/seed.ts | 295 | // Step 2: Create org profiles in batches to avoid large transactions | COMMENT |
| LOW | scripts/seed.ts | 318 | // Step 3: Create memberships using createMany for better performance | COMMENT |
| LOW | scripts/seed.ts | 332 | // Step 4: Fetch created profiles to rebuild orgMembersInDBWithProfileId | COMMENT |
| LOW | packages/platform/atoms/STRIPE.md | 11 | ### Step 1: Create Stripe Account and Get API Keys | COMMENT |
| LOW | packages/platform/atoms/STRIPE.md | 31 | ### Step 2: Install and Configure Stripe CLI | COMMENT |
| LOW | packages/platform/atoms/STRIPE.md | 47 | ### Step 3: Configure Environment Variables | COMMENT |
| LOW | packages/platform/atoms/STRIPE.md | 116 | ### Step 4: Local Development Workaround | COMMENT |
| LOW | packages/platform/atoms/STRIPE.md | 122 | ### Step 5: Testing the Integration | COMMENT |
| LOW | …ings/2024-08-13/controllers/e2e/add-guests.e2e-spec.ts | 286 | // Step 1: Organizer adds guest user as a guest | COMMENT |
| LOW | …ings/2024-08-13/controllers/e2e/add-guests.e2e-spec.ts | 302 | // Step 2: Now the guest can add their own guests | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/seed.ts | 276 | // Step 1: Create organization (team) with just metadata and organizationSettings | COMMENT |
| LOW | scripts/seed.ts | 295 | // Step 2: Create org profiles in batches to avoid large transactions | COMMENT |
| LOW | scripts/seed.ts | 318 | // Step 3: Create memberships using createMany for better performance | COMMENT |
| LOW | scripts/seed.ts | 332 | // Step 4: Fetch created profiles to rebuild orgMembersInDBWithProfileId | COMMENT |
| LOW | …ges/features/bookings/lib/getBookingResponsesSchema.ts | 258 | // Either the field is required or there is a radio selected, we need to check if the optionInput is required or | COMMENT |
| LOW | …ings/2024-08-13/controllers/e2e/add-guests.e2e-spec.ts | 286 | // Step 1: Organizer adds guest user as a guest | COMMENT |
| LOW | …ings/2024-08-13/controllers/e2e/add-guests.e2e-spec.ts | 302 | // Step 2: Now the guest can add their own guests | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/platform/atoms/hooks/useSlots.ts | 111 | // TODO: implement slot no longer available feature | COMMENT |
| LOW | …pes/repositories/__tests__/EventTypeRepository.test.ts | 199 | // TODO: Add tests for other EventTypeRepository methods as they are added | COMMENT |
| LOW | packages/features/credentials/deleteCredential.test.ts | 125 | // TODO: Add test for payment apps | COMMENT |
| LOW | packages/features/credentials/deleteCredential.test.ts | 126 | // TODO: Add test for event type apps | COMMENT |
| LOW | apps/web/modules/settings/my-account/profile-view.tsx | 90 | // TODO: Add error codes. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | apps/web/test/jest-resolver.js | 2 | // Call the defaultResolver, so we leverage its cache, error handling, etc. | COMMENT |
| MEDIUM | apps/web/lib/app-providers.tsx | 230 | ? // Same Namespace, Same Organizer but different themes would still work seamless and not cause theme flicker | CODE |
| MEDIUM | apps/web/lib/getThemeProviderProps.ts | 128 | ? // Same Namespace, Same Organizer but different themes would still work seamless and not cause theme flicker | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | agents/skills/calcom-api/SKILL.md | 44 | Authorization: Bearer cal_<your_api_key> | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/draft-release.yml | 88 | # Create the TypeScript content | COMMENT |