{"version":3,"sources":["webpack:///./node_modules/htmlparser2/node_modules/dom-serializer/lib/foreignNames.js","webpack:///./node_modules/htmlparser2/node_modules/domutils/lib/legacy.js","webpack:///./node_modules/htmlparser2/lib/FeedHandler.js","webpack:///./node_modules/htmlparser2/lib/Parser.js","webpack:///./node_modules/htmlparser2/node_modules/domutils/lib/manipulation.js","webpack:///./node_modules/htmlparser2/lib/Tokenizer.js","webpack:///./node_modules/htmlparser2/lib/index.js","webpack:///./node_modules/htmlparser2/node_modules/domutils/lib/stringify.js","webpack:///./node_modules/htmlparser2/node_modules/domutils/lib/index.js","webpack:///./node_modules/htmlparser2/node_modules/domutils/lib/traversal.js","webpack:///./node_modules/htmlparser2/node_modules/domutils/lib/feeds.js","webpack:///./node_modules/htmlparser2/node_modules/domutils/lib/helpers.js","webpack:///./node_modules/htmlparser2/node_modules/dom-serializer/lib/index.js","webpack:///./node_modules/htmlparser2/node_modules/domutils/lib/querying.js"],"names":["Object","defineProperty","exports","value","attributeNames","elementNames","Map","getElementsByTagType","getElementsByTagName","getElementById","getElements","testElement","domhandler_1","querying_1","Checks","tag_name","name","elem","isTag","tag_type","type","tag_contains","data","isText","getAttribCheck","attrib","attribs","combineFuncs","a","b","compileTest","options","funcs","keys","map","key","prototype","hasOwnProperty","call","length","reduce","node","test","nodes","recurse","limit","Infinity","filter","id","Array","isArray","findOne","tagName","__extends","this","extendStatics","d","setPrototypeOf","__proto__","p","TypeError","String","__","constructor","create","__createBinding","o","m","k","k2","enumerable","get","__setModuleDefault","v","__importStar","mod","__esModule","result","__importDefault","parseFeed","FeedHandler","FeedItemMediaMedium","FeedItemMediaExpression","DomUtils","Parser_1","_super","callback","onend","_a","_b","feedRoot","getOneElement","isValidFeed","dom","feed","childs","children","addConditionally","href","getAttribute","link","updated","fetch","Date","items","item","entry","description","pubDate","media","getMediaElements","substr","handleCallback","Error","default","where","medium","isDefault","url","fileSize","parseInt","expression","bitrate","framerate","samplingrate","channels","duration","height","width","lang","getText","trim","obj","prop","what","tmp","xmlMode","handler","Parser","end","Tokenizer_1","formTags","Set","pTag","openImpliesClose","tr","th","td","body","li","h1","h2","h3","h4","h5","h6","select","input","output","button","datalist","textarea","option","optgroup","dd","dt","address","article","aside","blockquote","details","div","dl","fieldset","figcaption","figure","footer","form","header","hr","main","nav","ol","pre","section","table","ul","rt","rp","tbody","tfoot","voidElements","foreignContextElements","htmlIntegrationElements","reNameEnd","cbs","_c","_d","_e","startIndex","endIndex","tagname","attribname","attribvalue","stack","foreignContext","lowerCaseTagNames","lowerCaseTags","lowerCaseAttributeNames","tokenizer","Tokenizer","onparserinit","updatePosition","initialOffset","sectionStart","getAbsoluteIndex","ontext","onopentagname","toLowerCase","el","has","onclosetag","push","onopentag","onopentagend","pop","closeCurrentTag","pos","lastIndexOf","onselfclosingtag","recognizeSelfClosing","onattribname","onattribdata","onattribend","quote","onattribute","getInstructionName","idx","search","ondeclaration","onprocessinginstruction","name_1","name_2","oncomment","oncommentend","oncdata","_f","recognizeCDATA","oncdatastart","oncdataend","onerror","err","i","reset","onreset","parseComplete","write","chunk","pause","resume","parseChunk","done","removeElement","prev","next","parent","splice","prepend","prependChild","append","appendChild","replaceElement","replacement","child","sibling","currNext","unshift","indexOf","decode_codepoint_1","entities_json_1","legacy_json_1","xml_json_1","whitespace","c","isASCIIAlpha","ifElseState","upper","SUCCESS","FAILURE","lower","t","_state","_index","consumeSpecialNameChar","NEXT_STATE","stateBeforeCdata1","stateBeforeCdata2","stateBeforeCdata3","stateBeforeCdata4","stateBeforeCdata5","stateBeforeScript1","stateBeforeScript2","stateBeforeScript3","stateBeforeScript4","stateAfterScript1","stateAfterScript2","stateAfterScript3","stateAfterScript4","stateBeforeStyle1","stateBeforeStyle2","stateBeforeStyle3","stateAfterStyle1","stateAfterStyle2","stateAfterStyle3","stateBeforeSpecialT","stateBeforeTitle1","stateBeforeTitle2","stateBeforeTitle3","stateAfterSpecialTEnd","stateAfterTitle1","stateAfterTitle2","stateAfterTitle3","stateBeforeEntity","stateBeforeNumericEntity","buffer","bufferOffset","baseState","special","running","ended","decodeEntities","parse","finish","stateText","getSection","isTagStartChar","stateBeforeTagName","stateInTagName","emitToken","stateBeforeClosingTagName","stateInClosingTagName","stateAfterClosingTagName","stateBeforeAttributeName","stateInSelfClosingTag","stateInAttributeName","stateAfterAttributeName","stateBeforeAttributeValue","handleInAttributeValue","stateInAttributeValueDoubleQuotes","stateInAttributeValueSingleQuotes","stateInAttributeValueNoQuotes","stateBeforeDeclaration","stateInDeclaration","stateInProcessingInstruction","stateBeforeComment","stateInComment","stateInSpecialComment","substring","stateAfterComment1","stateAfterComment2","stateBeforeCdata6","stateInCdata","stateAfterCdata1","stateAfterCdata2","stateBeforeSpecialS","stateBeforeSpecialSEnd","stateBeforeSpecialLast","stateAfterSpecialLast","sectionStartOffset","parseFixedEntity","entity","emitPartial","parseLegacyEntity","start","Math","min","stateInNamedEntity","decodeNumericEntity","offset","base","strict","parsed","stateInNumericEntity","stateInHexEntity","cleanup","charAt","handleTrailingData","__exportStar","RssHandler","DefaultHandler","ElementType","createDomStream","parseDOM","parseDocument","DomHandler","root","cb","elementCb","FeedHandler_1","innerText","textContent","getInnerHTML","getOuterHTML","dom_serializer_1","domelementtype_1","hasChildren","join","isCDATA","isComment","Tag","isDocument","prevElementSibling","nextElementSibling","getName","hasAttrib","getAttributeValue","getSiblings","getParent","getChildren","emptyArray","siblings","getFeed","stringify_1","legacy_1","doc","getAtomFeed","getRssFeed","MEDIA_KEYS_STRING","MEDIA_KEYS_INT","_i","MEDIA_KEYS_STRING_1","MEDIA_KEYS_INT_1","val","uniqueSort","compareDocumentPosition","removeSubsets","nodeA","nodeB","aParents","bParents","current","maxIdx","sharedParent","aSibling","bSibling","ancestor","includes","arr","sort","relative","__assign","assign","s","n","arguments","apply","entities_1","foreignNames_1","unencodedElements","singleTag","render","renderNode","Root","Directive","Doctype","renderDirective","Comment","renderComment","CDATA","renderCdata","Script","Style","opts","foreignModeIntegrationPoints","foreignElements","tag","attributes","emptyAttrs","encodeXML","replace","formatAttributes","selfClosingTags","renderTag","Text","renderText","findAll","existsOne","findOneChild","find","nodes_1","checked","some","shift"],"mappings":"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","file":"js/chunk-vendors~e93d415e.86932fc7.js","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeNames = exports.elementNames = void 0;\nexports.elementNames = new Map([\n [\"altglyph\", \"altGlyph\"],\n [\"altglyphdef\", \"altGlyphDef\"],\n [\"altglyphitem\", \"altGlyphItem\"],\n [\"animatecolor\", \"animateColor\"],\n [\"animatemotion\", \"animateMotion\"],\n [\"animatetransform\", \"animateTransform\"],\n [\"clippath\", \"clipPath\"],\n [\"feblend\", \"feBlend\"],\n [\"fecolormatrix\", \"feColorMatrix\"],\n [\"fecomponenttransfer\", \"feComponentTransfer\"],\n [\"fecomposite\", \"feComposite\"],\n [\"feconvolvematrix\", \"feConvolveMatrix\"],\n [\"fediffuselighting\", \"feDiffuseLighting\"],\n [\"fedisplacementmap\", \"feDisplacementMap\"],\n [\"fedistantlight\", \"feDistantLight\"],\n [\"fedropshadow\", \"feDropShadow\"],\n [\"feflood\", \"feFlood\"],\n [\"fefunca\", \"feFuncA\"],\n [\"fefuncb\", \"feFuncB\"],\n [\"fefuncg\", \"feFuncG\"],\n [\"fefuncr\", \"feFuncR\"],\n [\"fegaussianblur\", \"feGaussianBlur\"],\n [\"feimage\", \"feImage\"],\n [\"femerge\", \"feMerge\"],\n [\"femergenode\", \"feMergeNode\"],\n [\"femorphology\", \"feMorphology\"],\n [\"feoffset\", \"feOffset\"],\n [\"fepointlight\", \"fePointLight\"],\n [\"fespecularlighting\", \"feSpecularLighting\"],\n [\"fespotlight\", \"feSpotLight\"],\n [\"fetile\", \"feTile\"],\n [\"feturbulence\", \"feTurbulence\"],\n [\"foreignobject\", \"foreignObject\"],\n [\"glyphref\", \"glyphRef\"],\n [\"lineargradient\", \"linearGradient\"],\n [\"radialgradient\", \"radialGradient\"],\n [\"textpath\", \"textPath\"],\n]);\nexports.attributeNames = new Map([\n [\"definitionurl\", \"definitionURL\"],\n [\"attributename\", \"attributeName\"],\n [\"attributetype\", \"attributeType\"],\n [\"basefrequency\", \"baseFrequency\"],\n [\"baseprofile\", \"baseProfile\"],\n [\"calcmode\", \"calcMode\"],\n [\"clippathunits\", \"clipPathUnits\"],\n [\"diffuseconstant\", \"diffuseConstant\"],\n [\"edgemode\", \"edgeMode\"],\n [\"filterunits\", \"filterUnits\"],\n [\"glyphref\", \"glyphRef\"],\n [\"gradienttransform\", \"gradientTransform\"],\n [\"gradientunits\", \"gradientUnits\"],\n [\"kernelmatrix\", \"kernelMatrix\"],\n [\"kernelunitlength\", \"kernelUnitLength\"],\n [\"keypoints\", \"keyPoints\"],\n [\"keysplines\", \"keySplines\"],\n [\"keytimes\", \"keyTimes\"],\n [\"lengthadjust\", \"lengthAdjust\"],\n [\"limitingconeangle\", \"limitingConeAngle\"],\n [\"markerheight\", \"markerHeight\"],\n [\"markerunits\", \"markerUnits\"],\n [\"markerwidth\", \"markerWidth\"],\n [\"maskcontentunits\", \"maskContentUnits\"],\n [\"maskunits\", \"maskUnits\"],\n [\"numoctaves\", \"numOctaves\"],\n [\"pathlength\", \"pathLength\"],\n [\"patterncontentunits\", \"patternContentUnits\"],\n [\"patterntransform\", \"patternTransform\"],\n [\"patternunits\", \"patternUnits\"],\n [\"pointsatx\", \"pointsAtX\"],\n [\"pointsaty\", \"pointsAtY\"],\n [\"pointsatz\", \"pointsAtZ\"],\n [\"preservealpha\", \"preserveAlpha\"],\n [\"preserveaspectratio\", \"preserveAspectRatio\"],\n [\"primitiveunits\", \"primitiveUnits\"],\n [\"refx\", \"refX\"],\n [\"refy\", \"refY\"],\n [\"repeatcount\", \"repeatCount\"],\n [\"repeatdur\", \"repeatDur\"],\n [\"requiredextensions\", \"requiredExtensions\"],\n [\"requiredfeatures\", \"requiredFeatures\"],\n [\"specularconstant\", \"specularConstant\"],\n [\"specularexponent\", \"specularExponent\"],\n [\"spreadmethod\", \"spreadMethod\"],\n [\"startoffset\", \"startOffset\"],\n [\"stddeviation\", \"stdDeviation\"],\n [\"stitchtiles\", \"stitchTiles\"],\n [\"surfacescale\", \"surfaceScale\"],\n [\"systemlanguage\", \"systemLanguage\"],\n [\"tablevalues\", \"tableValues\"],\n [\"targetx\", \"targetX\"],\n [\"targety\", \"targetY\"],\n [\"textlength\", \"textLength\"],\n [\"viewbox\", \"viewBox\"],\n [\"viewtarget\", \"viewTarget\"],\n [\"xchannelselector\", \"xChannelSelector\"],\n [\"ychannelselector\", \"yChannelSelector\"],\n [\"zoomandpan\", \"zoomAndPan\"],\n]);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getElementsByTagType = exports.getElementsByTagName = exports.getElementById = exports.getElements = exports.testElement = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar querying_1 = require(\"./querying\");\nvar Checks = {\n tag_name: function (name) {\n if (typeof name === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && name(elem.name); };\n }\n else if (name === \"*\") {\n return domhandler_1.isTag;\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.name === name; };\n },\n tag_type: function (type) {\n if (typeof type === \"function\") {\n return function (elem) { return type(elem.type); };\n }\n return function (elem) { return elem.type === type; };\n },\n tag_contains: function (data) {\n if (typeof data === \"function\") {\n return function (elem) { return (0, domhandler_1.isText)(elem) && data(elem.data); };\n }\n return function (elem) { return (0, domhandler_1.isText)(elem) && elem.data === data; };\n },\n};\n/**\n * @param attrib Attribute to check.\n * @param value Attribute value to look for.\n * @returns A function to check whether the a node has an attribute with a particular value.\n */\nfunction getAttribCheck(attrib, value) {\n if (typeof value === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && value(elem.attribs[attrib]); };\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.attribs[attrib] === value; };\n}\n/**\n * @param a First function to combine.\n * @param b Second function to combine.\n * @returns A function taking a node and returning `true` if either\n * of the input functions returns `true` for the node.\n */\nfunction combineFuncs(a, b) {\n return function (elem) { return a(elem) || b(elem); };\n}\n/**\n * @param options An object describing nodes to look for.\n * @returns A function executing all checks in `options` and returning `true`\n * if any of them match a node.\n */\nfunction compileTest(options) {\n var funcs = Object.keys(options).map(function (key) {\n var value = options[key];\n return Object.prototype.hasOwnProperty.call(Checks, key)\n ? Checks[key](value)\n : getAttribCheck(key, value);\n });\n return funcs.length === 0 ? null : funcs.reduce(combineFuncs);\n}\n/**\n * @param options An object describing nodes to look for.\n * @param node The element to test.\n * @returns Whether the element matches the description in `options`.\n */\nfunction testElement(options, node) {\n var test = compileTest(options);\n return test ? test(node) : true;\n}\nexports.testElement = testElement;\n/**\n * @param options An object describing nodes to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes that match `options`.\n */\nfunction getElements(options, nodes, recurse, limit) {\n if (limit === void 0) { limit = Infinity; }\n var test = compileTest(options);\n return test ? (0, querying_1.filter)(test, nodes, recurse, limit) : [];\n}\nexports.getElements = getElements;\n/**\n * @param id The unique ID attribute value to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @returns The node with the supplied ID.\n */\nfunction getElementById(id, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n if (!Array.isArray(nodes))\n nodes = [nodes];\n return (0, querying_1.findOne)(getAttribCheck(\"id\", id), nodes, recurse);\n}\nexports.getElementById = getElementById;\n/**\n * @param tagName Tag name to search for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `tagName`.\n */\nfunction getElementsByTagName(tagName, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_1.filter)(Checks.tag_name(tagName), nodes, recurse, limit);\n}\nexports.getElementsByTagName = getElementsByTagName;\n/**\n * @param type Element type to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `type`.\n */\nfunction getElementsByTagType(type, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_1.filter)(Checks.tag_type(type), nodes, recurse, limit);\n}\nexports.getElementsByTagType = getElementsByTagType;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseFeed = exports.FeedHandler = void 0;\nvar domhandler_1 = __importDefault(require(\"domhandler\"));\nvar DomUtils = __importStar(require(\"domutils\"));\nvar Parser_1 = require(\"./Parser\");\nvar FeedItemMediaMedium;\n(function (FeedItemMediaMedium) {\n FeedItemMediaMedium[FeedItemMediaMedium[\"image\"] = 0] = \"image\";\n FeedItemMediaMedium[FeedItemMediaMedium[\"audio\"] = 1] = \"audio\";\n FeedItemMediaMedium[FeedItemMediaMedium[\"video\"] = 2] = \"video\";\n FeedItemMediaMedium[FeedItemMediaMedium[\"document\"] = 3] = \"document\";\n FeedItemMediaMedium[FeedItemMediaMedium[\"executable\"] = 4] = \"executable\";\n})(FeedItemMediaMedium || (FeedItemMediaMedium = {}));\nvar FeedItemMediaExpression;\n(function (FeedItemMediaExpression) {\n FeedItemMediaExpression[FeedItemMediaExpression[\"sample\"] = 0] = \"sample\";\n FeedItemMediaExpression[FeedItemMediaExpression[\"full\"] = 1] = \"full\";\n FeedItemMediaExpression[FeedItemMediaExpression[\"nonstop\"] = 2] = \"nonstop\";\n})(FeedItemMediaExpression || (FeedItemMediaExpression = {}));\n// TODO: Consume data as it is coming in\nvar FeedHandler = /** @class */ (function (_super) {\n __extends(FeedHandler, _super);\n /**\n *\n * @param callback\n * @param options\n */\n function FeedHandler(callback, options) {\n var _this = this;\n if (typeof callback === \"object\") {\n callback = undefined;\n options = callback;\n }\n _this = _super.call(this, callback, options) || this;\n return _this;\n }\n FeedHandler.prototype.onend = function () {\n var _a, _b;\n var feedRoot = getOneElement(isValidFeed, this.dom);\n if (!feedRoot) {\n this.handleCallback(new Error(\"couldn't find root of feed\"));\n return;\n }\n var feed = {};\n if (feedRoot.name === \"feed\") {\n var childs = feedRoot.children;\n feed.type = \"atom\";\n addConditionally(feed, \"id\", \"id\", childs);\n addConditionally(feed, \"title\", \"title\", childs);\n var href = getAttribute(\"href\", getOneElement(\"link\", childs));\n if (href) {\n feed.link = href;\n }\n addConditionally(feed, \"description\", \"subtitle\", childs);\n var updated = fetch(\"updated\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"email\", childs, true);\n feed.items = getElements(\"entry\", childs).map(function (item) {\n var entry = {};\n var children = item.children;\n addConditionally(entry, \"id\", \"id\", children);\n addConditionally(entry, \"title\", \"title\", children);\n var href = getAttribute(\"href\", getOneElement(\"link\", children));\n if (href) {\n entry.link = href;\n }\n var description = fetch(\"summary\", children) || fetch(\"content\", children);\n if (description) {\n entry.description = description;\n }\n var pubDate = fetch(\"updated\", children);\n if (pubDate) {\n entry.pubDate = new Date(pubDate);\n }\n entry.media = getMediaElements(children);\n return entry;\n });\n }\n else {\n var childs = (_b = (_a = getOneElement(\"channel\", feedRoot.children)) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : [];\n feed.type = feedRoot.name.substr(0, 3);\n feed.id = \"\";\n addConditionally(feed, \"title\", \"title\", childs);\n addConditionally(feed, \"link\", \"link\", childs);\n addConditionally(feed, \"description\", \"description\", childs);\n var updated = fetch(\"lastBuildDate\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"managingEditor\", childs, true);\n feed.items = getElements(\"item\", feedRoot.children).map(function (item) {\n var entry = {};\n var children = item.children;\n addConditionally(entry, \"id\", \"guid\", children);\n addConditionally(entry, \"title\", \"title\", children);\n addConditionally(entry, \"link\", \"link\", children);\n addConditionally(entry, \"description\", \"description\", children);\n var pubDate = fetch(\"pubDate\", children);\n if (pubDate)\n entry.pubDate = new Date(pubDate);\n entry.media = getMediaElements(children);\n return entry;\n });\n }\n this.feed = feed;\n this.handleCallback(null);\n };\n return FeedHandler;\n}(domhandler_1.default));\nexports.FeedHandler = FeedHandler;\nfunction getMediaElements(where) {\n return getElements(\"media:content\", where).map(function (elem) {\n var media = {\n medium: elem.attribs.medium,\n isDefault: !!elem.attribs.isDefault,\n };\n if (elem.attribs.url) {\n media.url = elem.attribs.url;\n }\n if (elem.attribs.fileSize) {\n media.fileSize = parseInt(elem.attribs.fileSize, 10);\n }\n if (elem.attribs.type) {\n media.type = elem.attribs.type;\n }\n if (elem.attribs.expression) {\n media.expression = elem.attribs\n .expression;\n }\n if (elem.attribs.bitrate) {\n media.bitrate = parseInt(elem.attribs.bitrate, 10);\n }\n if (elem.attribs.framerate) {\n media.framerate = parseInt(elem.attribs.framerate, 10);\n }\n if (elem.attribs.samplingrate) {\n media.samplingrate = parseInt(elem.attribs.samplingrate, 10);\n }\n if (elem.attribs.channels) {\n media.channels = parseInt(elem.attribs.channels, 10);\n }\n if (elem.attribs.duration) {\n media.duration = parseInt(elem.attribs.duration, 10);\n }\n if (elem.attribs.height) {\n media.height = parseInt(elem.attribs.height, 10);\n }\n if (elem.attribs.width) {\n media.width = parseInt(elem.attribs.width, 10);\n }\n if (elem.attribs.lang) {\n media.lang = elem.attribs.lang;\n }\n return media;\n });\n}\nfunction getElements(tagName, where) {\n return DomUtils.getElementsByTagName(tagName, where, true);\n}\nfunction getOneElement(tagName, node) {\n return DomUtils.getElementsByTagName(tagName, node, true, 1)[0];\n}\nfunction fetch(tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n return DomUtils.getText(DomUtils.getElementsByTagName(tagName, where, recurse, 1)).trim();\n}\nfunction getAttribute(name, elem) {\n if (!elem) {\n return null;\n }\n var attribs = elem.attribs;\n return attribs[name];\n}\nfunction addConditionally(obj, prop, what, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n var tmp = fetch(what, where, recurse);\n if (tmp)\n obj[prop] = tmp;\n}\nfunction isValidFeed(value) {\n return value === \"rss\" || value === \"feed\" || value === \"rdf:RDF\";\n}\n/**\n * Parse a feed.\n *\n * @param feed The feed that should be parsed, as a string.\n * @param options Optionally, options for parsing. When using this option, you should set `xmlMode` to `true`.\n */\nfunction parseFeed(feed, options) {\n if (options === void 0) { options = { xmlMode: true }; }\n var handler = new FeedHandler(options);\n new Parser_1.Parser(handler, options).end(feed);\n return handler.feed;\n}\nexports.parseFeed = parseFeed;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Parser = void 0;\nvar Tokenizer_1 = __importDefault(require(\"./Tokenizer\"));\nvar formTags = new Set([\n \"input\",\n \"option\",\n \"optgroup\",\n \"select\",\n \"button\",\n \"datalist\",\n \"textarea\",\n]);\nvar pTag = new Set([\"p\"]);\nvar openImpliesClose = {\n tr: new Set([\"tr\", \"th\", \"td\"]),\n th: new Set([\"th\"]),\n td: new Set([\"thead\", \"th\", \"td\"]),\n body: new Set([\"head\", \"link\", \"script\"]),\n li: new Set([\"li\"]),\n p: pTag,\n h1: pTag,\n h2: pTag,\n h3: pTag,\n h4: pTag,\n h5: pTag,\n h6: pTag,\n select: formTags,\n input: formTags,\n output: formTags,\n button: formTags,\n datalist: formTags,\n textarea: formTags,\n option: new Set([\"option\"]),\n optgroup: new Set([\"optgroup\", \"option\"]),\n dd: new Set([\"dt\", \"dd\"]),\n dt: new Set([\"dt\", \"dd\"]),\n address: pTag,\n article: pTag,\n aside: pTag,\n blockquote: pTag,\n details: pTag,\n div: pTag,\n dl: pTag,\n fieldset: pTag,\n figcaption: pTag,\n figure: pTag,\n footer: pTag,\n form: pTag,\n header: pTag,\n hr: pTag,\n main: pTag,\n nav: pTag,\n ol: pTag,\n pre: pTag,\n section: pTag,\n table: pTag,\n ul: pTag,\n rt: new Set([\"rt\", \"rp\"]),\n rp: new Set([\"rt\", \"rp\"]),\n tbody: new Set([\"thead\", \"tbody\"]),\n tfoot: new Set([\"thead\", \"tbody\"]),\n};\nvar voidElements = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\nvar foreignContextElements = new Set([\"math\", \"svg\"]);\nvar htmlIntegrationElements = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar reNameEnd = /\\s|\\//;\nvar Parser = /** @class */ (function () {\n function Parser(cbs, options) {\n if (options === void 0) { options = {}; }\n var _a, _b, _c, _d, _e;\n /** The start index of the last event. */\n this.startIndex = 0;\n /** The end index of the last event. */\n this.endIndex = null;\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribvalue = \"\";\n this.attribs = null;\n this.stack = [];\n this.foreignContext = [];\n this.options = options;\n this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};\n this.lowerCaseTagNames = (_a = options.lowerCaseTags) !== null && _a !== void 0 ? _a : !options.xmlMode;\n this.lowerCaseAttributeNames =\n (_b = options.lowerCaseAttributeNames) !== null && _b !== void 0 ? _b : !options.xmlMode;\n this.tokenizer = new ((_c = options.Tokenizer) !== null && _c !== void 0 ? _c : Tokenizer_1.default)(this.options, this);\n (_e = (_d = this.cbs).onparserinit) === null || _e === void 0 ? void 0 : _e.call(_d, this);\n }\n Parser.prototype.updatePosition = function (initialOffset) {\n if (this.endIndex === null) {\n if (this.tokenizer.sectionStart <= initialOffset) {\n this.startIndex = 0;\n }\n else {\n this.startIndex = this.tokenizer.sectionStart - initialOffset;\n }\n }\n else {\n this.startIndex = this.endIndex + 1;\n }\n this.endIndex = this.tokenizer.getAbsoluteIndex();\n };\n // Tokenizer event handlers\n Parser.prototype.ontext = function (data) {\n var _a, _b;\n this.updatePosition(1);\n this.endIndex--;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, data);\n };\n Parser.prototype.onopentagname = function (name) {\n var _a, _b;\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n this.tagname = name;\n if (!this.options.xmlMode &&\n Object.prototype.hasOwnProperty.call(openImpliesClose, name)) {\n var el = void 0;\n while (this.stack.length > 0 &&\n openImpliesClose[name].has((el = this.stack[this.stack.length - 1]))) {\n this.onclosetag(el);\n }\n }\n if (this.options.xmlMode || !voidElements.has(name)) {\n this.stack.push(name);\n if (foreignContextElements.has(name)) {\n this.foreignContext.push(true);\n }\n else if (htmlIntegrationElements.has(name)) {\n this.foreignContext.push(false);\n }\n }\n (_b = (_a = this.cbs).onopentagname) === null || _b === void 0 ? void 0 : _b.call(_a, name);\n if (this.cbs.onopentag)\n this.attribs = {};\n };\n Parser.prototype.onopentagend = function () {\n var _a, _b;\n this.updatePosition(1);\n if (this.attribs) {\n (_b = (_a = this.cbs).onopentag) === null || _b === void 0 ? void 0 : _b.call(_a, this.tagname, this.attribs);\n this.attribs = null;\n }\n if (!this.options.xmlMode &&\n this.cbs.onclosetag &&\n voidElements.has(this.tagname)) {\n this.cbs.onclosetag(this.tagname);\n }\n this.tagname = \"\";\n };\n Parser.prototype.onclosetag = function (name) {\n this.updatePosition(1);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n if (foreignContextElements.has(name) ||\n htmlIntegrationElements.has(name)) {\n this.foreignContext.pop();\n }\n if (this.stack.length &&\n (this.options.xmlMode || !voidElements.has(name))) {\n var pos = this.stack.lastIndexOf(name);\n if (pos !== -1) {\n if (this.cbs.onclosetag) {\n pos = this.stack.length - pos;\n while (pos--) {\n // We know the stack has sufficient elements.\n this.cbs.onclosetag(this.stack.pop());\n }\n }\n else\n this.stack.length = pos;\n }\n else if (name === \"p\" && !this.options.xmlMode) {\n this.onopentagname(name);\n this.closeCurrentTag();\n }\n }\n else if (!this.options.xmlMode && (name === \"br\" || name === \"p\")) {\n this.onopentagname(name);\n this.closeCurrentTag();\n }\n };\n Parser.prototype.onselfclosingtag = function () {\n if (this.options.xmlMode ||\n this.options.recognizeSelfClosing ||\n this.foreignContext[this.foreignContext.length - 1]) {\n this.closeCurrentTag();\n }\n else {\n this.onopentagend();\n }\n };\n Parser.prototype.closeCurrentTag = function () {\n var _a, _b;\n var name = this.tagname;\n this.onopentagend();\n /*\n * Self-closing tags will be on the top of the stack\n * (cheaper check than in onclosetag)\n */\n if (this.stack[this.stack.length - 1] === name) {\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, name);\n this.stack.pop();\n }\n };\n Parser.prototype.onattribname = function (name) {\n if (this.lowerCaseAttributeNames) {\n name = name.toLowerCase();\n }\n this.attribname = name;\n };\n Parser.prototype.onattribdata = function (value) {\n this.attribvalue += value;\n };\n Parser.prototype.onattribend = function (quote) {\n var _a, _b;\n (_b = (_a = this.cbs).onattribute) === null || _b === void 0 ? void 0 : _b.call(_a, this.attribname, this.attribvalue, quote);\n if (this.attribs &&\n !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {\n this.attribs[this.attribname] = this.attribvalue;\n }\n this.attribname = \"\";\n this.attribvalue = \"\";\n };\n Parser.prototype.getInstructionName = function (value) {\n var idx = value.search(reNameEnd);\n var name = idx < 0 ? value : value.substr(0, idx);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n return name;\n };\n Parser.prototype.ondeclaration = function (value) {\n if (this.cbs.onprocessinginstruction) {\n var name_1 = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(\"!\" + name_1, \"!\" + value);\n }\n };\n Parser.prototype.onprocessinginstruction = function (value) {\n if (this.cbs.onprocessinginstruction) {\n var name_2 = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(\"?\" + name_2, \"?\" + value);\n }\n };\n Parser.prototype.oncomment = function (value) {\n var _a, _b, _c, _d;\n this.updatePosition(4);\n (_b = (_a = this.cbs).oncomment) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);\n };\n Parser.prototype.oncdata = function (value) {\n var _a, _b, _c, _d, _e, _f;\n this.updatePosition(1);\n if (this.options.xmlMode || this.options.recognizeCDATA) {\n (_b = (_a = this.cbs).oncdatastart) === null || _b === void 0 ? void 0 : _b.call(_a);\n (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value);\n (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e);\n }\n else {\n this.oncomment(\"[CDATA[\" + value + \"]]\");\n }\n };\n Parser.prototype.onerror = function (err) {\n var _a, _b;\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n };\n Parser.prototype.onend = function () {\n var _a, _b;\n if (this.cbs.onclosetag) {\n for (var i = this.stack.length; i > 0; this.cbs.onclosetag(this.stack[--i]))\n ;\n }\n (_b = (_a = this.cbs).onend) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n /**\n * Resets the parser to a blank state, ready to parse a new HTML document\n */\n Parser.prototype.reset = function () {\n var _a, _b, _c, _d;\n (_b = (_a = this.cbs).onreset) === null || _b === void 0 ? void 0 : _b.call(_a);\n this.tokenizer.reset();\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribs = null;\n this.stack = [];\n (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this);\n };\n /**\n * Resets the parser, then parses a complete document and\n * pushes it to the handler.\n *\n * @param data Document to parse.\n */\n Parser.prototype.parseComplete = function (data) {\n this.reset();\n this.end(data);\n };\n /**\n * Parses a chunk of data and calls the corresponding callbacks.\n *\n * @param chunk Chunk to parse.\n */\n Parser.prototype.write = function (chunk) {\n this.tokenizer.write(chunk);\n };\n /**\n * Parses the end of the buffer and clears the stack, calls onend.\n *\n * @param chunk Optional final chunk to parse.\n */\n Parser.prototype.end = function (chunk) {\n this.tokenizer.end(chunk);\n };\n /**\n * Pauses parsing. The parser won't emit events until `resume` is called.\n */\n Parser.prototype.pause = function () {\n this.tokenizer.pause();\n };\n /**\n * Resumes parsing after `pause` was called.\n */\n Parser.prototype.resume = function () {\n this.tokenizer.resume();\n };\n /**\n * Alias of `write`, for backwards compatibility.\n *\n * @param chunk Chunk to parse.\n * @deprecated\n */\n Parser.prototype.parseChunk = function (chunk) {\n this.write(chunk);\n };\n /**\n * Alias of `end`, for backwards compatibility.\n *\n * @param chunk Optional final chunk to parse.\n * @deprecated\n */\n Parser.prototype.done = function (chunk) {\n this.end(chunk);\n };\n return Parser;\n}());\nexports.Parser = Parser;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepend = exports.prependChild = exports.append = exports.appendChild = exports.replaceElement = exports.removeElement = void 0;\n/**\n * Remove an element from the dom\n *\n * @param elem The element to be removed\n */\nfunction removeElement(elem) {\n if (elem.prev)\n elem.prev.next = elem.next;\n if (elem.next)\n elem.next.prev = elem.prev;\n if (elem.parent) {\n var childs = elem.parent.children;\n childs.splice(childs.lastIndexOf(elem), 1);\n }\n}\nexports.removeElement = removeElement;\n/**\n * Replace an element in the dom\n *\n * @param elem The element to be replaced\n * @param replacement The element to be added\n */\nfunction replaceElement(elem, replacement) {\n var prev = (replacement.prev = elem.prev);\n if (prev) {\n prev.next = replacement;\n }\n var next = (replacement.next = elem.next);\n if (next) {\n next.prev = replacement;\n }\n var parent = (replacement.parent = elem.parent);\n if (parent) {\n var childs = parent.children;\n childs[childs.lastIndexOf(elem)] = replacement;\n }\n}\nexports.replaceElement = replaceElement;\n/**\n * Append a child to an element.\n *\n * @param elem The element to append to.\n * @param child The element to be added as a child.\n */\nfunction appendChild(elem, child) {\n removeElement(child);\n child.next = null;\n child.parent = elem;\n if (elem.children.push(child) > 1) {\n var sibling = elem.children[elem.children.length - 2];\n sibling.next = child;\n child.prev = sibling;\n }\n else {\n child.prev = null;\n }\n}\nexports.appendChild = appendChild;\n/**\n * Append an element after another.\n *\n * @param elem The element to append after.\n * @param next The element be added.\n */\nfunction append(elem, next) {\n removeElement(next);\n var parent = elem.parent;\n var currNext = elem.next;\n next.next = currNext;\n next.prev = elem;\n elem.next = next;\n next.parent = parent;\n if (currNext) {\n currNext.prev = next;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.lastIndexOf(currNext), 0, next);\n }\n }\n else if (parent) {\n parent.children.push(next);\n }\n}\nexports.append = append;\n/**\n * Prepend a child to an element.\n *\n * @param elem The element to prepend before.\n * @param child The element to be added as a child.\n */\nfunction prependChild(elem, child) {\n removeElement(child);\n child.parent = elem;\n child.prev = null;\n if (elem.children.unshift(child) !== 1) {\n var sibling = elem.children[1];\n sibling.prev = child;\n child.next = sibling;\n }\n else {\n child.next = null;\n }\n}\nexports.prependChild = prependChild;\n/**\n * Prepend an element before another.\n *\n * @param elem The element to prepend before.\n * @param prev The element be added.\n */\nfunction prepend(elem, prev) {\n removeElement(prev);\n var parent = elem.parent;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.indexOf(elem), 0, prev);\n }\n if (elem.prev) {\n elem.prev.next = prev;\n }\n prev.parent = parent;\n prev.prev = elem.prev;\n prev.next = elem;\n elem.prev = prev;\n}\nexports.prepend = prepend;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar decode_codepoint_1 = __importDefault(require(\"entities/lib/decode_codepoint\"));\nvar entities_json_1 = __importDefault(require(\"entities/lib/maps/entities.json\"));\nvar legacy_json_1 = __importDefault(require(\"entities/lib/maps/legacy.json\"));\nvar xml_json_1 = __importDefault(require(\"entities/lib/maps/xml.json\"));\nfunction whitespace(c) {\n return c === \" \" || c === \"\\n\" || c === \"\\t\" || c === \"\\f\" || c === \"\\r\";\n}\nfunction isASCIIAlpha(c) {\n return (c >= \"a\" && c <= \"z\") || (c >= \"A\" && c <= \"Z\");\n}\nfunction ifElseState(upper, SUCCESS, FAILURE) {\n var lower = upper.toLowerCase();\n if (upper === lower) {\n return function (t, c) {\n if (c === lower) {\n t._state = SUCCESS;\n }\n else {\n t._state = FAILURE;\n t._index--;\n }\n };\n }\n return function (t, c) {\n if (c === lower || c === upper) {\n t._state = SUCCESS;\n }\n else {\n t._state = FAILURE;\n t._index--;\n }\n };\n}\nfunction consumeSpecialNameChar(upper, NEXT_STATE) {\n var lower = upper.toLowerCase();\n return function (t, c) {\n if (c === lower || c === upper) {\n t._state = NEXT_STATE;\n }\n else {\n t._state = 3 /* InTagName */;\n t._index--; // Consume the token again\n }\n };\n}\nvar stateBeforeCdata1 = ifElseState(\"C\", 24 /* BeforeCdata2 */, 16 /* InDeclaration */);\nvar stateBeforeCdata2 = ifElseState(\"D\", 25 /* BeforeCdata3 */, 16 /* InDeclaration */);\nvar stateBeforeCdata3 = ifElseState(\"A\", 26 /* BeforeCdata4 */, 16 /* InDeclaration */);\nvar stateBeforeCdata4 = ifElseState(\"T\", 27 /* BeforeCdata5 */, 16 /* InDeclaration */);\nvar stateBeforeCdata5 = ifElseState(\"A\", 28 /* BeforeCdata6 */, 16 /* InDeclaration */);\nvar stateBeforeScript1 = consumeSpecialNameChar(\"R\", 35 /* BeforeScript2 */);\nvar stateBeforeScript2 = consumeSpecialNameChar(\"I\", 36 /* BeforeScript3 */);\nvar stateBeforeScript3 = consumeSpecialNameChar(\"P\", 37 /* BeforeScript4 */);\nvar stateBeforeScript4 = consumeSpecialNameChar(\"T\", 38 /* BeforeScript5 */);\nvar stateAfterScript1 = ifElseState(\"R\", 40 /* AfterScript2 */, 1 /* Text */);\nvar stateAfterScript2 = ifElseState(\"I\", 41 /* AfterScript3 */, 1 /* Text */);\nvar stateAfterScript3 = ifElseState(\"P\", 42 /* AfterScript4 */, 1 /* Text */);\nvar stateAfterScript4 = ifElseState(\"T\", 43 /* AfterScript5 */, 1 /* Text */);\nvar stateBeforeStyle1 = consumeSpecialNameChar(\"Y\", 45 /* BeforeStyle2 */);\nvar stateBeforeStyle2 = consumeSpecialNameChar(\"L\", 46 /* BeforeStyle3 */);\nvar stateBeforeStyle3 = consumeSpecialNameChar(\"E\", 47 /* BeforeStyle4 */);\nvar stateAfterStyle1 = ifElseState(\"Y\", 49 /* AfterStyle2 */, 1 /* Text */);\nvar stateAfterStyle2 = ifElseState(\"L\", 50 /* AfterStyle3 */, 1 /* Text */);\nvar stateAfterStyle3 = ifElseState(\"E\", 51 /* AfterStyle4 */, 1 /* Text */);\nvar stateBeforeSpecialT = consumeSpecialNameChar(\"I\", 54 /* BeforeTitle1 */);\nvar stateBeforeTitle1 = consumeSpecialNameChar(\"T\", 55 /* BeforeTitle2 */);\nvar stateBeforeTitle2 = consumeSpecialNameChar(\"L\", 56 /* BeforeTitle3 */);\nvar stateBeforeTitle3 = consumeSpecialNameChar(\"E\", 57 /* BeforeTitle4 */);\nvar stateAfterSpecialTEnd = ifElseState(\"I\", 58 /* AfterTitle1 */, 1 /* Text */);\nvar stateAfterTitle1 = ifElseState(\"T\", 59 /* AfterTitle2 */, 1 /* Text */);\nvar stateAfterTitle2 = ifElseState(\"L\", 60 /* AfterTitle3 */, 1 /* Text */);\nvar stateAfterTitle3 = ifElseState(\"E\", 61 /* AfterTitle4 */, 1 /* Text */);\nvar stateBeforeEntity = ifElseState(\"#\", 63 /* BeforeNumericEntity */, 64 /* InNamedEntity */);\nvar stateBeforeNumericEntity = ifElseState(\"X\", 66 /* InHexEntity */, 65 /* InNumericEntity */);\nvar Tokenizer = /** @class */ (function () {\n function Tokenizer(options, cbs) {\n var _a;\n /** The current state the tokenizer is in. */\n this._state = 1 /* Text */;\n /** The read buffer. */\n this.buffer = \"\";\n /** The beginning of the section that is currently being read. */\n this.sectionStart = 0;\n /** The index within the buffer that we are currently looking at. */\n this._index = 0;\n /**\n * Data that has already been processed will be removed from the buffer occasionally.\n * `_bufferOffset` keeps track of how many characters have been removed, to make sure position information is accurate.\n */\n this.bufferOffset = 0;\n /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */\n this.baseState = 1 /* Text */;\n /** For special parsing behavior inside of script and style tags. */\n this.special = 1 /* None */;\n /** Indicates whether the tokenizer has been paused. */\n this.running = true;\n /** Indicates whether the tokenizer has finished running / `.end` has been called. */\n this.ended = false;\n this.cbs = cbs;\n this.xmlMode = !!(options === null || options === void 0 ? void 0 : options.xmlMode);\n this.decodeEntities = (_a = options === null || options === void 0 ? void 0 : options.decodeEntities) !== null && _a !== void 0 ? _a : true;\n }\n Tokenizer.prototype.reset = function () {\n this._state = 1 /* Text */;\n this.buffer = \"\";\n this.sectionStart = 0;\n this._index = 0;\n this.bufferOffset = 0;\n this.baseState = 1 /* Text */;\n this.special = 1 /* None */;\n this.running = true;\n this.ended = false;\n };\n Tokenizer.prototype.write = function (chunk) {\n if (this.ended)\n this.cbs.onerror(Error(\".write() after done!\"));\n this.buffer += chunk;\n this.parse();\n };\n Tokenizer.prototype.end = function (chunk) {\n if (this.ended)\n this.cbs.onerror(Error(\".end() after done!\"));\n if (chunk)\n this.write(chunk);\n this.ended = true;\n if (this.running)\n this.finish();\n };\n Tokenizer.prototype.pause = function () {\n this.running = false;\n };\n Tokenizer.prototype.resume = function () {\n this.running = true;\n if (this._index < this.buffer.length) {\n this.parse();\n }\n if (this.ended) {\n this.finish();\n }\n };\n /**\n * The current index within all of the written data.\n */\n Tokenizer.prototype.getAbsoluteIndex = function () {\n return this.bufferOffset + this._index;\n };\n Tokenizer.prototype.stateText = function (c) {\n if (c === \"<\") {\n if (this._index > this.sectionStart) {\n this.cbs.ontext(this.getSection());\n }\n this._state = 2 /* BeforeTagName */;\n this.sectionStart = this._index;\n }\n else if (this.decodeEntities &&\n c === \"&\" &&\n (this.special === 1 /* None */ || this.special === 4 /* Title */)) {\n if (this._index > this.sectionStart) {\n this.cbs.ontext(this.getSection());\n }\n this.baseState = 1 /* Text */;\n this._state = 62 /* BeforeEntity */;\n this.sectionStart = this._index;\n }\n };\n /**\n * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.\n *\n * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).\n * We allow anything that wouldn't end the tag.\n */\n Tokenizer.prototype.isTagStartChar = function (c) {\n return (isASCIIAlpha(c) ||\n (this.xmlMode && !whitespace(c) && c !== \"/\" && c !== \">\"));\n };\n Tokenizer.prototype.stateBeforeTagName = function (c) {\n if (c === \"/\") {\n this._state = 5 /* BeforeClosingTagName */;\n }\n else if (c === \"<\") {\n this.cbs.ontext(this.getSection());\n this.sectionStart = this._index;\n }\n else if (c === \">\" ||\n this.special !== 1 /* None */ ||\n whitespace(c)) {\n this._state = 1 /* Text */;\n }\n else if (c === \"!\") {\n this._state = 15 /* BeforeDeclaration */;\n this.sectionStart = this._index + 1;\n }\n else if (c === \"?\") {\n this._state = 17 /* InProcessingInstruction */;\n this.sectionStart = this._index + 1;\n }\n else if (!this.isTagStartChar(c)) {\n this._state = 1 /* Text */;\n }\n else {\n this._state =\n !this.xmlMode && (c === \"s\" || c === \"S\")\n ? 32 /* BeforeSpecialS */\n : !this.xmlMode && (c === \"t\" || c === \"T\")\n ? 52 /* BeforeSpecialT */\n : 3 /* InTagName */;\n this.sectionStart = this._index;\n }\n };\n Tokenizer.prototype.stateInTagName = function (c) {\n if (c === \"/\" || c === \">\" || whitespace(c)) {\n this.emitToken(\"onopentagname\");\n this._state = 8 /* BeforeAttributeName */;\n this._index--;\n }\n };\n Tokenizer.prototype.stateBeforeClosingTagName = function (c) {\n if (whitespace(c)) {\n // Ignore\n }\n else if (c === \">\") {\n this._state = 1 /* Text */;\n }\n else if (this.special !== 1 /* None */) {\n if (this.special !== 4 /* Title */ && (c === \"s\" || c === \"S\")) {\n this._state = 33 /* BeforeSpecialSEnd */;\n }\n else if (this.special === 4 /* Title */ &&\n (c === \"t\" || c === \"T\")) {\n this._state = 53 /* BeforeSpecialTEnd */;\n }\n else {\n this._state = 1 /* Text */;\n this._index--;\n }\n }\n else if (!this.isTagStartChar(c)) {\n this._state = 20 /* InSpecialComment */;\n this.sectionStart = this._index;\n }\n else {\n this._state = 6 /* InClosingTagName */;\n this.sectionStart = this._index;\n }\n };\n Tokenizer.prototype.stateInClosingTagName = function (c) {\n if (c === \">\" || whitespace(c)) {\n this.emitToken(\"onclosetag\");\n this._state = 7 /* AfterClosingTagName */;\n this._index--;\n }\n };\n Tokenizer.prototype.stateAfterClosingTagName = function (c) {\n // Skip everything until \">\"\n if (c === \">\") {\n this._state = 1 /* Text */;\n this.sectionStart = this._index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeName = function (c) {\n if (c === \">\") {\n this.cbs.onopentagend();\n this._state = 1 /* Text */;\n this.sectionStart = this._index + 1;\n }\n else if (c === \"/\") {\n this._state = 4 /* InSelfClosingTag */;\n }\n else if (!whitespace(c)) {\n this._state = 9 /* InAttributeName */;\n this.sectionStart = this._index;\n }\n };\n Tokenizer.prototype.stateInSelfClosingTag = function (c) {\n if (c === \">\") {\n this.cbs.onselfclosingtag();\n this._state = 1 /* Text */;\n this.sectionStart = this._index + 1;\n this.special = 1 /* None */; // Reset special state, in case of self-closing special tags\n }\n else if (!whitespace(c)) {\n this._state = 8 /* BeforeAttributeName */;\n this._index--;\n }\n };\n Tokenizer.prototype.stateInAttributeName = function (c) {\n if (c === \"=\" || c === \"/\" || c === \">\" || whitespace(c)) {\n this.cbs.onattribname(this.getSection());\n this.sectionStart = -1;\n this._state = 10 /* AfterAttributeName */;\n this._index--;\n }\n };\n Tokenizer.prototype.stateAfterAttributeName = function (c) {\n if (c === \"=\") {\n this._state = 11 /* BeforeAttributeValue */;\n }\n else if (c === \"/\" || c === \">\") {\n this.cbs.onattribend(undefined);\n this._state = 8 /* BeforeAttributeName */;\n this._index--;\n }\n else if (!whitespace(c)) {\n this.cbs.onattribend(undefined);\n this._state = 9 /* InAttributeName */;\n this.sectionStart = this._index;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeValue = function (c) {\n if (c === '\"') {\n this._state = 12 /* InAttributeValueDq */;\n this.sectionStart = this._index + 1;\n }\n else if (c === \"'\") {\n this._state = 13 /* InAttributeValueSq */;\n this.sectionStart = this._index + 1;\n }\n else if (!whitespace(c)) {\n this._state = 14 /* InAttributeValueNq */;\n this.sectionStart = this._index;\n this._index--; // Reconsume token\n }\n };\n Tokenizer.prototype.handleInAttributeValue = function (c, quote) {\n if (c === quote) {\n this.emitToken(\"onattribdata\");\n this.cbs.onattribend(quote);\n this._state = 8 /* BeforeAttributeName */;\n }\n else if (this.decodeEntities && c === \"&\") {\n this.emitToken(\"onattribdata\");\n this.baseState = this._state;\n this._state = 62 /* BeforeEntity */;\n this.sectionStart = this._index;\n }\n };\n Tokenizer.prototype.stateInAttributeValueDoubleQuotes = function (c) {\n this.handleInAttributeValue(c, '\"');\n };\n Tokenizer.prototype.stateInAttributeValueSingleQuotes = function (c) {\n this.handleInAttributeValue(c, \"'\");\n };\n Tokenizer.prototype.stateInAttributeValueNoQuotes = function (c) {\n if (whitespace(c) || c === \">\") {\n this.emitToken(\"onattribdata\");\n this.cbs.onattribend(null);\n this._state = 8 /* BeforeAttributeName */;\n this._index--;\n }\n else if (this.decodeEntities && c === \"&\") {\n this.emitToken(\"onattribdata\");\n this.baseState = this._state;\n this._state = 62 /* BeforeEntity */;\n this.sectionStart = this._index;\n }\n };\n Tokenizer.prototype.stateBeforeDeclaration = function (c) {\n this._state =\n c === \"[\"\n ? 23 /* BeforeCdata1 */\n : c === \"-\"\n ? 18 /* BeforeComment */\n : 16 /* InDeclaration */;\n };\n Tokenizer.prototype.stateInDeclaration = function (c) {\n if (c === \">\") {\n this.cbs.ondeclaration(this.getSection());\n this._state = 1 /* Text */;\n this.sectionStart = this._index + 1;\n }\n };\n Tokenizer.prototype.stateInProcessingInstruction = function (c) {\n if (c === \">\") {\n this.cbs.onprocessinginstruction(this.getSection());\n this._state = 1 /* Text */;\n this.sectionStart = this._index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeComment = function (c) {\n if (c === \"-\") {\n this._state = 19 /* InComment */;\n this.sectionStart = this._index + 1;\n }\n else {\n this._state = 16 /* InDeclaration */;\n }\n };\n Tokenizer.prototype.stateInComment = function (c) {\n if (c === \"-\")\n this._state = 21 /* AfterComment1 */;\n };\n Tokenizer.prototype.stateInSpecialComment = function (c) {\n if (c === \">\") {\n this.cbs.oncomment(this.buffer.substring(this.sectionStart, this._index));\n this._state = 1 /* Text */;\n this.sectionStart = this._index + 1;\n }\n };\n Tokenizer.prototype.stateAfterComment1 = function (c) {\n if (c === \"-\") {\n this._state = 22 /* AfterComment2 */;\n }\n else {\n this._state = 19 /* InComment */;\n }\n };\n Tokenizer.prototype.stateAfterComment2 = function (c) {\n if (c === \">\") {\n // Remove 2 trailing chars\n this.cbs.oncomment(this.buffer.substring(this.sectionStart, this._index - 2));\n this._state = 1 /* Text */;\n this.sectionStart = this._index + 1;\n }\n else if (c !== \"-\") {\n this._state = 19 /* InComment */;\n }\n // Else: stay in AFTER_COMMENT_2 (`--->`)\n };\n Tokenizer.prototype.stateBeforeCdata6 = function (c) {\n if (c === \"[\") {\n this._state = 29 /* InCdata */;\n this.sectionStart = this._index + 1;\n }\n else {\n this._state = 16 /* InDeclaration */;\n this._index--;\n }\n };\n Tokenizer.prototype.stateInCdata = function (c) {\n if (c === \"]\")\n this._state = 30 /* AfterCdata1 */;\n };\n Tokenizer.prototype.stateAfterCdata1 = function (c) {\n if (c === \"]\")\n this._state = 31 /* AfterCdata2 */;\n else\n this._state = 29 /* InCdata */;\n };\n Tokenizer.prototype.stateAfterCdata2 = function (c) {\n if (c === \">\") {\n // Remove 2 trailing chars\n this.cbs.oncdata(this.buffer.substring(this.sectionStart, this._index - 2));\n this._state = 1 /* Text */;\n this.sectionStart = this._index + 1;\n }\n else if (c !== \"]\") {\n this._state = 29 /* InCdata */;\n }\n // Else: stay in AFTER_CDATA_2 (`]]]>`)\n };\n Tokenizer.prototype.stateBeforeSpecialS = function (c) {\n if (c === \"c\" || c === \"C\") {\n this._state = 34 /* BeforeScript1 */;\n }\n else if (c === \"t\" || c === \"T\") {\n this._state = 44 /* BeforeStyle1 */;\n }\n else {\n this._state = 3 /* InTagName */;\n this._index--; // Consume the token again\n }\n };\n Tokenizer.prototype.stateBeforeSpecialSEnd = function (c) {\n if (this.special === 2 /* Script */ && (c === \"c\" || c === \"C\")) {\n this._state = 39 /* AfterScript1 */;\n }\n else if (this.special === 3 /* Style */ && (c === \"t\" || c === \"T\")) {\n this._state = 48 /* AfterStyle1 */;\n }\n else\n this._state = 1 /* Text */;\n };\n Tokenizer.prototype.stateBeforeSpecialLast = function (c, special) {\n if (c === \"/\" || c === \">\" || whitespace(c)) {\n this.special = special;\n }\n this._state = 3 /* InTagName */;\n this._index--; // Consume the token again\n };\n Tokenizer.prototype.stateAfterSpecialLast = function (c, sectionStartOffset) {\n if (c === \">\" || whitespace(c)) {\n this.special = 1 /* None */;\n this._state = 6 /* InClosingTagName */;\n this.sectionStart = this._index - sectionStartOffset;\n this._index--; // Reconsume the token\n }\n else\n this._state = 1 /* Text */;\n };\n // For entities terminated with a semicolon\n Tokenizer.prototype.parseFixedEntity = function (map) {\n if (map === void 0) { map = this.xmlMode ? xml_json_1.default : entities_json_1.default; }\n // Offset = 1\n if (this.sectionStart + 1 < this._index) {\n var entity = this.buffer.substring(this.sectionStart + 1, this._index);\n if (Object.prototype.hasOwnProperty.call(map, entity)) {\n this.emitPartial(map[entity]);\n this.sectionStart = this._index + 1;\n }\n }\n };\n // Parses legacy entities (without trailing semicolon)\n Tokenizer.prototype.parseLegacyEntity = function () {\n var start = this.sectionStart + 1;\n // The max length of legacy entities is 6\n var limit = Math.min(this._index - start, 6);\n while (limit >= 2) {\n // The min length of legacy entities is 2\n var entity = this.buffer.substr(start, limit);\n if (Object.prototype.hasOwnProperty.call(legacy_json_1.default, entity)) {\n this.emitPartial(legacy_json_1.default[entity]);\n this.sectionStart += limit + 1;\n return;\n }\n limit--;\n }\n };\n Tokenizer.prototype.stateInNamedEntity = function (c) {\n if (c === \";\") {\n this.parseFixedEntity();\n // Retry as legacy entity if entity wasn't parsed\n if (this.baseState === 1 /* Text */ &&\n this.sectionStart + 1 < this._index &&\n !this.xmlMode) {\n this.parseLegacyEntity();\n }\n this._state = this.baseState;\n }\n else if ((c < \"0\" || c > \"9\") && !isASCIIAlpha(c)) {\n if (this.xmlMode || this.sectionStart + 1 === this._index) {\n // Ignore\n }\n else if (this.baseState !== 1 /* Text */) {\n if (c !== \"=\") {\n // Parse as legacy entity, without allowing additional characters.\n this.parseFixedEntity(legacy_json_1.default);\n }\n }\n else {\n this.parseLegacyEntity();\n }\n this._state = this.baseState;\n this._index--;\n }\n };\n Tokenizer.prototype.decodeNumericEntity = function (offset, base, strict) {\n var sectionStart = this.sectionStart + offset;\n if (sectionStart !== this._index) {\n // Parse entity\n var entity = this.buffer.substring(sectionStart, this._index);\n var parsed = parseInt(entity, base);\n this.emitPartial(decode_codepoint_1.default(parsed));\n this.sectionStart = strict ? this._index + 1 : this._index;\n }\n this._state = this.baseState;\n };\n Tokenizer.prototype.stateInNumericEntity = function (c) {\n if (c === \";\") {\n this.decodeNumericEntity(2, 10, true);\n }\n else if (c < \"0\" || c > \"9\") {\n if (!this.xmlMode) {\n this.decodeNumericEntity(2, 10, false);\n }\n else {\n this._state = this.baseState;\n }\n this._index--;\n }\n };\n Tokenizer.prototype.stateInHexEntity = function (c) {\n if (c === \";\") {\n this.decodeNumericEntity(3, 16, true);\n }\n else if ((c < \"a\" || c > \"f\") &&\n (c < \"A\" || c > \"F\") &&\n (c < \"0\" || c > \"9\")) {\n if (!this.xmlMode) {\n this.decodeNumericEntity(3, 16, false);\n }\n else {\n this._state = this.baseState;\n }\n this._index--;\n }\n };\n Tokenizer.prototype.cleanup = function () {\n if (this.sectionStart < 0) {\n this.buffer = \"\";\n this.bufferOffset += this._index;\n this._index = 0;\n }\n else if (this.running) {\n if (this._state === 1 /* Text */) {\n if (this.sectionStart !== this._index) {\n this.cbs.ontext(this.buffer.substr(this.sectionStart));\n }\n this.buffer = \"\";\n this.bufferOffset += this._index;\n this._index = 0;\n }\n else if (this.sectionStart === this._index) {\n // The section just started\n this.buffer = \"\";\n this.bufferOffset += this._index;\n this._index = 0;\n }\n else {\n // Remove everything unnecessary\n this.buffer = this.buffer.substr(this.sectionStart);\n this._index -= this.sectionStart;\n this.bufferOffset += this.sectionStart;\n }\n this.sectionStart = 0;\n }\n };\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n Tokenizer.prototype.parse = function () {\n while (this._index < this.buffer.length && this.running) {\n var c = this.buffer.charAt(this._index);\n if (this._state === 1 /* Text */) {\n this.stateText(c);\n }\n else if (this._state === 12 /* InAttributeValueDq */) {\n this.stateInAttributeValueDoubleQuotes(c);\n }\n else if (this._state === 9 /* InAttributeName */) {\n this.stateInAttributeName(c);\n }\n else if (this._state === 19 /* InComment */) {\n this.stateInComment(c);\n }\n else if (this._state === 20 /* InSpecialComment */) {\n this.stateInSpecialComment(c);\n }\n else if (this._state === 8 /* BeforeAttributeName */) {\n this.stateBeforeAttributeName(c);\n }\n else if (this._state === 3 /* InTagName */) {\n this.stateInTagName(c);\n }\n else if (this._state === 6 /* InClosingTagName */) {\n this.stateInClosingTagName(c);\n }\n else if (this._state === 2 /* BeforeTagName */) {\n this.stateBeforeTagName(c);\n }\n else if (this._state === 10 /* AfterAttributeName */) {\n this.stateAfterAttributeName(c);\n }\n else if (this._state === 13 /* InAttributeValueSq */) {\n this.stateInAttributeValueSingleQuotes(c);\n }\n else if (this._state === 11 /* BeforeAttributeValue */) {\n this.stateBeforeAttributeValue(c);\n }\n else if (this._state === 5 /* BeforeClosingTagName */) {\n this.stateBeforeClosingTagName(c);\n }\n else if (this._state === 7 /* AfterClosingTagName */) {\n this.stateAfterClosingTagName(c);\n }\n else if (this._state === 32 /* BeforeSpecialS */) {\n this.stateBeforeSpecialS(c);\n }\n else if (this._state === 21 /* AfterComment1 */) {\n this.stateAfterComment1(c);\n }\n else if (this._state === 14 /* InAttributeValueNq */) {\n this.stateInAttributeValueNoQuotes(c);\n }\n else if (this._state === 4 /* InSelfClosingTag */) {\n this.stateInSelfClosingTag(c);\n }\n else if (this._state === 16 /* InDeclaration */) {\n this.stateInDeclaration(c);\n }\n else if (this._state === 15 /* BeforeDeclaration */) {\n this.stateBeforeDeclaration(c);\n }\n else if (this._state === 22 /* AfterComment2 */) {\n this.stateAfterComment2(c);\n }\n else if (this._state === 18 /* BeforeComment */) {\n this.stateBeforeComment(c);\n }\n else if (this._state === 33 /* BeforeSpecialSEnd */) {\n this.stateBeforeSpecialSEnd(c);\n }\n else if (this._state === 53 /* BeforeSpecialTEnd */) {\n stateAfterSpecialTEnd(this, c);\n }\n else if (this._state === 39 /* AfterScript1 */) {\n stateAfterScript1(this, c);\n }\n else if (this._state === 40 /* AfterScript2 */) {\n stateAfterScript2(this, c);\n }\n else if (this._state === 41 /* AfterScript3 */) {\n stateAfterScript3(this, c);\n }\n else if (this._state === 34 /* BeforeScript1 */) {\n stateBeforeScript1(this, c);\n }\n else if (this._state === 35 /* BeforeScript2 */) {\n stateBeforeScript2(this, c);\n }\n else if (this._state === 36 /* BeforeScript3 */) {\n stateBeforeScript3(this, c);\n }\n else if (this._state === 37 /* BeforeScript4 */) {\n stateBeforeScript4(this, c);\n }\n else if (this._state === 38 /* BeforeScript5 */) {\n this.stateBeforeSpecialLast(c, 2 /* Script */);\n }\n else if (this._state === 42 /* AfterScript4 */) {\n stateAfterScript4(this, c);\n }\n else if (this._state === 43 /* AfterScript5 */) {\n this.stateAfterSpecialLast(c, 6);\n }\n else if (this._state === 44 /* BeforeStyle1 */) {\n stateBeforeStyle1(this, c);\n }\n else if (this._state === 29 /* InCdata */) {\n this.stateInCdata(c);\n }\n else if (this._state === 45 /* BeforeStyle2 */) {\n stateBeforeStyle2(this, c);\n }\n else if (this._state === 46 /* BeforeStyle3 */) {\n stateBeforeStyle3(this, c);\n }\n else if (this._state === 47 /* BeforeStyle4 */) {\n this.stateBeforeSpecialLast(c, 3 /* Style */);\n }\n else if (this._state === 48 /* AfterStyle1 */) {\n stateAfterStyle1(this, c);\n }\n else if (this._state === 49 /* AfterStyle2 */) {\n stateAfterStyle2(this, c);\n }\n else if (this._state === 50 /* AfterStyle3 */) {\n stateAfterStyle3(this, c);\n }\n else if (this._state === 51 /* AfterStyle4 */) {\n this.stateAfterSpecialLast(c, 5);\n }\n else if (this._state === 52 /* BeforeSpecialT */) {\n stateBeforeSpecialT(this, c);\n }\n else if (this._state === 54 /* BeforeTitle1 */) {\n stateBeforeTitle1(this, c);\n }\n else if (this._state === 55 /* BeforeTitle2 */) {\n stateBeforeTitle2(this, c);\n }\n else if (this._state === 56 /* BeforeTitle3 */) {\n stateBeforeTitle3(this, c);\n }\n else if (this._state === 57 /* BeforeTitle4 */) {\n this.stateBeforeSpecialLast(c, 4 /* Title */);\n }\n else if (this._state === 58 /* AfterTitle1 */) {\n stateAfterTitle1(this, c);\n }\n else if (this._state === 59 /* AfterTitle2 */) {\n stateAfterTitle2(this, c);\n }\n else if (this._state === 60 /* AfterTitle3 */) {\n stateAfterTitle3(this, c);\n }\n else if (this._state === 61 /* AfterTitle4 */) {\n this.stateAfterSpecialLast(c, 5);\n }\n else if (this._state === 17 /* InProcessingInstruction */) {\n this.stateInProcessingInstruction(c);\n }\n else if (this._state === 64 /* InNamedEntity */) {\n this.stateInNamedEntity(c);\n }\n else if (this._state === 23 /* BeforeCdata1 */) {\n stateBeforeCdata1(this, c);\n }\n else if (this._state === 62 /* BeforeEntity */) {\n stateBeforeEntity(this, c);\n }\n else if (this._state === 24 /* BeforeCdata2 */) {\n stateBeforeCdata2(this, c);\n }\n else if (this._state === 25 /* BeforeCdata3 */) {\n stateBeforeCdata3(this, c);\n }\n else if (this._state === 30 /* AfterCdata1 */) {\n this.stateAfterCdata1(c);\n }\n else if (this._state === 31 /* AfterCdata2 */) {\n this.stateAfterCdata2(c);\n }\n else if (this._state === 26 /* BeforeCdata4 */) {\n stateBeforeCdata4(this, c);\n }\n else if (this._state === 27 /* BeforeCdata5 */) {\n stateBeforeCdata5(this, c);\n }\n else if (this._state === 28 /* BeforeCdata6 */) {\n this.stateBeforeCdata6(c);\n }\n else if (this._state === 66 /* InHexEntity */) {\n this.stateInHexEntity(c);\n }\n else if (this._state === 65 /* InNumericEntity */) {\n this.stateInNumericEntity(c);\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n }\n else if (this._state === 63 /* BeforeNumericEntity */) {\n stateBeforeNumericEntity(this, c);\n }\n else {\n this.cbs.onerror(Error(\"unknown _state\"), this._state);\n }\n this._index++;\n }\n this.cleanup();\n };\n Tokenizer.prototype.finish = function () {\n // If there is remaining data, emit it in a reasonable way\n if (this.sectionStart < this._index) {\n this.handleTrailingData();\n }\n this.cbs.onend();\n };\n Tokenizer.prototype.handleTrailingData = function () {\n var data = this.buffer.substr(this.sectionStart);\n if (this._state === 29 /* InCdata */ ||\n this._state === 30 /* AfterCdata1 */ ||\n this._state === 31 /* AfterCdata2 */) {\n this.cbs.oncdata(data);\n }\n else if (this._state === 19 /* InComment */ ||\n this._state === 21 /* AfterComment1 */ ||\n this._state === 22 /* AfterComment2 */) {\n this.cbs.oncomment(data);\n }\n else if (this._state === 64 /* InNamedEntity */ && !this.xmlMode) {\n this.parseLegacyEntity();\n if (this.sectionStart < this._index) {\n this._state = this.baseState;\n this.handleTrailingData();\n }\n }\n else if (this._state === 65 /* InNumericEntity */ && !this.xmlMode) {\n this.decodeNumericEntity(2, 10, false);\n if (this.sectionStart < this._index) {\n this._state = this.baseState;\n this.handleTrailingData();\n }\n }\n else if (this._state === 66 /* InHexEntity */ && !this.xmlMode) {\n this.decodeNumericEntity(3, 16, false);\n if (this.sectionStart < this._index) {\n this._state = this.baseState;\n this.handleTrailingData();\n }\n }\n else if (this._state !== 3 /* InTagName */ &&\n this._state !== 8 /* BeforeAttributeName */ &&\n this._state !== 11 /* BeforeAttributeValue */ &&\n this._state !== 10 /* AfterAttributeName */ &&\n this._state !== 9 /* InAttributeName */ &&\n this._state !== 13 /* InAttributeValueSq */ &&\n this._state !== 12 /* InAttributeValueDq */ &&\n this._state !== 14 /* InAttributeValueNq */ &&\n this._state !== 6 /* InClosingTagName */) {\n this.cbs.ontext(data);\n }\n /*\n * Else, ignore remaining data\n * TODO add a way to remove current tag\n */\n };\n Tokenizer.prototype.getSection = function () {\n return this.buffer.substring(this.sectionStart, this._index);\n };\n Tokenizer.prototype.emitToken = function (name) {\n this.cbs[name](this.getSection());\n this.sectionStart = -1;\n };\n Tokenizer.prototype.emitPartial = function (value) {\n if (this.baseState !== 1 /* Text */) {\n this.cbs.onattribdata(value); // TODO implement the new event\n }\n else {\n this.cbs.ontext(value);\n }\n };\n return Tokenizer;\n}());\nexports.default = Tokenizer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RssHandler = exports.DefaultHandler = exports.DomUtils = exports.ElementType = exports.Tokenizer = exports.createDomStream = exports.parseDOM = exports.parseDocument = exports.DomHandler = exports.Parser = void 0;\nvar Parser_1 = require(\"./Parser\");\nObject.defineProperty(exports, \"Parser\", { enumerable: true, get: function () { return Parser_1.Parser; } });\nvar domhandler_1 = require(\"domhandler\");\nObject.defineProperty(exports, \"DomHandler\", { enumerable: true, get: function () { return domhandler_1.DomHandler; } });\nObject.defineProperty(exports, \"DefaultHandler\", { enumerable: true, get: function () { return domhandler_1.DomHandler; } });\n// Helper methods\n/**\n * Parses the data, returns the resulting document.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n */\nfunction parseDocument(data, options) {\n var handler = new domhandler_1.DomHandler(undefined, options);\n new Parser_1.Parser(handler, options).end(data);\n return handler.root;\n}\nexports.parseDocument = parseDocument;\n/**\n * Parses data, returns an array of the root nodes.\n *\n * Note that the root nodes still have a `Document` node as their parent.\n * Use `parseDocument` to get the `Document` node instead.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n * @deprecated Use `parseDocument` instead.\n */\nfunction parseDOM(data, options) {\n return parseDocument(data, options).children;\n}\nexports.parseDOM = parseDOM;\n/**\n * Creates a parser instance, with an attached DOM handler.\n *\n * @param cb A callback that will be called once parsing has been completed.\n * @param options Optional options for the parser and DOM builder.\n * @param elementCb An optional callback that will be called every time a tag has been completed inside of the DOM.\n */\nfunction createDomStream(cb, options, elementCb) {\n var handler = new domhandler_1.DomHandler(cb, options, elementCb);\n return new Parser_1.Parser(handler, options);\n}\nexports.createDomStream = createDomStream;\nvar Tokenizer_1 = require(\"./Tokenizer\");\nObject.defineProperty(exports, \"Tokenizer\", { enumerable: true, get: function () { return __importDefault(Tokenizer_1).default; } });\nvar ElementType = __importStar(require(\"domelementtype\"));\nexports.ElementType = ElementType;\n/*\n * All of the following exports exist for backwards-compatibility.\n * They should probably be removed eventually.\n */\n__exportStar(require(\"./FeedHandler\"), exports);\nexports.DomUtils = __importStar(require(\"domutils\"));\nvar FeedHandler_1 = require(\"./FeedHandler\");\nObject.defineProperty(exports, \"RssHandler\", { enumerable: true, get: function () { return FeedHandler_1.FeedHandler; } });\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.innerText = exports.textContent = exports.getText = exports.getInnerHTML = exports.getOuterHTML = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar dom_serializer_1 = __importDefault(require(\"dom-serializer\"));\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * @param node Node to get the outer HTML of.\n * @param options Options for serialization.\n * @deprecated Use the `dom-serializer` module directly.\n * @returns `node`'s outer HTML.\n */\nfunction getOuterHTML(node, options) {\n return (0, dom_serializer_1.default)(node, options);\n}\nexports.getOuterHTML = getOuterHTML;\n/**\n * @param node Node to get the inner HTML of.\n * @param options Options for serialization.\n * @deprecated Use the `dom-serializer` module directly.\n * @returns `node`'s inner HTML.\n */\nfunction getInnerHTML(node, options) {\n return (0, domhandler_1.hasChildren)(node)\n ? node.children.map(function (node) { return getOuterHTML(node, options); }).join(\"\")\n : \"\";\n}\nexports.getInnerHTML = getInnerHTML;\n/**\n * Get a node's inner text. Same as `textContent`, but inserts newlines for `
` tags.\n *\n * @deprecated Use `textContent` instead.\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n */\nfunction getText(node) {\n if (Array.isArray(node))\n return node.map(getText).join(\"\");\n if ((0, domhandler_1.isTag)(node))\n return node.name === \"br\" ? \"\\n\" : getText(node.children);\n if ((0, domhandler_1.isCDATA)(node))\n return getText(node.children);\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.getText = getText;\n/**\n * Get a node's text content.\n *\n * @param node Node to get the text content of.\n * @returns `node`'s text content.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent}\n */\nfunction textContent(node) {\n if (Array.isArray(node))\n return node.map(textContent).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && !(0, domhandler_1.isComment)(node)) {\n return textContent(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.textContent = textContent;\n/**\n * Get a node's inner text.\n *\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/innerText}\n */\nfunction innerText(node) {\n if (Array.isArray(node))\n return node.map(innerText).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && (node.type === domelementtype_1.ElementType.Tag || (0, domhandler_1.isCDATA)(node))) {\n return innerText(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.innerText = innerText;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasChildren = exports.isDocument = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = void 0;\n__exportStar(require(\"./stringify\"), exports);\n__exportStar(require(\"./traversal\"), exports);\n__exportStar(require(\"./manipulation\"), exports);\n__exportStar(require(\"./querying\"), exports);\n__exportStar(require(\"./legacy\"), exports);\n__exportStar(require(\"./helpers\"), exports);\n__exportStar(require(\"./feeds\"), exports);\n/** @deprecated Use these methods from `domhandler` directly. */\nvar domhandler_1 = require(\"domhandler\");\nObject.defineProperty(exports, \"isTag\", { enumerable: true, get: function () { return domhandler_1.isTag; } });\nObject.defineProperty(exports, \"isCDATA\", { enumerable: true, get: function () { return domhandler_1.isCDATA; } });\nObject.defineProperty(exports, \"isText\", { enumerable: true, get: function () { return domhandler_1.isText; } });\nObject.defineProperty(exports, \"isComment\", { enumerable: true, get: function () { return domhandler_1.isComment; } });\nObject.defineProperty(exports, \"isDocument\", { enumerable: true, get: function () { return domhandler_1.isDocument; } });\nObject.defineProperty(exports, \"hasChildren\", { enumerable: true, get: function () { return domhandler_1.hasChildren; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prevElementSibling = exports.nextElementSibling = exports.getName = exports.hasAttrib = exports.getAttributeValue = exports.getSiblings = exports.getParent = exports.getChildren = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar emptyArray = [];\n/**\n * Get a node's children.\n *\n * @param elem Node to get the children of.\n * @returns `elem`'s children, or an empty array.\n */\nfunction getChildren(elem) {\n var _a;\n return (_a = elem.children) !== null && _a !== void 0 ? _a : emptyArray;\n}\nexports.getChildren = getChildren;\n/**\n * Get a node's parent.\n *\n * @param elem Node to get the parent of.\n * @returns `elem`'s parent node.\n */\nfunction getParent(elem) {\n return elem.parent || null;\n}\nexports.getParent = getParent;\n/**\n * Gets an elements siblings, including the element itself.\n *\n * Attempts to get the children through the element's parent first.\n * If we don't have a parent (the element is a root node),\n * we walk the element's `prev` & `next` to get all remaining nodes.\n *\n * @param elem Element to get the siblings of.\n * @returns `elem`'s siblings.\n */\nfunction getSiblings(elem) {\n var _a, _b;\n var parent = getParent(elem);\n if (parent != null)\n return getChildren(parent);\n var siblings = [elem];\n var prev = elem.prev, next = elem.next;\n while (prev != null) {\n siblings.unshift(prev);\n (_a = prev, prev = _a.prev);\n }\n while (next != null) {\n siblings.push(next);\n (_b = next, next = _b.next);\n }\n return siblings;\n}\nexports.getSiblings = getSiblings;\n/**\n * Gets an attribute from an element.\n *\n * @param elem Element to check.\n * @param name Attribute name to retrieve.\n * @returns The element's attribute value, or `undefined`.\n */\nfunction getAttributeValue(elem, name) {\n var _a;\n return (_a = elem.attribs) === null || _a === void 0 ? void 0 : _a[name];\n}\nexports.getAttributeValue = getAttributeValue;\n/**\n * Checks whether an element has an attribute.\n *\n * @param elem Element to check.\n * @param name Attribute name to look for.\n * @returns Returns whether `elem` has the attribute `name`.\n */\nfunction hasAttrib(elem, name) {\n return (elem.attribs != null &&\n Object.prototype.hasOwnProperty.call(elem.attribs, name) &&\n elem.attribs[name] != null);\n}\nexports.hasAttrib = hasAttrib;\n/**\n * Get the tag name of an element.\n *\n * @param elem The element to get the name for.\n * @returns The tag name of `elem`.\n */\nfunction getName(elem) {\n return elem.name;\n}\nexports.getName = getName;\n/**\n * Returns the next element sibling of a node.\n *\n * @param elem The element to get the next sibling of.\n * @returns `elem`'s next sibling that is a tag.\n */\nfunction nextElementSibling(elem) {\n var _a;\n var next = elem.next;\n while (next !== null && !(0, domhandler_1.isTag)(next))\n (_a = next, next = _a.next);\n return next;\n}\nexports.nextElementSibling = nextElementSibling;\n/**\n * Returns the previous element sibling of a node.\n *\n * @param elem The element to get the previous sibling of.\n * @returns `elem`'s previous sibling that is a tag.\n */\nfunction prevElementSibling(elem) {\n var _a;\n var prev = elem.prev;\n while (prev !== null && !(0, domhandler_1.isTag)(prev))\n (_a = prev, prev = _a.prev);\n return prev;\n}\nexports.prevElementSibling = prevElementSibling;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFeed = void 0;\nvar stringify_1 = require(\"./stringify\");\nvar legacy_1 = require(\"./legacy\");\n/**\n * Get the feed object from the root of a DOM tree.\n *\n * @param doc - The DOM to to extract the feed from.\n * @returns The feed.\n */\nfunction getFeed(doc) {\n var feedRoot = getOneElement(isValidFeed, doc);\n return !feedRoot\n ? null\n : feedRoot.name === \"feed\"\n ? getAtomFeed(feedRoot)\n : getRssFeed(feedRoot);\n}\nexports.getFeed = getFeed;\n/**\n * Parse an Atom feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getAtomFeed(feedRoot) {\n var _a;\n var childs = feedRoot.children;\n var feed = {\n type: \"atom\",\n items: (0, legacy_1.getElementsByTagName)(\"entry\", childs).map(function (item) {\n var _a;\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"id\", children);\n addConditionally(entry, \"title\", \"title\", children);\n var href = (_a = getOneElement(\"link\", children)) === null || _a === void 0 ? void 0 : _a.attribs.href;\n if (href) {\n entry.link = href;\n }\n var description = fetch(\"summary\", children) || fetch(\"content\", children);\n if (description) {\n entry.description = description;\n }\n var pubDate = fetch(\"updated\", children);\n if (pubDate) {\n entry.pubDate = new Date(pubDate);\n }\n return entry;\n }),\n };\n addConditionally(feed, \"id\", \"id\", childs);\n addConditionally(feed, \"title\", \"title\", childs);\n var href = (_a = getOneElement(\"link\", childs)) === null || _a === void 0 ? void 0 : _a.attribs.href;\n if (href) {\n feed.link = href;\n }\n addConditionally(feed, \"description\", \"subtitle\", childs);\n var updated = fetch(\"updated\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"email\", childs, true);\n return feed;\n}\n/**\n * Parse a RSS feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getRssFeed(feedRoot) {\n var _a, _b;\n var childs = (_b = (_a = getOneElement(\"channel\", feedRoot.children)) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : [];\n var feed = {\n type: feedRoot.name.substr(0, 3),\n id: \"\",\n items: (0, legacy_1.getElementsByTagName)(\"item\", feedRoot.children).map(function (item) {\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"guid\", children);\n addConditionally(entry, \"title\", \"title\", children);\n addConditionally(entry, \"link\", \"link\", children);\n addConditionally(entry, \"description\", \"description\", children);\n var pubDate = fetch(\"pubDate\", children);\n if (pubDate)\n entry.pubDate = new Date(pubDate);\n return entry;\n }),\n };\n addConditionally(feed, \"title\", \"title\", childs);\n addConditionally(feed, \"link\", \"link\", childs);\n addConditionally(feed, \"description\", \"description\", childs);\n var updated = fetch(\"lastBuildDate\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"managingEditor\", childs, true);\n return feed;\n}\nvar MEDIA_KEYS_STRING = [\"url\", \"type\", \"lang\"];\nvar MEDIA_KEYS_INT = [\n \"fileSize\",\n \"bitrate\",\n \"framerate\",\n \"samplingrate\",\n \"channels\",\n \"duration\",\n \"height\",\n \"width\",\n];\n/**\n * Get all media elements of a feed item.\n *\n * @param where Nodes to search in.\n * @returns Media elements.\n */\nfunction getMediaElements(where) {\n return (0, legacy_1.getElementsByTagName)(\"media:content\", where).map(function (elem) {\n var attribs = elem.attribs;\n var media = {\n medium: attribs.medium,\n isDefault: !!attribs.isDefault,\n };\n for (var _i = 0, MEDIA_KEYS_STRING_1 = MEDIA_KEYS_STRING; _i < MEDIA_KEYS_STRING_1.length; _i++) {\n var attrib = MEDIA_KEYS_STRING_1[_i];\n if (attribs[attrib]) {\n media[attrib] = attribs[attrib];\n }\n }\n for (var _a = 0, MEDIA_KEYS_INT_1 = MEDIA_KEYS_INT; _a < MEDIA_KEYS_INT_1.length; _a++) {\n var attrib = MEDIA_KEYS_INT_1[_a];\n if (attribs[attrib]) {\n media[attrib] = parseInt(attribs[attrib], 10);\n }\n }\n if (attribs.expression) {\n media.expression =\n attribs.expression;\n }\n return media;\n });\n}\n/**\n * Get one element by tag name.\n *\n * @param tagName Tag name to look for\n * @param node Node to search in\n * @returns The element or null\n */\nfunction getOneElement(tagName, node) {\n return (0, legacy_1.getElementsByTagName)(tagName, node, true, 1)[0];\n}\n/**\n * Get the text content of an element with a certain tag name.\n *\n * @param tagName Tag name to look for.\n * @param where Node to search in.\n * @param recurse Whether to recurse into child nodes.\n * @returns The text content of the element.\n */\nfunction fetch(tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n return (0, stringify_1.textContent)((0, legacy_1.getElementsByTagName)(tagName, where, recurse, 1)).trim();\n}\n/**\n * Adds a property to an object if it has a value.\n *\n * @param obj Object to be extended\n * @param prop Property name\n * @param tagName Tag name that contains the conditionally added property\n * @param where Element to search for the property\n * @param recurse Whether to recurse into child nodes.\n */\nfunction addConditionally(obj, prop, tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n var val = fetch(tagName, where, recurse);\n if (val)\n obj[prop] = val;\n}\n/**\n * Checks if an element is a feed root node.\n *\n * @param value The name of the element to check.\n * @returns Whether an element is a feed root node.\n */\nfunction isValidFeed(value) {\n return value === \"rss\" || value === \"feed\" || value === \"rdf:RDF\";\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uniqueSort = exports.compareDocumentPosition = exports.removeSubsets = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Given an array of nodes, remove any member that is contained by another.\n *\n * @param nodes Nodes to filter.\n * @returns Remaining nodes that aren't subtrees of each other.\n */\nfunction removeSubsets(nodes) {\n var idx = nodes.length;\n /*\n * Check if each node (or one of its ancestors) is already contained in the\n * array.\n */\n while (--idx >= 0) {\n var node = nodes[idx];\n /*\n * Remove the node if it is not unique.\n * We are going through the array from the end, so we only\n * have to check nodes that preceed the node under consideration in the array.\n */\n if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) {\n nodes.splice(idx, 1);\n continue;\n }\n for (var ancestor = node.parent; ancestor; ancestor = ancestor.parent) {\n if (nodes.includes(ancestor)) {\n nodes.splice(idx, 1);\n break;\n }\n }\n }\n return nodes;\n}\nexports.removeSubsets = removeSubsets;\n/**\n * Compare the position of one node against another node in any other document.\n * The return value is a bitmask with the following values:\n *\n * Document order:\n * > There is an ordering, document order, defined on all the nodes in the\n * > document corresponding to the order in which the first character of the\n * > XML representation of each node occurs in the XML representation of the\n * > document after expansion of general entities. Thus, the document element\n * > node will be the first node. Element nodes occur before their children.\n * > Thus, document order orders element nodes in order of the occurrence of\n * > their start-tag in the XML (after expansion of entities). The attribute\n * > nodes of an element occur after the element and before its children. The\n * > relative order of attribute nodes is implementation-dependent./\n *\n * Source:\n * http://www.w3.org/TR/DOM-Level-3-Core/glossary.html#dt-document-order\n *\n * @param nodeA The first node to use in the comparison\n * @param nodeB The second node to use in the comparison\n * @returns A bitmask describing the input nodes' relative position.\n *\n * See http://dom.spec.whatwg.org/#dom-node-comparedocumentposition for\n * a description of these values.\n */\nfunction compareDocumentPosition(nodeA, nodeB) {\n var aParents = [];\n var bParents = [];\n if (nodeA === nodeB) {\n return 0;\n }\n var current = (0, domhandler_1.hasChildren)(nodeA) ? nodeA : nodeA.parent;\n while (current) {\n aParents.unshift(current);\n current = current.parent;\n }\n current = (0, domhandler_1.hasChildren)(nodeB) ? nodeB : nodeB.parent;\n while (current) {\n bParents.unshift(current);\n current = current.parent;\n }\n var maxIdx = Math.min(aParents.length, bParents.length);\n var idx = 0;\n while (idx < maxIdx && aParents[idx] === bParents[idx]) {\n idx++;\n }\n if (idx === 0) {\n return 1 /* DISCONNECTED */;\n }\n var sharedParent = aParents[idx - 1];\n var siblings = sharedParent.children;\n var aSibling = aParents[idx];\n var bSibling = bParents[idx];\n if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) {\n if (sharedParent === nodeB) {\n return 4 /* FOLLOWING */ | 16 /* CONTAINED_BY */;\n }\n return 4 /* FOLLOWING */;\n }\n if (sharedParent === nodeA) {\n return 2 /* PRECEDING */ | 8 /* CONTAINS */;\n }\n return 2 /* PRECEDING */;\n}\nexports.compareDocumentPosition = compareDocumentPosition;\n/**\n * Sort an array of nodes based on their relative position in the document and\n * remove any duplicate nodes. If the array contains nodes that do not belong\n * to the same document, sort order is unspecified.\n *\n * @param nodes Array of DOM nodes.\n * @returns Collection of unique nodes, sorted in document order.\n */\nfunction uniqueSort(nodes) {\n nodes = nodes.filter(function (node, i, arr) { return !arr.includes(node, i + 1); });\n nodes.sort(function (a, b) {\n var relative = compareDocumentPosition(a, b);\n if (relative & 2 /* PRECEDING */) {\n return -1;\n }\n else if (relative & 4 /* FOLLOWING */) {\n return 1;\n }\n return 0;\n });\n return nodes;\n}\nexports.uniqueSort = uniqueSort;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nvar entities_1 = require(\"entities\");\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nvar foreignNames_1 = require(\"./foreignNames\");\nvar unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n if (!attributes)\n return;\n return Object.keys(attributes)\n .map(function (key) {\n var _a, _b;\n var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = foreignNames_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return key + \"=\\\"\" + (opts.decodeEntities !== false\n ? entities_1.encodeXML(value)\n : value.replace(/\"/g, \""\")) + \"\\\"\";\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nfunction render(node, options) {\n if (options === void 0) { options = {}; }\n var nodes = \"length\" in node ? node : [node];\n var output = \"\";\n for (var i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexports.default = render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n case ElementType.Directive:\n case ElementType.Doctype:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nvar foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = foreignNames_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: false });\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n }\n var tag = \"<\" + elem.name;\n var attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += \" \" + attribs;\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += \"\";\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return \"<\" + elem.data + \">\";\n}\nfunction renderText(elem, opts) {\n var data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (opts.decodeEntities !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data = entities_1.encodeXML(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return \"\";\n}\nfunction renderComment(elem) {\n return \"\";\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findAll = exports.existsOne = exports.findOne = exports.findOneChild = exports.find = exports.filter = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Search a node and its children for nodes passing a test function.\n *\n * @param test Function to test nodes on.\n * @param node Node to search. Will be included in the result set if it matches.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction filter(test, node, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n if (!Array.isArray(node))\n node = [node];\n return find(test, node, recurse, limit);\n}\nexports.filter = filter;\n/**\n * Search an array of node and its children for nodes passing a test function.\n *\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction find(test, nodes, recurse, limit) {\n var result = [];\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var elem = nodes_1[_i];\n if (test(elem)) {\n result.push(elem);\n if (--limit <= 0)\n break;\n }\n if (recurse && (0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) {\n var children = find(test, elem.children, recurse, limit);\n result.push.apply(result, children);\n limit -= children.length;\n if (limit <= 0)\n break;\n }\n }\n return result;\n}\nexports.find = find;\n/**\n * Finds the first element inside of an array that matches a test function.\n *\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns The first node in the array that passes `test`.\n */\nfunction findOneChild(test, nodes) {\n return nodes.find(test);\n}\nexports.findOneChild = findOneChild;\n/**\n * Finds one element in a tree that passes a test.\n *\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @param recurse Also consider child nodes.\n * @returns The first child node that passes `test`.\n */\nfunction findOne(test, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n var elem = null;\n for (var i = 0; i < nodes.length && !elem; i++) {\n var checked = nodes[i];\n if (!(0, domhandler_1.isTag)(checked)) {\n continue;\n }\n else if (test(checked)) {\n elem = checked;\n }\n else if (recurse && checked.children.length > 0) {\n elem = findOne(test, checked.children);\n }\n }\n return elem;\n}\nexports.findOne = findOne;\n/**\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns Whether a tree of nodes contains at least one node passing a test.\n */\nfunction existsOne(test, nodes) {\n return nodes.some(function (checked) {\n return (0, domhandler_1.isTag)(checked) &&\n (test(checked) ||\n (checked.children.length > 0 &&\n existsOne(test, checked.children)));\n });\n}\nexports.existsOne = existsOne;\n/**\n * Search and array of nodes and its children for nodes passing a test function.\n *\n * Same as `find`, only with less options, leading to reduced complexity.\n *\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns All nodes passing `test`.\n */\nfunction findAll(test, nodes) {\n var _a;\n var result = [];\n var stack = nodes.filter(domhandler_1.isTag);\n var elem;\n while ((elem = stack.shift())) {\n var children = (_a = elem.children) === null || _a === void 0 ? void 0 : _a.filter(domhandler_1.isTag);\n if (children && children.length > 0) {\n stack.unshift.apply(stack, children);\n }\n if (test(elem))\n result.push(elem);\n }\n return result;\n}\nexports.findAll = findAll;\n"],"sourceRoot":""}