// Type definitions for sanitize-html 2.6
// Project: https://github.com/punkave/sanitize-html
// Definitions by: Rogier Schouten
// Afshin Darian
// Rinze de Laat
// A penguin
// Johan Davidsson
// Jianrong Yu
// GP
// Dariusz Syncerek
// Piotr Błażejewicz
// Pirasis Leelatanon
// Alex Rantos
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
import { ParserOptions } from "htmlparser2";
export = sanitize;
declare function sanitize(dirty: string, options?: sanitize.IOptions): string;
declare namespace sanitize {
interface Attributes { [attr: string]: string; }
interface Tag { tagName: string; attribs: Attributes; text?: string | undefined; }
type Transformer = (tagName: string, attribs: Attributes) => Tag;
type AllowedAttribute = string | { name: string; multiple?: boolean | undefined; values: string[] };
type DisallowedTagsModes = 'discard' | 'escape' | 'recursiveEscape';
// tslint:disable-next-line:interface-name
interface IDefaults {
allowedAttributes: Record;
allowedSchemes: string[];
allowedSchemesByTag: { [index: string]: string[] };
allowedSchemesAppliedToAttributes: string[];
allowedTags: string[];
allowProtocolRelative: boolean;
disallowedTagsMode: DisallowedTagsModes;
enforceHtmlBoundary: boolean;
selfClosing: string[];
}
// tslint:disable-next-line:interface-name
interface IFrame {
tag: string;
attribs: { [index: string]: string };
text: string;
tagPosition: number;
}
// tslint:disable-next-line:interface-name
interface IOptions {
allowedAttributes?: Record | false | undefined;
allowedStyles?: { [index: string]: { [index: string]: RegExp[] } } | undefined;
allowedClasses?: { [index: string]: boolean | Array } | undefined;
allowedIframeDomains?: string[] | undefined;
allowedIframeHostnames?: string[] | undefined;
allowIframeRelativeUrls?: boolean | undefined;
allowedSchemes?: string[] | boolean | undefined;
allowedSchemesByTag?: { [index: string]: string[] } | boolean | undefined;
allowedSchemesAppliedToAttributes?: string[] | undefined;
allowedScriptDomains?: string[] | undefined;
allowedScriptHostnames?: string[] | undefined;
allowProtocolRelative?: boolean | undefined;
allowedTags?: string[] | false | undefined;
allowVulnerableTags?: boolean | undefined;
textFilter?: ((text: string, tagName: string) => string) | undefined;
exclusiveFilter?: ((frame: IFrame) => boolean) | undefined;
nestingLimit?: number | undefined;
nonTextTags?: string[] | undefined;
selfClosing?: string[] | undefined;
transformTags?: { [tagName: string]: string | Transformer } | undefined;
parser?: ParserOptions | undefined;
disallowedTagsMode?: DisallowedTagsModes | undefined;
/**
* Setting this option to true will instruct sanitize-html to discard all characters outside of html tag boundaries
* -- before `` and after `` tags
* @see {@link https://github.com/apostrophecms/sanitize-html/#discarding-text-outside-of-htmlhtml-tags}
* @default true
*/
enforceHtmlBoundary?: boolean | undefined;
}
const defaults: IDefaults;
const options: IOptions;
function simpleTransform(tagName: string, attribs: Attributes, merge?: boolean): Transformer;
}