Files
calendar/biome.json
T
Benny JooGitHubDevin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
fc0a2b5a37 refactor: Remove trpc/server dependency from @calcom/atoms (#26717)
* mv useTeamMembersWithSegment

* remove

* fix ts error

* remove

* remove

* remove

* biome rule

* wip

* refactor: remove remaining @calcom/trpc/server imports from atoms

- Create local types for schedule handlers (CreateScheduleHandlerReturn, DuplicateScheduleHandlerReturn, GetAvailabilityListHandlerReturn, CreateScheduleInput)
- Create local GetAvailableSlotsResponse type for slots hook
- Update imports in useAtomCreateSchedule, useAtomDuplicateSchedule, useAtomGetAllSchedules, and useAvailableSlots

Co-Authored-By: benny@cal.com <sldisek783@gmail.com>

* fix

* fix: add userId to Schedule type and create ScheduleForList type

- Schedule type now includes userId for create/duplicate handlers
- Created ScheduleForList type for list handler (uses select without userId)

Co-Authored-By: benny@cal.com <sldisek783@gmail.com>

* fix

* fix

* fix

* fix

* fix: correct fromUser/toUser types in GetAvailableSlotsResponse

- fromUser: { id, displayName } (matches IFromUser)
- toUser: { id, username, displayName } (matches IToUser)

Co-Authored-By: benny@cal.com <sldisek783@gmail.com>

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-01-12 07:06:22 -03:00

361 lines
10 KiB
JSON

{
"$schema": "https://biomejs.dev/schemas/2.3.10/schema.json",
"root": true,
"css": {
"parser": {
"tailwindDirectives": true
}
},
"formatter": {
"includes": [
"**/*",
"!packages/ui/components/icon/dynamicIconImports.tsx",
"!apps/api/v1/tests",
"!apps/api/v1/templates"
],
"lineWidth": 110,
"indentStyle": "space",
"indentWidth": 2,
"lineEnding": "lf"
},
"files": {
"includes": [
"**/*",
"!!**/node_modules",
"!!**/.next",
"!!**/.turbo",
"!!**/dist",
"!!**/build",
"!!**/public",
"!!**/*.d.ts",
"!!public",
"!!apps/web/public/embed",
"!!packages/prisma/zod",
"!!packages/prisma/enums",
"!!*.lock",
"!!*.log",
"!!.gitignore",
"!!.npmignore",
"!!.prettierignore",
"!!.eslintignore",
"!!.DS_Store",
"!!coverage",
"!!lint-results",
"!!test-results",
"!!packages/lib/raqb/resolveQueryValue.test.ts",
"!!packages/ui/components/editor/plugins/ToolbarPlugin.tsx",
"!!packages/embeds/embed-core/src/lib/domUtils.ts"
]
},
"javascript": {
"parser": {
"unsafeParameterDecoratorsEnabled": true
},
"formatter": {
"arrowParentheses": "always",
"bracketSpacing": true,
"bracketSameLine": true,
"quoteStyle": "double",
"jsxQuoteStyle": "double",
"semicolons": "always",
"trailingCommas": "es5"
}
},
"linter": {
"enabled": true,
"domains": {
"next": "recommended",
"react": "recommended"
},
"rules": {
"recommended": true,
"a11y": "off"
}
},
"overrides": [
{
"includes": ["docs/api-reference/v2/openapi.json"],
"linter": { "enabled": false },
"formatter": { "enabled": false }
},
{
"includes": ["**/*.tsx"],
"javascript": {
"jsxRuntime": "transparent"
}
},
{
"includes": ["apps/web/app/**/page.tsx", "apps/web/app/**/layout.tsx", "apps/web/app/pages/**/*.tsx"],
"linter": {
"rules": {
"style": {
"noDefaultExport": "off"
}
}
}
},
{
"includes": ["**/*"],
"linter": {
"rules": {
"nursery": {
"useQwikValidLexicalScope": "off",
"useExplicitType": "info",
"noReactForwardRef": "warn",
"noTernary": "info",
"noUnresolvedImports": "warn"
},
"correctness": {
"useImportExtensions": "warn",
"noProcessGlobal": "warn",
"useExhaustiveDependencies": "warn",
"noUnknownProperty": "warn",
"noUnreachable": "warn",
"noEmptyPattern": "warn",
"noSwitchDeclarations": "warn",
"useHookAtTopLevel": "warn",
"useJsxKeyInIterable": "warn",
"noUnsafeOptionalChaining": "warn"
},
"style": {
"useExportsLast": "warn",
"noProcessEnv": "warn",
"useNodejsImportProtocol": "error",
"noNestedTernary": "warn"
},
"complexity": {
"noExcessiveLinesPerFunction": "warn"
},
"performance": {
"noImgElement": "warn"
},
"suspicious": {
"noDoubleEquals": "warn",
"noAssignInExpressions": "warn",
"noExplicitAny": "warn",
"useIterableCallbackReturn": "warn",
"noImplicitAnyLet": "warn",
"noRedeclare": "warn",
"noControlCharactersInRegex": "warn",
"noArrayIndexKey": "warn",
"noShadowRestrictedNames": "warn",
"noAsyncPromiseExecutor": "warn"
},
"security": {
"noBlankTarget": "warn",
"noDangerouslySetInnerHtml": "warn"
}
}
}
},
{
"includes": ["apps/api/v2/**/*.ts", "apps/api/v2/**/*.controller.ts"],
"linter": {
"rules": {
"style": {
"useImportType": "off"
},
"correctness": {
"noProcessGlobal": "off"
}
}
}
},
{
"includes": [
"apps/api/v2/src/config/app.ts",
"apps/api/v2/src/config/bootstrap.ts",
"apps/api/v2/src/config/env.ts",
"apps/api/v2/src/env.ts",
"apps/api/v2/test/setEnvVars.ts"
],
"linter": {
"rules": {
"style": {
"noProcessEnv": "off"
}
}
}
},
{
"includes": ["**/*.test.ts", "**/*.test.tsx", "**/*.e2e-spec.ts"],
"linter": {
"rules": {
"complexity": {
"useArrowFunction": "off",
"noExcessiveLinesPerFunction": "off"
}
}
}
},
{
"includes": ["packages/lib/**/*.{ts,tsx,js,jsx,mts,mjs,cjs,cts}"],
"linter": {
"rules": {
"style": {
"noRestrictedImports": {
"level": "error",
"options": {
"patterns": [
{
"group": ["../app-store/**"],
"message": "lib package should not import from app-store to avoid circular dependencies."
},
{
"group": ["../features/**"],
"message": "lib package should not import from features to avoid circular dependencies."
},
{
"group": ["../trpc/**"],
"message": "lib package should not import from trpc to avoid circular dependencies."
},
{
"group": ["@trpc/server"],
"message": "lib package should not import from @trpc/server to avoid circular dependencies."
}
]
}
}
}
}
}
},
{
"includes": ["packages/app-store/**/*.{ts,tsx,js,jsx,mts,mjs,cjs,cts}"],
"linter": {
"rules": {
"style": {
"noRestrictedImports": {
"level": "error",
"options": {
"patterns": [
{
"group": ["../features/**"],
"message": "app-store package should not import from features to avoid circular dependencies."
},
{
"group": ["../trpc/**"],
"message": "app-store package should not import from trpc to avoid circular dependencies."
}
]
}
}
}
}
}
},
{
"includes": ["packages/features/**/*.{ts,tsx,js,jsx,mts,mjs,cjs,cts}"],
"linter": {
"rules": {
"style": {
"noRestrictedImports": {
"level": "error",
"options": {
"patterns": [
{
"group": ["../trpc/**"],
"message": "features package should not import from trpc to avoid circular dependencies."
},
{
"group": ["@calcom/web", "@calcom/web/**"],
"message": "features package should not import from @calcom/web to avoid circular dependencies."
},
{
"group": ["../../apps/web/**"],
"message": "features package should not import from apps/web to avoid circular dependencies."
}
]
}
}
}
}
}
},
{
"includes": ["packages/trpc/**/*.{ts,tsx,js,jsx,mts,mjs,cjs,cts}"],
"linter": {
"rules": {
"style": {
"noRestrictedImports": {
"level": "error",
"options": {
"patterns": [
{
"group": ["../apps/web/**"],
"message": "trpc package should not import from apps/web to avoid circular dependencies."
}
]
}
}
}
}
}
},
{
"includes": ["packages/testing/**/*.{ts,tsx,js,jsx,mts,mjs,cjs,cts}"],
"linter": {
"rules": {
"style": {
"noRestrictedImports": {
"level": "error",
"options": {
"patterns": [
{
"group": ["@calcom/web", "@calcom/web/**"],
"message": "testing package should not import from @calcom/web to avoid circular dependencies."
},
{
"group": ["@calcom/features", "@calcom/features/**"],
"message": "testing package should not import from @calcom/features to avoid circular dependencies."
},
{
"group": ["../../apps/web/**"],
"message": "testing package should not import from apps/web to avoid circular dependencies."
},
{
"group": ["../features/**"],
"message": "testing package should not import from features to avoid circular dependencies."
}
]
}
}
}
}
}
},
{
"includes": [
"packages/platform/atoms/**/*.{ts,tsx,js,jsx,mts,mjs,cjs,cts}"
],
"linter": {
"rules": {
"style": {
"noRestrictedImports": {
"level": "error",
"options": {
"patterns": [
{
"group": [
"@calcom/trpc",
"@calcom/trpc/**"
],
"message": "atoms package should not import from @calcom/trpc."
},
{
"group": [
"../../trpc",
"../../trpc/**"
],
"message": "atoms package should not import from trpc."
}
]
}
}
}
}
}
}
]
}