@@ -66,15 +66,23 @@ function parseAllowedUserIds(raw: string | string[] | undefined): string[] {
6666 return normalizeStringEntries ( raw . split ( "," ) ) ;
6767}
6868
69- function parseRateLimitPerMinute ( raw : string | undefined ) : number {
70- if ( raw == null ) {
71- return 30 ;
69+ function normalizeRateLimitPerMinuteValue ( raw : unknown ) : number | undefined {
70+ if ( typeof raw === "number" ) {
71+ return Number . isSafeInteger ( raw ) && raw >= 0 ? raw : undefined ;
72+ }
73+ if ( typeof raw !== "string" ) {
74+ return undefined ;
7275 }
7376 const trimmed = raw . trim ( ) ;
74- if ( ! / ^ - ? \d + $ / . test ( trimmed ) ) {
75- return 30 ;
77+ if ( ! / ^ \d + $ / . test ( trimmed ) ) {
78+ return undefined ;
7679 }
77- return parseStrictInteger ( trimmed ) ?? 30 ;
80+ const parsed = parseStrictInteger ( trimmed ) ;
81+ return parsed != null && parsed >= 0 ? parsed : undefined ;
82+ }
83+
84+ function parseRateLimitPerMinute ( raw : string | undefined ) : number {
85+ return normalizeRateLimitPerMinuteValue ( raw ) ?? 30 ;
7886}
7987
8088/**
@@ -143,7 +151,8 @@ export function resolveAccount(
143151 dangerouslyAllowInheritedWebhookPath,
144152 dmPolicy : merged . dmPolicy ?? "allowlist" ,
145153 allowedUserIds : parseAllowedUserIds ( merged . allowedUserIds ?? envAllowedUserIds ) ,
146- rateLimitPerMinute : merged . rateLimitPerMinute ?? envRateLimitValue ,
154+ rateLimitPerMinute :
155+ normalizeRateLimitPerMinuteValue ( merged . rateLimitPerMinute ) ?? envRateLimitValue ,
147156 botName : merged . botName ?? envBotName ,
148157 allowInsecureSsl : merged . allowInsecureSsl ?? false ,
149158 } ;
0 commit comments