chore(config): update auth, env, i18n, proxy, and dependencies

- Update src/auth.ts auth configuration

- Update src/env.mjs environment variable validation

- Update src/i18n/request.ts locale handling

- Update src/proxy.ts middleware

- Update src/next-auth.d.ts type declarations

- Update package.json and package-lock.json dependencies
This commit is contained in:
SpecialX
2026-07-03 10:30:28 +08:00
parent 0e63c24ed9
commit 56c3f32e2d
7 changed files with 755 additions and 199 deletions

View File

@@ -10,6 +10,13 @@ export const env = createEnv({
AI_API_KEY: z.string().min(1).optional(),
AI_BASE_URL: z.string().url().optional(),
AI_MODEL: z.string().min(1).optional(),
// Rate limit driver: "memory" (default, single-instance) or "redis" (distributed).
RATE_LIMIT_DRIVER: z.enum(["memory", "redis"]).default("memory"),
// Upstash Redis REST credentials (only required when RATE_LIMIT_DRIVER=redis).
UPSTASH_REDIS_REST_URL: z.string().url().optional(),
UPSTASH_REDIS_REST_TOKEN: z.string().min(1).optional(),
// audit-P2-5: Cron job bearer token for /api/cron/* endpoints.
CRON_SECRET: z.string().min(1).optional(),
},
client: {
NEXT_PUBLIC_APP_URL: z.string().url().optional(),
@@ -23,6 +30,10 @@ export const env = createEnv({
AI_API_KEY: process.env.AI_API_KEY,
AI_BASE_URL: process.env.AI_BASE_URL,
AI_MODEL: process.env.AI_MODEL,
RATE_LIMIT_DRIVER: process.env.RATE_LIMIT_DRIVER,
UPSTASH_REDIS_REST_URL: process.env.UPSTASH_REDIS_REST_URL,
UPSTASH_REDIS_REST_TOKEN: process.env.UPSTASH_REDIS_REST_TOKEN,
CRON_SECRET: process.env.CRON_SECRET,
},
skipValidation: !!process.env.SKIP_ENV_VALIDATION,
emptyStringAsUndefined: true,