feat: Add normalized types and utility functions for handling chat formats
- Introduced `NormalizedContentBlock`, `NormalizedUsage`, and related types for structured data handling. - Implemented utility functions for creating and merging normalized usage statistics. - Added a new module for shared transformers to manage chat formats. feat: Implement app local state management - Created functions to clear application installation state and manage local storage keys. - Added constants for theme and user profile storage keys. test: Add tests for BrandIcon component rendering - Implemented tests to ensure BrandIcon does not force a colored background for recognized brands. test: Enhance ModelAnalysisPanel tests - Added tests for rendering token summaries with compact units in ModelAnalysisPanel. test: Add tests for ModernSelect component - Implemented tests to verify icon rendering for selected options in ModernSelect. test: Add number formatting tests - Created tests for `formatCompactTokenMetric` to validate token formatting logic. feat: Implement account creation intent handling - Added logic to handle session and API key creation intents in the Accounts page. test: Add tests for dashboard performance card - Implemented tests to verify rendering of performance metrics in the dashboard. feat: Implement default connection segment resolution - Added logic to determine initial connection segments based on platform types. test: Add tests for settings factory reset functionality - Implemented tests to verify the factory reset process and local state clearing. test: Add tests for site creation redirect logic - Implemented tests to verify redirection based on site capabilities during creation. test: Add tests for token routes refresh decision action - Implemented tests to verify refresh decision actions in TokenRoutes. test: Add tests for token routes snapshot load - Implemented tests to verify loading of cached snapshot data in TokenRoutes.
This commit is contained in:
@@ -66,12 +66,22 @@ export async function proxyAuthMiddleware(request: FastifyRequest, reply: Fastif
|
||||
const apiKeyHeader = typeof request.headers['x-api-key'] === 'string'
|
||||
? request.headers['x-api-key']
|
||||
: '';
|
||||
const googApiKeyHeader = typeof request.headers['x-goog-api-key'] === 'string'
|
||||
? request.headers['x-goog-api-key']
|
||||
: '';
|
||||
const queryKey = (
|
||||
request.query
|
||||
&& typeof request.query === 'object'
|
||||
&& typeof (request.query as Record<string, unknown>).key === 'string'
|
||||
)
|
||||
? String((request.query as Record<string, unknown>).key).trim()
|
||||
: '';
|
||||
const token = auth
|
||||
? auth.replace(/^Bearer\s+/i, '').trim()
|
||||
: apiKeyHeader.trim();
|
||||
: (apiKeyHeader.trim() || googApiKeyHeader.trim() || queryKey);
|
||||
|
||||
if (!token) {
|
||||
reply.code(401).send({ error: 'Missing Authorization or x-api-key header' });
|
||||
reply.code(401).send({ error: 'Missing Authorization, x-api-key, x-goog-api-key, or key query parameter' });
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user