{"version":3,"sources":["webpack:///./node_modules/@github/webauthn-json/dist/main/webauthn-json.js","webpack:///app/javascript/opt/mastodon/app/javascript/core/two_factor_authentication.js","webpack:///./node_modules/escape-html/index.js","webpack:///app/javascript/opt/mastodon/app/javascript/mastodon/features/emoji/emoji_compressed.js","webpack:///app/javascript/opt/mastodon/app/javascript/mastodon/initial_state.js","webpack:///app/javascript/opt/mastodon/app/javascript/mastodon/features/emoji/unicode_to_filename.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/form-data/lib/browser.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///app/javascript/opt/mastodon/app/javascript/packs/public-path.js","webpack:///app/javascript/opt/mastodon/app/javascript/mastodon/ready.js","webpack:///app/javascript/opt/mastodon/app/javascript/mastodon/features/emoji/emoji_unicode_mapping_light.js","webpack:///./node_modules/substring-trie/index.js","webpack:///app/javascript/opt/mastodon/app/javascript/mastodon/features/emoji/emoji.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///app/javascript/opt/mastodon/app/javascript/mastodon/utils/config.js","webpack:///./node_modules/axios/lib/core/AxiosError.js","webpack:///./node_modules/axios/lib/env/classes/FormData.js","webpack:///./node_modules/axios/lib/helpers/toFormData.js","webpack:///./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/axios/lib/defaults/transitional.js","webpack:///./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack:///./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack:///./node_modules/axios/lib/platform/browser/index.js","webpack:///./node_modules/axios/lib/helpers/formDataToJSON.js","webpack:///./node_modules/axios/lib/defaults/index.js","webpack:///./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/core/AxiosHeaders.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/cancel/CanceledError.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/axios/lib/helpers/speedometer.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/axios/lib/adapters/adapters.js","webpack:///./node_modules/axios/lib/helpers/null.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/axios/lib/helpers/parseProtocol.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/axios/lib/env/data.js","webpack:///./node_modules/axios/lib/helpers/validator.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/axios/lib/helpers/isAxiosError.js","webpack:///app/javascript/opt/mastodon/app/javascript/core/settings.js","webpack:///./node_modules/regenerator-runtime/runtime.js"],"names":["e","t","slice","length","n","replace","r","atob","o","ArrayBuffer","c","Uint8Array","charCodeAt","String","fromCharCode","btoa","Array","map","Object","i","entries","schema","required","Error","type","id","transports","appid","appidExclude","credProps","a","s","publicKey","rp","user","name","displayName","challenge","pubKeyCredParams","timeout","excludeCredentials","authenticatorSelection","attestation","extensions","signal","p","rawId","response","clientDataJSON","attestationObject","clientExtensionResults","l","mediation","rpId","allowCredentials","userVerification","u","authenticatorData","signature","userHandle","hideFlashMessages","from","document","getElementsByClassName","forEach","flashMessage","classList","add","callback","url","body","CSRFSelector","axios","post","JSON","stringify","headers","querySelector","getAttribute","credentials","then","window","location","data","redirect_path","catch","error","status","getElementById","remove","console","ready","navigator","create","get","PublicKeyCredential","unsupported_browser_message","disabled","webAuthnCredentialRegistrationForm","addEventListener","event","preventDefault","nickname","target","value","async","getClientExtensionResults","WebAuthnJSON","credential","focus","webAuthnCredentialAuthenticationForm","otpAuthenticationForm","matchHtmlRegExp","module","exports","string","escape","str","match","exec","html","index","lastIndex","substring","element","initialState","textContent","parse","getMeta","prop","meta","autoPlayGif","boostModal","cropImages","deleteModal","disableSwiping","disabledAccountId","displayMedia","domain","expandSpoilers","forceSingleColumn","mascot","me","movedToAccountId","owner","profile_directory","reduceMotion","registrationsOpen","searchEnabled","showTrends","singleUserMode","source_url","timelinePreview","title","unfollowModal","useBlurhash","usePendingItems","version","translationEnabled","languages","maxChars","max_toot_chars","unicodeToFilename","result","charCode","toString","bind","fn","thisArg","apply","arguments","g","this","Function","self","FormData","Rails","linkClickSelector","buttonClickSelector","selector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","call","nonce","loadCSPNonce","ref","content","cspNonce","m","Element","prototype","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","getData","key","setData","$","querySelectorAll","csrfParam","csrfToken","CSRFProtection","xhr","token","setRequestHeader","refreshCSRFTokens","param","input","CustomEvent","fire","params","evt","createEvent","initCustomEvent","bubbles","cancelable","detail","Event","defaultPrevented","defineProperty","obj","dispatchEvent","stopEverything","stopPropagation","stopImmediatePropagation","delegate","eventType","handler","parentNode","AcceptHeaders","createXHR","prepareOptions","processResponse","text","xml","json","script","ajax","options","responseText","getResponseHeader","Math","floor","success","statusText","complete","beforeSend","readyState","XMLHttpRequest","OPENED","send","href","toUpperCase","indexOf","dataType","accept","done","open","crossDomain","withCredentials","onreadystatechange","DONE","parser","createElement","setAttribute","head","appendChild","removeChild","DOMParser","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","host","toArray","serializeElement","additionalParam","inputs","elements","option","selected","push","checked","encodeURIComponent","join","formElements","form","filter","el","allowAction","handleConfirm","confirm","message","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","innerHTML","originalText","removeEventListener","handleMethod","formContent","link","method","action","style","display","click","isRemote","handleRemote","button","enctype","append","args","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","ajaxPrefilter","originalOptions","start","_rails_loaded","setTimeout","removeOuterSlashes","cdnHost","__webpack_public_path__","path","formattedHost","test","formatPublicPath","process","Promise","resolve","reject","loaded","err","includes","shortCodesToEmojiData","skins","categories","short_names","emojisWithoutShortCodes","require","unicodeMapping","processEmojiMapData","emojiMapData","shortCode","native","filename","keys","filenameData","MiniTrie","words","_dict","len","word","dict","j","len2","char","charAt","search","stack","pop","trie","Trie","emojiFilenames","emojis","v","darkEmoji","lightEmoji","emojiFilename","contains","emojifyTextNode","node","customEmojis","fragment","DocumentFragment","codePointAt","rend","shortname","static_url","assetHost","createTextNode","parentElement","replaceChild","emojifyNode","child","childNodes","nodeType","Node","TEXT_NODE","ELEMENT_NODE","emojify","wrapper","buildCustomEmojis","emoji","shortcode","emoticons","keywords","imageUrl","custom","customCategory","categoriesFromEmojis","reduce","set","Set","getPrototypeOf","kindOf","cache","thing","toLowerCase","kindOfTest","typeOfTest","isArray","isUndefined","isArrayBuffer","isString","isFunction","isNumber","isObject","isPlainObject","val","Symbol","toStringTag","iterator","isDate","isFile","isBlob","isFileList","isURLSearchParams","_temp","allOwnKeys","getOwnPropertyNames","findKey","_key","_global","global","isContextDefined","context","isTypedArray","TypedArray","isHTMLForm","hasOwnProperty","_ref","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","defineProperties","isBuffer","constructor","isFormData","pattern","isArrayBufferView","isView","buffer","isBoolean","isStream","pipe","merge","caseless","assignValue","targetKey","extend","b","_temp2","trim","stripBOM","inherits","superConstructor","props","assign","toFlatObject","sourceObj","destObj","propFilter","merged","endsWith","searchString","position","undefined","arr","forEachEntry","next","pair","matchAll","regExp","hasOwnProp","freezeMethods","enumerable","writable","toObjectSet","arrayOrString","delimiter","define","split","toCamelCase","p1","p2","noop","toFiniteNumber","defaultValue","Number","isFinite","toJSONObject","visit","source","reducedValue","AxiosError","code","config","request","captureStackTrace","utils","toJSON","description","number","fileName","lineNumber","columnNumber","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","dots","concat","predicates","formData","TypeError","metaTokens","indexes","visitor","defaultVisitor","useBlob","Blob","convertValue","toISOString","Buffer","some","isFlatArray","exposedHelpers","build","encode","charMap","AxiosURLSearchParams","_pairs","encoder","_encode","buildURL","serializeFn","serialize","serializedParams","hashmarkIndex","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","clear","h","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","isStandardBrowserEnv","product","isStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","isBrowser","classes","URLSearchParams","protocols","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","DEFAULT_CONTENT_TYPE","defaults","transitional","adapter","transformRequest","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","ignoreDuplicateOf","$internals","normalizeHeader","header","normalizeValue","matchHeaderValue","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","line","parseHeaders","tokens","tokensRE","parseTokens","has","matcher","delete","deleted","deleteHeader","normalize","format","normalized","w","formatHeader","_len","targets","asStrings","static","first","computed","_len2","_key2","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","configurable","buildAccessors","accessor","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","write","expires","secure","cookie","Date","toGMTString","read","RegExp","decodeURIComponent","now","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","msie","userAgent","urlParsingNode","originURL","resolveURL","hash","hostname","port","pathname","requestURL","samplesCount","min","bytes","timestamps","firstSampleTS","tail","chunkLength","startedAt","bytesCount","passed","round","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","total","lengthComputable","progressBytes","rate","progress","estimated","knownAdapters","http","requestData","requestHeaders","onCanceled","cancelToken","unsubscribe","auth","username","password","unescape","fullPath","onloadend","responseHeaders","getAllResponseHeaders","ERR_BAD_REQUEST","settle","paramsSerializer","responseURL","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","xsrfValue","cookies","onDownloadProgress","onUploadProgress","upload","cancel","abort","subscribe","aborted","parseProtocol","adapters","nameOrAdapter","throwIfCancellationRequested","throwIfRequested","dispatchRequest","reason","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","beforeRedirect","transport","httpAgent","httpsAgent","socketPath","responseEncoding","configValue","VERSION","validators","deprecatedWarnings","validator","formatMessage","opt","desc","opts","ERR_DEPRECATED","warn","assertOptions","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","instanceConfig","interceptors","configOrUrl","contextHeaders","boolean","function","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","responseInterceptorChain","promise","chain","newConfig","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","executor","resolvePromise","_listeners","onfulfilled","_resolve","splice","createInstance","defaultConfig","instance","Axios","CancelToken","toFormData","Cancel","all","promises","spread","isAxiosError","payload","AxiosHeaders","formToJSON","default","escapeTextContentForBrowser","dataset","avatar","file","files","URL","createObjectURL","originalSrc","src","lock","hidden","select","setSelectionRange","oldReadOnly","readonly","execCommand","blur","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","makeInvokeMethod","tryCatch","arg","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","values","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","invoke","record","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","state","doneResult","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","iter","object","reverse","skipTempReset","prev","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis"],"mappings":"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","file":"js/core/auth-61bef45ac8b7fa9916e1.chunk.js","sourcesContent":["function e(e) {\n const t = \"==\".slice(0, (4 - e.length % 4) % 4),\n n = e.replace(/-/g, \"+\").replace(/_/g, \"/\") + t,\n r = atob(n),\n o = new ArrayBuffer(r.length),\n c = new Uint8Array(o);\n for (let e = 0; e < r.length; e++) c[e] = r.charCodeAt(e);\n return o;\n}\nfunction t(e) {\n const t = new Uint8Array(e);\n let n = \"\";\n for (const e of t) n += String.fromCharCode(e);\n return btoa(n).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\");\n}\nfunction n(e, t, r) {\n if (\"copy\" === t) return r;\n if (\"convert\" === t) return e(r);\n if (t instanceof Array) return r.map(r => n(e, t[0], r));\n if (t instanceof Object) {\n const o = {};\n for (const [c, i] of Object.entries(t)) if (c in r) null != r[c] ? o[c] = n(e, i.schema, r[c]) : o[c] = null;else if (i.required) throw new Error(\"Missing key: \" + c);\n return o;\n }\n}\nfunction r(e) {\n return {\n required: !0,\n schema: e\n };\n}\nfunction o(e) {\n return {\n required: !1,\n schema: e\n };\n}\nconst c = {\n type: r(\"copy\"),\n id: r(\"convert\"),\n transports: o(\"copy\")\n },\n i = {\n appid: o(\"copy\"),\n appidExclude: o(\"copy\"),\n credProps: o(\"copy\")\n },\n a = {\n appid: o(\"copy\"),\n appidExclude: o(\"copy\"),\n credProps: o(\"copy\")\n },\n s = {\n publicKey: r({\n rp: r(\"copy\"),\n user: r({\n id: r(\"convert\"),\n name: r(\"copy\"),\n displayName: r(\"copy\")\n }),\n challenge: r(\"convert\"),\n pubKeyCredParams: r(\"copy\"),\n timeout: o(\"copy\"),\n excludeCredentials: o([c]),\n authenticatorSelection: o(\"copy\"),\n attestation: o(\"copy\"),\n extensions: o(i)\n }),\n signal: o(\"copy\")\n },\n p = {\n type: r(\"copy\"),\n id: r(\"copy\"),\n rawId: r(\"convert\"),\n response: r({\n clientDataJSON: r(\"convert\"),\n attestationObject: r(\"convert\")\n }),\n clientExtensionResults: r(a)\n },\n l = {\n mediation: o(\"copy\"),\n publicKey: r({\n challenge: r(\"convert\"),\n timeout: o(\"copy\"),\n rpId: o(\"copy\"),\n allowCredentials: o([c]),\n userVerification: o(\"copy\"),\n extensions: o(i)\n }),\n signal: o(\"copy\")\n },\n u = {\n type: r(\"copy\"),\n id: r(\"copy\"),\n rawId: r(\"convert\"),\n response: r({\n clientDataJSON: r(\"convert\"),\n authenticatorData: r(\"convert\"),\n signature: r(\"convert\"),\n userHandle: r(\"convert\")\n }),\n clientExtensionResults: r(a)\n };\nexport const schema = {\n credentialCreationOptions: s,\n publicKeyCredentialWithAttestation: p,\n credentialRequestOptions: l,\n publicKeyCredentialWithAssertion: u\n};\nexport async function create(r) {\n return function (e) {\n const r = e;\n return r.clientExtensionResults = e.getClientExtensionResults(), n(t, p, r);\n }(await navigator.credentials.create(function (t) {\n return n(e, s, t);\n }(r)));\n}\nexport async function get(r) {\n return function (e) {\n const r = e;\n return r.clientExtensionResults = e.getClientExtensionResults(), n(t, u, r);\n }(await navigator.credentials.get(function (t) {\n return n(e, l, t);\n }(r)));\n}\nexport function supported() {\n return !!(navigator.credentials && navigator.credentials.create && navigator.credentials.get && window.PublicKeyCredential);\n}","import 'packs/public-path';\nimport axios from 'axios';\nimport * as WebAuthnJSON from '@github/webauthn-json';\nimport ready from '../mastodon/ready';\nimport 'regenerator-runtime/runtime';\n\nfunction getCSRFToken() {\n var CSRFSelector = document.querySelector('meta[name=\"csrf-token\"]');\n if (CSRFSelector) {\n return CSRFSelector.getAttribute('content');\n } else {\n return null;\n }\n}\n\nfunction hideFlashMessages() {\n Array.from(document.getElementsByClassName('flash-message')).forEach(function(flashMessage) {\n flashMessage.classList.add('hidden');\n });\n}\n\nfunction callback(url, body) {\n axios.post(url, JSON.stringify(body), {\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'X-CSRF-Token': getCSRFToken(),\n },\n credentials: 'same-origin',\n }).then(function(response) {\n window.location.replace(response.data.redirect_path);\n }).catch(function(error) {\n if (error.response.status === 422) {\n const errorMessage = document.getElementById('security-key-error-message');\n errorMessage.classList.remove('hidden');\n console.error(error.response.data.error);\n } else {\n console.error(error);\n }\n });\n}\n\nready(() => {\n if (!WebAuthnJSON.supported()) {\n const unsupported_browser_message = document.getElementById('unsupported-browser-message');\n if (unsupported_browser_message) {\n unsupported_browser_message.classList.remove('hidden');\n document.querySelector('.btn.js-webauthn').disabled = true;\n }\n }\n\n\n const webAuthnCredentialRegistrationForm = document.getElementById('new_webauthn_credential');\n if (webAuthnCredentialRegistrationForm) {\n webAuthnCredentialRegistrationForm.addEventListener('submit', (event) => {\n event.preventDefault();\n\n var nickname = event.target.querySelector('input[name=\"new_webauthn_credential[nickname]\"]');\n if (nickname.value) {\n axios.get('/settings/security_keys/options')\n .then((response) => {\n const credentialOptions = response.data;\n\n WebAuthnJSON.create({ 'publicKey': credentialOptions }).then((credential) => {\n var params = { 'credential': credential, 'nickname': nickname.value };\n callback('/settings/security_keys', params);\n }).catch((error) => {\n const errorMessage = document.getElementById('security-key-error-message');\n errorMessage.classList.remove('hidden');\n console.error(error);\n });\n }).catch((error) => {\n console.error(error.response.data.error);\n });\n } else {\n nickname.focus();\n }\n });\n }\n\n const webAuthnCredentialAuthenticationForm = document.getElementById('webauthn-form');\n if (webAuthnCredentialAuthenticationForm) {\n webAuthnCredentialAuthenticationForm.addEventListener('submit', (event) => {\n event.preventDefault();\n\n axios.get('sessions/security_key_options')\n .then((response) => {\n const credentialOptions = response.data;\n\n WebAuthnJSON.get({ 'publicKey': credentialOptions }).then((credential) => {\n var params = { 'user': { 'credential': credential } };\n callback('sign_in', params);\n }).catch((error) => {\n const errorMessage = document.getElementById('security-key-error-message');\n errorMessage.classList.remove('hidden');\n console.error(error);\n });\n }).catch((error) => {\n console.error(error.response.data.error);\n });\n });\n\n const otpAuthenticationForm = document.getElementById('otp-authentication-form');\n\n const linkToOtp = document.getElementById('link-to-otp');\n linkToOtp.addEventListener('click', () => {\n webAuthnCredentialAuthenticationForm.classList.add('hidden');\n otpAuthenticationForm.classList.remove('hidden');\n hideFlashMessages();\n });\n\n const linkToWebAuthn = document.getElementById('link-to-webauthn');\n linkToWebAuthn.addEventListener('click', () => {\n otpAuthenticationForm.classList.add('hidden');\n webAuthnCredentialAuthenticationForm.classList.remove('hidden');\n hideFlashMessages();\n });\n }\n});\n","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n if (!match) {\n return str;\n }\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n // \"\n escape = '"';\n break;\n case 38:\n // &\n escape = '&';\n break;\n case 39:\n // '\n escape = ''';\n break;\n case 60:\n // <\n escape = '<';\n break;\n case 62:\n // >\n escape = '>';\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escape;\n }\n return lastIndex !== index ? html + str.substring(lastIndex, index) : html;\n}","// @preval\n// http://www.unicode.org/Public/emoji/5.0/emoji-test.txt\n// This file contains the compressed version of the emoji data from\n// both emoji_map.json and from emoji-mart's emojiIndex and data objects.\n// It's designed to be emitted in an array format to take up less space\n// over the wire.\n\nconst { unicodeToFilename } = require('./unicode_to_filename');\nconst { unicodeToUnifiedName } = require('./unicode_to_unified_name');\nconst emojiMap = require('./emoji_map.json');\nconst { emojiIndex } = require('emoji-mart');\nconst { uncompress: emojiMartUncompress } = require('emoji-mart/dist/utils/data');\n\nlet data = require('emoji-mart/data/all.json');\n\nif(data.compressed) {\n data = emojiMartUncompress(data);\n}\n\nconst emojiMartData = data;\n\nconst excluded = ['®', '©', '™'];\nconst skinTones = ['🏻', '🏼', '🏽', '🏾', '🏿'];\nconst shortcodeMap = {};\n\nconst shortCodesToEmojiData = {};\nconst emojisWithoutShortCodes = [];\n\nObject.keys(emojiIndex.emojis).forEach(key => {\n let emoji = emojiIndex.emojis[key];\n\n // Emojis with skin tone modifiers are stored like this\n if (Object.prototype.hasOwnProperty.call(emoji, '1')) {\n emoji = emoji['1'];\n }\n\n shortcodeMap[emoji.native] = emoji.id;\n});\n\nconst stripModifiers = unicode => {\n skinTones.forEach(tone => {\n unicode = unicode.replace(tone, '');\n });\n\n return unicode;\n};\n\nObject.keys(emojiMap).forEach(key => {\n if (excluded.includes(key)) {\n delete emojiMap[key];\n return;\n }\n\n const normalizedKey = stripModifiers(key);\n let shortcode = shortcodeMap[normalizedKey];\n\n if (!shortcode) {\n shortcode = shortcodeMap[normalizedKey + '\\uFE0F'];\n }\n\n const filename = emojiMap[key];\n\n const filenameData = [key];\n\n if (unicodeToFilename(key) !== filename) {\n // filename can't be derived using unicodeToFilename\n filenameData.push(filename);\n }\n\n if (typeof shortcode === 'undefined') {\n emojisWithoutShortCodes.push(filenameData);\n } else {\n if (!Array.isArray(shortCodesToEmojiData[shortcode])) {\n shortCodesToEmojiData[shortcode] = [[]];\n }\n\n shortCodesToEmojiData[shortcode][0].push(filenameData);\n }\n});\n\nObject.keys(emojiIndex.emojis).forEach(key => {\n let emoji = emojiIndex.emojis[key];\n\n // Emojis with skin tone modifiers are stored like this\n if (Object.prototype.hasOwnProperty.call(emoji, '1')) {\n emoji = emoji['1'];\n }\n\n const { native } = emoji;\n let { short_names, search, unified } = emojiMartData.emojis[key];\n\n if (short_names[0] !== key) {\n throw new Error('The compressor expects the first short_code to be the ' +\n 'key. It may need to be rewritten if the emoji change such that this ' +\n 'is no longer the case.');\n }\n\n short_names = short_names.slice(1); // first short name can be inferred from the key\n\n const searchData = [native, short_names, search];\n\n if (unicodeToUnifiedName(native) !== unified) {\n // unified name can't be derived from unicodeToUnifiedName\n searchData.push(unified);\n }\n\n if (!Array.isArray(shortCodesToEmojiData[key])) {\n shortCodesToEmojiData[key] = [[]];\n }\n\n shortCodesToEmojiData[key].push(searchData);\n});\n\n// JSON.parse/stringify is to emulate what @preval is doing and avoid any\n// inconsistent behavior in dev mode\nmodule.exports = JSON.parse(JSON.stringify([\n shortCodesToEmojiData,\n emojiMartData.skins,\n emojiMartData.categories,\n emojiMartData.aliases,\n emojisWithoutShortCodes,\n]));\n","// @ts-check\n\n/**\n * @typedef Emoji\n * @property {string} shortcode\n * @property {string} static_url\n * @property {string} url\n */\n\n/**\n * @typedef AccountField\n * @property {string} name\n * @property {string} value\n * @property {string} verified_at\n */\n\n/**\n * @typedef Account\n * @property {string} acct\n * @property {string} avatar\n * @property {string} avatar_static\n * @property {boolean} bot\n * @property {string} created_at\n * @property {boolean=} discoverable\n * @property {string} display_name\n * @property {Emoji[]} emojis\n * @property {AccountField[]} fields\n * @property {number} followers_count\n * @property {number} following_count\n * @property {boolean} group\n * @property {string} header\n * @property {string} header_static\n * @property {string} id\n * @property {string=} last_status_at\n * @property {boolean} locked\n * @property {string} note\n * @property {number} statuses_count\n * @property {string} url\n * @property {string} username\n */\n\n/**\n * @typedef {[code: string, name: string, localName: string]} InitialStateLanguage\n */\n\n/**\n * @typedef InitialStateMeta\n * @property {string} access_token\n * @property {boolean=} advanced_layout\n * @property {boolean} auto_play_gif\n * @property {boolean} activity_api_enabled\n * @property {string} admin\n * @property {boolean=} boost_modal\n * @property {boolean} crop_images\n * @property {boolean=} delete_modal\n * @property {boolean=} disable_swiping\n * @property {string=} disabled_account_id\n * @property {boolean} display_media\n * @property {string} domain\n * @property {boolean=} expand_spoilers\n * @property {boolean} limited_federation_mode\n * @property {string} locale\n * @property {string | null} mascot\n * @property {string=} me\n * @property {string=} moved_to_account_id\n * @property {string=} owner\n * @property {boolean} profile_directory\n * @property {boolean} registrations_open\n * @property {boolean} reduce_motion\n * @property {string} repository\n * @property {boolean} search_enabled\n * @property {boolean} single_user_mode\n * @property {string} source_url\n * @property {string} streaming_api_base_url\n * @property {boolean} timeline_preview\n * @property {string} title\n * @property {boolean} trends\n * @property {boolean} unfollow_modal\n * @property {boolean} use_blurhash\n * @property {boolean=} use_pending_items\n * @property {string} version\n * @property {boolean} translation_enabled\n */\n\n/**\n * @typedef InitialState\n * @property {Record} accounts\n * @property {InitialStateLanguage[]} languages\n * @property {InitialStateMeta} meta\n */\n\nconst element = document.getElementById('initial-state');\n/** @type {InitialState | undefined} */\nconst initialState = element?.textContent && JSON.parse(element.textContent);\n\n/**\n * @template {keyof InitialStateMeta} K\n * @param {K} prop\n * @returns {InitialStateMeta[K] | undefined}\n */\nconst getMeta = (prop) => initialState?.meta && initialState.meta[prop];\n\nexport const activityApiEnabled = getMeta('activity_api_enabled');\nexport const autoPlayGif = getMeta('auto_play_gif');\nexport const boostModal = getMeta('boost_modal');\nexport const cropImages = getMeta('crop_images');\nexport const deleteModal = getMeta('delete_modal');\nexport const disableSwiping = getMeta('disable_swiping');\nexport const disabledAccountId = getMeta('disabled_account_id');\nexport const displayMedia = getMeta('display_media');\nexport const domain = getMeta('domain');\nexport const expandSpoilers = getMeta('expand_spoilers');\nexport const forceSingleColumn = !getMeta('advanced_layout');\nexport const limitedFederationMode = getMeta('limited_federation_mode');\nexport const mascot = getMeta('mascot');\nexport const me = getMeta('me');\nexport const movedToAccountId = getMeta('moved_to_account_id');\nexport const owner = getMeta('owner');\nexport const profile_directory = getMeta('profile_directory');\nexport const reduceMotion = getMeta('reduce_motion');\nexport const registrationsOpen = getMeta('registrations_open');\nexport const repository = getMeta('repository');\nexport const searchEnabled = getMeta('search_enabled');\nexport const showTrends = getMeta('trends');\nexport const singleUserMode = getMeta('single_user_mode');\nexport const source_url = getMeta('source_url');\nexport const timelinePreview = getMeta('timeline_preview');\nexport const title = getMeta('title');\nexport const unfollowModal = getMeta('unfollow_modal');\nexport const useBlurhash = getMeta('use_blurhash');\nexport const usePendingItems = getMeta('use_pending_items');\nexport const version = getMeta('version');\nexport const translationEnabled = getMeta('translation_enabled');\nexport const languages = initialState?.languages;\n\n// Glitch-soc-specific settings\nexport const maxChars = (initialState && initialState.max_toot_chars) || 500;\n\nexport default initialState;\n","// taken from:\n// https://github.com/twitter/twemoji/blob/47732c7/twemoji-generator.js#L848-L866\nexports.unicodeToFilename = (str) => {\n let result = '';\n let charCode = 0;\n let p = 0;\n let i = 0;\n while (i < str.length) {\n charCode = str.charCodeAt(i++);\n if (p) {\n if (result.length > 0) {\n result += '-';\n }\n result += (0x10000 + ((p - 0xD800) << 10) + (charCode - 0xDC00)).toString(16);\n p = 0;\n } else if (0xD800 <= charCode && charCode <= 0xDBFF) {\n p = charCode;\n } else {\n if (result.length > 0) {\n result += '-';\n }\n result += charCode.toString(16);\n }\n }\n return result;\n};\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}","var g;\n\n// This works in non-strict mode\ng = function () {\n return this;\n}();\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;","/* eslint-env browser */\nmodule.exports = typeof self == 'object' ? self.FormData : window.FormData;","/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form:not([data-turbo=true])',\n formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n expando = '_ujsData';\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n return element[expando][key] = value;\n };\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function (event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function () {\n return true;\n }\n });\n }\n return result;\n };\n }\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n prepareOptions = function (options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n options.accept = AcceptHeaders[options.dataType];\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n return options;\n };\n createXHR = function (options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n xhr.withCredentials = !!options.withCredentials;\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n return xhr;\n };\n processResponse = function (response, type) {\n var parser, script;\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n return response;\n };\n Rails.href = function (element) {\n return element.href;\n };\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n toArray = function (e) {\n return Array.prototype.slice.call(e);\n };\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n if (additionalParam) {\n params.push(additionalParam);\n }\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n allowAction = function (element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n if (!message) {\n return true;\n }\n answer = false;\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n callback = fire(element, 'confirm:complete', [answer]);\n }\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n Rails.enableElement = function (e) {\n var element;\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n element = e.target;\n } else {\n element = e;\n }\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n disableLinkElement = function (element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n enableLinkElement = function (element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n disableFormElements = function (form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n disableFormElement = function (element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n enableFormElements = function (form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n enableFormElement = function (element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n setData(element, 'ujs:enable-with', null);\n }\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n isXhrRedirect = function (event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n if (!method) {\n return;\n }\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n isRemote = function (element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n if (!isRemote(element)) {\n return true;\n }\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function (xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n if (!form) {\n return;\n }\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n if (typeof module === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","// Dynamically set webpack's loading path depending on a meta header, in order\n// to share the same assets regardless of instance configuration.\n// See https://webpack.js.org/guides/public-path/#on-the-fly\n\nfunction removeOuterSlashes(string) {\n return string.replace(/^\\/*/, '').replace(/\\/*$/, '');\n}\n\nfunction formatPublicPath(host = '', path = '') {\n let formattedHost = removeOuterSlashes(host);\n if (formattedHost && !/^http/i.test(formattedHost)) {\n formattedHost = `//${formattedHost}`;\n }\n const formattedPath = removeOuterSlashes(path);\n return `${formattedHost}/${formattedPath}/`;\n}\n\nconst cdnHost = document.querySelector('meta[name=cdn-host]');\n\n// eslint-disable-next-line camelcase, no-undef, no-unused-vars\n__webpack_public_path__ = formatPublicPath(cdnHost ? cdnHost.content : '', process.env.PUBLIC_OUTPUT_PATH);\n","// @ts-check\n\n/**\n * @param {(() => void) | (() => Promise)} callback\n * @returns {Promise}\n */\nexport default function ready(callback) {\n return new Promise((resolve, reject) => {\n function loaded() {\n let result;\n try {\n result = callback();\n } catch (err) {\n reject(err);\n\n return;\n }\n\n if (typeof result?.then === 'function') {\n result.then(resolve).catch(reject);\n } else {\n resolve();\n }\n }\n\n if (['interactive', 'complete'].includes(document.readyState)) {\n loaded();\n } else {\n document.addEventListener('DOMContentLoaded', loaded);\n }\n });\n}\n","// A mapping of unicode strings to an object containing the filename\n// (i.e. the svg filename) and a shortCode intended to be shown\n// as a \"title\" attribute in an HTML element (aka tooltip).\n\nconst [\n shortCodesToEmojiData,\n skins, // eslint-disable-line no-unused-vars\n categories, // eslint-disable-line no-unused-vars\n short_names, // eslint-disable-line no-unused-vars\n emojisWithoutShortCodes,\n] = require('./emoji_compressed');\nconst { unicodeToFilename } = require('./unicode_to_filename');\n\n// decompress\nconst unicodeMapping = {};\n\nfunction processEmojiMapData(emojiMapData, shortCode) {\n let [ native, filename ] = emojiMapData;\n if (!filename) {\n // filename name can be derived from unicodeToFilename\n filename = unicodeToFilename(native);\n }\n unicodeMapping[native] = {\n shortCode: shortCode,\n filename: filename,\n };\n}\n\nObject.keys(shortCodesToEmojiData).forEach((shortCode) => {\n let [ filenameData ] = shortCodesToEmojiData[shortCode];\n filenameData.forEach(emojiMapData => processEmojiMapData(emojiMapData, shortCode));\n});\nemojisWithoutShortCodes.forEach(emojiMapData => processEmojiMapData(emojiMapData));\n\nmodule.exports = unicodeMapping;\n","'use strict';\n\nvar CODA_MARKER = '$$'; // marks the end of the string\n\nfunction MiniTrie(words) {\n this._dict = {};\n for (var i = 0, len = words.length; i < len; i++) {\n var word = words[i];\n var dict = this._dict;\n for (var j = 0, len2 = word.length; j < len2; j++) {\n var char = word.charAt(j);\n dict = dict[char] = dict[char] || {};\n }\n dict[CODA_MARKER] = true;\n }\n}\nMiniTrie.prototype.search = function (str) {\n var i = -1;\n var len = str.length;\n var stack = [this._dict];\n while (++i < len) {\n var dict = stack[i];\n var char = str.charAt(i);\n if (char in dict) {\n stack.push(dict[char]);\n } else {\n break;\n }\n }\n while (stack.length) {\n if (stack.pop()[CODA_MARKER]) {\n return str.substring(0, stack.length);\n }\n }\n};\nmodule.exports = MiniTrie;","import { autoPlayGif } from '../../initial_state';\nimport unicodeMapping from './emoji_unicode_mapping_light';\nimport { assetHost } from 'mastodon/utils/config';\nimport Trie from 'substring-trie';\n\nconst trie = new Trie(Object.keys(unicodeMapping));\n\n// Convert to file names from emojis. (For different variation selector emojis)\nconst emojiFilenames = (emojis) => {\n return emojis.map(v => unicodeMapping[v].filename);\n};\n\n// Emoji requiring extra borders depending on theme\nconst darkEmoji = emojiFilenames(['🎱', '🐜', '⚫', '🖤', '⬛', '◼️', '◾', '◼️', '✒️', '▪️', '💣', '🎳', '📷', '📸', '♣️', '🕶️', '✴️', '🔌', '💂‍♀️', '📽️', '🍳', '🦍', '💂', '🔪', '🕳️', '🕹️', '🕋', '🖊️', '🖋️', '💂‍♂️', '🎤', '🎓', '🎥', '🎼', '♠️', '🎩', '🦃', '📼', '📹', '🎮', '🐃', '🏴', '🐞', '🕺', '📱', '📲', '🚲']);\nconst lightEmoji = emojiFilenames(['👽', '⚾', '🐔', '☁️', '💨', '🕊️', '👀', '🍥', '👻', '🐐', '❕', '❔', '⛸️', '🌩️', '🔊', '🔇', '📃', '🌧️', '🐏', '🍚', '🍙', '🐓', '🐑', '💀', '☠️', '🌨️', '🔉', '🔈', '💬', '💭', '🏐', '🏳️', '⚪', '⬜', '◽', '◻️', '▫️']);\n\nconst emojiFilename = (filename) => {\n const borderedEmoji = (document.body && document.body.classList.contains('theme-mastodon-light')) ? lightEmoji : darkEmoji;\n return borderedEmoji.includes(filename) ? (filename + '_border') : filename;\n};\n\nconst emojifyTextNode = (node, customEmojis) => {\n let str = node.textContent;\n\n const fragment = new DocumentFragment();\n\n for (;;) {\n let match, i = 0;\n\n if (customEmojis === null) {\n while (i < str.length && !(match = trie.search(str.slice(i)))) {\n i += str.codePointAt(i) < 65536 ? 1 : 2;\n }\n } else {\n while (i < str.length && str[i] !== ':' && !(match = trie.search(str.slice(i)))) {\n i += str.codePointAt(i) < 65536 ? 1 : 2;\n }\n }\n\n let rend, replacement = null;\n if (i === str.length) {\n break;\n } else if (str[i] === ':') {\n if (!(() => {\n rend = str.indexOf(':', i + 1) + 1;\n if (!rend) return false; // no pair of ':'\n const shortname = str.slice(i, rend);\n // now got a replacee as ':shortname:'\n // if you want additional emoji handler, add statements below which set replacement and return true.\n if (shortname in customEmojis) {\n const filename = autoPlayGif ? customEmojis[shortname].url : customEmojis[shortname].static_url;\n replacement = document.createElement('img');\n replacement.setAttribute('draggable', false);\n replacement.setAttribute('class', 'emojione custom-emoji');\n replacement.setAttribute('alt', shortname);\n replacement.setAttribute('title', shortname);\n replacement.setAttribute('src', filename);\n replacement.setAttribute('data-original', customEmojis[shortname].url);\n replacement.setAttribute('data-static', customEmojis[shortname].static_url);\n return true;\n }\n return false;\n })()) rend = ++i;\n } else { // matched to unicode emoji\n const { filename, shortCode } = unicodeMapping[match];\n const title = shortCode ? `:${shortCode}:` : '';\n replacement = document.createElement('img');\n replacement.setAttribute('draggable', false);\n replacement.setAttribute('class', 'emojione');\n replacement.setAttribute('alt', match);\n replacement.setAttribute('title', title);\n replacement.setAttribute('src', `${assetHost}/emoji/${emojiFilename(filename)}.svg`);\n rend = i + match.length;\n // If the matched character was followed by VS15 (for selecting text presentation), skip it.\n if (str.codePointAt(rend) === 65038) {\n rend += 1;\n }\n }\n\n fragment.append(document.createTextNode(str.slice(0, i)));\n if (replacement) {\n fragment.append(replacement);\n }\n str = str.slice(rend);\n }\n\n fragment.append(document.createTextNode(str));\n node.parentElement.replaceChild(fragment, node);\n};\n\nconst emojifyNode = (node, customEmojis) => {\n for (const child of node.childNodes) {\n switch(child.nodeType) {\n case Node.TEXT_NODE:\n emojifyTextNode(child, customEmojis);\n break;\n case Node.ELEMENT_NODE:\n if (!child.classList.contains('invisible'))\n emojifyNode(child, customEmojis);\n break;\n }\n }\n};\n\nconst emojify = (str, customEmojis = {}) => {\n const wrapper = document.createElement('div');\n wrapper.innerHTML = str;\n\n if (!Object.keys(customEmojis).length)\n customEmojis = null;\n\n emojifyNode(wrapper, customEmojis);\n\n return wrapper.innerHTML;\n};\n\nexport default emojify;\n\nexport const buildCustomEmojis = (customEmojis) => {\n const emojis = [];\n\n customEmojis.forEach(emoji => {\n const shortcode = emoji.get('shortcode');\n const url = autoPlayGif ? emoji.get('url') : emoji.get('static_url');\n const name = shortcode.replace(':', '');\n\n emojis.push({\n id: name,\n name,\n short_names: [name],\n text: '',\n emoticons: [],\n keywords: [name],\n imageUrl: url,\n custom: true,\n customCategory: emoji.get('category'),\n });\n });\n\n return emojis;\n};\n\nexport const categoriesFromEmojis = customEmojis => customEmojis.reduce((set, emoji) => set.add(emoji.get('category') ? `custom-${emoji.get('category')}` : 'custom'), new Set(['custom']));\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {\n toString\n} = Object.prototype;\nconst {\n getPrototypeOf\n} = Object;\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\nconst kindOfTest = type => {\n type = type.toLowerCase();\n return thing => kindOf(thing) === type;\n};\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {\n isArray\n} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\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) && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = thing => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = val => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = val => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = thing => {\n const pattern = '[object FormData]';\n return thing && (typeof FormData === 'function' && thing instanceof FormData || toString.call(thing) === pattern || isFunction(thing.toString) && thing.toString() === pattern);\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = str => str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\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 *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, _temp) {\n let {\n allOwnKeys = false\n } = _temp === void 0 ? {} : _temp;\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n let i;\n let l;\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 if (isArray(obj)) {\n // Iterate over array values\n for (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 const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\nconst _global = typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self;\nconst isContextDefined = context => !isUndefined(context) && context !== _global;\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 *\n * @returns {Object} Result of all merge properties\n */\nfunction merge( /* obj1, obj2, obj3, ... */\n) {\n const {\n caseless\n } = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n };\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && 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 *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = function (a, b, thisArg, _temp2) {\n let {\n allOwnKeys\n } = _temp2 === void 0 ? {} : _temp2;\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {\n allOwnKeys\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 *\n * @returns {string} content value without BOM\n */\nconst stripBOM = content => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = thing => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n const iterator = generator.call(obj);\n let result;\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[_-\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n });\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (_ref => {\n let {\n hasOwnProperty\n } = _ref;\n return (obj, prop) => hasOwnProperty.call(obj, prop);\n})(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n forEach(descriptors, (descriptor, name) => {\n if (reducer(descriptor, name, obj) !== false) {\n reducedDescriptors[name] = descriptor;\n }\n });\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = obj => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n const value = obj[name];\n if (!isFunction(value)) return;\n descriptor.enumerable = false;\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n};\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n const define = arr => {\n arr.forEach(value => {\n obj[value] = true;\n });\n };\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n return obj;\n};\nconst noop = () => {};\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n};\nconst toJSONObject = obj => {\n const stack = new Array(10);\n const visit = (source, i) => {\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n if (!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n stack[i] = undefined;\n return target;\n }\n }\n return source;\n };\n return visit(obj, 0);\n};\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty,\n // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n toJSONObject\n};","import ready from '../ready';\n\nexport let assetHost = '';\n\nready(() => {\n const cdnHost = document.querySelector('meta[name=cdn-host]');\n if (cdnHost) {\n assetHost = cdnHost.content || '';\n }\n});\n","'use strict';\n\nimport utils from '../utils.js';\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 {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = new Error().stack;\n }\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\nutils.inherits(AxiosError, Error, {\n 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: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n['ERR_BAD_OPTION_VALUE', 'ERR_BAD_OPTION', 'ECONNABORTED', 'ETIMEDOUT', 'ERR_NETWORK', 'ERR_FR_TOO_MANY_REDIRECTS', 'ERR_DEPRECATED', 'ERR_BAD_RESPONSE', 'ERR_BAD_REQUEST', 'ERR_CANCELED', 'ERR_NOT_SUPPORT', 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {\n value: code\n };\n});\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {\n value: true\n});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n AxiosError.call(axiosError, error.message, code, config, request, response);\n axiosError.cause = error;\n axiosError.name = error.name;\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n};\nexport default AxiosError;","import FormData from 'form-data';\nexport default FormData;","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport envFormData from '../env/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliant(thing) {\n return thing && utils.isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator];\n}\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (envFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && isSpecCompliant(formData);\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n function convertValue(value) {\n if (value === null) return '';\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (utils.isArray(value) && isFlatArray(value) || utils.isFileList(value) || utils.endsWith(key, '[]') && (arr = utils.toArray(value))) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : indexes === null ? key : key + '[]', convertValue(el));\n });\n return false;\n }\n }\n if (isVisitable(value)) {\n return true;\n }\n formData.append(renderKey(path, key, dots), convertValue(value));\n return false;\n }\n const stack = [];\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n stack.push(value);\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers);\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n stack.pop();\n }\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n build(obj);\n return formData;\n}\nexport default toFormData;","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n params && toFormData(params, this, options);\n}\nconst prototype = AxiosURLSearchParams.prototype;\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function (value) {\n return encoder.call(this, value, encode);\n } : encode;\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\nexport default AxiosURLSearchParams;","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').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 * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n const _encode = options && options.encode || encode;\n const serializeFn = options && options.serialize;\n let serializedParams;\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ? params.toString() : new AxiosURLSearchParams(params, options).toString(_encode);\n }\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n return url;\n}","'use strict';\n\nimport utils from './../utils.js';\nclass InterceptorManager {\n constructor() {\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 */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n 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 *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\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 *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\nexport default InterceptorManager;","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;","'use strict';\n\nexport default FormData;","import URLSearchParams from './classes/URLSearchParams.js';\nimport FormData from './classes/FormData.js';\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 *\n * @returns {boolean}\n */\nconst isStandardBrowserEnv = (() => {\n let product;\n if (typeof navigator !== 'undefined' && ((product = navigator.product) === 'ReactNative' || product === 'NativeScript' || product === 'NS')) {\n return false;\n }\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n})();\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst isStandardBrowserWebWorkerEnv = (() => {\n return typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope && typeof self.importScripts === 'function';\n})();\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n isStandardBrowserEnv,\n isStandardBrowserWebWorkerEnv,\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n return !isNumericKey;\n }\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n const result = buildPath(path, value, target[name], index);\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n return !isNumericKey;\n }\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n return obj;\n }\n return null;\n}\nexport default formDataToJSON;","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\nconst DEFAULT_CONTENT_TYPE = {\n 'Content-Type': undefined\n};\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\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 return (encoder || JSON.stringify)(rawValue);\n}\nconst defaults = {\n transitional: transitionalDefaults,\n adapter: ['xhr', 'http'],\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n const isFormData = utils.isFormData(data);\n if (isFormData) {\n if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n if (utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n let isFileList;\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n return toFormData(isFileList ? {\n 'files[]': data\n } : data, _FormData && new _FormData(), this.formSerializer);\n }\n }\n if (isObjectPayload || hasJSONContentType) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n if (data && utils.isString(data) && (forcedJSONParsing && !this.responseType || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n return data;\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 xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n maxBodyLength: -1,\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n 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});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nexport default defaults;","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function (value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet(['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent']);\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} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default (rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n if (!key || parsed[key] && ignoreDuplicateOf[key]) {\n return;\n }\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n return parsed;\n});","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\nconst $internals = Symbol('internals');\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n while (match = tokensRE.exec(str)) {\n tokens[match[1]] = match[2];\n }\n return tokens;\n}\nfunction isValidHeaderName(str) {\n return /^[-_a-zA-Z]+$/.test(str.trim());\n}\nfunction matchHeaderValue(context, value, header, filter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n if (!utils.isString(value)) return;\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\nfunction formatHeader(header) {\n return header.trim().toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function (arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n const key = utils.findKey(self, lHeader);\n if (!key || self[key] === undefined || _rewrite === true || _rewrite === undefined && self[key] !== false) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n const setHeaders = (headers, _rewrite) => utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n return this;\n }\n get(header, parser) {\n header = normalizeHeader(header);\n if (header) {\n const key = utils.findKey(this, header);\n if (key) {\n const value = this[key];\n if (!parser) {\n return value;\n }\n if (parser === true) {\n return parseTokens(value);\n }\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n has(header, matcher) {\n header = normalizeHeader(header);\n if (header) {\n const key = utils.findKey(this, header);\n return !!(key && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n return false;\n }\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n if (_header) {\n const key = utils.findKey(self, _header);\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n deleted = true;\n }\n }\n }\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n return deleted;\n }\n clear() {\n return Object.keys(this).forEach(this.delete.bind(this));\n }\n normalize(format) {\n const self = this;\n const headers = {};\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n const normalized = format ? formatHeader(header) : String(header).trim();\n if (normalized !== header) {\n delete self[header];\n }\n self[normalized] = normalizeValue(value);\n headers[normalized] = true;\n });\n return this;\n }\n concat() {\n for (var _len = arguments.length, targets = new Array(_len), _key = 0; _key < _len; _key++) {\n targets[_key] = arguments[_key];\n }\n return this.constructor.concat(this, ...targets);\n }\n toJSON(asStrings) {\n const obj = Object.create(null);\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n return obj;\n }\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n toString() {\n return Object.entries(this.toJSON()).map(_ref => {\n let [header, value] = _ref;\n return header + ': ' + value;\n }).join('\\n');\n }\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n static concat(first) {\n const computed = new this(first);\n for (var _len2 = arguments.length, targets = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n targets[_key2 - 1] = arguments[_key2];\n }\n targets.forEach(target => computed.set(target));\n return computed;\n }\n static accessor(header) {\n const internals = this[$internals] = this[$internals] = {\n accessors: {}\n };\n const accessors = internals.accessors;\n const prototype = this.prototype;\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n return this;\n }\n}\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent']);\nutils.freezeMethods(AxiosHeaders.prototype);\nutils.freezeMethods(AxiosHeaders);\nexport default AxiosHeaders;","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n headers.normalize();\n return data;\n}","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\nexport default CanceledError;","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\nexport default platform.isStandardBrowserEnv ?\n// Standard browser envs support document.cookie\nfunction standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n const cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n document.cookie = cookie.join('; ');\n },\n read: function read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n}() :\n// Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n}();","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\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 *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default 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}","'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 *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n}","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\nexport default platform.isStandardBrowserEnv ?\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.\nfunction standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let 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 let href = url;\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\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) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\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 const parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n}() :\n// Non standard browser envs (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n}();","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n min = min !== undefined ? min : 1000;\n return function push(chunkLength) {\n const now = Date.now();\n const startedAt = timestamps[tail];\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n bytes[head] = chunkLength;\n timestamps[head] = now;\n let i = tail;\n let bytesCount = 0;\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n head = (head + 1) % samplesCount;\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n if (now - firstSampleTS < min) {\n return;\n }\n const passed = startedAt && now - startedAt;\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\nexport default speedometer;","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n bytesNotified = loaded;\n const data = {\n loaded,\n total,\n progress: total ? loaded / total : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n data[isDownloadStream ? 'download' : 'upload'] = true;\n listener(data);\n };\n}\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n const responseType = config.responseType;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n if (utils.isFormData(requestData) && (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv)) {\n requestHeaders.setContentType(false); // Let the browser set it\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n const 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 function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from('getAllResponseHeaders' in request && request.getAllResponseHeaders());\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ? request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\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 reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, 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(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(timeoutErrorMessage, transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, config, 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 (platform.isStandardBrowserEnv) {\n // Add xsrf header\n const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\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', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n const protocol = parseProtocol(fullPath);\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n // Send the request\n request.send(requestData || null);\n });\n};","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n};\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {\n value\n });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {\n value\n });\n }\n});\nexport default {\n getAdapter: adapters => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n const {\n length\n } = adapters;\n let nameOrAdapter;\n let adapter;\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n if (adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter) {\n break;\n }\n }\n if (!adapter) {\n if (adapter === false) {\n throw new AxiosError(`Adapter ${nameOrAdapter} is not supported by the environment`, 'ERR_NOT_SUPPORT');\n }\n throw new Error(utils.hasOwnProp(knownAdapters, nameOrAdapter) ? `Adapter '${nameOrAdapter}' is not available in the build` : `Unknown adapter '${nameOrAdapter}'`);\n }\n if (!utils.isFunction(adapter)) {\n throw new TypeError('adapter is not a function');\n }\n return adapter;\n },\n adapters: knownAdapters\n};","// eslint-disable-next-line strict\nexport default null;","'use strict';\n\nimport AxiosError from './AxiosError.js';\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 *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError('Request failed with status code ' + response.status, [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], response.config, response.request, response));\n }\n}","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\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 *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(config, config.transformRequest);\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(config, config.transformResponse, response);\n response.headers = AxiosHeaders.from(response.headers);\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(config, config.transformResponse, reason.response);\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n return Promise.reject(reason);\n });\n}","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\nconst headersToObject = thing => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\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 *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({\n caseless\n }, 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 // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n utils.isUndefined(configValue) && merge !== mergeDirectKeys || (config[prop] = configValue);\n });\n return config;\n}","export const VERSION = \"1.2.1\";","'use strict';\n\nimport { VERSION } from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), AxiosError.ERR_DEPRECATED);\n }\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(formatMessage(opt, ' has been deprecated since v' + version + ' and will be removed in the near future'));\n }\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\nexport default {\n assertOptions,\n validators\n};","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(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 {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n config = mergeConfig(this.defaults, config);\n const {\n transitional,\n paramsSerializer,\n headers\n } = config;\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n if (paramsSerializer !== undefined) {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n let contextHeaders;\n\n // Flatten headers\n contextHeaders = headers && utils.merge(headers.common, headers[config.method]);\n contextHeaders && utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], method => {\n delete headers[method];\n });\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n let promise;\n let i = 0;\n let len;\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n promise = Promise.resolve(config);\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n return promise;\n }\n len = requestInterceptorChain.length;\n let newConfig = config;\n i = 0;\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n i = 0;\n len = responseInterceptorChain.length;\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n return promise;\n }\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\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,\n url,\n data: (config || {}).data\n }));\n };\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n Axios.prototype[method] = generateHTTPMethod();\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\nexport default Axios;","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n let resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n let i = token._listeners.length;\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n return promise;\n };\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\nexport default CancelToken;","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport { VERSION } from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {\n allOwnKeys: true\n });\n\n // Copy context to instance\n utils.extend(instance, context, null, {\n allOwnKeys: true\n });\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\naxios.AxiosHeaders = AxiosHeaders;\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios;","'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 *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && payload.isAxiosError === true;\n}","// This file will be loaded on settings pages, regardless of theme.\n\nimport 'packs/public-path';\nimport escapeTextContentForBrowser from 'escape-html';\nconst { delegate } = require('@rails/ujs');\nimport emojify from '../mastodon/features/emoji/emoji';\n\ndelegate(document, '#account_display_name', 'input', ({ target }) => {\n const name = document.querySelector('.card .display-name strong');\n if (name) {\n if (target.value) {\n name.innerHTML = emojify(escapeTextContentForBrowser(target.value));\n } else {\n name.textContent = name.textContent = target.dataset.default;\n }\n }\n});\n\ndelegate(document, '#account_avatar', 'change', ({ target }) => {\n const avatar = document.querySelector('.card .avatar img');\n const [file] = target.files || [];\n const url = file ? URL.createObjectURL(file) : avatar.dataset.originalSrc;\n\n avatar.src = url;\n});\n\ndelegate(document, '#account_header', 'change', ({ target }) => {\n const header = document.querySelector('.card .card__img img');\n const [file] = target.files || [];\n const url = file ? URL.createObjectURL(file) : header.dataset.originalSrc;\n\n header.src = url;\n});\n\ndelegate(document, '#account_locked', 'change', ({ target }) => {\n const lock = document.querySelector('.card .display-name i');\n\n if (lock) {\n if (target.checked) {\n delete lock.dataset.hidden;\n } else {\n lock.dataset.hidden = 'true';\n }\n }\n});\n\ndelegate(document, '.input-copy input', 'click', ({ target }) => {\n target.focus();\n target.select();\n target.setSelectionRange(0, target.value.length);\n});\n\ndelegate(document, '.input-copy button', 'click', ({ target }) => {\n const input = target.parentNode.querySelector('.input-copy__wrapper input');\n\n const oldReadOnly = input.readonly;\n\n input.readonly = false;\n input.focus();\n input.select();\n input.setSelectionRange(0, input.value.length);\n\n try {\n if (document.execCommand('copy')) {\n input.blur();\n target.parentNode.classList.add('copied');\n\n setTimeout(() => {\n target.parentNode.classList.remove('copied');\n }, 700);\n }\n } catch (err) {\n console.error(err);\n }\n\n input.readonly = oldReadOnly;\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n };\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function (obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n });\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: true\n });\n defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: true\n });\n GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\");\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n exports.isGeneratorFunction = function (genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n exports.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function (arg) {\n return {\n __await: arg\n };\n };\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value && typeof value === \"object\" && hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n return PromiseImpl.resolve(value).then(function (unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function (error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n var previousPromise;\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", {\n value: enqueue\n });\n }\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n };\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n context.method = method;\n context.arg = arg;\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n context.dispatchException(context.arg);\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n if (record.arg === ContinueSentinel) {\n continue;\n }\n return {\n value: record.arg,\n done: context.done\n };\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next mehtod, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\");\n }\n return ContinueSentinel;\n }\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n var info = record.arg;\n if (!info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function () {\n return this;\n });\n define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n });\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{\n tryLoc: \"root\"\n }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n exports.keys = function (val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n next.value = undefined;\n next.done = true;\n return next;\n };\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return {\n next: doneResult\n };\n }\n exports.values = values;\n function doneResult() {\n return {\n value: undefined,\n done: true\n };\n }\n Context.prototype = {\n constructor: Context,\n reset: function (skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n this.method = \"next\";\n this.arg = undefined;\n this.tryEntries.forEach(resetTryEntry);\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n stop: function () {\n this.done = true;\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n return this.rval;\n },\n dispatchException: function (exception) {\n if (this.done) {\n throw exception;\n }\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n return !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n abrupt: function (type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n return this.complete(record);\n },\n complete: function (record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n if (record.type === \"break\" || record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n return ContinueSentinel;\n },\n finish: function (finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n \"catch\": function (tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function (iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n}(\n// If this script is executing as a CommonJS module, use module.exports\n// as the regeneratorRuntime namespace. Otherwise create a new empty\n// object. Either way, the resulting object will be used to initialize\n// the regeneratorRuntime variable at the top of this file.\ntypeof module === \"object\" ? module.exports : {});\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}"],"sourceRoot":""}