@@ -30,10 +30,34 @@ export const twitterEnvSchema = z.object({
3030 TWITTER_DRY_RUN : z . boolean ( ) ,
3131 TWITTER_USERNAME : z . string ( ) . min ( 1 , "X/Twitter username is required" ) ,
3232 // OAuth 1.0a credentials (required for Twitter API v2)
33- TWITTER_API_KEY : z . string ( ) . optional ( ) ,
34- TWITTER_API_SECRET : z . string ( ) . optional ( ) ,
35- TWITTER_ACCESS_TOKEN : z . string ( ) . optional ( ) ,
36- TWITTER_ACCESS_SECRET : z . string ( ) . optional ( ) ,
33+ TWITTER_API_KEY : z
34+ . string ( )
35+ . min ( 1 , "TWITTER_API_KEY is required for Twitter OAuth 1.0a authentication" )
36+ . refine (
37+ ( key ) => key . length > 10 ,
38+ "TWITTER_API_KEY appears to be invalid (too short)"
39+ ) ,
40+ TWITTER_API_SECRET : z
41+ . string ( )
42+ . min ( 1 , "TWITTER_API_SECRET is required for Twitter OAuth 1.0a authentication" )
43+ . refine (
44+ ( secret ) => secret . length > 10 ,
45+ "TWITTER_API_SECRET appears to be invalid (too short)"
46+ ) ,
47+ TWITTER_ACCESS_TOKEN : z
48+ . string ( )
49+ . min ( 1 , "TWITTER_ACCESS_TOKEN is required for Twitter OAuth 1.0a authentication" )
50+ . refine (
51+ ( token ) => token . length > 10 ,
52+ "TWITTER_ACCESS_TOKEN appears to be invalid (too short)"
53+ ) ,
54+ TWITTER_ACCESS_SECRET : z
55+ . string ( )
56+ . min ( 1 , "TWITTER_ACCESS_SECRET is required for Twitter OAuth 1.0a authentication" )
57+ . refine (
58+ ( secret ) => secret . length > 10 ,
59+ "TWITTER_ACCESS_SECRET appears to be invalid (too short)"
60+ ) ,
3761 // Legacy credentials (deprecated - Twitter removed guest token support)
3862 TWITTER_PASSWORD : z . string ( ) . optional ( ) ,
3963 TWITTER_EMAIL : z . string ( ) . optional ( ) ,
@@ -132,26 +156,22 @@ export async function validateTwitterConfig(
132156 runtime . getSetting ( "TWITTER_USERNAME" ) ||
133157 process . env . TWITTER_USERNAME ,
134158
135- // OAuth 1.0a credentials (Twitter API v2)
159+ // OAuth 1.0a credentials (Twitter API v2) - REQUIRED
136160 TWITTER_API_KEY :
137161 runtime . getSetting ( "TWITTER_API_KEY" ) ||
138- process . env . TWITTER_API_KEY ||
139- "" ,
162+ process . env . TWITTER_API_KEY ,
140163
141164 TWITTER_API_SECRET :
142165 runtime . getSetting ( "TWITTER_API_SECRET" ) ||
143- process . env . TWITTER_API_SECRET ||
144- "" ,
166+ process . env . TWITTER_API_SECRET ,
145167
146168 TWITTER_ACCESS_TOKEN :
147169 runtime . getSetting ( "TWITTER_ACCESS_TOKEN" ) ||
148- process . env . TWITTER_ACCESS_TOKEN ||
149- "" ,
170+ process . env . TWITTER_ACCESS_TOKEN ,
150171
151172 TWITTER_ACCESS_SECRET :
152173 runtime . getSetting ( "TWITTER_ACCESS_SECRET" ) ||
153- process . env . TWITTER_ACCESS_SECRET ||
154- "" ,
174+ process . env . TWITTER_ACCESS_SECRET ,
155175
156176 // Legacy credentials (deprecated)
157177 TWITTER_PASSWORD :
0 commit comments