import { createEnv } from "@t3-oss/env-nextjs" import { z } from "zod" export const env = createEnv({ /** * Due to t3-env only checking typeof window === "undefined" * and Netlify running Deno, window is never "undefined" * https://github.com/t3-oss/t3-env/issues/154 */ isServer: typeof window === "undefined" || "Deno" in window, server: { APPLICATION_INSIGHTS_CONNECTION_STRING: z.string().optional(), ADOBE_SCRIPT_SRC: z.string().optional(), ADOBE_SDK_SCRIPT_SRC: z.string().optional(), API_BASEURL: z.string(), BUILD_ID: z.string().default("64rYXBu8o2eHp0Jf"), CMS_ACCESS_TOKEN: z.string(), CMS_API_KEY: z.string(), CMS_ENVIRONMENT: z.enum(["development", "production", "stage", "test"]), CMS_PREVIEW_TOKEN: z.string(), CMS_PREVIEW_URL: z.string(), CMS_URL: z.string(), CMS_BRANCH: z.enum(["development", "production"]), CURITY_CLIENT_ID_USER: z.string(), CURITY_CLIENT_ID_SERVICE: z.string(), CURITY_CLIENT_SECRET_SERVICE: z.string(), CURITY_CLIENT_SECRET_USER: z.string(), CURITY_ISSUER_USER: z.string(), CURITY_ISSUER_SERVICE: z.string(), CYPRESS_BASE_URL: z.string().default("http://127.0.0.1:3000"), DESIGN_SYSTEM_ACCESS_TOKEN: z.string(), ENVTEST: z.string().optional(), // https://env.t3.gg/docs/recipes#booleans NEXTAUTH_DEBUG: z .string() .refine((s) => s === "true" || s === "false") .transform((s) => s === "true") .default("false"), NEXTAUTH_REDIRECT_PROXY_URL: z.string().optional(), NEXTAUTH_SECRET: z.string(), NEXTAUTH_URL: z.string().default(""), AUTH_URL: z.string().default(""), NODE_ENV: z.enum(["development", "test", "production"]), PRINT_QUERY: z .string() .refine((s) => s === "true" || s === "false") .transform((s) => s === "true") .default("false"), PUBLIC_URL: z.string().default(""), REVALIDATE_SECRET: z.string(), SALESFORCE_PREFERENCE_BASE_URL: z.string(), SEAMLESS_LOGIN_DA: z.string(), SEAMLESS_LOGIN_DE: z.string(), SEAMLESS_LOGIN_EN: z.string(), SEAMLESS_LOGIN_FI: z.string(), SEAMLESS_LOGIN_NO: z.string(), SEAMLESS_LOGIN_SV: z.string(), SEAMLESS_LOGOUT_DA: z.string(), SEAMLESS_LOGOUT_DE: z.string(), SEAMLESS_LOGOUT_EN: z.string(), SEAMLESS_LOGOUT_FI: z.string(), SEAMLESS_LOGOUT_NO: z.string(), SEAMLESS_LOGOUT_SV: z.string(), SHOW_SIGNUP_FLOW: z .string() // only allow "true" or "false" .refine((s) => s === "true" || s === "false") // transform to boolean .transform((s) => s === "true") .default("false"), WEBVIEW_ENCRYPTION_KEY: z.string(), BOOKING_ENCRYPTION_KEY: z.string(), GOOGLE_STATIC_MAP_KEY: z.string(), GOOGLE_STATIC_MAP_SIGNATURE_SECRET: z.string(), GOOGLE_DYNAMIC_MAP_ID: z.string(), GOOGLE_STATIC_MAP_ID: z.string(), HIDE_FOR_NEXT_RELEASE: z .string() // only allow "true" or "false" .refine((s) => s === "true" || s === "false") // transform to boolean .transform((s) => s === "true"), ENABLE_BOOKING_FLOW: z .string() // only allow "true" or "false" .refine((s) => s === "true" || s === "false") // transform to boolean .transform((s) => s === "true") .default("false"), ENABLE_BOOKING_WIDGET: z .string() // only allow "true" or "false" .refine((s) => s === "true" || s === "false") // transform to boolean .transform((s) => s === "true") .default("false"), ENABLE_BOOKING_WIDGET_HOTELRESERVATION_PATH: z .string() // only allow "true" or "false" .refine((s) => s === "true" || s === "false") // transform to boolean .transform((s) => s === "true") .default("false"), SHOW_SITE_WIDE_ALERT: z .string() // only allow "true" or "false" .refine((s) => s === "true" || s === "false") // transform to boolean .transform((s) => s === "true") .default("false"), USE_NEW_REWARDS_ENDPOINT: z .string() // only allow "true" or "false" .refine((s) => s === "true" || s === "false") // transform to boolean .transform((s) => s === "true") .default("false"), }, emptyStringAsUndefined: true, runtimeEnv: { APPLICATION_INSIGHTS_CONNECTION_STRING: process.env.APPLICATION_INSIGHTS_CONNECTION_STRING, ADOBE_SCRIPT_SRC: process.env.ADOBE_SCRIPT_SRC, ADOBE_SDK_SCRIPT_SRC: process.env.ADOBE_SDK_SCRIPT_SRC, API_BASEURL: process.env.API_BASEURL, BUILD_ID: process.env.BUILD_ID, CMS_ACCESS_TOKEN: process.env.CMS_ACCESS_TOKEN, CMS_API_KEY: process.env.CMS_API_KEY, CMS_ENVIRONMENT: process.env.CMS_ENVIRONMENT, CMS_PREVIEW_TOKEN: process.env.CMS_PREVIEW_TOKEN, CMS_PREVIEW_URL: process.env.CMS_PREVIEW_URL, CMS_URL: process.env.CMS_URL, CMS_BRANCH: process.env.CMS_BRANCH, CURITY_CLIENT_ID_USER: process.env.CURITY_CLIENT_ID_USER, CURITY_CLIENT_ID_SERVICE: process.env.CURITY_CLIENT_ID_SERVICE, CURITY_CLIENT_SECRET_SERVICE: process.env.CURITY_CLIENT_SECRET_SERVICE, CURITY_CLIENT_SECRET_USER: process.env.CURITY_CLIENT_SECRET_USER, CURITY_ISSUER_USER: process.env.CURITY_ISSUER_USER, CURITY_ISSUER_SERVICE: process.env.CURITY_ISSUER_SERVICE, CYPRESS_BASE_URL: process.env.CYPRESS_TEST_URL, DESIGN_SYSTEM_ACCESS_TOKEN: process.env.DESIGN_SYSTEM_ACCESS_TOKEN, ENVTEST: process.env.ENVTEST, NEXTAUTH_DEBUG: process.env.NEXTAUTH_DEBUG, NEXTAUTH_REDIRECT_PROXY_URL: process.env.NEXTAUTH_REDIRECT_PROXY_URL, NEXTAUTH_SECRET: process.env.NEXTAUTH_SECRET, NEXTAUTH_URL: process.env.NEXTAUTH_URL, AUTH_URL: process.env.AUTH_URL, NODE_ENV: process.env.NODE_ENV, PRINT_QUERY: process.env.PRINT_QUERY, PUBLIC_URL: process.env.PUBLIC_URL, REVALIDATE_SECRET: process.env.REVALIDATE_SECRET, SALESFORCE_PREFERENCE_BASE_URL: process.env.SALESFORCE_PREFERENCE_BASE_URL, SEAMLESS_LOGIN_DA: process.env.SEAMLESS_LOGIN_DA, SEAMLESS_LOGIN_DE: process.env.SEAMLESS_LOGIN_DE, SEAMLESS_LOGIN_EN: process.env.SEAMLESS_LOGIN_EN, SEAMLESS_LOGIN_FI: process.env.SEAMLESS_LOGIN_FI, SEAMLESS_LOGIN_NO: process.env.SEAMLESS_LOGIN_NO, SEAMLESS_LOGIN_SV: process.env.SEAMLESS_LOGIN_SV, SEAMLESS_LOGOUT_DA: process.env.SEAMLESS_LOGOUT_DA, SEAMLESS_LOGOUT_DE: process.env.SEAMLESS_LOGOUT_DE, SEAMLESS_LOGOUT_EN: process.env.SEAMLESS_LOGOUT_EN, SEAMLESS_LOGOUT_FI: process.env.SEAMLESS_LOGOUT_FI, SEAMLESS_LOGOUT_NO: process.env.SEAMLESS_LOGOUT_NO, SEAMLESS_LOGOUT_SV: process.env.SEAMLESS_LOGOUT_SV, SHOW_SIGNUP_FLOW: process.env.SHOW_SIGNUP_FLOW, WEBVIEW_ENCRYPTION_KEY: process.env.WEBVIEW_ENCRYPTION_KEY, BOOKING_ENCRYPTION_KEY: process.env.BOOKING_ENCRYPTION_KEY, GOOGLE_STATIC_MAP_KEY: process.env.GOOGLE_STATIC_MAP_KEY, GOOGLE_STATIC_MAP_SIGNATURE_SECRET: process.env.GOOGLE_STATIC_MAP_SIGNATURE_SECRET, GOOGLE_STATIC_MAP_ID: process.env.GOOGLE_STATIC_MAP_ID, GOOGLE_DYNAMIC_MAP_ID: process.env.GOOGLE_DYNAMIC_MAP_ID, HIDE_FOR_NEXT_RELEASE: process.env.HIDE_FOR_NEXT_RELEASE, USE_NEW_REWARDS_ENDPOINT: process.env.USE_NEW_REWARDS_ENDPOINT, ENABLE_BOOKING_FLOW: process.env.ENABLE_BOOKING_FLOW, ENABLE_BOOKING_WIDGET: process.env.ENABLE_BOOKING_WIDGET, ENABLE_BOOKING_WIDGET_HOTELRESERVATION_PATH: process.env.ENABLE_BOOKING_WIDGET_HOTELRESERVATION_PATH, SHOW_SITE_WIDE_ALERT: process.env.SHOW_SITE_WIDE_ALERT, }, })