31 lines
1.4 KiB
TypeScript
31 lines
1.4 KiB
TypeScript
export declare const escapeHTML: (str: string) => string;
|
|
/**
|
|
* Serializes a value to a JSON string that is safe to embed inside a `<script>` tag.
|
|
* All `<` characters are escaped to `\u003c` so the browser's HTML parser cannot be
|
|
* tricked into closing the script block early via `</script>` variants (case-insensitive,
|
|
* whitespace, or self-closing forms) or `<!--` comment injection.
|
|
* @see https://mathiasbynens.be/notes/etago
|
|
*/
|
|
export declare function stringifyForScript(value: any): string;
|
|
export declare class HTMLBytes extends Uint8Array {
|
|
}
|
|
declare const htmlStringSymbol: unique symbol;
|
|
/**
|
|
* A "blessed" extension of String that tells Astro that the string
|
|
* has already been escaped. This helps prevent double-escaping of HTML.
|
|
*/
|
|
export declare class HTMLString extends String {
|
|
[htmlStringSymbol]: boolean;
|
|
}
|
|
type BlessedType = string | HTMLBytes;
|
|
/**
|
|
* markHTMLString marks a string as raw or "already escaped" by returning
|
|
* a `HTMLString` instance. This is meant for internal use, and should not
|
|
* be returned through any public JS API.
|
|
*/
|
|
export declare const markHTMLString: (value: any) => any;
|
|
export declare function isHTMLString(value: any): value is HTMLString;
|
|
export declare function isHTMLBytes(value: any): value is HTMLBytes;
|
|
export declare function unescapeHTML(str: any): BlessedType | Promise<BlessedType | AsyncGenerator<BlessedType, void, unknown>> | AsyncGenerator<BlessedType, void, unknown>;
|
|
export {};
|