Skip to content

Commit f4a168a

Browse files
committed
revert: undo env.ts refactoring from c6b8108
This reverts the env-schema.ts extraction and restores inline schema definitions in env.ts. The refactoring caused issues and needed to be rolled back. Partially reverts c6b8108
1 parent aa2720b commit f4a168a

File tree

2 files changed

+90
-71
lines changed

2 files changed

+90
-71
lines changed

packages/internal/src/env-schema.ts

Lines changed: 0 additions & 45 deletions
This file was deleted.

packages/internal/src/env.ts

Lines changed: 90 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,101 @@
11
import { createEnv } from '@t3-oss/env-nextjs'
2-
3-
import { clientEnvSchema, serverEnvSchema } from './env-schema'
2+
import { z } from 'zod'
43

54
// Only log environment in non-production
65
if (process.env.NEXT_PUBLIC_CB_ENVIRONMENT !== 'prod') {
76
console.log('Using environment:', process.env.NEXT_PUBLIC_CB_ENVIRONMENT)
87
}
98

10-
// Client env vars MUST be explicitly listed for Next.js to inline them
11-
const clientRuntimeEnv = {
12-
NEXT_PUBLIC_CB_ENVIRONMENT: process.env.NEXT_PUBLIC_CB_ENVIRONMENT,
13-
NEXT_PUBLIC_CODEBUFF_APP_URL: process.env.NEXT_PUBLIC_CODEBUFF_APP_URL,
14-
NEXT_PUBLIC_CODEBUFF_BACKEND_URL:
15-
process.env.NEXT_PUBLIC_CODEBUFF_BACKEND_URL,
16-
NEXT_PUBLIC_SUPPORT_EMAIL: process.env.NEXT_PUBLIC_SUPPORT_EMAIL,
17-
NEXT_PUBLIC_POSTHOG_API_KEY: process.env.NEXT_PUBLIC_POSTHOG_API_KEY,
18-
NEXT_PUBLIC_POSTHOG_HOST_URL: process.env.NEXT_PUBLIC_POSTHOG_HOST_URL,
19-
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY:
20-
process.env.NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY,
21-
NEXT_PUBLIC_STRIPE_CUSTOMER_PORTAL:
22-
process.env.NEXT_PUBLIC_STRIPE_CUSTOMER_PORTAL,
23-
NEXT_PUBLIC_LINKEDIN_PARTNER_ID: process.env.NEXT_PUBLIC_LINKEDIN_PARTNER_ID,
24-
NEXT_PUBLIC_GOOGLE_SITE_VERIFICATION_ID:
25-
process.env.NEXT_PUBLIC_GOOGLE_SITE_VERIFICATION_ID,
26-
NEXT_PUBLIC_WEB_PORT: process.env.NEXT_PUBLIC_WEB_PORT,
27-
}
28-
299
const envSchema = {
30-
server: serverEnvSchema,
31-
client: clientEnvSchema,
32-
// Only expose NEXT_PUBLIC_* values here; server secrets stay in process.env.
33-
experimental__runtimeEnv: clientRuntimeEnv,
34-
skipValidation: process.env.NEXT_PUBLIC_CB_ENVIRONMENT === 'test',
10+
server: {
11+
// Backend variables
12+
CODEBUFF_API_KEY: z.string().optional(),
13+
OPEN_ROUTER_API_KEY: z.string().min(1),
14+
RELACE_API_KEY: z.string().min(1),
15+
LINKUP_API_KEY: z.string().min(1),
16+
CONTEXT7_API_KEY: z.string().optional(),
17+
GOOGLE_CLOUD_PROJECT_ID: z.string().min(1),
18+
PORT: z.coerce.number().min(1000),
19+
20+
// Web/Database variables
21+
DATABASE_URL: z.string().min(1),
22+
GOOGLE_SITE_VERIFICATION_ID: z.string().optional(),
23+
CODEBUFF_GITHUB_ID: z.string().min(1),
24+
CODEBUFF_GITHUB_SECRET: z.string().min(1),
25+
NEXTAUTH_URL: z.string().url().optional(),
26+
NEXTAUTH_SECRET: z.string().min(1),
27+
STRIPE_SECRET_KEY: z.string().min(1),
28+
STRIPE_WEBHOOK_SECRET_KEY: z.string().min(1),
29+
STRIPE_USAGE_PRICE_ID: z.string().min(1),
30+
STRIPE_TEAM_FEE_PRICE_ID: z.string().min(1),
31+
LOOPS_API_KEY: z.string().min(1),
32+
DISCORD_PUBLIC_KEY: z.string().min(1),
33+
DISCORD_BOT_TOKEN: z.string().min(1),
34+
DISCORD_APPLICATION_ID: z.string().min(1),
35+
36+
// Common variables
37+
API_KEY_ENCRYPTION_SECRET: z.string().length(32),
38+
},
39+
client: {
40+
NEXT_PUBLIC_CB_ENVIRONMENT: z.string().min(1),
41+
NEXT_PUBLIC_CODEBUFF_APP_URL: z.string().url().min(1),
42+
NEXT_PUBLIC_CODEBUFF_BACKEND_URL: z.string().min(1),
43+
NEXT_PUBLIC_SUPPORT_EMAIL: z.string().email().min(1),
44+
NEXT_PUBLIC_POSTHOG_API_KEY: z.string().optional().default(''),
45+
NEXT_PUBLIC_POSTHOG_HOST_URL: z.string().url().optional(),
46+
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY: z.string().min(1),
47+
NEXT_PUBLIC_STRIPE_CUSTOMER_PORTAL: z.string().url().min(1),
48+
NEXT_PUBLIC_LINKEDIN_PARTNER_ID: z.string().optional(),
49+
NEXT_PUBLIC_GOOGLE_SITE_VERIFICATION_ID: z.string().optional(),
50+
NEXT_PUBLIC_WEB_PORT: z.coerce.number().min(1000).optional().default(3000),
51+
},
52+
runtimeEnv: {
53+
// Backend variables
54+
CODEBUFF_API_KEY: process.env.CODEBUFF_API_KEY,
55+
OPEN_ROUTER_API_KEY: process.env.OPEN_ROUTER_API_KEY,
56+
RELACE_API_KEY: process.env.RELACE_API_KEY,
57+
LINKUP_API_KEY: process.env.LINKUP_API_KEY,
58+
CONTEXT7_API_KEY: process.env.CONTEXT7_API_KEY,
59+
GOOGLE_CLOUD_PROJECT_ID: process.env.GOOGLE_CLOUD_PROJECT_ID,
60+
PORT: process.env.PORT,
61+
62+
// Web/Database variables
63+
DATABASE_URL: process.env.DATABASE_URL,
64+
GOOGLE_SITE_VERIFICATION_ID: process.env.GOOGLE_SITE_VERIFICATION_ID,
65+
CODEBUFF_GITHUB_ID: process.env.CODEBUFF_GITHUB_ID,
66+
CODEBUFF_GITHUB_SECRET: process.env.CODEBUFF_GITHUB_SECRET,
67+
NEXTAUTH_URL: process.env.NEXTAUTH_URL,
68+
NEXTAUTH_SECRET: process.env.NEXTAUTH_SECRET,
69+
STRIPE_SECRET_KEY: process.env.STRIPE_SECRET_KEY,
70+
STRIPE_WEBHOOK_SECRET_KEY: process.env.STRIPE_WEBHOOK_SECRET_KEY,
71+
STRIPE_USAGE_PRICE_ID: process.env.STRIPE_USAGE_PRICE_ID,
72+
STRIPE_TEAM_FEE_PRICE_ID: process.env.STRIPE_TEAM_FEE_PRICE_ID,
73+
LOOPS_API_KEY: process.env.LOOPS_API_KEY,
74+
DISCORD_PUBLIC_KEY: process.env.DISCORD_PUBLIC_KEY,
75+
DISCORD_BOT_TOKEN: process.env.DISCORD_BOT_TOKEN,
76+
DISCORD_APPLICATION_ID: process.env.DISCORD_APPLICATION_ID,
77+
78+
// Common variables
79+
API_KEY_ENCRYPTION_SECRET: process.env.API_KEY_ENCRYPTION_SECRET,
80+
81+
// Client variables
82+
NEXT_PUBLIC_CB_ENVIRONMENT: process.env.NEXT_PUBLIC_CB_ENVIRONMENT,
83+
NEXT_PUBLIC_CODEBUFF_APP_URL: process.env.NEXT_PUBLIC_CODEBUFF_APP_URL,
84+
NEXT_PUBLIC_CODEBUFF_BACKEND_URL:
85+
process.env.NEXT_PUBLIC_CODEBUFF_BACKEND_URL,
86+
NEXT_PUBLIC_SUPPORT_EMAIL: process.env.NEXT_PUBLIC_SUPPORT_EMAIL,
87+
NEXT_PUBLIC_POSTHOG_API_KEY: process.env.NEXT_PUBLIC_POSTHOG_API_KEY,
88+
NEXT_PUBLIC_POSTHOG_HOST_URL: process.env.NEXT_PUBLIC_POSTHOG_HOST_URL,
89+
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY:
90+
process.env.NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY,
91+
NEXT_PUBLIC_STRIPE_CUSTOMER_PORTAL:
92+
process.env.NEXT_PUBLIC_STRIPE_CUSTOMER_PORTAL,
93+
NEXT_PUBLIC_LINKEDIN_PARTNER_ID:
94+
process.env.NEXT_PUBLIC_LINKEDIN_PARTNER_ID,
95+
NEXT_PUBLIC_GOOGLE_SITE_VERIFICATION_ID:
96+
process.env.NEXT_PUBLIC_GOOGLE_SITE_VERIFICATION_ID,
97+
NEXT_PUBLIC_WEB_PORT: process.env.NEXT_PUBLIC_WEB_PORT,
98+
},
3599
}
36100
let envTemp
37101
try {

0 commit comments

Comments
 (0)