{"version":3,"sources":["webpack:///./node_modules/aws-sdk/lib/xml/browser_parser.js","webpack:///./node_modules/aws-sdk/lib/xml/escape-element.js","webpack:///./node_modules/aws-sdk/lib/xml/xml-node.js","webpack:///./node_modules/aws-sdk/lib/xml/xml-text.js","webpack:///./node_modules/aws-sdk/lib/xml/escape-attribute.js","webpack:///./node_modules/aws-sdk/lib/xml/builder.js"],"names":["util","Shape","DomXmlParser","getElementByTagName","xml","tag","elements","getElementsByTagName","i","iLen","length","parentNode","parseXml","shape","type","parseStructure","parseMap","parseList","undefined","parseUnknown","parseScalar","data","each","members","memberName","memberShape","isXmlAttribute","Object","prototype","hasOwnProperty","call","attributes","name","value","textContent","xmlChild","flattened","defaultValue","xmlKey","key","xmlValue","tagName","child","firstElementChild","nodeName","nextElementSibling","member","push","getAttribute","encoding","create","text","toType","childNodes","parse","replace","result","error","window","DOMParser","parser","parseFromString","syntaxError","Error","originalError","code","retryable","documentElement","isError","errorElement","ActiveXObject","async","loadXML","e","metadata","ResponseMetadata","module","exports","escapeElement","escapeAttribute","XmlNode","children","this","addAttribute","addChildNode","removeAttribute","toString","hasChildren","Boolean","xmlText","attributeNames","keys","attributeName","attribute","map","c","join","XmlText","XmlBuilder","serialize","serializeStructure","serializeMap","serializeList","serializeScalar","params","arrayEach","memberNames","location","element","applyNamespaces","entry","entryKey","entryValue","list","toWireFormat","isRoot","uri","prefix","xmlNamespaceUri","xmlNamespacePrefix","api","toXML","rootElement","noEmpty"],"mappings":"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","file":"js/chunk-vendors~9b0fafc7.3be70c35.js","sourcesContent":["var util = require('../util');\nvar Shape = require('../model/shape');\n\nfunction DomXmlParser() { }\n\nDomXmlParser.prototype.parse = function(xml, shape) {\n if (xml.replace(/^\\s+/, '') === '') return {};\n\n var result, error;\n try {\n if (window.DOMParser) {\n try {\n var parser = new DOMParser();\n result = parser.parseFromString(xml, 'text/xml');\n } catch (syntaxError) {\n throw util.error(new Error('Parse error in document'),\n {\n originalError: syntaxError,\n code: 'XMLParserError',\n retryable: true\n });\n }\n\n if (result.documentElement === null) {\n throw util.error(new Error('Cannot parse empty document.'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n\n var isError = result.getElementsByTagName('parsererror')[0];\n if (isError && (isError.parentNode === result ||\n isError.parentNode.nodeName === 'body' ||\n isError.parentNode.parentNode === result ||\n isError.parentNode.parentNode.nodeName === 'body')) {\n var errorElement = isError.getElementsByTagName('div')[0] || isError;\n throw util.error(new Error(errorElement.textContent || 'Parser error in document'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n } else if (window.ActiveXObject) {\n result = new window.ActiveXObject('Microsoft.XMLDOM');\n result.async = false;\n\n if (!result.loadXML(xml)) {\n throw util.error(new Error('Parse error in document'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n } else {\n throw new Error('Cannot load XML parser');\n }\n } catch (e) {\n error = e;\n }\n\n if (result && result.documentElement && !error) {\n var data = parseXml(result.documentElement, shape);\n var metadata = getElementByTagName(result.documentElement, 'ResponseMetadata');\n if (metadata) {\n data.ResponseMetadata = parseXml(metadata, {});\n }\n return data;\n } else if (error) {\n throw util.error(error || new Error(), {code: 'XMLParserError', retryable: true});\n } else { // empty xml document\n return {};\n }\n};\n\nfunction getElementByTagName(xml, tag) {\n var elements = xml.getElementsByTagName(tag);\n for (var i = 0, iLen = elements.length; i < iLen; i++) {\n if (elements[i].parentNode === xml) {\n return elements[i];\n }\n }\n}\n\nfunction parseXml(xml, shape) {\n if (!shape) shape = {};\n switch (shape.type) {\n case 'structure': return parseStructure(xml, shape);\n case 'map': return parseMap(xml, shape);\n case 'list': return parseList(xml, shape);\n case undefined: case null: return parseUnknown(xml);\n default: return parseScalar(xml, shape);\n }\n}\n\nfunction parseStructure(xml, shape) {\n var data = {};\n if (xml === null) return data;\n\n util.each(shape.members, function(memberName, memberShape) {\n if (memberShape.isXmlAttribute) {\n if (Object.prototype.hasOwnProperty.call(xml.attributes, memberShape.name)) {\n var value = xml.attributes[memberShape.name].value;\n data[memberName] = parseXml({textContent: value}, memberShape);\n }\n } else {\n var xmlChild = memberShape.flattened ? xml :\n getElementByTagName(xml, memberShape.name);\n if (xmlChild) {\n data[memberName] = parseXml(xmlChild, memberShape);\n } else if (!memberShape.flattened && memberShape.type === 'list') {\n data[memberName] = memberShape.defaultValue;\n }\n }\n });\n\n return data;\n}\n\nfunction parseMap(xml, shape) {\n var data = {};\n var xmlKey = shape.key.name || 'key';\n var xmlValue = shape.value.name || 'value';\n var tagName = shape.flattened ? shape.name : 'entry';\n\n var child = xml.firstElementChild;\n while (child) {\n if (child.nodeName === tagName) {\n var key = getElementByTagName(child, xmlKey).textContent;\n var value = getElementByTagName(child, xmlValue);\n data[key] = parseXml(value, shape.value);\n }\n child = child.nextElementSibling;\n }\n return data;\n}\n\nfunction parseList(xml, shape) {\n var data = [];\n var tagName = shape.flattened ? shape.name : (shape.member.name || 'member');\n\n var child = xml.firstElementChild;\n while (child) {\n if (child.nodeName === tagName) {\n data.push(parseXml(child, shape.member));\n }\n child = child.nextElementSibling;\n }\n return data;\n}\n\nfunction parseScalar(xml, shape) {\n if (xml.getAttribute) {\n var encoding = xml.getAttribute('encoding');\n if (encoding === 'base64') {\n shape = new Shape.create({type: encoding});\n }\n }\n\n var text = xml.textContent;\n if (text === '') text = null;\n if (typeof shape.toType === 'function') {\n return shape.toType(text);\n } else {\n return text;\n }\n}\n\nfunction parseUnknown(xml) {\n if (xml === undefined || xml === null) return '';\n\n // empty object\n if (!xml.firstElementChild) {\n if (xml.parentNode.parentNode === null) return {};\n if (xml.childNodes.length === 0) return '';\n else return xml.textContent;\n }\n\n // object, parse as structure\n var shape = {type: 'structure', members: {}};\n var child = xml.firstElementChild;\n while (child) {\n var tag = child.nodeName;\n if (Object.prototype.hasOwnProperty.call(shape.members, tag)) {\n // multiple tags of the same name makes it a list\n shape.members[tag].type = 'list';\n } else {\n shape.members[tag] = {name: tag};\n }\n child = child.nextElementSibling;\n }\n return parseStructure(xml, shape);\n}\n\n/**\n * @api private\n */\nmodule.exports = DomXmlParser;\n","/**\n * Escapes characters that can not be in an XML element.\n */\nfunction escapeElement(value) {\n return value.replace(/&/g, '&').replace(//g, '>');\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n escapeElement: escapeElement\n};\n","var escapeAttribute = require('./escape-attribute').escapeAttribute;\n\n/**\n * Represents an XML node.\n * @api private\n */\nfunction XmlNode(name, children) {\n if (children === void 0) { children = []; }\n this.name = name;\n this.children = children;\n this.attributes = {};\n}\nXmlNode.prototype.addAttribute = function (name, value) {\n this.attributes[name] = value;\n return this;\n};\nXmlNode.prototype.addChildNode = function (child) {\n this.children.push(child);\n return this;\n};\nXmlNode.prototype.removeAttribute = function (name) {\n delete this.attributes[name];\n return this;\n};\nXmlNode.prototype.toString = function () {\n var hasChildren = Boolean(this.children.length);\n var xmlText = '<' + this.name;\n // add attributes\n var attributes = this.attributes;\n for (var i = 0, attributeNames = Object.keys(attributes); i < attributeNames.length; i++) {\n var attributeName = attributeNames[i];\n var attribute = attributes[attributeName];\n if (typeof attribute !== 'undefined' && attribute !== null) {\n xmlText += ' ' + attributeName + '=\\\"' + escapeAttribute('' + attribute) + '\\\"';\n }\n }\n return xmlText += !hasChildren ? '/>' : '>' + this.children.map(function (c) { return c.toString(); }).join('') + '';\n};\n\n/**\n * @api private\n */\nmodule.exports = {\n XmlNode: XmlNode\n};\n","var escapeElement = require('./escape-element').escapeElement;\n\n/**\n * Represents an XML text value.\n * @api private\n */\nfunction XmlText(value) {\n this.value = value;\n}\n\nXmlText.prototype.toString = function () {\n return escapeElement('' + this.value);\n};\n\n/**\n * @api private\n */\nmodule.exports = {\n XmlText: XmlText\n};\n","/**\n * Escapes characters that can not be in an XML attribute.\n */\nfunction escapeAttribute(value) {\n return value.replace(/&/g, '&').replace(/'/g, ''').replace(//g, '>').replace(/\"/g, '"');\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n escapeAttribute: escapeAttribute\n};\n","var util = require('../util');\nvar XmlNode = require('./xml-node').XmlNode;\nvar XmlText = require('./xml-text').XmlText;\n\nfunction XmlBuilder() { }\n\nXmlBuilder.prototype.toXML = function(params, shape, rootElement, noEmpty) {\n var xml = new XmlNode(rootElement);\n applyNamespaces(xml, shape, true);\n serialize(xml, params, shape);\n return xml.children.length > 0 || noEmpty ? xml.toString() : '';\n};\n\nfunction serialize(xml, value, shape) {\n switch (shape.type) {\n case 'structure': return serializeStructure(xml, value, shape);\n case 'map': return serializeMap(xml, value, shape);\n case 'list': return serializeList(xml, value, shape);\n default: return serializeScalar(xml, value, shape);\n }\n}\n\nfunction serializeStructure(xml, params, shape) {\n util.arrayEach(shape.memberNames, function(memberName) {\n var memberShape = shape.members[memberName];\n if (memberShape.location !== 'body') return;\n\n var value = params[memberName];\n var name = memberShape.name;\n if (value !== undefined && value !== null) {\n if (memberShape.isXmlAttribute) {\n xml.addAttribute(name, value);\n } else if (memberShape.flattened) {\n serialize(xml, value, memberShape);\n } else {\n var element = new XmlNode(name);\n xml.addChildNode(element);\n applyNamespaces(element, memberShape);\n serialize(element, value, memberShape);\n }\n }\n });\n}\n\nfunction serializeMap(xml, map, shape) {\n var xmlKey = shape.key.name || 'key';\n var xmlValue = shape.value.name || 'value';\n\n util.each(map, function(key, value) {\n var entry = new XmlNode(shape.flattened ? shape.name : 'entry');\n xml.addChildNode(entry);\n\n var entryKey = new XmlNode(xmlKey);\n var entryValue = new XmlNode(xmlValue);\n entry.addChildNode(entryKey);\n entry.addChildNode(entryValue);\n\n serialize(entryKey, key, shape.key);\n serialize(entryValue, value, shape.value);\n });\n}\n\nfunction serializeList(xml, list, shape) {\n if (shape.flattened) {\n util.arrayEach(list, function(value) {\n var name = shape.member.name || shape.name;\n var element = new XmlNode(name);\n xml.addChildNode(element);\n serialize(element, value, shape.member);\n });\n } else {\n util.arrayEach(list, function(value) {\n var name = shape.member.name || 'member';\n var element = new XmlNode(name);\n xml.addChildNode(element);\n serialize(element, value, shape.member);\n });\n }\n}\n\nfunction serializeScalar(xml, value, shape) {\n xml.addChildNode(\n new XmlText(shape.toWireFormat(value))\n );\n}\n\nfunction applyNamespaces(xml, shape, isRoot) {\n var uri, prefix = 'xmlns';\n if (shape.xmlNamespaceUri) {\n uri = shape.xmlNamespaceUri;\n if (shape.xmlNamespacePrefix) prefix += ':' + shape.xmlNamespacePrefix;\n } else if (isRoot && shape.api.xmlNamespaceUri) {\n uri = shape.api.xmlNamespaceUri;\n }\n\n if (uri) xml.addAttribute(prefix, uri);\n}\n\n/**\n * @api private\n */\nmodule.exports = XmlBuilder;\n"],"sourceRoot":""}