{"version":3,"file":"js/chunk-vendors-37a93c5f.8d28457e.js","mappings":"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","sources":["webpack://smapac/./node_modules/fast-xml-parser/src/json2xml.js","webpack://smapac/./node_modules/fast-xml-parser/src/nimndata.js","webpack://smapac/./node_modules/fast-xml-parser/src/node2json.js","webpack://smapac/./node_modules/fast-xml-parser/src/node2json_str.js","webpack://smapac/./node_modules/fast-xml-parser/src/parser.js","webpack://smapac/./node_modules/fast-xml-parser/src/util.js","webpack://smapac/./node_modules/fast-xml-parser/src/validator.js","webpack://smapac/./node_modules/fast-xml-parser/src/xmlNode.js","webpack://smapac/./node_modules/fast-xml-parser/src/xmlstr2xmlnode.js","webpack://smapac/./node_modules/function-bind/implementation.js","webpack://smapac/./node_modules/function-bind/index.js","webpack://smapac/./node_modules/get-intrinsic/index.js","webpack://smapac/./node_modules/gopd/index.js","webpack://smapac/./node_modules/has-property-descriptors/index.js","webpack://smapac/./node_modules/has-proto/index.js","webpack://smapac/./node_modules/has-symbols/index.js","webpack://smapac/./node_modules/has-symbols/shams.js","webpack://smapac/./node_modules/hasown/index.js","webpack://smapac/./node_modules/graphql/jsutils/isObjectLike.mjs","webpack://smapac/./node_modules/graphql/language/location.mjs","webpack://smapac/./node_modules/graphql/language/printLocation.mjs","webpack://smapac/./node_modules/graphql/error/GraphQLError.mjs","webpack://smapac/./node_modules/graphql/jsutils/inspect.mjs","webpack://smapac/./node_modules/graphql/jsutils/nodejsCustomInspectSymbol.mjs","webpack://smapac/./node_modules/graphql/jsutils/invariant.mjs","webpack://smapac/./node_modules/graphql/jsutils/defineInspect.mjs","webpack://smapac/./node_modules/graphql/language/ast.mjs","webpack://smapac/./node_modules/graphql/language/blockString.mjs","webpack://smapac/./node_modules/graphql/error/syntaxError.mjs","webpack://smapac/./node_modules/graphql/language/kinds.mjs","webpack://smapac/./node_modules/graphql/language/tokenKind.mjs","webpack://smapac/./node_modules/graphql/jsutils/devAssert.mjs","webpack://smapac/./node_modules/graphql/jsutils/instanceOf.mjs","webpack://smapac/./node_modules/graphql/language/source.mjs","webpack://smapac/./node_modules/graphql/language/directiveLocation.mjs","webpack://smapac/./node_modules/graphql/language/lexer.mjs","webpack://smapac/./node_modules/graphql/language/parser.mjs","webpack://smapac/./node_modules/graphql/language/visitor.mjs","webpack://smapac/./node_modules/graphql/language/printer.mjs","webpack://smapac/./node_modules/graphql/polyfills/symbols.mjs"],"sourcesContent":["'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 + '');\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 this.options.tagValueProcessor(val) +\n ' 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\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\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';\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","'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(/()/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';\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');\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\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\nvar hasProto = require('has-proto')();\n\nvar getProto = Object.getPrototypeOf || (\n\thasProto\n\t\t? function (x) { return x.__proto__; } // eslint-disable-line no-proto\n\t\t: null\n);\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar test = {\n\t__proto__: null,\n\tfoo: {}\n};\n\nvar $Object = Object;\n\n/** @type {import('.')} */\nmodule.exports = function hasProto() {\n\t// @ts-expect-error: TS errors on an inherited property for some reason\n\treturn { __proto__: test }.foo === test.foo\n\t\t&& !(test instanceof $Object);\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\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\n/**\n * Return true if `value` is object-like. A value is object-like if it's not\n * `null` and has a `typeof` result of \"object\".\n */\nexport default function isObjectLike(value) {\n return _typeof(value) == 'object' && value !== null;\n}\n","/**\n * Represents a location in a Source.\n */\n\n/**\n * Takes a Source and a UTF-8 character offset, and returns the corresponding\n * line and column as a SourceLocation.\n */\nexport function getLocation(source, position) {\n var lineRegexp = /\\r\\n|[\\n\\r]/g;\n var line = 1;\n var column = position + 1;\n var match;\n\n while ((match = lineRegexp.exec(source.body)) && match.index < position) {\n line += 1;\n column = position + 1 - (match.index + match[0].length);\n }\n\n return {\n line: line,\n column: column\n };\n}\n","import { getLocation } from \"./location.mjs\";\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\n\nexport function printLocation(location) {\n return printSourceLocation(location.source, getLocation(location.source, location.start));\n}\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\n\nexport function printSourceLocation(source, sourceLocation) {\n var firstLineColumnOffset = source.locationOffset.column - 1;\n var body = whitespace(firstLineColumnOffset) + source.body;\n var lineIndex = sourceLocation.line - 1;\n var lineOffset = source.locationOffset.line - 1;\n var lineNum = sourceLocation.line + lineOffset;\n var columnOffset = sourceLocation.line === 1 ? firstLineColumnOffset : 0;\n var columnNum = sourceLocation.column + columnOffset;\n var locationStr = \"\".concat(source.name, \":\").concat(lineNum, \":\").concat(columnNum, \"\\n\");\n var lines = body.split(/\\r\\n|[\\n\\r]/g);\n var locationLine = lines[lineIndex]; // Special case for minified documents\n\n if (locationLine.length > 120) {\n var subLineIndex = Math.floor(columnNum / 80);\n var subLineColumnNum = columnNum % 80;\n var subLines = [];\n\n for (var i = 0; i < locationLine.length; i += 80) {\n subLines.push(locationLine.slice(i, i + 80));\n }\n\n return locationStr + printPrefixedLines([[\"\".concat(lineNum), subLines[0]]].concat(subLines.slice(1, subLineIndex + 1).map(function (subLine) {\n return ['', subLine];\n }), [[' ', whitespace(subLineColumnNum - 1) + '^'], ['', subLines[subLineIndex + 1]]]));\n }\n\n return locationStr + printPrefixedLines([// Lines specified like this: [\"prefix\", \"string\"],\n [\"\".concat(lineNum - 1), lines[lineIndex - 1]], [\"\".concat(lineNum), locationLine], ['', whitespace(columnNum - 1) + '^'], [\"\".concat(lineNum + 1), lines[lineIndex + 1]]]);\n}\n\nfunction printPrefixedLines(lines) {\n var existingLines = lines.filter(function (_ref) {\n var _ = _ref[0],\n line = _ref[1];\n return line !== undefined;\n });\n var padLen = Math.max.apply(Math, existingLines.map(function (_ref2) {\n var prefix = _ref2[0];\n return prefix.length;\n }));\n return existingLines.map(function (_ref3) {\n var prefix = _ref3[0],\n line = _ref3[1];\n return leftPad(padLen, prefix) + (line ? ' | ' + line : ' |');\n }).join('\\n');\n}\n\nfunction whitespace(len) {\n return Array(len + 1).join(' ');\n}\n\nfunction leftPad(len, str) {\n return whitespace(len - str.length) + str;\n}\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\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport isObjectLike from \"../jsutils/isObjectLike.mjs\";\nimport { SYMBOL_TO_STRING_TAG } from \"../polyfills/symbols.mjs\";\nimport { getLocation } from \"../language/location.mjs\";\nimport { printLocation, printSourceLocation } from \"../language/printLocation.mjs\";\n/**\n * A GraphQLError describes an Error found during the parse, validate, or\n * execute phases of performing a GraphQL operation. In addition to a message\n * and stack trace, it also includes information about the locations in a\n * GraphQL document and/or execution result that correspond to the Error.\n */\n\nexport var GraphQLError = /*#__PURE__*/function (_Error) {\n _inherits(GraphQLError, _Error);\n\n var _super = _createSuper(GraphQLError);\n\n /**\n * An array of { line, column } locations within the source GraphQL document\n * which correspond to this error.\n *\n * Errors during validation often contain multiple locations, for example to\n * point out two things with the same name. Errors during execution include a\n * single location, the field which produced the error.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n */\n\n /**\n * An array describing the JSON-path into the execution response which\n * corresponds to this error. Only included for errors during execution.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n */\n\n /**\n * An array of GraphQL AST Nodes corresponding to this error.\n */\n\n /**\n * The source GraphQL document for the first location of this error.\n *\n * Note that if this Error represents more than one node, the source may not\n * represent nodes after the first node.\n */\n\n /**\n * An array of character offsets within the source GraphQL document\n * which correspond to this error.\n */\n\n /**\n * The original error thrown from a field resolver during execution.\n */\n\n /**\n * Extension fields to add to the formatted error.\n */\n function GraphQLError(message, nodes, source, positions, path, originalError, extensions) {\n var _nodeLocations, _nodeLocations2, _nodeLocations3;\n\n var _this;\n\n _classCallCheck(this, GraphQLError);\n\n _this = _super.call(this, message);\n _this.name = 'GraphQLError';\n _this.originalError = originalError !== null && originalError !== void 0 ? originalError : undefined; // Compute list of blame nodes.\n\n _this.nodes = undefinedIfEmpty(Array.isArray(nodes) ? nodes : nodes ? [nodes] : undefined);\n var nodeLocations = [];\n\n for (var _i2 = 0, _ref3 = (_this$nodes = _this.nodes) !== null && _this$nodes !== void 0 ? _this$nodes : []; _i2 < _ref3.length; _i2++) {\n var _this$nodes;\n\n var _ref4 = _ref3[_i2];\n var loc = _ref4.loc;\n\n if (loc != null) {\n nodeLocations.push(loc);\n }\n }\n\n nodeLocations = undefinedIfEmpty(nodeLocations); // Compute locations in the source for the given nodes/positions.\n\n _this.source = source !== null && source !== void 0 ? source : (_nodeLocations = nodeLocations) === null || _nodeLocations === void 0 ? void 0 : _nodeLocations[0].source;\n _this.positions = positions !== null && positions !== void 0 ? positions : (_nodeLocations2 = nodeLocations) === null || _nodeLocations2 === void 0 ? void 0 : _nodeLocations2.map(function (loc) {\n return loc.start;\n });\n _this.locations = positions && source ? positions.map(function (pos) {\n return getLocation(source, pos);\n }) : (_nodeLocations3 = nodeLocations) === null || _nodeLocations3 === void 0 ? void 0 : _nodeLocations3.map(function (loc) {\n return getLocation(loc.source, loc.start);\n });\n _this.path = path !== null && path !== void 0 ? path : undefined;\n var originalExtensions = originalError === null || originalError === void 0 ? void 0 : originalError.extensions;\n\n if (extensions == null && isObjectLike(originalExtensions)) {\n _this.extensions = _objectSpread({}, originalExtensions);\n } else {\n _this.extensions = extensions !== null && extensions !== void 0 ? extensions : {};\n } // By being enumerable, JSON.stringify will include bellow properties in the resulting output.\n // This ensures that the simplest possible GraphQL service adheres to the spec.\n\n\n Object.defineProperties(_assertThisInitialized(_this), {\n message: {\n enumerable: true\n },\n locations: {\n enumerable: _this.locations != null\n },\n path: {\n enumerable: _this.path != null\n },\n extensions: {\n enumerable: _this.extensions != null && Object.keys(_this.extensions).length > 0\n },\n name: {\n enumerable: false\n },\n nodes: {\n enumerable: false\n },\n source: {\n enumerable: false\n },\n positions: {\n enumerable: false\n },\n originalError: {\n enumerable: false\n }\n }); // Include (non-enumerable) stack trace.\n\n if (originalError !== null && originalError !== void 0 && originalError.stack) {\n Object.defineProperty(_assertThisInitialized(_this), 'stack', {\n value: originalError.stack,\n writable: true,\n configurable: true\n });\n return _possibleConstructorReturn(_this);\n } // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(_assertThisInitialized(_this), GraphQLError);\n } else {\n Object.defineProperty(_assertThisInitialized(_this), 'stack', {\n value: Error().stack,\n writable: true,\n configurable: true\n });\n }\n\n return _this;\n }\n\n _createClass(GraphQLError, [{\n key: \"toString\",\n value: function toString() {\n return printError(this);\n } // FIXME: workaround to not break chai comparisons, should be remove in v16\n // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n\n }, {\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'Object';\n }\n }]);\n\n return GraphQLError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nfunction undefinedIfEmpty(array) {\n return array === undefined || array.length === 0 ? undefined : array;\n}\n/**\n * Prints a GraphQLError to a string, representing useful location information\n * about the error's position in the source.\n */\n\n\nexport function printError(error) {\n var output = error.message;\n\n if (error.nodes) {\n for (var _i4 = 0, _error$nodes2 = error.nodes; _i4 < _error$nodes2.length; _i4++) {\n var node = _error$nodes2[_i4];\n\n if (node.loc) {\n output += '\\n\\n' + printLocation(node.loc);\n }\n }\n } else if (error.source && error.locations) {\n for (var _i6 = 0, _error$locations2 = error.locations; _i6 < _error$locations2.length; _i6++) {\n var location = _error$locations2[_i6];\n output += '\\n\\n' + printSourceLocation(error.source, location);\n }\n }\n\n return output;\n}\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\n/* eslint-disable flowtype/no-weak-types */\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 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","// 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","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 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","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. is always the first node and \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","/**\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(rawString);\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 var startLine = 0;\n\n while (startLine < lines.length && isBlank(lines[startLine])) {\n ++startLine;\n }\n\n var endLine = lines.length;\n\n while (endLine > startLine && isBlank(lines[endLine - 1])) {\n --endLine;\n } // Return a string of the lines joined with U+000A.\n\n\n return lines.slice(startLine, endLine).join('\\n');\n}\n\nfunction isBlank(str) {\n for (var i = 0; i < str.length; ++i) {\n if (str[i] !== ' ' && str[i] !== '\\t') {\n return false;\n }\n }\n\n return true;\n}\n/**\n * @internal\n */\n\n\nexport function getBlockStringIndentation(value) {\n var _commonIndent;\n\n var isFirstLine = true;\n var isEmptyLine = true;\n var indent = 0;\n var commonIndent = null;\n\n for (var i = 0; i < value.length; ++i) {\n switch (value.charCodeAt(i)) {\n case 13:\n // \\r\n if (value.charCodeAt(i + 1) === 10) {\n ++i; // skip \\r\\n as one symbol\n }\n\n // falls through\n\n case 10:\n // \\n\n isFirstLine = false;\n isEmptyLine = true;\n indent = 0;\n break;\n\n case 9: // \\t\n\n case 32:\n // \n ++indent;\n break;\n\n default:\n if (isEmptyLine && !isFirstLine && (commonIndent === null || indent < commonIndent)) {\n commonIndent = indent;\n }\n\n isEmptyLine = false;\n }\n }\n\n return (_commonIndent = commonIndent) !== null && _commonIndent !== void 0 ? _commonIndent : 0;\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\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","import { GraphQLError } from \"./GraphQLError.mjs\";\n/**\n * Produces a GraphQLError representing a syntax error, containing useful\n * descriptive information about the syntax error's position in the source.\n */\n\nexport function syntaxError(source, position, description) {\n return new GraphQLError(\"Syntax Error: \".concat(description), undefined, source, [position]);\n}\n","/**\n * The set of allowed kind values for AST nodes.\n */\nexport var Kind = Object.freeze({\n // Name\n NAME: 'Name',\n // Document\n DOCUMENT: 'Document',\n OPERATION_DEFINITION: 'OperationDefinition',\n VARIABLE_DEFINITION: 'VariableDefinition',\n SELECTION_SET: 'SelectionSet',\n FIELD: 'Field',\n ARGUMENT: 'Argument',\n // Fragments\n FRAGMENT_SPREAD: 'FragmentSpread',\n INLINE_FRAGMENT: 'InlineFragment',\n FRAGMENT_DEFINITION: 'FragmentDefinition',\n // Values\n VARIABLE: 'Variable',\n INT: 'IntValue',\n FLOAT: 'FloatValue',\n STRING: 'StringValue',\n BOOLEAN: 'BooleanValue',\n NULL: 'NullValue',\n ENUM: 'EnumValue',\n LIST: 'ListValue',\n OBJECT: 'ObjectValue',\n OBJECT_FIELD: 'ObjectField',\n // Directives\n DIRECTIVE: 'Directive',\n // Types\n NAMED_TYPE: 'NamedType',\n LIST_TYPE: 'ListType',\n NON_NULL_TYPE: 'NonNullType',\n // Type System Definitions\n SCHEMA_DEFINITION: 'SchemaDefinition',\n OPERATION_TYPE_DEFINITION: 'OperationTypeDefinition',\n // Type Definitions\n SCALAR_TYPE_DEFINITION: 'ScalarTypeDefinition',\n OBJECT_TYPE_DEFINITION: 'ObjectTypeDefinition',\n FIELD_DEFINITION: 'FieldDefinition',\n INPUT_VALUE_DEFINITION: 'InputValueDefinition',\n INTERFACE_TYPE_DEFINITION: 'InterfaceTypeDefinition',\n UNION_TYPE_DEFINITION: 'UnionTypeDefinition',\n ENUM_TYPE_DEFINITION: 'EnumTypeDefinition',\n ENUM_VALUE_DEFINITION: 'EnumValueDefinition',\n INPUT_OBJECT_TYPE_DEFINITION: 'InputObjectTypeDefinition',\n // Directive Definitions\n DIRECTIVE_DEFINITION: 'DirectiveDefinition',\n // Type System Extensions\n SCHEMA_EXTENSION: 'SchemaExtension',\n // Type Extensions\n SCALAR_TYPE_EXTENSION: 'ScalarTypeExtension',\n OBJECT_TYPE_EXTENSION: 'ObjectTypeExtension',\n INTERFACE_TYPE_EXTENSION: 'InterfaceTypeExtension',\n UNION_TYPE_EXTENSION: 'UnionTypeExtension',\n ENUM_TYPE_EXTENSION: 'EnumTypeExtension',\n INPUT_OBJECT_TYPE_EXTENSION: 'InputObjectTypeExtension'\n});\n/**\n * The enum type representing the possible kind values of AST nodes.\n */\n","/**\n * An exported enum describing the different kinds of tokens that the\n * lexer emits.\n */\nexport var TokenKind = Object.freeze({\n SOF: '',\n EOF: '',\n BANG: '!',\n DOLLAR: '$',\n AMP: '&',\n PAREN_L: '(',\n PAREN_R: ')',\n SPREAD: '...',\n COLON: ':',\n EQUALS: '=',\n AT: '@',\n BRACKET_L: '[',\n BRACKET_R: ']',\n BRACE_L: '{',\n PIPE: '|',\n BRACE_R: '}',\n NAME: 'Name',\n INT: 'Int',\n FLOAT: 'Float',\n STRING: 'String',\n BLOCK_STRING: 'BlockString',\n COMMENT: 'Comment'\n});\n/**\n * The enum type representing the token kinds values.\n */\n","export default function devAssert(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);\n }\n}\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 inspect from \"./inspect.mjs\";\n/**\n * A replacement for instanceof which includes an error warning when multi-realm\n * constructors are detected.\n */\n\n// See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production\n// See: https://webpack.js.org/guides/production/\nexport default process.env.NODE_ENV === 'production' ? // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n// eslint-disable-next-line no-shadow\nfunction instanceOf(value, constructor) {\n return value instanceof constructor;\n} : // eslint-disable-next-line no-shadow\nfunction instanceOf(value, constructor) {\n if (value instanceof constructor) {\n return true;\n }\n\n if (_typeof(value) === 'object' && value !== null) {\n var _value$constructor;\n\n var className = constructor.prototype[Symbol.toStringTag];\n var valueClassName = // We still need to support constructor's name to detect conflicts with older versions of this library.\n Symbol.toStringTag in value ? value[Symbol.toStringTag] : (_value$constructor = value.constructor) === null || _value$constructor === void 0 ? void 0 : _value$constructor.name;\n\n if (className === valueClassName) {\n var stringifiedValue = inspect(value);\n throw new Error(\"Cannot use \".concat(className, \" \\\"\").concat(stringifiedValue, \"\\\" from another module or realm.\\n\\nEnsure that there is only one instance of \\\"graphql\\\" in the node_modules\\ndirectory. If different versions of \\\"graphql\\\" are the dependencies of other\\nrelied on modules, use \\\"resolutions\\\" to ensure only one version is installed.\\n\\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\\n\\nDuplicate \\\"graphql\\\" modules cannot be used at the same time since different\\nversions may have different capabilities and behavior. The data from one\\nversion used in the function from another could produce confusing and\\nspurious results.\"));\n }\n }\n\n return false;\n};\n","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { SYMBOL_TO_STRING_TAG } from \"../polyfills/symbols.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport devAssert from \"../jsutils/devAssert.mjs\";\nimport instanceOf from \"../jsutils/instanceOf.mjs\";\n\n/**\n * A representation of source input to GraphQL. The `name` and `locationOffset` parameters are\n * optional, but they are useful for clients who store GraphQL documents in source files.\n * For example, if the GraphQL input starts at line 40 in a file named `Foo.graphql`, it might\n * be useful for `name` to be `\"Foo.graphql\"` and location to be `{ line: 40, column: 1 }`.\n * The `line` and `column` properties in `locationOffset` are 1-indexed.\n */\nexport var Source = /*#__PURE__*/function () {\n function Source(body) {\n var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'GraphQL request';\n var locationOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n line: 1,\n column: 1\n };\n typeof body === 'string' || devAssert(0, \"Body must be a string. Received: \".concat(inspect(body), \".\"));\n this.body = body;\n this.name = name;\n this.locationOffset = locationOffset;\n this.locationOffset.line > 0 || devAssert(0, 'line in locationOffset is 1-indexed and must be positive.');\n this.locationOffset.column > 0 || devAssert(0, 'column in locationOffset is 1-indexed and must be positive.');\n } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n\n\n _createClass(Source, [{\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'Source';\n }\n }]);\n\n return Source;\n}();\n/**\n * Test if the given value is a Source object.\n *\n * @internal\n */\n\n// eslint-disable-next-line no-redeclare\nexport function isSource(source) {\n return instanceOf(source, Source);\n}\n","/**\n * The set of allowed directive location values.\n */\nexport var DirectiveLocation = Object.freeze({\n // Request Definitions\n QUERY: 'QUERY',\n MUTATION: 'MUTATION',\n SUBSCRIPTION: 'SUBSCRIPTION',\n FIELD: 'FIELD',\n FRAGMENT_DEFINITION: 'FRAGMENT_DEFINITION',\n FRAGMENT_SPREAD: 'FRAGMENT_SPREAD',\n INLINE_FRAGMENT: 'INLINE_FRAGMENT',\n VARIABLE_DEFINITION: 'VARIABLE_DEFINITION',\n // Type System Definitions\n SCHEMA: 'SCHEMA',\n SCALAR: 'SCALAR',\n OBJECT: 'OBJECT',\n FIELD_DEFINITION: 'FIELD_DEFINITION',\n ARGUMENT_DEFINITION: 'ARGUMENT_DEFINITION',\n INTERFACE: 'INTERFACE',\n UNION: 'UNION',\n ENUM: 'ENUM',\n ENUM_VALUE: 'ENUM_VALUE',\n INPUT_OBJECT: 'INPUT_OBJECT',\n INPUT_FIELD_DEFINITION: 'INPUT_FIELD_DEFINITION'\n});\n/**\n * The enum type representing the directive location values.\n */\n","import { syntaxError } from \"../error/syntaxError.mjs\";\nimport { Token } from \"./ast.mjs\";\nimport { TokenKind } from \"./tokenKind.mjs\";\nimport { dedentBlockStringValue } from \"./blockString.mjs\";\n/**\n * Given a Source object, creates a Lexer for that source.\n * A Lexer is a stateful stream generator in that every time\n * it is advanced, it returns the next token in the Source. Assuming the\n * source lexes, the final Token emitted by the lexer will be of kind\n * EOF, after which the lexer will repeatedly return the same EOF token\n * whenever called.\n */\n\nexport var Lexer = /*#__PURE__*/function () {\n /**\n * The previously focused non-ignored token.\n */\n\n /**\n * The currently focused non-ignored token.\n */\n\n /**\n * The (1-indexed) line containing the current token.\n */\n\n /**\n * The character offset at which the current line begins.\n */\n function Lexer(source) {\n var startOfFileToken = new Token(TokenKind.SOF, 0, 0, 0, 0, null);\n this.source = source;\n this.lastToken = startOfFileToken;\n this.token = startOfFileToken;\n this.line = 1;\n this.lineStart = 0;\n }\n /**\n * Advances the token stream to the next non-ignored token.\n */\n\n\n var _proto = Lexer.prototype;\n\n _proto.advance = function advance() {\n this.lastToken = this.token;\n var token = this.token = this.lookahead();\n return token;\n }\n /**\n * Looks ahead and returns the next non-ignored token, but does not change\n * the state of Lexer.\n */\n ;\n\n _proto.lookahead = function lookahead() {\n var token = this.token;\n\n if (token.kind !== TokenKind.EOF) {\n do {\n var _token$next;\n\n // Note: next is only mutable during parsing, so we cast to allow this.\n token = (_token$next = token.next) !== null && _token$next !== void 0 ? _token$next : token.next = readToken(this, token);\n } while (token.kind === TokenKind.COMMENT);\n }\n\n return token;\n };\n\n return Lexer;\n}();\n/**\n * @internal\n */\n\nexport function isPunctuatorTokenKind(kind) {\n return kind === TokenKind.BANG || kind === TokenKind.DOLLAR || kind === TokenKind.AMP || kind === TokenKind.PAREN_L || kind === TokenKind.PAREN_R || kind === TokenKind.SPREAD || kind === TokenKind.COLON || kind === TokenKind.EQUALS || kind === TokenKind.AT || kind === TokenKind.BRACKET_L || kind === TokenKind.BRACKET_R || kind === TokenKind.BRACE_L || kind === TokenKind.PIPE || kind === TokenKind.BRACE_R;\n}\n\nfunction printCharCode(code) {\n return (// NaN/undefined represents access beyond the end of the file.\n isNaN(code) ? TokenKind.EOF : // Trust JSON for ASCII.\n code < 0x007f ? JSON.stringify(String.fromCharCode(code)) : // Otherwise print the escaped form.\n \"\\\"\\\\u\".concat(('00' + code.toString(16).toUpperCase()).slice(-4), \"\\\"\")\n );\n}\n/**\n * Gets the next token from the source starting at the given position.\n *\n * This skips over whitespace until it finds the next lexable token, then lexes\n * punctuators immediately or calls the appropriate helper function for more\n * complicated tokens.\n */\n\n\nfunction readToken(lexer, prev) {\n var source = lexer.source;\n var body = source.body;\n var bodyLength = body.length;\n var pos = prev.end;\n\n while (pos < bodyLength) {\n var code = body.charCodeAt(pos);\n var _line = lexer.line;\n\n var _col = 1 + pos - lexer.lineStart; // SourceCharacter\n\n\n switch (code) {\n case 0xfeff: // \n\n case 9: // \\t\n\n case 32: // \n\n case 44:\n // ,\n ++pos;\n continue;\n\n case 10:\n // \\n\n ++pos;\n ++lexer.line;\n lexer.lineStart = pos;\n continue;\n\n case 13:\n // \\r\n if (body.charCodeAt(pos + 1) === 10) {\n pos += 2;\n } else {\n ++pos;\n }\n\n ++lexer.line;\n lexer.lineStart = pos;\n continue;\n\n case 33:\n // !\n return new Token(TokenKind.BANG, pos, pos + 1, _line, _col, prev);\n\n case 35:\n // #\n return readComment(source, pos, _line, _col, prev);\n\n case 36:\n // $\n return new Token(TokenKind.DOLLAR, pos, pos + 1, _line, _col, prev);\n\n case 38:\n // &\n return new Token(TokenKind.AMP, pos, pos + 1, _line, _col, prev);\n\n case 40:\n // (\n return new Token(TokenKind.PAREN_L, pos, pos + 1, _line, _col, prev);\n\n case 41:\n // )\n return new Token(TokenKind.PAREN_R, pos, pos + 1, _line, _col, prev);\n\n case 46:\n // .\n if (body.charCodeAt(pos + 1) === 46 && body.charCodeAt(pos + 2) === 46) {\n return new Token(TokenKind.SPREAD, pos, pos + 3, _line, _col, prev);\n }\n\n break;\n\n case 58:\n // :\n return new Token(TokenKind.COLON, pos, pos + 1, _line, _col, prev);\n\n case 61:\n // =\n return new Token(TokenKind.EQUALS, pos, pos + 1, _line, _col, prev);\n\n case 64:\n // @\n return new Token(TokenKind.AT, pos, pos + 1, _line, _col, prev);\n\n case 91:\n // [\n return new Token(TokenKind.BRACKET_L, pos, pos + 1, _line, _col, prev);\n\n case 93:\n // ]\n return new Token(TokenKind.BRACKET_R, pos, pos + 1, _line, _col, prev);\n\n case 123:\n // {\n return new Token(TokenKind.BRACE_L, pos, pos + 1, _line, _col, prev);\n\n case 124:\n // |\n return new Token(TokenKind.PIPE, pos, pos + 1, _line, _col, prev);\n\n case 125:\n // }\n return new Token(TokenKind.BRACE_R, pos, pos + 1, _line, _col, prev);\n\n case 34:\n // \"\n if (body.charCodeAt(pos + 1) === 34 && body.charCodeAt(pos + 2) === 34) {\n return readBlockString(source, pos, _line, _col, prev, lexer);\n }\n\n return readString(source, pos, _line, _col, prev);\n\n case 45: // -\n\n case 48: // 0\n\n case 49: // 1\n\n case 50: // 2\n\n case 51: // 3\n\n case 52: // 4\n\n case 53: // 5\n\n case 54: // 6\n\n case 55: // 7\n\n case 56: // 8\n\n case 57:\n // 9\n return readNumber(source, pos, code, _line, _col, prev);\n\n case 65: // A\n\n case 66: // B\n\n case 67: // C\n\n case 68: // D\n\n case 69: // E\n\n case 70: // F\n\n case 71: // G\n\n case 72: // H\n\n case 73: // I\n\n case 74: // J\n\n case 75: // K\n\n case 76: // L\n\n case 77: // M\n\n case 78: // N\n\n case 79: // O\n\n case 80: // P\n\n case 81: // Q\n\n case 82: // R\n\n case 83: // S\n\n case 84: // T\n\n case 85: // U\n\n case 86: // V\n\n case 87: // W\n\n case 88: // X\n\n case 89: // Y\n\n case 90: // Z\n\n case 95: // _\n\n case 97: // a\n\n case 98: // b\n\n case 99: // c\n\n case 100: // d\n\n case 101: // e\n\n case 102: // f\n\n case 103: // g\n\n case 104: // h\n\n case 105: // i\n\n case 106: // j\n\n case 107: // k\n\n case 108: // l\n\n case 109: // m\n\n case 110: // n\n\n case 111: // o\n\n case 112: // p\n\n case 113: // q\n\n case 114: // r\n\n case 115: // s\n\n case 116: // t\n\n case 117: // u\n\n case 118: // v\n\n case 119: // w\n\n case 120: // x\n\n case 121: // y\n\n case 122:\n // z\n return readName(source, pos, _line, _col, prev);\n }\n\n throw syntaxError(source, pos, unexpectedCharacterMessage(code));\n }\n\n var line = lexer.line;\n var col = 1 + pos - lexer.lineStart;\n return new Token(TokenKind.EOF, bodyLength, bodyLength, line, col, prev);\n}\n/**\n * Report a message that an unexpected character was encountered.\n */\n\n\nfunction unexpectedCharacterMessage(code) {\n if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) {\n return \"Cannot contain the invalid character \".concat(printCharCode(code), \".\");\n }\n\n if (code === 39) {\n // '\n return 'Unexpected single quote character (\\'), did you mean to use a double quote (\")?';\n }\n\n return \"Cannot parse the unexpected character \".concat(printCharCode(code), \".\");\n}\n/**\n * Reads a comment token from the source file.\n *\n * #[\\u0009\\u0020-\\uFFFF]*\n */\n\n\nfunction readComment(source, start, line, col, prev) {\n var body = source.body;\n var code;\n var position = start;\n\n do {\n code = body.charCodeAt(++position);\n } while (!isNaN(code) && ( // SourceCharacter but not LineTerminator\n code > 0x001f || code === 0x0009));\n\n return new Token(TokenKind.COMMENT, start, position, line, col, prev, body.slice(start + 1, position));\n}\n/**\n * Reads a number token from the source file, either a float\n * or an int depending on whether a decimal point appears.\n *\n * Int: -?(0|[1-9][0-9]*)\n * Float: -?(0|[1-9][0-9]*)(\\.[0-9]+)?((E|e)(+|-)?[0-9]+)?\n */\n\n\nfunction readNumber(source, start, firstCode, line, col, prev) {\n var body = source.body;\n var code = firstCode;\n var position = start;\n var isFloat = false;\n\n if (code === 45) {\n // -\n code = body.charCodeAt(++position);\n }\n\n if (code === 48) {\n // 0\n code = body.charCodeAt(++position);\n\n if (code >= 48 && code <= 57) {\n throw syntaxError(source, position, \"Invalid number, unexpected digit after 0: \".concat(printCharCode(code), \".\"));\n }\n } else {\n position = readDigits(source, position, code);\n code = body.charCodeAt(position);\n }\n\n if (code === 46) {\n // .\n isFloat = true;\n code = body.charCodeAt(++position);\n position = readDigits(source, position, code);\n code = body.charCodeAt(position);\n }\n\n if (code === 69 || code === 101) {\n // E e\n isFloat = true;\n code = body.charCodeAt(++position);\n\n if (code === 43 || code === 45) {\n // + -\n code = body.charCodeAt(++position);\n }\n\n position = readDigits(source, position, code);\n code = body.charCodeAt(position);\n } // Numbers cannot be followed by . or NameStart\n\n\n if (code === 46 || isNameStart(code)) {\n throw syntaxError(source, position, \"Invalid number, expected digit but got: \".concat(printCharCode(code), \".\"));\n }\n\n return new Token(isFloat ? TokenKind.FLOAT : TokenKind.INT, start, position, line, col, prev, body.slice(start, position));\n}\n/**\n * Returns the new position in the source after reading digits.\n */\n\n\nfunction readDigits(source, start, firstCode) {\n var body = source.body;\n var position = start;\n var code = firstCode;\n\n if (code >= 48 && code <= 57) {\n // 0 - 9\n do {\n code = body.charCodeAt(++position);\n } while (code >= 48 && code <= 57); // 0 - 9\n\n\n return position;\n }\n\n throw syntaxError(source, position, \"Invalid number, expected digit but got: \".concat(printCharCode(code), \".\"));\n}\n/**\n * Reads a string token from the source file.\n *\n * \"([^\"\\\\\\u000A\\u000D]|(\\\\(u[0-9a-fA-F]{4}|[\"\\\\/bfnrt])))*\"\n */\n\n\nfunction readString(source, start, line, col, prev) {\n var body = source.body;\n var position = start + 1;\n var chunkStart = position;\n var code = 0;\n var value = '';\n\n while (position < body.length && !isNaN(code = body.charCodeAt(position)) && // not LineTerminator\n code !== 0x000a && code !== 0x000d) {\n // Closing Quote (\")\n if (code === 34) {\n value += body.slice(chunkStart, position);\n return new Token(TokenKind.STRING, start, position + 1, line, col, prev, value);\n } // SourceCharacter\n\n\n if (code < 0x0020 && code !== 0x0009) {\n throw syntaxError(source, position, \"Invalid character within String: \".concat(printCharCode(code), \".\"));\n }\n\n ++position;\n\n if (code === 92) {\n // \\\n value += body.slice(chunkStart, position - 1);\n code = body.charCodeAt(position);\n\n switch (code) {\n case 34:\n value += '\"';\n break;\n\n case 47:\n value += '/';\n break;\n\n case 92:\n value += '\\\\';\n break;\n\n case 98:\n value += '\\b';\n break;\n\n case 102:\n value += '\\f';\n break;\n\n case 110:\n value += '\\n';\n break;\n\n case 114:\n value += '\\r';\n break;\n\n case 116:\n value += '\\t';\n break;\n\n case 117:\n {\n // uXXXX\n var charCode = uniCharCode(body.charCodeAt(position + 1), body.charCodeAt(position + 2), body.charCodeAt(position + 3), body.charCodeAt(position + 4));\n\n if (charCode < 0) {\n var invalidSequence = body.slice(position + 1, position + 5);\n throw syntaxError(source, position, \"Invalid character escape sequence: \\\\u\".concat(invalidSequence, \".\"));\n }\n\n value += String.fromCharCode(charCode);\n position += 4;\n break;\n }\n\n default:\n throw syntaxError(source, position, \"Invalid character escape sequence: \\\\\".concat(String.fromCharCode(code), \".\"));\n }\n\n ++position;\n chunkStart = position;\n }\n }\n\n throw syntaxError(source, position, 'Unterminated string.');\n}\n/**\n * Reads a block string token from the source file.\n *\n * \"\"\"(\"?\"?(\\\\\"\"\"|\\\\(?!=\"\"\")|[^\"\\\\]))*\"\"\"\n */\n\n\nfunction readBlockString(source, start, line, col, prev, lexer) {\n var body = source.body;\n var position = start + 3;\n var chunkStart = position;\n var code = 0;\n var rawValue = '';\n\n while (position < body.length && !isNaN(code = body.charCodeAt(position))) {\n // Closing Triple-Quote (\"\"\")\n if (code === 34 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34) {\n rawValue += body.slice(chunkStart, position);\n return new Token(TokenKind.BLOCK_STRING, start, position + 3, line, col, prev, dedentBlockStringValue(rawValue));\n } // SourceCharacter\n\n\n if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) {\n throw syntaxError(source, position, \"Invalid character within String: \".concat(printCharCode(code), \".\"));\n }\n\n if (code === 10) {\n // new line\n ++position;\n ++lexer.line;\n lexer.lineStart = position;\n } else if (code === 13) {\n // carriage return\n if (body.charCodeAt(position + 1) === 10) {\n position += 2;\n } else {\n ++position;\n }\n\n ++lexer.line;\n lexer.lineStart = position;\n } else if ( // Escape Triple-Quote (\\\"\"\")\n code === 92 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34 && body.charCodeAt(position + 3) === 34) {\n rawValue += body.slice(chunkStart, position) + '\"\"\"';\n position += 4;\n chunkStart = position;\n } else {\n ++position;\n }\n }\n\n throw syntaxError(source, position, 'Unterminated string.');\n}\n/**\n * Converts four hexadecimal chars to the integer that the\n * string represents. For example, uniCharCode('0','0','0','f')\n * will return 15, and uniCharCode('0','0','f','f') returns 255.\n *\n * Returns a negative number on error, if a char was invalid.\n *\n * This is implemented by noting that char2hex() returns -1 on error,\n * which means the result of ORing the char2hex() will also be negative.\n */\n\n\nfunction uniCharCode(a, b, c, d) {\n return char2hex(a) << 12 | char2hex(b) << 8 | char2hex(c) << 4 | char2hex(d);\n}\n/**\n * Converts a hex character to its integer value.\n * '0' becomes 0, '9' becomes 9\n * 'A' becomes 10, 'F' becomes 15\n * 'a' becomes 10, 'f' becomes 15\n *\n * Returns -1 on error.\n */\n\n\nfunction char2hex(a) {\n return a >= 48 && a <= 57 ? a - 48 // 0-9\n : a >= 65 && a <= 70 ? a - 55 // A-F\n : a >= 97 && a <= 102 ? a - 87 // a-f\n : -1;\n}\n/**\n * Reads an alphanumeric + underscore name from the source.\n *\n * [_A-Za-z][_0-9A-Za-z]*\n */\n\n\nfunction readName(source, start, line, col, prev) {\n var body = source.body;\n var bodyLength = body.length;\n var position = start + 1;\n var code = 0;\n\n while (position !== bodyLength && !isNaN(code = body.charCodeAt(position)) && (code === 95 || // _\n code >= 48 && code <= 57 || // 0-9\n code >= 65 && code <= 90 || // A-Z\n code >= 97 && code <= 122) // a-z\n ) {\n ++position;\n }\n\n return new Token(TokenKind.NAME, start, position, line, col, prev, body.slice(start, position));\n} // _ A-Z a-z\n\n\nfunction isNameStart(code) {\n return code === 95 || code >= 65 && code <= 90 || code >= 97 && code <= 122;\n}\n","import { syntaxError } from \"../error/syntaxError.mjs\";\nimport { Kind } from \"./kinds.mjs\";\nimport { Location } from \"./ast.mjs\";\nimport { TokenKind } from \"./tokenKind.mjs\";\nimport { Source, isSource } from \"./source.mjs\";\nimport { DirectiveLocation } from \"./directiveLocation.mjs\";\nimport { Lexer, isPunctuatorTokenKind } from \"./lexer.mjs\";\n/**\n * Configuration options to control parser behavior\n */\n\n/**\n * Given a GraphQL source, parses it into a Document.\n * Throws GraphQLError if a syntax error is encountered.\n */\nexport function parse(source, options) {\n var parser = new Parser(source, options);\n return parser.parseDocument();\n}\n/**\n * Given a string containing a GraphQL value (ex. `[42]`), parse the AST for\n * that value.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Values directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: valueFromAST().\n */\n\nexport function parseValue(source, options) {\n var parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n var value = parser.parseValueLiteral(false);\n parser.expectToken(TokenKind.EOF);\n return value;\n}\n/**\n * Given a string containing a GraphQL Type (ex. `[Int!]`), parse the AST for\n * that type.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Types directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: typeFromAST().\n */\n\nexport function parseType(source, options) {\n var parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n var type = parser.parseTypeReference();\n parser.expectToken(TokenKind.EOF);\n return type;\n}\n/**\n * This class is exported only to assist people in implementing their own parsers\n * without duplicating too much code and should be used only as last resort for cases\n * such as experimental syntax or if certain features could not be contributed upstream.\n *\n * It is still part of the internal API and is versioned, so any changes to it are never\n * considered breaking changes. If you still need to support multiple versions of the\n * library, please use the `versionInfo` variable for version detection.\n *\n * @internal\n */\n\nexport var Parser = /*#__PURE__*/function () {\n function Parser(source, options) {\n var sourceObj = isSource(source) ? source : new Source(source);\n this._lexer = new Lexer(sourceObj);\n this._options = options;\n }\n /**\n * Converts a name lex token into a name parse node.\n */\n\n\n var _proto = Parser.prototype;\n\n _proto.parseName = function parseName() {\n var token = this.expectToken(TokenKind.NAME);\n return {\n kind: Kind.NAME,\n value: token.value,\n loc: this.loc(token)\n };\n } // Implements the parsing rules in the Document section.\n\n /**\n * Document : Definition+\n */\n ;\n\n _proto.parseDocument = function parseDocument() {\n var start = this._lexer.token;\n return {\n kind: Kind.DOCUMENT,\n definitions: this.many(TokenKind.SOF, this.parseDefinition, TokenKind.EOF),\n loc: this.loc(start)\n };\n }\n /**\n * Definition :\n * - ExecutableDefinition\n * - TypeSystemDefinition\n * - TypeSystemExtension\n *\n * ExecutableDefinition :\n * - OperationDefinition\n * - FragmentDefinition\n */\n ;\n\n _proto.parseDefinition = function parseDefinition() {\n if (this.peek(TokenKind.NAME)) {\n switch (this._lexer.token.value) {\n case 'query':\n case 'mutation':\n case 'subscription':\n return this.parseOperationDefinition();\n\n case 'fragment':\n return this.parseFragmentDefinition();\n\n case 'schema':\n case 'scalar':\n case 'type':\n case 'interface':\n case 'union':\n case 'enum':\n case 'input':\n case 'directive':\n return this.parseTypeSystemDefinition();\n\n case 'extend':\n return this.parseTypeSystemExtension();\n }\n } else if (this.peek(TokenKind.BRACE_L)) {\n return this.parseOperationDefinition();\n } else if (this.peekDescription()) {\n return this.parseTypeSystemDefinition();\n }\n\n throw this.unexpected();\n } // Implements the parsing rules in the Operations section.\n\n /**\n * OperationDefinition :\n * - SelectionSet\n * - OperationType Name? VariableDefinitions? Directives? SelectionSet\n */\n ;\n\n _proto.parseOperationDefinition = function parseOperationDefinition() {\n var start = this._lexer.token;\n\n if (this.peek(TokenKind.BRACE_L)) {\n return {\n kind: Kind.OPERATION_DEFINITION,\n operation: 'query',\n name: undefined,\n variableDefinitions: [],\n directives: [],\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n\n var operation = this.parseOperationType();\n var name;\n\n if (this.peek(TokenKind.NAME)) {\n name = this.parseName();\n }\n\n return {\n kind: Kind.OPERATION_DEFINITION,\n operation: operation,\n name: name,\n variableDefinitions: this.parseVariableDefinitions(),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n /**\n * OperationType : one of query mutation subscription\n */\n ;\n\n _proto.parseOperationType = function parseOperationType() {\n var operationToken = this.expectToken(TokenKind.NAME);\n\n switch (operationToken.value) {\n case 'query':\n return 'query';\n\n case 'mutation':\n return 'mutation';\n\n case 'subscription':\n return 'subscription';\n }\n\n throw this.unexpected(operationToken);\n }\n /**\n * VariableDefinitions : ( VariableDefinition+ )\n */\n ;\n\n _proto.parseVariableDefinitions = function parseVariableDefinitions() {\n return this.optionalMany(TokenKind.PAREN_L, this.parseVariableDefinition, TokenKind.PAREN_R);\n }\n /**\n * VariableDefinition : Variable : Type DefaultValue? Directives[Const]?\n */\n ;\n\n _proto.parseVariableDefinition = function parseVariableDefinition() {\n var start = this._lexer.token;\n return {\n kind: Kind.VARIABLE_DEFINITION,\n variable: this.parseVariable(),\n type: (this.expectToken(TokenKind.COLON), this.parseTypeReference()),\n defaultValue: this.expectOptionalToken(TokenKind.EQUALS) ? this.parseValueLiteral(true) : undefined,\n directives: this.parseDirectives(true),\n loc: this.loc(start)\n };\n }\n /**\n * Variable : $ Name\n */\n ;\n\n _proto.parseVariable = function parseVariable() {\n var start = this._lexer.token;\n this.expectToken(TokenKind.DOLLAR);\n return {\n kind: Kind.VARIABLE,\n name: this.parseName(),\n loc: this.loc(start)\n };\n }\n /**\n * SelectionSet : { Selection+ }\n */\n ;\n\n _proto.parseSelectionSet = function parseSelectionSet() {\n var start = this._lexer.token;\n return {\n kind: Kind.SELECTION_SET,\n selections: this.many(TokenKind.BRACE_L, this.parseSelection, TokenKind.BRACE_R),\n loc: this.loc(start)\n };\n }\n /**\n * Selection :\n * - Field\n * - FragmentSpread\n * - InlineFragment\n */\n ;\n\n _proto.parseSelection = function parseSelection() {\n return this.peek(TokenKind.SPREAD) ? this.parseFragment() : this.parseField();\n }\n /**\n * Field : Alias? Name Arguments? Directives? SelectionSet?\n *\n * Alias : Name :\n */\n ;\n\n _proto.parseField = function parseField() {\n var start = this._lexer.token;\n var nameOrAlias = this.parseName();\n var alias;\n var name;\n\n if (this.expectOptionalToken(TokenKind.COLON)) {\n alias = nameOrAlias;\n name = this.parseName();\n } else {\n name = nameOrAlias;\n }\n\n return {\n kind: Kind.FIELD,\n alias: alias,\n name: name,\n arguments: this.parseArguments(false),\n directives: this.parseDirectives(false),\n selectionSet: this.peek(TokenKind.BRACE_L) ? this.parseSelectionSet() : undefined,\n loc: this.loc(start)\n };\n }\n /**\n * Arguments[Const] : ( Argument[?Const]+ )\n */\n ;\n\n _proto.parseArguments = function parseArguments(isConst) {\n var item = isConst ? this.parseConstArgument : this.parseArgument;\n return this.optionalMany(TokenKind.PAREN_L, item, TokenKind.PAREN_R);\n }\n /**\n * Argument[Const] : Name : Value[?Const]\n */\n ;\n\n _proto.parseArgument = function parseArgument() {\n var start = this._lexer.token;\n var name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return {\n kind: Kind.ARGUMENT,\n name: name,\n value: this.parseValueLiteral(false),\n loc: this.loc(start)\n };\n };\n\n _proto.parseConstArgument = function parseConstArgument() {\n var start = this._lexer.token;\n return {\n kind: Kind.ARGUMENT,\n name: this.parseName(),\n value: (this.expectToken(TokenKind.COLON), this.parseValueLiteral(true)),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Fragments section.\n\n /**\n * Corresponds to both FragmentSpread and InlineFragment in the spec.\n *\n * FragmentSpread : ... FragmentName Directives?\n *\n * InlineFragment : ... TypeCondition? Directives? SelectionSet\n */\n ;\n\n _proto.parseFragment = function parseFragment() {\n var start = this._lexer.token;\n this.expectToken(TokenKind.SPREAD);\n var hasTypeCondition = this.expectOptionalKeyword('on');\n\n if (!hasTypeCondition && this.peek(TokenKind.NAME)) {\n return {\n kind: Kind.FRAGMENT_SPREAD,\n name: this.parseFragmentName(),\n directives: this.parseDirectives(false),\n loc: this.loc(start)\n };\n }\n\n return {\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: hasTypeCondition ? this.parseNamedType() : undefined,\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n /**\n * FragmentDefinition :\n * - fragment FragmentName on TypeCondition Directives? SelectionSet\n *\n * TypeCondition : NamedType\n */\n ;\n\n _proto.parseFragmentDefinition = function parseFragmentDefinition() {\n var _this$_options;\n\n var start = this._lexer.token;\n this.expectKeyword('fragment'); // Experimental support for defining variables within fragments changes\n // the grammar of FragmentDefinition:\n // - fragment FragmentName VariableDefinitions? on TypeCondition Directives? SelectionSet\n\n if (((_this$_options = this._options) === null || _this$_options === void 0 ? void 0 : _this$_options.experimentalFragmentVariables) === true) {\n return {\n kind: Kind.FRAGMENT_DEFINITION,\n name: this.parseFragmentName(),\n variableDefinitions: this.parseVariableDefinitions(),\n typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n\n return {\n kind: Kind.FRAGMENT_DEFINITION,\n name: this.parseFragmentName(),\n typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n /**\n * FragmentName : Name but not `on`\n */\n ;\n\n _proto.parseFragmentName = function parseFragmentName() {\n if (this._lexer.token.value === 'on') {\n throw this.unexpected();\n }\n\n return this.parseName();\n } // Implements the parsing rules in the Values section.\n\n /**\n * Value[Const] :\n * - [~Const] Variable\n * - IntValue\n * - FloatValue\n * - StringValue\n * - BooleanValue\n * - NullValue\n * - EnumValue\n * - ListValue[?Const]\n * - ObjectValue[?Const]\n *\n * BooleanValue : one of `true` `false`\n *\n * NullValue : `null`\n *\n * EnumValue : Name but not `true`, `false` or `null`\n */\n ;\n\n _proto.parseValueLiteral = function parseValueLiteral(isConst) {\n var token = this._lexer.token;\n\n switch (token.kind) {\n case TokenKind.BRACKET_L:\n return this.parseList(isConst);\n\n case TokenKind.BRACE_L:\n return this.parseObject(isConst);\n\n case TokenKind.INT:\n this._lexer.advance();\n\n return {\n kind: Kind.INT,\n value: token.value,\n loc: this.loc(token)\n };\n\n case TokenKind.FLOAT:\n this._lexer.advance();\n\n return {\n kind: Kind.FLOAT,\n value: token.value,\n loc: this.loc(token)\n };\n\n case TokenKind.STRING:\n case TokenKind.BLOCK_STRING:\n return this.parseStringLiteral();\n\n case TokenKind.NAME:\n this._lexer.advance();\n\n switch (token.value) {\n case 'true':\n return {\n kind: Kind.BOOLEAN,\n value: true,\n loc: this.loc(token)\n };\n\n case 'false':\n return {\n kind: Kind.BOOLEAN,\n value: false,\n loc: this.loc(token)\n };\n\n case 'null':\n return {\n kind: Kind.NULL,\n loc: this.loc(token)\n };\n\n default:\n return {\n kind: Kind.ENUM,\n value: token.value,\n loc: this.loc(token)\n };\n }\n\n case TokenKind.DOLLAR:\n if (!isConst) {\n return this.parseVariable();\n }\n\n break;\n }\n\n throw this.unexpected();\n };\n\n _proto.parseStringLiteral = function parseStringLiteral() {\n var token = this._lexer.token;\n\n this._lexer.advance();\n\n return {\n kind: Kind.STRING,\n value: token.value,\n block: token.kind === TokenKind.BLOCK_STRING,\n loc: this.loc(token)\n };\n }\n /**\n * ListValue[Const] :\n * - [ ]\n * - [ Value[?Const]+ ]\n */\n ;\n\n _proto.parseList = function parseList(isConst) {\n var _this = this;\n\n var start = this._lexer.token;\n\n var item = function item() {\n return _this.parseValueLiteral(isConst);\n };\n\n return {\n kind: Kind.LIST,\n values: this.any(TokenKind.BRACKET_L, item, TokenKind.BRACKET_R),\n loc: this.loc(start)\n };\n }\n /**\n * ObjectValue[Const] :\n * - { }\n * - { ObjectField[?Const]+ }\n */\n ;\n\n _proto.parseObject = function parseObject(isConst) {\n var _this2 = this;\n\n var start = this._lexer.token;\n\n var item = function item() {\n return _this2.parseObjectField(isConst);\n };\n\n return {\n kind: Kind.OBJECT,\n fields: this.any(TokenKind.BRACE_L, item, TokenKind.BRACE_R),\n loc: this.loc(start)\n };\n }\n /**\n * ObjectField[Const] : Name : Value[?Const]\n */\n ;\n\n _proto.parseObjectField = function parseObjectField(isConst) {\n var start = this._lexer.token;\n var name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return {\n kind: Kind.OBJECT_FIELD,\n name: name,\n value: this.parseValueLiteral(isConst),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Directives section.\n\n /**\n * Directives[Const] : Directive[?Const]+\n */\n ;\n\n _proto.parseDirectives = function parseDirectives(isConst) {\n var directives = [];\n\n while (this.peek(TokenKind.AT)) {\n directives.push(this.parseDirective(isConst));\n }\n\n return directives;\n }\n /**\n * Directive[Const] : @ Name Arguments[?Const]?\n */\n ;\n\n _proto.parseDirective = function parseDirective(isConst) {\n var start = this._lexer.token;\n this.expectToken(TokenKind.AT);\n return {\n kind: Kind.DIRECTIVE,\n name: this.parseName(),\n arguments: this.parseArguments(isConst),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Types section.\n\n /**\n * Type :\n * - NamedType\n * - ListType\n * - NonNullType\n */\n ;\n\n _proto.parseTypeReference = function parseTypeReference() {\n var start = this._lexer.token;\n var type;\n\n if (this.expectOptionalToken(TokenKind.BRACKET_L)) {\n type = this.parseTypeReference();\n this.expectToken(TokenKind.BRACKET_R);\n type = {\n kind: Kind.LIST_TYPE,\n type: type,\n loc: this.loc(start)\n };\n } else {\n type = this.parseNamedType();\n }\n\n if (this.expectOptionalToken(TokenKind.BANG)) {\n return {\n kind: Kind.NON_NULL_TYPE,\n type: type,\n loc: this.loc(start)\n };\n }\n\n return type;\n }\n /**\n * NamedType : Name\n */\n ;\n\n _proto.parseNamedType = function parseNamedType() {\n var start = this._lexer.token;\n return {\n kind: Kind.NAMED_TYPE,\n name: this.parseName(),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Type Definition section.\n\n /**\n * TypeSystemDefinition :\n * - SchemaDefinition\n * - TypeDefinition\n * - DirectiveDefinition\n *\n * TypeDefinition :\n * - ScalarTypeDefinition\n * - ObjectTypeDefinition\n * - InterfaceTypeDefinition\n * - UnionTypeDefinition\n * - EnumTypeDefinition\n * - InputObjectTypeDefinition\n */\n ;\n\n _proto.parseTypeSystemDefinition = function parseTypeSystemDefinition() {\n // Many definitions begin with a description and require a lookahead.\n var keywordToken = this.peekDescription() ? this._lexer.lookahead() : this._lexer.token;\n\n if (keywordToken.kind === TokenKind.NAME) {\n switch (keywordToken.value) {\n case 'schema':\n return this.parseSchemaDefinition();\n\n case 'scalar':\n return this.parseScalarTypeDefinition();\n\n case 'type':\n return this.parseObjectTypeDefinition();\n\n case 'interface':\n return this.parseInterfaceTypeDefinition();\n\n case 'union':\n return this.parseUnionTypeDefinition();\n\n case 'enum':\n return this.parseEnumTypeDefinition();\n\n case 'input':\n return this.parseInputObjectTypeDefinition();\n\n case 'directive':\n return this.parseDirectiveDefinition();\n }\n }\n\n throw this.unexpected(keywordToken);\n };\n\n _proto.peekDescription = function peekDescription() {\n return this.peek(TokenKind.STRING) || this.peek(TokenKind.BLOCK_STRING);\n }\n /**\n * Description : StringValue\n */\n ;\n\n _proto.parseDescription = function parseDescription() {\n if (this.peekDescription()) {\n return this.parseStringLiteral();\n }\n }\n /**\n * SchemaDefinition : Description? schema Directives[Const]? { OperationTypeDefinition+ }\n */\n ;\n\n _proto.parseSchemaDefinition = function parseSchemaDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('schema');\n var directives = this.parseDirectives(true);\n var operationTypes = this.many(TokenKind.BRACE_L, this.parseOperationTypeDefinition, TokenKind.BRACE_R);\n return {\n kind: Kind.SCHEMA_DEFINITION,\n description: description,\n directives: directives,\n operationTypes: operationTypes,\n loc: this.loc(start)\n };\n }\n /**\n * OperationTypeDefinition : OperationType : NamedType\n */\n ;\n\n _proto.parseOperationTypeDefinition = function parseOperationTypeDefinition() {\n var start = this._lexer.token;\n var operation = this.parseOperationType();\n this.expectToken(TokenKind.COLON);\n var type = this.parseNamedType();\n return {\n kind: Kind.OPERATION_TYPE_DEFINITION,\n operation: operation,\n type: type,\n loc: this.loc(start)\n };\n }\n /**\n * ScalarTypeDefinition : Description? scalar Name Directives[Const]?\n */\n ;\n\n _proto.parseScalarTypeDefinition = function parseScalarTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('scalar');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.SCALAR_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * ObjectTypeDefinition :\n * Description?\n * type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition?\n */\n ;\n\n _proto.parseObjectTypeDefinition = function parseObjectTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('type');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n return {\n kind: Kind.OBJECT_TYPE_DEFINITION,\n description: description,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * ImplementsInterfaces :\n * - implements `&`? NamedType\n * - ImplementsInterfaces & NamedType\n */\n ;\n\n _proto.parseImplementsInterfaces = function parseImplementsInterfaces() {\n var _this$_options2;\n\n if (!this.expectOptionalKeyword('implements')) {\n return [];\n }\n\n if (((_this$_options2 = this._options) === null || _this$_options2 === void 0 ? void 0 : _this$_options2.allowLegacySDLImplementsInterfaces) === true) {\n var types = []; // Optional leading ampersand\n\n this.expectOptionalToken(TokenKind.AMP);\n\n do {\n types.push(this.parseNamedType());\n } while (this.expectOptionalToken(TokenKind.AMP) || this.peek(TokenKind.NAME));\n\n return types;\n }\n\n return this.delimitedMany(TokenKind.AMP, this.parseNamedType);\n }\n /**\n * FieldsDefinition : { FieldDefinition+ }\n */\n ;\n\n _proto.parseFieldsDefinition = function parseFieldsDefinition() {\n var _this$_options3;\n\n // Legacy support for the SDL?\n if (((_this$_options3 = this._options) === null || _this$_options3 === void 0 ? void 0 : _this$_options3.allowLegacySDLEmptyFields) === true && this.peek(TokenKind.BRACE_L) && this._lexer.lookahead().kind === TokenKind.BRACE_R) {\n this._lexer.advance();\n\n this._lexer.advance();\n\n return [];\n }\n\n return this.optionalMany(TokenKind.BRACE_L, this.parseFieldDefinition, TokenKind.BRACE_R);\n }\n /**\n * FieldDefinition :\n * - Description? Name ArgumentsDefinition? : Type Directives[Const]?\n */\n ;\n\n _proto.parseFieldDefinition = function parseFieldDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n var name = this.parseName();\n var args = this.parseArgumentDefs();\n this.expectToken(TokenKind.COLON);\n var type = this.parseTypeReference();\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.FIELD_DEFINITION,\n description: description,\n name: name,\n arguments: args,\n type: type,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * ArgumentsDefinition : ( InputValueDefinition+ )\n */\n ;\n\n _proto.parseArgumentDefs = function parseArgumentDefs() {\n return this.optionalMany(TokenKind.PAREN_L, this.parseInputValueDef, TokenKind.PAREN_R);\n }\n /**\n * InputValueDefinition :\n * - Description? Name : Type DefaultValue? Directives[Const]?\n */\n ;\n\n _proto.parseInputValueDef = function parseInputValueDef() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n var name = this.parseName();\n this.expectToken(TokenKind.COLON);\n var type = this.parseTypeReference();\n var defaultValue;\n\n if (this.expectOptionalToken(TokenKind.EQUALS)) {\n defaultValue = this.parseValueLiteral(true);\n }\n\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.INPUT_VALUE_DEFINITION,\n description: description,\n name: name,\n type: type,\n defaultValue: defaultValue,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * InterfaceTypeDefinition :\n * - Description? interface Name Directives[Const]? FieldsDefinition?\n */\n ;\n\n _proto.parseInterfaceTypeDefinition = function parseInterfaceTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('interface');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n return {\n kind: Kind.INTERFACE_TYPE_DEFINITION,\n description: description,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * UnionTypeDefinition :\n * - Description? union Name Directives[Const]? UnionMemberTypes?\n */\n ;\n\n _proto.parseUnionTypeDefinition = function parseUnionTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('union');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var types = this.parseUnionMemberTypes();\n return {\n kind: Kind.UNION_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n types: types,\n loc: this.loc(start)\n };\n }\n /**\n * UnionMemberTypes :\n * - = `|`? NamedType\n * - UnionMemberTypes | NamedType\n */\n ;\n\n _proto.parseUnionMemberTypes = function parseUnionMemberTypes() {\n return this.expectOptionalToken(TokenKind.EQUALS) ? this.delimitedMany(TokenKind.PIPE, this.parseNamedType) : [];\n }\n /**\n * EnumTypeDefinition :\n * - Description? enum Name Directives[Const]? EnumValuesDefinition?\n */\n ;\n\n _proto.parseEnumTypeDefinition = function parseEnumTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('enum');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var values = this.parseEnumValuesDefinition();\n return {\n kind: Kind.ENUM_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n values: values,\n loc: this.loc(start)\n };\n }\n /**\n * EnumValuesDefinition : { EnumValueDefinition+ }\n */\n ;\n\n _proto.parseEnumValuesDefinition = function parseEnumValuesDefinition() {\n return this.optionalMany(TokenKind.BRACE_L, this.parseEnumValueDefinition, TokenKind.BRACE_R);\n }\n /**\n * EnumValueDefinition : Description? EnumValue Directives[Const]?\n *\n * EnumValue : Name\n */\n ;\n\n _proto.parseEnumValueDefinition = function parseEnumValueDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.ENUM_VALUE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * InputObjectTypeDefinition :\n * - Description? input Name Directives[Const]? InputFieldsDefinition?\n */\n ;\n\n _proto.parseInputObjectTypeDefinition = function parseInputObjectTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('input');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var fields = this.parseInputFieldsDefinition();\n return {\n kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * InputFieldsDefinition : { InputValueDefinition+ }\n */\n ;\n\n _proto.parseInputFieldsDefinition = function parseInputFieldsDefinition() {\n return this.optionalMany(TokenKind.BRACE_L, this.parseInputValueDef, TokenKind.BRACE_R);\n }\n /**\n * TypeSystemExtension :\n * - SchemaExtension\n * - TypeExtension\n *\n * TypeExtension :\n * - ScalarTypeExtension\n * - ObjectTypeExtension\n * - InterfaceTypeExtension\n * - UnionTypeExtension\n * - EnumTypeExtension\n * - InputObjectTypeDefinition\n */\n ;\n\n _proto.parseTypeSystemExtension = function parseTypeSystemExtension() {\n var keywordToken = this._lexer.lookahead();\n\n if (keywordToken.kind === TokenKind.NAME) {\n switch (keywordToken.value) {\n case 'schema':\n return this.parseSchemaExtension();\n\n case 'scalar':\n return this.parseScalarTypeExtension();\n\n case 'type':\n return this.parseObjectTypeExtension();\n\n case 'interface':\n return this.parseInterfaceTypeExtension();\n\n case 'union':\n return this.parseUnionTypeExtension();\n\n case 'enum':\n return this.parseEnumTypeExtension();\n\n case 'input':\n return this.parseInputObjectTypeExtension();\n }\n }\n\n throw this.unexpected(keywordToken);\n }\n /**\n * SchemaExtension :\n * - extend schema Directives[Const]? { OperationTypeDefinition+ }\n * - extend schema Directives[Const]\n */\n ;\n\n _proto.parseSchemaExtension = function parseSchemaExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('schema');\n var directives = this.parseDirectives(true);\n var operationTypes = this.optionalMany(TokenKind.BRACE_L, this.parseOperationTypeDefinition, TokenKind.BRACE_R);\n\n if (directives.length === 0 && operationTypes.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.SCHEMA_EXTENSION,\n directives: directives,\n operationTypes: operationTypes,\n loc: this.loc(start)\n };\n }\n /**\n * ScalarTypeExtension :\n * - extend scalar Name Directives[Const]\n */\n ;\n\n _proto.parseScalarTypeExtension = function parseScalarTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('scalar');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n\n if (directives.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.SCALAR_TYPE_EXTENSION,\n name: name,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * ObjectTypeExtension :\n * - extend type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n * - extend type Name ImplementsInterfaces? Directives[Const]\n * - extend type Name ImplementsInterfaces\n */\n ;\n\n _proto.parseObjectTypeExtension = function parseObjectTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('type');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n\n if (interfaces.length === 0 && directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.OBJECT_TYPE_EXTENSION,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * InterfaceTypeExtension :\n * - extend interface Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n * - extend interface Name ImplementsInterfaces? Directives[Const]\n * - extend interface Name ImplementsInterfaces\n */\n ;\n\n _proto.parseInterfaceTypeExtension = function parseInterfaceTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('interface');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n\n if (interfaces.length === 0 && directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.INTERFACE_TYPE_EXTENSION,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * UnionTypeExtension :\n * - extend union Name Directives[Const]? UnionMemberTypes\n * - extend union Name Directives[Const]\n */\n ;\n\n _proto.parseUnionTypeExtension = function parseUnionTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('union');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var types = this.parseUnionMemberTypes();\n\n if (directives.length === 0 && types.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.UNION_TYPE_EXTENSION,\n name: name,\n directives: directives,\n types: types,\n loc: this.loc(start)\n };\n }\n /**\n * EnumTypeExtension :\n * - extend enum Name Directives[Const]? EnumValuesDefinition\n * - extend enum Name Directives[Const]\n */\n ;\n\n _proto.parseEnumTypeExtension = function parseEnumTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('enum');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var values = this.parseEnumValuesDefinition();\n\n if (directives.length === 0 && values.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.ENUM_TYPE_EXTENSION,\n name: name,\n directives: directives,\n values: values,\n loc: this.loc(start)\n };\n }\n /**\n * InputObjectTypeExtension :\n * - extend input Name Directives[Const]? InputFieldsDefinition\n * - extend input Name Directives[Const]\n */\n ;\n\n _proto.parseInputObjectTypeExtension = function parseInputObjectTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('input');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var fields = this.parseInputFieldsDefinition();\n\n if (directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.INPUT_OBJECT_TYPE_EXTENSION,\n name: name,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * DirectiveDefinition :\n * - Description? directive @ Name ArgumentsDefinition? `repeatable`? on DirectiveLocations\n */\n ;\n\n _proto.parseDirectiveDefinition = function parseDirectiveDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('directive');\n this.expectToken(TokenKind.AT);\n var name = this.parseName();\n var args = this.parseArgumentDefs();\n var repeatable = this.expectOptionalKeyword('repeatable');\n this.expectKeyword('on');\n var locations = this.parseDirectiveLocations();\n return {\n kind: Kind.DIRECTIVE_DEFINITION,\n description: description,\n name: name,\n arguments: args,\n repeatable: repeatable,\n locations: locations,\n loc: this.loc(start)\n };\n }\n /**\n * DirectiveLocations :\n * - `|`? DirectiveLocation\n * - DirectiveLocations | DirectiveLocation\n */\n ;\n\n _proto.parseDirectiveLocations = function parseDirectiveLocations() {\n return this.delimitedMany(TokenKind.PIPE, this.parseDirectiveLocation);\n }\n /*\n * DirectiveLocation :\n * - ExecutableDirectiveLocation\n * - TypeSystemDirectiveLocation\n *\n * ExecutableDirectiveLocation : one of\n * `QUERY`\n * `MUTATION`\n * `SUBSCRIPTION`\n * `FIELD`\n * `FRAGMENT_DEFINITION`\n * `FRAGMENT_SPREAD`\n * `INLINE_FRAGMENT`\n *\n * TypeSystemDirectiveLocation : one of\n * `SCHEMA`\n * `SCALAR`\n * `OBJECT`\n * `FIELD_DEFINITION`\n * `ARGUMENT_DEFINITION`\n * `INTERFACE`\n * `UNION`\n * `ENUM`\n * `ENUM_VALUE`\n * `INPUT_OBJECT`\n * `INPUT_FIELD_DEFINITION`\n */\n ;\n\n _proto.parseDirectiveLocation = function parseDirectiveLocation() {\n var start = this._lexer.token;\n var name = this.parseName();\n\n if (DirectiveLocation[name.value] !== undefined) {\n return name;\n }\n\n throw this.unexpected(start);\n } // Core parsing utility functions\n\n /**\n * Returns a location object, used to identify the place in the source that created a given parsed object.\n */\n ;\n\n _proto.loc = function loc(startToken) {\n var _this$_options4;\n\n if (((_this$_options4 = this._options) === null || _this$_options4 === void 0 ? void 0 : _this$_options4.noLocation) !== true) {\n return new Location(startToken, this._lexer.lastToken, this._lexer.source);\n }\n }\n /**\n * Determines if the next token is of a given kind\n */\n ;\n\n _proto.peek = function peek(kind) {\n return this._lexer.token.kind === kind;\n }\n /**\n * If the next token is of the given kind, return that token after advancing the lexer.\n * Otherwise, do not change the parser state and throw an error.\n */\n ;\n\n _proto.expectToken = function expectToken(kind) {\n var token = this._lexer.token;\n\n if (token.kind === kind) {\n this._lexer.advance();\n\n return token;\n }\n\n throw syntaxError(this._lexer.source, token.start, \"Expected \".concat(getTokenKindDesc(kind), \", found \").concat(getTokenDesc(token), \".\"));\n }\n /**\n * If the next token is of the given kind, return that token after advancing the lexer.\n * Otherwise, do not change the parser state and return undefined.\n */\n ;\n\n _proto.expectOptionalToken = function expectOptionalToken(kind) {\n var token = this._lexer.token;\n\n if (token.kind === kind) {\n this._lexer.advance();\n\n return token;\n }\n\n return undefined;\n }\n /**\n * If the next token is a given keyword, advance the lexer.\n * Otherwise, do not change the parser state and throw an error.\n */\n ;\n\n _proto.expectKeyword = function expectKeyword(value) {\n var token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this._lexer.advance();\n } else {\n throw syntaxError(this._lexer.source, token.start, \"Expected \\\"\".concat(value, \"\\\", found \").concat(getTokenDesc(token), \".\"));\n }\n }\n /**\n * If the next token is a given keyword, return \"true\" after advancing the lexer.\n * Otherwise, do not change the parser state and return \"false\".\n */\n ;\n\n _proto.expectOptionalKeyword = function expectOptionalKeyword(value) {\n var token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this._lexer.advance();\n\n return true;\n }\n\n return false;\n }\n /**\n * Helper function for creating an error when an unexpected lexed token is encountered.\n */\n ;\n\n _proto.unexpected = function unexpected(atToken) {\n var token = atToken !== null && atToken !== void 0 ? atToken : this._lexer.token;\n return syntaxError(this._lexer.source, token.start, \"Unexpected \".concat(getTokenDesc(token), \".\"));\n }\n /**\n * Returns a possibly empty list of parse nodes, determined by the parseFn.\n * This list begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n ;\n\n _proto.any = function any(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n var nodes = [];\n\n while (!this.expectOptionalToken(closeKind)) {\n nodes.push(parseFn.call(this));\n }\n\n return nodes;\n }\n /**\n * Returns a list of parse nodes, determined by the parseFn.\n * It can be empty only if open token is missing otherwise it will always return non-empty list\n * that begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n ;\n\n _proto.optionalMany = function optionalMany(openKind, parseFn, closeKind) {\n if (this.expectOptionalToken(openKind)) {\n var nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (!this.expectOptionalToken(closeKind));\n\n return nodes;\n }\n\n return [];\n }\n /**\n * Returns a non-empty list of parse nodes, determined by the parseFn.\n * This list begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n ;\n\n _proto.many = function many(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n var nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (!this.expectOptionalToken(closeKind));\n\n return nodes;\n }\n /**\n * Returns a non-empty list of parse nodes, determined by the parseFn.\n * This list may begin with a lex token of delimiterKind followed by items separated by lex tokens of tokenKind.\n * Advances the parser to the next lex token after last item in the list.\n */\n ;\n\n _proto.delimitedMany = function delimitedMany(delimiterKind, parseFn) {\n this.expectOptionalToken(delimiterKind);\n var nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (this.expectOptionalToken(delimiterKind));\n\n return nodes;\n };\n\n return Parser;\n}();\n/**\n * A helper function to describe a token as a string for debugging.\n */\n\nfunction getTokenDesc(token) {\n var value = token.value;\n return getTokenKindDesc(token.kind) + (value != null ? \" \\\"\".concat(value, \"\\\"\") : '');\n}\n/**\n * A helper function to describe a token kind as a string for debugging.\n */\n\n\nfunction getTokenKindDesc(kind) {\n return isPunctuatorTokenKind(kind) ? \"\\\"\".concat(kind, \"\\\"\") : kind;\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}\nvar MAX_LINE_LENGTH = 80; // 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 var prefix = wrap('', alias, ': ') + name;\n var argsLine = prefix + wrap('(', join(args, ', '), ')');\n\n if (argsLine.length > MAX_LINE_LENGTH) {\n argsLine = prefix + wrap('(\\n', indent(join(args, '\\n')), '\\n)');\n }\n\n return join([argsLine, 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 wrap('{\\n', indent(join(array, '\\n')), '\\n}');\n}\n/**\n * If maybeString is not null or empty, then wrap with start and end, otherwise 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 != null && maybeString !== '' ? start + maybeString + end : '';\n}\n\nfunction indent(str) {\n return wrap(' ', str.replace(/\\n/g, '\\n '));\n}\n\nfunction isMultiline(str) {\n return str.indexOf('\\n') !== -1;\n}\n\nfunction hasMultilineItems(maybeArray) {\n return maybeArray != null && maybeArray.some(isMultiline);\n}\n","// In ES2015 (or a polyfilled) environment, this will be Symbol.iterator\n// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\nexport var SYMBOL_ITERATOR = typeof Symbol === 'function' && Symbol.iterator != null ? Symbol.iterator : '@@iterator'; // In ES2017 (or a polyfilled) environment, this will be Symbol.asyncIterator\n// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\nexport var SYMBOL_ASYNC_ITERATOR = typeof Symbol === 'function' && Symbol.asyncIterator != null ? Symbol.asyncIterator : '@@asyncIterator'; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\nexport var SYMBOL_TO_STRING_TAG = typeof Symbol === 'function' && Symbol.toStringTag != null ? Symbol.toStringTag : '@@toStringTag';\n"],"names":["buildOptions","defaultOptions","attributeNamePrefix","attrNodeName","textNodeName","ignoreAttributes","cdataTagName","cdataPositionChar","format","indentBy","supressEmptyNode","tagValueProcessor","a","attrValueProcessor","props","Parser","options","this","isAttribute","attrPrefixLen","length","isCDATA","replaceCDATAstr","replaceCDATAarr","processTextOrObjNode","indentate","tagEndChar","newLine","buildTextNode","buildEmptyTextNode","buildObjNode","buildEmptyObjNode","buildTextValNode","buildObjectNode","object","key","level","result","j2x","undefined","Object","keys","val","attrStr","str","cdata","replace","join","v","indexOf","repeat","name","startsWith","substr","prototype","parse","jObj","Array","isArray","rootNodeName","Date","attr","arrLen","j","item","Ks","L","module","exports","char","String","fromCharCode","chars","nilChar","missingChar","nilPremitive","missingPremitive","emptyChar","emptyValue","boundryChar","objStart","arrStart","arrayEnd","charsArr","_e","node","e_schema","getValue","hasValidData","hasData","itemSchema","arr_len","arr_i","r","processValue","i","attrsMap","child","isAppChar","ch","x2j","convert2nimn","util","convertToJson","parentTagName","alwaysCreateTextNode","isEmptyObject","isExist","asArray","isTagNameInArrayMode","tagname","arrayMode","merge","index","tagName","tag","hasOwnProperty","push","convertToJsonString","_cToJsonStr","stringval","isNaN","nodeToJson","xmlToNodeobj","x2xmlnode","validator","xmlData","givenOptions","validationOption","validate","Error","err","msg","parseTrueNumberOnly","parseNodeValue","numParseOptions","leadingZeros","traversableObj","getTraversalObj","convertTonimn","j2xParser","parseToNimn","schema","nameStartChar","nameChar","nameRegexp","regexName","RegExp","getAllMatches","string","regex","matches","match","exec","allmatches","startIndex","lastIndex","len","isName","obj","target","newOptions","test","allowBooleanAttributes","readPI","start","getErrorObject","getLineNumberForPosition","readCommentAndCDATA","angleBracketsCount","tags","tagFound","reachedRoot","tagStartPos","closingTag","trim","substring","validateTagName","readAttributeStr","value","attrStrStart","isValid","validateAttributeString","code","line","tagClosed","otg","pop","openPos","col","afterAmp","validateAmpersand","JSON","stringify","map","t","doubleQuote","singleQuote","startChar","validAttrStrRegxp","attrNames","getPositionFromMatch","attrName","validateAttrName","validateNumberAmpersand","re","count","message","lineNumber","lines","split","parent","addChild","xmlNode","toNumber","Number","parseInt","window","parseFloat","ignoreNameSpace","parseAttributeValue","trimValues","hex","stopNodes","processTagValue","parseValue","resolveNameSpace","prefix","charAt","shouldParse","newval","attrsRegx","buildAttributesMap","attrs","attrCollection","xmlObj","currentNode","textData","closeIndex","findClosingIndex","colonIndex","includes","tagExp","childNode","closingIndexForOpeningTag","data","separatorIndex","shouldBuildAttributesMap","lastIndexOf","attrBoundary","errMsg","closingIndex","ERROR_MESSAGE","toStr","toString","max","Math","funcType","concatty","b","arr","slicy","arrLike","offset","joiny","joiner","that","apply","TypeError","bound","args","arguments","binder","boundLength","boundArgs","Function","Empty","implementation","bind","$Error","$EvalError","$RangeError","$ReferenceError","$SyntaxError","$TypeError","$URIError","$Function","getEvalledConstructor","expressionSyntax","e","$gOPD","getOwnPropertyDescriptor","throwTypeError","ThrowTypeError","calleeThrows","get","gOPDthrows","hasSymbols","hasProto","getProto","getPrototypeOf","x","__proto__","needsEval","TypedArray","Uint8Array","INTRINSICS","AggregateError","ArrayBuffer","Symbol","iterator","Atomics","BigInt","BigInt64Array","BigUint64Array","Boolean","DataView","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","eval","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","isFinite","Map","Promise","Proxy","Reflect","Set","SharedArrayBuffer","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","WeakRef","WeakSet","error","errorProto","doEval","fn","gen","LEGACY_ALIASES","hasOwn","$concat","call","concat","$spliceApply","splice","$replace","$strSlice","slice","$exec","rePropName","reEscapeChar","stringToPath","first","last","number","quote","subString","getBaseIntrinsic","allowMissing","alias","intrinsicName","parts","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","isOwn","part","desc","GetIntrinsic","$defineProperty","hasPropertyDescriptors","hasArrayLengthDefineBug","foo","$Object","origSymbol","hasSymbolSham","getOwnPropertySymbols","sym","symObj","symVal","getOwnPropertyNames","syms","propertyIsEnumerable","descriptor","enumerable","$hasOwn","_typeof","constructor","isObjectLike","getLocation","source","position","lineRegexp","column","body","printLocation","location","printSourceLocation","sourceLocation","firstLineColumnOffset","locationOffset","whitespace","lineIndex","lineOffset","lineNum","columnOffset","columnNum","locationStr","locationLine","subLineIndex","floor","subLineColumnNum","subLines","printPrefixedLines","subLine","existingLines","filter","_ref","padLen","_ref2","_ref3","leftPad","ownKeys","enumerableOnly","symbols","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","configurable","writable","_classCallCheck","instance","Constructor","_defineProperties","_createClass","protoProps","staticProps","_inherits","subClass","superClass","create","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","construct","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","_wrapNativeSuper","Class","_cache","_isNativeFunction","has","set","Wrapper","_construct","Parent","sham","o","p","setPrototypeOf","GraphQLError","_Error","_super","nodes","positions","path","originalError","extensions","_nodeLocations","_nodeLocations2","_nodeLocations3","_this","undefinedIfEmpty","nodeLocations","_i2","_this$nodes","_ref4","loc","locations","pos","originalExtensions","stack","captureStackTrace","printError","array","output","_i4","_error$nodes2","_i6","_error$locations2","MAX_ARRAY_LENGTH","MAX_RECURSIVE_DEPTH","inspect","formatValue","seenValues","formatObjectValue","previouslySeenValues","customInspectFn","getCustomFn","customValue","formatArray","formatObject","getObjectTag","properties","min","remaining","items","nodejsCustomInspectSymbol","for","invariant","condition","booleanCondition","defineInspect","classObject","toJSON","Location","startToken","endToken","end","_proto","Token","kind","prev","next","_proto2","isNode","maybeNode","dedentBlockStringValue","rawString","commonIndent","getBlockStringIndentation","startLine","isBlank","endLine","_commonIndent","isFirstLine","isEmptyLine","indent","charCodeAt","printBlockString","indentation","preferMultipleLines","isSingleLine","hasLeadingSpace","hasTrailingQuote","hasTrailingSlash","printAsMultipleLines","syntaxError","description","Kind","freeze","NAME","DOCUMENT","OPERATION_DEFINITION","VARIABLE_DEFINITION","SELECTION_SET","FIELD","ARGUMENT","FRAGMENT_SPREAD","INLINE_FRAGMENT","FRAGMENT_DEFINITION","VARIABLE","INT","FLOAT","STRING","BOOLEAN","NULL","ENUM","LIST","OBJECT","OBJECT_FIELD","DIRECTIVE","NAMED_TYPE","LIST_TYPE","NON_NULL_TYPE","SCHEMA_DEFINITION","OPERATION_TYPE_DEFINITION","SCALAR_TYPE_DEFINITION","OBJECT_TYPE_DEFINITION","FIELD_DEFINITION","INPUT_VALUE_DEFINITION","INTERFACE_TYPE_DEFINITION","UNION_TYPE_DEFINITION","ENUM_TYPE_DEFINITION","ENUM_VALUE_DEFINITION","INPUT_OBJECT_TYPE_DEFINITION","DIRECTIVE_DEFINITION","SCHEMA_EXTENSION","SCALAR_TYPE_EXTENSION","OBJECT_TYPE_EXTENSION","INTERFACE_TYPE_EXTENSION","UNION_TYPE_EXTENSION","ENUM_TYPE_EXTENSION","INPUT_OBJECT_TYPE_EXTENSION","SOF","EOF","BANG","DOLLAR","AMP","PAREN_L","PAREN_R","SPREAD","COLON","EQUALS","AT","BRACKET_L","BRACKET_R","BRACE_L","PIPE","BRACE_R","BLOCK_STRING","COMMENT","devAssert","Source","isSource","instanceOf","DirectiveLocation","QUERY","MUTATION","SUBSCRIPTION","SCHEMA","SCALAR","ARGUMENT_DEFINITION","INTERFACE","UNION","ENUM_VALUE","INPUT_OBJECT","INPUT_FIELD_DEFINITION","Lexer","startOfFileToken","lastToken","token","lineStart","advance","lookahead","_token$next","readToken","isPunctuatorTokenKind","printCharCode","toUpperCase","lexer","bodyLength","_line","_col","readComment","readBlockString","readString","readNumber","readName","unexpectedCharacterMessage","firstCode","isFloat","readDigits","isNameStart","chunkStart","charCode","uniCharCode","invalidSequence","rawValue","c","d","char2hex","parser","parseDocument","sourceObj","_lexer","_options","parseName","expectToken","definitions","many","parseDefinition","peek","parseOperationDefinition","parseFragmentDefinition","parseTypeSystemDefinition","parseTypeSystemExtension","peekDescription","unexpected","operation","variableDefinitions","directives","selectionSet","parseSelectionSet","parseOperationType","parseVariableDefinitions","parseDirectives","operationToken","optionalMany","parseVariableDefinition","variable","parseVariable","type","parseTypeReference","defaultValue","expectOptionalToken","parseValueLiteral","selections","parseSelection","parseFragment","parseField","nameOrAlias","parseArguments","isConst","parseConstArgument","parseArgument","hasTypeCondition","expectOptionalKeyword","parseFragmentName","typeCondition","parseNamedType","_this$_options","expectKeyword","experimentalFragmentVariables","parseList","parseObject","parseStringLiteral","block","values","any","_this2","parseObjectField","fields","parseDirective","keywordToken","parseSchemaDefinition","parseScalarTypeDefinition","parseObjectTypeDefinition","parseInterfaceTypeDefinition","parseUnionTypeDefinition","parseEnumTypeDefinition","parseInputObjectTypeDefinition","parseDirectiveDefinition","parseDescription","operationTypes","parseOperationTypeDefinition","interfaces","parseImplementsInterfaces","parseFieldsDefinition","_this$_options2","allowLegacySDLImplementsInterfaces","types","delimitedMany","_this$_options3","allowLegacySDLEmptyFields","parseFieldDefinition","parseArgumentDefs","parseInputValueDef","parseUnionMemberTypes","parseEnumValuesDefinition","parseEnumValueDefinition","parseInputFieldsDefinition","parseSchemaExtension","parseScalarTypeExtension","parseObjectTypeExtension","parseInterfaceTypeExtension","parseUnionTypeExtension","parseEnumTypeExtension","parseInputObjectTypeExtension","repeatable","parseDirectiveLocations","parseDirectiveLocation","_this$_options4","noLocation","getTokenKindDesc","getTokenDesc","atToken","openKind","parseFn","closeKind","delimiterKind","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","visit","root","visitor","visitorKeys","inArray","edits","ancestors","newRoot","isLeaving","isEdited","clone","_Object$keys2","k","editOffset","ii","editKey","editValue","_visitorKeys$node$kin","visitFn","getVisitFn","kindVisitor","kindSpecificVisitor","leave","enter","specificVisitor","specificKindVisitor","print","ast","printDocASTReducer","MAX_LINE_LENGTH","op","varDefs","wrap","argsLine","_ref5","_ref6","_ref7","_ref8","_ref9","_ref10","isBlockString","_ref11","_ref12","_ref13","_ref14","_ref15","_ref16","_ref17","_ref18","_ref19","addDescription","_ref20","_ref21","_ref22","_ref23","_ref24","hasMultilineItems","_ref25","_ref26","_ref27","_ref28","_ref29","_ref30","_ref31","_ref32","_ref33","_ref34","_ref35","_ref36","_ref37","_ref38","cb","maybeArray","_maybeArray$filter$jo","separator","maybeString","isMultiline","some","asyncIterator","SYMBOL_TO_STRING_TAG","toStringTag"],"sourceRoot":""}