Skip to content

Commit c0286bf

Browse files
committed
added better zod validation
1 parent b81cc8a commit c0286bf

File tree

1 file changed

+33
-13
lines changed

1 file changed

+33
-13
lines changed

packages/client-twitter/src/environment.ts

Lines changed: 33 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)