--- a/lib/constants.ts +++ b/lib/constants.ts @@ -1,29 +1,32 @@ +import { env } from 'next-runtime-env'; + export const OAUTH_SCOPE = 'atproto transition:generic transition:chat.bsky' export const OZONE_SERVICE_DID = - process.env.NEXT_PUBLIC_OZONE_SERVICE_DID || undefined + env('NEXT_PUBLIC_OZONE_SERVICE_DID') || undefined export const OZONE_PUBLIC_URL = - process.env.NEXT_PUBLIC_OZONE_PUBLIC_URL || undefined + env('NEXT_PUBLIC_OZONE_PUBLIC_URL') || undefined export const PLC_DIRECTORY_URL = - process.env.NEXT_PUBLIC_PLC_DIRECTORY_URL || + env('NEXT_PUBLIC_PLC_DIRECTORY_URL') || (process.env.NODE_ENV === 'development' ? 'http://localhost:2582' : 'https://plc.directory') -export const QUEUE_CONFIG = process.env.NEXT_PUBLIC_QUEUE_CONFIG || '{}' +export const QUEUE_CONFIG = env('NEXT_PUBLIC_QUEUE_CONFIG') || '{}' -export const QUEUE_SEED = process.env.NEXT_PUBLIC_QUEUE_SEED || '' +export const QUEUE_SEED = env('NEXT_PUBLIC_QUEUE_SEED') || '' +export const SOCIAL_APP_DOMAIN = env('NEXT_PUBLIC_SOCIAL_APP_DOMAIN') || 'bsky.app' export const SOCIAL_APP_URL = - process.env.NEXT_PUBLIC_SOCIAL_APP_URL || + env('NEXT_PUBLIC_SOCIAL_APP_URL') || (process.env.NODE_ENV === 'development' ? 'http://localhost:2584' - : 'https://bsky.app') + : `https://${SOCIAL_APP_DOMAIN}`) export const HANDLE_RESOLVER_URL = - process.env.NEXT_PUBLIC_HANDLE_RESOLVER_URL || + env('NEXT_PUBLIC_HANDLE_RESOLVER_URL') || (process.env.NODE_ENV === 'development' ? 'http://localhost:2584' : 'https://api.bsky.app') @@ -36,25 +39,25 @@ export const NEW_ACCOUNT_MARKER_THRESHOLD_IN_DAYS = process.env .NEXT_PUBLIC_NEW_ACCOUNT_MARKER_THRESHOLD_IN_DAYS - ? parseInt(process.env.NEXT_PUBLIC_NEW_ACCOUNT_MARKER_THRESHOLD_IN_DAYS) + ? parseInt(env('NEXT_PUBLIC_NEW_ACCOUNT_MARKER_THRESHOLD_IN_DAYS')) : 7 export const YOUNG_ACCOUNT_MARKER_THRESHOLD_IN_DAYS = process.env .NEXT_PUBLIC_YOUNG_ACCOUNT_MARKER_THRESHOLD_IN_DAYS - ? parseInt(process.env.NEXT_PUBLIC_YOUNG_ACCOUNT_MARKER_THRESHOLD_IN_DAYS) + ? parseInt(env('NEXT_PUBLIC_YOUNG_ACCOUNT_MARKER_THRESHOLD_IN_DAYS')) : 30 export const DOMAINS_ALLOWING_EMAIL_COMMUNICATION = ( - process.env.NEXT_PUBLIC_DOMAINS_ALLOWING_EMAIL_COMMUNICATION || '' + env('NEXT_PUBLIC_DOMAINS_ALLOWING_EMAIL_COMMUNICATION') || '' ).split(',') export const HIGH_PROFILE_FOLLOWER_THRESHOLD = process.env .NEXT_PUBLIC_HIGH_PROFILE_FOLLOWER_THRESHOLD - ? parseInt(process.env.NEXT_PUBLIC_HIGH_PROFILE_FOLLOWER_THRESHOLD) + ? parseInt(env('NEXT_PUBLIC_HIGH_PROFILE_FOLLOWER_THRESHOLD')) : Infinity export const FALLBACK_VIDEO_URL = ( - process.env.NEXT_PUBLIC_FALLBACK_VIDEO_URL || '' + env('NEXT_PUBLIC_FALLBACK_VIDEO_URL') || '' ).split(':') // strike to account suspension duration mapping (in hours) @@ -87,18 +90,18 @@ export const STRIKE_TO_SUSPENSION_DURATION_IN_HOURS = parseStrikeSuspensionConfig( - process.env.NEXT_PUBLIC_STRIKE_SUSPENSION_CONFIG || '', + env('NEXT_PUBLIC_STRIKE_SUSPENSION_CONFIG') || '', ) export const AUTOMATED_ACTION_EMAIL_IDS = { warningWithTakedown: - process.env.NEXT_PUBLIC_WARNING_WITH_TAKEDOWN_EMAIL_TEMPLATE_ID, + env('NEXT_PUBLIC_WARNING_WITH_TAKEDOWN_EMAIL_TEMPLATE_ID'), suspensionWithTakedown: - process.env.NEXT_PUBLIC_SUSPENSION_WITH_TAKEDOWN_EMAIL_TEMPLATE_ID, + env('NEXT_PUBLIC_SUSPENSION_WITH_TAKEDOWN_EMAIL_TEMPLATE_ID'), suspensionWithoutTakedown: - process.env.NEXT_PUBLIC_SUSPENSION_WITHOUT_TAKEDOWN_EMAIL_TEMPLATE_ID, + env('NEXT_PUBLIC_SUSPENSION_WITHOUT_TAKEDOWN_EMAIL_TEMPLATE_ID'), permanentTakedown: - process.env.NEXT_PUBLIC_PERMANENT_TAKEDOWN_EMAIL_TEMPLATE_ID, + env('NEXT_PUBLIC_PERMANENT_TAKEDOWN_EMAIL_TEMPLATE_ID'), takedownWithoutStrike: - process.env.NEXT_PUBLIC_TAKEDOWN_WITHOUT_STRIKE_EMAIL_TEMPLATE_ID, + env('NEXT_PUBLIC_TAKEDOWN_WITHOUT_STRIKE_EMAIL_TEMPLATE_ID'), }