{ "version": 3, "sources": ["../node_modules/axios/lib/helpers/bind.js", "../node_modules/axios/lib/utils.js", "../node_modules/axios/lib/helpers/buildURL.js", "../node_modules/axios/lib/core/InterceptorManager.js", "../node_modules/axios/lib/helpers/normalizeHeaderName.js", "../node_modules/axios/lib/core/enhanceError.js", "../node_modules/axios/lib/core/createError.js", "../node_modules/axios/lib/core/settle.js", "../node_modules/axios/lib/helpers/cookies.js", "../node_modules/axios/lib/helpers/isAbsoluteURL.js", "../node_modules/axios/lib/helpers/combineURLs.js", "../node_modules/axios/lib/core/buildFullPath.js", "../node_modules/axios/lib/helpers/parseHeaders.js", "../node_modules/axios/lib/helpers/isURLSameOrigin.js", "../node_modules/axios/lib/adapters/xhr.js", "../node_modules/axios/lib/defaults.js", "../node_modules/axios/lib/core/transformData.js", "../node_modules/axios/lib/cancel/isCancel.js", "../node_modules/axios/lib/core/dispatchRequest.js", "../node_modules/axios/lib/core/mergeConfig.js", "../node_modules/axios/lib/helpers/validator.js", "../node_modules/axios/lib/core/Axios.js", "../node_modules/axios/lib/cancel/Cancel.js", "../node_modules/axios/lib/cancel/CancelToken.js", "../node_modules/axios/lib/helpers/spread.js", "../node_modules/axios/lib/helpers/isAxiosError.js", "../node_modules/axios/lib/axios.js", "../node_modules/axios/index.js", "../node_modules/fast-xml-parser/src/util.js", "../node_modules/fast-xml-parser/src/node2json.js", "../node_modules/fast-xml-parser/src/xmlNode.js", "../node_modules/strnum/strnum.js", "../node_modules/fast-xml-parser/src/xmlstr2xmlnode.js", "../node_modules/fast-xml-parser/src/validator.js", "../node_modules/fast-xml-parser/src/nimndata.js", "../node_modules/fast-xml-parser/src/node2json_str.js", "../node_modules/fast-xml-parser/src/json2xml.js", "../node_modules/fast-xml-parser/src/parser.js", "../node_modules/rss-to-json/dist/index.js", "../node_modules/@lit/reactive-element/src/css-tag.ts", "../node_modules/@lit/reactive-element/src/reactive-element.ts", "../node_modules/lit-html/src/lit-html.ts", "../node_modules/lit-element/src/lit-element.ts", "../node_modules/lit-html/src/static.ts", "../node_modules/@lit/reactive-element/src/decorators/custom-element.ts", "../node_modules/@lit/reactive-element/src/decorators/property.ts", "../node_modules/@lit/reactive-element/src/decorators/state.ts", "../node_modules/@lit/reactive-element/src/decorators/query-assigned-elements.ts", "../node_modules/lit-html/src/directives/map.ts", "../node_modules/lit-html/src/directive.ts", "../node_modules/lit-html/src/directives/guard.ts", "../src/components/rss-embed/RssEmbed.ts", "../src/components/rss-embed/styles.css.ts", "../src/components/rss-embed/converters.ts", "../src/utils/converters.ts", "../src/utils/unescape.ts", "../src/utils/styles.css.ts", "../src/components/rss-embed/index.ts"], "sourcesContent": ["'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n", "'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n", "'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n", "'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n", "'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n", "'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n", "'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n", "'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n", "'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n", "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n", "'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n", "'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n", "'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n", "'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n", "'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n", "'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n", "'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n", "'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n", "'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n", "'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n", "'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n", "'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n", "'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n", "module.exports = require('./lib/axios');", "'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 convertToJson = function(node, options, parentTagName) {\n const jObj = {};\n\n // when no child node or attr is present\n if (!options.alwaysCreateTextNode && (!node.child || util.isEmptyObject(node.child)) && (!node.attrsMap || util.isEmptyObject(node.attrsMap))) {\n return util.isExist(node.val) ? node.val : '';\n }\n\n // otherwise create a textnode if node has some text\n if (util.isExist(node.val) && !(typeof node.val === 'string' && (node.val === '' || node.val === options.cdataPositionChar))) {\n const asArray = util.isTagNameInArrayMode(node.tagname, options.arrayMode, parentTagName)\n jObj[options.textNodeName] = asArray ? [node.val] : node.val;\n }\n\n util.merge(jObj, node.attrsMap, options.arrayMode);\n\n const keys = Object.keys(node.child);\n for (let index = 0; index < keys.length; index++) {\n const tagName = keys[index];\n if (node.child[tagName] && node.child[tagName].length > 1) {\n jObj[tagName] = [];\n for (let tag in node.child[tagName]) {\n if (node.child[tagName].hasOwnProperty(tag)) {\n jObj[tagName].push(convertToJson(node.child[tagName][tag], options, tagName));\n }\n }\n } else {\n const result = convertToJson(node.child[tagName][0], options, tagName);\n const asArray = (options.arrayMode === true && typeof result === 'object') || util.isTagNameInArrayMode(tagName, options.arrayMode, parentTagName);\n jObj[tagName] = asArray ? [result] : result;\n }\n }\n\n //add value\n return jObj;\n};\n\nexports.convertToJson = convertToJson;\n", "'use strict';\n\nmodule.exports = function(tagname, parent, val) {\n this.tagname = tagname;\n this.parent = parent;\n this.child = {}; //child tags\n this.attrsMap = {}; //attributes map\n this.val = val; //text only\n this.addChild = function(child) {\n if (Array.isArray(this.child[child.tagname])) {\n //already presents\n this.child[child.tagname].push(child);\n } else {\n this.child[child.tagname] = [child];\n }\n };\n};\n", "const hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;\nconst numRegex = /^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;\n// const octRegex = /0x[a-z0-9]+/;\n// const binRegex = /0x[a-z0-9]+/;\n\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\n \nconst consider = {\n hex : true,\n leadingZeros: true,\n decimalPoint: \"\\.\",\n eNotation: true\n //skipLike: /regex/\n};\n\nfunction toNumber(str, options = {}){\n // const options = Object.assign({}, consider);\n // if(opt.leadingZeros === false){\n // options.leadingZeros = false;\n // }else if(opt.hex === false){\n // options.hex = false;\n // }\n\n options = Object.assign({}, consider, options );\n if(!str || typeof str !== \"string\" ) return str;\n \n let trimmedStr = str.trim();\n // if(trimmedStr === \"0.0\") return 0;\n // else if(trimmedStr === \"+0.0\") return 0;\n // else if(trimmedStr === \"-0.0\") return -0;\n\n if(options.skipLike !== undefined && options.skipLike.test(trimmedStr)) return str;\n else if (options.hex && hexRegex.test(trimmedStr)) {\n return Number.parseInt(trimmedStr, 16);\n // } else if (options.parseOct && octRegex.test(str)) {\n // return Number.parseInt(val, 8);\n // }else if (options.parseBin && binRegex.test(str)) {\n // return Number.parseInt(val, 2);\n }else{\n //separate negative sign, leading zeros, and rest number\n const match = numRegex.exec(trimmedStr);\n if(match){\n const sign = match[1];\n const leadingZeros = match[2];\n let numTrimmedByZeros = trimZeros(match[3]); //complete num without leading zeros\n //trim ending zeros for floating number\n \n const eNotation = match[4] || match[6];\n if(!options.leadingZeros && leadingZeros.length > 0 && sign && trimmedStr[2] !== \".\") return str; //-0123\n else if(!options.leadingZeros && leadingZeros.length > 0 && !sign && trimmedStr[1] !== \".\") return str; //0123\n else{//no leading zeros or leading zeros are allowed\n const num = Number(trimmedStr);\n const numStr = \"\" + num;\n if(numStr.search(/[eE]/) !== -1){ //given number is long and parsed to eNotation\n if(options.eNotation) return num;\n else return str;\n }else if(eNotation){ //given number has enotation\n if(options.eNotation) return num;\n else return str;\n }else if(trimmedStr.indexOf(\".\") !== -1){ //floating number\n // const decimalPart = match[5].substr(1);\n // const intPart = trimmedStr.substr(0,trimmedStr.indexOf(\".\"));\n\n \n // const p = numStr.indexOf(\".\");\n // const givenIntPart = numStr.substr(0,p);\n // const givenDecPart = numStr.substr(p+1);\n if(numStr === \"0\" && (numTrimmedByZeros === \"\") ) return num; //0.0\n else if(numStr === numTrimmedByZeros) return num; //0.456. 0.79000\n else if( sign && numStr === \"-\"+numTrimmedByZeros) return num;\n else return str;\n }\n \n if(leadingZeros){\n // if(numTrimmedByZeros === numStr){\n // if(options.leadingZeros) return num;\n // else return str;\n // }else return str;\n if(numTrimmedByZeros === numStr) return num;\n else if(sign+numTrimmedByZeros === numStr) return num;\n else return str;\n }\n\n if(trimmedStr === numStr) return num;\n else if(trimmedStr === sign+numStr) return num;\n // else{\n // //number with +/- sign\n // trimmedStr.test(/[-+][0-9]);\n\n // }\n return str;\n }\n // else if(!eNotation && trimmedStr && trimmedStr !== Number(trimmedStr) ) return str;\n \n }else{ //non-numeric string\n return str;\n }\n }\n}\n\n/**\n * \n * @param {string} numStr without leading zeros\n * @returns \n */\nfunction trimZeros(numStr){\n if(numStr && numStr.indexOf(\".\") !== -1){//float\n numStr = numStr.replace(/0+$/, \"\"); //remove ending zeros\n if(numStr === \".\") numStr = \"0\";\n else if(numStr[0] === \".\") numStr = \"0\"+numStr;\n else if(numStr[numStr.length-1] === \".\") numStr = numStr.substr(0,numStr.length-1);\n return numStr;\n }\n return numStr;\n}\nmodule.exports = toNumber\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\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';\nconst char = function(a) {\n return String.fromCharCode(a);\n};\n\nconst chars = {\n nilChar: char(176),\n missingChar: char(201),\n nilPremitive: char(175),\n missingPremitive: char(200),\n\n emptyChar: char(178),\n emptyValue: char(177), //empty Premitive\n\n boundryChar: char(179),\n\n objStart: char(198),\n arrStart: char(204),\n arrayEnd: char(185),\n};\n\nconst charsArr = [\n chars.nilChar,\n chars.nilPremitive,\n chars.missingChar,\n chars.missingPremitive,\n chars.boundryChar,\n chars.emptyChar,\n chars.emptyValue,\n chars.arrayEnd,\n chars.objStart,\n chars.arrStart,\n];\n\nconst _e = function(node, e_schema, options) {\n if (typeof e_schema === 'string') {\n //premitive\n if (node && node[0] && node[0].val !== undefined) {\n return getValue(node[0].val, e_schema);\n } else {\n return getValue(node, e_schema);\n }\n } else {\n const hasValidData = hasData(node);\n if (hasValidData === true) {\n let str = '';\n if (Array.isArray(e_schema)) {\n //attributes can't be repeated. hence check in children tags only\n str += chars.arrStart;\n const itemSchema = e_schema[0];\n //const itemSchemaType = itemSchema;\n const arr_len = node.length;\n\n if (typeof itemSchema === 'string') {\n for (let arr_i = 0; arr_i < arr_len; arr_i++) {\n const r = getValue(node[arr_i].val, itemSchema);\n str = processValue(str, r);\n }\n } else {\n for (let arr_i = 0; arr_i < arr_len; arr_i++) {\n const r = _e(node[arr_i], itemSchema, options);\n str = processValue(str, r);\n }\n }\n str += chars.arrayEnd; //indicates that next item is not array item\n } else {\n //object\n str += chars.objStart;\n const keys = Object.keys(e_schema);\n if (Array.isArray(node)) {\n node = node[0];\n }\n for (let i in keys) {\n const key = keys[i];\n //a property defined in schema can be present either in attrsMap or children tags\n //options.textNodeName will not present in both maps, take it's value from val\n //options.attrNodeName will be present in attrsMap\n let r;\n if (!options.ignoreAttributes && node.attrsMap && node.attrsMap[key]) {\n r = _e(node.attrsMap[key], e_schema[key], options);\n } else if (key === options.textNodeName) {\n r = _e(node.val, e_schema[key], options);\n } else {\n r = _e(node.child[key], e_schema[key], options);\n }\n str = processValue(str, r);\n }\n }\n return str;\n } else {\n return hasValidData;\n }\n }\n};\n\nconst getValue = function(a /*, type*/) {\n switch (a) {\n case undefined:\n return chars.missingPremitive;\n case null:\n return chars.nilPremitive;\n case '':\n return chars.emptyValue;\n default:\n return a;\n }\n};\n\nconst processValue = function(str, r) {\n if (!isAppChar(r[0]) && !isAppChar(str[str.length - 1])) {\n str += chars.boundryChar;\n }\n return str + r;\n};\n\nconst isAppChar = function(ch) {\n return charsArr.indexOf(ch) !== -1;\n};\n\nfunction hasData(jObj) {\n if (jObj === undefined) {\n return chars.missingChar;\n } else if (jObj === null) {\n return chars.nilChar;\n } else if (\n jObj.child &&\n Object.keys(jObj.child).length === 0 &&\n (!jObj.attrsMap || Object.keys(jObj.attrsMap).length === 0)\n ) {\n return chars.emptyChar;\n } else {\n return true;\n }\n}\n\nconst x2j = require('./xmlstr2xmlnode');\nconst buildOptions = require('./util').buildOptions;\n\nconst convert2nimn = function(node, e_schema, options) {\n options = buildOptions(options, x2j.defaultOptions, x2j.props);\n return _e(node, e_schema, options);\n};\n\nexports.convert2nimn = convert2nimn;\n", "'use strict';\n\nconst util = require('./util');\nconst buildOptions = require('./util').buildOptions;\nconst x2j = require('./xmlstr2xmlnode');\n\n//TODO: do it later\nconst convertToJsonString = function(node, options) {\n options = buildOptions(options, x2j.defaultOptions, x2j.props);\n\n options.indentBy = options.indentBy || '';\n return _cToJsonStr(node, options, 0);\n};\n\nconst _cToJsonStr = function(node, options, level) {\n let jObj = '{';\n\n //traver through all the children\n const keys = Object.keys(node.child);\n\n for (let index = 0; index < keys.length; index++) {\n const tagname = keys[index];\n if (node.child[tagname] && node.child[tagname].length > 1) {\n jObj += '\"' + tagname + '\" : [ ';\n for (let tag in node.child[tagname]) {\n jObj += _cToJsonStr(node.child[tagname][tag], options) + ' , ';\n }\n jObj = jObj.substr(0, jObj.length - 1) + ' ] '; //remove extra comma in last\n } else {\n jObj += '\"' + tagname + '\" : ' + _cToJsonStr(node.child[tagname][0], options) + ' ,';\n }\n }\n util.merge(jObj, node.attrsMap);\n //add attrsMap as new children\n if (util.isEmptyObject(jObj)) {\n return util.isExist(node.val) ? node.val : '';\n } else {\n if (util.isExist(node.val)) {\n if (!(typeof node.val === 'string' && (node.val === '' || node.val === options.cdataPositionChar))) {\n jObj += '\"' + options.textNodeName + '\" : ' + stringval(node.val);\n }\n }\n }\n //add value\n if (jObj[jObj.length - 1] === ',') {\n jObj = jObj.substr(0, jObj.length - 2);\n }\n return jObj + '}';\n};\n\nfunction stringval(v) {\n if (v === true || v === false || !isNaN(v)) {\n return v;\n } else {\n return '\"' + v + '\"';\n }\n}\n\nfunction indentate(options, level) {\n return options.indentBy.repeat(level);\n}\n\nexports.convertToJsonString = convertToJsonString;\n", "'use strict';\n//parse Empty Node as self closing node\nconst buildOptions = require('./util').buildOptions;\n\nconst defaultOptions = {\n attributeNamePrefix: '@_',\n attrNodeName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n cdataTagName: false,\n cdataPositionChar: '\\\\c',\n format: false,\n indentBy: ' ',\n supressEmptyNode: false,\n tagValueProcessor: function(a) {\n return a;\n },\n attrValueProcessor: function(a) {\n return a;\n },\n};\n\nconst props = [\n 'attributeNamePrefix',\n 'attrNodeName',\n 'textNodeName',\n 'ignoreAttributes',\n 'cdataTagName',\n 'cdataPositionChar',\n 'format',\n 'indentBy',\n 'supressEmptyNode',\n 'tagValueProcessor',\n 'attrValueProcessor',\n 'rootNodeName', //when array as root\n];\n\nfunction Parser(options) {\n this.options = buildOptions(options, defaultOptions, props);\n if (this.options.ignoreAttributes || this.options.attrNodeName) {\n this.isAttribute = function(/*a*/) {\n return false;\n };\n } else {\n this.attrPrefixLen = this.options.attributeNamePrefix.length;\n this.isAttribute = isAttribute;\n }\n if (this.options.cdataTagName) {\n this.isCDATA = isCDATA;\n } else {\n this.isCDATA = function(/*a*/) {\n return false;\n };\n }\n this.replaceCDATAstr = replaceCDATAstr;\n this.replaceCDATAarr = replaceCDATAarr;\n\n this.processTextOrObjNode = processTextOrObjNode\n\n if (this.options.format) {\n this.indentate = indentate;\n this.tagEndChar = '>\\n';\n this.newLine = '\\n';\n } else {\n this.indentate = function() {\n return '';\n };\n this.tagEndChar = '>';\n this.newLine = '';\n }\n\n if (this.options.supressEmptyNode) {\n this.buildTextNode = buildEmptyTextNode;\n this.buildObjNode = buildEmptyObjNode;\n } else {\n this.buildTextNode = buildTextValNode;\n this.buildObjNode = buildObjectNode;\n }\n\n this.buildTextValNode = buildTextValNode;\n this.buildObjectNode = buildObjectNode;\n}\n\nParser.prototype.parse = function(jObj) {\n if(Array.isArray(jObj) && this.options.rootNodeName && this.options.rootNodeName.length > 1){\n jObj = {\n [this.options.rootNodeName] : jObj\n }\n }\n return this.j2x(jObj, 0).val;\n};\n\nParser.prototype.j2x = function(jObj, level) {\n let attrStr = '';\n let val = '';\n for (let key in jObj) {\n if (typeof jObj[key] === 'undefined') {\n // supress undefined node\n } else if (jObj[key] === null) {\n val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (jObj[key] instanceof Date) {\n val += this.buildTextNode(jObj[key], key, '', level);\n } else if (typeof jObj[key] !== 'object') {\n //premitive type\n const attr = this.isAttribute(key);\n if (attr) {\n attrStr += ' ' + attr + '=\"' + this.options.attrValueProcessor('' + jObj[key]) + '\"';\n } else if (this.isCDATA(key)) {\n if (jObj[this.options.textNodeName]) {\n val += this.replaceCDATAstr(jObj[this.options.textNodeName], jObj[key]);\n } else {\n val += this.replaceCDATAstr('', jObj[key]);\n }\n } else {\n //tag value\n if (key === this.options.textNodeName) {\n if (jObj[this.options.cdataTagName]) {\n //value will added while processing cdata\n } else {\n val += this.options.tagValueProcessor('' + jObj[key]);\n }\n } else {\n val += this.buildTextNode(jObj[key], key, '', level);\n }\n }\n } else if (Array.isArray(jObj[key])) {\n //repeated nodes\n if (this.isCDATA(key)) {\n val += this.indentate(level);\n if (jObj[this.options.textNodeName]) {\n val += this.replaceCDATAarr(jObj[this.options.textNodeName], jObj[key]);\n } else {\n val += this.replaceCDATAarr('', jObj[key]);\n }\n } else {\n //nested nodes\n const arrLen = jObj[key].length;\n for (let j = 0; j < arrLen; j++) {\n const item = jObj[key][j];\n if (typeof item === 'undefined') {\n // supress undefined node\n } else if (item === null) {\n val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (typeof item === 'object') {\n val += this.processTextOrObjNode(item, key, level)\n } else {\n val += this.buildTextNode(item, key, '', level);\n }\n }\n }\n } else {\n //nested node\n if (this.options.attrNodeName && key === this.options.attrNodeName) {\n const Ks = Object.keys(jObj[key]);\n const L = Ks.length;\n for (let j = 0; j < L; j++) {\n attrStr += ' ' + Ks[j] + '=\"' + this.options.attrValueProcessor('' + jObj[key][Ks[j]]) + '\"';\n }\n } else {\n val += this.processTextOrObjNode(jObj[key], key, level)\n }\n }\n }\n return {attrStr: attrStr, val: val};\n};\n\nfunction processTextOrObjNode (object, key, level) {\n const result = this.j2x(object, level + 1);\n if (object[this.options.textNodeName] !== undefined && Object.keys(object).length === 1) {\n return this.buildTextNode(result.val, key, result.attrStr, level);\n } else {\n return this.buildObjNode(result.val, key, result.attrStr, level);\n }\n}\n\nfunction replaceCDATAstr(str, cdata) {\n str = this.options.tagValueProcessor('' + str);\n if (this.options.cdataPositionChar === '' || str === '') {\n return str + '');\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 '{\"use strict\";var e={306:(e,t,a)=>{Object.defineProperty(t,\"__esModule\",{value:!0});const r=a(861),i=a(376);t.default=async(e,t)=>{var a,n;if(!/(^http(s?):\\/\\/[^\\s$.?#].[^\\s]*)/i.test(e))return null;const{data:s}=await i.default(e,t),u=r.parse(s,{attributeNamePrefix:\"\",textNodeName:\"$text\",ignoreAttributes:!1});let o=u.rss&&u.rss.channel?u.rss.channel:u.feed;Array.isArray(o)&&(o=o[0]);const d={title:null!==(a=o.title)&&void 0!==a?a:\"\",description:null!==(n=o.description)&&void 0!==n?n:\"\",link:o.link&&o.link.href?o.link.href:o.link,image:o.image?o.image.url:o[\"itunes:image\"]?o[\"itunes:image\"].href:\"\",category:o.category||[],items:[]};let l=o.item||o.entry;l&&!Array.isArray(l)&&(l=[l]);for(let e=0;e{t[e]&&(r[e.replace(\":\",\"_\")]=t[e])})),t[\"media:thumbnail\"]&&(Object.assign(a,{thumbnail:t[\"media:thumbnail\"]}),r.enclosures.push(t[\"media:thumbnail\"])),t[\"media:content\"]&&(Object.assign(a,{thumbnail:t[\"media:content\"]}),r.enclosures.push(t[\"media:content\"])),t[\"media:group\"]&&(t[\"media:group\"][\"media:title\"]&&(r.title=t[\"media:group\"][\"media:title\"]),t[\"media:group\"][\"media:description\"]&&(r.description=t[\"media:group\"][\"media:description\"]),t[\"media:group\"][\"media:thumbnail\"]&&r.enclosures.push(t[\"media:group\"][\"media:thumbnail\"].url)),Object.assign(r,{media:a}),d.items.push(r)}return d}},376:e=>{e.exports=require(\"axios\")},861:e=>{e.exports=require(\"fast-xml-parser\")}},t={};function a(r){var i=t[r];if(void 0!==i)return i.exports;var n=t[r]={exports:{}};return e[r](n,n.exports,a),n.exports}var r={};(()=>{var e=r;Object.defineProperty(e,\"__esModule\",{value:!0}),e.Parse=e.parse=void 0;const t=a(306);e.parse=t.default;const i=t.default;e.Parse=i,e.default=t.default})();var i=exports;for(var n in r)i[n]=r[n];r.__esModule&&Object.defineProperty(i,\"__esModule\",{value:!0})})();", "/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/**\n * Whether the current browser supports `adoptedStyleSheets`.\n */\nexport const supportsAdoptingStyleSheets =\n window.ShadowRoot &&\n (window.ShadyCSS === undefined || window.ShadyCSS.nativeShadow) &&\n 'adoptedStyleSheets' in Document.prototype &&\n 'replace' in CSSStyleSheet.prototype;\n\n/**\n * A CSSResult or native CSSStyleSheet.\n *\n * In browsers that support constructible CSS style sheets, CSSStyleSheet\n * object can be used for styling along side CSSResult from the `css`\n * template tag.\n */\nexport type CSSResultOrNative = CSSResult | CSSStyleSheet;\n\nexport type CSSResultArray = Array;\n\n/**\n * A single CSSResult, CSSStyleSheet, or an array or nested arrays of those.\n */\nexport type CSSResultGroup = CSSResultOrNative | CSSResultArray;\n\nconst constructionToken = Symbol();\n\nconst styleSheetCache = new Map();\n\n/**\n * A container for a string of CSS text, that may be used to create a CSSStyleSheet.\n *\n * CSSResult is the return value of `css`-tagged template literals and\n * `unsafeCSS()`. In order to ensure that CSSResults are only created via the\n * `css` tag and `unsafeCSS()`, CSSResult cannot be constructed directly.\n */\nexport class CSSResult {\n // This property needs to remain unminified.\n ['_$cssResult$'] = true;\n readonly cssText: string;\n\n private constructor(cssText: string, safeToken: symbol) {\n if (safeToken !== constructionToken) {\n throw new Error(\n 'CSSResult is not constructable. Use `unsafeCSS` or `css` instead.'\n );\n }\n this.cssText = cssText;\n }\n\n // Note, this is a getter so that it's lazy. In practice, this means\n // stylesheets are not created until the first element instance is made.\n get styleSheet(): CSSStyleSheet | undefined {\n // Note, if `supportsAdoptingStyleSheets` is true then we assume\n // CSSStyleSheet is constructable.\n let styleSheet = styleSheetCache.get(this.cssText);\n if (supportsAdoptingStyleSheets && styleSheet === undefined) {\n styleSheetCache.set(this.cssText, (styleSheet = new CSSStyleSheet()));\n styleSheet.replaceSync(this.cssText);\n }\n return styleSheet;\n }\n\n toString(): string {\n return this.cssText;\n }\n}\n\ntype ConstructableCSSResult = CSSResult & {\n new (cssText: string, safeToken: symbol): CSSResult;\n};\n\nconst textFromCSSResult = (value: CSSResultGroup | number) => {\n // This property needs to remain unminified.\n if ((value as CSSResult)['_$cssResult$'] === true) {\n return (value as CSSResult).cssText;\n } else if (typeof value === 'number') {\n return value;\n } else {\n throw new Error(\n `Value passed to 'css' function must be a 'css' function result: ` +\n `${value}. Use 'unsafeCSS' to pass non-literal values, but take care ` +\n `to ensure page security.`\n );\n }\n};\n\n/**\n * Wrap a value for interpolation in a {@linkcode css} tagged template literal.\n *\n * This is unsafe because untrusted CSS text can be used to phone home\n * or exfiltrate data to an attacker controlled site. Take care to only use\n * this with trusted input.\n */\nexport const unsafeCSS = (value: unknown) =>\n new (CSSResult as ConstructableCSSResult)(\n typeof value === 'string' ? value : String(value),\n constructionToken\n );\n\n/**\n * A template literal tag which can be used with LitElement's\n * {@linkcode LitElement.styles} property to set element styles.\n *\n * For security reasons, only literal string values and number may be used in\n * embedded expressions. To incorporate non-literal values {@linkcode unsafeCSS}\n * may be used inside an expression.\n */\nexport const css = (\n strings: TemplateStringsArray,\n ...values: (CSSResultGroup | number)[]\n): CSSResult => {\n const cssText =\n strings.length === 1\n ? strings[0]\n : values.reduce(\n (acc, v, idx) => acc + textFromCSSResult(v) + strings[idx + 1],\n strings[0]\n );\n return new (CSSResult as ConstructableCSSResult)(cssText, constructionToken);\n};\n\n/**\n * Applies the given styles to a `shadowRoot`. When Shadow DOM is\n * available but `adoptedStyleSheets` is not, styles are appended to the\n * `shadowRoot` to [mimic spec behavior](https://wicg.github.io/construct-stylesheets/#using-constructed-stylesheets).\n * Note, when shimming is used, any styles that are subsequently placed into\n * the shadowRoot should be placed *before* any shimmed adopted styles. This\n * will match spec behavior that gives adopted sheets precedence over styles in\n * shadowRoot.\n */\nexport const adoptStyles = (\n renderRoot: ShadowRoot,\n styles: Array\n) => {\n if (supportsAdoptingStyleSheets) {\n (renderRoot as ShadowRoot).adoptedStyleSheets = styles.map((s) =>\n s instanceof CSSStyleSheet ? s : s.styleSheet!\n );\n } else {\n styles.forEach((s) => {\n const style = document.createElement('style');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const nonce = (window as any)['litNonce'];\n if (nonce !== undefined) {\n style.setAttribute('nonce', nonce);\n }\n style.textContent = (s as CSSResult).cssText;\n renderRoot.appendChild(style);\n });\n }\n};\n\nconst cssResultFromStyleSheet = (sheet: CSSStyleSheet) => {\n let cssText = '';\n for (const rule of sheet.cssRules) {\n cssText += rule.cssText;\n }\n return unsafeCSS(cssText);\n};\n\nexport const getCompatibleStyle = supportsAdoptingStyleSheets\n ? (s: CSSResultOrNative) => s\n : (s: CSSResultOrNative) =>\n s instanceof CSSStyleSheet ? cssResultFromStyleSheet(s) : s;\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/**\n * Use this module if you want to create your own base class extending\n * {@link ReactiveElement}.\n * @packageDocumentation\n */\n\nimport {\n getCompatibleStyle,\n adoptStyles,\n CSSResultGroup,\n CSSResultOrNative,\n} from './css-tag.js';\nimport type {\n ReactiveController,\n ReactiveControllerHost,\n} from './reactive-controller.js';\n\nexport * from './css-tag.js';\nexport type {\n ReactiveController,\n ReactiveControllerHost,\n} from './reactive-controller.js';\n\nconst DEV_MODE = true;\n\nlet requestUpdateThenable: (name: string) => {\n then: (\n onfulfilled?: (value: boolean) => void,\n _onrejected?: () => void\n ) => void;\n};\n\nlet issueWarning: (code: string, warning: string) => void;\n\nconst trustedTypes = (window as unknown as {trustedTypes?: {emptyScript: ''}})\n .trustedTypes;\n\n// Temporary workaround for https://crbug.com/993268\n// Currently, any attribute starting with \"on\" is considered to be a\n// TrustedScript source. Such boolean attributes must be set to the equivalent\n// trusted emptyScript value.\nconst emptyStringForBooleanAttribute = trustedTypes\n ? (trustedTypes.emptyScript as unknown as '')\n : '';\n\nconst polyfillSupport = DEV_MODE\n ? window.reactiveElementPolyfillSupportDevMode\n : window.reactiveElementPolyfillSupport;\n\nif (DEV_MODE) {\n // Ensure warnings are issued only 1x, even if multiple versions of Lit\n // are loaded.\n const issuedWarnings: Set =\n (globalThis.litIssuedWarnings ??= new Set());\n\n // Issue a warning, if we haven't already.\n issueWarning = (code: string, warning: string) => {\n warning += ` See https://lit.dev/msg/${code} for more information.`;\n if (!issuedWarnings.has(warning)) {\n console.warn(warning);\n issuedWarnings.add(warning);\n }\n };\n\n issueWarning(\n 'dev-mode',\n `Lit is in dev mode. Not recommended for production!`\n );\n\n // Issue polyfill support warning.\n if (window.ShadyDOM?.inUse && polyfillSupport === undefined) {\n issueWarning(\n 'polyfill-support-missing',\n `Shadow DOM is being polyfilled via \\`ShadyDOM\\` but ` +\n `the \\`polyfill-support\\` module has not been loaded.`\n );\n }\n\n requestUpdateThenable = (name) => ({\n then: (\n onfulfilled?: (value: boolean) => void,\n _onrejected?: () => void\n ) => {\n issueWarning(\n 'request-update-promise',\n `The \\`requestUpdate\\` method should no longer return a Promise but ` +\n `does so on \\`${name}\\`. Use \\`updateComplete\\` instead.`\n );\n if (onfulfilled !== undefined) {\n onfulfilled(false);\n }\n },\n });\n}\n\n/*\n * When using Closure Compiler, JSCompiler_renameProperty(property, object) is\n * replaced at compile time by the munged name for object[property]. We cannot\n * alias this function, so we have to use a small shim that has the same\n * behavior when not compiling.\n */\n/*@__INLINE__*/\nconst JSCompiler_renameProperty =

(\n prop: P,\n _obj: unknown\n): P => prop;\n\n/**\n * Converts property values to and from attribute values.\n */\nexport interface ComplexAttributeConverter {\n /**\n * Called to convert an attribute value to a property\n * value.\n */\n fromAttribute?(value: string | null, type?: TypeHint): Type;\n\n /**\n * Called to convert a property value to an attribute\n * value.\n *\n * It returns unknown instead of string, to be compatible with\n * https://github.com/WICG/trusted-types (and similar efforts).\n */\n toAttribute?(value: Type, type?: TypeHint): unknown;\n}\n\ntype AttributeConverter =\n | ComplexAttributeConverter\n | ((value: string | null, type?: TypeHint) => Type);\n\n/**\n * Defines options for a property accessor.\n */\nexport interface PropertyDeclaration {\n /**\n * When set to `true`, indicates the property is internal private state. The\n * property should not be set by users. When using TypeScript, this property\n * should be marked as `private` or `protected`, and it is also a common\n * practice to use a leading `_` in the name. The property is not added to\n * `observedAttributes`.\n */\n readonly state?: boolean;\n\n /**\n * Indicates how and whether the property becomes an observed attribute.\n * If the value is `false`, the property is not added to `observedAttributes`.\n * If true or absent, the lowercased property name is observed (e.g. `fooBar`\n * becomes `foobar`). If a string, the string value is observed (e.g\n * `attribute: 'foo-bar'`).\n */\n readonly attribute?: boolean | string;\n\n /**\n * Indicates the type of the property. This is used only as a hint for the\n * `converter` to determine how to convert the attribute\n * to/from a property.\n */\n readonly type?: TypeHint;\n\n /**\n * Indicates how to convert the attribute to/from a property. If this value\n * is a function, it is used to convert the attribute value a the property\n * value. If it's an object, it can have keys for `fromAttribute` and\n * `toAttribute`. If no `toAttribute` function is provided and\n * `reflect` is set to `true`, the property value is set directly to the\n * attribute. A default `converter` is used if none is provided; it supports\n * `Boolean`, `String`, `Number`, `Object`, and `Array`. Note,\n * when a property changes and the converter is used to update the attribute,\n * the property is never updated again as a result of the attribute changing,\n * and vice versa.\n */\n readonly converter?: AttributeConverter;\n\n /**\n * Indicates if the property should reflect to an attribute.\n * If `true`, when the property is set, the attribute is set using the\n * attribute name determined according to the rules for the `attribute`\n * property option and the value of the property converted using the rules\n * from the `converter` property option.\n */\n readonly reflect?: boolean;\n\n /**\n * A function that indicates if a property should be considered changed when\n * it is set. The function should take the `newValue` and `oldValue` and\n * return `true` if an update should be requested.\n */\n hasChanged?(value: Type, oldValue: Type): boolean;\n\n /**\n * Indicates whether an accessor will be created for this property. By\n * default, an accessor will be generated for this property that requests an\n * update when set. If this flag is `true`, no accessor will be created, and\n * it will be the user's responsibility to call\n * `this.requestUpdate(propertyName, oldValue)` to request an update when\n * the property changes.\n */\n readonly noAccessor?: boolean;\n}\n\n/**\n * Map of properties to PropertyDeclaration options. For each property an\n * accessor is made, and the property is processed according to the\n * PropertyDeclaration options.\n */\nexport interface PropertyDeclarations {\n readonly [key: string]: PropertyDeclaration;\n}\n\ntype PropertyDeclarationMap = Map;\n\ntype AttributeMap = Map;\n\n/**\n * Map of changed properties with old values. Takes an optional generic\n * interface corresponding to the declared element properties.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type PropertyValues = keyof T extends PropertyKey\n ? Map\n : never;\n\nexport const defaultConverter: ComplexAttributeConverter = {\n toAttribute(value: unknown, type?: unknown): unknown {\n switch (type) {\n case Boolean:\n value = value ? emptyStringForBooleanAttribute : null;\n break;\n case Object:\n case Array:\n // if the value is `null` or `undefined` pass this through\n // to allow removing/no change behavior.\n value = value == null ? value : JSON.stringify(value);\n break;\n }\n return value;\n },\n\n fromAttribute(value: string | null, type?: unknown) {\n let fromValue: unknown = value;\n switch (type) {\n case Boolean:\n fromValue = value !== null;\n break;\n case Number:\n fromValue = value === null ? null : Number(value);\n break;\n case Object:\n case Array:\n // Do *not* generate exception when invalid JSON is set as elements\n // don't normally complain on being mis-configured.\n // TODO(sorvell): Do generate exception in *dev mode*.\n try {\n // Assert to adhere to Bazel's \"must type assert JSON parse\" rule.\n fromValue = JSON.parse(value!) as unknown;\n } catch (e) {\n fromValue = null;\n }\n break;\n }\n return fromValue;\n },\n};\n\nexport interface HasChanged {\n (value: unknown, old: unknown): boolean;\n}\n\n/**\n * Change function that returns true if `value` is different from `oldValue`.\n * This method is used as the default for a property's `hasChanged` function.\n */\nexport const notEqual: HasChanged = (value: unknown, old: unknown): boolean => {\n // This ensures (old==NaN, value==NaN) always returns false\n return old !== value && (old === old || value === value);\n};\n\nconst defaultPropertyDeclaration: PropertyDeclaration = {\n attribute: true,\n type: String,\n converter: defaultConverter,\n reflect: false,\n hasChanged: notEqual,\n};\n\n/**\n * The Closure JS Compiler doesn't currently have good support for static\n * property semantics where \"this\" is dynamic (e.g.\n * https://github.com/google/closure-compiler/issues/3177 and others) so we use\n * this hack to bypass any rewriting by the compiler.\n */\nconst finalized = 'finalized';\n\n/**\n * A string representing one of the supported dev mode warning categories.\n */\nexport type WarningKind = 'change-in-update' | 'migration';\n\nexport type Initializer = (element: ReactiveElement) => void;\n\n/**\n * Base element class which manages element properties and attributes. When\n * properties change, the `update` method is asynchronously called. This method\n * should be supplied by subclassers to render updates as desired.\n * @noInheritDoc\n */\nexport abstract class ReactiveElement\n extends HTMLElement\n implements ReactiveControllerHost\n{\n // Note: these are patched in only in DEV_MODE.\n /**\n * Read or set all the enabled warning categories for this class.\n *\n * This property is only used in development builds.\n *\n * @nocollapse\n * @category dev-mode\n */\n static enabledWarnings?: WarningKind[];\n\n /**\n * Enable the given warning category for this class.\n *\n * This method only exists in development builds, so it should be accessed\n * with a guard like:\n *\n * ```ts\n * // Enable for all ReactiveElement subclasses\n * ReactiveElement.enableWarning.?('migration');\n *\n * // Enable for only MyElement and subclasses\n * MyElement.enableWarning.?('migration');\n * ```\n *\n * @nocollapse\n * @category dev-mode\n */\n static enableWarning?: (warningKind: WarningKind) => void;\n\n /**\n * Disable the given warning category for this class.\n *\n * This method only exists in development builds, so it should be accessed\n * with a guard like:\n *\n * ```ts\n * // Disable for all ReactiveElement subclasses\n * ReactiveElement.disableWarning.?('migration');\n *\n * // Disable for only MyElement and subclasses\n * MyElement.disableWarning.?('migration');\n * ```\n *\n * @nocollapse\n * @category dev-mode\n */\n static disableWarning?: (warningKind: WarningKind) => void;\n\n /**\n * Adds an initializer function to the class that is called during instance\n * construction.\n *\n * This is useful for code that runs against a `ReactiveElement`\n * subclass, such as a decorator, that needs to do work for each\n * instance, such as setting up a `ReactiveController`.\n *\n * ```ts\n * const myDecorator = (target: typeof ReactiveElement, key: string) => {\n * target.addInitializer((instance: ReactiveElement) => {\n * // This is run during construction of the element\n * new MyController(instance);\n * });\n * }\n * ```\n *\n * Decorating a field will then cause each instance to run an initializer\n * that adds a controller:\n *\n * ```ts\n * class MyElement extends LitElement {\n * @myDecorator foo;\n * }\n * ```\n *\n * Initializers are stored per-constructor. Adding an initializer to a\n * subclass does not add it to a superclass. Since initializers are run in\n * constructors, initializers will run in order of the class hierarchy,\n * starting with superclasses and progressing to the instance's class.\n *\n * @nocollapse\n */\n static addInitializer(initializer: Initializer) {\n this._initializers ??= [];\n this._initializers.push(initializer);\n }\n\n static _initializers?: Initializer[];\n\n /*\n * Due to closure compiler ES6 compilation bugs, @nocollapse is required on\n * all static methods and properties with initializers. Reference:\n * - https://github.com/google/closure-compiler/issues/1776\n */\n\n /**\n * Maps attribute names to properties; for example `foobar` attribute to\n * `fooBar` property. Created lazily on user subclasses when finalizing the\n * class.\n * @nocollapse\n */\n private static __attributeToPropertyMap: AttributeMap;\n\n /**\n * Marks class as having finished creating properties.\n */\n protected static [finalized] = true;\n\n /**\n * Memoized list of all element properties, including any superclass properties.\n * Created lazily on user subclasses when finalizing the class.\n * @nocollapse\n * @category properties\n */\n static elementProperties: PropertyDeclarationMap = new Map();\n\n /**\n * User-supplied object that maps property names to `PropertyDeclaration`\n * objects containing options for configuring reactive properties. When\n * a reactive property is set the element will update and render.\n *\n * By default properties are public fields, and as such, they should be\n * considered as primarily settable by element users, either via attribute or\n * the property itself.\n *\n * Generally, properties that are changed by the element should be private or\n * protected fields and should use the `state: true` option. Properties\n * marked as `state` do not reflect from the corresponding attribute\n *\n * However, sometimes element code does need to set a public property. This\n * should typically only be done in response to user interaction, and an event\n * should be fired informing the user; for example, a checkbox sets its\n * `checked` property when clicked and fires a `changed` event. Mutating\n * public properties should typically not be done for non-primitive (object or\n * array) properties. In other cases when an element needs to manage state, a\n * private property set with the `state: true` option should be used. When\n * needed, state properties can be initialized via public properties to\n * facilitate complex interactions.\n * @nocollapse\n * @category properties\n */\n static properties: PropertyDeclarations;\n\n /**\n * Memoized list of all element styles.\n * Created lazily on user subclasses when finalizing the class.\n * @nocollapse\n * @category styles\n */\n static elementStyles: Array = [];\n\n /**\n * Array of styles to apply to the element. The styles should be defined\n * using the {@linkcode css} tag function, via constructible stylesheets, or\n * imported from native CSS module scripts.\n *\n * Note on Content Security Policy:\n *\n * Element styles are implemented with `\n

\n ${map(this._feed.items, (item, index) => {\n if (this.maxItems > 0 && index >= this.maxItems) return;\n\n return html`\n \n ${this._published(item)}\n ${this._title(item)}\n ${this._description(item)}\n ${this._categories(item)}\n \n `})}\n
`;\n }\n}\n", "import {css, CSSResultGroup} from 'lit';\nimport {variable} from '../../utils/styles.css'\n\nconst defaultColumns = css`1`\nconst defaultMargin = css`0.5rem`\nconst defaultPadding = css`0.5rem`\nconst defaultGap = css`1rem`\n\nexport const styles = (): CSSResultGroup => {\n return css`\n :host {\n /* base styles */\n }\n\n *, :before, :after {\n border: 0 solid;\n box-sizing: border-box;\n }\n\n .slot {\n display: none;\n }\n\n .items {\n display: grid;\n row-gap: var(--grid-row-gap, ${defaultGap});\n column-gap: var(--grid-column-gap, ${defaultGap});\n grid-template-columns: repeat(var(--grid-columns, ${defaultColumns}), 1fr);\n }\n\n .item {\n display: block;\n height: 100%;\n overflow: hidden;\n border: var(--item-border, 1px solid #ccc);\n border-radius: var(--item-border-radius, 0.5rem);\n padding: var(--item-padding, ${defaultPadding});\n text-decoration: none;\n color: var(--text-color, inherit);\n }\n\n .categories {\n display: flex;\n flex-wrap: wrap;\n }\n\n .category {\n padding: calc(var(--item-padding, ${defaultPadding})/2) var(--item-padding, ${defaultPadding});\n margin-right: var(--item-margin, ${defaultMargin});\n margin-bottom: var(--item-margin, ${defaultMargin});\n background: var(--category-background-color, rgba(0, 0, 0, 0.25));\n border-radius: 9999px;\n }\n\n .loader {\n width: 120px; \n padding: 15px;\n background: var(--loader-color, black);\n\n aspect-ratio: 1;\n border-radius: 50%;\n -webkit-mask:\n conic-gradient(#0000,#000),\n linear-gradient(#000 0 0) content-box;\n mask:\n conic-gradient(#0000,#000),\n linear-gradient(#000 0 0) content-box;\n -webkit-mask-composite: source-out;\n mask-composite: subtract;\n box-sizing: border-box;\n animation:r 1s linear infinite;\n }\n\n @keyframes r {to{transform:rotate(1turn)}}\n `\n}\n\nexport const variables: variable[] = [\n {\n name: 'grid-columns',\n basedOn: 'columns',\n defaultValue: defaultColumns.toString(),\n },\n {\n name: 'grid-row-gap',\n basedOn: 'row-gap',\n defaultValue: defaultGap.toString(),\n },\n {\n name: 'grid-column-gap',\n basedOn: 'column-gap',\n defaultValue: defaultGap.toString(),\n },\n {\n name: 'item-padding',\n basedOn: 'padding',\n defaultValue: defaultPadding.toString(),\n },\n {\n name: 'item-margin',\n basedOn: 'margin',\n defaultValue: defaultMargin.toString(),\n },\n]\n", "// Contains converters specific to the RssEmbed element\n\nimport {ComplexAttributeConverter} from 'lit';\n\nexport type formatStyle = 'full' | 'long' | 'medium' | 'short' | undefined\n\nexport const FormatStyleConverter = (fallback: formatStyle): ComplexAttributeConverter => {\n return {\n fromAttribute: (value: string): formatStyle => {\n switch (value) {\n case 'full':\n case 'long':\n case 'medium':\n case 'short':\n return value\n case 'hidden':\n return undefined\n default:\n return fallback\n }\n }\n }\n}\n\nexport type target = '_self' | '_blank' | '_parent' | '_top'\n\nexport const TargetConverter = (fallback: target): ComplexAttributeConverter => {\n return {\n fromAttribute: (value: string): target => {\n switch (value) {\n case '_self':\n case '_blank':\n case '_parent':\n case '_top':\n return value\n default:\n return fallback\n }\n }\n }\n}\n\n\nexport type tag = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p'\n\nexport const TagConverter = (fallback: tag): ComplexAttributeConverter => {\n return {\n fromAttribute: (value: string): tag => {\n switch (value) {\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n case 'p':\n return value\n default:\n return fallback\n }\n }\n }\n}\n\n", "export const BooleanConverter = {\n fromAttribute: (value: string): boolean => {\n return value != 'false'\n }\n}\n\nexport const StringArrayConverter = {\n fromAttribute: (value: string): string[] => {\n return value.split(',')\n },\n toAttribute: (value: string[]): string => {\n return value.join(',')\n }\n}\n\nexport const NumberArrayConverter = {\n fromAttribute: (value: string): number[] => {\n return value.split(',').map(strVal => Number(strVal))\n },\n toAttribute: (value: number[]): string => {\n return value.join(',')\n }\n}\n", "/** Used to map HTML entities to characters. */\nconst htmlUnescapes: {[key: string]: string} = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\",\n ' ': '\\n',\n}\n\n/** Used to match HTML entities and HTML characters. */\nconst reEscapedHtml = /&(?:amp|lt|gt|quot|#(0+)?39|#(0+)?xA);/g\nconst reHasEscapedHtml = RegExp(reEscapedHtml.source)\n\n/**\n * The inverse of `escape`this method converts the HTML entities\n * `&`, `<`, `>`, `"` and `'` in `string` to\n * their corresponding characters.\n *\n * **Note:** No other HTML entities are unescaped. To unescape additional\n * HTML entities use a third-party library like [_he_](https://mths.be/he).\n *\n * @since 0.6.0\n * @category String\n * @param {string} [string=''] The string to unescape.\n * @returns {string} Returns the unescaped string.\n * @see escape, escapeRegExp\n * @example\n *\n * unescape('fred, barney, & pebbles')\n * // => 'fred, barney, & pebbles'\n */\nfunction unescape(input: string): string {\n return (input && reHasEscapedHtml.test(input))\n ? input.replace(reEscapedHtml, (entity) => (htmlUnescapes[entity] || \"'\"))\n : (input || '')\n}\n\nexport default unescape\n", "export interface variable { name: string, basedOn: string, defaultValue: string }\n\nexport function responsiveStyles (breakpoints: number[], variables: variable[]): string {\n if (!variables.length) return '';\n\n // remove breakpoints that are less than 1 and sort in ascending order\n breakpoints = breakpoints.filter(b => b > 0).sort((a, b) => a - b)\n breakpoints.unshift(0) // add the base breakpoint\n\n let hostVars: string = ''\n let mediaQueries: string = ''\n let prevBreakpoint: number = 0\n\n for (const breakpoint of breakpoints) {\n let mediaVars: string = ''\n\n for (const v of variables) {\n const fallback: string = !breakpoint\n ? v.defaultValue\n : prevBreakpoint \n ? `var(--${v.name}-${prevBreakpoint})`\n : `var(--${v.basedOn})`\n\n hostVars += breakpoint \n ? `\\n--${v.name}-${breakpoint}: var(--${v.basedOn}-${breakpoint}, ${fallback});`\n : `\\n--${v.name}: var(--${v.basedOn}, ${fallback});`\n\n mediaVars += `\\n--${v.name}: var(--${v.name}-${breakpoint});`\n }\n\n if (breakpoint) {\n mediaQueries += `@media screen and (min-width: ${breakpoint}px) {\n :host {\n ${mediaVars.trim()}\n }\n }`\n }\n\n // set the prevBreakpoint to last used\n prevBreakpoint = breakpoint\n }\n\n return `\n :host {\n ${hostVars.trim()}\n }\n\n ${mediaQueries}`\n}\n", "import { RssEmbed } from './RssEmbed'\nexport default RssEmbed\n"], "mappings": "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", "names": [] }