@agentics.org/sparc2
Version:
SPARC 2.0 - Autonomous Vector Coding Agent + MCP. SPARC 2.0, vectorized AI code analysis, is an intelligent coding agent framework built to automate and streamline software development. It combines secure execution environments, and version control into a
70 lines (61 loc) • 1.9 kB
text/typescript
/**
* CORS module for SPARC 2.0
* Provides CORS headers and utility functions for cross-origin requests
*/
/**
* Default CORS headers for cross-origin requests
*/
export const corsHeaders = {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
"Access-Control-Allow-Headers": "Content-Type, Authorization, X-Requested-With",
};
/**
* Apply CORS headers to a Response object
* @param response Response object to apply headers to
* @returns Response with CORS headers
*/
export function applyCorsHeaders(response: Response): Response {
const newHeaders = new Headers(response.headers);
// Add CORS headers
Object.entries(corsHeaders).forEach(([key, value]) => {
newHeaders.set(key, value);
});
// Create a new response with the updated headers
return new Response(response.body, {
status: response.status,
statusText: response.statusText,
headers: newHeaders,
});
}
/**
* Create a CORS preflight response
* @returns Response for CORS preflight request
*/
export function createCorsPreflightResponse(): Response {
return new Response("OK", {
status: 204,
headers: corsHeaders,
});
}
/**
* Check if a request is a CORS preflight request
* @param request Request to check
* @returns True if the request is a CORS preflight request
*/
export function isCorsPreflightRequest(request: Request): boolean {
return request.method === "OPTIONS" &&
request.headers.has("Access-Control-Request-Method");
}
/**
* Handle a CORS preflight request
* @param request Request to handle
* @returns Response for CORS preflight request
*/
export function handleCorsPreflightRequest(request: Request): Response {
if (isCorsPreflightRequest(request)) {
return createCorsPreflightResponse();
}
// If it's not a preflight request, return null
return null as unknown as Response;
}