* Move TeamBillingRepositories * WIP refactor team internal billing service * Remove duplicate billing repository files * Remove logic check in repository for billing is enabled * Rename repository to `TeamBillingData` * Use repository factory in main service * Fix new import paths * Rename to * Ensure `IS_TEAM_BILLING_ENABLED` is of type boolean * Rename classes to TeamBillingService and TeamBillingServiceFactory * Implement DI in `BookingServiceFactory` * `TeamBillingService` use repository in `getOrgIfNeeded` * DI `isTeamBillingEnabled` to `TeamBillingServiceFactory` * Rename files for consistency * Return stub BillingRepository if billing is not enabled * Move Stripe billing service to service folder * Rename file * `StripeBillingService.getSubscriptionStatus` return `SubscriptionStatus` * Type fices in StripeBillingService * Type fix in `stubTeamBillingService` * DI the `BillingProviderService` into the `TeamBillingService` * Implement DI in `skipTeamTrials.handler` * Implement DI for team billing in `inviteMember.handler` * `skipTeamTrials.handler` use `team.isOrganization` * Implement DI for billing in `hasActiveTeamPlan.handler` * Type fixes * Implement DI in `bulkDeleteUsers.handler` * Implement `BillingProviderServiceFactory` in `updateProfile.handler` * Implment `BillingProviderServiceFactory` in `buyCredits.handler` * Fix import in `stripeCustomer.handler` * Add a constructor to `teamBillingServiceFactory` * Add DI to `PrismaTeamBillingRepository` * Add DI to `StripeBillingService` * Implement singleton in `BillingProviderServiceFactory` * Add DI folder and contents to billing folder * Use `getTeamBillingServiceFactory` in `inviteMember.handler` * Add `saveTeamBilling` method to `ITeamBillingService` * Implement DI in new team route * Implement DI in `teamService` * Implement DI in `OrganizationPaymentService` * Implement DI in `credit-service` * In `StripeBillingService` remove `static` from status methods * Implemnt DI in `_invoice.paid.org` * Refactor `hasActiveTeamPlan` to use `getTeamBillingFactory` * Refactor `skipTeamTrials` to use `getTeamBillingFactory` * Refactor `skipTeamTrials` to use `getTeamBillingServiceFactory` * `stripeCustomer.handler` to use `getBillingProviderService` * Remove old factories * Type fix * Remove unused factory * Refactor `updateProfile.handler` to use `getBillingProviderService` * Change name to `TeamBillingDataRepositoryFactory` * Type Prisma return in `prisma.module` * Type fix * Refactor `buyCredits.handler` to use `getBillingProviderService` * Refactor `credit-service` to use billing DI containers * Type fix * Add `getTeamBillingDataRepository` * Refactor `_invoice.paid.org` to use DI container * Refactor `_customer.subscription.deleted.team-plan` to use DI container * Refactor `calcomHandler` to use DI container * Refactor `getCustomerAndCheckoutSession` to use DI container * Refactor `verify-email` to use DI containers * Refactor `api/create/route` to use DI container * Refactor downgradeUsers to use DI container * Type fix * Clean up console.logs * Add await to `this.billingRepository.create` in `saveTeamBilling` Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> * Fix type errors * Address comments * fix: update tests to work with new DI pattern - Update teamBillingService.test.ts to properly inject DI dependencies - Remove unused billingModule import and mock - Fix import naming in teamService.integration-test.ts (remove unused rename) - Fix import path for TeamBillingPublishResponseStatus All tests now properly mock IBillingProviderService, ITeamBillingDataRepository, and IBillingRepository instead of using the old BillingRepositoryFactory pattern. Co-Authored-By: joe@cal.com <j.auyeung419@gmail.com> * fix: add compatibility layer and env setup for unit tests - Add STRIPE_PRIVATE_KEY dummy value to vitest.config.ts to prevent DI module errors - Fix import paths in credit-service.test.ts (StripeBillingService, TeamBillingService) - Create compatibility barrel at packages/features/ee/billing/teams/index.ts for test mocking Co-Authored-By: joe@cal.com <j.auyeung419@gmail.com> * fix: update unit tests to mock DI container properly - Update teamService.test.ts to mock getTeamBillingServiceFactory() instead of TeamBilling.findAndInit - Update teamService.alternative.test.ts to mock DI container - Update credit-service.test.ts to mock getBillingProviderService() and use SubscriptionStatus enum values - Update OrganizationPaymentService.test.ts to mock DI container instead of direct StripeBillingService import - Remove all 'as any' type casting to comply with Cal.com coding standards - Fix unused variable warnings by prefixing with underscore All 53 tests now passing (16 + 1 + 30 + 6) Co-Authored-By: joe@cal.com <j.auyeung419@gmail.com> * fix: update remaining unit tests to use DI pattern - Fix StripeBillingService.test.ts to inject mock Stripe client directly - Fix teamBillingFactory.test.ts to mock getTeamBillingServiceFactory() from DI container - Fix skipTeamTrials.test.ts to mock DI container and use SubscriptionStatus enum All 11 previously failing tests now pass (5 + 5 + 1) Co-Authored-By: joe@cal.com <j.auyeung419@gmail.com> * Undo changes made to Prisma module * fix: address test-related PR comments - Fix OrganizationPaymentService.test.ts mock path from @calcom/ee to @calcom/features/ee - Refactor teamBillingFactory.test.ts to test real factory logic instead of mocking container - Remove duplicate teamBillingService.test..ts file with incorrect double-dot filename All three test files now pass successfully with proper DI patterns. Co-Authored-By: joe@cal.com <j.auyeung419@gmail.com> * Address feedback * fix: update teamService integration test to mock new DI factory pattern Co-Authored-By: joe@cal.com <j.auyeung419@gmail.com> * refactor: remove duplicate imports in credit-service.test.ts Co-Authored-By: joe@cal.com <j.auyeung419@gmail.com> * Remove unused index file * `getBySubscriptionId` to return team or null * Address feedback * Merge fix * Refactor file names * fix: correct mockStripe variable name to stripeMock in StripeBillingService.test.ts Co-Authored-By: joe@cal.com <j.auyeung419@gmail.com> * refactor: update internal-team-billing.test.ts to use new DI structure with TeamBillingService - Replace InternalTeamBilling with TeamBillingService - Use constructor injection with mock dependencies instead of factory pattern - Remove BillingRepositoryFactory mock and import - Update all test cases to use mockBillingProviderService, mockTeamBillingDataRepository, and mockBillingRepository - Simplify saveTeamBilling tests to focus on repository.create calls - All 11 tests now pass with the new DI structure Co-Authored-By: joe@cal.com <j.auyeung419@gmail.com> * fix: update createWithPaymentIntent.handler.test.ts to mock DI container's getBillingProviderService - OrganizationPaymentService now uses getBillingProviderService() from DI container - Test was mocking @calcom/features/ee/payments/server/stripe directly, which no longer works - Added mock for @calcom/features/ee/billing/di/containers/Billing module - Mock returns fake billing provider that delegates to mockSharedStripe - Preserves all existing test assertions and helpers - Fixed lint error by prefixing unused lastCreatedSessionId with underscore - All 11 tests now pass (1 skipped as expected) Co-Authored-By: joe@cal.com <j.auyeung419@gmail.com> --------- Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com>
545 lines
16 KiB
JSON
545 lines
16 KiB
JSON
{
|
|
"$schema": "https://turborepo.org/schema.json",
|
|
"globalDependencies": ["yarn.lock"],
|
|
"globalEnv": [
|
|
"ALLOWED_HOSTNAMES",
|
|
"ANALYZE",
|
|
"API_KEY_PREFIX",
|
|
"ATOMS_E2E_API_URL",
|
|
"ATOMS_E2E_OAUTH_CLIENT_ID",
|
|
"ATOMS_E2E_OAUTH_CLIENT_ID_BOOKER_EMBED",
|
|
"ATOMS_E2E_OAUTH_CLIENT_SECRET",
|
|
"ATOMS_E2E_ORG_ID",
|
|
"BASECAMP3_CLIENT_ID",
|
|
"BASECAMP3_CLIENT_SECRET",
|
|
"BASECAMP3_USER_AGENT",
|
|
"BLACKLISTED_GUEST_EMAILS",
|
|
"AUTH_BEARER_TOKEN_VERCEL",
|
|
"BUILD_ID",
|
|
"CAL_AI_CALL_RATE_PER_MINUTE",
|
|
"CAL_SIGNATURE_TOKEN",
|
|
"CALCOM_PRIVATE_API_ROUTE",
|
|
"CALCOM_APP_CREDENTIAL_ENCRYPTION_KEY",
|
|
"CALCOM_CREDENTIAL_SYNC_ENDPOINT",
|
|
"CALCOM_CREDENTIAL_SYNC_SECRET",
|
|
"CALCOM_ENV",
|
|
"CALCOM_LICENSE_KEY",
|
|
"CALCOM_QA_EMAIL",
|
|
"CALCOM_QA_PASSWORD",
|
|
"CALCOM_TELEMETRY_DISABLED",
|
|
"CALCOM_CREDENTIAL_SYNC_HEADER_NAME",
|
|
"CALENDSO_ENCRYPTION_KEY",
|
|
"CALCOM_CREDENTIAL_SYNC_SECRET",
|
|
"CI",
|
|
"CLOSECOM_CLIENT_ID",
|
|
"CLOSECOM_CLIENT_SECRET",
|
|
"CRON_API_KEY",
|
|
"CRON_SECRET",
|
|
"CRON_ENABLE_APP_SYNC",
|
|
"CLOUDFLARE_TURNSTILE_SECRET",
|
|
"DAILY_API_KEY",
|
|
"DAILY_SCALE_PLAN",
|
|
"DAILY_WEBHOOK_SECRET",
|
|
"DAILY_MEETING_ENDED_WEBHOOK_SECRET",
|
|
"DAILY_VIDEO_REGION",
|
|
"DATABASE_CHUNK_SIZE",
|
|
"DATABASE_DIRECT_URL",
|
|
"DATABASE_URL",
|
|
"DEBUG",
|
|
"DUB_API_KEY",
|
|
"NEXT_PUBLIC_DUB_PROGRAM_ID",
|
|
"NEXT_PUBLIC_VERCEL_USE_BOTID_IN_BOOKER",
|
|
"E2E_TEST_APPLE_CALENDAR_EMAIL",
|
|
"E2E_TEST_APPLE_CALENDAR_PASSWORD",
|
|
"E2E_TEST_CALCOM_QA_EMAIL",
|
|
"E2E_TEST_CALCOM_QA_PASSWORD",
|
|
"E2E_TEST_CALCOM_QA_GCAL_CREDENTIALS",
|
|
"E2E_TEST_CALCOM_GCAL_KEYS",
|
|
"E2E_TEST_MAILHOG_ENABLED",
|
|
"E2E_TEST_OIDC_CLIENT_ID",
|
|
"E2E_TEST_OIDC_CLIENT_SECRET",
|
|
"E2E_TEST_OIDC_PROVIDER_DOMAIN",
|
|
"E2E_TEST_OIDC_USER_EMAIL",
|
|
"E2E_TEST_OIDC_USER_PASSWORD",
|
|
"E2E_TEST_SAML_ADMIN_EMAIL",
|
|
"E2E_TEST_SAML_ADMIN_PASSWORD",
|
|
"EMAIL_FROM",
|
|
"EMAIL_FROM_NAME",
|
|
"EMAIL_SERVER_HOST",
|
|
"EMAIL_SERVER_PASSWORD",
|
|
"EMAIL_SERVER_PORT",
|
|
"EMAIL_SERVER_USER",
|
|
"EMAIL_SERVER",
|
|
"EXCHANGE_DEFAULT_EWS_URL",
|
|
"FORMBRICKS_FEEDBACK_SURVEY_ID",
|
|
"AVATARAPI_USERNAME",
|
|
"AVATARAPI_PASSWORD",
|
|
"GIPHY_API_KEY",
|
|
"GOOGLE_API_CREDENTIALS",
|
|
"GOOGLE_LOGIN_ENABLED",
|
|
"GOOGLE_WEBHOOK_TOKEN",
|
|
"GOOGLE_WEBHOOK_URL",
|
|
"HEROKU_APP_NAME",
|
|
"HUBSPOT_CLIENT_ID",
|
|
"HUBSPOT_CLIENT_SECRET",
|
|
"IFFY_API_KEY",
|
|
"INTEGRATION_TEST_MODE",
|
|
"INTEGRATION_TESTS",
|
|
"INTERCOM_SECRET",
|
|
"INTERCOM_SECRET",
|
|
"INSIGHTS_DATABASE_URL",
|
|
"IP_BANLIST",
|
|
"LARK_OPEN_APP_ID",
|
|
"LARK_OPEN_APP_SECRET",
|
|
"LARK_OPEN_VERIFICATION_TOKEN",
|
|
"MOCK_PAYMENT_APP_ENABLED",
|
|
"MS_GRAPH_CLIENT_ID",
|
|
"MS_GRAPH_CLIENT_SECRET",
|
|
"NEXT_PUBLIC_APP_NAME",
|
|
"NEXT_PUBLIC_CALCOM_VERSION",
|
|
"NEXT_PUBLIC_COMPANY_NAME",
|
|
"NEXT_PUBLIC_CONSOLE_URL",
|
|
"NEXT_PUBLIC_LOGGER_LEVEL",
|
|
"NEXT_PUBLIC_DISABLE_SIGNUP",
|
|
"NEXT_PUBLIC_EMBED_LIB_URL",
|
|
"NEXT_PUBLIC_FORMBRICKS_HOST_URL",
|
|
"NEXT_PUBLIC_FORMBRICKS_ENVIRONMENT_ID",
|
|
"NEXT_PUBLIC_HOSTED_CAL_FEATURES",
|
|
"NEXT_PUBLIC_IS_E2E",
|
|
"IS_E2E",
|
|
"NEXT_PUBLIC_MINUTES_TO_BOOK",
|
|
"NEXT_PUBLIC_ORG_SELF_SERVE_ENABLED",
|
|
"NEXT_PUBLIC_SENDER_ID",
|
|
"NEXT_PUBLIC_SENDGRID_SENDER_NAME",
|
|
"NEXT_PUBLIC_SENTRY_DSN",
|
|
"NEXT_PUBLIC_SENTRY_DSN_CLIENT",
|
|
"NEXT_PUBLIC_STRIPE_PUBLIC_KEY",
|
|
"NEXT_PUBLIC_STRIPE_PREMIUM_PLAN_PRICE_MONTHLY",
|
|
"NEXT_PUBLIC_STRIPE_PRICING_TABLE_PUBLISHABLE_KEY",
|
|
"NEXT_PUBLIC_STRIPE_CREDITS_PRICE_ID",
|
|
"ORG_MONTHLY_CREDITS",
|
|
"NEXT_PUBLIC_PLAIN_CHAT_EXCLUDED_PATHS",
|
|
"NEXT_PUBLIC_BOOKER_NUMBER_OF_DAYS_TO_LOAD",
|
|
"NEXT_PUBLIC_SUPPORT_MAIL_ADDRESS",
|
|
"NEXT_PUBLIC_TEAM_IMPERSONATION",
|
|
"NEXT_PUBLIC_VERCEL_URL",
|
|
"NEXT_PUBLIC_CAL_AI_PHONE_NUMBER_MONTHLY_PRICE",
|
|
"NEXT_PUBLIC_CLOUDFLARE_SITEKEY",
|
|
"NEXT_PUBLIC_CLOUDFLARE_USE_TURNSTILE_IN_BOOKER",
|
|
"NEXT_PUBLIC_VERCEL_ENV",
|
|
"NEXT_PUBLIC_VERCEL_BRANCH_URL",
|
|
"NEXT_PUBLIC_GTM_ID",
|
|
"NEXT_PUBLIC_ORGANIZATIONS_MIN_SELF_SERVE_SEATS",
|
|
"NEXT_PUBLIC_ORGANIZATIONS_SELF_SERVE_PRICE_NEW",
|
|
"NEXT_PUBLIC_WEBSITE_PRIVACY_POLICY_URL",
|
|
"NEXT_PUBLIC_WEBSITE_TERMS_URL",
|
|
"NEXT_PUBLIC_AVAILABILITY_SCHEDULE_INTERVAL",
|
|
"NEXT_RUNTIME",
|
|
"NEXTAUTH_COOKIE_DOMAIN",
|
|
"NEXTAUTH_SECRET",
|
|
"NEXTAUTH_URL",
|
|
"NODE_ENV",
|
|
"ORGANIZATIONS_ENABLED",
|
|
"ORGANIZATIONS_AUTOLINK",
|
|
"PAYMENT_FEE_FIXED",
|
|
"PAYMENT_FEE_PERCENTAGE",
|
|
"PLAYWRIGHT_HEADLESS",
|
|
"PLAYWRIGHT_TEST_BASE_URL",
|
|
"PRISMA_FIELD_ENCRYPTION_KEY",
|
|
"PRISMA_GENERATE_DATAPROXY",
|
|
"PROJECT_ID_VERCEL",
|
|
"QUICK",
|
|
"RAILWAY_STATIC_URL",
|
|
"RENDER_EXTERNAL_URL",
|
|
"RESERVED_SUBDOMAINS",
|
|
"RETELL_AI_KEY",
|
|
"RETELL_AI_TEST_MODE",
|
|
"RETELL_AI_TEST_EVENT_TYPE_MAP",
|
|
"RETELL_AI_TEST_CAL_API_KEY",
|
|
"SALESFORCE_CONSUMER_KEY",
|
|
"SALESFORCE_CONSUMER_SECRET",
|
|
"SALESFORCE_GRAPHQL_DELAY_MS",
|
|
"SALESFORCE_GRAPHQL_MAX_DELAY_MS",
|
|
"SALESFORCE_GRAPHQL_MAX_RETRIES",
|
|
"SAML_ADMINS",
|
|
"SAML_CLIENT_SECRET_VERIFIER",
|
|
"SAML_DATABASE_URL",
|
|
"SEND_FEEDBACK_EMAIL",
|
|
"SENDGRID_API_KEY",
|
|
"SENDGRID_EMAIL",
|
|
"SENDGRID_SYNC_API_KEY",
|
|
"SENTRY_SAMPLE_RATE",
|
|
"SENTRY_TRACES_SAMPLE_RATE",
|
|
"SENTRY_DEBUG",
|
|
"SKIP_DB_MIGRATIONS",
|
|
"SLACK_CLIENT_ID",
|
|
"SLACK_CLIENT_SECRET",
|
|
"SLACK_SIGNING_SECRET",
|
|
"STRIPE_CLIENT_ID",
|
|
"STRIPE_PRIVATE_KEY",
|
|
"STRIPE_WEBHOOK_SECRET",
|
|
"STRIPE_WEBHOOK_SECRET_APPS",
|
|
"STRIPE_WEBHOOK_SECRET_BILLING",
|
|
"STRIPE_TEAM_MONTHLY_PRICE_ID",
|
|
"STRIPE_TEAM_PRODUCT_ID",
|
|
"STRIPE_ORG_MONTHLY_PRICE_ID",
|
|
"STRIPE_ORG_PRODUCT_ID",
|
|
"ORG_MONTHLY_CREDITS",
|
|
"TANDEM_BASE_URL",
|
|
"TANDEM_CLIENT_ID",
|
|
"TANDEM_CLIENT_SECRET",
|
|
"TASKER_ENABLE_WEBHOOKS",
|
|
"TEAM_ID_VERCEL",
|
|
"TELEMETRY_DEBUG",
|
|
"TWILIO_MESSAGING_SID",
|
|
"TWILIO_OPT_OUT_ENABLED",
|
|
"TWILIO_PHONE_NUMBER",
|
|
"TWILIO_WHATSAPP_PHONE_NUMBER",
|
|
"TWILIO_SID",
|
|
"TWILIO_TOKEN",
|
|
"TWILIO_VERIFY_SID",
|
|
"TWILIO_WHATSAPP_REMINDER_CONTENT_SID",
|
|
"TWILIO_WHATSAPP_CANCELLED_CONTENT_SID",
|
|
"TWILIO_WHATSAPP_RESCHEDULED_CONTENT_SID",
|
|
"TWILIO_WHATSAPP_COMPLETED_CONTENT_SID",
|
|
"UPSTASH_REDIS_REST_TOKEN",
|
|
"UPSTASH_REDIS_REST_URL",
|
|
"UNKEY_ROOT_KEY",
|
|
"USERNAME_BLACKLIST_URL",
|
|
"VERCEL_ENV",
|
|
"VERCEL_URL",
|
|
"VITAL_API_KEY",
|
|
"VITAL_DEVELOPMENT_MODE",
|
|
"VITAL_REGION",
|
|
"VITAL_WEBHOOK_SECRET",
|
|
"ZAPIER_INVITE_LINK",
|
|
"ZOHOCRM_CLIENT_ID",
|
|
"ZOHOCRM_CLIENT_SECRET",
|
|
"ZOOM_CLIENT_ID",
|
|
"ZOOM_CLIENT_SECRET",
|
|
"REVERT_API_KEY",
|
|
"REVERT_API_URL",
|
|
"REVERT_PUBLIC_TOKEN",
|
|
"RESEND_API_KEY",
|
|
"LOCAL_TESTING_DOMAIN_VERCEL",
|
|
"AUTH_BEARER_TOKEN_CLOUDFLARE",
|
|
"CLOUDFLARE_ZONE_ID",
|
|
"NEXT_PUBLIC_MINTLIFY_CHAT_API_KEY",
|
|
"NEXT_PUBLIC_CHAT_API_URL",
|
|
"NEXT_PUBLIC_DOCS_URL",
|
|
"CLOUDFLARE_VERCEL_CNAME",
|
|
"CLOUDFLARE_DNS",
|
|
"EMBED_PUBLIC_EMBED_FINGER_PRINT",
|
|
"EMBED_PUBLIC_EMBED_VERSION",
|
|
"EMBED_PUBLIC_WEBAPP_URL",
|
|
"EMBED_PUBLIC_VERCEL_URL",
|
|
"EMBED_PUBLIC_EMBED_LIB_URL",
|
|
"NEXT_PUBLIC_ENABLE_PROFILE_SWITCHER",
|
|
"NEXT_PUBLIC_QUERY_AVAILABLE_SLOTS_INTERVAL_SECONDS",
|
|
"NEXT_PUBLIC_QUERY_RESERVATION_INTERVAL_SECONDS",
|
|
"NEXT_PUBLIC_QUERY_RESERVATION_STALE_TIME_SECONDS",
|
|
"NEXT_PUBLIC_INVALIDATE_AVAILABLE_SLOTS_ON_BOOKING_FORM",
|
|
"NEXT_PUBLIC_QUICK_AVAILABILITY_ROLLOUT",
|
|
"NEXT_PUBLIC_HEAD_SCRIPTS",
|
|
"NEXT_PUBLIC_BODY_SCRIPTS",
|
|
"NEXT_PUBLIC_ORG_SELF_SERVE_ENABLED",
|
|
"NEXT_PUBLIC_API_V2_ROOT_URL",
|
|
"NEXT_PUBLIC_VAPID_PUBLIC_KEY",
|
|
"VAPID_PRIVATE_KEY",
|
|
"CAL_VIDEO_BUCKET_NAME",
|
|
"CAL_VIDEO_BUCKET_REGION",
|
|
"CAL_VIDEO_ASSUME_ROLE_ARN",
|
|
"CAL_VIDEO_MEETING_LINK_FOR_TESTING",
|
|
"NEXT_PUBLIC_POSTHOG_KEY",
|
|
"NEXT_PUBLIC_POSTHOG_HOST",
|
|
"VAPID_PRIVATE_KEY",
|
|
"HUDDLE01_API_TOKEN",
|
|
"LINGO_DOT_DEV_API_KEY",
|
|
"DIRECTORY_IDS_TO_LOG",
|
|
"NEXT_PUBLIC_SINGLE_ORG_SLUG",
|
|
"GOOGLE_REFRESH_TOKEN",
|
|
"GOOGLE_CLIENT_ID",
|
|
"GOOGLE_CLIENT_SECRET",
|
|
"ZOOM_REFRESH_TOKEN",
|
|
"CALCOM_ADMIN_API_KEY",
|
|
"NEXT_PUBLIC_SINGLE_ORG_MODE_ENABLED",
|
|
"CALCOM_SERVICE_ACCOUNT_ENCRYPTION_KEY",
|
|
"CAL_VIDEO_RECORDING_TOKEN_SECRET",
|
|
"ORGANIZER_EMAIL_EXEMPT_DOMAINS",
|
|
"SLOTS_CACHE_TTL",
|
|
"CSP_POLICY",
|
|
"NEXT_PUBLIC_API_V2_URL",
|
|
"NEXT_PUBLIC_WEBAPP_URL",
|
|
"NEXT_PUBLIC_WEBSITE_URL",
|
|
"BUILD_STANDALONE",
|
|
"ATOMS_E2E_APPLE_ID",
|
|
"ATOMS_E2E_APPLE_CONNECT_APP_SPECIFIC_PASSCODE",
|
|
"INTERCOM_API_TOKEN",
|
|
"NEXT_PUBLIC_INTERCOM_APP_ID",
|
|
"MICROSOFT_WEBHOOK_TOKEN",
|
|
"MICROSOFT_WEBHOOK_URL",
|
|
"_CAL_INTERNAL_PAST_BOOKING_RESCHEDULE_CHANGE_TEAM_IDS",
|
|
"ENTERPRISE_SLUGS",
|
|
"PLATFORM_ENTERPRISE_SLUGS",
|
|
"USE_POOL"
|
|
],
|
|
"tasks": {
|
|
"@calcom/web#copy-app-store-static": {
|
|
"inputs": ["../../packages/app-store/**/static/**/*"],
|
|
"outputLogs": "new-only",
|
|
"outputs": ["public/app-store/**"]
|
|
},
|
|
"@calcom/prisma#build": {
|
|
"cache": false,
|
|
"dependsOn": ["post-install"]
|
|
},
|
|
"@calcom/prisma#db-migrate": {
|
|
"cache": false,
|
|
"dependsOn": ["@calcom/prisma#db-up"],
|
|
"inputs": ["./schema.prisma", "./migrations/**/*.sql"]
|
|
},
|
|
"@calcom/prisma#db-seed": {
|
|
"cache": false,
|
|
"dependsOn": ["@calcom/prisma#db-deploy"]
|
|
},
|
|
"@calcom/prisma#db-up": {
|
|
"cache": false
|
|
},
|
|
"@calcom/prisma#dx": {
|
|
"cache": false,
|
|
"dependsOn": ["@calcom/prisma#db-up"]
|
|
},
|
|
"@calcom/trpc#build": {
|
|
"outputs": ["./types"]
|
|
},
|
|
"@calcom/web#build": {
|
|
"dependsOn": ["^build"],
|
|
"outputs": [".next/**"],
|
|
"env": [
|
|
"NEXT_PUBLIC_AVAILABILITY_SCHEDULE_INTERVAL",
|
|
"NEXT_PUBLIC_BOOKER_NUMBER_OF_DAYS_TO_LOAD",
|
|
"NEXT_PUBLIC_CAL_AI_PHONE_NUMBER_MONTHLY_PRICE",
|
|
"NEXT_PUBLIC_IS_E2E",
|
|
"NEXT_PUBLIC_SENTRY_DSN",
|
|
"NEXT_PUBLIC_SENTRY_DSN_CLIENT",
|
|
"NEXT_PUBLIC_STRIPE_PREMIUM_PLAN_PRICE_MONTHLY",
|
|
"NEXT_PUBLIC_STRIPE_PREMIUM_PLAN_PRODUCT_ID",
|
|
"NEXT_PUBLIC_STRIPE_PUBLIC_KEY",
|
|
"NEXT_PUBLIC_STRIPE_TEAM_MONTHLY_PRICE_ID",
|
|
"STRIPE_PHONE_NUMBER_MONTHLY_PRICE_ID",
|
|
"NEXT_PUBLIC_WEBAPP_URL",
|
|
"NEXT_PUBLIC_WEBSITE_URL",
|
|
"SENTRY_AUTH_TOKEN",
|
|
"SENTRY_DEBUG",
|
|
"SENTRY_MAX_SPANS",
|
|
"SENTRY_ORG",
|
|
"SENTRY_PROJECT",
|
|
"SENTRY_SAMPLE_RATE",
|
|
"SENTRY_TRACES_SAMPLE_RATE",
|
|
"SENTRY_REPLAYS_SESSION_SAMPLE_RATE",
|
|
"SENTRY_REPLAYS_ON_ERROR_SAMPLE_RATE",
|
|
"STRIPE_PREMIUM_PLAN_PRODUCT_ID",
|
|
"STRIPE_TEAM_MONTHLY_PRICE_ID",
|
|
"NEXT_PUBLIC_STRIPE_CREDITS_PRICE_ID",
|
|
"STRIPE_TEAM_PRODUCT_ID",
|
|
"ORG_MONTHLY_CREDITS",
|
|
"STRIPE_ORG_MONTHLY_PRICE_ID",
|
|
"STRIPE_ORG_PRODUCT_ID",
|
|
"NEXT_PUBLIC_API_V2_URL",
|
|
"NEXT_PUBLIC_VAPID_PUBLIC_KEY",
|
|
"NEXT_PUBLIC_SENTRY_DSN_CLIENT",
|
|
"BUILD_STANDALONE",
|
|
"NEXT_PUBLIC_API_HITPAY_PRODUCTION",
|
|
"NEXT_PUBLIC_API_HITPAY_SANDBOX"
|
|
]
|
|
},
|
|
"@calcom/web#dx": {
|
|
"cache": false,
|
|
"dependsOn": ["@calcom/prisma#dx"]
|
|
},
|
|
"@calcom/web#start": {
|
|
"cache": false,
|
|
"dependsOn": []
|
|
},
|
|
"@calcom/atoms#build": {
|
|
"outputs": ["dist/**", "globals.min.css"]
|
|
},
|
|
"@calcom/api-v2#build": {
|
|
"dependsOn": ["^build"],
|
|
"env": [
|
|
"NODE_ENV",
|
|
"API_PORT",
|
|
"DATABASE_READ_URL",
|
|
"DATABASE_WRITE_URL",
|
|
"LOG_LEVEL",
|
|
"NEXTAUTH_SECRET",
|
|
"USE_POOL"
|
|
]
|
|
},
|
|
"@calcom/ai#build": {
|
|
"env": [
|
|
"FRONTEND_URL",
|
|
"BACKEND_URL",
|
|
"APP_ID",
|
|
"APP_URL",
|
|
"SENDER_DOMAIN",
|
|
"PARSE_KEY",
|
|
"NODE_ENV",
|
|
"OPENAI_API_KEY",
|
|
"SENDGRID_API_KEY",
|
|
"DATABASE_URL"
|
|
]
|
|
},
|
|
"@calcom/website#build": {
|
|
"dependsOn": ["^build"],
|
|
"outputs": [".next/**"],
|
|
"env": [
|
|
"CSP_POLICY",
|
|
"DATABASE_URL",
|
|
"DATOCMS_API_TOKEN",
|
|
"DATOCMS_GRAPHQL_ENDPOINT",
|
|
"DATOCMS_WEBHOOK_SECRET",
|
|
"DATOCMS_PREVIEW_SECRET",
|
|
"ENVIRONMENT_URL",
|
|
"NEXT_PUBLIC_AVAILABILITY_SCHEDULE_INTERVAL",
|
|
"NEXT_PUBLIC_IS_PREMIUM_NEW_PLAN",
|
|
"NEXT_PUBLIC_STRIPE_FREE_PLAN_PRICE",
|
|
"NEXT_PUBLIC_STRIPE_PREMIUM_NEW_PLAN_PRICE",
|
|
"NEXT_PUBLIC_STRIPE_PREMIUM_PLAN_PRICE",
|
|
"NEXT_PUBLIC_STRIPE_PRO_PLAN_PRICE",
|
|
"NEXT_PUBLIC_STRIPE_PUBLIC_KEY",
|
|
"NEXT_PUBLIC_WEBAPP_URL",
|
|
"NEXT_PUBLIC_WEBSITE_URL",
|
|
"NEXT_PUBLIC_VERCEL_ENV",
|
|
"NEXT_PUBLIC_VERCEL_BRANCH_URL",
|
|
"NEXT_PUBLIC_POSTHOG_KEY",
|
|
"NEXT_PUBLIC_POSTHOG_HOST",
|
|
"SENDGRID_VERIFICATION_KEY",
|
|
"STRIPE_FREE_PLAN_PRODUCT_ID",
|
|
"STRIPE_PREMIUM_PLAN_PRODUCT_ID",
|
|
"STRIPE_PRO_PLAN_PRODUCT_ID",
|
|
"STRIPE_SUPPORT_TABLE",
|
|
"MOTIFLAND_REST_ENDPOINT",
|
|
"MOTIFLAND_DOCS_API_KEY",
|
|
"MOTIFLAND_DOCS_PROJECT_ID"
|
|
]
|
|
},
|
|
"build": {
|
|
"dependsOn": ["^build"],
|
|
"outputs": ["dist/**", ".next/**"]
|
|
},
|
|
"db-deploy": {
|
|
"cache": false,
|
|
"inputs": ["./migrations/**/*.sql", "./prisma/migrations/**/*.sql"]
|
|
},
|
|
"db-seed": {},
|
|
"deploy": {
|
|
"cache": false,
|
|
"dependsOn": ["@calcom/web#build"]
|
|
},
|
|
"clean": {
|
|
"cache": false,
|
|
"outputs": ["dist/**", "build/**"]
|
|
},
|
|
"dev": {
|
|
"dependsOn": ["//#env-check:common", "//#env-check:app-store"],
|
|
"cache": false
|
|
},
|
|
"dx": {
|
|
"dependsOn": ["//#env-check:common", "//#env-check:app-store"],
|
|
"cache": false
|
|
},
|
|
"lint": {
|
|
"dependsOn": ["^lint"]
|
|
},
|
|
"lint:fix": {
|
|
"cache": false
|
|
},
|
|
"lint:report": {
|
|
"outputs": ["lint-results"]
|
|
},
|
|
"post-install": {
|
|
"dependsOn": [],
|
|
"outputs": ["../../node_modules/@prisma/client/**", "../../node_modules/@prisma/admin-client/**"],
|
|
"inputs": ["./schema.prisma", "./prisma/schema.prisma"],
|
|
"env": ["PRISMA_GENERATE_DATAPROXY"]
|
|
},
|
|
"@calcom/prisma#post-install": {
|
|
"cache": false,
|
|
"outputs": ["dist/**", "build/**"]
|
|
},
|
|
"start": {
|
|
"outputs": ["dist/**", "build/**"]
|
|
},
|
|
"embed-tests": {
|
|
"cache": false,
|
|
"outputs": ["dist/**", "build/**"]
|
|
},
|
|
"embed-tests-quick": {
|
|
"cache": false,
|
|
"outputs": ["dist/**", "build/**"]
|
|
},
|
|
"type-check": {
|
|
"cache": false,
|
|
"dependsOn": ["@calcom/trpc#build"]
|
|
},
|
|
"type-check:ci": {
|
|
"cache": false,
|
|
"dependsOn": ["@calcom/trpc#build"]
|
|
},
|
|
"@calcom/prisma#db-reset": {
|
|
"cache": false,
|
|
"outputs": ["dist/**", "build/**"]
|
|
},
|
|
"@calcom/app-store-cli#build": {
|
|
"inputs": [
|
|
"../../packages/app-store/**/package.json",
|
|
"../../packages/app-store/**/config.json",
|
|
"../../packages/app-store/**/api/**",
|
|
"../../packages/app-store/**/components/**",
|
|
"../../packages/app-store/**/lib/**",
|
|
"../../packages/app-store/**/pages/**",
|
|
"../../packages/app-store-cli/src/**"
|
|
],
|
|
"outputs": ["../../packages/app-store/*.generated.ts", "../../packages/app-store/*.generated.tsx"]
|
|
},
|
|
"@calcom/embed-react#type-check": {
|
|
"dependsOn": ["@calcom/embed-core#build", "@calcom/embed-snippet#build"],
|
|
"outputs": ["dist/**", "build/**"]
|
|
},
|
|
"@calcom/embed-core#build": {
|
|
"cache": false,
|
|
"outputs": ["../../../apps/web/public/embed/**"],
|
|
"env": [
|
|
"EMBED_PUBLIC_VERCEL_URL",
|
|
"EMBED_PUBLIC_WEBAPP_URL",
|
|
"EMBED_PUBLIC_EMBED_FINGER_PRINT",
|
|
"EMBED_PUBLIC_EMBED_VERSION"
|
|
]
|
|
},
|
|
"embed-tests-update-snapshots:ci": {
|
|
"cache": false,
|
|
"dependsOn": [
|
|
"@calcom/prisma#db-seed",
|
|
"@calcom/web#build",
|
|
"^build",
|
|
"^embed-tests-update-snapshots:ci"
|
|
],
|
|
"outputs": ["dist/**", "build/**"]
|
|
},
|
|
"//#env-check:common": {
|
|
"cache": false,
|
|
"inputs": ["./.env.example", "./.env"],
|
|
"outputs": ["./.env"]
|
|
},
|
|
"//#env-check:app-store": {
|
|
"cache": false,
|
|
"inputs": ["./.env.appStore.example", "./.env.appStore"],
|
|
"outputs": ["./.env.appStore"]
|
|
},
|
|
"//#test": {
|
|
"cache": false
|
|
}
|
|
}
|
|
}
|