diff --git a/.env.example b/.env.example index 5baff90ab3e3aa..6ad997a0a4465c 100644 --- a/.env.example +++ b/.env.example @@ -88,7 +88,7 @@ CRON_ENABLE_APP_SYNC=false # Application Key for symmetric encryption and decryption # must be 32 bytes for AES256 encryption algorithm # You can use: `openssl rand -base64 24` to generate a 32-character key -CALENDSO_ENCRYPTION_KEY= +CALENDSO_ENCRYPTION_KEY=bXPH98dqpX94veuDtWQ5gZt3SfwaIrOV # Intercom Config NEXT_PUBLIC_INTERCOM_APP_ID= diff --git a/apps/web/modules/videos/views/videos-single-view.tsx b/apps/web/modules/videos/views/videos-single-view.tsx index 5197393359c25c..2cbd8881da1202 100644 --- a/apps/web/modules/videos/views/videos-single-view.tsx +++ b/apps/web/modules/videos/views/videos-single-view.tsx @@ -56,10 +56,16 @@ export default function JoinCall(props: PageProps) { const hideLoginModal = !!userNameForCall && (requireEmailForGuests ? !!loggedInUserName && isLoggedInUserPartOfMeeting : true); const [isCallFrameReady, setIsCallFrameReady] = useState(false); - + const [videoFailed, setVideoFailed] = useState(false); const activeMeetingPassword = guestCredentials?.meetingPassword ?? meetingPassword; const activeMeetingUrl = guestCredentials?.meetingUrl ?? meetingUrl; const activeUserName = guestCredentials?.userName ?? userNameForCall; + + + + + + const createCallFrame = useCallback( (userName?: string, password?: string, url?: string) => { @@ -132,7 +138,9 @@ export default function JoinCall(props: PageProps) { return; } - let callFrame: DailyCall | null = null; + let callFrame: DailyCall | null = null; + let timeout: ReturnType | null = null; + try { callFrame = createCallFrame(activeUserName, activeMeetingPassword, activeMeetingUrl) ?? null; @@ -140,11 +148,30 @@ export default function JoinCall(props: PageProps) { setIsCallFrameReady(true); callFrame?.join(); + + callFrame?.on("joined-meeting" , () => { + if(timeout) clearTimeout(timeout); + }); + + callFrame?.on("error", () => { + try{ callFrame?.destroy(); } catch(e) {} + setVideoFailed(true); + }); + + timeout = setTimeout(() => { + setVideoFailed(true); + } , 8000) + } catch (error) { console.error("Failed to create or join call:", error); } + return () => { + if (timeout) { + clearTimeout(timeout); + } + if (callFrame) { try { callFrame.destroy(); @@ -164,6 +191,21 @@ export default function JoinCall(props: PageProps) { guestCredentials, ]); + if (videoFailed) { + return ( +
+
+

Video failed to load

+

+ This may happen due to Firefox tracking protection. +

+

+ Try disabling tracking protection or using another browser. +

+
+
+ ); +} return ( {isCallFrameReady && ( diff --git a/packages/prisma/.env b/packages/prisma/.env index c7360fb82d2046..5baff90ab3e3aa 120000 --- a/packages/prisma/.env +++ b/packages/prisma/.env @@ -1 +1,532 @@ -../../.env \ No newline at end of file +# ********** INDEX ********** +# +# - LICENSE (DEPRECATED) +# - DATABASE +# - SHARED +# - NEXTAUTH +# - E-MAIL SETTINGS +# - ORGANIZATIONS + +# - LICENSE (DEPRECATED) ************************************************************************************ +# https://github.com/calcom/cal.com/blob/main/LICENSE +# +# Summary of terms: +# - The codebase has to stay open source, whether it was modified or not +# - You can not repackage or sell the codebase +# - Acquire a commercial license to remove these terms by visiting: cal.com/sales +# + +# To enable enterprise-only features please add your environment variable to the .env file then make your way to /auth/setup to select your license and follow instructions. + +CALCOM_LICENSE_KEY= +# Signature token for the Cal.com License API (used for self-hosted integrations) +# We will give you a token when we provide you with a license key this ensure you and only you can communicate with the Cal.com License API for your license key +CAL_SIGNATURE_TOKEN= +# The route to the Cal.com License API +CALCOM_PRIVATE_API_ROUTE="https://goblin.cal.com" +# *********************************************************************************************************** + +# - DATABASE ************************************************************************************************ +DATABASE_URL="postgresql://postgres:@localhost:5450/calendso" +# Needed to run migrations while using a connection pooler like PgBouncer +# Use the same one as DATABASE_URL if you're not using a connection pooler +DATABASE_DIRECT_URL="postgresql://postgres:@localhost:5450/calendso" +INSIGHTS_DATABASE_URL= + +# *********************************************************************************************************** + +# - SHARED ************************************************************************************************** +# Set this to http://app.cal.local:3000 if you want to enable organizations, and +# check variable ORGANIZATIONS_ENABLED at the bottom of this file +NEXT_PUBLIC_WEBAPP_URL='http://localhost:3000' +# Change to 'http://localhost:3001' if running the website simultaneously +NEXT_PUBLIC_WEBSITE_URL='http://localhost:3000' +NEXT_PUBLIC_EMBED_LIB_URL='http://localhost:3000/embed/embed.js' + +# To enable SAML login, set both these variables +# @see https://github.com/calcom/cal.com/tree/main/packages/features/ee#setting-up-saml-login +# SAML_DATABASE_URL="postgresql://postgres:@localhost:5450/cal-saml" +SAML_DATABASE_URL= +# SAML_ADMINS='pro@example.com' +SAML_ADMINS= +# NEXT_PUBLIC_HOSTED_CAL_FEATURES=1 +NEXT_PUBLIC_HOSTED_CAL_FEATURES= +# For additional security set to a random secret and use that value as the client_secret during the OAuth 2.0 flow. +SAML_CLIENT_SECRET_VERIFIER= + +# If you use Heroku to deploy Postgres (or use self-signed certs for Postgres) then uncomment the follow line. +# @see https://devcenter.heroku.com/articles/connecting-heroku-postgres#connecting-in-node-js +# PGSSLMODE='no-verify' +PGSSLMODE= + +# Define which hostnames are expected for the app to work on +ALLOWED_HOSTNAMES='"cal.com","cal.dev","cal-staging.com","cal.community","cal.local:3000","localhost:3000"' +# Reserved orgs subdomains for our own usage +RESERVED_SUBDOMAINS='"app","auth","docs","design","console","go","status","api","saml","www","matrix","developer","cal","my","team","support","security","blog","learn","admin"' + +# - NEXTAUTH +# @see: https://github.com/calendso/calendso/issues/263 +# @see: https://next-auth.js.org/configuration/options#nextauth_url +# Required for Vercel hosting - set NEXTAUTH_URL to equal your NEXT_PUBLIC_WEBAPP_URL +NEXTAUTH_URL='http://localhost:3000' +# @see: https://next-auth.js.org/configuration/options#nextauth_secret +# You can use: `openssl rand -base64 32` to generate one +NEXTAUTH_SECRET= +# Used for cross-domain cookie authentication +NEXTAUTH_COOKIE_DOMAIN= + +# Set this to '1' if you don't want Cal to collect anonymous usage +CALCOM_TELEMETRY_DISABLED= + +# ApiKey for cronjobs +CRON_API_KEY='0cc0e6c35519bba620c9360cfe3e68d0' + +# Whether to automatically keep app metadata in the database in sync with the metadata/config files. When disabled, the +# sync runs in a reporting-only dry-run mode. +CRON_ENABLE_APP_SYNC=false + +# Application Key for symmetric encryption and decryption +# must be 32 bytes for AES256 encryption algorithm +# You can use: `openssl rand -base64 24` to generate a 32-character key +CALENDSO_ENCRYPTION_KEY= + +# Intercom Config +NEXT_PUBLIC_INTERCOM_APP_ID= + +# Secret to enable Intercom Identity Verification +INTERCOM_SECRET= + +# Intercom api token for free users +INTERCOM_API_TOKEN= + +# Posthog Config +NEXT_PUBLIC_POSTHOG_KEY= + +NEXT_PUBLIC_POSTHOG_HOST= + + + +# Dub Config +DUB_API_KEY= +NEXT_PUBLIC_DUB_PROGRAM_ID= +# Optional: Domain for SMS workflow shortened links +DUB_SMS_DOMAIN= +# Optional: Folder ID to organize SMS workflow shortened links in Dub +DUB_SMS_FOLDER_ID= + +# Sink URL Shortener Config +SINK_API_URL= +# API key for Sink authentication +SINK_API_KEY= + +# Zendesk Config +NEXT_PUBLIC_ZENDESK_KEY= + +# Help Scout Config +NEXT_PUBLIC_HELPSCOUT_KEY= + +# Fresh Chat Config +NEXT_PUBLIC_FRESHCHAT_TOKEN= +NEXT_PUBLIC_FRESHCHAT_HOST= + +# Microsoft OAuth credentials +OUTLOOK_LOGIN_ENABLED=false + + +# For holiday feature: +# Step-by-step: Get a Google Calendar API Key +# 1. Go to Google Cloud Console: https://console.cloud.google.com/ +# 2. Select or Create a Project +# 3. Enable Google Calendar API (APIs & Services → Library , Search for Google Calendar API) +# 4. Create the API Key (APIs & Services → Credentials) +GOOGLE_CALENDAR_API_KEY= +# Google OAuth credentials +# To enable Login with Google you need to: +# 1. Set `GOOGLE_API_CREDENTIALS` below +# 2. Set `GOOGLE_LOGIN_ENABLED` to `true` +# When self-hosting please ensure you configure the Google integration as an Internal app so no one else can login to your instance +# @see https://support.google.com/cloud/answer/6158849#public-and-internal&zippy=%2Cpublic-and-internal-applications +GOOGLE_LOGIN_ENABLED=false + +# - GOOGLE CALENDAR/MEET/LOGIN +# Needed to enable Google Calendar integration and Login with Google +# @see https://github.com/calcom/cal.com#obtaining-the-google-api-credentials +GOOGLE_API_CREDENTIALS= +# Token to verify incoming webhooks from Google Calendar +GOOGLE_WEBHOOK_TOKEN= +# Optional URL to override for tunelling webhooks. Defaults to NEXT_PUBLIC_WEBAPP_URL. +GOOGLE_WEBHOOK_URL= + +# Token to verify incoming webhooks from Microsoft Calendar +MICROSOFT_WEBHOOK_TOKEN= + +# Optional URL to override for tunelling webhooks. Defaults to NEXT_PUBLIC_WEBAPP_URL. +MICROSOFT_WEBHOOK_URL= + +# Inbox to send user feedback +SEND_FEEDBACK_EMAIL= + +# Sendgrid +# Used for email reminders in workflows and internal sync services +SENDGRID_API_KEY= +SENDGRID_EMAIL= +NEXT_PUBLIC_SENDGRID_SENDER_NAME= + +# Sentry +SENTRY_ORG= +SENTRY_PROJECT= +SENTRY_AUTH_TOKEN= +# Used for capturing exceptions and logging messages +NEXT_PUBLIC_SENTRY_DSN= +NEXT_PUBLIC_SENTRY_DSN_CLIENT= +SENTRY_DEBUG= +SENTRY_MAX_SPANS= +SENTRY_SAMPLE_RATE= +SENTRY_TRACES_SAMPLE_RATE= +SENTRY_REPLAYS_SESSION_SAMPLE_RATE= +SENTRY_REPLAYS_ON_ERROR_SAMPLE_RATE= + +# Formbricks Experience Management Integration +NEXT_PUBLIC_FORMBRICKS_HOST_URL=https://app.formbricks.com +NEXT_PUBLIC_FORMBRICKS_ENVIRONMENT_ID= +FORMBRICKS_FEEDBACK_SURVEY_ID= + +# AvatarAPI +# Used to pre-fill avatar during signup +AVATARAPI_USERNAME= +AVATARAPI_PASSWORD= + +# Twilio +# Used to send SMS reminders in workflows +TWILIO_SID= +TWILIO_TOKEN= +TWILIO_MESSAGING_SID= +TWILIO_PHONE_NUMBER= +TWILIO_WHATSAPP_PHONE_NUMBER= +TWILIO_WHATSAPP_REMINDER_CONTENT_SID= +TWILIO_WHATSAPP_CANCELLED_CONTENT_SID= +TWILIO_WHATSAPP_RESCHEDULED_CONTENT_SID= +TWILIO_WHATSAPP_COMPLETED_CONTENT_SID= +# For NEXT_PUBLIC_SENDER_ID only letters, numbers and spaces are allowed (max. 11 characters) +NEXT_PUBLIC_SENDER_ID= +TWILIO_VERIFY_SID= +TWILIO_OPT_OUT_ENABLED= + +# Set it to "1" if you need to run E2E tests locally. +NEXT_PUBLIC_IS_E2E= + +# Used for internal billing system +NEXT_PUBLIC_STRIPE_PRO_PLAN_PRICE= +NEXT_PUBLIC_STRIPE_PREMIUM_PLAN_PRICE= +NEXT_PUBLIC_IS_PREMIUM_NEW_PLAN=0 +NEXT_PUBLIC_STRIPE_PREMIUM_NEW_PLAN_PRICE= +STRIPE_TEAM_MONTHLY_PRICE_ID= +STRIPE_TEAM_ANNUAL_PRICE_ID= +NEXT_PUBLIC_STRIPE_CREDITS_PRICE_ID= +ORG_MONTHLY_CREDITS= +STRIPE_TEAM_PRODUCT_ID= +# It is a price ID in the product with id STRIPE_ORG_PRODUCT_ID +STRIPE_ORG_MONTHLY_PRICE_ID= +STRIPE_ORG_ANNUAL_PRICE_ID= +STRIPE_ORG_PRODUCT_ID= +# Used to pass trial days for orgs during the Stripe checkout session +STRIPE_ORG_TRIAL_DAYS= + +STRIPE_WEBHOOK_SECRET= +STRIPE_WEBHOOK_SECRET_APPS= +STRIPE_PRIVATE_KEY= +STRIPE_CLIENT_ID= + +# Use for internal Public API Keys and optional +API_KEY_PREFIX=cal_ +# *********************************************************************************************************** + +# - E-MAIL SETTINGS ***************************************************************************************** +# Cal uses nodemailer (@see https://nodemailer.com/about/) to provide email sending. As such we are trying to +# allow access to the nodemailer transports from the .env file. E-mail templates are accessible within lib/emails/ +# Configures the global From: header whilst sending emails. +EMAIL_FROM='notifications@yourselfhostedcal.com' +EMAIL_FROM_NAME='Cal.com' + +# Configure SMTP settings (@see https://nodemailer.com/smtp/). +# Configuration to receive emails locally (mailhog) +EMAIL_SERVER_HOST='localhost' +EMAIL_SERVER_PORT=1025 + +# Note: The below configuration for Office 365 has been verified to work. +# EMAIL_SERVER_HOST='smtp.office365.com' +# EMAIL_SERVER_PORT=587 +# EMAIL_SERVER_USER='' +# Keep in mind that if you have 2FA enabled, you will need to provision an App Password. +# EMAIL_SERVER_PASSWORD='' + +# The following configuration for Gmail has been verified to work. +# EMAIL_SERVER_HOST='smtp.gmail.com' +# EMAIL_SERVER_PORT=465 +# EMAIL_SERVER_USER='' +## You will need to provision an App Password. +## @see https://support.google.com/accounts/answer/185833 +# EMAIL_SERVER_PASSWORD='' + +# queue or cancel payment reminder email/flow +AWAITING_PAYMENT_EMAIL_DELAY_MINUTES= + +# Used for E2E for email testing +# Set it to "1" if you need to email checks in E2E tests locally +# Make sure to run mailhog container manually or with `yarn dx` +E2E_TEST_MAILHOG_ENABLED= + +# Resend +# Send transactional email using resend +# RESEND_API_KEY= + +# ********************************************************************************************************** + +# Cloudflare Turnstile +NEXT_PUBLIC_CLOUDFLARE_SITEKEY= +NEXT_PUBLIC_CLOUDFLARE_USE_TURNSTILE_IN_BOOKER= +CLOUDFLARE_TURNSTILE_SECRET= + +# 0 = false, 1=true +NEXT_PUBLIC_VERCEL_USE_BOTID_IN_BOOKER= + +# Set the following value to true if you wish to enable Team Impersonation +NEXT_PUBLIC_TEAM_IMPERSONATION=false + +# Close.com internal CRM +CLOSECOM_CLIENT_ID= +CLOSECOM_CLIENT_SECRET= + +# Sendgrid internal sync service +SENDGRID_SYNC_API_KEY= + +# Change your Brand +NEXT_PUBLIC_APP_NAME="Cal.com" +NEXT_PUBLIC_SUPPORT_MAIL_ADDRESS="help@cal.com" +NEXT_PUBLIC_COMPANY_NAME="Cal.com, Inc." +# Set this to true in to disable new signups +# NEXT_PUBLIC_DISABLE_SIGNUP=true +NEXT_PUBLIC_DISABLE_SIGNUP= + +# Set this to 'non-strict' to enable CSP for support pages. 'strict' isn't supported yet. Also, check the README for details. +# Content Security Policy +CSP_POLICY= + +# Vercel Edge Config +EDGE_CONFIG= + +NEXT_PUBLIC_MINUTES_TO_BOOK=5 # Minutes +NEXT_PUBLIC_BOOKER_NUMBER_OF_DAYS_TO_LOAD=0 # Override the booker to only load X number of days worth of data + +# Control time intervals on a user's Schedule availability +NEXT_PUBLIC_AVAILABILITY_SCHEDULE_INTERVAL= + +# - ORGANIZATIONS ******************************************************************************************* +# Enable Organizations non-prod domain setup, works in combination with organizations feature flag +# This is mainly needed locally, because for orgs to work a full domain name needs to point +# to the app, i.e. app.cal.local instead of using localhost, which is very disruptive +# +# This variable should only be set to 1 or true if you are in a non-prod environment and you want to +# use organizations +ORGANIZATIONS_ENABLED= +NEXT_PUBLIC_ORGANIZATIONS_MIN_SELF_SERVE_SEATS=30 +NEXT_PUBLIC_ORGANIZATIONS_SELF_SERVE_PRICE_NEW=37 # $37.00 per seat + +# This variable should only be set to 1 or true if you want to autolink external provider sign-ups with +# existing organizations based on email domain address +ORGANIZATIONS_AUTOLINK= + +# Vercel Config to create subdomains for organizations +# Get it from https://vercel.com///settings +PROJECT_ID_VERCEL= +# Get it from: https://vercel.com/teams//settings +TEAM_ID_VERCEL= +# Get it from: https://vercel.com/account/tokens +AUTH_BEARER_TOKEN_VERCEL= +# Add the main domain that you want to use for testing vercel domain management for organizations. This is necessary because WEBAPP_URL of local isn't a valid public domain +# Would create org1.example.com for an org with slug org1 +# LOCAL_TESTING_DOMAIN_VERCEL="example.com" + +## Set it to 1 if you use cloudflare to manage your DNS and would like us to manage the DNS for you for organizations +# CLOUDFLARE_DNS=1 +## Get it from: https://dash.cloudflare.com/profile/api-tokens. Select Edit Zone template and choose a zone(your domain) +# AUTH_BEARER_TOKEN_CLOUDFLARE= +## Zone ID can be found in the Overview tab of your domain in Cloudflare +# CLOUDFLARE_ZONE_ID= +## It should usually work with the default value. This is the DNS CNAME record content to point to Vercel domain +# CLOUDFLARE_VERCEL_CNAME=cname.vercel-dns.com + +# - APPLE CALENDAR +# Used for E2E tests on Apple Calendar +E2E_TEST_APPLE_CALENDAR_EMAIL="" +E2E_TEST_APPLE_CALENDAR_PASSWORD="" + +# - CALCOM QA ACCOUNT +# Used for E2E tests on Cal.com that require 3rd party integrations +E2E_TEST_CALCOM_QA_EMAIL="qa@example.com" +# Replace with your own password +E2E_TEST_CALCOM_QA_PASSWORD="password" +E2E_TEST_CALCOM_QA_GCAL_CREDENTIALS= +E2E_TEST_CALCOM_GCAL_KEYS= + +# - APP CREDENTIAL SYNC *********************************************************************************** +# Used for self-hosters that are implementing Cal.com into their applications that already have certain integrations +# Under settings/admin/apps ensure that all app secrets are set the same as the parent application +# You can use: `openssl rand -base64 32` to generate one +CALCOM_CREDENTIAL_SYNC_SECRET="" +# This is the header name that will be used to verify the webhook secret. Should be in lowercase +CALCOM_CREDENTIAL_SYNC_HEADER_NAME="calcom-credential-sync-secret" +# This the endpoint from which the token is fetched +CALCOM_CREDENTIAL_SYNC_ENDPOINT="" +# Key should match on Cal.com and your application +# must be 24 bytes for AES256 encryption algorithm +# You can use: `openssl rand -base64 24` to generate one +CALCOM_APP_CREDENTIAL_ENCRYPTION_KEY="" + +# - OIDC E2E TEST ******************************************************************************************* + +# Ensure this ADMIN EMAIL is present in the SAML_ADMINS list +E2E_TEST_SAML_ADMIN_EMAIL= +E2E_TEST_SAML_ADMIN_PASSWORD= + +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= + +# *********************************************************************************************************** + +# api v2 +NEXT_PUBLIC_API_V2_URL="http://localhost:5555/api/v2" + +# Tasker features +TASKER_ENABLE_WEBHOOKS=0 +TASKER_ENABLE_EMAILS=0 + +# Ratelimiting via Unkey (https://unkey.com) +# Optional: Only required if you want to enable rate limiting +# Not needed for testing or self-hosting unless you specifically want rate limiting features +# Sign up at https://unkey.com to get your Root key +UNKEY_ROOT_KEY= + +# Used for Cal.ai Voice AI Agents +# https://retellai.com +RETELL_AI_KEY= +# Local testing overrides for Retell AI +RETELL_AI_TEST_MODE=false +# JSON mapping of local to production event type IDs (e.g. {"50": 747280} without any string) +RETELL_AI_TEST_EVENT_TYPE_MAP= +RETELL_AI_TEST_CAL_API_KEY= + +# Used for buying phone number for cal ai voice agent +STRIPE_PHONE_NUMBER_MONTHLY_PRICE_ID= + + +CAL_AI_CALL_RATE_PER_MINUTE=0.29 + + +STRIPE_WEBHOOK_SECRET_BILLING= + + +# Price for buying a phone number for cal.ai voice agent (Default is 5) +NEXT_PUBLIC_CAL_AI_PHONE_NUMBER_MONTHLY_PRICE= + +# Used for the huddle01 integration +HUDDLE01_API_TOKEN= + +# Used to disallow emails as being added as guests on bookings +BLACKLISTED_GUEST_EMAILS= + +# Used to allow browser push notifications +# You can use: 'npx web-push generate-vapid-keys' to generate these keys +NEXT_PUBLIC_VAPID_PUBLIC_KEY= +VAPID_PRIVATE_KEY= + +# Custom privacy policy/ terms URLs (for self-hosters: change to your privacy policy / terms URLs) +NEXT_PUBLIC_WEBSITE_PRIVACY_POLICY_URL= +NEXT_PUBLIC_WEBSITE_TERMS_URL= + +# NEXT_PUBLIC_LOGGER_LEVEL=3 sets to log info, warn, error and fatal logs. +# [0: silly & upwards, 1: trace & upwards, 2: debug & upwards, 3: info & upwards, 4: warn & upwards, 5: error & fatal, 6: fatal] +NEXT_PUBLIC_LOGGER_LEVEL= + +# For storing Daily Video recordings on S3 Bucket +CAL_VIDEO_BUCKET_NAME= +CAL_VIDEO_BUCKET_REGION= +CAL_VIDEO_ASSUME_ROLE_ARN= + +# For local testing of Daily Video +# Set this to the link of a working Daily Video meeting link +CAL_VIDEO_MEETING_LINK_FOR_TESTING= + +# Used to use lingo.dev SDK, a tool for real-time AI-powered localization +LINGO_DOT_DEV_API_KEY= + +# Comma-separated list of DSyncData.directoryId to log SCIM API requests for. It can be enabled temporarily for debugging the requests being sent to SCIM server. +DIRECTORY_IDS_TO_LOG= + + +# Set this when Cal.com is used to serve only one organization's booking pages +# Read more about it in the README.md +NEXT_PUBLIC_SINGLE_ORG_SLUG= + +IFFY_API_KEY= + +## Env variables related to avoiding booking failures +# Request for checking reservation would be attempted to send every these seconds if the request is stale at that time +NEXT_PUBLIC_QUERY_RESERVATION_INTERVAL_SECONDS= +# Request for checking reservation of same slot would be sent only after this time has passed. It must be lower than PUBLIC_QUERY_RESERVATION_INTERVAL_SECONDS +NEXT_PUBLIC_QUERY_RESERVATION_STALE_TIME_SECONDS= +# Query available slots interval - Should be kept high in minutes as it could cause significant load on the system +NEXT_PUBLIC_QUERY_AVAILABLE_SLOTS_INTERVAL_SECONDS= +# Used to invalidate available slots when navigating to booking form +NEXT_PUBLIC_INVALIDATE_AVAILABLE_SLOTS_ON_BOOKING_FORM=0 +# Used to enable quick availability checks for x% of all visitors +NEXT_PUBLIC_QUICK_AVAILABILITY_ROLLOUT=10 + +# Used to generate token for cal video recordings expiry token +# You can use: `openssl rand -base64 32` to generate one +CAL_VIDEO_RECORDING_TOKEN_SECRET= + +# Deprecated. Use NEXT_PUBLIC_BODY_SCRIPTS instead. NEXT_PUBLIC_HEAD_SCRIPTS are now injected into the body only. +NEXT_PUBLIC_HEAD_SCRIPTS= +NEXT_PUBLIC_BODY_SCRIPTS= + +DATABASE_CHUNK_SIZE= + +# Service Account Encryption Key for encrypting/decrypting service account keys +# You can use: `openssl rand -base64 24` to generate one +CALCOM_SERVICE_ACCOUNT_ENCRYPTION_KEY= + +SALESFORCE_GRAPHQL_DELAY_MS=500 +SALESFORCE_GRAPHQL_MAX_DELAY_MS=2000 +SALESFORCE_GRAPHQL_MAX_RETRIES=3 + +# Force Node.js to use UTC as process timezone +TZ=UTC + +# test oauth client for `packages/platform/examples/base` (optional) +SEED_PLATFORM_OAUTH_CLIENT_ID= +SEED_PLATFORM_OAUTH_CLIENT_SECRET= + +# test oauth2 client for `packages/platform/examples/base` (optional) +SEED_OAUTH2_CLIENT_ID= +SEED_OAUTH2_CLIENT_SECRET_HASHED= + +# Trigger.dev +ENABLE_ASYNC_TASKER="false" # set to "true" to enable +TRIGGER_SECRET_KEY= +TRIGGER_API_URL=https://api.trigger.dev +TRIGGER_DEV_PROJECT_REF= + +GOOGLE_ADS_ENABLED=1 # To enable Google Ads tracking (gclid) +LINKEDIN_ADS_ENABLED=1 # To enable LinkedIn Ads tracking (li_fat_id) + +# - BACKBLAZE B2 (Compliance Documents) ************************************************************************* +# Used for storing and serving compliance documents (SOC 2, ISO 27001, pentest reports) +B2_APPLICATION_KEY_ID= +B2_APPLICATION_KEY= +B2_BUCKET_ID= +B2_BUCKET_NAME= \ No newline at end of file diff --git a/packages/ui/components/icon/icon-names.ts b/packages/ui/components/icon/icon-names.ts index d4798ce3bdeb8a..d6d891205dda53 100644 --- a/packages/ui/components/icon/icon-names.ts +++ b/packages/ui/components/icon/icon-names.ts @@ -1,7 +1,7 @@ // This file is generated by yarn run build:icons export type IconName = - | "activity" + | "activity" | "arrow-down" | "arrow-left" | "arrow-right"