import path from "node:path"; const env = process.env; const config = { OWNER_DISPLAY_NAME: env.OWNER_DISPLAY_NAME ?? "Admin", INLINE_MAX_BYTES: parseInt(env.INLINE_MAX_BYTES ?? "", 10) || 524288, MAX_UPLOAD_BYTES: parseInt(env.MAX_UPLOAD_BYTES ?? "", 10) || 10 * 1024 * 1024, MAX_USER_UPLOAD_BYTES: parseInt(env.MAX_USER_UPLOAD_BYTES ?? "", 10) || 2 * 1024 * 1024, TRUSTED_PROXY: !!env.TRUSTED_PROXY, RATE_LIMIT_DISABLED: !!env.RATE_LIMIT_DISABLED, SSH_DISABLED: !!env.SSH_DISABLED, PORT: parseInt(env.PORT ?? "", 10) || 3000, SSH_PORT: parseInt(env.SSH_PORT ?? "", 10) || 2222, REGISTRATION_TYPE: (env.REGISTRATION_TYPE ?? "enabled") as | "enabled" | "disabled" | "queue", REGISTER_QUESTION: env.REGISTER_QUESTION ?? "", BASE_URL: env.BASE_URL ?? `http://localhost:${parseInt(env.PORT ?? "", 10) || 3000}`, DATA_DIR: path.resolve(env.DATA_DIR ?? "./data"), HIGHLIGHT_WORKERS: parseInt(env.HIGHLIGHT_WORKERS ?? "", 10) || 4, COMMITTER_NAME: env.COMMITTER_NAME ?? env.OWNER_DISPLAY_NAME ?? "Admin", COMMITTER_EMAIL: "", EXTRA_ALLOWED_SIGNERS_PATH: env.EXTRA_ALLOWED_SIGNERS_PATH ?? null, }; // Derived values that depend on other config fields config.COMMITTER_EMAIL = env.COMMITTER_EMAIL ?? `${config.OWNER_DISPLAY_NAME}@${new URL(config.BASE_URL).hostname}`; export default config;