import md5 from "spark-md5"; declare global { namespace NodeJS { interface ProcessEnv { OPENAI_API_KEY?: string; CODE?: string; PROXY_URL?: string; VERCEL?: string; HIDE_USER_API_KEY?: string; // disable user's api key input DISABLE_GPT4?: string; // allow user to use gpt-4 or not } } } const ACCESS_CODES = (function getAccessCodes(): Set { const code = process.env.CODE; try { const codes = (code?.split(",") ?? []) .filter((v) => !!v) .map((v) => md5.hash(v.trim())); return new Set(codes); } catch (e) { return new Set(); } })(); export const getServerSideConfig = () => { if (typeof process === "undefined") { throw Error( "[Server Config] you are importing a nodejs-only module outside of nodejs", ); } return { apiKey: process.env.OPENAI_API_KEY, code: process.env.CODE, codes: ACCESS_CODES, needCode: ACCESS_CODES.size > 0, proxyUrl: process.env.PROXY_URL, isVercel: !!process.env.VERCEL, hideUserApiKey: !!process.env.HIDE_USER_API_KEY, enableGPT4: !process.env.DISABLE_GPT4, }; };