{"version":3,"sources":["webpack:///./node_modules/htmlparser2/lib/index.js","webpack:///./node_modules/fast-xml-parser/src/node2json.js","webpack:///./node_modules/fast-xml-parser/src/xmlNode.js","webpack:///./node_modules/fast-xml-parser/src/validator.js","webpack:///./node_modules/fast-xml-parser/src/nimndata.js","webpack:///./node_modules/fast-xml-parser/src/node2json_str.js","webpack:///./node_modules/fast-xml-parser/src/json2xml.js","webpack:///./node_modules/graphql/jsutils/nodejsCustomInspectSymbol.mjs","webpack:///./node_modules/graphql/jsutils/inspect.mjs","webpack:///./node_modules/graphql/jsutils/defineInspect.mjs","webpack:///./node_modules/graphql/jsutils/invariant.mjs","webpack:///./node_modules/graphql/language/ast.mjs","webpack:///./node_modules/graphql/language/visitor.mjs","webpack:///./node_modules/graphql/language/printer.mjs","webpack:///./node_modules/graphql/language/blockString.mjs","webpack:///./node_modules/fast-xml-parser/src/util.js","webpack:///./node_modules/events/events.js","webpack:///./node_modules/fast-xml-parser/src/xmlstr2xmlnode.js","webpack:///./node_modules/extract-files/public/ReactNativeFile.js","webpack:///./node_modules/extract-files/public/isExtractableFile.js","webpack:///./node_modules/graphql-request/dist/index.js","webpack:///./node_modules/extract-files/public/extractFiles.js","webpack:///./node_modules/graphql-request/dist/types.js","webpack:///./node_modules/htmlparser2/lib/Parser.js","webpack:///./node_modules/htmlparser2/lib/Tokenizer.js","webpack:///./node_modules/htmlparser2/lib/FeedHandler.js","webpack:///./node_modules/fast-xml-parser/src/parser.js","webpack:///./node_modules/graphql-request/dist/createRequestBody.js","webpack:///./node_modules/extract-files/public/index.mjs","webpack:///./node_modules/graphql-request/node_modules/form-data/lib/browser.js"],"names":["__createBinding","this","Object","create","o","m","k","k2","undefined","defineProperty","enumerable","get","__setModuleDefault","v","value","__importStar","mod","__esModule","result","prototype","hasOwnProperty","call","__exportStar","exports","p","__importDefault","RssHandler","DefaultHandler","DomUtils","ElementType","Tokenizer","createDomStream","parseDOM","parseDocument","DomHandler","Parser","Parser_1","domhandler_1","data","options","handler","end","root","children","cb","elementCb","Tokenizer_1","default","FeedHandler_1","FeedHandler","util","convertToJson","node","parentTagName","jObj","alwaysCreateTextNode","child","isEmptyObject","attrsMap","isExist","val","cdataPositionChar","asArray","isTagNameInArrayMode","tagname","arrayMode","textNodeName","merge","keys","index","length","tagName","tag","push","module","parent","addChild","Array","isArray","defaultOptions","allowBooleanAttributes","props","readPI","xmlData","i","start","substr","getErrorObject","getLineNumberForPosition","readCommentAndCDATA","angleBracketsCount","validate","buildOptions","tags","tagFound","reachedRoot","err","tagStartPos","closingTag","trim","substring","isName","msg","readAttributeStr","attrStr","attrStrStart","isValid","validateAttributeString","code","line","tagClosed","otg","pop","openPos","col","afterAmp","validateAmpersand","JSON","stringify","map","t","replace","startChar","validAttrStrRegxp","RegExp","matches","getAllMatches","attrNames","getPositionFromMatch","attrName","validateAttrName","re","match","validateNumberAmpersand","count","message","lineNumber","lines","split","startIndex","char","a","String","fromCharCode","chars","nilChar","missingChar","nilPremitive","missingPremitive","emptyChar","emptyValue","boundryChar","objStart","arrStart","arrayEnd","charsArr","_e","e_schema","getValue","hasValidData","str","itemSchema","arr_len","arr_i","r","processValue","key","ignoreAttributes","isAppChar","ch","indexOf","x2j","convert2nimn","_cToJsonStr","level","isNaN","convertToJsonString","indentBy","attributeNamePrefix","attrNodeName","cdataTagName","format","supressEmptyNode","tagValueProcessor","attrValueProcessor","isAttribute","attrPrefixLen","isCDATA","replaceCDATAstr","replaceCDATAarr","processTextOrObjNode","indentate","tagEndChar","newLine","buildTextNode","buildEmptyTextNode","buildObjNode","buildEmptyObjNode","buildTextValNode","buildObjectNode","object","j2x","cdata","join","repeat","name","startsWith","parse","rootNodeName","Date","attr","arrLen","j","item","Ks","L","Symbol","for","_typeof","obj","iterator","constructor","inspect","formatValue","seenValues","concat","previouslySeenValues","customInspectFn","getCustomFn","customValue","array","len","Math","min","remaining","items","formatArray","toString","getObjectTag","properties","formatObject","formatObjectValue","defineInspect","classObject","fn","toJSON","condition","Boolean","Error","invariant","isNode","maybeNode","kind","Location","startToken","endToken","source","Token","column","prev","next","QueryDocumentKeys","Name","Document","OperationDefinition","VariableDefinition","Variable","SelectionSet","Field","Argument","FragmentSpread","InlineFragment","FragmentDefinition","IntValue","FloatValue","StringValue","BooleanValue","NullValue","EnumValue","ListValue","ObjectValue","ObjectField","Directive","NamedType","ListType","NonNullType","SchemaDefinition","OperationTypeDefinition","ScalarTypeDefinition","ObjectTypeDefinition","FieldDefinition","InputValueDefinition","InterfaceTypeDefinition","UnionTypeDefinition","EnumTypeDefinition","EnumValueDefinition","InputObjectTypeDefinition","DirectiveDefinition","SchemaExtension","ScalarTypeExtension","ObjectTypeExtension","InterfaceTypeExtension","UnionTypeExtension","EnumTypeExtension","InputObjectTypeExtension","BREAK","freeze","getVisitFn","visitor","isLeaving","kindVisitor","kindSpecificVisitor","leave","enter","specificVisitor","specificKindVisitor","print","ast","visitorKeys","arguments","stack","inArray","edits","path","ancestors","newRoot","isEdited","slice","clone","_i2","_Object$keys2","editOffset","ii","editKey","editValue","splice","_visitorKeys$node$kin","visitFn","visit","printDocASTReducer","definitions","op","operation","varDefs","wrap","variableDefinitions","directives","selectionSet","_ref","variable","type","defaultValue","_ref2","block","selections","_ref3","alias","args","_ref4","_ref5","_ref6","typeCondition","_ref7","_ref8","_ref9","_ref10","indentation","preferMultipleLines","isSingleLine","hasLeadingSpace","hasTrailingQuote","hasTrailingSlash","printAsMultipleLines","printBlockString","_ref11","_ref12","_ref13","values","_ref14","fields","_ref15","_ref16","_ref17","_ref18","_ref19","addDescription","_ref20","operationTypes","_ref21","_ref22","_ref23","interfaces","_ref24","hasMultilineItems","indent","_ref25","_ref26","_ref27","types","_ref28","_ref29","_ref30","_ref31","repeatable","locations","_ref32","_ref33","_ref34","_ref35","_ref36","_ref37","_ref38","description","maybeArray","_maybeArray$filter$jo","separator","filter","x","maybeString","isMultiline","string","some","nameStartChar","nameRegexp","regexName","target","newOptions","test","exec","regex","allmatches","lastIndex","ReflectOwnKeys","R","Reflect","ReflectApply","apply","receiver","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","Number","EventEmitter","init","once","emitter","Promise","resolve","reject","errorListener","removeListener","resolver","eventTargetAgnosticAddListener","flags","on","addErrorHandlerIfEventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","TypeError","_getMaxListeners","that","_addListener","prepend","events","existing","warning","newListener","emit","unshift","warned","w","console","warn","onceWrapper","fired","wrapFn","_onceWrap","state","wrapped","bind","_listeners","unwrap","evlistener","arr","ret","unwrapListeners","arrayClone","listenerCount","n","copy","addEventListener","wrapListener","arg","removeEventListener","set","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","error","er","context","listeners","addListener","prependListener","prependOnceListener","list","position","originalListener","shift","spliceOne","off","removeAllListeners","rawListeners","eventNames","xmlNode","toNumber","parseInt","window","parseFloat","ignoreNameSpace","parseNodeValue","parseAttributeValue","trimValues","numParseOptions","hex","leadingZeros","stopNodes","processTagValue","parseValue","resolveNameSpace","prefix","charAt","shouldParse","newval","attrsRegx","buildAttributesMap","attrs","attrCollection","closingIndexForOpeningTag","attrBoundary","tagExp","findClosingIndex","errMsg","closingIndex","getTraversalObj","xmlObj","currentNode","textData","closeIndex","colonIndex","includes","childNode","separatorIndex","shouldBuildAttributesMap","lastIndexOf","uri","ReactNativeFile","File","Blob","__assign","assign","s","__awaiter","thisArg","_arguments","P","generator","fulfilled","step","e","rejected","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","__rest","propertyIsEnumerable","gql","request","rawRequest","GraphQLClient","ClientError","cross_fetch_1","printer_1","createRequestBody_1","types_1","types_2","resolveHeaders","headers","oHeaders","Headers","forEach","HeadersInstanceToPlainObject","_a","url","query","variables","others","response","headers_1","status_1","errorResult","_b","method","getResult","ok","errors","status","document","resolvedDoc","resolveRequestDocument","setHeaders","setHeader","contentType","json","text","chunks","_i","reduce","accumulator","chunk","defaultIsExtractableFile","extractFiles","isExtractableFile","files","Map","addFile","paths","file","storedPaths","FileList","extendStatics","__extends","d","b","setPrototypeOf","__proto__","__","_super","_this","extractMessage","captureStackTrace","formTags","Set","pTag","openImpliesClose","tr","th","td","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","endIndex","attribname","attribvalue","attribs","foreignContext","lowerCaseTagNames","lowerCaseTags","xmlMode","lowerCaseAttributeNames","tokenizer","onparserinit","updatePosition","initialOffset","sectionStart","getAbsoluteIndex","ontext","onopentagname","toLowerCase","el","has","onclosetag","onopentag","onopentagend","closeCurrentTag","pos","onselfclosingtag","recognizeSelfClosing","onattribname","onattribdata","onattribend","quote","onattribute","getInstructionName","idx","search","ondeclaration","onprocessinginstruction","name_1","name_2","oncomment","oncommentend","oncdata","_f","recognizeCDATA","oncdatastart","oncdataend","onerror","onend","reset","onreset","parseComplete","write","pause","resume","parseChunk","decode_codepoint_1","entities_json_1","legacy_json_1","xml_json_1","whitespace","c","isASCIIAlpha","ifElseState","upper","SUCCESS","FAILURE","lower","_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","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","stateAfterComment1","stateAfterComment2","stateBeforeCdata6","stateInCdata","stateAfterCdata1","stateAfterCdata2","stateBeforeSpecialS","stateBeforeSpecialSEnd","stateBeforeSpecialLast","stateAfterSpecialLast","sectionStartOffset","parseFixedEntity","entity","emitPartial","parseLegacyEntity","limit","stateInNamedEntity","decodeNumericEntity","offset","base","strict","parsed","stateInNumericEntity","stateInHexEntity","cleanup","handleTrailingData","parseFeed","FeedItemMediaMedium","FeedItemMediaExpression","callback","feedRoot","getOneElement","isValidFeed","dom","feed","childs","addConditionally","href","getAttribute","link","updated","fetch","getElements","entry","pubDate","media","getMediaElements","id","handleCallback","where","elem","medium","isDefault","fileSize","expression","bitrate","framerate","samplingrate","channels","duration","height","width","lang","getElementsByTagName","recurse","getText","prop","what","tmp","nodeToJson","xmlToNodeobj","x2xmlnode","validator","givenOptions","validationOption","parseTrueNumberOnly","traversableObj","convertTonimn","j2xParser","parseToNimn","schema","extract_files_1","form_data_1","isExtractableFileEnhanced","pipe","size","FormData","append","self"],"mappings":"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","file":"c012a31.js","sourcesContent":["\"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';\n\nconst util = require('./util');\n\nconst convertToJson = function(node, options, parentTagName) {\n const jObj = {};\n\n // when no child node or attr is present\n if (!options.alwaysCreateTextNode && (!node.child || util.isEmptyObject(node.child)) && (!node.attrsMap || util.isEmptyObject(node.attrsMap))) {\n return util.isExist(node.val) ? node.val : '';\n }\n\n // otherwise create a textnode if node has some text\n if (util.isExist(node.val) && !(typeof node.val === 'string' && (node.val === '' || node.val === options.cdataPositionChar))) {\n const asArray = util.isTagNameInArrayMode(node.tagname, options.arrayMode, parentTagName)\n jObj[options.textNodeName] = asArray ? [node.val] : node.val;\n }\n\n util.merge(jObj, node.attrsMap, options.arrayMode);\n\n const keys = Object.keys(node.child);\n for (let index = 0; index < keys.length; index++) {\n const tagName = keys[index];\n if (node.child[tagName] && node.child[tagName].length > 1) {\n jObj[tagName] = [];\n for (let tag in node.child[tagName]) {\n if (node.child[tagName].hasOwnProperty(tag)) {\n jObj[tagName].push(convertToJson(node.child[tagName][tag], options, tagName));\n }\n }\n } else {\n const result = convertToJson(node.child[tagName][0], options, tagName);\n const asArray = (options.arrayMode === true && typeof result === 'object') || util.isTagNameInArrayMode(tagName, options.arrayMode, parentTagName);\n jObj[tagName] = asArray ? [result] : result;\n }\n }\n\n //add value\n return jObj;\n};\n\nexports.convertToJson = convertToJson;\n","'use strict';\n\nmodule.exports = function(tagname, parent, val) {\n this.tagname = tagname;\n this.parent = parent;\n this.child = {}; //child tags\n this.attrsMap = {}; //attributes map\n this.val = val; //text only\n this.addChild = function(child) {\n if (Array.isArray(this.child[child.tagname])) {\n //already presents\n this.child[child.tagname].push(child);\n } else {\n this.child[child.tagname] = [child];\n }\n };\n};\n","'use strict';\n\nconst util = require('./util');\n\nconst defaultOptions = {\n allowBooleanAttributes: false, //A tag can have attributes without any value\n};\n\nconst props = ['allowBooleanAttributes'];\n\n//const tagsPattern = new RegExp(\"<\\\\/?([\\\\w:\\\\-_\\.]+)\\\\s*\\/?>\",\"g\");\nexports.validate = function (xmlData, options) {\n options = util.buildOptions(options, defaultOptions, props);\n\n //xmlData = xmlData.replace(/(\\r\\n|\\n|\\r)/gm,\"\");//make it single line\n //xmlData = xmlData.replace(/(^\\s*<\\?xml.*?\\?>)/g,\"\");//Remove XML starting tag\n //xmlData = xmlData.replace(/(<!DOCTYPE[\\s\\w\\\"\\.\\/\\-\\:]+(\\[.*\\])*\\s*>)/g,\"\");//Remove DOCTYPE\n const tags = [];\n let tagFound = false;\n\n //indicates that the root tag has been closed (aka. depth 0 has been reached)\n let reachedRoot = false;\n\n if (xmlData[0] === '\\ufeff') {\n // check for byte order mark (BOM)\n xmlData = xmlData.substr(1);\n }\n\n for (let i = 0; i < xmlData.length; i++) {\n\n if (xmlData[i] === '<' && xmlData[i+1] === '?') {\n i+=2;\n i = readPI(xmlData,i);\n if (i.err) return i;\n }else if (xmlData[i] === '<') {\n //starting of tag\n //read until you reach to '>' avoiding any '>' in attribute value\n let tagStartPos = i;\n i++;\n \n if (xmlData[i] === '!') {\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else {\n let closingTag = false;\n if (xmlData[i] === '/') {\n //closing tag\n closingTag = true;\n i++;\n }\n //read tagname\n let tagName = '';\n for (; i < xmlData.length &&\n xmlData[i] !== '>' &&\n xmlData[i] !== ' ' &&\n xmlData[i] !== '\\t' &&\n xmlData[i] !== '\\n' &&\n xmlData[i] !== '\\r'; i++\n ) {\n tagName += xmlData[i];\n }\n tagName = tagName.trim();\n //console.log(tagName);\n\n if (tagName[tagName.length - 1] === '/') {\n //self closing tag without attributes\n tagName = tagName.substring(0, tagName.length - 1);\n //continue;\n i--;\n }\n if (!validateTagName(tagName)) {\n let msg;\n if (tagName.trim().length === 0) {\n msg = \"Invalid space after '<'.\";\n } else {\n msg = \"Tag '\"+tagName+\"' is an invalid name.\";\n }\n return getErrorObject('InvalidTag', msg, getLineNumberForPosition(xmlData, i));\n }\n\n const result = readAttributeStr(xmlData, i);\n if (result === false) {\n return getErrorObject('InvalidAttr', \"Attributes for '\"+tagName+\"' have open quote.\", getLineNumberForPosition(xmlData, i));\n }\n let attrStr = result.value;\n i = result.index;\n\n if (attrStr[attrStr.length - 1] === '/') {\n //self closing tag\n const attrStrStart = i - attrStr.length;\n attrStr = attrStr.substring(0, attrStr.length - 1);\n const isValid = validateAttributeString(attrStr, options);\n if (isValid === true) {\n tagFound = true;\n //continue; //text may presents after self closing tag\n } else {\n //the result from the nested function returns the position of the error within the attribute\n //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n //this gives us the absolute index in the entire xml, which we can use to find the line at last\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n }\n } else if (closingTag) {\n if (!result.tagClosed) {\n return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i));\n } else if (attrStr.trim().length > 0) {\n return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else {\n const otg = tags.pop();\n if (tagName !== otg.tagName) {\n let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n return getErrorObject('InvalidTag',\n \"Expected closing tag '\"+otg.tagName+\"' (opened in line \"+openPos.line+\", col \"+openPos.col+\") instead of closing tag '\"+tagName+\"'.\",\n getLineNumberForPosition(xmlData, tagStartPos));\n }\n\n //when there are no more tags, we reached the root level.\n if (tags.length == 0) {\n reachedRoot = true;\n }\n }\n } else {\n const isValid = validateAttributeString(attrStr, options);\n if (isValid !== true) {\n //the result from the nested function returns the position of the error within the attribute\n //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n //this gives us the absolute index in the entire xml, which we can use to find the line at last\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i - attrStr.length + isValid.err.line));\n }\n\n //if the root level has been reached before ...\n if (reachedRoot === true) {\n return getErrorObject('InvalidXml', 'Multiple possible root nodes found.', getLineNumberForPosition(xmlData, i));\n } else {\n tags.push({tagName, tagStartPos});\n }\n tagFound = true;\n }\n\n //skip tag text value\n //It may include comments and CDATA value\n for (i++; i < xmlData.length; i++) {\n if (xmlData[i] === '<') {\n if (xmlData[i + 1] === '!') {\n //comment or CADATA\n i++;\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else if (xmlData[i+1] === '?') {\n i = readPI(xmlData, ++i);\n if (i.err) return i;\n } else{\n break;\n }\n } else if (xmlData[i] === '&') {\n const afterAmp = validateAmpersand(xmlData, i);\n if (afterAmp == -1)\n return getErrorObject('InvalidChar', \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i));\n i = afterAmp;\n }\n } //end of reading tag text value\n if (xmlData[i] === '<') {\n i--;\n }\n }\n } else {\n if (xmlData[i] === ' ' || xmlData[i] === '\\t' || xmlData[i] === '\\n' || xmlData[i] === '\\r') {\n continue;\n }\n return getErrorObject('InvalidChar', \"char '\"+xmlData[i]+\"' is not expected.\", getLineNumberForPosition(xmlData, i));\n }\n }\n\n if (!tagFound) {\n return getErrorObject('InvalidXml', 'Start tag expected.', 1);\n }else if (tags.length == 1) {\n return getErrorObject('InvalidTag', \"Unclosed tag '\"+tags[0].tagName+\"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n }else if (tags.length > 0) {\n return getErrorObject('InvalidXml', \"Invalid '\"+\n JSON.stringify(tags.map(t => t.tagName), null, 4).replace(/\\r?\\n/g, '')+\n \"' found.\", {line: 1, col: 1});\n }\n\n return true;\n};\n\n/**\n * Read Processing insstructions and skip\n * @param {*} xmlData\n * @param {*} i\n */\nfunction readPI(xmlData, i) {\n const start = i;\n for (; i < xmlData.length; i++) {\n if (xmlData[i] == '?' || xmlData[i] == ' ') {\n //tagname\n const tagname = xmlData.substr(start, i - start);\n if (i > 5 && tagname === 'xml') {\n return getErrorObject('InvalidXml', 'XML declaration allowed only at the start of the document.', getLineNumberForPosition(xmlData, i));\n } else if (xmlData[i] == '?' && xmlData[i + 1] == '>') {\n //check if valid attribut string\n i++;\n break;\n } else {\n continue;\n }\n }\n }\n return i;\n}\n\nfunction readCommentAndCDATA(xmlData, i) {\n if (xmlData.length > i + 5 && xmlData[i + 1] === '-' && xmlData[i + 2] === '-') {\n //comment\n for (i += 3; i < xmlData.length; i++) {\n if (xmlData[i] === '-' && xmlData[i + 1] === '-' && xmlData[i + 2] === '>') {\n i += 2;\n break;\n }\n }\n } else if (\n xmlData.length > i + 8 &&\n xmlData[i + 1] === 'D' &&\n xmlData[i + 2] === 'O' &&\n xmlData[i + 3] === 'C' &&\n xmlData[i + 4] === 'T' &&\n xmlData[i + 5] === 'Y' &&\n xmlData[i + 6] === 'P' &&\n xmlData[i + 7] === 'E'\n ) {\n let angleBracketsCount = 1;\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === '<') {\n angleBracketsCount++;\n } else if (xmlData[i] === '>') {\n angleBracketsCount--;\n if (angleBracketsCount === 0) {\n break;\n }\n }\n }\n } else if (\n xmlData.length > i + 9 &&\n xmlData[i + 1] === '[' &&\n xmlData[i + 2] === 'C' &&\n xmlData[i + 3] === 'D' &&\n xmlData[i + 4] === 'A' &&\n xmlData[i + 5] === 'T' &&\n xmlData[i + 6] === 'A' &&\n xmlData[i + 7] === '['\n ) {\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === ']' && xmlData[i + 1] === ']' && xmlData[i + 2] === '>') {\n i += 2;\n break;\n }\n }\n }\n\n return i;\n}\n\nconst doubleQuote = '\"';\nconst singleQuote = \"'\";\n\n/**\n * Keep reading xmlData until '<' is found outside the attribute value.\n * @param {string} xmlData\n * @param {number} i\n */\nfunction readAttributeStr(xmlData, i) {\n let attrStr = '';\n let startChar = '';\n let tagClosed = false;\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) {\n if (startChar === '') {\n startChar = xmlData[i];\n } else if (startChar !== xmlData[i]) {\n //if vaue is enclosed with double quote then single quotes are allowed inside the value and vice versa\n } else {\n startChar = '';\n }\n } else if (xmlData[i] === '>') {\n if (startChar === '') {\n tagClosed = true;\n break;\n }\n }\n attrStr += xmlData[i];\n }\n if (startChar !== '') {\n return false;\n }\n\n return {\n value: attrStr,\n index: i,\n tagClosed: tagClosed\n };\n}\n\n/**\n * Select all the attributes whether valid or invalid.\n */\nconst validAttrStrRegxp = new RegExp('(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*([\\'\"])(([\\\\s\\\\S])*?)\\\\5)?', 'g');\n\n//attr, =\"sd\", a=\"amit's\", a=\"sd\"b=\"saf\", ab cd=\"\"\n\nfunction validateAttributeString(attrStr, options) {\n //console.log(\"start:\"+attrStr+\":end\");\n\n //if(attrStr.trim().length === 0) return true; //empty string\n\n const matches = util.getAllMatches(attrStr, validAttrStrRegxp);\n const attrNames = {};\n\n for (let i = 0; i < matches.length; i++) {\n if (matches[i][1].length === 0) {\n //nospace before attribute name: a=\"sd\"b=\"saf\"\n return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' has no space in starting.\", getPositionFromMatch(matches[i]))\n } else if (matches[i][3] === undefined && !options.allowBooleanAttributes) {\n //independent attribute: ab\n return getErrorObject('InvalidAttr', \"boolean attribute '\"+matches[i][2]+\"' is not allowed.\", getPositionFromMatch(matches[i]));\n }\n /* else if(matches[i][6] === undefined){//attribute without value: ab=\n return { err: { code:\"InvalidAttr\",msg:\"attribute \" + matches[i][2] + \" has no value assigned.\"}};\n } */\n const attrName = matches[i][2];\n if (!validateAttrName(attrName)) {\n return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is an invalid name.\", getPositionFromMatch(matches[i]));\n }\n if (!attrNames.hasOwnProperty(attrName)) {\n //check for duplicate attribute.\n attrNames[attrName] = 1;\n } else {\n return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is repeated.\", getPositionFromMatch(matches[i]));\n }\n }\n\n return true;\n}\n\nfunction validateNumberAmpersand(xmlData, i) {\n let re = /\\d/;\n if (xmlData[i] === 'x') {\n i++;\n re = /[\\da-fA-F]/;\n }\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === ';')\n return i;\n if (!xmlData[i].match(re))\n break;\n }\n return -1;\n}\n\nfunction validateAmpersand(xmlData, i) {\n // https://www.w3.org/TR/xml/#dt-charref\n i++;\n if (xmlData[i] === ';')\n return -1;\n if (xmlData[i] === '#') {\n i++;\n return validateNumberAmpersand(xmlData, i);\n }\n let count = 0;\n for (; i < xmlData.length; i++, count++) {\n if (xmlData[i].match(/\\w/) && count < 20)\n continue;\n if (xmlData[i] === ';')\n break;\n return -1;\n }\n return i;\n}\n\nfunction getErrorObject(code, message, lineNumber) {\n return {\n err: {\n code: code,\n msg: message,\n line: lineNumber.line || lineNumber,\n col: lineNumber.col,\n },\n };\n}\n\nfunction validateAttrName(attrName) {\n return util.isName(attrName);\n}\n\n// const startsWithXML = /^xml/i;\n\nfunction validateTagName(tagname) {\n return util.isName(tagname) /* && !tagname.match(startsWithXML) */;\n}\n\n//this function returns the line number for the character at the given index\nfunction getLineNumberForPosition(xmlData, index) {\n const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n return {\n line: lines.length,\n\n // column number is last line's length + 1, because column numbering starts at 1:\n col: lines[lines.length - 1].length + 1\n };\n}\n\n//this function returns the position of the first character of match within attrStr\nfunction getPositionFromMatch(match) {\n return match.startIndex + match[1].length;\n}\n","'use strict';\nconst char = function(a) {\n return String.fromCharCode(a);\n};\n\nconst chars = {\n nilChar: char(176),\n missingChar: char(201),\n nilPremitive: char(175),\n missingPremitive: char(200),\n\n emptyChar: char(178),\n emptyValue: char(177), //empty Premitive\n\n boundryChar: char(179),\n\n objStart: char(198),\n arrStart: char(204),\n arrayEnd: char(185),\n};\n\nconst charsArr = [\n chars.nilChar,\n chars.nilPremitive,\n chars.missingChar,\n chars.missingPremitive,\n chars.boundryChar,\n chars.emptyChar,\n chars.emptyValue,\n chars.arrayEnd,\n chars.objStart,\n chars.arrStart,\n];\n\nconst _e = function(node, e_schema, options) {\n if (typeof e_schema === 'string') {\n //premitive\n if (node && node[0] && node[0].val !== undefined) {\n return getValue(node[0].val, e_schema);\n } else {\n return getValue(node, e_schema);\n }\n } else {\n const hasValidData = hasData(node);\n if (hasValidData === true) {\n let str = '';\n if (Array.isArray(e_schema)) {\n //attributes can't be repeated. hence check in children tags only\n str += chars.arrStart;\n const itemSchema = e_schema[0];\n //const itemSchemaType = itemSchema;\n const arr_len = node.length;\n\n if (typeof itemSchema === 'string') {\n for (let arr_i = 0; arr_i < arr_len; arr_i++) {\n const r = getValue(node[arr_i].val, itemSchema);\n str = processValue(str, r);\n }\n } else {\n for (let arr_i = 0; arr_i < arr_len; arr_i++) {\n const r = _e(node[arr_i], itemSchema, options);\n str = processValue(str, r);\n }\n }\n str += chars.arrayEnd; //indicates that next item is not array item\n } else {\n //object\n str += chars.objStart;\n const keys = Object.keys(e_schema);\n if (Array.isArray(node)) {\n node = node[0];\n }\n for (let i in keys) {\n const key = keys[i];\n //a property defined in schema can be present either in attrsMap or children tags\n //options.textNodeName will not present in both maps, take it's value from val\n //options.attrNodeName will be present in attrsMap\n let r;\n if (!options.ignoreAttributes && node.attrsMap && node.attrsMap[key]) {\n r = _e(node.attrsMap[key], e_schema[key], options);\n } else if (key === options.textNodeName) {\n r = _e(node.val, e_schema[key], options);\n } else {\n r = _e(node.child[key], e_schema[key], options);\n }\n str = processValue(str, r);\n }\n }\n return str;\n } else {\n return hasValidData;\n }\n }\n};\n\nconst getValue = function(a /*, type*/) {\n switch (a) {\n case undefined:\n return chars.missingPremitive;\n case null:\n return chars.nilPremitive;\n case '':\n return chars.emptyValue;\n default:\n return a;\n }\n};\n\nconst processValue = function(str, r) {\n if (!isAppChar(r[0]) && !isAppChar(str[str.length - 1])) {\n str += chars.boundryChar;\n }\n return str + r;\n};\n\nconst isAppChar = function(ch) {\n return charsArr.indexOf(ch) !== -1;\n};\n\nfunction hasData(jObj) {\n if (jObj === undefined) {\n return chars.missingChar;\n } else if (jObj === null) {\n return chars.nilChar;\n } else if (\n jObj.child &&\n Object.keys(jObj.child).length === 0 &&\n (!jObj.attrsMap || Object.keys(jObj.attrsMap).length === 0)\n ) {\n return chars.emptyChar;\n } else {\n return true;\n }\n}\n\nconst x2j = require('./xmlstr2xmlnode');\nconst buildOptions = require('./util').buildOptions;\n\nconst convert2nimn = function(node, e_schema, options) {\n options = buildOptions(options, x2j.defaultOptions, x2j.props);\n return _e(node, e_schema, options);\n};\n\nexports.convert2nimn = convert2nimn;\n","'use strict';\n\nconst util = require('./util');\nconst buildOptions = require('./util').buildOptions;\nconst x2j = require('./xmlstr2xmlnode');\n\n//TODO: do it later\nconst convertToJsonString = function(node, options) {\n options = buildOptions(options, x2j.defaultOptions, x2j.props);\n\n options.indentBy = options.indentBy || '';\n return _cToJsonStr(node, options, 0);\n};\n\nconst _cToJsonStr = function(node, options, level) {\n let jObj = '{';\n\n //traver through all the children\n const keys = Object.keys(node.child);\n\n for (let index = 0; index < keys.length; index++) {\n const tagname = keys[index];\n if (node.child[tagname] && node.child[tagname].length > 1) {\n jObj += '\"' + tagname + '\" : [ ';\n for (let tag in node.child[tagname]) {\n jObj += _cToJsonStr(node.child[tagname][tag], options) + ' , ';\n }\n jObj = jObj.substr(0, jObj.length - 1) + ' ] '; //remove extra comma in last\n } else {\n jObj += '\"' + tagname + '\" : ' + _cToJsonStr(node.child[tagname][0], options) + ' ,';\n }\n }\n util.merge(jObj, node.attrsMap);\n //add attrsMap as new children\n if (util.isEmptyObject(jObj)) {\n return util.isExist(node.val) ? node.val : '';\n } else {\n if (util.isExist(node.val)) {\n if (!(typeof node.val === 'string' && (node.val === '' || node.val === options.cdataPositionChar))) {\n jObj += '\"' + options.textNodeName + '\" : ' + stringval(node.val);\n }\n }\n }\n //add value\n if (jObj[jObj.length - 1] === ',') {\n jObj = jObj.substr(0, jObj.length - 2);\n }\n return jObj + '}';\n};\n\nfunction stringval(v) {\n if (v === true || v === false || !isNaN(v)) {\n return v;\n } else {\n return '\"' + v + '\"';\n }\n}\n\nfunction indentate(options, level) {\n return options.indentBy.repeat(level);\n}\n\nexports.convertToJsonString = convertToJsonString;\n","'use strict';\n//parse Empty Node as self closing node\nconst buildOptions = require('./util').buildOptions;\n\nconst defaultOptions = {\n attributeNamePrefix: '@_',\n attrNodeName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n cdataTagName: false,\n cdataPositionChar: '\\\\c',\n format: false,\n indentBy: ' ',\n supressEmptyNode: false,\n tagValueProcessor: function(a) {\n return a;\n },\n attrValueProcessor: function(a) {\n return a;\n },\n};\n\nconst props = [\n 'attributeNamePrefix',\n 'attrNodeName',\n 'textNodeName',\n 'ignoreAttributes',\n 'cdataTagName',\n 'cdataPositionChar',\n 'format',\n 'indentBy',\n 'supressEmptyNode',\n 'tagValueProcessor',\n 'attrValueProcessor',\n 'rootNodeName', //when array as root\n];\n\nfunction Parser(options) {\n this.options = buildOptions(options, defaultOptions, props);\n if (this.options.ignoreAttributes || this.options.attrNodeName) {\n this.isAttribute = function(/*a*/) {\n return false;\n };\n } else {\n this.attrPrefixLen = this.options.attributeNamePrefix.length;\n this.isAttribute = isAttribute;\n }\n if (this.options.cdataTagName) {\n this.isCDATA = isCDATA;\n } else {\n this.isCDATA = function(/*a*/) {\n return false;\n };\n }\n this.replaceCDATAstr = replaceCDATAstr;\n this.replaceCDATAarr = replaceCDATAarr;\n\n this.processTextOrObjNode = processTextOrObjNode\n\n if (this.options.format) {\n this.indentate = indentate;\n this.tagEndChar = '>\\n';\n this.newLine = '\\n';\n } else {\n this.indentate = function() {\n return '';\n };\n this.tagEndChar = '>';\n this.newLine = '';\n }\n\n if (this.options.supressEmptyNode) {\n this.buildTextNode = buildEmptyTextNode;\n this.buildObjNode = buildEmptyObjNode;\n } else {\n this.buildTextNode = buildTextValNode;\n this.buildObjNode = buildObjectNode;\n }\n\n this.buildTextValNode = buildTextValNode;\n this.buildObjectNode = buildObjectNode;\n}\n\nParser.prototype.parse = function(jObj) {\n if(Array.isArray(jObj) && this.options.rootNodeName && this.options.rootNodeName.length > 1){\n jObj = {\n [this.options.rootNodeName] : jObj\n }\n }\n return this.j2x(jObj, 0).val;\n};\n\nParser.prototype.j2x = function(jObj, level) {\n let attrStr = '';\n let val = '';\n for (let key in jObj) {\n if (typeof jObj[key] === 'undefined') {\n // supress undefined node\n } else if (jObj[key] === null) {\n val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (jObj[key] instanceof Date) {\n val += this.buildTextNode(jObj[key], key, '', level);\n } else if (typeof jObj[key] !== 'object') {\n //premitive type\n const attr = this.isAttribute(key);\n if (attr) {\n attrStr += ' ' + attr + '=\"' + this.options.attrValueProcessor('' + jObj[key]) + '\"';\n } else if (this.isCDATA(key)) {\n if (jObj[this.options.textNodeName]) {\n val += this.replaceCDATAstr(jObj[this.options.textNodeName], jObj[key]);\n } else {\n val += this.replaceCDATAstr('', jObj[key]);\n }\n } else {\n //tag value\n if (key === this.options.textNodeName) {\n if (jObj[this.options.cdataTagName]) {\n //value will added while processing cdata\n } else {\n val += this.options.tagValueProcessor('' + jObj[key]);\n }\n } else {\n val += this.buildTextNode(jObj[key], key, '', level);\n }\n }\n } else if (Array.isArray(jObj[key])) {\n //repeated nodes\n if (this.isCDATA(key)) {\n val += this.indentate(level);\n if (jObj[this.options.textNodeName]) {\n val += this.replaceCDATAarr(jObj[this.options.textNodeName], jObj[key]);\n } else {\n val += this.replaceCDATAarr('', jObj[key]);\n }\n } else {\n //nested nodes\n const arrLen = jObj[key].length;\n for (let j = 0; j < arrLen; j++) {\n const item = jObj[key][j];\n if (typeof item === 'undefined') {\n // supress undefined node\n } else if (item === null) {\n val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (typeof item === 'object') {\n val += this.processTextOrObjNode(item, key, level)\n } else {\n val += this.buildTextNode(item, key, '', level);\n }\n }\n }\n } else {\n //nested node\n if (this.options.attrNodeName && key === this.options.attrNodeName) {\n const Ks = Object.keys(jObj[key]);\n const L = Ks.length;\n for (let j = 0; j < L; j++) {\n attrStr += ' ' + Ks[j] + '=\"' + this.options.attrValueProcessor('' + jObj[key][Ks[j]]) + '\"';\n }\n } else {\n val += this.processTextOrObjNode(jObj[key], key, level)\n }\n }\n }\n return {attrStr: attrStr, val: val};\n};\n\nfunction processTextOrObjNode (object, key, level) {\n const result = this.j2x(object, level + 1);\n if (object[this.options.textNodeName] !== undefined && Object.keys(object).length === 1) {\n return this.buildTextNode(result.val, key, result.attrStr, level);\n } else {\n return this.buildObjNode(result.val, key, result.attrStr, level);\n }\n}\n\nfunction replaceCDATAstr(str, cdata) {\n str = this.options.tagValueProcessor('' + str);\n if (this.options.cdataPositionChar === '' || str === '') {\n return str + '<![CDATA[' + cdata + ']]' + this.tagEndChar;\n } else {\n return str.replace(this.options.cdataPositionChar, '<![CDATA[' + cdata + ']]' + this.tagEndChar);\n }\n}\n\nfunction replaceCDATAarr(str, cdata) {\n str = this.options.tagValueProcessor('' + str);\n if (this.options.cdataPositionChar === '' || str === '') {\n return str + '<![CDATA[' + cdata.join(']]><![CDATA[') + ']]' + this.tagEndChar;\n } else {\n for (let v in cdata) {\n str = str.replace(this.options.cdataPositionChar, '<![CDATA[' + cdata[v] + ']]>');\n }\n return str + this.newLine;\n }\n}\n\nfunction buildObjectNode(val, key, attrStr, level) {\n if (attrStr && val.indexOf('<') === -1) {\n return (\n this.indentate(level) +\n '<' +\n key +\n attrStr +\n '>' +\n val +\n //+ this.newLine\n // + this.indentate(level)\n '</' +\n key +\n this.tagEndChar\n );\n } else {\n return (\n this.indentate(level) +\n '<' +\n key +\n attrStr +\n this.tagEndChar +\n val +\n //+ this.newLine\n this.indentate(level) +\n '</' +\n key +\n this.tagEndChar\n );\n }\n}\n\nfunction buildEmptyObjNode(val, key, attrStr, level) {\n if (val !== '') {\n return this.buildObjectNode(val, key, attrStr, level);\n } else {\n return this.indentate(level) + '<' + key + attrStr + '/' + this.tagEndChar;\n //+ this.newLine\n }\n}\n\nfunction buildTextValNode(val, key, attrStr, level) {\n return (\n this.indentate(level) +\n '<' +\n key +\n attrStr +\n '>' +\n this.options.tagValueProcessor(val) +\n '</' +\n key +\n this.tagEndChar\n );\n}\n\nfunction buildEmptyTextNode(val, key, attrStr, level) {\n if (val !== '') {\n return this.buildTextValNode(val, key, attrStr, level);\n } else {\n return this.indentate(level) + '<' + key + attrStr + '/' + this.tagEndChar;\n }\n}\n\nfunction indentate(level) {\n return this.options.indentBy.repeat(level);\n}\n\nfunction isAttribute(name /*, options*/) {\n if (name.startsWith(this.options.attributeNamePrefix)) {\n return name.substr(this.attrPrefixLen);\n } else {\n return false;\n }\n}\n\nfunction isCDATA(name) {\n return name === this.options.cdataTagName;\n}\n\n//formatting\n//indentation\n//\\n after each closing or self closing tag\n\nmodule.exports = Parser;\n","// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\nvar nodejsCustomInspectSymbol = typeof Symbol === 'function' && typeof Symbol.for === 'function' ? Symbol.for('nodejs.util.inspect.custom') : undefined;\nexport default nodejsCustomInspectSymbol;\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport nodejsCustomInspectSymbol from \"./nodejsCustomInspectSymbol.mjs\";\nvar MAX_ARRAY_LENGTH = 10;\nvar MAX_RECURSIVE_DEPTH = 2;\n/**\n * Used to print values in error messages.\n */\n\nexport default function inspect(value) {\n return formatValue(value, []);\n}\n\nfunction formatValue(value, seenValues) {\n switch (_typeof(value)) {\n case 'string':\n return JSON.stringify(value);\n\n case 'function':\n return value.name ? \"[function \".concat(value.name, \"]\") : '[function]';\n\n case 'object':\n if (value === null) {\n return 'null';\n }\n\n return formatObjectValue(value, seenValues);\n\n default:\n return String(value);\n }\n}\n\nfunction formatObjectValue(value, previouslySeenValues) {\n if (previouslySeenValues.indexOf(value) !== -1) {\n return '[Circular]';\n }\n\n var seenValues = [].concat(previouslySeenValues, [value]);\n var customInspectFn = getCustomFn(value);\n\n if (customInspectFn !== undefined) {\n // $FlowFixMe(>=0.90.0)\n var customValue = customInspectFn.call(value); // check for infinite recursion\n\n if (customValue !== value) {\n return typeof customValue === 'string' ? customValue : formatValue(customValue, seenValues);\n }\n } else if (Array.isArray(value)) {\n return formatArray(value, seenValues);\n }\n\n return formatObject(value, seenValues);\n}\n\nfunction formatObject(object, seenValues) {\n var keys = Object.keys(object);\n\n if (keys.length === 0) {\n return '{}';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[' + getObjectTag(object) + ']';\n }\n\n var properties = keys.map(function (key) {\n var value = formatValue(object[key], seenValues);\n return key + ': ' + value;\n });\n return '{ ' + properties.join(', ') + ' }';\n}\n\nfunction formatArray(array, seenValues) {\n if (array.length === 0) {\n return '[]';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[Array]';\n }\n\n var len = Math.min(MAX_ARRAY_LENGTH, array.length);\n var remaining = array.length - len;\n var items = [];\n\n for (var i = 0; i < len; ++i) {\n items.push(formatValue(array[i], seenValues));\n }\n\n if (remaining === 1) {\n items.push('... 1 more item');\n } else if (remaining > 1) {\n items.push(\"... \".concat(remaining, \" more items\"));\n }\n\n return '[' + items.join(', ') + ']';\n}\n\nfunction getCustomFn(object) {\n var customInspectFn = object[String(nodejsCustomInspectSymbol)];\n\n if (typeof customInspectFn === 'function') {\n return customInspectFn;\n }\n\n if (typeof object.inspect === 'function') {\n return object.inspect;\n }\n}\n\nfunction getObjectTag(object) {\n var tag = Object.prototype.toString.call(object).replace(/^\\[object /, '').replace(/]$/, '');\n\n if (tag === 'Object' && typeof object.constructor === 'function') {\n var name = object.constructor.name;\n\n if (typeof name === 'string' && name !== '') {\n return name;\n }\n }\n\n return tag;\n}\n","import invariant from \"./invariant.mjs\";\nimport nodejsCustomInspectSymbol from \"./nodejsCustomInspectSymbol.mjs\";\n/**\n * The `defineInspect()` function defines `inspect()` prototype method as alias of `toJSON`\n */\n\nexport default function defineInspect(classObject) {\n var fn = classObject.prototype.toJSON;\n typeof fn === 'function' || invariant(0);\n classObject.prototype.inspect = fn; // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\n if (nodejsCustomInspectSymbol) {\n classObject.prototype[nodejsCustomInspectSymbol] = fn;\n }\n}\n","export default function invariant(condition, message) {\n var booleanCondition = Boolean(condition); // istanbul ignore else (See transformation done in './resources/inlineInvariant.js')\n\n if (!booleanCondition) {\n throw new Error(message != null ? message : 'Unexpected invariant triggered.');\n }\n}\n","import defineInspect from \"../jsutils/defineInspect.mjs\";\n\n/**\n * Contains a range of UTF-8 character offsets and token references that\n * identify the region of the source from which the AST derived.\n */\nexport var Location = /*#__PURE__*/function () {\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The Token at which this Node begins.\n */\n\n /**\n * The Token at which this Node ends.\n */\n\n /**\n * The Source document the AST represents.\n */\n function Location(startToken, endToken, source) {\n this.start = startToken.start;\n this.end = endToken.end;\n this.startToken = startToken;\n this.endToken = endToken;\n this.source = source;\n }\n\n var _proto = Location.prototype;\n\n _proto.toJSON = function toJSON() {\n return {\n start: this.start,\n end: this.end\n };\n };\n\n return Location;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(Location);\n/**\n * Represents a range of characters represented by a lexical token\n * within a Source.\n */\n\nexport var Token = /*#__PURE__*/function () {\n /**\n * The kind of Token.\n */\n\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The 1-indexed line number on which this Token appears.\n */\n\n /**\n * The 1-indexed column number at which this Token begins.\n */\n\n /**\n * For non-punctuation tokens, represents the interpreted value of the token.\n */\n\n /**\n * Tokens exist as nodes in a double-linked-list amongst all tokens\n * including ignored tokens. <SOF> is always the first node and <EOF>\n * the last.\n */\n function Token(kind, start, end, line, column, prev, value) {\n this.kind = kind;\n this.start = start;\n this.end = end;\n this.line = line;\n this.column = column;\n this.value = value;\n this.prev = prev;\n this.next = null;\n }\n\n var _proto2 = Token.prototype;\n\n _proto2.toJSON = function toJSON() {\n return {\n kind: this.kind,\n value: this.value,\n line: this.line,\n column: this.column\n };\n };\n\n return Token;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(Token);\n/**\n * @internal\n */\n\nexport function isNode(maybeNode) {\n return maybeNode != null && typeof maybeNode.kind === 'string';\n}\n/**\n * The list of all possible AST node types.\n */\n","import inspect from \"../jsutils/inspect.mjs\";\nimport { isNode } from \"./ast.mjs\";\n/**\n * A visitor is provided to visit, it contains the collection of\n * relevant functions to be called during the visitor's traversal.\n */\n\nexport var QueryDocumentKeys = {\n Name: [],\n Document: ['definitions'],\n OperationDefinition: ['name', 'variableDefinitions', 'directives', 'selectionSet'],\n VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'],\n Variable: ['name'],\n SelectionSet: ['selections'],\n Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],\n Argument: ['name', 'value'],\n FragmentSpread: ['name', 'directives'],\n InlineFragment: ['typeCondition', 'directives', 'selectionSet'],\n FragmentDefinition: ['name', // Note: fragment variable definitions are experimental and may be changed\n // or removed in the future.\n 'variableDefinitions', 'typeCondition', 'directives', 'selectionSet'],\n IntValue: [],\n FloatValue: [],\n StringValue: [],\n BooleanValue: [],\n NullValue: [],\n EnumValue: [],\n ListValue: ['values'],\n ObjectValue: ['fields'],\n ObjectField: ['name', 'value'],\n Directive: ['name', 'arguments'],\n NamedType: ['name'],\n ListType: ['type'],\n NonNullType: ['type'],\n SchemaDefinition: ['description', 'directives', 'operationTypes'],\n OperationTypeDefinition: ['type'],\n ScalarTypeDefinition: ['description', 'name', 'directives'],\n ObjectTypeDefinition: ['description', 'name', 'interfaces', 'directives', 'fields'],\n FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'],\n InputValueDefinition: ['description', 'name', 'type', 'defaultValue', 'directives'],\n InterfaceTypeDefinition: ['description', 'name', 'interfaces', 'directives', 'fields'],\n UnionTypeDefinition: ['description', 'name', 'directives', 'types'],\n EnumTypeDefinition: ['description', 'name', 'directives', 'values'],\n EnumValueDefinition: ['description', 'name', 'directives'],\n InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'],\n DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],\n SchemaExtension: ['directives', 'operationTypes'],\n ScalarTypeExtension: ['name', 'directives'],\n ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n UnionTypeExtension: ['name', 'directives', 'types'],\n EnumTypeExtension: ['name', 'directives', 'values'],\n InputObjectTypeExtension: ['name', 'directives', 'fields']\n};\nexport var BREAK = Object.freeze({});\n/**\n * visit() will walk through an AST using a depth-first traversal, calling\n * the visitor's enter function at each node in the traversal, and calling the\n * leave function after visiting that node and all of its child nodes.\n *\n * By returning different values from the enter and leave functions, the\n * behavior of the visitor can be altered, including skipping over a sub-tree of\n * the AST (by returning false), editing the AST by returning a value or null\n * to remove the value, or to stop the whole traversal by returning BREAK.\n *\n * When using visit() to edit an AST, the original AST will not be modified, and\n * a new version of the AST with the changes applied will be returned from the\n * visit function.\n *\n * const editedAST = visit(ast, {\n * enter(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: skip visiting this node\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * },\n * leave(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: no action\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * }\n * });\n *\n * Alternatively to providing enter() and leave() functions, a visitor can\n * instead provide functions named the same as the kinds of AST nodes, or\n * enter/leave visitors at a named key, leading to four permutations of the\n * visitor API:\n *\n * 1) Named visitors triggered when entering a node of a specific kind.\n *\n * visit(ast, {\n * Kind(node) {\n * // enter the \"Kind\" node\n * }\n * })\n *\n * 2) Named visitors that trigger upon entering and leaving a node of\n * a specific kind.\n *\n * visit(ast, {\n * Kind: {\n * enter(node) {\n * // enter the \"Kind\" node\n * }\n * leave(node) {\n * // leave the \"Kind\" node\n * }\n * }\n * })\n *\n * 3) Generic visitors that trigger upon entering and leaving any node.\n *\n * visit(ast, {\n * enter(node) {\n * // enter any node\n * },\n * leave(node) {\n * // leave any node\n * }\n * })\n *\n * 4) Parallel visitors for entering and leaving nodes of a specific kind.\n *\n * visit(ast, {\n * enter: {\n * Kind(node) {\n * // enter the \"Kind\" node\n * }\n * },\n * leave: {\n * Kind(node) {\n * // leave the \"Kind\" node\n * }\n * }\n * })\n */\n\nexport function visit(root, visitor) {\n var visitorKeys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : QueryDocumentKeys;\n\n /* eslint-disable no-undef-init */\n var stack = undefined;\n var inArray = Array.isArray(root);\n var keys = [root];\n var index = -1;\n var edits = [];\n var node = undefined;\n var key = undefined;\n var parent = undefined;\n var path = [];\n var ancestors = [];\n var newRoot = root;\n /* eslint-enable no-undef-init */\n\n do {\n index++;\n var isLeaving = index === keys.length;\n var isEdited = isLeaving && edits.length !== 0;\n\n if (isLeaving) {\n key = ancestors.length === 0 ? undefined : path[path.length - 1];\n node = parent;\n parent = ancestors.pop();\n\n if (isEdited) {\n if (inArray) {\n node = node.slice();\n } else {\n var clone = {};\n\n for (var _i2 = 0, _Object$keys2 = Object.keys(node); _i2 < _Object$keys2.length; _i2++) {\n var k = _Object$keys2[_i2];\n clone[k] = node[k];\n }\n\n node = clone;\n }\n\n var editOffset = 0;\n\n for (var ii = 0; ii < edits.length; ii++) {\n var editKey = edits[ii][0];\n var editValue = edits[ii][1];\n\n if (inArray) {\n editKey -= editOffset;\n }\n\n if (inArray && editValue === null) {\n node.splice(editKey, 1);\n editOffset++;\n } else {\n node[editKey] = editValue;\n }\n }\n }\n\n index = stack.index;\n keys = stack.keys;\n edits = stack.edits;\n inArray = stack.inArray;\n stack = stack.prev;\n } else {\n key = parent ? inArray ? index : keys[index] : undefined;\n node = parent ? parent[key] : newRoot;\n\n if (node === null || node === undefined) {\n continue;\n }\n\n if (parent) {\n path.push(key);\n }\n }\n\n var result = void 0;\n\n if (!Array.isArray(node)) {\n if (!isNode(node)) {\n throw new Error(\"Invalid AST Node: \".concat(inspect(node), \".\"));\n }\n\n var visitFn = getVisitFn(visitor, node.kind, isLeaving);\n\n if (visitFn) {\n result = visitFn.call(visitor, node, key, parent, path, ancestors);\n\n if (result === BREAK) {\n break;\n }\n\n if (result === false) {\n if (!isLeaving) {\n path.pop();\n continue;\n }\n } else if (result !== undefined) {\n edits.push([key, result]);\n\n if (!isLeaving) {\n if (isNode(result)) {\n node = result;\n } else {\n path.pop();\n continue;\n }\n }\n }\n }\n }\n\n if (result === undefined && isEdited) {\n edits.push([key, node]);\n }\n\n if (isLeaving) {\n path.pop();\n } else {\n var _visitorKeys$node$kin;\n\n stack = {\n inArray: inArray,\n index: index,\n keys: keys,\n edits: edits,\n prev: stack\n };\n inArray = Array.isArray(node);\n keys = inArray ? node : (_visitorKeys$node$kin = visitorKeys[node.kind]) !== null && _visitorKeys$node$kin !== void 0 ? _visitorKeys$node$kin : [];\n index = -1;\n edits = [];\n\n if (parent) {\n ancestors.push(parent);\n }\n\n parent = node;\n }\n } while (stack !== undefined);\n\n if (edits.length !== 0) {\n newRoot = edits[edits.length - 1][1];\n }\n\n return newRoot;\n}\n/**\n * Creates a new visitor instance which delegates to many visitors to run in\n * parallel. Each visitor will be visited for each node before moving on.\n *\n * If a prior visitor edits a node, no following visitors will see that node.\n */\n\nexport function visitInParallel(visitors) {\n var skipping = new Array(visitors.length);\n return {\n enter: function enter(node) {\n for (var i = 0; i < visitors.length; i++) {\n if (skipping[i] == null) {\n var fn = getVisitFn(visitors[i], node.kind,\n /* isLeaving */\n false);\n\n if (fn) {\n var result = fn.apply(visitors[i], arguments);\n\n if (result === false) {\n skipping[i] = node;\n } else if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined) {\n return result;\n }\n }\n }\n }\n },\n leave: function leave(node) {\n for (var i = 0; i < visitors.length; i++) {\n if (skipping[i] == null) {\n var fn = getVisitFn(visitors[i], node.kind,\n /* isLeaving */\n true);\n\n if (fn) {\n var result = fn.apply(visitors[i], arguments);\n\n if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined && result !== false) {\n return result;\n }\n }\n } else if (skipping[i] === node) {\n skipping[i] = null;\n }\n }\n }\n };\n}\n/**\n * Given a visitor instance, if it is leaving or not, and a node kind, return\n * the function the visitor runtime should call.\n */\n\nexport function getVisitFn(visitor, kind, isLeaving) {\n var kindVisitor = visitor[kind];\n\n if (kindVisitor) {\n if (!isLeaving && typeof kindVisitor === 'function') {\n // { Kind() {} }\n return kindVisitor;\n }\n\n var kindSpecificVisitor = isLeaving ? kindVisitor.leave : kindVisitor.enter;\n\n if (typeof kindSpecificVisitor === 'function') {\n // { Kind: { enter() {}, leave() {} } }\n return kindSpecificVisitor;\n }\n } else {\n var specificVisitor = isLeaving ? visitor.leave : visitor.enter;\n\n if (specificVisitor) {\n if (typeof specificVisitor === 'function') {\n // { enter() {}, leave() {} }\n return specificVisitor;\n }\n\n var specificKindVisitor = specificVisitor[kind];\n\n if (typeof specificKindVisitor === 'function') {\n // { enter: { Kind() {} }, leave: { Kind() {} } }\n return specificKindVisitor;\n }\n }\n }\n}\n","import { visit } from \"./visitor.mjs\";\nimport { printBlockString } from \"./blockString.mjs\";\n/**\n * Converts an AST into a string, using one set of reasonable\n * formatting rules.\n */\n\nexport function print(ast) {\n return visit(ast, {\n leave: printDocASTReducer\n });\n} // TODO: provide better type coverage in future\n\nvar printDocASTReducer = {\n Name: function Name(node) {\n return node.value;\n },\n Variable: function Variable(node) {\n return '$' + node.name;\n },\n // Document\n Document: function Document(node) {\n return join(node.definitions, '\\n\\n') + '\\n';\n },\n OperationDefinition: function OperationDefinition(node) {\n var op = node.operation;\n var name = node.name;\n var varDefs = wrap('(', join(node.variableDefinitions, ', '), ')');\n var directives = join(node.directives, ' ');\n var selectionSet = node.selectionSet; // Anonymous queries with no directives or variable definitions can use\n // the query short form.\n\n return !name && !directives && !varDefs && op === 'query' ? selectionSet : join([op, join([name, varDefs]), directives, selectionSet], ' ');\n },\n VariableDefinition: function VariableDefinition(_ref) {\n var variable = _ref.variable,\n type = _ref.type,\n defaultValue = _ref.defaultValue,\n directives = _ref.directives;\n return variable + ': ' + type + wrap(' = ', defaultValue) + wrap(' ', join(directives, ' '));\n },\n SelectionSet: function SelectionSet(_ref2) {\n var selections = _ref2.selections;\n return block(selections);\n },\n Field: function Field(_ref3) {\n var alias = _ref3.alias,\n name = _ref3.name,\n args = _ref3.arguments,\n directives = _ref3.directives,\n selectionSet = _ref3.selectionSet;\n return join([wrap('', alias, ': ') + name + wrap('(', join(args, ', '), ')'), join(directives, ' '), selectionSet], ' ');\n },\n Argument: function Argument(_ref4) {\n var name = _ref4.name,\n value = _ref4.value;\n return name + ': ' + value;\n },\n // Fragments\n FragmentSpread: function FragmentSpread(_ref5) {\n var name = _ref5.name,\n directives = _ref5.directives;\n return '...' + name + wrap(' ', join(directives, ' '));\n },\n InlineFragment: function InlineFragment(_ref6) {\n var typeCondition = _ref6.typeCondition,\n directives = _ref6.directives,\n selectionSet = _ref6.selectionSet;\n return join(['...', wrap('on ', typeCondition), join(directives, ' '), selectionSet], ' ');\n },\n FragmentDefinition: function FragmentDefinition(_ref7) {\n var name = _ref7.name,\n typeCondition = _ref7.typeCondition,\n variableDefinitions = _ref7.variableDefinitions,\n directives = _ref7.directives,\n selectionSet = _ref7.selectionSet;\n return (// Note: fragment variable definitions are experimental and may be changed\n // or removed in the future.\n \"fragment \".concat(name).concat(wrap('(', join(variableDefinitions, ', '), ')'), \" \") + \"on \".concat(typeCondition, \" \").concat(wrap('', join(directives, ' '), ' ')) + selectionSet\n );\n },\n // Value\n IntValue: function IntValue(_ref8) {\n var value = _ref8.value;\n return value;\n },\n FloatValue: function FloatValue(_ref9) {\n var value = _ref9.value;\n return value;\n },\n StringValue: function StringValue(_ref10, key) {\n var value = _ref10.value,\n isBlockString = _ref10.block;\n return isBlockString ? printBlockString(value, key === 'description' ? '' : ' ') : JSON.stringify(value);\n },\n BooleanValue: function BooleanValue(_ref11) {\n var value = _ref11.value;\n return value ? 'true' : 'false';\n },\n NullValue: function NullValue() {\n return 'null';\n },\n EnumValue: function EnumValue(_ref12) {\n var value = _ref12.value;\n return value;\n },\n ListValue: function ListValue(_ref13) {\n var values = _ref13.values;\n return '[' + join(values, ', ') + ']';\n },\n ObjectValue: function ObjectValue(_ref14) {\n var fields = _ref14.fields;\n return '{' + join(fields, ', ') + '}';\n },\n ObjectField: function ObjectField(_ref15) {\n var name = _ref15.name,\n value = _ref15.value;\n return name + ': ' + value;\n },\n // Directive\n Directive: function Directive(_ref16) {\n var name = _ref16.name,\n args = _ref16.arguments;\n return '@' + name + wrap('(', join(args, ', '), ')');\n },\n // Type\n NamedType: function NamedType(_ref17) {\n var name = _ref17.name;\n return name;\n },\n ListType: function ListType(_ref18) {\n var type = _ref18.type;\n return '[' + type + ']';\n },\n NonNullType: function NonNullType(_ref19) {\n var type = _ref19.type;\n return type + '!';\n },\n // Type System Definitions\n SchemaDefinition: addDescription(function (_ref20) {\n var directives = _ref20.directives,\n operationTypes = _ref20.operationTypes;\n return join(['schema', join(directives, ' '), block(operationTypes)], ' ');\n }),\n OperationTypeDefinition: function OperationTypeDefinition(_ref21) {\n var operation = _ref21.operation,\n type = _ref21.type;\n return operation + ': ' + type;\n },\n ScalarTypeDefinition: addDescription(function (_ref22) {\n var name = _ref22.name,\n directives = _ref22.directives;\n return join(['scalar', name, join(directives, ' ')], ' ');\n }),\n ObjectTypeDefinition: addDescription(function (_ref23) {\n var name = _ref23.name,\n interfaces = _ref23.interfaces,\n directives = _ref23.directives,\n fields = _ref23.fields;\n return join(['type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n }),\n FieldDefinition: addDescription(function (_ref24) {\n var name = _ref24.name,\n args = _ref24.arguments,\n type = _ref24.type,\n directives = _ref24.directives;\n return name + (hasMultilineItems(args) ? wrap('(\\n', indent(join(args, '\\n')), '\\n)') : wrap('(', join(args, ', '), ')')) + ': ' + type + wrap(' ', join(directives, ' '));\n }),\n InputValueDefinition: addDescription(function (_ref25) {\n var name = _ref25.name,\n type = _ref25.type,\n defaultValue = _ref25.defaultValue,\n directives = _ref25.directives;\n return join([name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')], ' ');\n }),\n InterfaceTypeDefinition: addDescription(function (_ref26) {\n var name = _ref26.name,\n interfaces = _ref26.interfaces,\n directives = _ref26.directives,\n fields = _ref26.fields;\n return join(['interface', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n }),\n UnionTypeDefinition: addDescription(function (_ref27) {\n var name = _ref27.name,\n directives = _ref27.directives,\n types = _ref27.types;\n return join(['union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' ');\n }),\n EnumTypeDefinition: addDescription(function (_ref28) {\n var name = _ref28.name,\n directives = _ref28.directives,\n values = _ref28.values;\n return join(['enum', name, join(directives, ' '), block(values)], ' ');\n }),\n EnumValueDefinition: addDescription(function (_ref29) {\n var name = _ref29.name,\n directives = _ref29.directives;\n return join([name, join(directives, ' ')], ' ');\n }),\n InputObjectTypeDefinition: addDescription(function (_ref30) {\n var name = _ref30.name,\n directives = _ref30.directives,\n fields = _ref30.fields;\n return join(['input', name, join(directives, ' '), block(fields)], ' ');\n }),\n DirectiveDefinition: addDescription(function (_ref31) {\n var name = _ref31.name,\n args = _ref31.arguments,\n repeatable = _ref31.repeatable,\n locations = _ref31.locations;\n return 'directive @' + name + (hasMultilineItems(args) ? wrap('(\\n', indent(join(args, '\\n')), '\\n)') : wrap('(', join(args, ', '), ')')) + (repeatable ? ' repeatable' : '') + ' on ' + join(locations, ' | ');\n }),\n SchemaExtension: function SchemaExtension(_ref32) {\n var directives = _ref32.directives,\n operationTypes = _ref32.operationTypes;\n return join(['extend schema', join(directives, ' '), block(operationTypes)], ' ');\n },\n ScalarTypeExtension: function ScalarTypeExtension(_ref33) {\n var name = _ref33.name,\n directives = _ref33.directives;\n return join(['extend scalar', name, join(directives, ' ')], ' ');\n },\n ObjectTypeExtension: function ObjectTypeExtension(_ref34) {\n var name = _ref34.name,\n interfaces = _ref34.interfaces,\n directives = _ref34.directives,\n fields = _ref34.fields;\n return join(['extend type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n },\n InterfaceTypeExtension: function InterfaceTypeExtension(_ref35) {\n var name = _ref35.name,\n interfaces = _ref35.interfaces,\n directives = _ref35.directives,\n fields = _ref35.fields;\n return join(['extend interface', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n },\n UnionTypeExtension: function UnionTypeExtension(_ref36) {\n var name = _ref36.name,\n directives = _ref36.directives,\n types = _ref36.types;\n return join(['extend union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' ');\n },\n EnumTypeExtension: function EnumTypeExtension(_ref37) {\n var name = _ref37.name,\n directives = _ref37.directives,\n values = _ref37.values;\n return join(['extend enum', name, join(directives, ' '), block(values)], ' ');\n },\n InputObjectTypeExtension: function InputObjectTypeExtension(_ref38) {\n var name = _ref38.name,\n directives = _ref38.directives,\n fields = _ref38.fields;\n return join(['extend input', name, join(directives, ' '), block(fields)], ' ');\n }\n};\n\nfunction addDescription(cb) {\n return function (node) {\n return join([node.description, cb(node)], '\\n');\n };\n}\n/**\n * Given maybeArray, print an empty string if it is null or empty, otherwise\n * print all items together separated by separator if provided\n */\n\n\nfunction join(maybeArray) {\n var _maybeArray$filter$jo;\n\n var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return (_maybeArray$filter$jo = maybeArray === null || maybeArray === void 0 ? void 0 : maybeArray.filter(function (x) {\n return x;\n }).join(separator)) !== null && _maybeArray$filter$jo !== void 0 ? _maybeArray$filter$jo : '';\n}\n/**\n * Given array, print each item on its own line, wrapped in an\n * indented \"{ }\" block.\n */\n\n\nfunction block(array) {\n return array && array.length !== 0 ? '{\\n' + indent(join(array, '\\n')) + '\\n}' : '';\n}\n/**\n * If maybeString is not null or empty, then wrap with start and end, otherwise\n * print an empty string.\n */\n\n\nfunction wrap(start, maybeString) {\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n return maybeString ? start + maybeString + end : '';\n}\n\nfunction indent(maybeString) {\n return maybeString && ' ' + maybeString.replace(/\\n/g, '\\n ');\n}\n\nfunction isMultiline(string) {\n return string.indexOf('\\n') !== -1;\n}\n\nfunction hasMultilineItems(maybeArray) {\n return maybeArray && maybeArray.some(isMultiline);\n}\n","/**\n * Produces the value of a block string from its parsed raw value, similar to\n * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.\n *\n * This implements the GraphQL spec's BlockStringValue() static algorithm.\n *\n * @internal\n */\nexport function dedentBlockStringValue(rawString) {\n // Expand a block string's raw value into independent lines.\n var lines = rawString.split(/\\r\\n|[\\n\\r]/g); // Remove common indentation from all lines but first.\n\n var commonIndent = getBlockStringIndentation(lines);\n\n if (commonIndent !== 0) {\n for (var i = 1; i < lines.length; i++) {\n lines[i] = lines[i].slice(commonIndent);\n }\n } // Remove leading and trailing blank lines.\n\n\n while (lines.length > 0 && isBlank(lines[0])) {\n lines.shift();\n }\n\n while (lines.length > 0 && isBlank(lines[lines.length - 1])) {\n lines.pop();\n } // Return a string of the lines joined with U+000A.\n\n\n return lines.join('\\n');\n}\n/**\n * @internal\n */\n\nexport function getBlockStringIndentation(lines) {\n var commonIndent = null;\n\n for (var i = 1; i < lines.length; i++) {\n var line = lines[i];\n var indent = leadingWhitespace(line);\n\n if (indent === line.length) {\n continue; // skip empty lines\n }\n\n if (commonIndent === null || indent < commonIndent) {\n commonIndent = indent;\n\n if (commonIndent === 0) {\n break;\n }\n }\n }\n\n return commonIndent === null ? 0 : commonIndent;\n}\n\nfunction leadingWhitespace(str) {\n var i = 0;\n\n while (i < str.length && (str[i] === ' ' || str[i] === '\\t')) {\n i++;\n }\n\n return i;\n}\n\nfunction isBlank(str) {\n return leadingWhitespace(str) === str.length;\n}\n/**\n * Print a block string in the indented block form by adding a leading and\n * trailing blank line. However, if a block string starts with whitespace and is\n * a single-line, adding a leading blank line would strip that whitespace.\n *\n * @internal\n */\n\n\nexport function printBlockString(value) {\n var indentation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var preferMultipleLines = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var isSingleLine = value.indexOf('\\n') === -1;\n var hasLeadingSpace = value[0] === ' ' || value[0] === '\\t';\n var hasTrailingQuote = value[value.length - 1] === '\"';\n var hasTrailingSlash = value[value.length - 1] === '\\\\';\n var printAsMultipleLines = !isSingleLine || hasTrailingQuote || hasTrailingSlash || preferMultipleLines;\n var result = ''; // Format a multi-line block quote to account for leading space.\n\n if (printAsMultipleLines && !(isSingleLine && hasLeadingSpace)) {\n result += '\\n' + indentation;\n }\n\n result += indentation ? value.replace(/\\n/g, '\\n' + indentation) : value;\n\n if (printAsMultipleLines) {\n result += '\\n';\n }\n\n return '\"\"\"' + result.replace(/\"\"\"/g, '\\\\\"\"\"') + '\"\"\"';\n}\n","'use strict';\n\nconst nameStartChar = ':A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\nconst nameChar = nameStartChar + '\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\nconst nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*'\nconst regexName = new RegExp('^' + nameRegexp + '$');\n\nconst getAllMatches = function(string, regex) {\n const matches = [];\n let match = regex.exec(string);\n while (match) {\n const allmatches = [];\n allmatches.startIndex = regex.lastIndex - match[0].length;\n const len = match.length;\n for (let index = 0; index < len; index++) {\n allmatches.push(match[index]);\n }\n matches.push(allmatches);\n match = regex.exec(string);\n }\n return matches;\n};\n\nconst isName = function(string) {\n const match = regexName.exec(string);\n return !(match === null || typeof match === 'undefined');\n};\n\nexports.isExist = function(v) {\n return typeof v !== 'undefined';\n};\n\nexports.isEmptyObject = function(obj) {\n return Object.keys(obj).length === 0;\n};\n\n/**\n * Copy all the properties of a into b.\n * @param {*} target\n * @param {*} a\n */\nexports.merge = function(target, a, arrayMode) {\n if (a) {\n const keys = Object.keys(a); // will return an array of own properties\n const len = keys.length; //don't make it inline\n for (let i = 0; i < len; i++) {\n if (arrayMode === 'strict') {\n target[keys[i]] = [ a[keys[i]] ];\n } else {\n target[keys[i]] = a[keys[i]];\n }\n }\n }\n};\n/* exports.merge =function (b,a){\n return Object.assign(b,a);\n} */\n\nexports.getValue = function(v) {\n if (exports.isExist(v)) {\n return v;\n } else {\n return '';\n }\n};\n\n// const fakeCall = function(a) {return a;};\n// const fakeCallNoReturn = function() {};\n\nexports.buildOptions = function(options, defaultOptions, props) {\n let newOptions = {};\n if (!options) {\n return defaultOptions; //if there are not options\n }\n\n for (let i = 0; i < props.length; i++) {\n if (options[props[i]] !== undefined) {\n newOptions[props[i]] = options[props[i]];\n } else {\n newOptions[props[i]] = defaultOptions[props[i]];\n }\n }\n return newOptions;\n};\n\n/**\n * Check if a tag name should be treated as array\n *\n * @param tagName the node tagname\n * @param arrayMode the array mode option\n * @param parentTagName the parent tag name\n * @returns {boolean} true if node should be parsed as array\n */\nexports.isTagNameInArrayMode = function (tagName, arrayMode, parentTagName) {\n if (arrayMode === false) {\n return false;\n } else if (arrayMode instanceof RegExp) {\n return arrayMode.test(tagName);\n } else if (typeof arrayMode === 'function') {\n return !!arrayMode(tagName, parentTagName);\n }\n\n return arrayMode === \"strict\";\n}\n\nexports.isName = isName;\nexports.getAllMatches = getAllMatches;\nexports.nameRegexp = nameRegexp;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","'use strict';\n\nconst util = require('./util');\nconst buildOptions = require('./util').buildOptions;\nconst xmlNode = require('./xmlNode');\nconst toNumber = require(\"strnum\");\n\nconst regx =\n '<((!\\\\[CDATA\\\\[([\\\\s\\\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\\\/)(NAME)\\\\s*>))([^<]*)'\n .replace(/NAME/g, util.nameRegexp);\n\n//const tagsRegx = new RegExp(\"<(\\\\/?[\\\\w:\\\\-\\._]+)([^>]*)>(\\\\s*\"+cdataRegx+\")*([^<]+)?\",\"g\");\n//const tagsRegx = new RegExp(\"<(\\\\/?)((\\\\w*:)?([\\\\w:\\\\-\\._]+))([^>]*)>([^<]*)(\"+cdataRegx+\"([^<]*))*([^<]+)?\",\"g\");\n\n//polyfill\nif (!Number.parseInt && window.parseInt) {\n Number.parseInt = window.parseInt;\n}\nif (!Number.parseFloat && window.parseFloat) {\n Number.parseFloat = window.parseFloat;\n}\n\nconst defaultOptions = {\n attributeNamePrefix: '@_',\n attrNodeName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n ignoreNameSpace: false,\n allowBooleanAttributes: false, //a tag can have attributes without any value\n //ignoreRootElement : false,\n parseNodeValue: true,\n parseAttributeValue: false,\n arrayMode: false,\n trimValues: true, //Trim string values of tag and attributes\n cdataTagName: false,\n cdataPositionChar: '\\\\c',\n numParseOptions: {\n hex: true,\n leadingZeros: true\n },\n tagValueProcessor: function(a, tagName) {\n return a;\n },\n attrValueProcessor: function(a, attrName) {\n return a;\n },\n stopNodes: [],\n alwaysCreateTextNode: false\n //decodeStrict: false,\n};\n\nexports.defaultOptions = defaultOptions;\n\nconst props = [\n 'attributeNamePrefix',\n 'attrNodeName',\n 'textNodeName',\n 'ignoreAttributes',\n 'ignoreNameSpace',\n 'allowBooleanAttributes',\n 'parseNodeValue',\n 'parseAttributeValue',\n 'arrayMode',\n 'trimValues',\n 'cdataTagName',\n 'cdataPositionChar',\n 'tagValueProcessor',\n 'attrValueProcessor',\n 'parseTrueNumberOnly',\n 'numParseOptions',\n 'stopNodes',\n 'alwaysCreateTextNode'\n];\nexports.props = props;\n\n/**\n * Trim -> valueProcessor -> parse value\n * @param {string} tagName\n * @param {string} val\n * @param {object} options\n */\nfunction processTagValue(tagName, val, options) {\n if (val) {\n if (options.trimValues) {\n val = val.trim();\n }\n val = options.tagValueProcessor(val, tagName);\n val = parseValue(val, options.parseNodeValue, options.numParseOptions);\n }\n\n return val;\n}\n\nfunction resolveNameSpace(tagname, options) {\n if (options.ignoreNameSpace) {\n const tags = tagname.split(':');\n const prefix = tagname.charAt(0) === '/' ? '/' : '';\n if (tags[0] === 'xmlns') {\n return '';\n }\n if (tags.length === 2) {\n tagname = prefix + tags[1];\n }\n }\n return tagname;\n}\n\nfunction parseValue(val, shouldParse, options) {\n if (shouldParse && typeof val === 'string') {\n //console.log(options)\n const newval = val.trim();\n if(newval === 'true' ) return true;\n else if(newval === 'false' ) return false;\n else return toNumber(val, options);\n } else {\n if (util.isExist(val)) {\n return val;\n } else {\n return '';\n }\n }\n}\n\n//TODO: change regex to capture NS\n//const attrsRegx = new RegExp(\"([\\\\w\\\\-\\\\.\\\\:]+)\\\\s*=\\\\s*(['\\\"])((.|\\n)*?)\\\\2\",\"gm\");\nconst attrsRegx = new RegExp('([^\\\\s=]+)\\\\s*(=\\\\s*([\\'\"])(.*?)\\\\3)?', 'g');\n\nfunction buildAttributesMap(attrStr, options) {\n if (!options.ignoreAttributes && typeof attrStr === 'string') {\n attrStr = attrStr.replace(/\\r?\\n/g, ' ');\n //attrStr = attrStr || attrStr.trim();\n\n const matches = util.getAllMatches(attrStr, attrsRegx);\n const len = matches.length; //don't make it inline\n const attrs = {};\n for (let i = 0; i < len; i++) {\n const attrName = resolveNameSpace(matches[i][1], options);\n if (attrName.length) {\n if (matches[i][4] !== undefined) {\n if (options.trimValues) {\n matches[i][4] = matches[i][4].trim();\n }\n matches[i][4] = options.attrValueProcessor(matches[i][4], attrName);\n attrs[options.attributeNamePrefix + attrName] = parseValue(\n matches[i][4],\n options.parseAttributeValue,\n options.numParseOptions\n );\n } else if (options.allowBooleanAttributes) {\n attrs[options.attributeNamePrefix + attrName] = true;\n }\n }\n }\n if (!Object.keys(attrs).length) {\n return;\n }\n if (options.attrNodeName) {\n const attrCollection = {};\n attrCollection[options.attrNodeName] = attrs;\n return attrCollection;\n }\n return attrs;\n }\n}\n\nconst getTraversalObj = function(xmlData, options) {\n xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\");\n options = buildOptions(options, defaultOptions, props);\n const xmlObj = new xmlNode('!xml');\n let currentNode = xmlObj;\n let textData = \"\";\n\n//function match(xmlData){\n for(let i=0; i< xmlData.length; i++){\n const ch = xmlData[i];\n if(ch === '<'){\n if( xmlData[i+1] === '/') {//Closing Tag\n const closeIndex = findClosingIndex(xmlData, \">\", i, \"Closing Tag is not closed.\")\n let tagName = xmlData.substring(i+2,closeIndex).trim();\n\n if(options.ignoreNameSpace){\n const colonIndex = tagName.indexOf(\":\");\n if(colonIndex !== -1){\n tagName = tagName.substr(colonIndex+1);\n }\n }\n\n /* if (currentNode.parent) {\n currentNode.parent.val = util.getValue(currentNode.parent.val) + '' + processTagValue2(tagName, textData , options);\n } */\n if(currentNode){\n if(currentNode.val){\n currentNode.val = util.getValue(currentNode.val) + '' + processTagValue(tagName, textData , options);\n }else{\n currentNode.val = processTagValue(tagName, textData , options);\n }\n }\n\n if (options.stopNodes.length && options.stopNodes.includes(currentNode.tagname)) {\n currentNode.child = []\n if (currentNode.attrsMap == undefined) { currentNode.attrsMap = {}}\n currentNode.val = xmlData.substr(currentNode.startIndex + 1, i - currentNode.startIndex - 1)\n }\n currentNode = currentNode.parent;\n textData = \"\";\n i = closeIndex;\n } else if( xmlData[i+1] === '?') {\n i = findClosingIndex(xmlData, \"?>\", i, \"Pi Tag is not closed.\")\n } else if(xmlData.substr(i + 1, 3) === '!--') {\n i = findClosingIndex(xmlData, \"-->\", i, \"Comment is not closed.\")\n } else if( xmlData.substr(i + 1, 2) === '!D') {\n const closeIndex = findClosingIndex(xmlData, \">\", i, \"DOCTYPE is not closed.\")\n const tagExp = xmlData.substring(i, closeIndex);\n if(tagExp.indexOf(\"[\") >= 0){\n i = xmlData.indexOf(\"]>\", i) + 1;\n }else{\n i = closeIndex;\n }\n }else if(xmlData.substr(i + 1, 2) === '![') {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"CDATA is not closed.\") - 2\n const tagExp = xmlData.substring(i + 9,closeIndex);\n\n //considerations\n //1. CDATA will always have parent node\n //2. A tag with CDATA is not a leaf node so it's value would be string type.\n if(textData){\n currentNode.val = util.getValue(currentNode.val) + '' + processTagValue(currentNode.tagname, textData , options);\n textData = \"\";\n }\n\n if (options.cdataTagName) {\n //add cdata node\n const childNode = new xmlNode(options.cdataTagName, currentNode, tagExp);\n currentNode.addChild(childNode);\n //for backtracking\n currentNode.val = util.getValue(currentNode.val) + options.cdataPositionChar;\n //add rest value to parent node\n if (tagExp) {\n childNode.val = tagExp;\n }\n } else {\n currentNode.val = (currentNode.val || '') + (tagExp || '');\n }\n\n i = closeIndex + 2;\n }else {//Opening tag\n const result = closingIndexForOpeningTag(xmlData, i+1)\n let tagExp = result.data;\n const closeIndex = result.index;\n const separatorIndex = tagExp.indexOf(\" \");\n let tagName = tagExp;\n let shouldBuildAttributesMap = true;\n if(separatorIndex !== -1){\n tagName = tagExp.substr(0, separatorIndex).replace(/\\s\\s*$/, '');\n tagExp = tagExp.substr(separatorIndex + 1);\n }\n\n if(options.ignoreNameSpace){\n const colonIndex = tagName.indexOf(\":\");\n if(colonIndex !== -1){\n tagName = tagName.substr(colonIndex+1);\n shouldBuildAttributesMap = tagName !== result.data.substr(colonIndex + 1);\n }\n }\n\n //save text to parent node\n if (currentNode && textData) {\n if(currentNode.tagname !== '!xml'){\n currentNode.val = util.getValue(currentNode.val) + '' + processTagValue( currentNode.tagname, textData, options);\n }\n }\n\n if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){//selfClosing tag\n\n if(tagName[tagName.length - 1] === \"/\"){ //remove trailing '/'\n tagName = tagName.substr(0, tagName.length - 1);\n tagExp = tagName;\n }else{\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n\n const childNode = new xmlNode(tagName, currentNode, '');\n if(tagName !== tagExp){\n childNode.attrsMap = buildAttributesMap(tagExp, options);\n }\n currentNode.addChild(childNode);\n }else{//opening tag\n\n const childNode = new xmlNode( tagName, currentNode );\n if (options.stopNodes.length && options.stopNodes.includes(childNode.tagname)) {\n childNode.startIndex=closeIndex;\n }\n if(tagName !== tagExp && shouldBuildAttributesMap){\n childNode.attrsMap = buildAttributesMap(tagExp, options);\n }\n currentNode.addChild(childNode);\n currentNode = childNode;\n }\n textData = \"\";\n i = closeIndex;\n }\n }else{\n textData += xmlData[i];\n }\n }\n return xmlObj;\n}\n\nfunction closingIndexForOpeningTag(data, i){\n let attrBoundary;\n let tagExp = \"\";\n for (let index = i; index < data.length; index++) {\n let ch = data[index];\n if (attrBoundary) {\n if (ch === attrBoundary) attrBoundary = \"\";//reset\n } else if (ch === '\"' || ch === \"'\") {\n attrBoundary = ch;\n } else if (ch === '>') {\n return {\n data: tagExp,\n index: index\n }\n } else if (ch === '\\t') {\n ch = \" \"\n }\n tagExp += ch;\n }\n}\n\nfunction findClosingIndex(xmlData, str, i, errMsg){\n const closingIndex = xmlData.indexOf(str, i);\n if(closingIndex === -1){\n throw new Error(errMsg)\n }else{\n return closingIndex + str.length - 1;\n }\n}\n\nexports.getTraversalObj = getTraversalObj;\n","'use strict';\n\nmodule.exports = function ReactNativeFile(_ref) {\n var uri = _ref.uri,\n name = _ref.name,\n type = _ref.type;\n this.uri = uri;\n this.name = name;\n this.type = type;\n};\n","'use strict';\n\nvar ReactNativeFile = require('./ReactNativeFile');\n\nmodule.exports = function isExtractableFile(value) {\n return (\n (typeof File !== 'undefined' && value instanceof File) ||\n (typeof Blob !== 'undefined' && value instanceof Blob) ||\n value instanceof ReactNativeFile\n );\n};\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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.gql = exports.request = exports.rawRequest = exports.GraphQLClient = exports.ClientError = void 0;\nvar cross_fetch_1 = __importDefault(require(\"cross-fetch\"));\nvar printer_1 = require(\"graphql/language/printer\");\nvar createRequestBody_1 = __importDefault(require(\"./createRequestBody\"));\nvar types_1 = require(\"./types\");\nvar types_2 = require(\"./types\");\nObject.defineProperty(exports, \"ClientError\", { enumerable: true, get: function () { return types_2.ClientError; } });\nvar resolveHeaders = function (headers) {\n var oHeaders = {};\n if (headers) {\n if (headers instanceof Headers) {\n oHeaders = HeadersInstanceToPlainObject(headers);\n }\n else if (headers instanceof Array) {\n headers.forEach(function (_a) {\n var name = _a[0], value = _a[1];\n oHeaders[name] = value;\n });\n }\n else {\n oHeaders = headers;\n }\n }\n return oHeaders;\n};\n/**\n * todo\n */\nvar GraphQLClient = /** @class */ (function () {\n function GraphQLClient(url, options) {\n this.url = url;\n this.options = options || {};\n }\n GraphQLClient.prototype.rawRequest = function (query, variables) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, headers, others, body, response, result, headers_1, status_1, errorResult;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this.options, headers = _a.headers, others = __rest(_a, [\"headers\"]);\n body = createRequestBody_1.default(query, variables);\n headers = resolveHeaders(headers);\n return [4 /*yield*/, cross_fetch_1.default(this.url, __assign({ method: 'POST', headers: __assign(__assign({}, (typeof body === 'string' ? { 'Content-Type': 'application/json' } : {})), headers), body: body }, others))];\n case 1:\n response = _b.sent();\n return [4 /*yield*/, getResult(response)];\n case 2:\n result = _b.sent();\n if (response.ok && !result.errors && result.data) {\n headers_1 = response.headers, status_1 = response.status;\n return [2 /*return*/, __assign(__assign({}, result), { headers: headers_1, status: status_1 })];\n }\n else {\n errorResult = typeof result === 'string' ? { error: result } : result;\n throw new types_1.ClientError(__assign(__assign({}, errorResult), { status: response.status, headers: response.headers }), { query: query, variables: variables });\n }\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Send a GraphQL document to the server.\n */\n GraphQLClient.prototype.request = function (document, variables) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, headers, others, resolvedDoc, body, response, result, errorResult;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this.options, headers = _a.headers, others = __rest(_a, [\"headers\"]);\n headers = resolveHeaders(headers);\n resolvedDoc = resolveRequestDocument(document);\n body = createRequestBody_1.default(resolvedDoc, variables);\n return [4 /*yield*/, cross_fetch_1.default(this.url, __assign({ method: 'POST', headers: __assign(__assign({}, (typeof body === 'string' ? { 'Content-Type': 'application/json' } : {})), headers), body: body }, others))];\n case 1:\n response = _b.sent();\n return [4 /*yield*/, getResult(response)];\n case 2:\n result = _b.sent();\n if (response.ok && !result.errors && result.data) {\n return [2 /*return*/, result.data];\n }\n else {\n errorResult = typeof result === 'string' ? { error: result } : result;\n throw new types_1.ClientError(__assign(__assign({}, errorResult), { status: response.status }), { query: resolvedDoc, variables: variables });\n }\n return [2 /*return*/];\n }\n });\n });\n };\n GraphQLClient.prototype.setHeaders = function (headers) {\n this.options.headers = headers;\n return this;\n };\n /**\n * Attach a header to the client. All subsequent requests will have this header.\n */\n GraphQLClient.prototype.setHeader = function (key, value) {\n var _a;\n var headers = this.options.headers;\n if (headers) {\n // todo what if headers is in nested array form... ?\n //@ts-ignore\n headers[key] = value;\n }\n else {\n this.options.headers = (_a = {}, _a[key] = value, _a);\n }\n return this;\n };\n return GraphQLClient;\n}());\nexports.GraphQLClient = GraphQLClient;\n/**\n * todo\n */\nfunction rawRequest(url, query, variables) {\n return __awaiter(this, void 0, void 0, function () {\n var client;\n return __generator(this, function (_a) {\n client = new GraphQLClient(url);\n return [2 /*return*/, client.rawRequest(query, variables)];\n });\n });\n}\nexports.rawRequest = rawRequest;\n/**\n * Send a GraphQL Document to the GraphQL server for exectuion.\n *\n * @example\n *\n * ```ts\n * // You can pass a raw string\n *\n * await request('https://foo.bar/graphql', `\n * {\n * query {\n * users\n * }\n * }\n * `)\n *\n * // You can also pass a GraphQL DocumentNode. Convenient if you\n * // are using graphql-tag package.\n *\n * import gql from 'graphql-tag'\n *\n * await request('https://foo.bar/graphql', gql`...`)\n *\n * // If you don't actually care about using DocumentNode but just\n * // want the tooling support for gql template tag like IDE syntax\n * // coloring and prettier autoformat then note you can use the\n * // passthrough gql tag shipped with graphql-request to save a bit\n * // of performance and not have to install another dep into your project.\n *\n * import { gql } from 'graphql-request'\n *\n * await request('https://foo.bar/graphql', gql`...`)\n * ```\n */\nfunction request(url, document, variables) {\n return __awaiter(this, void 0, void 0, function () {\n var client;\n return __generator(this, function (_a) {\n client = new GraphQLClient(url);\n return [2 /*return*/, client.request(document, variables)];\n });\n });\n}\nexports.request = request;\nexports.default = request;\n/**\n * todo\n */\nfunction getResult(response) {\n var contentType = response.headers.get('Content-Type');\n if (contentType && contentType.startsWith('application/json')) {\n return response.json();\n }\n else {\n return response.text();\n }\n}\n/**\n * helpers\n */\nfunction resolveRequestDocument(document) {\n if (typeof document === 'string')\n return document;\n return printer_1.print(document);\n}\n/**\n * Convenience passthrough template tag to get the benefits of tooling for the gql template tag. This does not actually parse the input into a GraphQL DocumentNode like graphql-tag package does. It just returns the string with any variables given interpolated. Can save you a bit of performance and having to install another package.\n *\n * @example\n *\n * import { gql } from 'graphql-request'\n *\n * await request('https://foo.bar/graphql', gql`...`)\n *\n * @remarks\n *\n * Several tools in the Node GraphQL ecosystem are hardcoded to specially treat any template tag named \"gql\". For example see this prettier issue: https://github.com/prettier/prettier/issues/4360. Using this template tag has no runtime effect beyond variable interpolation.\n */\nfunction gql(chunks) {\n var variables = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n variables[_i - 1] = arguments[_i];\n }\n return chunks.reduce(function (accumulator, chunk, index) { return \"\" + accumulator + chunk + (index in variables ? variables[index] : ''); }, '');\n}\nexports.gql = gql;\n/**\n * Convert Headers instance into regular object\n */\nfunction HeadersInstanceToPlainObject(headers) {\n var o = {};\n headers.forEach(function (v, k) {\n o[k] = v;\n });\n return o;\n}\n//# sourceMappingURL=index.js.map","'use strict';\n\nvar defaultIsExtractableFile = require('./isExtractableFile');\n\nmodule.exports = function extractFiles(value, path, isExtractableFile) {\n if (path === void 0) {\n path = '';\n }\n\n if (isExtractableFile === void 0) {\n isExtractableFile = defaultIsExtractableFile;\n }\n\n var clone;\n var files = new Map();\n\n function addFile(paths, file) {\n var storedPaths = files.get(file);\n if (storedPaths) storedPaths.push.apply(storedPaths, paths);\n else files.set(file, paths);\n }\n\n if (isExtractableFile(value)) {\n clone = null;\n addFile([path], value);\n } else {\n var prefix = path ? path + '.' : '';\n if (typeof FileList !== 'undefined' && value instanceof FileList)\n clone = Array.prototype.map.call(value, function (file, i) {\n addFile(['' + prefix + i], file);\n return null;\n });\n else if (Array.isArray(value))\n clone = value.map(function (child, i) {\n var result = extractFiles(child, '' + prefix + i, isExtractableFile);\n result.files.forEach(addFile);\n return result.clone;\n });\n else if (value && value.constructor === Object) {\n clone = {};\n\n for (var i in value) {\n var result = extractFiles(value[i], '' + prefix + i, isExtractableFile);\n result.files.forEach(addFile);\n clone[i] = result.clone;\n }\n } else clone = value;\n }\n\n return {\n clone: clone,\n files: files,\n };\n};\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 extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClientError = void 0;\nvar ClientError = /** @class */ (function (_super) {\n __extends(ClientError, _super);\n function ClientError(response, request) {\n var _this = this;\n var message = ClientError.extractMessage(response) + \": \" + JSON.stringify({\n response: response,\n request: request,\n });\n _this = _super.call(this, message) || this;\n Object.setPrototypeOf(_this, ClientError.prototype);\n _this.response = response;\n _this.request = request;\n // this is needed as Safari doesn't support .captureStackTrace\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(_this, ClientError);\n }\n return _this;\n }\n ClientError.extractMessage = function (response) {\n try {\n return response.errors[0].message;\n }\n catch (e) {\n return \"GraphQL Error (Code: \" + response.status + \")\";\n }\n };\n return ClientError;\n}(Error));\nexports.ClientError = ClientError;\n//# sourceMappingURL=types.js.map","\"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\";\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 __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';\n\nconst nodeToJson = require('./node2json');\nconst xmlToNodeobj = require('./xmlstr2xmlnode');\nconst x2xmlnode = require('./xmlstr2xmlnode');\nconst buildOptions = require('./util').buildOptions;\nconst validator = require('./validator');\n\nexports.parse = function(xmlData, givenOptions = {}, validationOption) {\n if( validationOption){\n if(validationOption === true) validationOption = {}\n \n const result = validator.validate(xmlData, validationOption);\n if (result !== true) {\n throw Error( result.err.msg)\n }\n }\n if(givenOptions.parseTrueNumberOnly \n && givenOptions.parseNodeValue !== false\n && !givenOptions.numParseOptions){\n \n givenOptions.numParseOptions = {\n leadingZeros: false,\n }\n }\n let options = buildOptions(givenOptions, x2xmlnode.defaultOptions, x2xmlnode.props);\n\n const traversableObj = xmlToNodeobj.getTraversalObj(xmlData, options)\n //print(traversableObj, \" \");\n return nodeToJson.convertToJson(traversableObj, options);\n};\nexports.convertTonimn = require('./nimndata').convert2nimn;\nexports.getTraversalObj = xmlToNodeobj.getTraversalObj;\nexports.convertToJson = nodeToJson.convertToJson;\nexports.convertToJsonString = require('./node2json_str').convertToJsonString;\nexports.validate = validator.validate;\nexports.j2xParser = require('./json2xml');\nexports.parseToNimn = function(xmlData, schema, options) {\n return exports.convertTonimn(exports.getTraversalObj(xmlData, options), schema, options);\n};\n\n\nfunction print(xmlNode, indentation){\n if(xmlNode){\n console.log(indentation + \"{\")\n console.log(indentation + \" \\\"tagName\\\": \\\"\" + xmlNode.tagname + \"\\\", \");\n if(xmlNode.parent){\n console.log(indentation + \" \\\"parent\\\": \\\"\" + xmlNode.parent.tagname + \"\\\", \");\n }\n console.log(indentation + \" \\\"val\\\": \\\"\" + xmlNode.val + \"\\\", \");\n console.log(indentation + \" \\\"attrs\\\": \" + JSON.stringify(xmlNode.attrsMap,null,4) + \", \");\n\n if(xmlNode.child){\n console.log(indentation + \"\\\"child\\\": {\")\n const indentation2 = indentation + indentation;\n Object.keys(xmlNode.child).forEach( function(key) {\n const node = xmlNode.child[key];\n\n if(Array.isArray(node)){\n console.log(indentation + \"\\\"\"+key+\"\\\" :[\")\n node.forEach( function(item,index) {\n //console.log(indentation + \" \\\"\"+index+\"\\\" : [\")\n print(item, indentation2);\n })\n console.log(indentation + \"],\") \n }else{\n console.log(indentation + \" \\\"\"+key+\"\\\" : {\")\n print(node, indentation2);\n console.log(indentation + \"},\") \n }\n });\n console.log(indentation + \"},\")\n }\n console.log(indentation + \"},\")\n }\n}\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 extract_files_1 = require(\"extract-files\");\nvar form_data_1 = __importDefault(require(\"form-data\"));\n/**\n * Duck type if NodeJS stream\n * https://github.com/sindresorhus/is-stream/blob/3750505b0727f6df54324784fe369365ef78841e/index.js#L3\n */\nvar isExtractableFileEnhanced = function (value) {\n return extract_files_1.isExtractableFile(value) ||\n (value !== null && typeof value === 'object' && typeof value.pipe === 'function');\n};\n/**\n * Returns Multipart Form if body contains files\n * (https://github.com/jaydenseric/graphql-multipart-request-spec)\n * Otherwise returns JSON\n */\nfunction createRequestBody(query, variables) {\n var _a = extract_files_1.extractFiles({ query: query, variables: variables }, '', isExtractableFileEnhanced), clone = _a.clone, files = _a.files;\n if (files.size === 0) {\n return JSON.stringify(clone);\n }\n var Form = typeof FormData === 'undefined' ? form_data_1.default : FormData;\n var form = new Form();\n form.append('operations', JSON.stringify(clone));\n var map = {};\n var i = 0;\n files.forEach(function (paths) {\n map[++i] = paths;\n });\n form.append('map', JSON.stringify(map));\n i = 0;\n files.forEach(function (paths, file) {\n form.append(\"\" + ++i, file);\n });\n return form;\n}\nexports.default = createRequestBody;\n//# sourceMappingURL=createRequestBody.js.map","export { default as ReactNativeFile } from './ReactNativeFile.js';\nexport { default as extractFiles } from './extractFiles.js';\nexport { default as isExtractableFile } from './isExtractableFile.js';\n","/* eslint-env browser */\nmodule.exports = typeof self == 'object' ? self.FormData : window.FormData;\n"],"sourceRoot":""}