Spaces:
Configuration error
Configuration error
import { decodeXML, decodeHTML, DecodingMode } from "./decode.js"; | |
import { encodeHTML, encodeNonAsciiHTML } from "./encode.js"; | |
import { encodeXML, escapeUTF8, escapeAttribute, escapeText, } from "./escape.js"; | |
/** The level of entities to support. */ | |
export var EntityLevel; | |
(function (EntityLevel) { | |
/** Support only XML entities. */ | |
EntityLevel[EntityLevel["XML"] = 0] = "XML"; | |
/** Support HTML entities, which are a superset of XML entities. */ | |
EntityLevel[EntityLevel["HTML"] = 1] = "HTML"; | |
})(EntityLevel || (EntityLevel = {})); | |
export var EncodingMode; | |
(function (EncodingMode) { | |
/** | |
* The output is UTF-8 encoded. Only characters that need escaping within | |
* XML will be escaped. | |
*/ | |
EncodingMode[EncodingMode["UTF8"] = 0] = "UTF8"; | |
/** | |
* The output consists only of ASCII characters. Characters that need | |
* escaping within HTML, and characters that aren't ASCII characters will | |
* be escaped. | |
*/ | |
EncodingMode[EncodingMode["ASCII"] = 1] = "ASCII"; | |
/** | |
* Encode all characters that have an equivalent entity, as well as all | |
* characters that are not ASCII characters. | |
*/ | |
EncodingMode[EncodingMode["Extensive"] = 2] = "Extensive"; | |
/** | |
* Encode all characters that have to be escaped in HTML attributes, | |
* following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}. | |
*/ | |
EncodingMode[EncodingMode["Attribute"] = 3] = "Attribute"; | |
/** | |
* Encode all characters that have to be escaped in HTML text, | |
* following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}. | |
*/ | |
EncodingMode[EncodingMode["Text"] = 4] = "Text"; | |
})(EncodingMode || (EncodingMode = {})); | |
/** | |
* Decodes a string with entities. | |
* | |
* @param data String to decode. | |
* @param options Decoding options. | |
*/ | |
export function decode(data, options = EntityLevel.XML) { | |
const level = typeof options === "number" ? options : options.level; | |
if (level === EntityLevel.HTML) { | |
const mode = typeof options === "object" ? options.mode : undefined; | |
return decodeHTML(data, mode); | |
} | |
return decodeXML(data); | |
} | |
/** | |
* Decodes a string with entities. Does not allow missing trailing semicolons for entities. | |
* | |
* @param data String to decode. | |
* @param options Decoding options. | |
* @deprecated Use `decode` with the `mode` set to `Strict`. | |
*/ | |
export function decodeStrict(data, options = EntityLevel.XML) { | |
var _a; | |
const opts = typeof options === "number" ? { level: options } : options; | |
(_a = opts.mode) !== null && _a !== void 0 ? _a : (opts.mode = DecodingMode.Strict); | |
return decode(data, opts); | |
} | |
/** | |
* Encodes a string with entities. | |
* | |
* @param data String to encode. | |
* @param options Encoding options. | |
*/ | |
export function encode(data, options = EntityLevel.XML) { | |
const opts = typeof options === "number" ? { level: options } : options; | |
// Mode `UTF8` just escapes XML entities | |
if (opts.mode === EncodingMode.UTF8) | |
return escapeUTF8(data); | |
if (opts.mode === EncodingMode.Attribute) | |
return escapeAttribute(data); | |
if (opts.mode === EncodingMode.Text) | |
return escapeText(data); | |
if (opts.level === EntityLevel.HTML) { | |
if (opts.mode === EncodingMode.ASCII) { | |
return encodeNonAsciiHTML(data); | |
} | |
return encodeHTML(data); | |
} | |
// ASCII and Extensive are equivalent | |
return encodeXML(data); | |
} | |
export { encodeXML, escape, escapeUTF8, escapeAttribute, escapeText, } from "./escape.js"; | |
export { encodeHTML, encodeNonAsciiHTML, | |
// Legacy aliases (deprecated) | |
encodeHTML as encodeHTML4, encodeHTML as encodeHTML5, } from "./encode.js"; | |
export { EntityDecoder, DecodingMode, decodeXML, decodeHTML, decodeHTMLStrict, decodeHTMLAttribute, | |
// Legacy aliases (deprecated) | |
decodeHTML as decodeHTML4, decodeHTML as decodeHTML5, decodeHTMLStrict as decodeHTML4Strict, decodeHTMLStrict as decodeHTML5Strict, decodeXML as decodeXMLStrict, } from "./decode.js"; | |
//# sourceMappingURL=index.js.map |