mirror of https://github.com/garrytan/gstack.git
22 lines
629 B
TypeScript
22 lines
629 B
TypeScript
/**
|
|
* Shared sidebar utilities — extracted for testability.
|
|
*/
|
|
|
|
/**
|
|
* Sanitize a URL from the Chrome extension before embedding in a prompt.
|
|
* Only accepts http/https, strips control characters, truncates to 2048 chars.
|
|
* Returns null if the URL is invalid or uses a non-http scheme.
|
|
*/
|
|
export function sanitizeExtensionUrl(url: string | null | undefined): string | null {
|
|
if (!url) return null;
|
|
try {
|
|
const u = new URL(url);
|
|
if (u.protocol === 'http:' || u.protocol === 'https:') {
|
|
return u.href.replace(/[\x00-\x1f\x7f]/g, '').slice(0, 2048);
|
|
}
|
|
return null;
|
|
} catch {
|
|
return null;
|
|
}
|
|
}
|