ab21c7f805
* 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>
454 lines
13 KiB
JSON
454 lines
13 KiB
JSON
{
|
|
"$schema": "https://biomejs.dev/schemas/2.3.10/schema.json",
|
|
"root": true,
|
|
"assist": {
|
|
"actions": {
|
|
"source": {
|
|
"organizeImports": {
|
|
"level": "on",
|
|
"options": {
|
|
"groups": [
|
|
["**/__mocks__/**", "**/bookingScenario*"],
|
|
[":PACKAGE_WITH_PROTOCOL:", ":PACKAGE:"],
|
|
["@calcom/**", "@ee/**"],
|
|
["@lib/**", "@components/**", "@server/**", "@trpc/**"],
|
|
"~/**",
|
|
":PATH:"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"enabled": true
|
|
},
|
|
"css": {
|
|
"parser": {
|
|
"tailwindDirectives": true
|
|
}
|
|
},
|
|
"formatter": {
|
|
"includes": [
|
|
"**/*",
|
|
"!packages/ui/components/icon/dynamicIconImports.tsx"
|
|
],
|
|
"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"
|
|
],
|
|
"maxSize": 2097152
|
|
},
|
|
"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": ["**/*.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",
|
|
"useSortedClasses": {
|
|
"level": "warn",
|
|
"options": {
|
|
"attributes": ["className", "classList"],
|
|
"functions": ["clsx", "cva", "cn", "tw"]
|
|
}
|
|
}
|
|
},
|
|
"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": {
|
|
"level": "warn",
|
|
"options": {
|
|
"maxLines": 100,
|
|
"skipBlankLines": true
|
|
}
|
|
}
|
|
},
|
|
"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": ["packages/embeds/embed-core/**/*.{ts,tsx,js,jsx}"],
|
|
"linter": {
|
|
"rules": {
|
|
"style": {
|
|
"useNodejsImportProtocol": "off",
|
|
"noProcessEnv": "off"
|
|
},
|
|
"correctness": {
|
|
"noProcessGlobal": "off"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"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/main.ts",
|
|
"apps/api/v2/src/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", "**/*.spec.ts", "**/*.e2e-spec.ts", "**/*.integration-test.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/lib/**/*repository*.{ts,tsx,js,jsx}",
|
|
"packages/lib/**/*Repository*.{ts,tsx,js,jsx}",
|
|
"packages/lib/**/repository/**/*.{ts,tsx,js,jsx}",
|
|
"packages/lib/**/repositories/**/*.{ts,tsx,js,jsx}"
|
|
],
|
|
"linter": {
|
|
"rules": {
|
|
"style": {
|
|
"useFilenamingConvention": {
|
|
"level": "error",
|
|
"options": {
|
|
"match": "REPOSITORY-FILES-NOT-ALLOWED-IN-PACKAGES-LIB[.](.+)",
|
|
"filenameCases": ["camelCase"]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"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": {
|
|
"correctness": {
|
|
"noProcessGlobal": "off"
|
|
},
|
|
"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."
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"includes": ["apps/api/v2/**/*.{ts,tsx,js,jsx,mts,mjs,cjs,cts}"],
|
|
"linter": {
|
|
"rules": {
|
|
"style": {
|
|
"noRestrictedImports": {
|
|
"level": "error",
|
|
"options": {
|
|
"patterns": [
|
|
{
|
|
"group": [
|
|
"@calcom/*",
|
|
"@calcom/**",
|
|
"!@calcom/platform-constants",
|
|
"!@calcom/platform-constants/**",
|
|
"!@calcom/platform-enums",
|
|
"!@calcom/platform-enums/**",
|
|
"!@calcom/platform-libraries",
|
|
"!@calcom/platform-libraries/**",
|
|
"!@calcom/platform-types",
|
|
"!@calcom/platform-types/**",
|
|
"!@calcom/platform-utils",
|
|
"!@calcom/platform-utils/**",
|
|
"!@calcom/prisma",
|
|
"!@calcom/prisma/**"
|
|
],
|
|
"message": "API v2 should only import from @calcom/platform-constants, @calcom/platform-enums, @calcom/platform-libraries, @calcom/platform-types, @calcom/platform-utils, and @calcom/prisma. Other @calcom packages are not allowed."
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|