import { z } from 'zod'; import { validateMintelEnv, mintelEnvSchema, withMintelRefinements } from '@mintel/next-utils'; /** * Environment variable schema. * Extends the default Mintel environment schema. */ const envExtension = { // Project specific overrides or additions AUTH_COOKIE_NAME: z.string().default('klz_gatekeeper_session'), // Gatekeeper specifics not in base GATEKEEPER_URL: z.string().url().default('http://gatekeeper:3000'), GATEKEEPER_BYPASS_ENABLED: z.preprocess( (val) => val === 'true' || val === true, z.boolean().default(false), ), NEXT_PUBLIC_FEEDBACK_ENABLED: z.preprocess( (val) => val === 'true' || val === true, z.boolean().default(false), ), INFRA_DIRECTUS_URL: z.string().url().optional(), INFRA_DIRECTUS_TOKEN: z.string().optional(), // Analytics UMAMI_WEBSITE_ID: z.string().optional(), }; /** * Full schema including Mintel base and refinements */ export const envSchema = withMintelRefinements(z.object(mintelEnvSchema).extend(envExtension)); /** * Validated environment object. */ export const env = validateMintelEnv(envExtension); /** * For legacy compatibility with existing code. */ export function getRawEnv() { return env; }