diff --git a/README.md b/README.md index afe6f33..63be1eb 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,16 @@ # AI DeepFake detection ![DeepFake Logo](src/images/logo128.png) This is a browser extension to detect deepfakes. -A new button is integrated in the YouTube player for this purpose. +A new button is integrated in the YouTube™ player for this purpose. + +## Introduction +Creating deepfake videos is getting easier and easier. You don't need technical skills anymore to make a manipulated video. You just follow an online instruction, that's enough. +At the same time, the videos are becoming more and more realistic. +Humans are far inferior to AI when it comes to recognizing deepfake videos. Therefore, it is now possible to mainipulate entire societies, since the naked eye can no longer recognize deepfakes. +The question for everyone is how to protect themselves and others from this disinformation. + +Part of the solution is to critically question and check if what you see is plausible. In addition, however, we need technical tools and have to fight AI with AI. + @@ -21,12 +30,22 @@ Default recording is 5 seconds. After recording, the video is automatically sent to the AI for analysis. You can watch the recorded video in an extra player or download it. The result of the AI analysis is displayed in this player. -Example: + +Example DeepFake: ![Obama](assets/Obama.png) +Example no DeepFake: +![liar](assets/Liar.png) + +Sometimes the AI can not process the video and you see this message: +![error](assets/Error.png) + You can also ping the extension. -The popup window shows your analysis history. +The popup window shows your analysis history. +The last analysis is shown on the top. +You can also delete any analysis. +This history is saved in your browser. ![history](assets/history.png) @@ -48,8 +67,7 @@ npm run build:parcel Then load the dist directory as an Chrome extension. ## Used images -Links to used images (CC) in this project: -![fake](src/images/fake.png) , ![check](src/images/check.png) from [Icons8](https://icons8.de) +Links to used images (CC) in this project: ![logo](src/images/logo48.png) from [Freepik](https://www.flaticon.com/free-icon/fake_2185544?term=fake&page=2&position=64&page=2&position=64&related_id=2185544&origin=search) @@ -59,4 +77,8 @@ Links to used images (CC) in this project: ## License -[Apache License 2.0](LICENSE) +[Apache License 2.0](LICENSE) + +YouTube™ is a trademark of Google Inc. +Use of this trademark is subject to Google Permissions. + diff --git a/assets/Error.png b/assets/Error.png new file mode 100644 index 0000000..9ff4624 Binary files /dev/null and b/assets/Error.png differ diff --git a/assets/Liar.png b/assets/Liar.png new file mode 100644 index 0000000..2efe0cb Binary files /dev/null and b/assets/Liar.png differ diff --git a/assets/Obama.png b/assets/Obama.png index d223bc6..0fb414d 100644 Binary files a/assets/Obama.png and b/assets/Obama.png differ diff --git a/assets/history.png b/assets/history.png index f891b0e..369d295 100644 Binary files a/assets/history.png and b/assets/history.png differ diff --git a/dist/background.js b/dist/background.js index cdf9c9a..0afb5ef 100644 --- a/dist/background.js +++ b/dist/background.js @@ -1,2 +1,2 @@ -chrome.runtime.onInstalled.addListener((function(){chrome.runtime.openOptionsPage?chrome.runtime.openOptionsPage():window.open(chrome.runtime.getURL("options.html"))})),chrome.webNavigation.onHistoryStateUpdated.addListener((function(e){e.url.includes("https://www.youtube.com/watch")&&chrome.tabs.query({active:!0,currentWindow:!0},(function(e){chrome.tabs.sendMessage(e[0].id,{message:"initRecordButton"})}))})); +chrome.runtime.onInstalled.addListener((function(){chrome.runtime.openOptionsPage?chrome.runtime.openOptionsPage():window.open(chrome.runtime.getURL("options.html"))})),chrome.webNavigation.onHistoryStateUpdated.addListener((function(e){e.url.includes("https://www.youtube.com/watch")&&chrome.tabs.query({active:!0,currentWindow:!0},(function(e){chrome.tabs.sendMessage(e[0].id,{message:"initRecordButton"},(function(e){}))}))})); //# sourceMappingURL=background.js.map diff --git a/dist/background.js.map b/dist/background.js.map index 4763a53..e40ecd1 100644 --- a/dist/background.js.map +++ b/dist/background.js.map @@ -1 +1 @@ -{"mappings":"OAOQA,QAAOC,YAAYC,aAAe,WAEzCC,OAAAH,QAAAI,gBAAAD,OAAAH,QAAAI,kBAIEC,OAAAC,KAAAH,OAAAH,QAAAO,OAAA,oBAGyDJ,OAAGK,cAAgBC,sBAAAP,aAAA,SAAAQ,GACnEA,EAAOC,IAAKC,SAAA,kCAAyBT,OAAAU,KAAAC,MAAA,SAAA,EAA2BC,eAAC,IACpE,SAAAF,GAERV,OAAAU,KAAAG,YAAAH,EAAA,GAAAI,GAAA","sources":["src/background.js"],"sourcesContent":["/**\r\n * After installation, show option page to enter ApiKey\r\n */\r\nchrome.runtime.onInstalled.addListener(function() {\r\n if (chrome.runtime.openOptionsPage) {\r\n chrome.runtime.openOptionsPage();\r\n } else {\r\n window.open(chrome.runtime.getURL('options.html'));\r\n }\r\n});\r\n\r\n/**\r\n * Check if user switch to https://www.youtube.com/watch* url and init video record button\r\n */\r\nchrome.webNavigation.onHistoryStateUpdated.addListener(function (details){\r\n if(details.url.includes(\"https://www.youtube.com/watch\")){\r\n chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {\r\n chrome.tabs.sendMessage(tabs[0].id, {message: \"initRecordButton\"});\r\n });\r\n }\r\n});\r\n"],"names":["runtime","onInstalled","addListener","chrome","openOptionsPage","window","open","getURL","webNavigation","onHistoryStateUpdated","details","url","includes","tabs","query","currentWindow","sendMessage","id"],"version":3,"file":"background.js.map"} \ No newline at end of file +{"mappings":"AAGAA,OAAOC,QAAQC,YAAYC,aAAY,WAC/BH,OAAOC,QAAQG,gBACfJ,OAAOC,QAAQG,kBAEfC,OAAOC,KAAKN,OAAOC,QAAQM,OAAO,oBAO1CP,OAAOQ,cAAcC,sBAAsBN,aAAY,SAAUO,GAC1DA,EAAQC,IAAIC,SAAS,kCACpBZ,OAAOa,KAAKC,MAAM,CAACC,QAAQ,EAAMC,eAAe,IAAO,SAASH,GAC5Db,OAAOa,KAAKI,YAAYJ,EAAK,GAAGK,GAAI,CAACC,QAAS,qBAAqB,SAASC","sources":["src/background.js"],"sourcesContent":["/**\n * After installation, show option page to enter ApiKey\n */\nchrome.runtime.onInstalled.addListener(function() {\n if (chrome.runtime.openOptionsPage) {\n chrome.runtime.openOptionsPage();\n } else {\n window.open(chrome.runtime.getURL('options.html'));\n }\n});\n\n/**\n * Check if user switch to https://www.youtube.com/watch* url and init video record button\n */\nchrome.webNavigation.onHistoryStateUpdated.addListener(function (details){\n if(details.url.includes(\"https://www.youtube.com/watch\")){\n chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {\n chrome.tabs.sendMessage(tabs[0].id, {message: \"initRecordButton\"}, function(response) {\n });\n });\n }\n});\n"],"names":["chrome","runtime","onInstalled","addListener","openOptionsPage","window","open","getURL","webNavigation","onHistoryStateUpdated","details","url","includes","tabs","query","active","currentWindow","sendMessage","id","message","response"],"version":3,"file":"background.js.map"} \ No newline at end of file diff --git a/dist/check.4299b8a8.png b/dist/check.4299b8a8.png deleted file mode 100644 index 608bded..0000000 Binary files a/dist/check.4299b8a8.png and /dev/null differ diff --git a/dist/content.js b/dist/content.js index 939d7a8..d5f7169 100644 --- a/dist/content.js +++ b/dist/content.js @@ -1,2 +1,2 @@ -(()=>{var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{};var e={};let r;!function(r){if("object"==typeof e)e=r();else if("function"==typeof define&&define.amd)define([],r);else{("undefined"!=typeof window?window:void 0!==t?t:"undefined"!=typeof self?self:this).superagent=r()}}((function(){return function t(e,r,o){function n(s,a){if(!r[s]){if(!e[s]){var u=void 0;if(!a&&u)return u(s,!0);if(i)return i(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var l=r[s]={exports:{}};e[s][0].call(l.exports,(function(t){return n(e[s][1][t]||t)}),l,l.exports,t,e,r,o)}return r[s].exports}for(var i=void 0,s=0;se?1:0}function c(t,e,r){var o,s=l(t,"",[],void 0)||t;for(o=0===i.length?JSON.stringify(s,e,r):JSON.stringify(s,p(e),r);0!==n.length;){var a=n.pop();4===a.length?Object.defineProperty(a[0],a[1],a[3]):a[0][a[1]]=a[2]}return o}function l(t,e,r,s){var a;if("object"===o(t)&&null!==t){for(a=0;a0)for(var o=0;o-1?t.split(","):t},c=function(t,e,r,o){if(t){var i=r.allowDots?t.replace(/\.([^.[]+)/g,"[$1]"):t,s=/(\[[^[\]]*])/g,a=r.depth>0&&/(\[[^[\]]*])/.exec(i),c=a?i.slice(0,a.index):i,l=[];if(c){if(!r.plainObjects&&n.call(Object.prototype,c)&&!r.allowPrototypes)return;l.push(c)}for(var p=0;r.depth>0&&null!==(a=s.exec(i))&&p=0;--i){var s,a=t[i];if("[]"===a&&r.parseArrays)s=[].concat(n);else{s=r.plainObjects?Object.create(null):{};var c="["===a.charAt(0)&&"]"===a.charAt(a.length-1)?a.slice(1,-1):a,l=parseInt(c,10);r.parseArrays||""!==c?!isNaN(l)&&a!==c&&String(l)===c&&l>=0&&r.parseArrays&&l<=r.arrayLimit?(s=[])[l]=n:s[c]=n:s={0:n}}n=s}return n}(l,e,r,o)}};e.exports=function(t,e){var r=function(t){if(!t)return s;if(null!==t.decoder&&void 0!==t.decoder&&"function"!=typeof t.decoder)throw new TypeError("Decoder has to be a function.");if(void 0!==t.charset&&"utf-8"!==t.charset&&"iso-8859-1"!==t.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var e=void 0===t.charset?s.charset:t.charset;return{allowDots:void 0===t.allowDots?s.allowDots:!!t.allowDots,allowPrototypes:"boolean"==typeof t.allowPrototypes?t.allowPrototypes:s.allowPrototypes,arrayLimit:"number"==typeof t.arrayLimit?t.arrayLimit:s.arrayLimit,charset:e,charsetSentinel:"boolean"==typeof t.charsetSentinel?t.charsetSentinel:s.charsetSentinel,comma:"boolean"==typeof t.comma?t.comma:s.comma,decoder:"function"==typeof t.decoder?t.decoder:s.decoder,delimiter:"string"==typeof t.delimiter||o.isRegExp(t.delimiter)?t.delimiter:s.delimiter,depth:"number"==typeof t.depth||!1===t.depth?+t.depth:s.depth,ignoreQueryPrefix:!0===t.ignoreQueryPrefix,interpretNumericEntities:"boolean"==typeof t.interpretNumericEntities?t.interpretNumericEntities:s.interpretNumericEntities,parameterLimit:"number"==typeof t.parameterLimit?t.parameterLimit:s.parameterLimit,parseArrays:!1!==t.parseArrays,plainObjects:"boolean"==typeof t.plainObjects?t.plainObjects:s.plainObjects,strictNullHandling:"boolean"==typeof t.strictNullHandling?t.strictNullHandling:s.strictNullHandling}}(e);if(""===t||null==t)return r.plainObjects?Object.create(null):{};for(var l="string"==typeof t?function(t,e){var r,c={},l=e.ignoreQueryPrefix?t.replace(/^\?/,""):t,p=e.parameterLimit===1/0?void 0:e.parameterLimit,f=l.split(e.delimiter,p),d=-1,h=e.charset;if(e.charsetSentinel)for(r=0;r-1&&(m=i(m)?[m]:m),n.call(c,y)?c[y]=o.combine(c[y],m):c[y]=m}return c}(t,r):t,p=r.plainObjects?Object.create(null):{},f=Object.keys(l),d=0;d0?g+v:""}},{"./formats":3,"./utils":7}],7:[function(t,e,r){"use strict";function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var n=Object.prototype.hasOwnProperty,i=Array.isArray,s=function(){for(var t=[],e=0;e<256;++e)t.push("%"+((e<16?"0":"")+e.toString(16)).toUpperCase());return t}(),a=function(t,e){for(var r=e&&e.plainObjects?Object.create(null):{},o=0;o1;){var e=t.pop(),r=e.obj[e.prop];if(i(r)){for(var o=[],n=0;n=48&&u<=57||u>=65&&u<=90||u>=97&&u<=122?i+=n.charAt(a):u<128?i+=s[u]:u<2048?i+=s[192|u>>6]+s[128|63&u]:u<55296||u>=57344?i+=s[224|u>>12]+s[128|u>>6&63]+s[128|63&u]:(a+=1,u=65536+((1023&u)<<10|1023&n.charCodeAt(a)),i+=s[240|u>>18]+s[128|u>>12&63]+s[128|u>>6&63]+s[128|63&u])}return i},isBuffer:function(t){return!(!t||"object"!==o(t))&&!!(t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer(t))},isRegExp:function(t){return"[object RegExp]"===Object.prototype.toString.call(t)},maybeMap:function(t,e){if(i(t)){for(var r=[],o=0;ot.length)&&(e=t.length);for(var r=0,o=new Array(e);r0||t instanceof Object)?e(t):null)},g.prototype.toError=function(){var t=this.req,e=t.method,r=t.url,o="cannot ".concat(e," ").concat(r," (").concat(this.status,")"),n=new Error(o);return n.status=this.status,n.method=e,n.url=r,n},d.Response=g,i(w.prototype),u(w.prototype),w.prototype.type=function(t){return this.set("Content-Type",d.types[t]||t),this},w.prototype.accept=function(t){return this.set("Accept",d.types[t]||t),this},w.prototype.auth=function(t,e,r){1===arguments.length&&(e=""),"object"===o(e)&&null!==e&&(r=e,e=""),r||(r={type:"function"==typeof btoa?"basic":"auto"});var n=function(t){if("function"==typeof btoa)return btoa(t);throw new Error("Cannot use basic auth, btoa is not a function")};return this._auth(t,e,r,n)},w.prototype.query=function(t){return"string"!=typeof t&&(t=y(t)),t&&this._query.push(t),this},w.prototype.attach=function(t,e,r){if(e){if(this._data)throw new Error("superagent can't mix .send() and .attach()");this._getFormData().append(t,e,r||e.name)}return this},w.prototype._getFormData=function(){return this._formData||(this._formData=new n.FormData),this._formData},w.prototype.callback=function(t,e){if(this._shouldRetry(t,e))return this._retry();var r=this._callback;this.clearTimeout(),t&&(this._maxRetries&&(t.retries=this._retries-1),this.emit("error",t)),r(t,e)},w.prototype.crossDomainError=function(){var t=new Error("Request has been terminated\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.");t.crossDomain=!0,t.status=this.status,t.method=this.method,t.url=this.url,this.callback(t)},w.prototype.agent=function(){return console.warn("This is not supported in browser version of superagent"),this},w.prototype.ca=w.prototype.agent,w.prototype.buffer=w.prototype.ca,w.prototype.write=function(){throw new Error("Streaming is not supported in browser version of superagent")},w.prototype.pipe=w.prototype.write,w.prototype._isHost=function(t){return t&&"object"===o(t)&&!Array.isArray(t)&&"[object Object]"!==Object.prototype.toString.call(t)},w.prototype.end=function(t){this._endCalled&&console.warn("Warning: .end() was called twice. This is not supported in superagent"),this._endCalled=!0,this._callback=t||f,this._finalizeQueryString(),this._end()},w.prototype._setUploadTimeout=function(){var t=this;this._uploadTimeout&&!this._uploadTimeoutTimer&&(this._uploadTimeoutTimer=setTimeout((function(){t._timeoutError("Upload timeout of ",t._uploadTimeout,"ETIMEDOUT")}),this._uploadTimeout))},w.prototype._end=function(){if(this._aborted)return this.callback(new Error("The request has been aborted even before .end() was called"));var t=this;this.xhr=d.getXHR();var e=this.xhr,r=this._formData||this._data;this._setTimeouts(),e.onreadystatechange=function(){var r=e.readyState;if(r>=2&&t._responseTimeoutTimer&&clearTimeout(t._responseTimeoutTimer),4===r){var o;try{o=e.status}catch(t){o=0}if(!o){if(t.timedout||t._aborted)return;return t.crossDomainError()}t.emit("end")}};var o=function(e,r){r.total>0&&(r.percent=r.loaded/r.total*100,100===r.percent&&clearTimeout(t._uploadTimeoutTimer)),r.direction=e,t.emit("progress",r)};if(this.hasListeners("progress"))try{e.addEventListener("progress",o.bind(null,"download")),e.upload&&e.upload.addEventListener("progress",o.bind(null,"upload"))}catch(t){}e.upload&&this._setUploadTimeout();try{this.username&&this.password?e.open(this.method,this.url,!0,this.username,this.password):e.open(this.method,this.url,!0)}catch(t){return this.callback(t)}if(this._withCredentials&&(e.withCredentials=!0),!this._formData&&"GET"!==this.method&&"HEAD"!==this.method&&"string"!=typeof r&&!this._isHost(r)){var n=this._header["content-type"],i=this._serializer||d.serialize[n?n.split(";")[0]:""];!i&&v(n)&&(i=d.serialize["application/json"]),i&&(r=i(r))}for(var s in this.header)null!==this.header[s]&&Object.prototype.hasOwnProperty.call(this.header,s)&&e.setRequestHeader(s,this.header[s]);this._responseType&&(e.responseType=this._responseType),this.emit("request",this),e.send(void 0===r?null:r)},d.agent=function(){return new p},["GET","POST","OPTIONS","PATCH","PUT","DELETE"].forEach((function(t){p.prototype[t.toLowerCase()]=function(e,r){var o=new d.Request(t,e);return this._setDefaults(o),r&&o.end(r),o}})),p.prototype.del=p.prototype.delete,d.get=function(t,e,r){var o=d("GET",t);return"function"==typeof e&&(r=e,e=null),e&&o.query(e),r&&o.end(r),o},d.head=function(t,e,r){var o=d("HEAD",t);return"function"==typeof e&&(r=e,e=null),e&&o.query(e),r&&o.end(r),o},d.options=function(t,e,r){var o=d("OPTIONS",t);return"function"==typeof e&&(r=e,e=null),e&&o.send(e),r&&o.end(r),o},d.del=_,d.delete=_,d.patch=function(t,e,r){var o=d("PATCH",t);return"function"==typeof e&&(r=e,e=null),e&&o.send(e),r&&o.end(r),o},d.post=function(t,e,r){var o=d("POST",t);return"function"==typeof e&&(r=e,e=null),e&&o.send(e),r&&o.end(r),o},d.put=function(t,e,r){var o=d("PUT",t);return"function"==typeof e&&(r=e,e=null),e&&o.send(e),r&&o.end(r),o}},{"./agent-base":8,"./is-object":9,"./request-base":11,"./response-base":12,"component-emitter":1,"fast-safe-stringify":2,qs:4}],11:[function(t,e,r){"use strict";function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var n=t("./is-object");function i(t){if(t)return function(t){for(var e in i.prototype)Object.prototype.hasOwnProperty.call(i.prototype,e)&&(t[e]=i.prototype[e]);return t}(t)}e.exports=i,i.prototype.clearTimeout=function(){return clearTimeout(this._timer),clearTimeout(this._responseTimeoutTimer),clearTimeout(this._uploadTimeoutTimer),delete this._timer,delete this._responseTimeoutTimer,delete this._uploadTimeoutTimer,this},i.prototype.parse=function(t){return this._parser=t,this},i.prototype.responseType=function(t){return this._responseType=t,this},i.prototype.serialize=function(t){return this._serializer=t,this},i.prototype.timeout=function(t){if(!t||"object"!==o(t))return this._timeout=t,this._responseTimeout=0,this._uploadTimeout=0,this;for(var e in t)if(Object.prototype.hasOwnProperty.call(t,e))switch(e){case"deadline":this._timeout=t.deadline;break;case"response":this._responseTimeout=t.response;break;case"upload":this._uploadTimeout=t.upload;break;default:console.warn("Unknown timeout option",e)}return this},i.prototype.retry=function(t,e){return 0!==arguments.length&&!0!==t||(t=1),t<=0&&(t=0),this._maxRetries=t,this._retries=0,this._retryCallback=e,this};var s=new Set(["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"]),a=new Set([408,413,429,500,502,503,504,521,522,524]);i.prototype._shouldRetry=function(t,e){if(!this._maxRetries||this._retries++>=this._maxRetries)return!1;if(this._retryCallback)try{var r=this._retryCallback(t,e);if(!0===r)return!0;if(!1===r)return!1}catch(t){console.error(t)}if(e&&e.status&&a.has(e.status))return!0;if(t){if(t.code&&s.has(t.code))return!0;if(t.timeout&&"ECONNABORTED"===t.code)return!0;if(t.crossDomain)return!0}return!1},i.prototype._retry=function(){return this.clearTimeout(),this.req&&(this.req=null,this.req=this.request()),this._aborted=!1,this.timedout=!1,this.timedoutError=null,this._end()},i.prototype.then=function(t,e){var r=this;if(!this._fullfilledPromise){var o=this;this._endCalled&&console.warn("Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises"),this._fullfilledPromise=new Promise((function(t,e){o.on("abort",(function(){if(!(r._maxRetries&&r._maxRetries>r._retries))if(r.timedout&&r.timedoutError)e(r.timedoutError);else{var t=new Error("Aborted");t.code="ABORTED",t.status=r.status,t.method=r.method,t.url=r.url,e(t)}})),o.end((function(r,o){r?e(r):t(o)}))}))}return this._fullfilledPromise.then(t,e)},i.prototype.catch=function(t){return this.then(void 0,t)},i.prototype.use=function(t){return t(this),this},i.prototype.ok=function(t){if("function"!=typeof t)throw new Error("Callback required");return this._okCallback=t,this},i.prototype._isResponseOK=function(t){return!!t&&(this._okCallback?this._okCallback(t):t.status>=200&&t.status<300)},i.prototype.get=function(t){return this._header[t.toLowerCase()]},i.prototype.getHeader=i.prototype.get,i.prototype.set=function(t,e){if(n(t)){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&this.set(r,t[r]);return this}return this._header[t.toLowerCase()]=e,this.header[t]=e,this},i.prototype.unset=function(t){return delete this._header[t.toLowerCase()],delete this.header[t],this},i.prototype.field=function(t,e){if(null==t)throw new Error(".field(name, val) name can not be empty");if(this._data)throw new Error(".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()");if(n(t)){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&this.field(r,t[r]);return this}if(Array.isArray(e)){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&this.field(t,e[o]);return this}if(null==e)throw new Error(".field(name, val) val can not be empty");return"boolean"==typeof e&&(e=String(e)),this._getFormData().append(t,e),this},i.prototype.abort=function(){return this._aborted||(this._aborted=!0,this.xhr&&this.xhr.abort(),this.req&&this.req.abort(),this.clearTimeout(),this.emit("abort")),this},i.prototype._auth=function(t,e,r,o){switch(r.type){case"basic":this.set("Authorization","Basic ".concat(o("".concat(t,":").concat(e))));break;case"auto":this.username=t,this.password=e;break;case"bearer":this.set("Authorization","Bearer ".concat(t))}return this},i.prototype.withCredentials=function(t){return void 0===t&&(t=!0),this._withCredentials=t,this},i.prototype.redirects=function(t){return this._maxRedirects=t,this},i.prototype.maxResponseSize=function(t){if("number"!=typeof t)throw new TypeError("Invalid argument");return this._maxResponseSize=t,this},i.prototype.toJSON=function(){return{method:this.method,url:this.url,data:this._data,headers:this._header}},i.prototype.send=function(t){var e=n(t),r=this._header["content-type"];if(this._formData)throw new Error(".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()");if(e&&!this._data)Array.isArray(t)?this._data=[]:this._isHost(t)||(this._data={});else if(t&&this._data&&this._isHost(this._data))throw new Error("Can't merge these send calls");if(e&&n(this._data))for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(this._data[o]=t[o]);else"string"==typeof t?(r||this.type("form"),(r=this._header["content-type"])&&(r=r.toLowerCase().trim()),this._data="application/x-www-form-urlencoded"===r?this._data?"".concat(this._data,"&").concat(t):t:(this._data||"")+t):this._data=t;return!e||this._isHost(t)||r||this.type("json"),this},i.prototype.sortQuery=function(t){return this._sort=void 0===t||t,this},i.prototype._finalizeQueryString=function(){var t=this._query.join("&");if(t&&(this.url+=(this.url.includes("?")?"&":"?")+t),this._query.length=0,this._sort){var e=this.url.indexOf("?");if(e>=0){var r=this.url.slice(e+1).split("&");"function"==typeof this._sort?r.sort(this._sort):r.sort(),this.url=this.url.slice(0,e)+"?"+r.join("&")}}},i.prototype._appendQueryString=function(){console.warn("Unsupported")},i.prototype._timeoutError=function(t,e,r){if(!this._aborted){var o=new Error("".concat(t+e,"ms exceeded"));o.timeout=e,o.code="ECONNABORTED",o.errno=r,this.timedout=!0,this.timedoutError=o,this.abort(),this.callback(o)}},i.prototype._setTimeouts=function(){var t=this;this._timeout&&!this._timer&&(this._timer=setTimeout((function(){t._timeoutError("Timeout of ",t._timeout,"ETIME")}),this._timeout)),this._responseTimeout&&!this._responseTimeoutTimer&&(this._responseTimeoutTimer=setTimeout((function(){t._timeoutError("Response timeout of ",t._responseTimeout,"ETIMEDOUT")}),this._responseTimeout))}},{"./is-object":9}],12:[function(t,e,r){"use strict";var o=t("./utils");function n(t){if(t)return function(t){for(var e in n.prototype)Object.prototype.hasOwnProperty.call(n.prototype,e)&&(t[e]=n.prototype[e]);return t}(t)}e.exports=n,n.prototype.get=function(t){return this.header[t.toLowerCase()]},n.prototype._setHeaderProperties=function(t){var e=t["content-type"]||"";this.type=o.type(e);var r=o.params(e);for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(this[n]=r[n]);this.links={};try{t.link&&(this.links=o.parseLinks(t.link))}catch(t){}},n.prototype._setStatusProperties=function(t){var e=t/100|0;this.statusCode=t,this.status=this.statusCode,this.statusType=e,this.info=1===e,this.ok=2===e,this.redirect=3===e,this.clientError=4===e,this.serverError=5===e,this.error=(4===e||5===e)&&this.toError(),this.created=201===t,this.accepted=202===t,this.noContent=204===t,this.badRequest=400===t,this.unauthorized=401===t,this.notAcceptable=406===t,this.forbidden=403===t,this.notFound=404===t,this.unprocessableEntity=422===t}},{"./utils":13}],13:[function(t,e,r){"use strict";function o(t,e){var r;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"==typeof t)return n(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return n(t,e)}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var o=0,i=function(){};return{s:i,n:function(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,a=!0,u=!1;return{s:function(){r=t[Symbol.iterator]()},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,s=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw s}}}}function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,o=new Array(e);r=.5?(o.innerHTML=":-(
This is a DeepFake video.
AI is "+100*e+"% sure.",r.style.color="red"):(o.innerHTML="^_^
No DeepFake video.
AI is "+(100-100*e)+"% sure.",r.style.color="green"):o.innerHTML="Oops, sorry, this should not happen.
Try again later.

Is the face in the video easy to see and not too small?

Error: "+e,document.getElementById("preload-deepfake").style.display="none",r.style.display="inline"}let a,u=document.getElementsByClassName("html5-main-video")[0];function c(t){a=t,function(){const t=setInterval((function(){var e=document.getElementsByClassName("ytp-right-controls");if(void 0!==e){if(null===document.getElementById("deepfake")||void 0===document.getElementById("deepfake")){var r=document.createElement("button");r.id="deepfake",r.className="ytp-button it-player-button",r.dataset.title="Deepfake detection",r.onclick=function(){!function(){let t;u=document.getElementsByClassName("html5-main-video")[0],document.getElementById("content").style.backgroundColor="#8b0000",async function(t,e){let r=new MediaRecorder(t,{mimeType:"video/webm"}),o=[];r.ondataavailable=t=>o.push(t.data),r.start();let n=new Promise(((t,e)=>{r.onstop=t,r.onerror=t=>e(t.name)})),i=(s=e,new Promise((t=>setTimeout(t,s)))).then((()=>"recording"==r.state&&r.stop()));var s;return Promise.all([n,i]).then((()=>o))}(u.captureStream(),5e3).then((e=>{document.getElementById("content").style.backgroundColor="#ffffff",function(){t=document.getElementById("recordingDiv"),null!==t&&t.parentNode.removeChild(t);var t;const e=document.createElement("div");e.id="recordingDiv",e.innerHTML='\n
Click here to move
\n [X]Close this window
\n \n
\n
\n Processing...
\n
\n
\n \n
\n \n Video download\n \n ',document.getElementById("content").append(e);var r=document.createElement("img");r.src=chrome.runtime.getURL("images/preloader.gif"),document.getElementById("preload-deepfake").appendChild(r),function(t){var e=0,r=0,o=0,n=0;function i(t){(t=t||window.event).preventDefault(),o=t.clientX,n=t.clientY,document.onmouseup=a,document.onmousemove=s}function s(i){(i=i||window.event).preventDefault(),e=o-i.clientX,r=n-i.clientY,o=i.clientX,n=i.clientY,t.style.top=t.offsetTop-r+"px",t.style.left=t.offsetLeft-e+"px"}function a(){document.onmouseup=null,document.onmousemove=null}document.getElementById(t.id+"Header")?document.getElementById(t.id+"Header").onmousedown=i:t.onmousedown=i}(e)}(),t=new Blob(e,{type:"video/webm"}),recording.src=URL.createObjectURL(t),downloadButton.href=recording.src,downloadButton.download="RecordedVideo.webm"})).then((()=>{let e=new window.FileReader;e.readAsDataURL(t),e.onloadend=function(){i(e.result,a)}}))}()},e[0].insertBefore(r,e[0].childNodes[0]);let t=new Image;t.src=chrome.runtime.getURL("/images/logo48.png"),t.onload=()=>{var e=document.createElement("img");e.src=t.src,r.appendChild(e)}}clearInterval(t)}}),100)}()}window.addEventListener("onhashchange",(function(){location.href.includes("watch")||null!==document.getElementById("recordingDiv")&&document.getElementById("recordingDiv").remove()}));let l,p=location.href;new MutationObserver((()=>{const t=location.href;t!==p&&(p=t,location.href.includes("watch")||null!==document.getElementById("recordingDiv")&&document.getElementById("recordingDiv").remove())})).observe(document,{subtree:!0,childList:!0}),chrome.runtime.onMessage.addListener((function(t,e,r){"initRecordButton"===t.message&&chrome.storage.sync.get(["apiKey"],(function(t){l=t.apiKey,void 0===l?chrome.runtime.openOptionsPage?chrome.runtime.openOptionsPage():window.open(chrome.runtime.getURL("options.html")):c(l)}))}))})(); +(()=>{var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{};var t={};let r;!function(r){if("object"==typeof t)t=r();else if("function"==typeof define&&define.amd)define([],r);else{("undefined"!=typeof window?window:void 0!==e?e:"undefined"!=typeof self?self:this).superagent=r()}}((function(){return function e(t,r,o){function n(s,a){if(!r[s]){if(!t[s]){var u=void 0;if(!a&&u)return u(s,!0);if(i)return i(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var l=r[s]={exports:{}};t[s][0].call(l.exports,(function(e){return n(t[s][1][e]||e)}),l,l.exports,e,t,r,o)}return r[s].exports}for(var i=void 0,s=0;st?1:0}function c(e,t,r){var o,s=l(e,"",[],void 0)||e;for(o=0===i.length?JSON.stringify(s,t,r):JSON.stringify(s,p(t),r);0!==n.length;){var a=n.pop();4===a.length?Object.defineProperty(a[0],a[1],a[3]):a[0][a[1]]=a[2]}return o}function l(e,t,r,s){var a;if("object"===o(e)&&null!==e){for(a=0;a0)for(var o=0;o-1?e.split(","):e},c=function(e,t,r,o){if(e){var i=r.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,s=/(\[[^[\]]*])/g,a=r.depth>0&&/(\[[^[\]]*])/.exec(i),c=a?i.slice(0,a.index):i,l=[];if(c){if(!r.plainObjects&&n.call(Object.prototype,c)&&!r.allowPrototypes)return;l.push(c)}for(var p=0;r.depth>0&&null!==(a=s.exec(i))&&p=0;--i){var s,a=e[i];if("[]"===a&&r.parseArrays)s=[].concat(n);else{s=r.plainObjects?Object.create(null):{};var c="["===a.charAt(0)&&"]"===a.charAt(a.length-1)?a.slice(1,-1):a,l=parseInt(c,10);r.parseArrays||""!==c?!isNaN(l)&&a!==c&&String(l)===c&&l>=0&&r.parseArrays&&l<=r.arrayLimit?(s=[])[l]=n:s[c]=n:s={0:n}}n=s}return n}(l,t,r,o)}};t.exports=function(e,t){var r=function(e){if(!e)return s;if(null!==e.decoder&&void 0!==e.decoder&&"function"!=typeof e.decoder)throw new TypeError("Decoder has to be a function.");if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var t=void 0===e.charset?s.charset:e.charset;return{allowDots:void 0===e.allowDots?s.allowDots:!!e.allowDots,allowPrototypes:"boolean"==typeof e.allowPrototypes?e.allowPrototypes:s.allowPrototypes,arrayLimit:"number"==typeof e.arrayLimit?e.arrayLimit:s.arrayLimit,charset:t,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:s.charsetSentinel,comma:"boolean"==typeof e.comma?e.comma:s.comma,decoder:"function"==typeof e.decoder?e.decoder:s.decoder,delimiter:"string"==typeof e.delimiter||o.isRegExp(e.delimiter)?e.delimiter:s.delimiter,depth:"number"==typeof e.depth||!1===e.depth?+e.depth:s.depth,ignoreQueryPrefix:!0===e.ignoreQueryPrefix,interpretNumericEntities:"boolean"==typeof e.interpretNumericEntities?e.interpretNumericEntities:s.interpretNumericEntities,parameterLimit:"number"==typeof e.parameterLimit?e.parameterLimit:s.parameterLimit,parseArrays:!1!==e.parseArrays,plainObjects:"boolean"==typeof e.plainObjects?e.plainObjects:s.plainObjects,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:s.strictNullHandling}}(t);if(""===e||null==e)return r.plainObjects?Object.create(null):{};for(var l="string"==typeof e?function(e,t){var r,c={},l=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,p=t.parameterLimit===1/0?void 0:t.parameterLimit,f=l.split(t.delimiter,p),d=-1,h=t.charset;if(t.charsetSentinel)for(r=0;r-1&&(m=i(m)?[m]:m),n.call(c,y)?c[y]=o.combine(c[y],m):c[y]=m}return c}(e,r):e,p=r.plainObjects?Object.create(null):{},f=Object.keys(l),d=0;d0?g+v:""}},{"./formats":3,"./utils":7}],7:[function(e,t,r){"use strict";function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var n=Object.prototype.hasOwnProperty,i=Array.isArray,s=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}(),a=function(e,t){for(var r=t&&t.plainObjects?Object.create(null):{},o=0;o1;){var t=e.pop(),r=t.obj[t.prop];if(i(r)){for(var o=[],n=0;n=48&&u<=57||u>=65&&u<=90||u>=97&&u<=122?i+=n.charAt(a):u<128?i+=s[u]:u<2048?i+=s[192|u>>6]+s[128|63&u]:u<55296||u>=57344?i+=s[224|u>>12]+s[128|u>>6&63]+s[128|63&u]:(a+=1,u=65536+((1023&u)<<10|1023&n.charCodeAt(a)),i+=s[240|u>>18]+s[128|u>>12&63]+s[128|u>>6&63]+s[128|63&u])}return i},isBuffer:function(e){return!(!e||"object"!==o(e))&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},maybeMap:function(e,t){if(i(e)){for(var r=[],o=0;oe.length)&&(t=e.length);for(var r=0,o=new Array(t);r0||e instanceof Object)?t(e):null)},g.prototype.toError=function(){var e=this.req,t=e.method,r=e.url,o="cannot ".concat(t," ").concat(r," (").concat(this.status,")"),n=new Error(o);return n.status=this.status,n.method=t,n.url=r,n},d.Response=g,i(w.prototype),u(w.prototype),w.prototype.type=function(e){return this.set("Content-Type",d.types[e]||e),this},w.prototype.accept=function(e){return this.set("Accept",d.types[e]||e),this},w.prototype.auth=function(e,t,r){1===arguments.length&&(t=""),"object"===o(t)&&null!==t&&(r=t,t=""),r||(r={type:"function"==typeof btoa?"basic":"auto"});var n=function(e){if("function"==typeof btoa)return btoa(e);throw new Error("Cannot use basic auth, btoa is not a function")};return this._auth(e,t,r,n)},w.prototype.query=function(e){return"string"!=typeof e&&(e=y(e)),e&&this._query.push(e),this},w.prototype.attach=function(e,t,r){if(t){if(this._data)throw new Error("superagent can't mix .send() and .attach()");this._getFormData().append(e,t,r||t.name)}return this},w.prototype._getFormData=function(){return this._formData||(this._formData=new n.FormData),this._formData},w.prototype.callback=function(e,t){if(this._shouldRetry(e,t))return this._retry();var r=this._callback;this.clearTimeout(),e&&(this._maxRetries&&(e.retries=this._retries-1),this.emit("error",e)),r(e,t)},w.prototype.crossDomainError=function(){var e=new Error("Request has been terminated\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.");e.crossDomain=!0,e.status=this.status,e.method=this.method,e.url=this.url,this.callback(e)},w.prototype.agent=function(){return console.warn("This is not supported in browser version of superagent"),this},w.prototype.ca=w.prototype.agent,w.prototype.buffer=w.prototype.ca,w.prototype.write=function(){throw new Error("Streaming is not supported in browser version of superagent")},w.prototype.pipe=w.prototype.write,w.prototype._isHost=function(e){return e&&"object"===o(e)&&!Array.isArray(e)&&"[object Object]"!==Object.prototype.toString.call(e)},w.prototype.end=function(e){this._endCalled&&console.warn("Warning: .end() was called twice. This is not supported in superagent"),this._endCalled=!0,this._callback=e||f,this._finalizeQueryString(),this._end()},w.prototype._setUploadTimeout=function(){var e=this;this._uploadTimeout&&!this._uploadTimeoutTimer&&(this._uploadTimeoutTimer=setTimeout((function(){e._timeoutError("Upload timeout of ",e._uploadTimeout,"ETIMEDOUT")}),this._uploadTimeout))},w.prototype._end=function(){if(this._aborted)return this.callback(new Error("The request has been aborted even before .end() was called"));var e=this;this.xhr=d.getXHR();var t=this.xhr,r=this._formData||this._data;this._setTimeouts(),t.onreadystatechange=function(){var r=t.readyState;if(r>=2&&e._responseTimeoutTimer&&clearTimeout(e._responseTimeoutTimer),4===r){var o;try{o=t.status}catch(e){o=0}if(!o){if(e.timedout||e._aborted)return;return e.crossDomainError()}e.emit("end")}};var o=function(t,r){r.total>0&&(r.percent=r.loaded/r.total*100,100===r.percent&&clearTimeout(e._uploadTimeoutTimer)),r.direction=t,e.emit("progress",r)};if(this.hasListeners("progress"))try{t.addEventListener("progress",o.bind(null,"download")),t.upload&&t.upload.addEventListener("progress",o.bind(null,"upload"))}catch(e){}t.upload&&this._setUploadTimeout();try{this.username&&this.password?t.open(this.method,this.url,!0,this.username,this.password):t.open(this.method,this.url,!0)}catch(e){return this.callback(e)}if(this._withCredentials&&(t.withCredentials=!0),!this._formData&&"GET"!==this.method&&"HEAD"!==this.method&&"string"!=typeof r&&!this._isHost(r)){var n=this._header["content-type"],i=this._serializer||d.serialize[n?n.split(";")[0]:""];!i&&v(n)&&(i=d.serialize["application/json"]),i&&(r=i(r))}for(var s in this.header)null!==this.header[s]&&Object.prototype.hasOwnProperty.call(this.header,s)&&t.setRequestHeader(s,this.header[s]);this._responseType&&(t.responseType=this._responseType),this.emit("request",this),t.send(void 0===r?null:r)},d.agent=function(){return new p},["GET","POST","OPTIONS","PATCH","PUT","DELETE"].forEach((function(e){p.prototype[e.toLowerCase()]=function(t,r){var o=new d.Request(e,t);return this._setDefaults(o),r&&o.end(r),o}})),p.prototype.del=p.prototype.delete,d.get=function(e,t,r){var o=d("GET",e);return"function"==typeof t&&(r=t,t=null),t&&o.query(t),r&&o.end(r),o},d.head=function(e,t,r){var o=d("HEAD",e);return"function"==typeof t&&(r=t,t=null),t&&o.query(t),r&&o.end(r),o},d.options=function(e,t,r){var o=d("OPTIONS",e);return"function"==typeof t&&(r=t,t=null),t&&o.send(t),r&&o.end(r),o},d.del=_,d.delete=_,d.patch=function(e,t,r){var o=d("PATCH",e);return"function"==typeof t&&(r=t,t=null),t&&o.send(t),r&&o.end(r),o},d.post=function(e,t,r){var o=d("POST",e);return"function"==typeof t&&(r=t,t=null),t&&o.send(t),r&&o.end(r),o},d.put=function(e,t,r){var o=d("PUT",e);return"function"==typeof t&&(r=t,t=null),t&&o.send(t),r&&o.end(r),o}},{"./agent-base":8,"./is-object":9,"./request-base":11,"./response-base":12,"component-emitter":1,"fast-safe-stringify":2,qs:4}],11:[function(e,t,r){"use strict";function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var n=e("./is-object");function i(e){if(e)return function(e){for(var t in i.prototype)Object.prototype.hasOwnProperty.call(i.prototype,t)&&(e[t]=i.prototype[t]);return e}(e)}t.exports=i,i.prototype.clearTimeout=function(){return clearTimeout(this._timer),clearTimeout(this._responseTimeoutTimer),clearTimeout(this._uploadTimeoutTimer),delete this._timer,delete this._responseTimeoutTimer,delete this._uploadTimeoutTimer,this},i.prototype.parse=function(e){return this._parser=e,this},i.prototype.responseType=function(e){return this._responseType=e,this},i.prototype.serialize=function(e){return this._serializer=e,this},i.prototype.timeout=function(e){if(!e||"object"!==o(e))return this._timeout=e,this._responseTimeout=0,this._uploadTimeout=0,this;for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))switch(t){case"deadline":this._timeout=e.deadline;break;case"response":this._responseTimeout=e.response;break;case"upload":this._uploadTimeout=e.upload;break;default:console.warn("Unknown timeout option",t)}return this},i.prototype.retry=function(e,t){return 0!==arguments.length&&!0!==e||(e=1),e<=0&&(e=0),this._maxRetries=e,this._retries=0,this._retryCallback=t,this};var s=new Set(["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"]),a=new Set([408,413,429,500,502,503,504,521,522,524]);i.prototype._shouldRetry=function(e,t){if(!this._maxRetries||this._retries++>=this._maxRetries)return!1;if(this._retryCallback)try{var r=this._retryCallback(e,t);if(!0===r)return!0;if(!1===r)return!1}catch(e){console.error(e)}if(t&&t.status&&a.has(t.status))return!0;if(e){if(e.code&&s.has(e.code))return!0;if(e.timeout&&"ECONNABORTED"===e.code)return!0;if(e.crossDomain)return!0}return!1},i.prototype._retry=function(){return this.clearTimeout(),this.req&&(this.req=null,this.req=this.request()),this._aborted=!1,this.timedout=!1,this.timedoutError=null,this._end()},i.prototype.then=function(e,t){var r=this;if(!this._fullfilledPromise){var o=this;this._endCalled&&console.warn("Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises"),this._fullfilledPromise=new Promise((function(e,t){o.on("abort",(function(){if(!(r._maxRetries&&r._maxRetries>r._retries))if(r.timedout&&r.timedoutError)t(r.timedoutError);else{var e=new Error("Aborted");e.code="ABORTED",e.status=r.status,e.method=r.method,e.url=r.url,t(e)}})),o.end((function(r,o){r?t(r):e(o)}))}))}return this._fullfilledPromise.then(e,t)},i.prototype.catch=function(e){return this.then(void 0,e)},i.prototype.use=function(e){return e(this),this},i.prototype.ok=function(e){if("function"!=typeof e)throw new Error("Callback required");return this._okCallback=e,this},i.prototype._isResponseOK=function(e){return!!e&&(this._okCallback?this._okCallback(e):e.status>=200&&e.status<300)},i.prototype.get=function(e){return this._header[e.toLowerCase()]},i.prototype.getHeader=i.prototype.get,i.prototype.set=function(e,t){if(n(e)){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&this.set(r,e[r]);return this}return this._header[e.toLowerCase()]=t,this.header[e]=t,this},i.prototype.unset=function(e){return delete this._header[e.toLowerCase()],delete this.header[e],this},i.prototype.field=function(e,t){if(null==e)throw new Error(".field(name, val) name can not be empty");if(this._data)throw new Error(".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()");if(n(e)){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&this.field(r,e[r]);return this}if(Array.isArray(t)){for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&this.field(e,t[o]);return this}if(null==t)throw new Error(".field(name, val) val can not be empty");return"boolean"==typeof t&&(t=String(t)),this._getFormData().append(e,t),this},i.prototype.abort=function(){return this._aborted||(this._aborted=!0,this.xhr&&this.xhr.abort(),this.req&&this.req.abort(),this.clearTimeout(),this.emit("abort")),this},i.prototype._auth=function(e,t,r,o){switch(r.type){case"basic":this.set("Authorization","Basic ".concat(o("".concat(e,":").concat(t))));break;case"auto":this.username=e,this.password=t;break;case"bearer":this.set("Authorization","Bearer ".concat(e))}return this},i.prototype.withCredentials=function(e){return void 0===e&&(e=!0),this._withCredentials=e,this},i.prototype.redirects=function(e){return this._maxRedirects=e,this},i.prototype.maxResponseSize=function(e){if("number"!=typeof e)throw new TypeError("Invalid argument");return this._maxResponseSize=e,this},i.prototype.toJSON=function(){return{method:this.method,url:this.url,data:this._data,headers:this._header}},i.prototype.send=function(e){var t=n(e),r=this._header["content-type"];if(this._formData)throw new Error(".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()");if(t&&!this._data)Array.isArray(e)?this._data=[]:this._isHost(e)||(this._data={});else if(e&&this._data&&this._isHost(this._data))throw new Error("Can't merge these send calls");if(t&&n(this._data))for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(this._data[o]=e[o]);else"string"==typeof e?(r||this.type("form"),(r=this._header["content-type"])&&(r=r.toLowerCase().trim()),this._data="application/x-www-form-urlencoded"===r?this._data?"".concat(this._data,"&").concat(e):e:(this._data||"")+e):this._data=e;return!t||this._isHost(e)||r||this.type("json"),this},i.prototype.sortQuery=function(e){return this._sort=void 0===e||e,this},i.prototype._finalizeQueryString=function(){var e=this._query.join("&");if(e&&(this.url+=(this.url.includes("?")?"&":"?")+e),this._query.length=0,this._sort){var t=this.url.indexOf("?");if(t>=0){var r=this.url.slice(t+1).split("&");"function"==typeof this._sort?r.sort(this._sort):r.sort(),this.url=this.url.slice(0,t)+"?"+r.join("&")}}},i.prototype._appendQueryString=function(){console.warn("Unsupported")},i.prototype._timeoutError=function(e,t,r){if(!this._aborted){var o=new Error("".concat(e+t,"ms exceeded"));o.timeout=t,o.code="ECONNABORTED",o.errno=r,this.timedout=!0,this.timedoutError=o,this.abort(),this.callback(o)}},i.prototype._setTimeouts=function(){var e=this;this._timeout&&!this._timer&&(this._timer=setTimeout((function(){e._timeoutError("Timeout of ",e._timeout,"ETIME")}),this._timeout)),this._responseTimeout&&!this._responseTimeoutTimer&&(this._responseTimeoutTimer=setTimeout((function(){e._timeoutError("Response timeout of ",e._responseTimeout,"ETIMEDOUT")}),this._responseTimeout))}},{"./is-object":9}],12:[function(e,t,r){"use strict";var o=e("./utils");function n(e){if(e)return function(e){for(var t in n.prototype)Object.prototype.hasOwnProperty.call(n.prototype,t)&&(e[t]=n.prototype[t]);return e}(e)}t.exports=n,n.prototype.get=function(e){return this.header[e.toLowerCase()]},n.prototype._setHeaderProperties=function(e){var t=e["content-type"]||"";this.type=o.type(t);var r=o.params(t);for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(this[n]=r[n]);this.links={};try{e.link&&(this.links=o.parseLinks(e.link))}catch(e){}},n.prototype._setStatusProperties=function(e){var t=e/100|0;this.statusCode=e,this.status=this.statusCode,this.statusType=t,this.info=1===t,this.ok=2===t,this.redirect=3===t,this.clientError=4===t,this.serverError=5===t,this.error=(4===t||5===t)&&this.toError(),this.created=201===e,this.accepted=202===e,this.noContent=204===e,this.badRequest=400===e,this.unauthorized=401===e,this.notAcceptable=406===e,this.forbidden=403===e,this.notFound=404===e,this.unprocessableEntity=422===e}},{"./utils":13}],13:[function(e,t,r){"use strict";function o(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return n(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return n(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var o=0,i=function(){};return{s:i,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,a=!0,u=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return a=e.done,e},e:function(e){u=!0,s=e},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw s}}}}function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=new Array(t);r=.5?(o.innerHTML="❌ Fake
This is a DeepFake video.
AI is "+Math.round(100*t)+"% sure.

Note: An AI can always be wrong.
Therefore, be skeptical.",r.style.color="red",a(!0,100*t)):(o.innerHTML="✅ Ok
No DeepFake video.
AI is "+Math.round(100-100*t)+"% sure.

Note: An AI can always be wrong.
Therefore, be skeptical.",r.style.color="green",a(!1,100-100*t)):o.innerHTML="Oops, sorry, this should not happen.
The AI could not process the video.

Try again later.

Is the face in the video easy to see and not too small?
",document.getElementById("preload-deepfake").style.display="none",r.style.display="inline"}function a(e,t){let r=window.location.href;!function(e,t,r,o){let n=new Date,i=n.getFullYear()+"-"+(n.getMonth()+1)+"-"+n.getDate()+" "+n.getHours()+":"+n.getMinutes()+":"+n.getSeconds();chrome.storage.sync.get(["deepfakeChecks"],(function(n){let s=n.deepfakeChecks;void 0===s&&(s=[]),s.push({page_title:e,page_url:t,score:o,isFake:r,timeChecked:i}),chrome.storage.sync.set({deepfakeChecks:s},(function(){}))}))}(document.title,r,e,t)}let u,c=document.getElementsByClassName("html5-main-video")[0];function l(e){u=e,function(){const e=setInterval((function(){var t=document.getElementsByClassName("ytp-right-controls");if(void 0!==t){if(null===document.getElementById("deepfake")||void 0===document.getElementById("deepfake")){var r=document.createElement("button");r.id="deepfake",r.className="ytp-button it-player-button",r.dataset.title="Deepfake detection",r.onclick=function(){!function(){let e;c=document.getElementsByClassName("html5-main-video")[0],document.getElementById("content").style.backgroundColor="#8b0000",async function(e,t){let r=new MediaRecorder(e,{mimeType:"video/webm"}),o=[];r.ondataavailable=e=>o.push(e.data),r.start();let n=new Promise(((e,t)=>{r.onstop=e,r.onerror=e=>t(e.name)})),i=(s=t,new Promise((e=>setTimeout(e,s)))).then((()=>"recording"==r.state&&r.stop()));var s;return Promise.all([n,i]).then((()=>o))}(c.captureStream(),5e3).then((t=>{document.getElementById("content").style.backgroundColor="#ffffff",function(){e=document.getElementById("recordingDiv"),null!==e&&e.parentNode.removeChild(e);var e;const t=document.createElement("div");t.id="recordingDiv",t.innerHTML='\n
Click here to move
\n [X]Close this window
\n \n
\n
\n Processing...
\n
\n
\n \n
\n \n Video download\n \n ',document.getElementById("content").append(t);var r=document.createElement("img");r.src=chrome.runtime.getURL("images/preloader.gif"),document.getElementById("preload-deepfake").appendChild(r),function(e){var t=0,r=0,o=0,n=0;function i(e){(e=e||window.event).preventDefault(),o=e.clientX,n=e.clientY,document.onmouseup=a,document.onmousemove=s}function s(i){(i=i||window.event).preventDefault(),t=o-i.clientX,r=n-i.clientY,o=i.clientX,n=i.clientY,e.style.top=e.offsetTop-r+"px",e.style.left=e.offsetLeft-t+"px"}function a(){document.onmouseup=null,document.onmousemove=null}document.getElementById(e.id+"Header")?document.getElementById(e.id+"Header").onmousedown=i:e.onmousedown=i}(t)}(),e=new Blob(t,{type:"video/webm"}),recording.src=URL.createObjectURL(e),downloadButton.href=recording.src,downloadButton.download="RecordedVideo.webm"})).then((()=>{let t=new window.FileReader;t.readAsDataURL(e),t.onloadend=function(){i(t.result,u)}}))}()},t[0].insertBefore(r,t[0].childNodes[0]);let e=new Image;e.src=chrome.runtime.getURL("/images/logo48.png"),e.onload=()=>{var t=document.createElement("img");t.src=e.src,r.appendChild(t)}}clearInterval(e)}}),100)}()}window.addEventListener("onhashchange",(function(){location.href.includes("watch")||null!==document.getElementById("recordingDiv")&&document.getElementById("recordingDiv").remove()}));let p,f=location.href;new MutationObserver((()=>{const e=location.href;e!==f&&(f=e,location.href.includes("watch")||null!==document.getElementById("recordingDiv")&&document.getElementById("recordingDiv").remove())})).observe(document,{subtree:!0,childList:!0}),chrome.runtime.onMessage.addListener((function(e,t,r){"initRecordButton"===e.message&&chrome.storage.sync.get(["apiKey"],(function(e){p=e.apiKey,void 0===p?chrome.runtime.openOptionsPage?chrome.runtime.openOptionsPage():window.open(chrome.runtime.getURL("options.html")):l(p)}))}))})(); //# sourceMappingURL=content.js.map diff --git a/dist/content.js.map b/dist/content.js.map index 206f388..f22015e 100644 --- a/dist/content.js.map +++ b/dist/content.js.map @@ -1 +1 @@ -{"mappings":"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","sources":["src/modzyDeepFakeModel.js","node_modules/superagent/dist/superagent.js","src/deepfake.js","src/dragRecordingDiv.js","src/content.js"],"sourcesContent":["import * as superagent from 'superagent/dist/superagent';\r\n\r\nlet apiKey;\r\nlet version=\"0.0.7\"; // default version override by getLatestModelVersionAndSubmit\r\nlet base64data; // video payload\r\n\r\n/**\r\n * Submit job.\r\n * First get the latest version of the deepfake model, then submit\r\n * @param pBase64data\r\n * @param pApiKey\r\n */\r\nfunction submitJob(pBase64data, pApiKey){\r\n apiKey = pApiKey;\r\n base64data = pBase64data\r\n\r\n getLatestModelVersionAndSubmit();\r\n\r\n}\r\n\r\n/**\r\n * Get the latest version from deepfake model\r\n * After that submit the job with this version or use default if call fails\r\n */\r\nfunction getLatestModelVersionAndSubmit(){\r\n superagent\r\n .get(\"https://app.modzy.com/api/models/93ltr2oepu/versions?isAvailable=true&isActive=true&sort-by=version&direction=DESC\")\r\n .set(\"Accept\", \"application/json\")\r\n .set(\"Authorization\", \"ApiKey \"+ apiKey)\r\n .redirects(0)\r\n .end(function (err, res) {\r\n if (err || !res.ok) {\r\n // ignore error, use default version\r\n } else {\r\n // because &sort-by=version&direction=DESC latest version is at pos 0\r\n version = res.body[0][\"version\"];\r\n }\r\n submitToLatestVersion();\r\n });\r\n}\r\n\r\n/**\r\n * Submit job to latest model version\r\n */\r\nfunction submitToLatestVersion(){\r\n superagent\r\n .post(\"https://app.modzy.com/api/jobs\")\r\n .send({\r\n model: {\r\n identifier: \"93ltr2oepu\",\r\n version: version,\r\n },\r\n input: {\r\n type: \"embedded\",\r\n sources: {\r\n \"my-input\": {\r\n \"input.mp4\": base64data\r\n },\r\n },\r\n },\r\n })\r\n .set(\"Content-Type\", \"application/json\")\r\n .set(\"Authorization\", \"ApiKey \"+ apiKey)\r\n .redirects(0)\r\n .end(function (err, res) {\r\n if (err || !res.ok) {\r\n console.error(\"Oh no! error\");\r\n } else {\r\n pollStatus(res.body[\"jobIdentifier\"]);\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * Poll job status with interval until finished\r\n *\r\n * @param jobIdentifier\r\n */\r\nfunction pollStatus(jobIdentifier){\r\n\r\n const pollJobInterval = setInterval(function (){\r\n superagent\r\n .get(\"https://app.modzy.com/api/jobs/\" + jobIdentifier)\r\n .set(\"Content-Type\", \"application/json\")\r\n .set(\"Authorization\", \"ApiKey \"+ apiKey)\r\n .redirects(0)\r\n .end(function (err, res) {\r\n if (err || !res.ok) {\r\n console.error(\"Oh no! error\");\r\n } else {\r\n let jobStatus = res.body[\"status\"]\r\n if(\"COMPLETED\" === jobStatus || \"TIMEDOUT\" === jobStatus || \"CANCELED\" === jobStatus || \"ERROR\" === jobStatus){\r\n clearInterval(pollJobInterval);\r\n getJobResult(jobIdentifier);\r\n }\r\n }\r\n });\r\n }, 500);\r\n}\r\n\r\n/**\r\n * Get result from finished job and process status from result\r\n *\r\n * @param jobIdentifier\r\n */\r\nfunction getJobResult(jobIdentifier){\r\n superagent\r\n .get(\"https://app.modzy.com/api/results/\" + jobIdentifier)\r\n .set(\"Content-Type\", \"application/json\")\r\n .set(\"Authorization\", \"ApiKey \"+ apiKey)\r\n .redirects(0)\r\n .end(function (err, res) {\r\n if (err || !res.ok) {\r\n console.error(\"Oh no! error\");\r\n } else {\r\n // check for general error response\r\n if(res.body[\"failures\"] !== undefined){\r\n updateModelResult(\"FAILED\", res.body[\"failures\"][\"my-input\"][\"error\"]);\r\n }else{\r\n // no error, process job status\r\n let status = res.body[\"results\"][\"my-input\"][\"status\"];\r\n if(\"SUCCESSFUL\" === status){\r\n let score = res.body[\"results\"][\"my-input\"][\"results.json\"][\"input.mp4\"];\r\n updateModelResult(status, parseFloat((score).toFixed( 2 )));\r\n }else {\r\n let error = res.body[\"results\"][\"my-input\"][\"error\"];\r\n updateModelResult(status, error);\r\n }\r\n }\r\n\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * Update gui div with info about model result\r\n *\r\n * @param status\r\n * @param result\r\n */\r\nfunction updateModelResult(status, result){\r\n let resultDIV = document.getElementById(\"deep-check-results\");;\r\n let message = document.getElementById(\"result-deepfake-message\");\r\n if(\"SUCCESSFUL\" === status){\r\n if(result >= 0.5){\r\n message.innerHTML = \":-(
This is a DeepFake video.
AI is \" + (result*100) +\"% sure.\";\r\n resultDIV.style.color=\"red\";\r\n }else{\r\n message.innerHTML = \"^_^
No DeepFake video.
AI is \" + (100-(result*100)) +\"% sure.\";\r\n resultDIV.style.color=\"green\";\r\n }\r\n }else {\r\n message.innerHTML = \"Oops, sorry, this should not happen.
Try again later.

Is the face in the video easy to see and not too small?

Error: \" + result;\r\n }\r\n document.getElementById(\"preload-deepfake\").style.display=\"none\";\r\n resultDIV.style.display=\"inline\";\r\n}\r\n\r\nexport {submitJob};\r\n\r\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.superagent = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i b) {\n return 1;\n }\n\n return 0;\n}\n\nfunction deterministicStringify(obj, replacer, spacer) {\n var tmp = deterministicDecirc(obj, '', [], undefined) || obj;\n var res;\n\n if (replacerStack.length === 0) {\n res = JSON.stringify(tmp, replacer, spacer);\n } else {\n res = JSON.stringify(tmp, replaceGetterValues(replacer), spacer);\n }\n\n while (arr.length !== 0) {\n var part = arr.pop();\n\n if (part.length === 4) {\n Object.defineProperty(part[0], part[1], part[3]);\n } else {\n part[0][part[1]] = part[2];\n }\n }\n\n return res;\n}\n\nfunction deterministicDecirc(val, k, stack, parent) {\n var i;\n\n if (_typeof(val) === 'object' && val !== null) {\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === val) {\n var propertyDescriptor = Object.getOwnPropertyDescriptor(parent, k);\n\n if (propertyDescriptor.get !== undefined) {\n if (propertyDescriptor.configurable) {\n Object.defineProperty(parent, k, {\n value: '[Circular]'\n });\n arr.push([parent, k, val, propertyDescriptor]);\n } else {\n replacerStack.push([val, k]);\n }\n } else {\n parent[k] = '[Circular]';\n arr.push([parent, k, val]);\n }\n\n return;\n }\n }\n\n if (typeof val.toJSON === 'function') {\n return;\n }\n\n stack.push(val); // Optimize for Arrays. Big arrays could kill the performance otherwise!\n\n if (Array.isArray(val)) {\n for (i = 0; i < val.length; i++) {\n deterministicDecirc(val[i], i, stack, val);\n }\n } else {\n // Create a temporary object in the required way\n var tmp = {};\n var keys = Object.keys(val).sort(compareFunction);\n\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n deterministicDecirc(val[key], key, stack, val);\n tmp[key] = val[key];\n }\n\n if (parent !== undefined) {\n arr.push([parent, k, val]);\n parent[k] = tmp;\n } else {\n return tmp;\n }\n }\n\n stack.pop();\n }\n} // wraps replacer function to handle values we couldn't replace\n// and mark them as [Circular]\n\n\nfunction replaceGetterValues(replacer) {\n replacer = replacer !== undefined ? replacer : function (k, v) {\n return v;\n };\n return function (key, val) {\n if (replacerStack.length > 0) {\n for (var i = 0; i < replacerStack.length; i++) {\n var part = replacerStack[i];\n\n if (part[1] === key && part[0] === val) {\n val = '[Circular]';\n replacerStack.splice(i, 1);\n break;\n }\n }\n }\n\n return replacer.call(this, key, val);\n };\n}\n\n},{}],3:[function(require,module,exports){\n'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar util = require('./utils');\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\nmodule.exports = util.assign({\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function RFC1738(value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function RFC3986(value) {\n return String(value);\n }\n }\n}, Format);\n\n},{\"./utils\":7}],4:[function(require,module,exports){\n'use strict';\n\nvar stringify = require('./stringify');\n\nvar parse = require('./parse');\n\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n\n},{\"./formats\":3,\"./parse\":5,\"./stringify\":6}],5:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function interpretNumericEntities(str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function parseArrayValue(val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n}; // This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\n\n\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\n\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n\n var i;\n var charset = options.charset;\n\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n\n var part = parts[i];\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n var key, val;\n\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(parseArrayValue(part.slice(pos + 1), options), function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n });\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function parseObject(chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n\n if (!options.parseArrays && cleanRoot === '') {\n obj = {\n 0: leaf\n };\n } else if (!isNaN(index) && root !== cleanRoot && String(index) === cleanRoot && index >= 0 && options.parseArrays && index <= options.arrayLimit) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj; // eslint-disable-line no-param-reassign\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n } // Transform dot notation to bracket notation\n\n\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey; // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g; // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key; // Stash the parent if it exists\n\n var keys = [];\n\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n } // Loop through children appending to the array until we hit depth\n\n\n var i = 0;\n\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(segment[1]);\n } // If there's a remainder, just add whatever is left\n\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: typeof opts.depth === 'number' || opts.depth === false ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {}; // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n return utils.compact(obj);\n};\n\n},{\"./utils\":7}],6:[function(require,module,exports){\n'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar utils = require('./utils');\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\n\nvar pushToArray = function pushToArray(arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string' || typeof v === 'number' || typeof v === 'boolean' || _typeof(v) === 'symbol' || typeof v === 'bigint';\n};\n\nvar stringify = function stringify(object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter, encodeValuesOnly, charset) {\n var obj = object;\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n\n return value;\n }).join(',');\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key') : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key');\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value'))];\n }\n\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n\n if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n var value = obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj) ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix : prefix + (allowDots ? '.' + key : '[' + key + ']');\n pushToArray(values, stringify(value, keyPrefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter, encodeValuesOnly, charset));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n\n format = opts.format;\n }\n\n var formatter = formats.formatters[format];\n var filter = defaults.filter;\n\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (_typeof(obj) !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n\n pushToArray(keys, stringify(obj[key], key, generateArrayPrefix, options.strictNullHandling, options.skipNulls, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.formatter, options.encodeValuesOnly, options.charset));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n\n},{\"./formats\":3,\"./utils\":7}],7:[function(require,module,exports){\n'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = function () {\n var array = [];\n\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}();\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (_typeof(source) !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && _typeof(target) === 'object') {\n if (options && (options.plainObjects || options.allowPrototypes) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || _typeof(target) !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n\n if (targetItem && _typeof(targetItem) === 'object' && item && _typeof(item) === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function decode(str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n } // utf-8\n\n\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n\n if (_typeof(str) === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || c >= 0x30 && c <= 0x39 // 0-9\n || c >= 0x41 && c <= 0x5A // a-z\n || c >= 0x61 && c <= 0x7A // A-Z\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | c >> 6] + hexTable[0x80 | c & 0x3F]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | c >> 12] + hexTable[0x80 | c >> 6 & 0x3F] + hexTable[0x80 | c & 0x3F]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + ((c & 0x3FF) << 10 | string.charCodeAt(i) & 0x3FF);\n out += hexTable[0xF0 | c >> 18] + hexTable[0x80 | c >> 12 & 0x3F] + hexTable[0x80 | c >> 6 & 0x3F] + hexTable[0x80 | c & 0x3F];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{\n obj: {\n o: value\n },\n prop: 'o'\n }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n var keys = Object.keys(obj);\n\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n\n if (_typeof(val) === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({\n obj: obj,\n prop: key\n });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || _typeof(obj) !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n\n return mapped;\n }\n\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n\n},{}],8:[function(require,module,exports){\n\"use strict\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction Agent() {\n this._defaults = [];\n}\n\n['use', 'on', 'once', 'set', 'query', 'type', 'accept', 'auth', 'withCredentials', 'sortQuery', 'retry', 'ok', 'redirects', 'timeout', 'buffer', 'serialize', 'parse', 'ca', 'key', 'pfx', 'cert', 'disableTLSCerts'].forEach(function (fn) {\n // Default setting for all requests from this agent\n Agent.prototype[fn] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n this._defaults.push({\n fn: fn,\n args: args\n });\n\n return this;\n };\n});\n\nAgent.prototype._setDefaults = function (req) {\n this._defaults.forEach(function (def) {\n req[def.fn].apply(req, _toConsumableArray(def.args));\n });\n};\n\nmodule.exports = Agent;\n\n},{}],9:[function(require,module,exports){\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Check if `obj` is an object.\n *\n * @param {Object} obj\n * @return {Boolean}\n * @api private\n */\nfunction isObject(obj) {\n return obj !== null && _typeof(obj) === 'object';\n}\n\nmodule.exports = isObject;\n\n},{}],10:[function(require,module,exports){\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Root reference for iframes.\n */\nvar root;\n\nif (typeof window !== 'undefined') {\n // Browser window\n root = window;\n} else if (typeof self === 'undefined') {\n // Other environments\n console.warn('Using browser-only version of superagent in non-browser environment');\n root = void 0;\n} else {\n // Web Worker\n root = self;\n}\n\nvar Emitter = require('component-emitter');\n\nvar safeStringify = require('fast-safe-stringify');\n\nvar qs = require('qs');\n\nvar RequestBase = require('./request-base');\n\nvar isObject = require('./is-object');\n\nvar ResponseBase = require('./response-base');\n\nvar Agent = require('./agent-base');\n/**\n * Noop.\n */\n\n\nfunction noop() {}\n/**\n * Expose `request`.\n */\n\n\nmodule.exports = function (method, url) {\n // callback\n if (typeof url === 'function') {\n return new exports.Request('GET', method).end(url);\n } // url first\n\n\n if (arguments.length === 1) {\n return new exports.Request('GET', method);\n }\n\n return new exports.Request(method, url);\n};\n\nexports = module.exports;\nvar request = exports;\nexports.Request = Request;\n/**\n * Determine XHR.\n */\n\nrequest.getXHR = function () {\n if (root.XMLHttpRequest && (!root.location || root.location.protocol !== 'file:' || !root.ActiveXObject)) {\n return new XMLHttpRequest();\n }\n\n try {\n return new ActiveXObject('Microsoft.XMLHTTP');\n } catch (_unused) {}\n\n try {\n return new ActiveXObject('Msxml2.XMLHTTP.6.0');\n } catch (_unused2) {}\n\n try {\n return new ActiveXObject('Msxml2.XMLHTTP.3.0');\n } catch (_unused3) {}\n\n try {\n return new ActiveXObject('Msxml2.XMLHTTP');\n } catch (_unused4) {}\n\n throw new Error('Browser-only version of superagent could not find XHR');\n};\n/**\n * Removes leading and trailing whitespace, added to support IE.\n *\n * @param {String} s\n * @return {String}\n * @api private\n */\n\n\nvar trim = ''.trim ? function (s) {\n return s.trim();\n} : function (s) {\n return s.replace(/(^\\s*|\\s*$)/g, '');\n};\n/**\n * Serialize the given `obj`.\n *\n * @param {Object} obj\n * @return {String}\n * @api private\n */\n\nfunction serialize(obj) {\n if (!isObject(obj)) return obj;\n var pairs = [];\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) pushEncodedKeyValuePair(pairs, key, obj[key]);\n }\n\n return pairs.join('&');\n}\n/**\n * Helps 'serialize' with serializing arrays.\n * Mutates the pairs array.\n *\n * @param {Array} pairs\n * @param {String} key\n * @param {Mixed} val\n */\n\n\nfunction pushEncodedKeyValuePair(pairs, key, val) {\n if (val === undefined) return;\n\n if (val === null) {\n pairs.push(encodeURI(key));\n return;\n }\n\n if (Array.isArray(val)) {\n val.forEach(function (v) {\n pushEncodedKeyValuePair(pairs, key, v);\n });\n } else if (isObject(val)) {\n for (var subkey in val) {\n if (Object.prototype.hasOwnProperty.call(val, subkey)) pushEncodedKeyValuePair(pairs, \"\".concat(key, \"[\").concat(subkey, \"]\"), val[subkey]);\n }\n } else {\n pairs.push(encodeURI(key) + '=' + encodeURIComponent(val));\n }\n}\n/**\n * Expose serialization method.\n */\n\n\nrequest.serializeObject = serialize;\n/**\n * Parse the given x-www-form-urlencoded `str`.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseString(str) {\n var obj = {};\n var pairs = str.split('&');\n var pair;\n var pos;\n\n for (var i = 0, len = pairs.length; i < len; ++i) {\n pair = pairs[i];\n pos = pair.indexOf('=');\n\n if (pos === -1) {\n obj[decodeURIComponent(pair)] = '';\n } else {\n obj[decodeURIComponent(pair.slice(0, pos))] = decodeURIComponent(pair.slice(pos + 1));\n }\n }\n\n return obj;\n}\n/**\n * Expose parser.\n */\n\n\nrequest.parseString = parseString;\n/**\n * Default MIME type map.\n *\n * superagent.types.xml = 'application/xml';\n *\n */\n\nrequest.types = {\n html: 'text/html',\n json: 'application/json',\n xml: 'text/xml',\n urlencoded: 'application/x-www-form-urlencoded',\n form: 'application/x-www-form-urlencoded',\n 'form-data': 'application/x-www-form-urlencoded'\n};\n/**\n * Default serialization map.\n *\n * superagent.serialize['application/xml'] = function(obj){\n * return 'generated xml here';\n * };\n *\n */\n\nrequest.serialize = {\n 'application/x-www-form-urlencoded': qs.stringify,\n 'application/json': safeStringify\n};\n/**\n * Default parsers.\n *\n * superagent.parse['application/xml'] = function(str){\n * return { object parsed from str };\n * };\n *\n */\n\nrequest.parse = {\n 'application/x-www-form-urlencoded': parseString,\n 'application/json': JSON.parse\n};\n/**\n * Parse the given header `str` into\n * an object containing the mapped fields.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseHeader(str) {\n var lines = str.split(/\\r?\\n/);\n var fields = {};\n var index;\n var line;\n var field;\n var val;\n\n for (var i = 0, len = lines.length; i < len; ++i) {\n line = lines[i];\n index = line.indexOf(':');\n\n if (index === -1) {\n // could be empty line, just skip it\n continue;\n }\n\n field = line.slice(0, index).toLowerCase();\n val = trim(line.slice(index + 1));\n fields[field] = val;\n }\n\n return fields;\n}\n/**\n * Check if `mime` is json or has +json structured syntax suffix.\n *\n * @param {String} mime\n * @return {Boolean}\n * @api private\n */\n\n\nfunction isJSON(mime) {\n // should match /json or +json\n // but not /json-seq\n return /[/+]json($|[^-\\w])/i.test(mime);\n}\n/**\n * Initialize a new `Response` with the given `xhr`.\n *\n * - set flags (.ok, .error, etc)\n * - parse header\n *\n * Examples:\n *\n * Aliasing `superagent` as `request` is nice:\n *\n * request = superagent;\n *\n * We can use the promise-like API, or pass callbacks:\n *\n * request.get('/').end(function(res){});\n * request.get('/', function(res){});\n *\n * Sending data can be chained:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' })\n * .end(function(res){});\n *\n * Or passed to `.send()`:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' }, function(res){});\n *\n * Or passed to `.post()`:\n *\n * request\n * .post('/user', { name: 'tj' })\n * .end(function(res){});\n *\n * Or further reduced to a single call for simple cases:\n *\n * request\n * .post('/user', { name: 'tj' }, function(res){});\n *\n * @param {XMLHTTPRequest} xhr\n * @param {Object} options\n * @api private\n */\n\n\nfunction Response(req) {\n this.req = req;\n this.xhr = this.req.xhr; // responseText is accessible only if responseType is '' or 'text' and on older browsers\n\n this.text = this.req.method !== 'HEAD' && (this.xhr.responseType === '' || this.xhr.responseType === 'text') || typeof this.xhr.responseType === 'undefined' ? this.xhr.responseText : null;\n this.statusText = this.req.xhr.statusText;\n var status = this.xhr.status; // handle IE9 bug: http://stackoverflow.com/questions/10046972/msie-returns-status-code-of-1223-for-ajax-request\n\n if (status === 1223) {\n status = 204;\n }\n\n this._setStatusProperties(status);\n\n this.headers = parseHeader(this.xhr.getAllResponseHeaders());\n this.header = this.headers; // getAllResponseHeaders sometimes falsely returns \"\" for CORS requests, but\n // getResponseHeader still works. so we get content-type even if getting\n // other headers fails.\n\n this.header['content-type'] = this.xhr.getResponseHeader('content-type');\n\n this._setHeaderProperties(this.header);\n\n if (this.text === null && req._responseType) {\n this.body = this.xhr.response;\n } else {\n this.body = this.req.method === 'HEAD' ? null : this._parseBody(this.text ? this.text : this.xhr.response);\n }\n} // eslint-disable-next-line new-cap\n\n\nResponseBase(Response.prototype);\n/**\n * Parse the given body `str`.\n *\n * Used for auto-parsing of bodies. Parsers\n * are defined on the `superagent.parse` object.\n *\n * @param {String} str\n * @return {Mixed}\n * @api private\n */\n\nResponse.prototype._parseBody = function (str) {\n var parse = request.parse[this.type];\n\n if (this.req._parser) {\n return this.req._parser(this, str);\n }\n\n if (!parse && isJSON(this.type)) {\n parse = request.parse['application/json'];\n }\n\n return parse && str && (str.length > 0 || str instanceof Object) ? parse(str) : null;\n};\n/**\n * Return an `Error` representative of this response.\n *\n * @return {Error}\n * @api public\n */\n\n\nResponse.prototype.toError = function () {\n var req = this.req;\n var method = req.method;\n var url = req.url;\n var msg = \"cannot \".concat(method, \" \").concat(url, \" (\").concat(this.status, \")\");\n var err = new Error(msg);\n err.status = this.status;\n err.method = method;\n err.url = url;\n return err;\n};\n/**\n * Expose `Response`.\n */\n\n\nrequest.Response = Response;\n/**\n * Initialize a new `Request` with the given `method` and `url`.\n *\n * @param {String} method\n * @param {String} url\n * @api public\n */\n\nfunction Request(method, url) {\n var self = this;\n this._query = this._query || [];\n this.method = method;\n this.url = url;\n this.header = {}; // preserves header name case\n\n this._header = {}; // coerces header names to lowercase\n\n this.on('end', function () {\n var err = null;\n var res = null;\n\n try {\n res = new Response(self);\n } catch (err_) {\n err = new Error('Parser is unable to parse the response');\n err.parse = true;\n err.original = err_; // issue #675: return the raw response if the response parsing fails\n\n if (self.xhr) {\n // ie9 doesn't have 'response' property\n err.rawResponse = typeof self.xhr.responseType === 'undefined' ? self.xhr.responseText : self.xhr.response; // issue #876: return the http status code if the response parsing fails\n\n err.status = self.xhr.status ? self.xhr.status : null;\n err.statusCode = err.status; // backwards-compat only\n } else {\n err.rawResponse = null;\n err.status = null;\n }\n\n return self.callback(err);\n }\n\n self.emit('response', res);\n var new_err;\n\n try {\n if (!self._isResponseOK(res)) {\n new_err = new Error(res.statusText || res.text || 'Unsuccessful HTTP response');\n }\n } catch (err_) {\n new_err = err_; // ok() callback can throw\n } // #1000 don't catch errors from the callback to avoid double calling it\n\n\n if (new_err) {\n new_err.original = err;\n new_err.response = res;\n new_err.status = res.status;\n self.callback(new_err, res);\n } else {\n self.callback(null, res);\n }\n });\n}\n/**\n * Mixin `Emitter` and `RequestBase`.\n */\n// eslint-disable-next-line new-cap\n\n\nEmitter(Request.prototype); // eslint-disable-next-line new-cap\n\nRequestBase(Request.prototype);\n/**\n * Set Content-Type to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.xml = 'application/xml';\n *\n * request.post('/')\n * .type('xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * request.post('/')\n * .type('application/xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * @param {String} type\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.type = function (type) {\n this.set('Content-Type', request.types[type] || type);\n return this;\n};\n/**\n * Set Accept to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.json = 'application/json';\n *\n * request.get('/agent')\n * .accept('json')\n * .end(callback);\n *\n * request.get('/agent')\n * .accept('application/json')\n * .end(callback);\n *\n * @param {String} accept\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.accept = function (type) {\n this.set('Accept', request.types[type] || type);\n return this;\n};\n/**\n * Set Authorization field value with `user` and `pass`.\n *\n * @param {String} user\n * @param {String} [pass] optional in case of using 'bearer' as type\n * @param {Object} options with 'type' property 'auto', 'basic' or 'bearer' (default 'basic')\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.auth = function (user, pass, options) {\n if (arguments.length === 1) pass = '';\n\n if (_typeof(pass) === 'object' && pass !== null) {\n // pass is optional and can be replaced with options\n options = pass;\n pass = '';\n }\n\n if (!options) {\n options = {\n type: typeof btoa === 'function' ? 'basic' : 'auto'\n };\n }\n\n var encoder = function encoder(string) {\n if (typeof btoa === 'function') {\n return btoa(string);\n }\n\n throw new Error('Cannot use basic auth, btoa is not a function');\n };\n\n return this._auth(user, pass, options, encoder);\n};\n/**\n * Add query-string `val`.\n *\n * Examples:\n *\n * request.get('/shoes')\n * .query('size=10')\n * .query({ color: 'blue' })\n *\n * @param {Object|String} val\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.query = function (val) {\n if (typeof val !== 'string') val = serialize(val);\n if (val) this._query.push(val);\n return this;\n};\n/**\n * Queue the given `file` as an attachment to the specified `field`,\n * with optional `options` (or filename).\n *\n * ``` js\n * request.post('/upload')\n * .attach('content', new Blob(['hey!'], { type: \"text/html\"}))\n * .end(callback);\n * ```\n *\n * @param {String} field\n * @param {Blob|File} file\n * @param {String|Object} options\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.attach = function (field, file, options) {\n if (file) {\n if (this._data) {\n throw new Error(\"superagent can't mix .send() and .attach()\");\n }\n\n this._getFormData().append(field, file, options || file.name);\n }\n\n return this;\n};\n\nRequest.prototype._getFormData = function () {\n if (!this._formData) {\n this._formData = new root.FormData();\n }\n\n return this._formData;\n};\n/**\n * Invoke the callback with `err` and `res`\n * and handle arity check.\n *\n * @param {Error} err\n * @param {Response} res\n * @api private\n */\n\n\nRequest.prototype.callback = function (err, res) {\n if (this._shouldRetry(err, res)) {\n return this._retry();\n }\n\n var fn = this._callback;\n this.clearTimeout();\n\n if (err) {\n if (this._maxRetries) err.retries = this._retries - 1;\n this.emit('error', err);\n }\n\n fn(err, res);\n};\n/**\n * Invoke callback with x-domain error.\n *\n * @api private\n */\n\n\nRequest.prototype.crossDomainError = function () {\n var err = new Error('Request has been terminated\\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.');\n err.crossDomain = true;\n err.status = this.status;\n err.method = this.method;\n err.url = this.url;\n this.callback(err);\n}; // This only warns, because the request is still likely to work\n\n\nRequest.prototype.agent = function () {\n console.warn('This is not supported in browser version of superagent');\n return this;\n};\n\nRequest.prototype.ca = Request.prototype.agent;\nRequest.prototype.buffer = Request.prototype.ca; // This throws, because it can't send/receive data as expected\n\nRequest.prototype.write = function () {\n throw new Error('Streaming is not supported in browser version of superagent');\n};\n\nRequest.prototype.pipe = Request.prototype.write;\n/**\n * Check if `obj` is a host object,\n * we don't want to serialize these :)\n *\n * @param {Object} obj host object\n * @return {Boolean} is a host object\n * @api private\n */\n\nRequest.prototype._isHost = function (obj) {\n // Native objects stringify to [object File], [object Blob], [object FormData], etc.\n return obj && _typeof(obj) === 'object' && !Array.isArray(obj) && Object.prototype.toString.call(obj) !== '[object Object]';\n};\n/**\n * Initiate request, invoking callback `fn(res)`\n * with an instanceof `Response`.\n *\n * @param {Function} fn\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.end = function (fn) {\n if (this._endCalled) {\n console.warn('Warning: .end() was called twice. This is not supported in superagent');\n }\n\n this._endCalled = true; // store callback\n\n this._callback = fn || noop; // querystring\n\n this._finalizeQueryString();\n\n this._end();\n};\n\nRequest.prototype._setUploadTimeout = function () {\n var self = this; // upload timeout it's wokrs only if deadline timeout is off\n\n if (this._uploadTimeout && !this._uploadTimeoutTimer) {\n this._uploadTimeoutTimer = setTimeout(function () {\n self._timeoutError('Upload timeout of ', self._uploadTimeout, 'ETIMEDOUT');\n }, this._uploadTimeout);\n }\n}; // eslint-disable-next-line complexity\n\n\nRequest.prototype._end = function () {\n if (this._aborted) return this.callback(new Error('The request has been aborted even before .end() was called'));\n var self = this;\n this.xhr = request.getXHR();\n var xhr = this.xhr;\n var data = this._formData || this._data;\n\n this._setTimeouts(); // state change\n\n\n xhr.onreadystatechange = function () {\n var readyState = xhr.readyState;\n\n if (readyState >= 2 && self._responseTimeoutTimer) {\n clearTimeout(self._responseTimeoutTimer);\n }\n\n if (readyState !== 4) {\n return;\n } // In IE9, reads to any property (e.g. status) off of an aborted XHR will\n // result in the error \"Could not complete the operation due to error c00c023f\"\n\n\n var status;\n\n try {\n status = xhr.status;\n } catch (_unused5) {\n status = 0;\n }\n\n if (!status) {\n if (self.timedout || self._aborted) return;\n return self.crossDomainError();\n }\n\n self.emit('end');\n }; // progress\n\n\n var handleProgress = function handleProgress(direction, e) {\n if (e.total > 0) {\n e.percent = e.loaded / e.total * 100;\n\n if (e.percent === 100) {\n clearTimeout(self._uploadTimeoutTimer);\n }\n }\n\n e.direction = direction;\n self.emit('progress', e);\n };\n\n if (this.hasListeners('progress')) {\n try {\n xhr.addEventListener('progress', handleProgress.bind(null, 'download'));\n\n if (xhr.upload) {\n xhr.upload.addEventListener('progress', handleProgress.bind(null, 'upload'));\n }\n } catch (_unused6) {// Accessing xhr.upload fails in IE from a web worker, so just pretend it doesn't exist.\n // Reported here:\n // https://connect.microsoft.com/IE/feedback/details/837245/xmlhttprequest-upload-throws-invalid-argument-when-used-from-web-worker-context\n }\n }\n\n if (xhr.upload) {\n this._setUploadTimeout();\n } // initiate request\n\n\n try {\n if (this.username && this.password) {\n xhr.open(this.method, this.url, true, this.username, this.password);\n } else {\n xhr.open(this.method, this.url, true);\n }\n } catch (err) {\n // see #1149\n return this.callback(err);\n } // CORS\n\n\n if (this._withCredentials) xhr.withCredentials = true; // body\n\n if (!this._formData && this.method !== 'GET' && this.method !== 'HEAD' && typeof data !== 'string' && !this._isHost(data)) {\n // serialize stuff\n var contentType = this._header['content-type'];\n\n var _serialize = this._serializer || request.serialize[contentType ? contentType.split(';')[0] : ''];\n\n if (!_serialize && isJSON(contentType)) {\n _serialize = request.serialize['application/json'];\n }\n\n if (_serialize) data = _serialize(data);\n } // set header fields\n\n\n for (var field in this.header) {\n if (this.header[field] === null) continue;\n if (Object.prototype.hasOwnProperty.call(this.header, field)) xhr.setRequestHeader(field, this.header[field]);\n }\n\n if (this._responseType) {\n xhr.responseType = this._responseType;\n } // send stuff\n\n\n this.emit('request', this); // IE11 xhr.send(undefined) sends 'undefined' string as POST payload (instead of nothing)\n // We need null here if data is undefined\n\n xhr.send(typeof data === 'undefined' ? null : data);\n};\n\nrequest.agent = function () {\n return new Agent();\n};\n\n['GET', 'POST', 'OPTIONS', 'PATCH', 'PUT', 'DELETE'].forEach(function (method) {\n Agent.prototype[method.toLowerCase()] = function (url, fn) {\n var req = new request.Request(method, url);\n\n this._setDefaults(req);\n\n if (fn) {\n req.end(fn);\n }\n\n return req;\n };\n});\nAgent.prototype.del = Agent.prototype.delete;\n/**\n * GET `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.get = function (url, data, fn) {\n var req = request('GET', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * HEAD `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.head = function (url, data, fn) {\n var req = request('HEAD', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * OPTIONS query to `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.options = function (url, data, fn) {\n var req = request('OPTIONS', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * DELETE `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nfunction del(url, data, fn) {\n var req = request('DELETE', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n}\n\nrequest.del = del;\nrequest.delete = del;\n/**\n * PATCH `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.patch = function (url, data, fn) {\n var req = request('PATCH', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * POST `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.post = function (url, data, fn) {\n var req = request('POST', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * PUT `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.put = function (url, data, fn) {\n var req = request('PUT', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n},{\"./agent-base\":8,\"./is-object\":9,\"./request-base\":11,\"./response-base\":12,\"component-emitter\":1,\"fast-safe-stringify\":2,\"qs\":4}],11:[function(require,module,exports){\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Module of mixed-in functions shared between node and client code\n */\nvar isObject = require('./is-object');\n/**\n * Expose `RequestBase`.\n */\n\n\nmodule.exports = RequestBase;\n/**\n * Initialize a new `RequestBase`.\n *\n * @api public\n */\n\nfunction RequestBase(object) {\n if (object) return mixin(object);\n}\n/**\n * Mixin the prototype properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\n\nfunction mixin(object) {\n for (var key in RequestBase.prototype) {\n if (Object.prototype.hasOwnProperty.call(RequestBase.prototype, key)) object[key] = RequestBase.prototype[key];\n }\n\n return object;\n}\n/**\n * Clear previous timeout.\n *\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.clearTimeout = function () {\n clearTimeout(this._timer);\n clearTimeout(this._responseTimeoutTimer);\n clearTimeout(this._uploadTimeoutTimer);\n delete this._timer;\n delete this._responseTimeoutTimer;\n delete this._uploadTimeoutTimer;\n return this;\n};\n/**\n * Override default response body parser\n *\n * This function will be called to convert incoming data into request.body\n *\n * @param {Function}\n * @api public\n */\n\n\nRequestBase.prototype.parse = function (fn) {\n this._parser = fn;\n return this;\n};\n/**\n * Set format of binary response body.\n * In browser valid formats are 'blob' and 'arraybuffer',\n * which return Blob and ArrayBuffer, respectively.\n *\n * In Node all values result in Buffer.\n *\n * Examples:\n *\n * req.get('/')\n * .responseType('blob')\n * .end(callback);\n *\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.responseType = function (value) {\n this._responseType = value;\n return this;\n};\n/**\n * Override default request body serializer\n *\n * This function will be called to convert data set via .send or .attach into payload to send\n *\n * @param {Function}\n * @api public\n */\n\n\nRequestBase.prototype.serialize = function (fn) {\n this._serializer = fn;\n return this;\n};\n/**\n * Set timeouts.\n *\n * - response timeout is time between sending request and receiving the first byte of the response. Includes DNS and connection time.\n * - deadline is the time from start of the request to receiving response body in full. If the deadline is too short large files may not load at all on slow connections.\n * - upload is the time since last bit of data was sent or received. This timeout works only if deadline timeout is off\n *\n * Value of 0 or false means no timeout.\n *\n * @param {Number|Object} ms or {response, deadline}\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.timeout = function (options) {\n if (!options || _typeof(options) !== 'object') {\n this._timeout = options;\n this._responseTimeout = 0;\n this._uploadTimeout = 0;\n return this;\n }\n\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option)) {\n switch (option) {\n case 'deadline':\n this._timeout = options.deadline;\n break;\n\n case 'response':\n this._responseTimeout = options.response;\n break;\n\n case 'upload':\n this._uploadTimeout = options.upload;\n break;\n\n default:\n console.warn('Unknown timeout option', option);\n }\n }\n }\n\n return this;\n};\n/**\n * Set number of retry attempts on error.\n *\n * Failed requests will be retried 'count' times if timeout or err.code >= 500.\n *\n * @param {Number} count\n * @param {Function} [fn]\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.retry = function (count, fn) {\n // Default to 1 if no count passed or true\n if (arguments.length === 0 || count === true) count = 1;\n if (count <= 0) count = 0;\n this._maxRetries = count;\n this._retries = 0;\n this._retryCallback = fn;\n return this;\n}; //\n// NOTE: we do not include ESOCKETTIMEDOUT because that is from `request` package\n// \n//\n// NOTE: we do not include EADDRINFO because it was removed from libuv in 2014\n// \n// \n//\n//\n// TODO: expose these as configurable defaults\n//\n\n\nvar ERROR_CODES = new Set(['ETIMEDOUT', 'ECONNRESET', 'EADDRINUSE', 'ECONNREFUSED', 'EPIPE', 'ENOTFOUND', 'ENETUNREACH', 'EAI_AGAIN']);\nvar STATUS_CODES = new Set([408, 413, 429, 500, 502, 503, 504, 521, 522, 524]); // TODO: we would need to make this easily configurable before adding it in (e.g. some might want to add POST)\n// const METHODS = new Set(['GET', 'PUT', 'HEAD', 'DELETE', 'OPTIONS', 'TRACE']);\n\n/**\n * Determine if a request should be retried.\n * (Inspired by https://github.com/sindresorhus/got#retry)\n *\n * @param {Error} err an error\n * @param {Response} [res] response\n * @returns {Boolean} if segment should be retried\n */\n\nRequestBase.prototype._shouldRetry = function (err, res) {\n if (!this._maxRetries || this._retries++ >= this._maxRetries) {\n return false;\n }\n\n if (this._retryCallback) {\n try {\n var override = this._retryCallback(err, res);\n\n if (override === true) return true;\n if (override === false) return false; // undefined falls back to defaults\n } catch (err_) {\n console.error(err_);\n }\n } // TODO: we would need to make this easily configurable before adding it in (e.g. some might want to add POST)\n\n /*\n if (\n this.req &&\n this.req.method &&\n !METHODS.has(this.req.method.toUpperCase())\n )\n return false;\n */\n\n\n if (res && res.status && STATUS_CODES.has(res.status)) return true;\n\n if (err) {\n if (err.code && ERROR_CODES.has(err.code)) return true; // Superagent timeout\n\n if (err.timeout && err.code === 'ECONNABORTED') return true;\n if (err.crossDomain) return true;\n }\n\n return false;\n};\n/**\n * Retry request\n *\n * @return {Request} for chaining\n * @api private\n */\n\n\nRequestBase.prototype._retry = function () {\n this.clearTimeout(); // node\n\n if (this.req) {\n this.req = null;\n this.req = this.request();\n }\n\n this._aborted = false;\n this.timedout = false;\n this.timedoutError = null;\n return this._end();\n};\n/**\n * Promise support\n *\n * @param {Function} resolve\n * @param {Function} [reject]\n * @return {Request}\n */\n\n\nRequestBase.prototype.then = function (resolve, reject) {\n var _this = this;\n\n if (!this._fullfilledPromise) {\n var self = this;\n\n if (this._endCalled) {\n console.warn('Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises');\n }\n\n this._fullfilledPromise = new Promise(function (resolve, reject) {\n self.on('abort', function () {\n if (_this._maxRetries && _this._maxRetries > _this._retries) {\n return;\n }\n\n if (_this.timedout && _this.timedoutError) {\n reject(_this.timedoutError);\n return;\n }\n\n var err = new Error('Aborted');\n err.code = 'ABORTED';\n err.status = _this.status;\n err.method = _this.method;\n err.url = _this.url;\n reject(err);\n });\n self.end(function (err, res) {\n if (err) reject(err);else resolve(res);\n });\n });\n }\n\n return this._fullfilledPromise.then(resolve, reject);\n};\n\nRequestBase.prototype.catch = function (cb) {\n return this.then(undefined, cb);\n};\n/**\n * Allow for extension\n */\n\n\nRequestBase.prototype.use = function (fn) {\n fn(this);\n return this;\n};\n\nRequestBase.prototype.ok = function (cb) {\n if (typeof cb !== 'function') throw new Error('Callback required');\n this._okCallback = cb;\n return this;\n};\n\nRequestBase.prototype._isResponseOK = function (res) {\n if (!res) {\n return false;\n }\n\n if (this._okCallback) {\n return this._okCallback(res);\n }\n\n return res.status >= 200 && res.status < 300;\n};\n/**\n * Get request header `field`.\n * Case-insensitive.\n *\n * @param {String} field\n * @return {String}\n * @api public\n */\n\n\nRequestBase.prototype.get = function (field) {\n return this._header[field.toLowerCase()];\n};\n/**\n * Get case-insensitive header `field` value.\n * This is a deprecated internal API. Use `.get(field)` instead.\n *\n * (getHeader is no longer used internally by the superagent code base)\n *\n * @param {String} field\n * @return {String}\n * @api private\n * @deprecated\n */\n\n\nRequestBase.prototype.getHeader = RequestBase.prototype.get;\n/**\n * Set header `field` to `val`, or multiple fields with one object.\n * Case-insensitive.\n *\n * Examples:\n *\n * req.get('/')\n * .set('Accept', 'application/json')\n * .set('X-API-Key', 'foobar')\n * .end(callback);\n *\n * req.get('/')\n * .set({ Accept: 'application/json', 'X-API-Key': 'foobar' })\n * .end(callback);\n *\n * @param {String|Object} field\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.set = function (field, value) {\n if (isObject(field)) {\n for (var key in field) {\n if (Object.prototype.hasOwnProperty.call(field, key)) this.set(key, field[key]);\n }\n\n return this;\n }\n\n this._header[field.toLowerCase()] = value;\n this.header[field] = value;\n return this;\n};\n/**\n * Remove header `field`.\n * Case-insensitive.\n *\n * Example:\n *\n * req.get('/')\n * .unset('User-Agent')\n * .end(callback);\n *\n * @param {String} field field name\n */\n\n\nRequestBase.prototype.unset = function (field) {\n delete this._header[field.toLowerCase()];\n delete this.header[field];\n return this;\n};\n/**\n * Write the field `name` and `val`, or multiple fields with one object\n * for \"multipart/form-data\" request bodies.\n *\n * ``` js\n * request.post('/upload')\n * .field('foo', 'bar')\n * .end(callback);\n *\n * request.post('/upload')\n * .field({ foo: 'bar', baz: 'qux' })\n * .end(callback);\n * ```\n *\n * @param {String|Object} name name of field\n * @param {String|Blob|File|Buffer|fs.ReadStream} val value of field\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.field = function (name, value) {\n // name should be either a string or an object.\n if (name === null || undefined === name) {\n throw new Error('.field(name, val) name can not be empty');\n }\n\n if (this._data) {\n throw new Error(\".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()\");\n }\n\n if (isObject(name)) {\n for (var key in name) {\n if (Object.prototype.hasOwnProperty.call(name, key)) this.field(key, name[key]);\n }\n\n return this;\n }\n\n if (Array.isArray(value)) {\n for (var i in value) {\n if (Object.prototype.hasOwnProperty.call(value, i)) this.field(name, value[i]);\n }\n\n return this;\n } // val should be defined now\n\n\n if (value === null || undefined === value) {\n throw new Error('.field(name, val) val can not be empty');\n }\n\n if (typeof value === 'boolean') {\n value = String(value);\n }\n\n this._getFormData().append(name, value);\n\n return this;\n};\n/**\n * Abort the request, and clear potential timeout.\n *\n * @return {Request} request\n * @api public\n */\n\n\nRequestBase.prototype.abort = function () {\n if (this._aborted) {\n return this;\n }\n\n this._aborted = true;\n if (this.xhr) this.xhr.abort(); // browser\n\n if (this.req) this.req.abort(); // node\n\n this.clearTimeout();\n this.emit('abort');\n return this;\n};\n\nRequestBase.prototype._auth = function (user, pass, options, base64Encoder) {\n switch (options.type) {\n case 'basic':\n this.set('Authorization', \"Basic \".concat(base64Encoder(\"\".concat(user, \":\").concat(pass))));\n break;\n\n case 'auto':\n this.username = user;\n this.password = pass;\n break;\n\n case 'bearer':\n // usage would be .auth(accessToken, { type: 'bearer' })\n this.set('Authorization', \"Bearer \".concat(user));\n break;\n\n default:\n break;\n }\n\n return this;\n};\n/**\n * Enable transmission of cookies with x-domain requests.\n *\n * Note that for this to work the origin must not be\n * using \"Access-Control-Allow-Origin\" with a wildcard,\n * and also must set \"Access-Control-Allow-Credentials\"\n * to \"true\".\n *\n * @api public\n */\n\n\nRequestBase.prototype.withCredentials = function (on) {\n // This is browser-only functionality. Node side is no-op.\n if (on === undefined) on = true;\n this._withCredentials = on;\n return this;\n};\n/**\n * Set the max redirects to `n`. Does nothing in browser XHR implementation.\n *\n * @param {Number} n\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.redirects = function (n) {\n this._maxRedirects = n;\n return this;\n};\n/**\n * Maximum size of buffered response body, in bytes. Counts uncompressed size.\n * Default 200MB.\n *\n * @param {Number} n number of bytes\n * @return {Request} for chaining\n */\n\n\nRequestBase.prototype.maxResponseSize = function (n) {\n if (typeof n !== 'number') {\n throw new TypeError('Invalid argument');\n }\n\n this._maxResponseSize = n;\n return this;\n};\n/**\n * Convert to a plain javascript object (not JSON string) of scalar properties.\n * Note as this method is designed to return a useful non-this value,\n * it cannot be chained.\n *\n * @return {Object} describing method, url, and data of this request\n * @api public\n */\n\n\nRequestBase.prototype.toJSON = function () {\n return {\n method: this.method,\n url: this.url,\n data: this._data,\n headers: this._header\n };\n};\n/**\n * Send `data` as the request body, defaulting the `.type()` to \"json\" when\n * an object is given.\n *\n * Examples:\n *\n * // manual json\n * request.post('/user')\n * .type('json')\n * .send('{\"name\":\"tj\"}')\n * .end(callback)\n *\n * // auto json\n * request.post('/user')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // manual x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send('name=tj')\n * .end(callback)\n *\n * // auto x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // defaults to x-www-form-urlencoded\n * request.post('/user')\n * .send('name=tobi')\n * .send('species=ferret')\n * .end(callback)\n *\n * @param {String|Object} data\n * @return {Request} for chaining\n * @api public\n */\n// eslint-disable-next-line complexity\n\n\nRequestBase.prototype.send = function (data) {\n var isObject_ = isObject(data);\n var type = this._header['content-type'];\n\n if (this._formData) {\n throw new Error(\".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()\");\n }\n\n if (isObject_ && !this._data) {\n if (Array.isArray(data)) {\n this._data = [];\n } else if (!this._isHost(data)) {\n this._data = {};\n }\n } else if (data && this._data && this._isHost(this._data)) {\n throw new Error(\"Can't merge these send calls\");\n } // merge\n\n\n if (isObject_ && isObject(this._data)) {\n for (var key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) this._data[key] = data[key];\n }\n } else if (typeof data === 'string') {\n // default to x-www-form-urlencoded\n if (!type) this.type('form');\n type = this._header['content-type'];\n if (type) type = type.toLowerCase().trim();\n\n if (type === 'application/x-www-form-urlencoded') {\n this._data = this._data ? \"\".concat(this._data, \"&\").concat(data) : data;\n } else {\n this._data = (this._data || '') + data;\n }\n } else {\n this._data = data;\n }\n\n if (!isObject_ || this._isHost(data)) {\n return this;\n } // default to json\n\n\n if (!type) this.type('json');\n return this;\n};\n/**\n * Sort `querystring` by the sort function\n *\n *\n * Examples:\n *\n * // default order\n * request.get('/user')\n * .query('name=Nick')\n * .query('search=Manny')\n * .sortQuery()\n * .end(callback)\n *\n * // customized sort function\n * request.get('/user')\n * .query('name=Nick')\n * .query('search=Manny')\n * .sortQuery(function(a, b){\n * return a.length - b.length;\n * })\n * .end(callback)\n *\n *\n * @param {Function} sort\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.sortQuery = function (sort) {\n // _sort default to true but otherwise can be a function or boolean\n this._sort = typeof sort === 'undefined' ? true : sort;\n return this;\n};\n/**\n * Compose querystring to append to req.url\n *\n * @api private\n */\n\n\nRequestBase.prototype._finalizeQueryString = function () {\n var query = this._query.join('&');\n\n if (query) {\n this.url += (this.url.includes('?') ? '&' : '?') + query;\n }\n\n this._query.length = 0; // Makes the call idempotent\n\n if (this._sort) {\n var index = this.url.indexOf('?');\n\n if (index >= 0) {\n var queryArray = this.url.slice(index + 1).split('&');\n\n if (typeof this._sort === 'function') {\n queryArray.sort(this._sort);\n } else {\n queryArray.sort();\n }\n\n this.url = this.url.slice(0, index) + '?' + queryArray.join('&');\n }\n }\n}; // For backwards compat only\n\n\nRequestBase.prototype._appendQueryString = function () {\n console.warn('Unsupported');\n};\n/**\n * Invoke callback with timeout error.\n *\n * @api private\n */\n\n\nRequestBase.prototype._timeoutError = function (reason, timeout, errno) {\n if (this._aborted) {\n return;\n }\n\n var err = new Error(\"\".concat(reason + timeout, \"ms exceeded\"));\n err.timeout = timeout;\n err.code = 'ECONNABORTED';\n err.errno = errno;\n this.timedout = true;\n this.timedoutError = err;\n this.abort();\n this.callback(err);\n};\n\nRequestBase.prototype._setTimeouts = function () {\n var self = this; // deadline\n\n if (this._timeout && !this._timer) {\n this._timer = setTimeout(function () {\n self._timeoutError('Timeout of ', self._timeout, 'ETIME');\n }, this._timeout);\n } // response timeout\n\n\n if (this._responseTimeout && !this._responseTimeoutTimer) {\n this._responseTimeoutTimer = setTimeout(function () {\n self._timeoutError('Response timeout of ', self._responseTimeout, 'ETIMEDOUT');\n }, this._responseTimeout);\n }\n};\n\n},{\"./is-object\":9}],12:[function(require,module,exports){\n\"use strict\";\n\n/**\n * Module dependencies.\n */\nvar utils = require('./utils');\n/**\n * Expose `ResponseBase`.\n */\n\n\nmodule.exports = ResponseBase;\n/**\n * Initialize a new `ResponseBase`.\n *\n * @api public\n */\n\nfunction ResponseBase(obj) {\n if (obj) return mixin(obj);\n}\n/**\n * Mixin the prototype properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\n\nfunction mixin(obj) {\n for (var key in ResponseBase.prototype) {\n if (Object.prototype.hasOwnProperty.call(ResponseBase.prototype, key)) obj[key] = ResponseBase.prototype[key];\n }\n\n return obj;\n}\n/**\n * Get case-insensitive `field` value.\n *\n * @param {String} field\n * @return {String}\n * @api public\n */\n\n\nResponseBase.prototype.get = function (field) {\n return this.header[field.toLowerCase()];\n};\n/**\n * Set header related properties:\n *\n * - `.type` the content type without params\n *\n * A response of \"Content-Type: text/plain; charset=utf-8\"\n * will provide you with a `.type` of \"text/plain\".\n *\n * @param {Object} header\n * @api private\n */\n\n\nResponseBase.prototype._setHeaderProperties = function (header) {\n // TODO: moar!\n // TODO: make this a util\n // content-type\n var ct = header['content-type'] || '';\n this.type = utils.type(ct); // params\n\n var params = utils.params(ct);\n\n for (var key in params) {\n if (Object.prototype.hasOwnProperty.call(params, key)) this[key] = params[key];\n }\n\n this.links = {}; // links\n\n try {\n if (header.link) {\n this.links = utils.parseLinks(header.link);\n }\n } catch (_unused) {// ignore\n }\n};\n/**\n * Set flags such as `.ok` based on `status`.\n *\n * For example a 2xx response will give you a `.ok` of __true__\n * whereas 5xx will be __false__ and `.error` will be __true__. The\n * `.clientError` and `.serverError` are also available to be more\n * specific, and `.statusType` is the class of error ranging from 1..5\n * sometimes useful for mapping respond colors etc.\n *\n * \"sugar\" properties are also defined for common cases. Currently providing:\n *\n * - .noContent\n * - .badRequest\n * - .unauthorized\n * - .notAcceptable\n * - .notFound\n *\n * @param {Number} status\n * @api private\n */\n\n\nResponseBase.prototype._setStatusProperties = function (status) {\n var type = status / 100 | 0; // status / class\n\n this.statusCode = status;\n this.status = this.statusCode;\n this.statusType = type; // basics\n\n this.info = type === 1;\n this.ok = type === 2;\n this.redirect = type === 3;\n this.clientError = type === 4;\n this.serverError = type === 5;\n this.error = type === 4 || type === 5 ? this.toError() : false; // sugar\n\n this.created = status === 201;\n this.accepted = status === 202;\n this.noContent = status === 204;\n this.badRequest = status === 400;\n this.unauthorized = status === 401;\n this.notAcceptable = status === 406;\n this.forbidden = status === 403;\n this.notFound = status === 404;\n this.unprocessableEntity = status === 422;\n};\n\n},{\"./utils\":13}],13:[function(require,module,exports){\n\"use strict\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * Return the mime type for the given `str`.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\nexports.type = function (str) {\n return str.split(/ *; */).shift();\n};\n/**\n * Return header field parameters.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\n\nexports.params = function (val) {\n var obj = {};\n\n var _iterator = _createForOfIteratorHelper(val.split(/ *; */)),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var str = _step.value;\n var parts = str.split(/ *= */);\n var key = parts.shift();\n\n var _val = parts.shift();\n\n if (key && _val) obj[key] = _val;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return obj;\n};\n/**\n * Parse Link header fields.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\n\nexports.parseLinks = function (val) {\n var obj = {};\n\n var _iterator2 = _createForOfIteratorHelper(val.split(/ *, */)),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var str = _step2.value;\n var parts = str.split(/ *; */);\n var url = parts[0].slice(1, -1);\n var rel = parts[1].split(/ *= */)[1].slice(1, -1);\n obj[rel] = url;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return obj;\n};\n/**\n * Strip content related fields from `header`.\n *\n * @param {Object} header\n * @return {Object} header\n * @api private\n */\n\n\nexports.cleanHeader = function (header, changesOrigin) {\n delete header['content-type'];\n delete header['content-length'];\n delete header['transfer-encoding'];\n delete header.host; // secuirty\n\n if (changesOrigin) {\n delete header.authorization;\n delete header.cookie;\n }\n\n return header;\n};\n\n},{}]},{},[10])(10)\n});\n","import {dragElement} from './dragRecordingDiv';\r\nimport {submitJob} from \"./modzyDeepFakeModel\";\r\n\r\n\r\nlet isRecording=false;\r\nlet mainVideo = document.getElementsByClassName(\"html5-main-video\")[0];\r\nlet recordingTimeMS = 5000;\r\nlet apiKey;\r\n\r\n/**\r\n * Init extension for content page\r\n *\r\n * @param pApiKey\r\n */\r\nfunction init(pApiKey){\r\n apiKey=pApiKey;\r\n\r\n initDeepFakeButtonInPlayer();\r\n\r\n}\r\n\r\n/**\r\n * Since it sometimes takes a while to construct the gui, new player buttons are added in an interval if the right-controls are available\r\n */\r\nfunction initDeepFakeButtonInPlayer(){\r\n const buttonAvailableInterval = setInterval(function (){\r\n var animControlsButton = document.getElementsByClassName(\"ytp-right-controls\");\r\n if (animControlsButton !== undefined){\r\n if(document.getElementById(\"deepfake\") === null || document.getElementById(\"deepfake\") === undefined){\r\n var button = document.createElement('button');\r\n button.id=\"deepfake\";\r\n button.className = 'ytp-button it-player-button';\r\n button.dataset.title = \"Deepfake detection\";\r\n button.onclick = function(){startStopRecording();}\r\n animControlsButton[0].insertBefore(button, animControlsButton[0].childNodes[0]);\r\n\r\n let playerImage = new Image();\r\n playerImage.src = chrome.runtime.getURL(\"/images/logo48.png\");\r\n playerImage.onload = () => {\r\n var imgTag = document.createElement('img');\r\n imgTag.src=playerImage.src;\r\n button.appendChild(imgTag);\r\n }\r\n }\r\n clearInterval(buttonAvailableInterval);\r\n }\r\n }, 100);\r\n}\r\n\r\n/**\r\n * Show the recorded video always in a new review-div.\r\n */\r\nfunction showVideoToCheck(){\r\n\r\n removePreviewPlayerDiv(); // if we already showing a preview div, remote it\r\n\r\n const div = document.createElement('div');\r\n // div.style=\"position:absolute;top:100px\"\r\n div.id=\"recordingDiv\"\r\n div.innerHTML = `\r\n
Click here to move
\r\n [X]Close this window
\r\n \r\n
\r\n
\r\n Processing...
\r\n
\r\n
\r\n
\r\n

Result:


\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Video download\r\n \r\n `;\r\n document.getElementById(\"content\").append(div);\r\n\r\n var image = document.createElement(\"img\");\r\n image.src = chrome.runtime.getURL(\"images/preloader.gif\");\r\n document.getElementById(\"preload-deepfake\").appendChild(image);\r\n\r\n dragElement(div);\r\n}\r\n\r\n/**\r\n * Removes the preview player div if exists\r\n */\r\nfunction removePreviewPlayerDiv(){\r\n var previewPlayer = document.getElementById(\"recordingDiv\");\r\n if(previewPlayer !== null){\r\n previewPlayer.parentNode.removeChild(previewPlayer);\r\n }\r\n}\r\n\r\nfunction wait(delayInMS) {\r\n return new Promise(resolve => setTimeout(resolve, delayInMS));\r\n}\r\n\r\nfunction startStopRecording(){\r\n let recordedBlob;\r\n mainVideo = document.getElementsByClassName(\"html5-main-video\")[0];\r\n // if(!isRecording){\r\n\r\n // stop(document.getElementsByClassName(\"html5-main-video\")[0]);\r\n document.getElementById(\"content\").style.backgroundColor=\"#8b0000\";\r\n startRecording(mainVideo.captureStream(), recordingTimeMS)\r\n .then (recordedChunks => {\r\n document.getElementById(\"content\").style.backgroundColor=\"#ffffff\";\r\n showVideoToCheck();\r\n recordedBlob = new Blob(recordedChunks, { type: \"video/webm\" });\r\n recording.src = URL.createObjectURL(recordedBlob);\r\n downloadButton.href = recording.src;\r\n downloadButton.download = \"RecordedVideo.webm\";\r\n }).then(()=>{\r\n let reader = new window.FileReader();\r\n reader.readAsDataURL(recordedBlob);\r\n reader.onloadend = function () {\r\n let base64data = reader.result;\r\n submitJob(base64data, apiKey);\r\n }\r\n\r\n });\r\n\r\n\r\n // }else {\r\n // // startRecording(document.getElementsByClassName(\"html5-main-video\")[0],5000);\r\n // }\r\n // isRecording = !isRecording;\r\n}\r\n\r\nasync function startRecording(stream, lengthInMS) {\r\n var options = { mimeType: \"video/webm\" };\r\n let recorder = new MediaRecorder(stream,options);\r\n let data = [];\r\n recorder.ondataavailable = event => data.push(event.data);\r\n recorder.start();\r\n\r\n let stopped = new Promise((resolve, reject) => {\r\n recorder.onstop = resolve;\r\n recorder.onerror = event => reject(event.name);\r\n });\r\n\r\n let recorded = wait(lengthInMS).then(\r\n () => recorder.state == \"recording\" && recorder.stop()\r\n );\r\n\r\n return Promise.all([\r\n stopped,\r\n recorded\r\n ])\r\n .then(() => data);\r\n}\r\n\r\nfunction stop(stream) {\r\n stream.getTracks().forEach(track => track.stop());\r\n}\r\n\r\n\r\nwindow.addEventListener(\"onhashchange\", function() {\r\n if(!location.href.includes(\"watch\")){\r\n if(document.getElementById(\"recordingDiv\") !== null){\r\n document.getElementById(\"recordingDiv\").remove();\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Check if URL Change and remove ai processing div if visible\r\n * https://www.youtube.com -> no video watching\r\n * https://www.youtube.com/watch* -> video watching\r\n *\r\n * @type {string}\r\n */\r\nlet lastUrl = location.href;\r\nnew MutationObserver(() => {\r\n const url = location.href;\r\n if (url !== lastUrl) {\r\n lastUrl = url;\r\n onUrlChange();\r\n }\r\n}).observe(document, {subtree: true, childList: true});\r\n\r\n/**\r\n * Remove recordingDiv if we do not watch a video\r\n */\r\nfunction onUrlChange() {\r\n if(!location.href.includes(\"watch\")){\r\n if(document.getElementById(\"recordingDiv\") !== null){\r\n document.getElementById(\"recordingDiv\").remove();\r\n }\r\n }\r\n}\r\n\r\nexport {init};\r\n","// code idea from https://www.w3schools.com/howto/howto_js_draggable.asp with changes\r\n// Make the DIV element draggable:\r\nfunction dragElement(elmnt) {\r\n\r\n var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;\r\n if (document.getElementById(elmnt.id + \"Header\")) {\r\n // if present, the header is where you move the DIV from:\r\n document.getElementById(elmnt.id + \"Header\").onmousedown = dragMouseDown;\r\n } else {\r\n // otherwise, move the DIV from anywhere inside the DIV:\r\n elmnt.onmousedown = dragMouseDown;\r\n }\r\n\r\n function dragMouseDown(e) {\r\n e = e || window.event;\r\n e.preventDefault();\r\n // get the mouse cursor position at startup:\r\n pos3 = e.clientX;\r\n pos4 = e.clientY;\r\n document.onmouseup = closeDragElement;\r\n // call a function whenever the cursor moves:\r\n document.onmousemove = elementDrag;\r\n }\r\n\r\n function elementDrag(e) {\r\n e = e || window.event;\r\n e.preventDefault();\r\n // calculate the new cursor position:\r\n pos1 = pos3 - e.clientX;\r\n pos2 = pos4 - e.clientY;\r\n pos3 = e.clientX;\r\n pos4 = e.clientY;\r\n // set the element's new position:\r\n elmnt.style.top = (elmnt.offsetTop - pos2) + \"px\";\r\n elmnt.style.left = (elmnt.offsetLeft - pos1) + \"px\";\r\n }\r\n\r\n function closeDragElement() {\r\n // stop moving when mouse button is released:\r\n document.onmouseup = null;\r\n document.onmousemove = null;\r\n }\r\n}\r\n\r\nexport {dragElement};\r\n","import * as deepfake from './deepfake';\r\n\r\nlet apiKey;\r\n\r\nfunction readApiKey() {\r\n chrome.storage.sync.get(['apiKey'], function (result) {\r\n apiKey = result.apiKey;\r\n // Check if ApiKey is provided. Otherwise let user provide it.\r\n if (apiKey === undefined) {\r\n if (chrome.runtime.openOptionsPage) {\r\n chrome.runtime.openOptionsPage();\r\n } else {\r\n window.open(chrome.runtime.getURL('options.html'));\r\n }\r\n } else {\r\n deepfake.init(apiKey);\r\n }\r\n\r\n });\r\n}\r\n\r\n/**\r\n * Get Message from background.js if url change to https://www.youtube.com/watch*\r\n * Then read the apiKey and init video player button if not exist\r\n * YouTube doesn't reload the page when you go from one video to another or from the main page\r\n * therefore we need this hack and use onHistoryStateUpdated in the service worker\r\n */\r\nchrome.runtime.onMessage.addListener(\r\n function(request, sender, sendResponse) {\r\n if(request.message === \"initRecordButton\"){\r\n readApiKey();\r\n }\r\n }\r\n);\r\n"],"names":["$8371d8b3ed0dfd6c$var$apiKey","f","$222c41b52cbd7a0b$exports","define","amd","window","$parcel$global","self","this","superagent","r1","e","n1","t","o","i","c","undefined","u","a","Error","code","p","exports","call","r","i1","length","require","module","obj","key","Emitter","prototype","mixin","addEventListener","event","fn","_callbacks","push","on","off","apply","arguments","removeListener","removeAllListeners","removeEventListener","cb","callbacks","splice","args","Array","len","slice","obj1","_typeof","Symbol","iterator","constructor","stringify","deterministicStringify","stableStringify","replacerStack","replacer","spacer","res","JSON","replaceGetterValues","arr","part","pop","Object","defineProperty","decirc","val","k","stack","parent","propertyDescriptor","getOwnPropertyDescriptor","get","configurable","value","keys","b","deterministicDecirc","tmp","toJSON","isArray","sort","compareFunction","v","replace","String","percentTwenties","util","Format","RFC1738","RFC3986","assign","default","formatters","parse","formats","utils","hasOwnProperty","decode","str","$0","numberStr","fromCharCode","parseInt","parseArrayValue","options","comma","indexOf","split","parseKeys","givenKey","valuesParsed","allowDots","child","segment","depth","exec","index","plainObjects","has","allowPrototypes","chain","leaf","root","parseArrays","concat","create","cleanRoot","charAt","isNaN","arrayLimit","parseObject","opts","defaults","decoder","TypeError","charset","charsetSentinel","delimiter","isRegExp","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","strictNullHandling","normalizeParseOptions","tempObj","Infinity","cleanStr","limit","skipIndex","parts","bracketEqualsPos","pos","maybeMap","encodedVal","combine","parseValues","newObj","merge","compact","obj2","brackets","prefix","pushToArray","valueOrArray","Date","toISOString","defaultFormat","encode","encoder","encodeValuesOnly","format","formatter","indices","serializeDate","date","toISO","stringify1","object","generateArrayPrefix","skipNulls","filter","isBuffer","objKeys","values","value1","keyPrefix","addQueryPrefix","normalizeStringifyOptions","arrayFormat","arrayPrefixGenerators","joined","join","obj3","array","toString","toUpperCase","arrayToObject","source","target","reduce","acc","queue","prop","refs","item","j","compacted","compactQueue","strWithoutPlus","unescape","decodeURIComponent","defaultEncoder","string","escape","charCodeAt","out","hexTable","mapped","mergeTarget","forEach","targetItem","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","minLen","n","name","test","_unsupportedIterableToArray","_nonIterableSpread","arr2","Agent","_defaults","_len","_key","_setDefaults","req","def","obj4","obj5","safeStringify","qs","RequestBase","noop","method","url","Request","end","XMLHttpRequest","location","protocol","ActiveXObject","_unused","_unused2","_unused3","s","trim","pairs","pushEncodedKeyValuePair","isObject","subkey","pair","mime","status","xhr","_setStatusProperties","headers","parseHeader","getAllResponseHeaders","header","getResponseHeader","_setHeaderProperties","text","_responseType","body","response","_parseBody","err","original","err_","rawResponse","responseType","responseText","new_err","callback","data","send","parseString","html","json","Response","request","type","_parser","isJSON","msg","auth","user","pass","_auth","query","serialize","_query","_getFormData","_formData","FormData","_shouldRetry","_retry","_callback","clearTimeout","_maxRetries","retries","_retries","emit","crossDomainError","crossDomain","agent","warn","ca","buffer","write","pipe","_endCalled","console","_end","_setUploadTimeout","_uploadTimeout","_uploadTimeoutTimer","setTimeout","_timeoutError","_aborted","getXHR","_data","_setTimeouts","onreadystatechange","readyState","_responseTimeoutTimer","_unused5","timedout","handleProgress","direction","total","percent","loaded","hasListeners","username","password","open","_withCredentials","withCredentials","_isHost","field","setRequestHeader","toLowerCase","del","delete","post","obj6","_serializer","timeout","_timeout","_responseTimeout","option","deadline","upload","retry","count","_retryCallback","ERROR_CODES","Set","error","STATUS_CODES","timedoutError","then","resolve1","reject1","_this","_fullfilledPromise","ok","_okCallback","_isResponseOK","_header","set","unset","base64Encoder","isObject_","sortQuery","_sort","_finalizeQueryString","includes","queryArray","errno","abort","ct","params","links","link","parseLinks","statusCode","statusType","info","redirect","clientError","toError","accepted","noContent","notAcceptable","forbidden","_createForOfIteratorHelper","allowArrayLike","it","F","_e","normalCompletion","didErr","step","next","done","_e2","return","_step","_iterator","shift","_val","$8371d8b3ed0dfd6c$var$base64data","$8371d8b3ed0dfd6c$var$version","$8371d8b3ed0dfd6c$export$7df3ac43e525a530","pBase64data","pApiKey","redirects","identifier","version","sources","jobIdentifier","pollJobInterval","setInterval","jobStatus","clearInterval","$8371d8b3ed0dfd6c$var$updateModelResult","score","parseFloat","toFixed","$8371d8b3ed0dfd6c$var$getJobResult","$771f99f8e67fa0cc$var$apiKey","$771f99f8e67fa0cc$var$mainVideo","document","getElementsByClassName","$771f99f8e67fa0cc$export$2cd8252107eb640b","getElementById","button","createElement","id","className","dataset","title","onclick","recordedBlob","style","backgroundColor","stream","lengthInMS","recorder","MediaRecorder","mimeType","ondataavailable","start","stopped","Promise","resolve","reject","onstop","onerror","recorded","delayInMS","state","stop","all","previewPlayer","parentNode","removeChild","div","innerHTML","append","image","src","chrome","runtime","getURL","appendChild","elmnt","pos1","pos2","pos3","pos4","dragMouseDown","preventDefault","clientX","clientY","onmouseup","closeDragElement","onmousemove","elementDrag","top","offsetTop","left","offsetLeft","onmousedown","$771f99f8e67fa0cc$var$showVideoToCheck","Blob","recordedChunks","recording","URL","createObjectURL","downloadButton","href","reader","FileReader","readAsDataURL","onloadend","$771f99f8e67fa0cc$var$startStopRecording","insertBefore","animControlsButton","childNodes","playerImage","Image","onload","imgTag","buttonAvailableInterval","$9640cf38e5d74dfc$var$apiKey","storage","sync","result","apiKey","openOptionsPage"],"version":3,"file":"content.js.map"} \ No newline at end of file +{"mappings":"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","sources":["src/modzyDeepFakeModel.js","node_modules/superagent/dist/superagent.js","src/deepfake.js","src/dragRecordingDiv.js","src/content.js"],"sourcesContent":["import * as superagent from 'superagent/dist/superagent';\n\nlet apiKey;\nlet version=\"0.0.7\"; // default version override by getLatestModelVersionAndSubmit\nlet base64data; // video payload\n\n/**\n * Submit job.\n * First get the latest version of the deepfake model, then submit\n * @param pBase64data\n * @param pApiKey\n */\nfunction submitJob(pBase64data, pApiKey){\n apiKey = pApiKey;\n base64data = pBase64data\n\n getLatestModelVersionAndSubmit();\n\n}\n\n/**\n * Get the latest version from deepfake model\n * After that submit the job with this version or use default if call fails\n */\nfunction getLatestModelVersionAndSubmit(){\n superagent\n .get(\"https://app.modzy.com/api/models/93ltr2oepu/versions?isAvailable=true&isActive=true&sort-by=version&direction=DESC\")\n .set(\"Accept\", \"application/json\")\n .set(\"Authorization\", \"ApiKey \"+ apiKey)\n .redirects(0)\n .end(function (err, res) {\n if (err || !res.ok) {\n // ignore error, use default version\n } else {\n // because &sort-by=version&direction=DESC latest version is at pos 0\n version = res.body[0][\"version\"];\n }\n submitToLatestVersion();\n });\n}\n\n/**\n * Submit job to latest model version\n */\nfunction submitToLatestVersion(){\n superagent\n .post(\"https://app.modzy.com/api/jobs\")\n .send({\n model: {\n identifier: \"93ltr2oepu\",\n version: version,\n },\n input: {\n type: \"embedded\",\n sources: {\n \"my-input\": {\n \"input.mp4\": base64data\n },\n },\n },\n })\n .set(\"Content-Type\", \"application/json\")\n .set(\"Authorization\", \"ApiKey \"+ apiKey)\n .redirects(0)\n .end(function (err, res) {\n if (err || !res.ok) {\n console.error(\"Oh no! error\");\n } else {\n pollStatus(res.body[\"jobIdentifier\"]);\n }\n });\n}\n\n/**\n * Poll job status with interval until finished\n *\n * @param jobIdentifier\n */\nfunction pollStatus(jobIdentifier){\n\n const pollJobInterval = setInterval(function (){\n superagent\n .get(\"https://app.modzy.com/api/jobs/\" + jobIdentifier)\n .set(\"Content-Type\", \"application/json\")\n .set(\"Authorization\", \"ApiKey \"+ apiKey)\n .redirects(0)\n .end(function (err, res) {\n if (err || !res.ok) {\n clearInterval(pollJobInterval);\n updateModelResult(\"COMPLETED_WITH_ERROR\", error);\n console.error(\"Oh no! error\");\n } else {\n let jobStatus = res.body[\"status\"]\n if(\"COMPLETED\" === jobStatus || \"TIMEDOUT\" === jobStatus || \"CANCELED\" === jobStatus || \"ERROR\" === jobStatus){\n clearInterval(pollJobInterval);\n getJobResult(jobIdentifier);\n }else if(\"COMPLETED_WITH_ERROR\" === jobStatus){\n clearInterval(pollJobInterval);\n updateModelResult(\"COMPLETED_WITH_ERROR\", error);\n }\n }\n });\n }, 500);\n}\n\n/**\n * Get result from finished job and process status from result\n *\n * @param jobIdentifier\n */\nfunction getJobResult(jobIdentifier){\n superagent\n .get(\"https://app.modzy.com/api/results/\" + jobIdentifier)\n .set(\"Content-Type\", \"application/json\")\n .set(\"Authorization\", \"ApiKey \"+ apiKey)\n .redirects(0)\n .end(function (err, res) {\n if (err || !res.ok) {\n updateModelResult(\"COMPLETED_WITH_ERROR\", error);\n console.error(\"Oh no! error\");\n } else {\n // check for general error response\n if(res.body[\"failures\"] !== undefined){\n updateModelResult(\"FAILED\", res.body[\"failures\"][\"my-input\"][\"error\"]);\n }else{\n // no error, process job status\n let status = res.body[\"results\"][\"my-input\"][\"status\"];\n if(\"SUCCESSFUL\" === status){\n let score = res.body[\"results\"][\"my-input\"][\"results.json\"][\"input.mp4\"];\n updateModelResult(status, parseFloat((score).toFixed( 2 )));\n }else {\n let error = res.body[\"results\"][\"my-input\"][\"error\"];\n updateModelResult(status, error);\n }\n }\n\n }\n });\n}\n\n/**\n * Update gui div with info about model result\n *\n * @param status\n * @param result\n */\nfunction updateModelResult(status, result){\n let resultDIV = document.getElementById(\"deep-check-results\");;\n let message = document.getElementById(\"result-deepfake-message\");\n if(\"SUCCESSFUL\" === status){\n if(result >= 0.5){\n message.innerHTML = \"❌ Fake
This is a DeepFake video.
AI is \" + Math.round((result*100)) +\"% sure.

Note: An AI can always be wrong.
Therefore, be skeptical.\";\n resultDIV.style.color=\"red\";\n updateSearchResult(true,(result*100));\n }else{\n message.innerHTML = \"✅ Ok
No DeepFake video.
AI is \" + Math.round((100-(result*100))) +\"% sure.

Note: An AI can always be wrong.
Therefore, be skeptical.\";\n resultDIV.style.color=\"green\";\n updateSearchResult(false,(100-(result*100)));\n }\n }else {\n message.innerHTML = \"Oops, sorry, this should not happen.
The AI could not process the video.

Try again later.

Is the face in the video easy to see and not too small?
\";\n }\n document.getElementById(\"preload-deepfake\").style.display=\"none\";\n resultDIV.style.display=\"inline\";\n}\n\n/**\n * Update Chrome storage with new model result\n */\nfunction updateSearchResult(isDeepFake, score){\n // Get current Page URL\n let url = window.location.href;\n // Get current Page Title\n let title = document.title;\n\n // Save deepfakecheck result to chrome storage\n saveDeepFakeCheck(title,url, isDeepFake, score);\n\n}\n\n\n/**\n * Save value to crome storage\n */\nfunction saveDeepFakeCheck(page_title, page_url, isFake, score) {\n\n // get current time\n let currentTime = new Date();\n // format time to string\n let timeCheck = currentTime.getFullYear() + \"-\" + (currentTime.getMonth()+1) + \"-\" + currentTime.getDate() + \" \" + currentTime.getHours() + \":\" + currentTime.getMinutes() + \":\" + currentTime.getSeconds();\n\n\n // get deepfake checks\n chrome.storage.sync.get(['deepfakeChecks'], function (result) {\n let deepfakeChecks = result.deepfakeChecks;\n if (deepfakeChecks === undefined) {\n deepfakeChecks = [];\n }\n // add new deepfake check\n deepfakeChecks.push({\n page_title: page_title,\n page_url: page_url,\n score: score,\n isFake: isFake,\n timeChecked: timeCheck\n });\n // save deepfake checks\n chrome.storage.sync.set({'deepfakeChecks': deepfakeChecks}, function () {\n });\n });\n}\n\nexport {submitJob};\n\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.superagent = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i b) {\n return 1;\n }\n\n return 0;\n}\n\nfunction deterministicStringify(obj, replacer, spacer) {\n var tmp = deterministicDecirc(obj, '', [], undefined) || obj;\n var res;\n\n if (replacerStack.length === 0) {\n res = JSON.stringify(tmp, replacer, spacer);\n } else {\n res = JSON.stringify(tmp, replaceGetterValues(replacer), spacer);\n }\n\n while (arr.length !== 0) {\n var part = arr.pop();\n\n if (part.length === 4) {\n Object.defineProperty(part[0], part[1], part[3]);\n } else {\n part[0][part[1]] = part[2];\n }\n }\n\n return res;\n}\n\nfunction deterministicDecirc(val, k, stack, parent) {\n var i;\n\n if (_typeof(val) === 'object' && val !== null) {\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === val) {\n var propertyDescriptor = Object.getOwnPropertyDescriptor(parent, k);\n\n if (propertyDescriptor.get !== undefined) {\n if (propertyDescriptor.configurable) {\n Object.defineProperty(parent, k, {\n value: '[Circular]'\n });\n arr.push([parent, k, val, propertyDescriptor]);\n } else {\n replacerStack.push([val, k]);\n }\n } else {\n parent[k] = '[Circular]';\n arr.push([parent, k, val]);\n }\n\n return;\n }\n }\n\n if (typeof val.toJSON === 'function') {\n return;\n }\n\n stack.push(val); // Optimize for Arrays. Big arrays could kill the performance otherwise!\n\n if (Array.isArray(val)) {\n for (i = 0; i < val.length; i++) {\n deterministicDecirc(val[i], i, stack, val);\n }\n } else {\n // Create a temporary object in the required way\n var tmp = {};\n var keys = Object.keys(val).sort(compareFunction);\n\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n deterministicDecirc(val[key], key, stack, val);\n tmp[key] = val[key];\n }\n\n if (parent !== undefined) {\n arr.push([parent, k, val]);\n parent[k] = tmp;\n } else {\n return tmp;\n }\n }\n\n stack.pop();\n }\n} // wraps replacer function to handle values we couldn't replace\n// and mark them as [Circular]\n\n\nfunction replaceGetterValues(replacer) {\n replacer = replacer !== undefined ? replacer : function (k, v) {\n return v;\n };\n return function (key, val) {\n if (replacerStack.length > 0) {\n for (var i = 0; i < replacerStack.length; i++) {\n var part = replacerStack[i];\n\n if (part[1] === key && part[0] === val) {\n val = '[Circular]';\n replacerStack.splice(i, 1);\n break;\n }\n }\n }\n\n return replacer.call(this, key, val);\n };\n}\n\n},{}],3:[function(require,module,exports){\n'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar util = require('./utils');\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\nmodule.exports = util.assign({\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function RFC1738(value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function RFC3986(value) {\n return String(value);\n }\n }\n}, Format);\n\n},{\"./utils\":7}],4:[function(require,module,exports){\n'use strict';\n\nvar stringify = require('./stringify');\n\nvar parse = require('./parse');\n\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n\n},{\"./formats\":3,\"./parse\":5,\"./stringify\":6}],5:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function interpretNumericEntities(str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function parseArrayValue(val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n}; // This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\n\n\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\n\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n\n var i;\n var charset = options.charset;\n\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n\n var part = parts[i];\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n var key, val;\n\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(parseArrayValue(part.slice(pos + 1), options), function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n });\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function parseObject(chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n\n if (!options.parseArrays && cleanRoot === '') {\n obj = {\n 0: leaf\n };\n } else if (!isNaN(index) && root !== cleanRoot && String(index) === cleanRoot && index >= 0 && options.parseArrays && index <= options.arrayLimit) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj; // eslint-disable-line no-param-reassign\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n } // Transform dot notation to bracket notation\n\n\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey; // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g; // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key; // Stash the parent if it exists\n\n var keys = [];\n\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n } // Loop through children appending to the array until we hit depth\n\n\n var i = 0;\n\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(segment[1]);\n } // If there's a remainder, just add whatever is left\n\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: typeof opts.depth === 'number' || opts.depth === false ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {}; // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n return utils.compact(obj);\n};\n\n},{\"./utils\":7}],6:[function(require,module,exports){\n'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar utils = require('./utils');\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\n\nvar pushToArray = function pushToArray(arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string' || typeof v === 'number' || typeof v === 'boolean' || _typeof(v) === 'symbol' || typeof v === 'bigint';\n};\n\nvar stringify = function stringify(object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter, encodeValuesOnly, charset) {\n var obj = object;\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n\n return value;\n }).join(',');\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key') : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key');\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value'))];\n }\n\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n\n if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n var value = obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj) ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix : prefix + (allowDots ? '.' + key : '[' + key + ']');\n pushToArray(values, stringify(value, keyPrefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter, encodeValuesOnly, charset));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n\n format = opts.format;\n }\n\n var formatter = formats.formatters[format];\n var filter = defaults.filter;\n\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (_typeof(obj) !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n\n pushToArray(keys, stringify(obj[key], key, generateArrayPrefix, options.strictNullHandling, options.skipNulls, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.formatter, options.encodeValuesOnly, options.charset));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n\n},{\"./formats\":3,\"./utils\":7}],7:[function(require,module,exports){\n'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = function () {\n var array = [];\n\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}();\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (_typeof(source) !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && _typeof(target) === 'object') {\n if (options && (options.plainObjects || options.allowPrototypes) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || _typeof(target) !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n\n if (targetItem && _typeof(targetItem) === 'object' && item && _typeof(item) === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function decode(str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n } // utf-8\n\n\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n\n if (_typeof(str) === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || c >= 0x30 && c <= 0x39 // 0-9\n || c >= 0x41 && c <= 0x5A // a-z\n || c >= 0x61 && c <= 0x7A // A-Z\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | c >> 6] + hexTable[0x80 | c & 0x3F]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | c >> 12] + hexTable[0x80 | c >> 6 & 0x3F] + hexTable[0x80 | c & 0x3F]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + ((c & 0x3FF) << 10 | string.charCodeAt(i) & 0x3FF);\n out += hexTable[0xF0 | c >> 18] + hexTable[0x80 | c >> 12 & 0x3F] + hexTable[0x80 | c >> 6 & 0x3F] + hexTable[0x80 | c & 0x3F];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{\n obj: {\n o: value\n },\n prop: 'o'\n }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n var keys = Object.keys(obj);\n\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n\n if (_typeof(val) === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({\n obj: obj,\n prop: key\n });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || _typeof(obj) !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n\n return mapped;\n }\n\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n\n},{}],8:[function(require,module,exports){\n\"use strict\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction Agent() {\n this._defaults = [];\n}\n\n['use', 'on', 'once', 'set', 'query', 'type', 'accept', 'auth', 'withCredentials', 'sortQuery', 'retry', 'ok', 'redirects', 'timeout', 'buffer', 'serialize', 'parse', 'ca', 'key', 'pfx', 'cert', 'disableTLSCerts'].forEach(function (fn) {\n // Default setting for all requests from this agent\n Agent.prototype[fn] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n this._defaults.push({\n fn: fn,\n args: args\n });\n\n return this;\n };\n});\n\nAgent.prototype._setDefaults = function (req) {\n this._defaults.forEach(function (def) {\n req[def.fn].apply(req, _toConsumableArray(def.args));\n });\n};\n\nmodule.exports = Agent;\n\n},{}],9:[function(require,module,exports){\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Check if `obj` is an object.\n *\n * @param {Object} obj\n * @return {Boolean}\n * @api private\n */\nfunction isObject(obj) {\n return obj !== null && _typeof(obj) === 'object';\n}\n\nmodule.exports = isObject;\n\n},{}],10:[function(require,module,exports){\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Root reference for iframes.\n */\nvar root;\n\nif (typeof window !== 'undefined') {\n // Browser window\n root = window;\n} else if (typeof self === 'undefined') {\n // Other environments\n console.warn('Using browser-only version of superagent in non-browser environment');\n root = void 0;\n} else {\n // Web Worker\n root = self;\n}\n\nvar Emitter = require('component-emitter');\n\nvar safeStringify = require('fast-safe-stringify');\n\nvar qs = require('qs');\n\nvar RequestBase = require('./request-base');\n\nvar isObject = require('./is-object');\n\nvar ResponseBase = require('./response-base');\n\nvar Agent = require('./agent-base');\n/**\n * Noop.\n */\n\n\nfunction noop() {}\n/**\n * Expose `request`.\n */\n\n\nmodule.exports = function (method, url) {\n // callback\n if (typeof url === 'function') {\n return new exports.Request('GET', method).end(url);\n } // url first\n\n\n if (arguments.length === 1) {\n return new exports.Request('GET', method);\n }\n\n return new exports.Request(method, url);\n};\n\nexports = module.exports;\nvar request = exports;\nexports.Request = Request;\n/**\n * Determine XHR.\n */\n\nrequest.getXHR = function () {\n if (root.XMLHttpRequest && (!root.location || root.location.protocol !== 'file:' || !root.ActiveXObject)) {\n return new XMLHttpRequest();\n }\n\n try {\n return new ActiveXObject('Microsoft.XMLHTTP');\n } catch (_unused) {}\n\n try {\n return new ActiveXObject('Msxml2.XMLHTTP.6.0');\n } catch (_unused2) {}\n\n try {\n return new ActiveXObject('Msxml2.XMLHTTP.3.0');\n } catch (_unused3) {}\n\n try {\n return new ActiveXObject('Msxml2.XMLHTTP');\n } catch (_unused4) {}\n\n throw new Error('Browser-only version of superagent could not find XHR');\n};\n/**\n * Removes leading and trailing whitespace, added to support IE.\n *\n * @param {String} s\n * @return {String}\n * @api private\n */\n\n\nvar trim = ''.trim ? function (s) {\n return s.trim();\n} : function (s) {\n return s.replace(/(^\\s*|\\s*$)/g, '');\n};\n/**\n * Serialize the given `obj`.\n *\n * @param {Object} obj\n * @return {String}\n * @api private\n */\n\nfunction serialize(obj) {\n if (!isObject(obj)) return obj;\n var pairs = [];\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) pushEncodedKeyValuePair(pairs, key, obj[key]);\n }\n\n return pairs.join('&');\n}\n/**\n * Helps 'serialize' with serializing arrays.\n * Mutates the pairs array.\n *\n * @param {Array} pairs\n * @param {String} key\n * @param {Mixed} val\n */\n\n\nfunction pushEncodedKeyValuePair(pairs, key, val) {\n if (val === undefined) return;\n\n if (val === null) {\n pairs.push(encodeURI(key));\n return;\n }\n\n if (Array.isArray(val)) {\n val.forEach(function (v) {\n pushEncodedKeyValuePair(pairs, key, v);\n });\n } else if (isObject(val)) {\n for (var subkey in val) {\n if (Object.prototype.hasOwnProperty.call(val, subkey)) pushEncodedKeyValuePair(pairs, \"\".concat(key, \"[\").concat(subkey, \"]\"), val[subkey]);\n }\n } else {\n pairs.push(encodeURI(key) + '=' + encodeURIComponent(val));\n }\n}\n/**\n * Expose serialization method.\n */\n\n\nrequest.serializeObject = serialize;\n/**\n * Parse the given x-www-form-urlencoded `str`.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseString(str) {\n var obj = {};\n var pairs = str.split('&');\n var pair;\n var pos;\n\n for (var i = 0, len = pairs.length; i < len; ++i) {\n pair = pairs[i];\n pos = pair.indexOf('=');\n\n if (pos === -1) {\n obj[decodeURIComponent(pair)] = '';\n } else {\n obj[decodeURIComponent(pair.slice(0, pos))] = decodeURIComponent(pair.slice(pos + 1));\n }\n }\n\n return obj;\n}\n/**\n * Expose parser.\n */\n\n\nrequest.parseString = parseString;\n/**\n * Default MIME type map.\n *\n * superagent.types.xml = 'application/xml';\n *\n */\n\nrequest.types = {\n html: 'text/html',\n json: 'application/json',\n xml: 'text/xml',\n urlencoded: 'application/x-www-form-urlencoded',\n form: 'application/x-www-form-urlencoded',\n 'form-data': 'application/x-www-form-urlencoded'\n};\n/**\n * Default serialization map.\n *\n * superagent.serialize['application/xml'] = function(obj){\n * return 'generated xml here';\n * };\n *\n */\n\nrequest.serialize = {\n 'application/x-www-form-urlencoded': qs.stringify,\n 'application/json': safeStringify\n};\n/**\n * Default parsers.\n *\n * superagent.parse['application/xml'] = function(str){\n * return { object parsed from str };\n * };\n *\n */\n\nrequest.parse = {\n 'application/x-www-form-urlencoded': parseString,\n 'application/json': JSON.parse\n};\n/**\n * Parse the given header `str` into\n * an object containing the mapped fields.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseHeader(str) {\n var lines = str.split(/\\r?\\n/);\n var fields = {};\n var index;\n var line;\n var field;\n var val;\n\n for (var i = 0, len = lines.length; i < len; ++i) {\n line = lines[i];\n index = line.indexOf(':');\n\n if (index === -1) {\n // could be empty line, just skip it\n continue;\n }\n\n field = line.slice(0, index).toLowerCase();\n val = trim(line.slice(index + 1));\n fields[field] = val;\n }\n\n return fields;\n}\n/**\n * Check if `mime` is json or has +json structured syntax suffix.\n *\n * @param {String} mime\n * @return {Boolean}\n * @api private\n */\n\n\nfunction isJSON(mime) {\n // should match /json or +json\n // but not /json-seq\n return /[/+]json($|[^-\\w])/i.test(mime);\n}\n/**\n * Initialize a new `Response` with the given `xhr`.\n *\n * - set flags (.ok, .error, etc)\n * - parse header\n *\n * Examples:\n *\n * Aliasing `superagent` as `request` is nice:\n *\n * request = superagent;\n *\n * We can use the promise-like API, or pass callbacks:\n *\n * request.get('/').end(function(res){});\n * request.get('/', function(res){});\n *\n * Sending data can be chained:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' })\n * .end(function(res){});\n *\n * Or passed to `.send()`:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' }, function(res){});\n *\n * Or passed to `.post()`:\n *\n * request\n * .post('/user', { name: 'tj' })\n * .end(function(res){});\n *\n * Or further reduced to a single call for simple cases:\n *\n * request\n * .post('/user', { name: 'tj' }, function(res){});\n *\n * @param {XMLHTTPRequest} xhr\n * @param {Object} options\n * @api private\n */\n\n\nfunction Response(req) {\n this.req = req;\n this.xhr = this.req.xhr; // responseText is accessible only if responseType is '' or 'text' and on older browsers\n\n this.text = this.req.method !== 'HEAD' && (this.xhr.responseType === '' || this.xhr.responseType === 'text') || typeof this.xhr.responseType === 'undefined' ? this.xhr.responseText : null;\n this.statusText = this.req.xhr.statusText;\n var status = this.xhr.status; // handle IE9 bug: http://stackoverflow.com/questions/10046972/msie-returns-status-code-of-1223-for-ajax-request\n\n if (status === 1223) {\n status = 204;\n }\n\n this._setStatusProperties(status);\n\n this.headers = parseHeader(this.xhr.getAllResponseHeaders());\n this.header = this.headers; // getAllResponseHeaders sometimes falsely returns \"\" for CORS requests, but\n // getResponseHeader still works. so we get content-type even if getting\n // other headers fails.\n\n this.header['content-type'] = this.xhr.getResponseHeader('content-type');\n\n this._setHeaderProperties(this.header);\n\n if (this.text === null && req._responseType) {\n this.body = this.xhr.response;\n } else {\n this.body = this.req.method === 'HEAD' ? null : this._parseBody(this.text ? this.text : this.xhr.response);\n }\n} // eslint-disable-next-line new-cap\n\n\nResponseBase(Response.prototype);\n/**\n * Parse the given body `str`.\n *\n * Used for auto-parsing of bodies. Parsers\n * are defined on the `superagent.parse` object.\n *\n * @param {String} str\n * @return {Mixed}\n * @api private\n */\n\nResponse.prototype._parseBody = function (str) {\n var parse = request.parse[this.type];\n\n if (this.req._parser) {\n return this.req._parser(this, str);\n }\n\n if (!parse && isJSON(this.type)) {\n parse = request.parse['application/json'];\n }\n\n return parse && str && (str.length > 0 || str instanceof Object) ? parse(str) : null;\n};\n/**\n * Return an `Error` representative of this response.\n *\n * @return {Error}\n * @api public\n */\n\n\nResponse.prototype.toError = function () {\n var req = this.req;\n var method = req.method;\n var url = req.url;\n var msg = \"cannot \".concat(method, \" \").concat(url, \" (\").concat(this.status, \")\");\n var err = new Error(msg);\n err.status = this.status;\n err.method = method;\n err.url = url;\n return err;\n};\n/**\n * Expose `Response`.\n */\n\n\nrequest.Response = Response;\n/**\n * Initialize a new `Request` with the given `method` and `url`.\n *\n * @param {String} method\n * @param {String} url\n * @api public\n */\n\nfunction Request(method, url) {\n var self = this;\n this._query = this._query || [];\n this.method = method;\n this.url = url;\n this.header = {}; // preserves header name case\n\n this._header = {}; // coerces header names to lowercase\n\n this.on('end', function () {\n var err = null;\n var res = null;\n\n try {\n res = new Response(self);\n } catch (err_) {\n err = new Error('Parser is unable to parse the response');\n err.parse = true;\n err.original = err_; // issue #675: return the raw response if the response parsing fails\n\n if (self.xhr) {\n // ie9 doesn't have 'response' property\n err.rawResponse = typeof self.xhr.responseType === 'undefined' ? self.xhr.responseText : self.xhr.response; // issue #876: return the http status code if the response parsing fails\n\n err.status = self.xhr.status ? self.xhr.status : null;\n err.statusCode = err.status; // backwards-compat only\n } else {\n err.rawResponse = null;\n err.status = null;\n }\n\n return self.callback(err);\n }\n\n self.emit('response', res);\n var new_err;\n\n try {\n if (!self._isResponseOK(res)) {\n new_err = new Error(res.statusText || res.text || 'Unsuccessful HTTP response');\n }\n } catch (err_) {\n new_err = err_; // ok() callback can throw\n } // #1000 don't catch errors from the callback to avoid double calling it\n\n\n if (new_err) {\n new_err.original = err;\n new_err.response = res;\n new_err.status = res.status;\n self.callback(new_err, res);\n } else {\n self.callback(null, res);\n }\n });\n}\n/**\n * Mixin `Emitter` and `RequestBase`.\n */\n// eslint-disable-next-line new-cap\n\n\nEmitter(Request.prototype); // eslint-disable-next-line new-cap\n\nRequestBase(Request.prototype);\n/**\n * Set Content-Type to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.xml = 'application/xml';\n *\n * request.post('/')\n * .type('xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * request.post('/')\n * .type('application/xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * @param {String} type\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.type = function (type) {\n this.set('Content-Type', request.types[type] || type);\n return this;\n};\n/**\n * Set Accept to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.json = 'application/json';\n *\n * request.get('/agent')\n * .accept('json')\n * .end(callback);\n *\n * request.get('/agent')\n * .accept('application/json')\n * .end(callback);\n *\n * @param {String} accept\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.accept = function (type) {\n this.set('Accept', request.types[type] || type);\n return this;\n};\n/**\n * Set Authorization field value with `user` and `pass`.\n *\n * @param {String} user\n * @param {String} [pass] optional in case of using 'bearer' as type\n * @param {Object} options with 'type' property 'auto', 'basic' or 'bearer' (default 'basic')\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.auth = function (user, pass, options) {\n if (arguments.length === 1) pass = '';\n\n if (_typeof(pass) === 'object' && pass !== null) {\n // pass is optional and can be replaced with options\n options = pass;\n pass = '';\n }\n\n if (!options) {\n options = {\n type: typeof btoa === 'function' ? 'basic' : 'auto'\n };\n }\n\n var encoder = function encoder(string) {\n if (typeof btoa === 'function') {\n return btoa(string);\n }\n\n throw new Error('Cannot use basic auth, btoa is not a function');\n };\n\n return this._auth(user, pass, options, encoder);\n};\n/**\n * Add query-string `val`.\n *\n * Examples:\n *\n * request.get('/shoes')\n * .query('size=10')\n * .query({ color: 'blue' })\n *\n * @param {Object|String} val\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.query = function (val) {\n if (typeof val !== 'string') val = serialize(val);\n if (val) this._query.push(val);\n return this;\n};\n/**\n * Queue the given `file` as an attachment to the specified `field`,\n * with optional `options` (or filename).\n *\n * ``` js\n * request.post('/upload')\n * .attach('content', new Blob(['hey!'], { type: \"text/html\"}))\n * .end(callback);\n * ```\n *\n * @param {String} field\n * @param {Blob|File} file\n * @param {String|Object} options\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.attach = function (field, file, options) {\n if (file) {\n if (this._data) {\n throw new Error(\"superagent can't mix .send() and .attach()\");\n }\n\n this._getFormData().append(field, file, options || file.name);\n }\n\n return this;\n};\n\nRequest.prototype._getFormData = function () {\n if (!this._formData) {\n this._formData = new root.FormData();\n }\n\n return this._formData;\n};\n/**\n * Invoke the callback with `err` and `res`\n * and handle arity check.\n *\n * @param {Error} err\n * @param {Response} res\n * @api private\n */\n\n\nRequest.prototype.callback = function (err, res) {\n if (this._shouldRetry(err, res)) {\n return this._retry();\n }\n\n var fn = this._callback;\n this.clearTimeout();\n\n if (err) {\n if (this._maxRetries) err.retries = this._retries - 1;\n this.emit('error', err);\n }\n\n fn(err, res);\n};\n/**\n * Invoke callback with x-domain error.\n *\n * @api private\n */\n\n\nRequest.prototype.crossDomainError = function () {\n var err = new Error('Request has been terminated\\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.');\n err.crossDomain = true;\n err.status = this.status;\n err.method = this.method;\n err.url = this.url;\n this.callback(err);\n}; // This only warns, because the request is still likely to work\n\n\nRequest.prototype.agent = function () {\n console.warn('This is not supported in browser version of superagent');\n return this;\n};\n\nRequest.prototype.ca = Request.prototype.agent;\nRequest.prototype.buffer = Request.prototype.ca; // This throws, because it can't send/receive data as expected\n\nRequest.prototype.write = function () {\n throw new Error('Streaming is not supported in browser version of superagent');\n};\n\nRequest.prototype.pipe = Request.prototype.write;\n/**\n * Check if `obj` is a host object,\n * we don't want to serialize these :)\n *\n * @param {Object} obj host object\n * @return {Boolean} is a host object\n * @api private\n */\n\nRequest.prototype._isHost = function (obj) {\n // Native objects stringify to [object File], [object Blob], [object FormData], etc.\n return obj && _typeof(obj) === 'object' && !Array.isArray(obj) && Object.prototype.toString.call(obj) !== '[object Object]';\n};\n/**\n * Initiate request, invoking callback `fn(res)`\n * with an instanceof `Response`.\n *\n * @param {Function} fn\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.end = function (fn) {\n if (this._endCalled) {\n console.warn('Warning: .end() was called twice. This is not supported in superagent');\n }\n\n this._endCalled = true; // store callback\n\n this._callback = fn || noop; // querystring\n\n this._finalizeQueryString();\n\n this._end();\n};\n\nRequest.prototype._setUploadTimeout = function () {\n var self = this; // upload timeout it's wokrs only if deadline timeout is off\n\n if (this._uploadTimeout && !this._uploadTimeoutTimer) {\n this._uploadTimeoutTimer = setTimeout(function () {\n self._timeoutError('Upload timeout of ', self._uploadTimeout, 'ETIMEDOUT');\n }, this._uploadTimeout);\n }\n}; // eslint-disable-next-line complexity\n\n\nRequest.prototype._end = function () {\n if (this._aborted) return this.callback(new Error('The request has been aborted even before .end() was called'));\n var self = this;\n this.xhr = request.getXHR();\n var xhr = this.xhr;\n var data = this._formData || this._data;\n\n this._setTimeouts(); // state change\n\n\n xhr.onreadystatechange = function () {\n var readyState = xhr.readyState;\n\n if (readyState >= 2 && self._responseTimeoutTimer) {\n clearTimeout(self._responseTimeoutTimer);\n }\n\n if (readyState !== 4) {\n return;\n } // In IE9, reads to any property (e.g. status) off of an aborted XHR will\n // result in the error \"Could not complete the operation due to error c00c023f\"\n\n\n var status;\n\n try {\n status = xhr.status;\n } catch (_unused5) {\n status = 0;\n }\n\n if (!status) {\n if (self.timedout || self._aborted) return;\n return self.crossDomainError();\n }\n\n self.emit('end');\n }; // progress\n\n\n var handleProgress = function handleProgress(direction, e) {\n if (e.total > 0) {\n e.percent = e.loaded / e.total * 100;\n\n if (e.percent === 100) {\n clearTimeout(self._uploadTimeoutTimer);\n }\n }\n\n e.direction = direction;\n self.emit('progress', e);\n };\n\n if (this.hasListeners('progress')) {\n try {\n xhr.addEventListener('progress', handleProgress.bind(null, 'download'));\n\n if (xhr.upload) {\n xhr.upload.addEventListener('progress', handleProgress.bind(null, 'upload'));\n }\n } catch (_unused6) {// Accessing xhr.upload fails in IE from a web worker, so just pretend it doesn't exist.\n // Reported here:\n // https://connect.microsoft.com/IE/feedback/details/837245/xmlhttprequest-upload-throws-invalid-argument-when-used-from-web-worker-context\n }\n }\n\n if (xhr.upload) {\n this._setUploadTimeout();\n } // initiate request\n\n\n try {\n if (this.username && this.password) {\n xhr.open(this.method, this.url, true, this.username, this.password);\n } else {\n xhr.open(this.method, this.url, true);\n }\n } catch (err) {\n // see #1149\n return this.callback(err);\n } // CORS\n\n\n if (this._withCredentials) xhr.withCredentials = true; // body\n\n if (!this._formData && this.method !== 'GET' && this.method !== 'HEAD' && typeof data !== 'string' && !this._isHost(data)) {\n // serialize stuff\n var contentType = this._header['content-type'];\n\n var _serialize = this._serializer || request.serialize[contentType ? contentType.split(';')[0] : ''];\n\n if (!_serialize && isJSON(contentType)) {\n _serialize = request.serialize['application/json'];\n }\n\n if (_serialize) data = _serialize(data);\n } // set header fields\n\n\n for (var field in this.header) {\n if (this.header[field] === null) continue;\n if (Object.prototype.hasOwnProperty.call(this.header, field)) xhr.setRequestHeader(field, this.header[field]);\n }\n\n if (this._responseType) {\n xhr.responseType = this._responseType;\n } // send stuff\n\n\n this.emit('request', this); // IE11 xhr.send(undefined) sends 'undefined' string as POST payload (instead of nothing)\n // We need null here if data is undefined\n\n xhr.send(typeof data === 'undefined' ? null : data);\n};\n\nrequest.agent = function () {\n return new Agent();\n};\n\n['GET', 'POST', 'OPTIONS', 'PATCH', 'PUT', 'DELETE'].forEach(function (method) {\n Agent.prototype[method.toLowerCase()] = function (url, fn) {\n var req = new request.Request(method, url);\n\n this._setDefaults(req);\n\n if (fn) {\n req.end(fn);\n }\n\n return req;\n };\n});\nAgent.prototype.del = Agent.prototype.delete;\n/**\n * GET `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.get = function (url, data, fn) {\n var req = request('GET', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * HEAD `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.head = function (url, data, fn) {\n var req = request('HEAD', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * OPTIONS query to `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.options = function (url, data, fn) {\n var req = request('OPTIONS', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * DELETE `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nfunction del(url, data, fn) {\n var req = request('DELETE', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n}\n\nrequest.del = del;\nrequest.delete = del;\n/**\n * PATCH `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.patch = function (url, data, fn) {\n var req = request('PATCH', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * POST `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.post = function (url, data, fn) {\n var req = request('POST', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * PUT `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.put = function (url, data, fn) {\n var req = request('PUT', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n},{\"./agent-base\":8,\"./is-object\":9,\"./request-base\":11,\"./response-base\":12,\"component-emitter\":1,\"fast-safe-stringify\":2,\"qs\":4}],11:[function(require,module,exports){\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Module of mixed-in functions shared between node and client code\n */\nvar isObject = require('./is-object');\n/**\n * Expose `RequestBase`.\n */\n\n\nmodule.exports = RequestBase;\n/**\n * Initialize a new `RequestBase`.\n *\n * @api public\n */\n\nfunction RequestBase(object) {\n if (object) return mixin(object);\n}\n/**\n * Mixin the prototype properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\n\nfunction mixin(object) {\n for (var key in RequestBase.prototype) {\n if (Object.prototype.hasOwnProperty.call(RequestBase.prototype, key)) object[key] = RequestBase.prototype[key];\n }\n\n return object;\n}\n/**\n * Clear previous timeout.\n *\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.clearTimeout = function () {\n clearTimeout(this._timer);\n clearTimeout(this._responseTimeoutTimer);\n clearTimeout(this._uploadTimeoutTimer);\n delete this._timer;\n delete this._responseTimeoutTimer;\n delete this._uploadTimeoutTimer;\n return this;\n};\n/**\n * Override default response body parser\n *\n * This function will be called to convert incoming data into request.body\n *\n * @param {Function}\n * @api public\n */\n\n\nRequestBase.prototype.parse = function (fn) {\n this._parser = fn;\n return this;\n};\n/**\n * Set format of binary response body.\n * In browser valid formats are 'blob' and 'arraybuffer',\n * which return Blob and ArrayBuffer, respectively.\n *\n * In Node all values result in Buffer.\n *\n * Examples:\n *\n * req.get('/')\n * .responseType('blob')\n * .end(callback);\n *\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.responseType = function (value) {\n this._responseType = value;\n return this;\n};\n/**\n * Override default request body serializer\n *\n * This function will be called to convert data set via .send or .attach into payload to send\n *\n * @param {Function}\n * @api public\n */\n\n\nRequestBase.prototype.serialize = function (fn) {\n this._serializer = fn;\n return this;\n};\n/**\n * Set timeouts.\n *\n * - response timeout is time between sending request and receiving the first byte of the response. Includes DNS and connection time.\n * - deadline is the time from start of the request to receiving response body in full. If the deadline is too short large files may not load at all on slow connections.\n * - upload is the time since last bit of data was sent or received. This timeout works only if deadline timeout is off\n *\n * Value of 0 or false means no timeout.\n *\n * @param {Number|Object} ms or {response, deadline}\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.timeout = function (options) {\n if (!options || _typeof(options) !== 'object') {\n this._timeout = options;\n this._responseTimeout = 0;\n this._uploadTimeout = 0;\n return this;\n }\n\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option)) {\n switch (option) {\n case 'deadline':\n this._timeout = options.deadline;\n break;\n\n case 'response':\n this._responseTimeout = options.response;\n break;\n\n case 'upload':\n this._uploadTimeout = options.upload;\n break;\n\n default:\n console.warn('Unknown timeout option', option);\n }\n }\n }\n\n return this;\n};\n/**\n * Set number of retry attempts on error.\n *\n * Failed requests will be retried 'count' times if timeout or err.code >= 500.\n *\n * @param {Number} count\n * @param {Function} [fn]\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.retry = function (count, fn) {\n // Default to 1 if no count passed or true\n if (arguments.length === 0 || count === true) count = 1;\n if (count <= 0) count = 0;\n this._maxRetries = count;\n this._retries = 0;\n this._retryCallback = fn;\n return this;\n}; //\n// NOTE: we do not include ESOCKETTIMEDOUT because that is from `request` package\n// \n//\n// NOTE: we do not include EADDRINFO because it was removed from libuv in 2014\n// \n// \n//\n//\n// TODO: expose these as configurable defaults\n//\n\n\nvar ERROR_CODES = new Set(['ETIMEDOUT', 'ECONNRESET', 'EADDRINUSE', 'ECONNREFUSED', 'EPIPE', 'ENOTFOUND', 'ENETUNREACH', 'EAI_AGAIN']);\nvar STATUS_CODES = new Set([408, 413, 429, 500, 502, 503, 504, 521, 522, 524]); // TODO: we would need to make this easily configurable before adding it in (e.g. some might want to add POST)\n// const METHODS = new Set(['GET', 'PUT', 'HEAD', 'DELETE', 'OPTIONS', 'TRACE']);\n\n/**\n * Determine if a request should be retried.\n * (Inspired by https://github.com/sindresorhus/got#retry)\n *\n * @param {Error} err an error\n * @param {Response} [res] response\n * @returns {Boolean} if segment should be retried\n */\n\nRequestBase.prototype._shouldRetry = function (err, res) {\n if (!this._maxRetries || this._retries++ >= this._maxRetries) {\n return false;\n }\n\n if (this._retryCallback) {\n try {\n var override = this._retryCallback(err, res);\n\n if (override === true) return true;\n if (override === false) return false; // undefined falls back to defaults\n } catch (err_) {\n console.error(err_);\n }\n } // TODO: we would need to make this easily configurable before adding it in (e.g. some might want to add POST)\n\n /*\n if (\n this.req &&\n this.req.method &&\n !METHODS.has(this.req.method.toUpperCase())\n )\n return false;\n */\n\n\n if (res && res.status && STATUS_CODES.has(res.status)) return true;\n\n if (err) {\n if (err.code && ERROR_CODES.has(err.code)) return true; // Superagent timeout\n\n if (err.timeout && err.code === 'ECONNABORTED') return true;\n if (err.crossDomain) return true;\n }\n\n return false;\n};\n/**\n * Retry request\n *\n * @return {Request} for chaining\n * @api private\n */\n\n\nRequestBase.prototype._retry = function () {\n this.clearTimeout(); // node\n\n if (this.req) {\n this.req = null;\n this.req = this.request();\n }\n\n this._aborted = false;\n this.timedout = false;\n this.timedoutError = null;\n return this._end();\n};\n/**\n * Promise support\n *\n * @param {Function} resolve\n * @param {Function} [reject]\n * @return {Request}\n */\n\n\nRequestBase.prototype.then = function (resolve, reject) {\n var _this = this;\n\n if (!this._fullfilledPromise) {\n var self = this;\n\n if (this._endCalled) {\n console.warn('Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises');\n }\n\n this._fullfilledPromise = new Promise(function (resolve, reject) {\n self.on('abort', function () {\n if (_this._maxRetries && _this._maxRetries > _this._retries) {\n return;\n }\n\n if (_this.timedout && _this.timedoutError) {\n reject(_this.timedoutError);\n return;\n }\n\n var err = new Error('Aborted');\n err.code = 'ABORTED';\n err.status = _this.status;\n err.method = _this.method;\n err.url = _this.url;\n reject(err);\n });\n self.end(function (err, res) {\n if (err) reject(err);else resolve(res);\n });\n });\n }\n\n return this._fullfilledPromise.then(resolve, reject);\n};\n\nRequestBase.prototype.catch = function (cb) {\n return this.then(undefined, cb);\n};\n/**\n * Allow for extension\n */\n\n\nRequestBase.prototype.use = function (fn) {\n fn(this);\n return this;\n};\n\nRequestBase.prototype.ok = function (cb) {\n if (typeof cb !== 'function') throw new Error('Callback required');\n this._okCallback = cb;\n return this;\n};\n\nRequestBase.prototype._isResponseOK = function (res) {\n if (!res) {\n return false;\n }\n\n if (this._okCallback) {\n return this._okCallback(res);\n }\n\n return res.status >= 200 && res.status < 300;\n};\n/**\n * Get request header `field`.\n * Case-insensitive.\n *\n * @param {String} field\n * @return {String}\n * @api public\n */\n\n\nRequestBase.prototype.get = function (field) {\n return this._header[field.toLowerCase()];\n};\n/**\n * Get case-insensitive header `field` value.\n * This is a deprecated internal API. Use `.get(field)` instead.\n *\n * (getHeader is no longer used internally by the superagent code base)\n *\n * @param {String} field\n * @return {String}\n * @api private\n * @deprecated\n */\n\n\nRequestBase.prototype.getHeader = RequestBase.prototype.get;\n/**\n * Set header `field` to `val`, or multiple fields with one object.\n * Case-insensitive.\n *\n * Examples:\n *\n * req.get('/')\n * .set('Accept', 'application/json')\n * .set('X-API-Key', 'foobar')\n * .end(callback);\n *\n * req.get('/')\n * .set({ Accept: 'application/json', 'X-API-Key': 'foobar' })\n * .end(callback);\n *\n * @param {String|Object} field\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.set = function (field, value) {\n if (isObject(field)) {\n for (var key in field) {\n if (Object.prototype.hasOwnProperty.call(field, key)) this.set(key, field[key]);\n }\n\n return this;\n }\n\n this._header[field.toLowerCase()] = value;\n this.header[field] = value;\n return this;\n};\n/**\n * Remove header `field`.\n * Case-insensitive.\n *\n * Example:\n *\n * req.get('/')\n * .unset('User-Agent')\n * .end(callback);\n *\n * @param {String} field field name\n */\n\n\nRequestBase.prototype.unset = function (field) {\n delete this._header[field.toLowerCase()];\n delete this.header[field];\n return this;\n};\n/**\n * Write the field `name` and `val`, or multiple fields with one object\n * for \"multipart/form-data\" request bodies.\n *\n * ``` js\n * request.post('/upload')\n * .field('foo', 'bar')\n * .end(callback);\n *\n * request.post('/upload')\n * .field({ foo: 'bar', baz: 'qux' })\n * .end(callback);\n * ```\n *\n * @param {String|Object} name name of field\n * @param {String|Blob|File|Buffer|fs.ReadStream} val value of field\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.field = function (name, value) {\n // name should be either a string or an object.\n if (name === null || undefined === name) {\n throw new Error('.field(name, val) name can not be empty');\n }\n\n if (this._data) {\n throw new Error(\".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()\");\n }\n\n if (isObject(name)) {\n for (var key in name) {\n if (Object.prototype.hasOwnProperty.call(name, key)) this.field(key, name[key]);\n }\n\n return this;\n }\n\n if (Array.isArray(value)) {\n for (var i in value) {\n if (Object.prototype.hasOwnProperty.call(value, i)) this.field(name, value[i]);\n }\n\n return this;\n } // val should be defined now\n\n\n if (value === null || undefined === value) {\n throw new Error('.field(name, val) val can not be empty');\n }\n\n if (typeof value === 'boolean') {\n value = String(value);\n }\n\n this._getFormData().append(name, value);\n\n return this;\n};\n/**\n * Abort the request, and clear potential timeout.\n *\n * @return {Request} request\n * @api public\n */\n\n\nRequestBase.prototype.abort = function () {\n if (this._aborted) {\n return this;\n }\n\n this._aborted = true;\n if (this.xhr) this.xhr.abort(); // browser\n\n if (this.req) this.req.abort(); // node\n\n this.clearTimeout();\n this.emit('abort');\n return this;\n};\n\nRequestBase.prototype._auth = function (user, pass, options, base64Encoder) {\n switch (options.type) {\n case 'basic':\n this.set('Authorization', \"Basic \".concat(base64Encoder(\"\".concat(user, \":\").concat(pass))));\n break;\n\n case 'auto':\n this.username = user;\n this.password = pass;\n break;\n\n case 'bearer':\n // usage would be .auth(accessToken, { type: 'bearer' })\n this.set('Authorization', \"Bearer \".concat(user));\n break;\n\n default:\n break;\n }\n\n return this;\n};\n/**\n * Enable transmission of cookies with x-domain requests.\n *\n * Note that for this to work the origin must not be\n * using \"Access-Control-Allow-Origin\" with a wildcard,\n * and also must set \"Access-Control-Allow-Credentials\"\n * to \"true\".\n *\n * @api public\n */\n\n\nRequestBase.prototype.withCredentials = function (on) {\n // This is browser-only functionality. Node side is no-op.\n if (on === undefined) on = true;\n this._withCredentials = on;\n return this;\n};\n/**\n * Set the max redirects to `n`. Does nothing in browser XHR implementation.\n *\n * @param {Number} n\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.redirects = function (n) {\n this._maxRedirects = n;\n return this;\n};\n/**\n * Maximum size of buffered response body, in bytes. Counts uncompressed size.\n * Default 200MB.\n *\n * @param {Number} n number of bytes\n * @return {Request} for chaining\n */\n\n\nRequestBase.prototype.maxResponseSize = function (n) {\n if (typeof n !== 'number') {\n throw new TypeError('Invalid argument');\n }\n\n this._maxResponseSize = n;\n return this;\n};\n/**\n * Convert to a plain javascript object (not JSON string) of scalar properties.\n * Note as this method is designed to return a useful non-this value,\n * it cannot be chained.\n *\n * @return {Object} describing method, url, and data of this request\n * @api public\n */\n\n\nRequestBase.prototype.toJSON = function () {\n return {\n method: this.method,\n url: this.url,\n data: this._data,\n headers: this._header\n };\n};\n/**\n * Send `data` as the request body, defaulting the `.type()` to \"json\" when\n * an object is given.\n *\n * Examples:\n *\n * // manual json\n * request.post('/user')\n * .type('json')\n * .send('{\"name\":\"tj\"}')\n * .end(callback)\n *\n * // auto json\n * request.post('/user')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // manual x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send('name=tj')\n * .end(callback)\n *\n * // auto x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // defaults to x-www-form-urlencoded\n * request.post('/user')\n * .send('name=tobi')\n * .send('species=ferret')\n * .end(callback)\n *\n * @param {String|Object} data\n * @return {Request} for chaining\n * @api public\n */\n// eslint-disable-next-line complexity\n\n\nRequestBase.prototype.send = function (data) {\n var isObject_ = isObject(data);\n var type = this._header['content-type'];\n\n if (this._formData) {\n throw new Error(\".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()\");\n }\n\n if (isObject_ && !this._data) {\n if (Array.isArray(data)) {\n this._data = [];\n } else if (!this._isHost(data)) {\n this._data = {};\n }\n } else if (data && this._data && this._isHost(this._data)) {\n throw new Error(\"Can't merge these send calls\");\n } // merge\n\n\n if (isObject_ && isObject(this._data)) {\n for (var key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) this._data[key] = data[key];\n }\n } else if (typeof data === 'string') {\n // default to x-www-form-urlencoded\n if (!type) this.type('form');\n type = this._header['content-type'];\n if (type) type = type.toLowerCase().trim();\n\n if (type === 'application/x-www-form-urlencoded') {\n this._data = this._data ? \"\".concat(this._data, \"&\").concat(data) : data;\n } else {\n this._data = (this._data || '') + data;\n }\n } else {\n this._data = data;\n }\n\n if (!isObject_ || this._isHost(data)) {\n return this;\n } // default to json\n\n\n if (!type) this.type('json');\n return this;\n};\n/**\n * Sort `querystring` by the sort function\n *\n *\n * Examples:\n *\n * // default order\n * request.get('/user')\n * .query('name=Nick')\n * .query('search=Manny')\n * .sortQuery()\n * .end(callback)\n *\n * // customized sort function\n * request.get('/user')\n * .query('name=Nick')\n * .query('search=Manny')\n * .sortQuery(function(a, b){\n * return a.length - b.length;\n * })\n * .end(callback)\n *\n *\n * @param {Function} sort\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.sortQuery = function (sort) {\n // _sort default to true but otherwise can be a function or boolean\n this._sort = typeof sort === 'undefined' ? true : sort;\n return this;\n};\n/**\n * Compose querystring to append to req.url\n *\n * @api private\n */\n\n\nRequestBase.prototype._finalizeQueryString = function () {\n var query = this._query.join('&');\n\n if (query) {\n this.url += (this.url.includes('?') ? '&' : '?') + query;\n }\n\n this._query.length = 0; // Makes the call idempotent\n\n if (this._sort) {\n var index = this.url.indexOf('?');\n\n if (index >= 0) {\n var queryArray = this.url.slice(index + 1).split('&');\n\n if (typeof this._sort === 'function') {\n queryArray.sort(this._sort);\n } else {\n queryArray.sort();\n }\n\n this.url = this.url.slice(0, index) + '?' + queryArray.join('&');\n }\n }\n}; // For backwards compat only\n\n\nRequestBase.prototype._appendQueryString = function () {\n console.warn('Unsupported');\n};\n/**\n * Invoke callback with timeout error.\n *\n * @api private\n */\n\n\nRequestBase.prototype._timeoutError = function (reason, timeout, errno) {\n if (this._aborted) {\n return;\n }\n\n var err = new Error(\"\".concat(reason + timeout, \"ms exceeded\"));\n err.timeout = timeout;\n err.code = 'ECONNABORTED';\n err.errno = errno;\n this.timedout = true;\n this.timedoutError = err;\n this.abort();\n this.callback(err);\n};\n\nRequestBase.prototype._setTimeouts = function () {\n var self = this; // deadline\n\n if (this._timeout && !this._timer) {\n this._timer = setTimeout(function () {\n self._timeoutError('Timeout of ', self._timeout, 'ETIME');\n }, this._timeout);\n } // response timeout\n\n\n if (this._responseTimeout && !this._responseTimeoutTimer) {\n this._responseTimeoutTimer = setTimeout(function () {\n self._timeoutError('Response timeout of ', self._responseTimeout, 'ETIMEDOUT');\n }, this._responseTimeout);\n }\n};\n\n},{\"./is-object\":9}],12:[function(require,module,exports){\n\"use strict\";\n\n/**\n * Module dependencies.\n */\nvar utils = require('./utils');\n/**\n * Expose `ResponseBase`.\n */\n\n\nmodule.exports = ResponseBase;\n/**\n * Initialize a new `ResponseBase`.\n *\n * @api public\n */\n\nfunction ResponseBase(obj) {\n if (obj) return mixin(obj);\n}\n/**\n * Mixin the prototype properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\n\nfunction mixin(obj) {\n for (var key in ResponseBase.prototype) {\n if (Object.prototype.hasOwnProperty.call(ResponseBase.prototype, key)) obj[key] = ResponseBase.prototype[key];\n }\n\n return obj;\n}\n/**\n * Get case-insensitive `field` value.\n *\n * @param {String} field\n * @return {String}\n * @api public\n */\n\n\nResponseBase.prototype.get = function (field) {\n return this.header[field.toLowerCase()];\n};\n/**\n * Set header related properties:\n *\n * - `.type` the content type without params\n *\n * A response of \"Content-Type: text/plain; charset=utf-8\"\n * will provide you with a `.type` of \"text/plain\".\n *\n * @param {Object} header\n * @api private\n */\n\n\nResponseBase.prototype._setHeaderProperties = function (header) {\n // TODO: moar!\n // TODO: make this a util\n // content-type\n var ct = header['content-type'] || '';\n this.type = utils.type(ct); // params\n\n var params = utils.params(ct);\n\n for (var key in params) {\n if (Object.prototype.hasOwnProperty.call(params, key)) this[key] = params[key];\n }\n\n this.links = {}; // links\n\n try {\n if (header.link) {\n this.links = utils.parseLinks(header.link);\n }\n } catch (_unused) {// ignore\n }\n};\n/**\n * Set flags such as `.ok` based on `status`.\n *\n * For example a 2xx response will give you a `.ok` of __true__\n * whereas 5xx will be __false__ and `.error` will be __true__. The\n * `.clientError` and `.serverError` are also available to be more\n * specific, and `.statusType` is the class of error ranging from 1..5\n * sometimes useful for mapping respond colors etc.\n *\n * \"sugar\" properties are also defined for common cases. Currently providing:\n *\n * - .noContent\n * - .badRequest\n * - .unauthorized\n * - .notAcceptable\n * - .notFound\n *\n * @param {Number} status\n * @api private\n */\n\n\nResponseBase.prototype._setStatusProperties = function (status) {\n var type = status / 100 | 0; // status / class\n\n this.statusCode = status;\n this.status = this.statusCode;\n this.statusType = type; // basics\n\n this.info = type === 1;\n this.ok = type === 2;\n this.redirect = type === 3;\n this.clientError = type === 4;\n this.serverError = type === 5;\n this.error = type === 4 || type === 5 ? this.toError() : false; // sugar\n\n this.created = status === 201;\n this.accepted = status === 202;\n this.noContent = status === 204;\n this.badRequest = status === 400;\n this.unauthorized = status === 401;\n this.notAcceptable = status === 406;\n this.forbidden = status === 403;\n this.notFound = status === 404;\n this.unprocessableEntity = status === 422;\n};\n\n},{\"./utils\":13}],13:[function(require,module,exports){\n\"use strict\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * Return the mime type for the given `str`.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\nexports.type = function (str) {\n return str.split(/ *; */).shift();\n};\n/**\n * Return header field parameters.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\n\nexports.params = function (val) {\n var obj = {};\n\n var _iterator = _createForOfIteratorHelper(val.split(/ *; */)),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var str = _step.value;\n var parts = str.split(/ *= */);\n var key = parts.shift();\n\n var _val = parts.shift();\n\n if (key && _val) obj[key] = _val;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return obj;\n};\n/**\n * Parse Link header fields.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\n\nexports.parseLinks = function (val) {\n var obj = {};\n\n var _iterator2 = _createForOfIteratorHelper(val.split(/ *, */)),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var str = _step2.value;\n var parts = str.split(/ *; */);\n var url = parts[0].slice(1, -1);\n var rel = parts[1].split(/ *= */)[1].slice(1, -1);\n obj[rel] = url;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return obj;\n};\n/**\n * Strip content related fields from `header`.\n *\n * @param {Object} header\n * @return {Object} header\n * @api private\n */\n\n\nexports.cleanHeader = function (header, changesOrigin) {\n delete header['content-type'];\n delete header['content-length'];\n delete header['transfer-encoding'];\n delete header.host; // secuirty\n\n if (changesOrigin) {\n delete header.authorization;\n delete header.cookie;\n }\n\n return header;\n};\n\n},{}]},{},[10])(10)\n});\n","import {dragElement} from './dragRecordingDiv';\nimport {submitJob} from \"./modzyDeepFakeModel\";\n\n\nlet mainVideo = document.getElementsByClassName(\"html5-main-video\")[0];\nlet recordingTimeMS = 5000;\nlet apiKey;\n\n/**\n * Init extension for content page\n *\n * @param pApiKey\n */\nfunction init(pApiKey){\n apiKey=pApiKey;\n\n initDeepFakeButtonInPlayer();\n\n}\n\n/**\n * Since it sometimes takes a while to construct the gui, new player buttons are added in an interval if the right-controls are available\n */\nfunction initDeepFakeButtonInPlayer(){\n const buttonAvailableInterval = setInterval(function (){\n var animControlsButton = document.getElementsByClassName(\"ytp-right-controls\");\n if (animControlsButton !== undefined){\n if(document.getElementById(\"deepfake\") === null || document.getElementById(\"deepfake\") === undefined){\n var button = document.createElement('button');\n button.id=\"deepfake\";\n button.className = 'ytp-button it-player-button';\n button.dataset.title = \"Deepfake detection\";\n button.onclick = function(){startStopRecording();}\n animControlsButton[0].insertBefore(button, animControlsButton[0].childNodes[0]);\n let playerImage = new Image();\n playerImage.src = chrome.runtime.getURL(\"/images/logo48.png\");\n playerImage.onload = () => {\n var imgTag = document.createElement('img');\n imgTag.src=playerImage.src;\n button.appendChild(imgTag);\n }\n }\n clearInterval(buttonAvailableInterval);\n }\n }, 100);\n}\n\n/**\n * Show the recorded video always in a new review-div.\n */\nfunction showVideoToCheck(){\n\n removePreviewPlayerDiv(); // if we already showing a preview div, remote it\n\n const div = document.createElement('div');\n // div.style=\"position:absolute;top:100px\"\n div.id=\"recordingDiv\"\n div.innerHTML = `\n
Click here to move
\n [X]Close this window
\n \n
\n
\n Processing...
\n
\n
\n
\n

Result:


\n \n \n \n
\n
\n \n Video download\n \n `;\n document.getElementById(\"content\").append(div);\n\n var image = document.createElement(\"img\");\n image.src = chrome.runtime.getURL(\"images/preloader.gif\");\n document.getElementById(\"preload-deepfake\").appendChild(image);\n\n dragElement(div);\n}\n\n/**\n * Removes the preview player div if exists\n */\nfunction removePreviewPlayerDiv(){\n var previewPlayer = document.getElementById(\"recordingDiv\");\n if(previewPlayer !== null){\n previewPlayer.parentNode.removeChild(previewPlayer);\n }\n}\n\nfunction wait(delayInMS) {\n return new Promise(resolve => setTimeout(resolve, delayInMS));\n}\n\nfunction startStopRecording(){\n let recordedBlob;\n mainVideo = document.getElementsByClassName(\"html5-main-video\")[0];\n // if(!isRecording){\n\n // stop(document.getElementsByClassName(\"html5-main-video\")[0]);\n document.getElementById(\"content\").style.backgroundColor=\"#8b0000\";\n startRecording(mainVideo.captureStream(), recordingTimeMS)\n .then (recordedChunks => {\n document.getElementById(\"content\").style.backgroundColor=\"#ffffff\";\n showVideoToCheck();\n recordedBlob = new Blob(recordedChunks, { type: \"video/webm\" });\n recording.src = URL.createObjectURL(recordedBlob);\n downloadButton.href = recording.src;\n downloadButton.download = \"RecordedVideo.webm\";\n }).then(()=>{\n let reader = new window.FileReader();\n reader.readAsDataURL(recordedBlob);\n reader.onloadend = function () {\n let base64data = reader.result;\n submitJob(base64data, apiKey);\n }\n\n });\n\n\n // }else {\n // // startRecording(document.getElementsByClassName(\"html5-main-video\")[0],5000);\n // }\n // isRecording = !isRecording;\n}\n\nasync function startRecording(stream, lengthInMS) {\n var options = { mimeType: \"video/webm\" };\n let recorder = new MediaRecorder(stream,options);\n let data = [];\n recorder.ondataavailable = event => data.push(event.data);\n recorder.start();\n\n let stopped = new Promise((resolve, reject) => {\n recorder.onstop = resolve;\n recorder.onerror = event => reject(event.name);\n });\n\n let recorded = wait(lengthInMS).then(\n () => recorder.state == \"recording\" && recorder.stop()\n );\n\n return Promise.all([\n stopped,\n recorded\n ])\n .then(() => data);\n}\n\n\nwindow.addEventListener(\"onhashchange\", function() {\n if(!location.href.includes(\"watch\")){\n if(document.getElementById(\"recordingDiv\") !== null){\n document.getElementById(\"recordingDiv\").remove();\n }\n }\n});\n\n/**\n * Check if URL Change and remove ai processing div if visible\n * https://www.youtube.com -> no video watching\n * https://www.youtube.com/watch* -> video watching\n *\n * @type {string}\n */\nlet lastUrl = location.href;\nnew MutationObserver(() => {\n const url = location.href;\n if (url !== lastUrl) {\n lastUrl = url;\n onUrlChange();\n }\n}).observe(document, {subtree: true, childList: true});\n\n/**\n * Remove recordingDiv if we do not watch a video\n */\nfunction onUrlChange() {\n if(!location.href.includes(\"watch\")){\n if(document.getElementById(\"recordingDiv\") !== null){\n document.getElementById(\"recordingDiv\").remove();\n }\n }\n}\n\nexport {init};\n","// code idea from https://www.w3schools.com/howto/howto_js_draggable.asp with changes\n// Make the DIV element draggable:\nfunction dragElement(elmnt) {\n\n var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;\n if (document.getElementById(elmnt.id + \"Header\")) {\n // if present, the header is where you move the DIV from:\n document.getElementById(elmnt.id + \"Header\").onmousedown = dragMouseDown;\n } else {\n // otherwise, move the DIV from anywhere inside the DIV:\n elmnt.onmousedown = dragMouseDown;\n }\n\n function dragMouseDown(e) {\n e = e || window.event;\n e.preventDefault();\n // get the mouse cursor position at startup:\n pos3 = e.clientX;\n pos4 = e.clientY;\n document.onmouseup = closeDragElement;\n // call a function whenever the cursor moves:\n document.onmousemove = elementDrag;\n }\n\n function elementDrag(e) {\n e = e || window.event;\n e.preventDefault();\n // calculate the new cursor position:\n pos1 = pos3 - e.clientX;\n pos2 = pos4 - e.clientY;\n pos3 = e.clientX;\n pos4 = e.clientY;\n // set the element's new position:\n elmnt.style.top = (elmnt.offsetTop - pos2) + \"px\";\n elmnt.style.left = (elmnt.offsetLeft - pos1) + \"px\";\n }\n\n function closeDragElement() {\n // stop moving when mouse button is released:\n document.onmouseup = null;\n document.onmousemove = null;\n }\n}\n\nexport {dragElement};\n","import * as deepfake from './deepfake';\n\nlet apiKey;\n\n/**\n * Read the api key from storage. If it is not set, it will try to get it from the user.\n */\nfunction readApiKey() {\n chrome.storage.sync.get(['apiKey'], function (result) {\n apiKey = result.apiKey;\n // Check if ApiKey is provided. Otherwise let user provide it.\n if (apiKey === undefined) {\n if (chrome.runtime.openOptionsPage) {\n chrome.runtime.openOptionsPage();\n } else {\n window.open(chrome.runtime.getURL('options.html'));\n }\n } else {\n deepfake.init(apiKey);\n }\n\n });\n}\n\n/**\n * Get Message from background.js if url change to https://www.youtube.com/watch*\n * Then read the apiKey and init video player button if not exist\n * YouTube doesn't reload the page when you go from one video to another or from the main page\n * therefore we need this hack and use onHistoryStateUpdated in the service worker\n */\nchrome.runtime.onMessage.addListener(\n function(request, sender, sendResponse) {\n if(request.message === \"initRecordButton\"){\n readApiKey();\n }\n }\n);\n"],"names":["$f4c2c421ceba0bd1$var$apiKey","f","$d4422860d1c3abfd$exports","define","amd","window","$parcel$global","self","this","superagent","r1","e","n1","t","o","i","c","undefined","u","a","Error","code","p","exports","call","r","i1","length","require","module","obj","key","Emitter","prototype","mixin","addEventListener","event","fn","_callbacks","push","on","off","apply","arguments","removeListener","removeAllListeners","removeEventListener","cb","callbacks","splice","args","Array","len","slice","obj1","_typeof","Symbol","iterator","constructor","stringify","deterministicStringify","stableStringify","replacerStack","replacer","spacer","res","JSON","replaceGetterValues","arr","part","pop","Object","defineProperty","decirc","val","k","stack","parent","propertyDescriptor","getOwnPropertyDescriptor","get","configurable","value","keys","b","deterministicDecirc","tmp","toJSON","isArray","sort","compareFunction","v","replace","String","percentTwenties","util","Format","RFC1738","RFC3986","assign","default","formatters","parse","formats","utils","hasOwnProperty","decode","str","$0","numberStr","fromCharCode","parseInt","parseArrayValue","options","comma","indexOf","split","parseKeys","givenKey","valuesParsed","allowDots","child","segment","depth","exec","index","plainObjects","has","allowPrototypes","chain","leaf","root","parseArrays","concat","create","cleanRoot","charAt","isNaN","arrayLimit","parseObject","opts","defaults","decoder","TypeError","charset","charsetSentinel","delimiter","isRegExp","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","strictNullHandling","normalizeParseOptions","tempObj","Infinity","cleanStr","limit","skipIndex","parts","bracketEqualsPos","pos","maybeMap","encodedVal","combine","parseValues","newObj","merge","compact","obj2","brackets","prefix","pushToArray","valueOrArray","Date","toISOString","defaultFormat","encode","encoder","encodeValuesOnly","format","formatter","indices","serializeDate","date","toISO","stringify1","object","generateArrayPrefix","skipNulls","filter","isBuffer","objKeys","values","value1","keyPrefix","addQueryPrefix","normalizeStringifyOptions","arrayFormat","arrayPrefixGenerators","joined","join","obj3","array","toString","toUpperCase","arrayToObject","source","target","reduce","acc","queue","prop","refs","item","j","compacted","compactQueue","strWithoutPlus","unescape","decodeURIComponent","defaultEncoder","string","escape","charCodeAt","out","hexTable","mapped","mergeTarget","forEach","targetItem","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","minLen","n","name","test","_unsupportedIterableToArray","_nonIterableSpread","arr2","Agent","_defaults","_len","_key","_setDefaults","req","def","obj4","obj5","safeStringify","qs","RequestBase","noop","method","url","Request","end","XMLHttpRequest","location","protocol","ActiveXObject","_unused","_unused2","_unused3","s","trim","pairs","pushEncodedKeyValuePair","isObject","subkey","pair","mime","status","xhr","_setStatusProperties","headers","parseHeader","getAllResponseHeaders","header","getResponseHeader","_setHeaderProperties","text","_responseType","body","response","_parseBody","err","original","err_","rawResponse","responseType","responseText","new_err","callback","data","send","parseString","html","json","Response","request","type","_parser","isJSON","msg","auth","user","pass","_auth","query","serialize","_query","_getFormData","_formData","FormData","_shouldRetry","_retry","_callback","clearTimeout","_maxRetries","retries","_retries","emit","crossDomainError","crossDomain","agent","warn","ca","buffer","write","pipe","_endCalled","console","_end","_setUploadTimeout","_uploadTimeout","_uploadTimeoutTimer","setTimeout","_timeoutError","_aborted","getXHR","_data","_setTimeouts","onreadystatechange","readyState","_responseTimeoutTimer","_unused5","timedout","handleProgress","direction","total","percent","loaded","hasListeners","username","password","open","_withCredentials","withCredentials","_isHost","field","setRequestHeader","toLowerCase","del","delete","post","obj6","_serializer","timeout","_timeout","_responseTimeout","option","deadline","upload","retry","count","_retryCallback","ERROR_CODES","Set","error","STATUS_CODES","timedoutError","then","resolve1","reject1","_this","_fullfilledPromise","ok","_okCallback","_isResponseOK","_header","set","unset","base64Encoder","isObject_","sortQuery","_sort","_finalizeQueryString","includes","queryArray","errno","abort","ct","params","links","link","parseLinks","statusCode","statusType","info","redirect","clientError","toError","accepted","noContent","notAcceptable","forbidden","_createForOfIteratorHelper","allowArrayLike","it","F","_e","normalCompletion","didErr","step","next","done","_e2","return","_step","_iterator","shift","_val","$f4c2c421ceba0bd1$var$base64data","$f4c2c421ceba0bd1$var$version","$f4c2c421ceba0bd1$export$7df3ac43e525a530","pBase64data","pApiKey","redirects","model","identifier","version","input","sources","jobIdentifier","pollJobInterval","setInterval","clearInterval","$f4c2c421ceba0bd1$var$updateModelResult","jobStatus","score","parseFloat","toFixed","$f4c2c421ceba0bd1$var$getJobResult","$f4c2c421ceba0bd1$var$pollStatus","result","resultDIV","document","getElementById","message","innerHTML","Math","round","style","color","$f4c2c421ceba0bd1$var$updateSearchResult","display","isDeepFake","href","page_title","page_url","isFake","currentTime","timeCheck","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","chrome","storage","sync","deepfakeChecks","timeChecked","$f4c2c421ceba0bd1$var$saveDeepFakeCheck","title","$1909fd95696f44ec$var$apiKey","$1909fd95696f44ec$var$mainVideo","getElementsByClassName","$1909fd95696f44ec$export$2cd8252107eb640b","buttonAvailableInterval","animControlsButton","button","createElement","id","className","dataset","onclick","backgroundColor","stream","lengthInMS","recorder","MediaRecorder","mimeType","ondataavailable","start","recorded","delayInMS","Promise","resolve","state","stop","all","stopped","$1909fd95696f44ec$var$startRecording","captureStream","recordedChunks","previewPlayer","parentNode","removeChild","div","append","image","src","runtime","getURL","appendChild","elmnt","pos1","pos2","pos3","pos4","dragMouseDown","preventDefault","clientX","clientY","onmouseup","closeDragElement","onmousemove","elementDrag","top","offsetTop","left","offsetLeft","onmousedown","$1909fd95696f44ec$var$showVideoToCheck","Blob","recording","URL","createObjectURL","recordedBlob","downloadButton","download","reader","readAsDataURL","onloadend","$1909fd95696f44ec$var$startStopRecording","insertBefore","childNodes","playerImage","Image","onload","imgTag","$1909fd95696f44ec$var$initDeepFakeButtonInPlayer","remove","$c911cdca8a32f45c$var$apiKey","onMessage","addListener","sender","sendResponse","apiKey","openOptionsPage"],"version":3,"file":"content.js.map"} \ No newline at end of file diff --git a/dist/deepfacke.js b/dist/deepfacke.js deleted file mode 100644 index f441a20..0000000 --- a/dist/deepfacke.js +++ /dev/null @@ -1,2 +0,0 @@ -(()=>{var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{};var e={};!function(r){if("object"==typeof e)e=r();else if("function"==typeof define&&define.amd)define([],r);else{("undefined"!=typeof window?window:void 0!==t?t:"undefined"!=typeof self?self:this).superagent=r()}}((function(){return function t(e,r,o){function n(s,a){if(!r[s]){if(!e[s]){var u=void 0;if(!a&&u)return u(s,!0);if(i)return i(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var l=r[s]={exports:{}};e[s][0].call(l.exports,(function(t){return n(e[s][1][t]||t)}),l,l.exports,t,e,r,o)}return r[s].exports}for(var i=void 0,s=0;se?1:0}function c(t,e,r){var o,s=l(t,"",[],void 0)||t;for(o=0===i.length?JSON.stringify(s,e,r):JSON.stringify(s,p(e),r);0!==n.length;){var a=n.pop();4===a.length?Object.defineProperty(a[0],a[1],a[3]):a[0][a[1]]=a[2]}return o}function l(t,e,r,s){var a;if("object"===o(t)&&null!==t){for(a=0;a0)for(var o=0;o-1?t.split(","):t},c=function(t,e,r,o){if(t){var i=r.allowDots?t.replace(/\.([^.[]+)/g,"[$1]"):t,s=/(\[[^[\]]*])/g,a=r.depth>0&&/(\[[^[\]]*])/.exec(i),c=a?i.slice(0,a.index):i,l=[];if(c){if(!r.plainObjects&&n.call(Object.prototype,c)&&!r.allowPrototypes)return;l.push(c)}for(var p=0;r.depth>0&&null!==(a=s.exec(i))&&p=0;--i){var s,a=t[i];if("[]"===a&&r.parseArrays)s=[].concat(n);else{s=r.plainObjects?Object.create(null):{};var c="["===a.charAt(0)&&"]"===a.charAt(a.length-1)?a.slice(1,-1):a,l=parseInt(c,10);r.parseArrays||""!==c?!isNaN(l)&&a!==c&&String(l)===c&&l>=0&&r.parseArrays&&l<=r.arrayLimit?(s=[])[l]=n:s[c]=n:s={0:n}}n=s}return n}(l,e,r,o)}};e.exports=function(t,e){var r=function(t){if(!t)return s;if(null!==t.decoder&&void 0!==t.decoder&&"function"!=typeof t.decoder)throw new TypeError("Decoder has to be a function.");if(void 0!==t.charset&&"utf-8"!==t.charset&&"iso-8859-1"!==t.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var e=void 0===t.charset?s.charset:t.charset;return{allowDots:void 0===t.allowDots?s.allowDots:!!t.allowDots,allowPrototypes:"boolean"==typeof t.allowPrototypes?t.allowPrototypes:s.allowPrototypes,arrayLimit:"number"==typeof t.arrayLimit?t.arrayLimit:s.arrayLimit,charset:e,charsetSentinel:"boolean"==typeof t.charsetSentinel?t.charsetSentinel:s.charsetSentinel,comma:"boolean"==typeof t.comma?t.comma:s.comma,decoder:"function"==typeof t.decoder?t.decoder:s.decoder,delimiter:"string"==typeof t.delimiter||o.isRegExp(t.delimiter)?t.delimiter:s.delimiter,depth:"number"==typeof t.depth||!1===t.depth?+t.depth:s.depth,ignoreQueryPrefix:!0===t.ignoreQueryPrefix,interpretNumericEntities:"boolean"==typeof t.interpretNumericEntities?t.interpretNumericEntities:s.interpretNumericEntities,parameterLimit:"number"==typeof t.parameterLimit?t.parameterLimit:s.parameterLimit,parseArrays:!1!==t.parseArrays,plainObjects:"boolean"==typeof t.plainObjects?t.plainObjects:s.plainObjects,strictNullHandling:"boolean"==typeof t.strictNullHandling?t.strictNullHandling:s.strictNullHandling}}(e);if(""===t||null==t)return r.plainObjects?Object.create(null):{};for(var l="string"==typeof t?function(t,e){var r,c={},l=e.ignoreQueryPrefix?t.replace(/^\?/,""):t,p=e.parameterLimit===1/0?void 0:e.parameterLimit,f=l.split(e.delimiter,p),h=-1,d=e.charset;if(e.charsetSentinel)for(r=0;r-1&&(m=i(m)?[m]:m),n.call(c,y)?c[y]=o.combine(c[y],m):c[y]=m}return c}(t,r):t,p=r.plainObjects?Object.create(null):{},f=Object.keys(l),h=0;h0?g+v:""}},{"./formats":3,"./utils":7}],7:[function(t,e,r){"use strict";function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var n=Object.prototype.hasOwnProperty,i=Array.isArray,s=function(){for(var t=[],e=0;e<256;++e)t.push("%"+((e<16?"0":"")+e.toString(16)).toUpperCase());return t}(),a=function(t,e){for(var r=e&&e.plainObjects?Object.create(null):{},o=0;o1;){var e=t.pop(),r=e.obj[e.prop];if(i(r)){for(var o=[],n=0;n=48&&u<=57||u>=65&&u<=90||u>=97&&u<=122?i+=n.charAt(a):u<128?i+=s[u]:u<2048?i+=s[192|u>>6]+s[128|63&u]:u<55296||u>=57344?i+=s[224|u>>12]+s[128|u>>6&63]+s[128|63&u]:(a+=1,u=65536+((1023&u)<<10|1023&n.charCodeAt(a)),i+=s[240|u>>18]+s[128|u>>12&63]+s[128|u>>6&63]+s[128|63&u])}return i},isBuffer:function(t){return!(!t||"object"!==o(t))&&!!(t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer(t))},isRegExp:function(t){return"[object RegExp]"===Object.prototype.toString.call(t)},maybeMap:function(t,e){if(i(t)){for(var r=[],o=0;ot.length)&&(e=t.length);for(var r=0,o=new Array(e);r0||t instanceof Object)?e(t):null)},g.prototype.toError=function(){var t=this.req,e=t.method,r=t.url,o="cannot ".concat(e," ").concat(r," (").concat(this.status,")"),n=new Error(o);return n.status=this.status,n.method=e,n.url=r,n},h.Response=g,i(w.prototype),u(w.prototype),w.prototype.type=function(t){return this.set("Content-Type",h.types[t]||t),this},w.prototype.accept=function(t){return this.set("Accept",h.types[t]||t),this},w.prototype.auth=function(t,e,r){1===arguments.length&&(e=""),"object"===o(e)&&null!==e&&(r=e,e=""),r||(r={type:"function"==typeof btoa?"basic":"auto"});var n=function(t){if("function"==typeof btoa)return btoa(t);throw new Error("Cannot use basic auth, btoa is not a function")};return this._auth(t,e,r,n)},w.prototype.query=function(t){return"string"!=typeof t&&(t=y(t)),t&&this._query.push(t),this},w.prototype.attach=function(t,e,r){if(e){if(this._data)throw new Error("superagent can't mix .send() and .attach()");this._getFormData().append(t,e,r||e.name)}return this},w.prototype._getFormData=function(){return this._formData||(this._formData=new n.FormData),this._formData},w.prototype.callback=function(t,e){if(this._shouldRetry(t,e))return this._retry();var r=this._callback;this.clearTimeout(),t&&(this._maxRetries&&(t.retries=this._retries-1),this.emit("error",t)),r(t,e)},w.prototype.crossDomainError=function(){var t=new Error("Request has been terminated\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.");t.crossDomain=!0,t.status=this.status,t.method=this.method,t.url=this.url,this.callback(t)},w.prototype.agent=function(){return console.warn("This is not supported in browser version of superagent"),this},w.prototype.ca=w.prototype.agent,w.prototype.buffer=w.prototype.ca,w.prototype.write=function(){throw new Error("Streaming is not supported in browser version of superagent")},w.prototype.pipe=w.prototype.write,w.prototype._isHost=function(t){return t&&"object"===o(t)&&!Array.isArray(t)&&"[object Object]"!==Object.prototype.toString.call(t)},w.prototype.end=function(t){this._endCalled&&console.warn("Warning: .end() was called twice. This is not supported in superagent"),this._endCalled=!0,this._callback=t||f,this._finalizeQueryString(),this._end()},w.prototype._setUploadTimeout=function(){var t=this;this._uploadTimeout&&!this._uploadTimeoutTimer&&(this._uploadTimeoutTimer=setTimeout((function(){t._timeoutError("Upload timeout of ",t._uploadTimeout,"ETIMEDOUT")}),this._uploadTimeout))},w.prototype._end=function(){if(this._aborted)return this.callback(new Error("The request has been aborted even before .end() was called"));var t=this;this.xhr=h.getXHR();var e=this.xhr,r=this._formData||this._data;this._setTimeouts(),e.onreadystatechange=function(){var r=e.readyState;if(r>=2&&t._responseTimeoutTimer&&clearTimeout(t._responseTimeoutTimer),4===r){var o;try{o=e.status}catch(t){o=0}if(!o){if(t.timedout||t._aborted)return;return t.crossDomainError()}t.emit("end")}};var o=function(e,r){r.total>0&&(r.percent=r.loaded/r.total*100,100===r.percent&&clearTimeout(t._uploadTimeoutTimer)),r.direction=e,t.emit("progress",r)};if(this.hasListeners("progress"))try{e.addEventListener("progress",o.bind(null,"download")),e.upload&&e.upload.addEventListener("progress",o.bind(null,"upload"))}catch(t){}e.upload&&this._setUploadTimeout();try{this.username&&this.password?e.open(this.method,this.url,!0,this.username,this.password):e.open(this.method,this.url,!0)}catch(t){return this.callback(t)}if(this._withCredentials&&(e.withCredentials=!0),!this._formData&&"GET"!==this.method&&"HEAD"!==this.method&&"string"!=typeof r&&!this._isHost(r)){var n=this._header["content-type"],i=this._serializer||h.serialize[n?n.split(";")[0]:""];!i&&v(n)&&(i=h.serialize["application/json"]),i&&(r=i(r))}for(var s in this.header)null!==this.header[s]&&Object.prototype.hasOwnProperty.call(this.header,s)&&e.setRequestHeader(s,this.header[s]);this._responseType&&(e.responseType=this._responseType),this.emit("request",this),e.send(void 0===r?null:r)},h.agent=function(){return new p},["GET","POST","OPTIONS","PATCH","PUT","DELETE"].forEach((function(t){p.prototype[t.toLowerCase()]=function(e,r){var o=new h.Request(t,e);return this._setDefaults(o),r&&o.end(r),o}})),p.prototype.del=p.prototype.delete,h.get=function(t,e,r){var o=h("GET",t);return"function"==typeof e&&(r=e,e=null),e&&o.query(e),r&&o.end(r),o},h.head=function(t,e,r){var o=h("HEAD",t);return"function"==typeof e&&(r=e,e=null),e&&o.query(e),r&&o.end(r),o},h.options=function(t,e,r){var o=h("OPTIONS",t);return"function"==typeof e&&(r=e,e=null),e&&o.send(e),r&&o.end(r),o},h.del=_,h.delete=_,h.patch=function(t,e,r){var o=h("PATCH",t);return"function"==typeof e&&(r=e,e=null),e&&o.send(e),r&&o.end(r),o},h.post=function(t,e,r){var o=h("POST",t);return"function"==typeof e&&(r=e,e=null),e&&o.send(e),r&&o.end(r),o},h.put=function(t,e,r){var o=h("PUT",t);return"function"==typeof e&&(r=e,e=null),e&&o.send(e),r&&o.end(r),o}},{"./agent-base":8,"./is-object":9,"./request-base":11,"./response-base":12,"component-emitter":1,"fast-safe-stringify":2,qs:4}],11:[function(t,e,r){"use strict";function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var n=t("./is-object");function i(t){if(t)return function(t){for(var e in i.prototype)Object.prototype.hasOwnProperty.call(i.prototype,e)&&(t[e]=i.prototype[e]);return t}(t)}e.exports=i,i.prototype.clearTimeout=function(){return clearTimeout(this._timer),clearTimeout(this._responseTimeoutTimer),clearTimeout(this._uploadTimeoutTimer),delete this._timer,delete this._responseTimeoutTimer,delete this._uploadTimeoutTimer,this},i.prototype.parse=function(t){return this._parser=t,this},i.prototype.responseType=function(t){return this._responseType=t,this},i.prototype.serialize=function(t){return this._serializer=t,this},i.prototype.timeout=function(t){if(!t||"object"!==o(t))return this._timeout=t,this._responseTimeout=0,this._uploadTimeout=0,this;for(var e in t)if(Object.prototype.hasOwnProperty.call(t,e))switch(e){case"deadline":this._timeout=t.deadline;break;case"response":this._responseTimeout=t.response;break;case"upload":this._uploadTimeout=t.upload;break;default:console.warn("Unknown timeout option",e)}return this},i.prototype.retry=function(t,e){return 0!==arguments.length&&!0!==t||(t=1),t<=0&&(t=0),this._maxRetries=t,this._retries=0,this._retryCallback=e,this};var s=new Set(["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"]),a=new Set([408,413,429,500,502,503,504,521,522,524]);i.prototype._shouldRetry=function(t,e){if(!this._maxRetries||this._retries++>=this._maxRetries)return!1;if(this._retryCallback)try{var r=this._retryCallback(t,e);if(!0===r)return!0;if(!1===r)return!1}catch(t){console.error(t)}if(e&&e.status&&a.has(e.status))return!0;if(t){if(t.code&&s.has(t.code))return!0;if(t.timeout&&"ECONNABORTED"===t.code)return!0;if(t.crossDomain)return!0}return!1},i.prototype._retry=function(){return this.clearTimeout(),this.req&&(this.req=null,this.req=this.request()),this._aborted=!1,this.timedout=!1,this.timedoutError=null,this._end()},i.prototype.then=function(t,e){var r=this;if(!this._fullfilledPromise){var o=this;this._endCalled&&console.warn("Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises"),this._fullfilledPromise=new Promise((function(t,e){o.on("abort",(function(){if(!(r._maxRetries&&r._maxRetries>r._retries))if(r.timedout&&r.timedoutError)e(r.timedoutError);else{var t=new Error("Aborted");t.code="ABORTED",t.status=r.status,t.method=r.method,t.url=r.url,e(t)}})),o.end((function(r,o){r?e(r):t(o)}))}))}return this._fullfilledPromise.then(t,e)},i.prototype.catch=function(t){return this.then(void 0,t)},i.prototype.use=function(t){return t(this),this},i.prototype.ok=function(t){if("function"!=typeof t)throw new Error("Callback required");return this._okCallback=t,this},i.prototype._isResponseOK=function(t){return!!t&&(this._okCallback?this._okCallback(t):t.status>=200&&t.status<300)},i.prototype.get=function(t){return this._header[t.toLowerCase()]},i.prototype.getHeader=i.prototype.get,i.prototype.set=function(t,e){if(n(t)){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&this.set(r,t[r]);return this}return this._header[t.toLowerCase()]=e,this.header[t]=e,this},i.prototype.unset=function(t){return delete this._header[t.toLowerCase()],delete this.header[t],this},i.prototype.field=function(t,e){if(null==t)throw new Error(".field(name, val) name can not be empty");if(this._data)throw new Error(".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()");if(n(t)){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&this.field(r,t[r]);return this}if(Array.isArray(e)){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&this.field(t,e[o]);return this}if(null==e)throw new Error(".field(name, val) val can not be empty");return"boolean"==typeof e&&(e=String(e)),this._getFormData().append(t,e),this},i.prototype.abort=function(){return this._aborted||(this._aborted=!0,this.xhr&&this.xhr.abort(),this.req&&this.req.abort(),this.clearTimeout(),this.emit("abort")),this},i.prototype._auth=function(t,e,r,o){switch(r.type){case"basic":this.set("Authorization","Basic ".concat(o("".concat(t,":").concat(e))));break;case"auto":this.username=t,this.password=e;break;case"bearer":this.set("Authorization","Bearer ".concat(t))}return this},i.prototype.withCredentials=function(t){return void 0===t&&(t=!0),this._withCredentials=t,this},i.prototype.redirects=function(t){return this._maxRedirects=t,this},i.prototype.maxResponseSize=function(t){if("number"!=typeof t)throw new TypeError("Invalid argument");return this._maxResponseSize=t,this},i.prototype.toJSON=function(){return{method:this.method,url:this.url,data:this._data,headers:this._header}},i.prototype.send=function(t){var e=n(t),r=this._header["content-type"];if(this._formData)throw new Error(".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()");if(e&&!this._data)Array.isArray(t)?this._data=[]:this._isHost(t)||(this._data={});else if(t&&this._data&&this._isHost(this._data))throw new Error("Can't merge these send calls");if(e&&n(this._data))for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(this._data[o]=t[o]);else"string"==typeof t?(r||this.type("form"),(r=this._header["content-type"])&&(r=r.toLowerCase().trim()),this._data="application/x-www-form-urlencoded"===r?this._data?"".concat(this._data,"&").concat(t):t:(this._data||"")+t):this._data=t;return!e||this._isHost(t)||r||this.type("json"),this},i.prototype.sortQuery=function(t){return this._sort=void 0===t||t,this},i.prototype._finalizeQueryString=function(){var t=this._query.join("&");if(t&&(this.url+=(this.url.includes("?")?"&":"?")+t),this._query.length=0,this._sort){var e=this.url.indexOf("?");if(e>=0){var r=this.url.slice(e+1).split("&");"function"==typeof this._sort?r.sort(this._sort):r.sort(),this.url=this.url.slice(0,e)+"?"+r.join("&")}}},i.prototype._appendQueryString=function(){console.warn("Unsupported")},i.prototype._timeoutError=function(t,e,r){if(!this._aborted){var o=new Error("".concat(t+e,"ms exceeded"));o.timeout=e,o.code="ECONNABORTED",o.errno=r,this.timedout=!0,this.timedoutError=o,this.abort(),this.callback(o)}},i.prototype._setTimeouts=function(){var t=this;this._timeout&&!this._timer&&(this._timer=setTimeout((function(){t._timeoutError("Timeout of ",t._timeout,"ETIME")}),this._timeout)),this._responseTimeout&&!this._responseTimeoutTimer&&(this._responseTimeoutTimer=setTimeout((function(){t._timeoutError("Response timeout of ",t._responseTimeout,"ETIMEDOUT")}),this._responseTimeout))}},{"./is-object":9}],12:[function(t,e,r){"use strict";var o=t("./utils");function n(t){if(t)return function(t){for(var e in n.prototype)Object.prototype.hasOwnProperty.call(n.prototype,e)&&(t[e]=n.prototype[e]);return t}(t)}e.exports=n,n.prototype.get=function(t){return this.header[t.toLowerCase()]},n.prototype._setHeaderProperties=function(t){var e=t["content-type"]||"";this.type=o.type(e);var r=o.params(e);for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(this[n]=r[n]);this.links={};try{t.link&&(this.links=o.parseLinks(t.link))}catch(t){}},n.prototype._setStatusProperties=function(t){var e=t/100|0;this.statusCode=t,this.status=this.statusCode,this.statusType=e,this.info=1===e,this.ok=2===e,this.redirect=3===e,this.clientError=4===e,this.serverError=5===e,this.error=(4===e||5===e)&&this.toError(),this.created=201===t,this.accepted=202===t,this.noContent=204===t,this.badRequest=400===t,this.unauthorized=401===t,this.notAcceptable=406===t,this.forbidden=403===t,this.notFound=404===t,this.unprocessableEntity=422===t}},{"./utils":13}],13:[function(t,e,r){"use strict";function o(t,e){var r;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"==typeof t)return n(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return n(t,e)}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var o=0,i=function(){};return{s:i,n:function(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,a=!0,u=!1;return{s:function(){r=t[Symbol.iterator]()},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,s=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw s}}}}function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,o=new Array(e);r{const t=location.href;t!==r&&(r=t,location.href.includes("watch")||null!==document.getElementById("recordingDiv")&&document.getElementById("recordingDiv").remove())})).observe(document,{subtree:!0,childList:!0})})(); -//# sourceMappingURL=deepfake.js.map diff --git a/dist/deepfacke.js.map b/dist/deepfacke.js.map deleted file mode 100644 index 1683624..0000000 --- a/dist/deepfacke.js.map +++ /dev/null @@ -1 +0,0 @@ -{"mappings":"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","sources":["node_modules/superagent/dist/superagent.js","src/deepfacke.js"],"sourcesContent":["(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.superagent = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i b) {\n return 1;\n }\n\n return 0;\n}\n\nfunction deterministicStringify(obj, replacer, spacer) {\n var tmp = deterministicDecirc(obj, '', [], undefined) || obj;\n var res;\n\n if (replacerStack.length === 0) {\n res = JSON.stringify(tmp, replacer, spacer);\n } else {\n res = JSON.stringify(tmp, replaceGetterValues(replacer), spacer);\n }\n\n while (arr.length !== 0) {\n var part = arr.pop();\n\n if (part.length === 4) {\n Object.defineProperty(part[0], part[1], part[3]);\n } else {\n part[0][part[1]] = part[2];\n }\n }\n\n return res;\n}\n\nfunction deterministicDecirc(val, k, stack, parent) {\n var i;\n\n if (_typeof(val) === 'object' && val !== null) {\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === val) {\n var propertyDescriptor = Object.getOwnPropertyDescriptor(parent, k);\n\n if (propertyDescriptor.get !== undefined) {\n if (propertyDescriptor.configurable) {\n Object.defineProperty(parent, k, {\n value: '[Circular]'\n });\n arr.push([parent, k, val, propertyDescriptor]);\n } else {\n replacerStack.push([val, k]);\n }\n } else {\n parent[k] = '[Circular]';\n arr.push([parent, k, val]);\n }\n\n return;\n }\n }\n\n if (typeof val.toJSON === 'function') {\n return;\n }\n\n stack.push(val); // Optimize for Arrays. Big arrays could kill the performance otherwise!\n\n if (Array.isArray(val)) {\n for (i = 0; i < val.length; i++) {\n deterministicDecirc(val[i], i, stack, val);\n }\n } else {\n // Create a temporary object in the required way\n var tmp = {};\n var keys = Object.keys(val).sort(compareFunction);\n\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n deterministicDecirc(val[key], key, stack, val);\n tmp[key] = val[key];\n }\n\n if (parent !== undefined) {\n arr.push([parent, k, val]);\n parent[k] = tmp;\n } else {\n return tmp;\n }\n }\n\n stack.pop();\n }\n} // wraps replacer function to handle values we couldn't replace\n// and mark them as [Circular]\n\n\nfunction replaceGetterValues(replacer) {\n replacer = replacer !== undefined ? replacer : function (k, v) {\n return v;\n };\n return function (key, val) {\n if (replacerStack.length > 0) {\n for (var i = 0; i < replacerStack.length; i++) {\n var part = replacerStack[i];\n\n if (part[1] === key && part[0] === val) {\n val = '[Circular]';\n replacerStack.splice(i, 1);\n break;\n }\n }\n }\n\n return replacer.call(this, key, val);\n };\n}\n\n},{}],3:[function(require,module,exports){\n'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar util = require('./utils');\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\nmodule.exports = util.assign({\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function RFC1738(value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function RFC3986(value) {\n return String(value);\n }\n }\n}, Format);\n\n},{\"./utils\":7}],4:[function(require,module,exports){\n'use strict';\n\nvar stringify = require('./stringify');\n\nvar parse = require('./parse');\n\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n\n},{\"./formats\":3,\"./parse\":5,\"./stringify\":6}],5:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function interpretNumericEntities(str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function parseArrayValue(val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n}; // This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\n\n\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\n\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n\n var i;\n var charset = options.charset;\n\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n\n var part = parts[i];\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n var key, val;\n\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(parseArrayValue(part.slice(pos + 1), options), function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n });\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function parseObject(chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n\n if (!options.parseArrays && cleanRoot === '') {\n obj = {\n 0: leaf\n };\n } else if (!isNaN(index) && root !== cleanRoot && String(index) === cleanRoot && index >= 0 && options.parseArrays && index <= options.arrayLimit) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj; // eslint-disable-line no-param-reassign\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n } // Transform dot notation to bracket notation\n\n\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey; // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g; // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key; // Stash the parent if it exists\n\n var keys = [];\n\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n } // Loop through children appending to the array until we hit depth\n\n\n var i = 0;\n\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(segment[1]);\n } // If there's a remainder, just add whatever is left\n\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: typeof opts.depth === 'number' || opts.depth === false ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {}; // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n return utils.compact(obj);\n};\n\n},{\"./utils\":7}],6:[function(require,module,exports){\n'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar utils = require('./utils');\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\n\nvar pushToArray = function pushToArray(arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string' || typeof v === 'number' || typeof v === 'boolean' || _typeof(v) === 'symbol' || typeof v === 'bigint';\n};\n\nvar stringify = function stringify(object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter, encodeValuesOnly, charset) {\n var obj = object;\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n\n return value;\n }).join(',');\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key') : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key');\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value'))];\n }\n\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n\n if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n var value = obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj) ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix : prefix + (allowDots ? '.' + key : '[' + key + ']');\n pushToArray(values, stringify(value, keyPrefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter, encodeValuesOnly, charset));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n\n format = opts.format;\n }\n\n var formatter = formats.formatters[format];\n var filter = defaults.filter;\n\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (_typeof(obj) !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n\n pushToArray(keys, stringify(obj[key], key, generateArrayPrefix, options.strictNullHandling, options.skipNulls, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.formatter, options.encodeValuesOnly, options.charset));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n\n},{\"./formats\":3,\"./utils\":7}],7:[function(require,module,exports){\n'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = function () {\n var array = [];\n\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}();\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (_typeof(source) !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && _typeof(target) === 'object') {\n if (options && (options.plainObjects || options.allowPrototypes) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || _typeof(target) !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n\n if (targetItem && _typeof(targetItem) === 'object' && item && _typeof(item) === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function decode(str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n } // utf-8\n\n\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n\n if (_typeof(str) === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || c >= 0x30 && c <= 0x39 // 0-9\n || c >= 0x41 && c <= 0x5A // a-z\n || c >= 0x61 && c <= 0x7A // A-Z\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | c >> 6] + hexTable[0x80 | c & 0x3F]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | c >> 12] + hexTable[0x80 | c >> 6 & 0x3F] + hexTable[0x80 | c & 0x3F]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + ((c & 0x3FF) << 10 | string.charCodeAt(i) & 0x3FF);\n out += hexTable[0xF0 | c >> 18] + hexTable[0x80 | c >> 12 & 0x3F] + hexTable[0x80 | c >> 6 & 0x3F] + hexTable[0x80 | c & 0x3F];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{\n obj: {\n o: value\n },\n prop: 'o'\n }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n var keys = Object.keys(obj);\n\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n\n if (_typeof(val) === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({\n obj: obj,\n prop: key\n });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || _typeof(obj) !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n\n return mapped;\n }\n\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n\n},{}],8:[function(require,module,exports){\n\"use strict\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction Agent() {\n this._defaults = [];\n}\n\n['use', 'on', 'once', 'set', 'query', 'type', 'accept', 'auth', 'withCredentials', 'sortQuery', 'retry', 'ok', 'redirects', 'timeout', 'buffer', 'serialize', 'parse', 'ca', 'key', 'pfx', 'cert', 'disableTLSCerts'].forEach(function (fn) {\n // Default setting for all requests from this agent\n Agent.prototype[fn] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n this._defaults.push({\n fn: fn,\n args: args\n });\n\n return this;\n };\n});\n\nAgent.prototype._setDefaults = function (req) {\n this._defaults.forEach(function (def) {\n req[def.fn].apply(req, _toConsumableArray(def.args));\n });\n};\n\nmodule.exports = Agent;\n\n},{}],9:[function(require,module,exports){\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Check if `obj` is an object.\n *\n * @param {Object} obj\n * @return {Boolean}\n * @api private\n */\nfunction isObject(obj) {\n return obj !== null && _typeof(obj) === 'object';\n}\n\nmodule.exports = isObject;\n\n},{}],10:[function(require,module,exports){\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Root reference for iframes.\n */\nvar root;\n\nif (typeof window !== 'undefined') {\n // Browser window\n root = window;\n} else if (typeof self === 'undefined') {\n // Other environments\n console.warn('Using browser-only version of superagent in non-browser environment');\n root = void 0;\n} else {\n // Web Worker\n root = self;\n}\n\nvar Emitter = require('component-emitter');\n\nvar safeStringify = require('fast-safe-stringify');\n\nvar qs = require('qs');\n\nvar RequestBase = require('./request-base');\n\nvar isObject = require('./is-object');\n\nvar ResponseBase = require('./response-base');\n\nvar Agent = require('./agent-base');\n/**\n * Noop.\n */\n\n\nfunction noop() {}\n/**\n * Expose `request`.\n */\n\n\nmodule.exports = function (method, url) {\n // callback\n if (typeof url === 'function') {\n return new exports.Request('GET', method).end(url);\n } // url first\n\n\n if (arguments.length === 1) {\n return new exports.Request('GET', method);\n }\n\n return new exports.Request(method, url);\n};\n\nexports = module.exports;\nvar request = exports;\nexports.Request = Request;\n/**\n * Determine XHR.\n */\n\nrequest.getXHR = function () {\n if (root.XMLHttpRequest && (!root.location || root.location.protocol !== 'file:' || !root.ActiveXObject)) {\n return new XMLHttpRequest();\n }\n\n try {\n return new ActiveXObject('Microsoft.XMLHTTP');\n } catch (_unused) {}\n\n try {\n return new ActiveXObject('Msxml2.XMLHTTP.6.0');\n } catch (_unused2) {}\n\n try {\n return new ActiveXObject('Msxml2.XMLHTTP.3.0');\n } catch (_unused3) {}\n\n try {\n return new ActiveXObject('Msxml2.XMLHTTP');\n } catch (_unused4) {}\n\n throw new Error('Browser-only version of superagent could not find XHR');\n};\n/**\n * Removes leading and trailing whitespace, added to support IE.\n *\n * @param {String} s\n * @return {String}\n * @api private\n */\n\n\nvar trim = ''.trim ? function (s) {\n return s.trim();\n} : function (s) {\n return s.replace(/(^\\s*|\\s*$)/g, '');\n};\n/**\n * Serialize the given `obj`.\n *\n * @param {Object} obj\n * @return {String}\n * @api private\n */\n\nfunction serialize(obj) {\n if (!isObject(obj)) return obj;\n var pairs = [];\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) pushEncodedKeyValuePair(pairs, key, obj[key]);\n }\n\n return pairs.join('&');\n}\n/**\n * Helps 'serialize' with serializing arrays.\n * Mutates the pairs array.\n *\n * @param {Array} pairs\n * @param {String} key\n * @param {Mixed} val\n */\n\n\nfunction pushEncodedKeyValuePair(pairs, key, val) {\n if (val === undefined) return;\n\n if (val === null) {\n pairs.push(encodeURI(key));\n return;\n }\n\n if (Array.isArray(val)) {\n val.forEach(function (v) {\n pushEncodedKeyValuePair(pairs, key, v);\n });\n } else if (isObject(val)) {\n for (var subkey in val) {\n if (Object.prototype.hasOwnProperty.call(val, subkey)) pushEncodedKeyValuePair(pairs, \"\".concat(key, \"[\").concat(subkey, \"]\"), val[subkey]);\n }\n } else {\n pairs.push(encodeURI(key) + '=' + encodeURIComponent(val));\n }\n}\n/**\n * Expose serialization method.\n */\n\n\nrequest.serializeObject = serialize;\n/**\n * Parse the given x-www-form-urlencoded `str`.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseString(str) {\n var obj = {};\n var pairs = str.split('&');\n var pair;\n var pos;\n\n for (var i = 0, len = pairs.length; i < len; ++i) {\n pair = pairs[i];\n pos = pair.indexOf('=');\n\n if (pos === -1) {\n obj[decodeURIComponent(pair)] = '';\n } else {\n obj[decodeURIComponent(pair.slice(0, pos))] = decodeURIComponent(pair.slice(pos + 1));\n }\n }\n\n return obj;\n}\n/**\n * Expose parser.\n */\n\n\nrequest.parseString = parseString;\n/**\n * Default MIME type map.\n *\n * superagent.types.xml = 'application/xml';\n *\n */\n\nrequest.types = {\n html: 'text/html',\n json: 'application/json',\n xml: 'text/xml',\n urlencoded: 'application/x-www-form-urlencoded',\n form: 'application/x-www-form-urlencoded',\n 'form-data': 'application/x-www-form-urlencoded'\n};\n/**\n * Default serialization map.\n *\n * superagent.serialize['application/xml'] = function(obj){\n * return 'generated xml here';\n * };\n *\n */\n\nrequest.serialize = {\n 'application/x-www-form-urlencoded': qs.stringify,\n 'application/json': safeStringify\n};\n/**\n * Default parsers.\n *\n * superagent.parse['application/xml'] = function(str){\n * return { object parsed from str };\n * };\n *\n */\n\nrequest.parse = {\n 'application/x-www-form-urlencoded': parseString,\n 'application/json': JSON.parse\n};\n/**\n * Parse the given header `str` into\n * an object containing the mapped fields.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseHeader(str) {\n var lines = str.split(/\\r?\\n/);\n var fields = {};\n var index;\n var line;\n var field;\n var val;\n\n for (var i = 0, len = lines.length; i < len; ++i) {\n line = lines[i];\n index = line.indexOf(':');\n\n if (index === -1) {\n // could be empty line, just skip it\n continue;\n }\n\n field = line.slice(0, index).toLowerCase();\n val = trim(line.slice(index + 1));\n fields[field] = val;\n }\n\n return fields;\n}\n/**\n * Check if `mime` is json or has +json structured syntax suffix.\n *\n * @param {String} mime\n * @return {Boolean}\n * @api private\n */\n\n\nfunction isJSON(mime) {\n // should match /json or +json\n // but not /json-seq\n return /[/+]json($|[^-\\w])/i.test(mime);\n}\n/**\n * Initialize a new `Response` with the given `xhr`.\n *\n * - set flags (.ok, .error, etc)\n * - parse header\n *\n * Examples:\n *\n * Aliasing `superagent` as `request` is nice:\n *\n * request = superagent;\n *\n * We can use the promise-like API, or pass callbacks:\n *\n * request.get('/').end(function(res){});\n * request.get('/', function(res){});\n *\n * Sending data can be chained:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' })\n * .end(function(res){});\n *\n * Or passed to `.send()`:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' }, function(res){});\n *\n * Or passed to `.post()`:\n *\n * request\n * .post('/user', { name: 'tj' })\n * .end(function(res){});\n *\n * Or further reduced to a single call for simple cases:\n *\n * request\n * .post('/user', { name: 'tj' }, function(res){});\n *\n * @param {XMLHTTPRequest} xhr\n * @param {Object} options\n * @api private\n */\n\n\nfunction Response(req) {\n this.req = req;\n this.xhr = this.req.xhr; // responseText is accessible only if responseType is '' or 'text' and on older browsers\n\n this.text = this.req.method !== 'HEAD' && (this.xhr.responseType === '' || this.xhr.responseType === 'text') || typeof this.xhr.responseType === 'undefined' ? this.xhr.responseText : null;\n this.statusText = this.req.xhr.statusText;\n var status = this.xhr.status; // handle IE9 bug: http://stackoverflow.com/questions/10046972/msie-returns-status-code-of-1223-for-ajax-request\n\n if (status === 1223) {\n status = 204;\n }\n\n this._setStatusProperties(status);\n\n this.headers = parseHeader(this.xhr.getAllResponseHeaders());\n this.header = this.headers; // getAllResponseHeaders sometimes falsely returns \"\" for CORS requests, but\n // getResponseHeader still works. so we get content-type even if getting\n // other headers fails.\n\n this.header['content-type'] = this.xhr.getResponseHeader('content-type');\n\n this._setHeaderProperties(this.header);\n\n if (this.text === null && req._responseType) {\n this.body = this.xhr.response;\n } else {\n this.body = this.req.method === 'HEAD' ? null : this._parseBody(this.text ? this.text : this.xhr.response);\n }\n} // eslint-disable-next-line new-cap\n\n\nResponseBase(Response.prototype);\n/**\n * Parse the given body `str`.\n *\n * Used for auto-parsing of bodies. Parsers\n * are defined on the `superagent.parse` object.\n *\n * @param {String} str\n * @return {Mixed}\n * @api private\n */\n\nResponse.prototype._parseBody = function (str) {\n var parse = request.parse[this.type];\n\n if (this.req._parser) {\n return this.req._parser(this, str);\n }\n\n if (!parse && isJSON(this.type)) {\n parse = request.parse['application/json'];\n }\n\n return parse && str && (str.length > 0 || str instanceof Object) ? parse(str) : null;\n};\n/**\n * Return an `Error` representative of this response.\n *\n * @return {Error}\n * @api public\n */\n\n\nResponse.prototype.toError = function () {\n var req = this.req;\n var method = req.method;\n var url = req.url;\n var msg = \"cannot \".concat(method, \" \").concat(url, \" (\").concat(this.status, \")\");\n var err = new Error(msg);\n err.status = this.status;\n err.method = method;\n err.url = url;\n return err;\n};\n/**\n * Expose `Response`.\n */\n\n\nrequest.Response = Response;\n/**\n * Initialize a new `Request` with the given `method` and `url`.\n *\n * @param {String} method\n * @param {String} url\n * @api public\n */\n\nfunction Request(method, url) {\n var self = this;\n this._query = this._query || [];\n this.method = method;\n this.url = url;\n this.header = {}; // preserves header name case\n\n this._header = {}; // coerces header names to lowercase\n\n this.on('end', function () {\n var err = null;\n var res = null;\n\n try {\n res = new Response(self);\n } catch (err_) {\n err = new Error('Parser is unable to parse the response');\n err.parse = true;\n err.original = err_; // issue #675: return the raw response if the response parsing fails\n\n if (self.xhr) {\n // ie9 doesn't have 'response' property\n err.rawResponse = typeof self.xhr.responseType === 'undefined' ? self.xhr.responseText : self.xhr.response; // issue #876: return the http status code if the response parsing fails\n\n err.status = self.xhr.status ? self.xhr.status : null;\n err.statusCode = err.status; // backwards-compat only\n } else {\n err.rawResponse = null;\n err.status = null;\n }\n\n return self.callback(err);\n }\n\n self.emit('response', res);\n var new_err;\n\n try {\n if (!self._isResponseOK(res)) {\n new_err = new Error(res.statusText || res.text || 'Unsuccessful HTTP response');\n }\n } catch (err_) {\n new_err = err_; // ok() callback can throw\n } // #1000 don't catch errors from the callback to avoid double calling it\n\n\n if (new_err) {\n new_err.original = err;\n new_err.response = res;\n new_err.status = res.status;\n self.callback(new_err, res);\n } else {\n self.callback(null, res);\n }\n });\n}\n/**\n * Mixin `Emitter` and `RequestBase`.\n */\n// eslint-disable-next-line new-cap\n\n\nEmitter(Request.prototype); // eslint-disable-next-line new-cap\n\nRequestBase(Request.prototype);\n/**\n * Set Content-Type to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.xml = 'application/xml';\n *\n * request.post('/')\n * .type('xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * request.post('/')\n * .type('application/xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * @param {String} type\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.type = function (type) {\n this.set('Content-Type', request.types[type] || type);\n return this;\n};\n/**\n * Set Accept to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.json = 'application/json';\n *\n * request.get('/agent')\n * .accept('json')\n * .end(callback);\n *\n * request.get('/agent')\n * .accept('application/json')\n * .end(callback);\n *\n * @param {String} accept\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.accept = function (type) {\n this.set('Accept', request.types[type] || type);\n return this;\n};\n/**\n * Set Authorization field value with `user` and `pass`.\n *\n * @param {String} user\n * @param {String} [pass] optional in case of using 'bearer' as type\n * @param {Object} options with 'type' property 'auto', 'basic' or 'bearer' (default 'basic')\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.auth = function (user, pass, options) {\n if (arguments.length === 1) pass = '';\n\n if (_typeof(pass) === 'object' && pass !== null) {\n // pass is optional and can be replaced with options\n options = pass;\n pass = '';\n }\n\n if (!options) {\n options = {\n type: typeof btoa === 'function' ? 'basic' : 'auto'\n };\n }\n\n var encoder = function encoder(string) {\n if (typeof btoa === 'function') {\n return btoa(string);\n }\n\n throw new Error('Cannot use basic auth, btoa is not a function');\n };\n\n return this._auth(user, pass, options, encoder);\n};\n/**\n * Add query-string `val`.\n *\n * Examples:\n *\n * request.get('/shoes')\n * .query('size=10')\n * .query({ color: 'blue' })\n *\n * @param {Object|String} val\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.query = function (val) {\n if (typeof val !== 'string') val = serialize(val);\n if (val) this._query.push(val);\n return this;\n};\n/**\n * Queue the given `file` as an attachment to the specified `field`,\n * with optional `options` (or filename).\n *\n * ``` js\n * request.post('/upload')\n * .attach('content', new Blob(['hey!'], { type: \"text/html\"}))\n * .end(callback);\n * ```\n *\n * @param {String} field\n * @param {Blob|File} file\n * @param {String|Object} options\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.attach = function (field, file, options) {\n if (file) {\n if (this._data) {\n throw new Error(\"superagent can't mix .send() and .attach()\");\n }\n\n this._getFormData().append(field, file, options || file.name);\n }\n\n return this;\n};\n\nRequest.prototype._getFormData = function () {\n if (!this._formData) {\n this._formData = new root.FormData();\n }\n\n return this._formData;\n};\n/**\n * Invoke the callback with `err` and `res`\n * and handle arity check.\n *\n * @param {Error} err\n * @param {Response} res\n * @api private\n */\n\n\nRequest.prototype.callback = function (err, res) {\n if (this._shouldRetry(err, res)) {\n return this._retry();\n }\n\n var fn = this._callback;\n this.clearTimeout();\n\n if (err) {\n if (this._maxRetries) err.retries = this._retries - 1;\n this.emit('error', err);\n }\n\n fn(err, res);\n};\n/**\n * Invoke callback with x-domain error.\n *\n * @api private\n */\n\n\nRequest.prototype.crossDomainError = function () {\n var err = new Error('Request has been terminated\\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.');\n err.crossDomain = true;\n err.status = this.status;\n err.method = this.method;\n err.url = this.url;\n this.callback(err);\n}; // This only warns, because the request is still likely to work\n\n\nRequest.prototype.agent = function () {\n console.warn('This is not supported in browser version of superagent');\n return this;\n};\n\nRequest.prototype.ca = Request.prototype.agent;\nRequest.prototype.buffer = Request.prototype.ca; // This throws, because it can't send/receive data as expected\n\nRequest.prototype.write = function () {\n throw new Error('Streaming is not supported in browser version of superagent');\n};\n\nRequest.prototype.pipe = Request.prototype.write;\n/**\n * Check if `obj` is a host object,\n * we don't want to serialize these :)\n *\n * @param {Object} obj host object\n * @return {Boolean} is a host object\n * @api private\n */\n\nRequest.prototype._isHost = function (obj) {\n // Native objects stringify to [object File], [object Blob], [object FormData], etc.\n return obj && _typeof(obj) === 'object' && !Array.isArray(obj) && Object.prototype.toString.call(obj) !== '[object Object]';\n};\n/**\n * Initiate request, invoking callback `fn(res)`\n * with an instanceof `Response`.\n *\n * @param {Function} fn\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.end = function (fn) {\n if (this._endCalled) {\n console.warn('Warning: .end() was called twice. This is not supported in superagent');\n }\n\n this._endCalled = true; // store callback\n\n this._callback = fn || noop; // querystring\n\n this._finalizeQueryString();\n\n this._end();\n};\n\nRequest.prototype._setUploadTimeout = function () {\n var self = this; // upload timeout it's wokrs only if deadline timeout is off\n\n if (this._uploadTimeout && !this._uploadTimeoutTimer) {\n this._uploadTimeoutTimer = setTimeout(function () {\n self._timeoutError('Upload timeout of ', self._uploadTimeout, 'ETIMEDOUT');\n }, this._uploadTimeout);\n }\n}; // eslint-disable-next-line complexity\n\n\nRequest.prototype._end = function () {\n if (this._aborted) return this.callback(new Error('The request has been aborted even before .end() was called'));\n var self = this;\n this.xhr = request.getXHR();\n var xhr = this.xhr;\n var data = this._formData || this._data;\n\n this._setTimeouts(); // state change\n\n\n xhr.onreadystatechange = function () {\n var readyState = xhr.readyState;\n\n if (readyState >= 2 && self._responseTimeoutTimer) {\n clearTimeout(self._responseTimeoutTimer);\n }\n\n if (readyState !== 4) {\n return;\n } // In IE9, reads to any property (e.g. status) off of an aborted XHR will\n // result in the error \"Could not complete the operation due to error c00c023f\"\n\n\n var status;\n\n try {\n status = xhr.status;\n } catch (_unused5) {\n status = 0;\n }\n\n if (!status) {\n if (self.timedout || self._aborted) return;\n return self.crossDomainError();\n }\n\n self.emit('end');\n }; // progress\n\n\n var handleProgress = function handleProgress(direction, e) {\n if (e.total > 0) {\n e.percent = e.loaded / e.total * 100;\n\n if (e.percent === 100) {\n clearTimeout(self._uploadTimeoutTimer);\n }\n }\n\n e.direction = direction;\n self.emit('progress', e);\n };\n\n if (this.hasListeners('progress')) {\n try {\n xhr.addEventListener('progress', handleProgress.bind(null, 'download'));\n\n if (xhr.upload) {\n xhr.upload.addEventListener('progress', handleProgress.bind(null, 'upload'));\n }\n } catch (_unused6) {// Accessing xhr.upload fails in IE from a web worker, so just pretend it doesn't exist.\n // Reported here:\n // https://connect.microsoft.com/IE/feedback/details/837245/xmlhttprequest-upload-throws-invalid-argument-when-used-from-web-worker-context\n }\n }\n\n if (xhr.upload) {\n this._setUploadTimeout();\n } // initiate request\n\n\n try {\n if (this.username && this.password) {\n xhr.open(this.method, this.url, true, this.username, this.password);\n } else {\n xhr.open(this.method, this.url, true);\n }\n } catch (err) {\n // see #1149\n return this.callback(err);\n } // CORS\n\n\n if (this._withCredentials) xhr.withCredentials = true; // body\n\n if (!this._formData && this.method !== 'GET' && this.method !== 'HEAD' && typeof data !== 'string' && !this._isHost(data)) {\n // serialize stuff\n var contentType = this._header['content-type'];\n\n var _serialize = this._serializer || request.serialize[contentType ? contentType.split(';')[0] : ''];\n\n if (!_serialize && isJSON(contentType)) {\n _serialize = request.serialize['application/json'];\n }\n\n if (_serialize) data = _serialize(data);\n } // set header fields\n\n\n for (var field in this.header) {\n if (this.header[field] === null) continue;\n if (Object.prototype.hasOwnProperty.call(this.header, field)) xhr.setRequestHeader(field, this.header[field]);\n }\n\n if (this._responseType) {\n xhr.responseType = this._responseType;\n } // send stuff\n\n\n this.emit('request', this); // IE11 xhr.send(undefined) sends 'undefined' string as POST payload (instead of nothing)\n // We need null here if data is undefined\n\n xhr.send(typeof data === 'undefined' ? null : data);\n};\n\nrequest.agent = function () {\n return new Agent();\n};\n\n['GET', 'POST', 'OPTIONS', 'PATCH', 'PUT', 'DELETE'].forEach(function (method) {\n Agent.prototype[method.toLowerCase()] = function (url, fn) {\n var req = new request.Request(method, url);\n\n this._setDefaults(req);\n\n if (fn) {\n req.end(fn);\n }\n\n return req;\n };\n});\nAgent.prototype.del = Agent.prototype.delete;\n/**\n * GET `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.get = function (url, data, fn) {\n var req = request('GET', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * HEAD `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.head = function (url, data, fn) {\n var req = request('HEAD', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * OPTIONS query to `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.options = function (url, data, fn) {\n var req = request('OPTIONS', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * DELETE `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nfunction del(url, data, fn) {\n var req = request('DELETE', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n}\n\nrequest.del = del;\nrequest.delete = del;\n/**\n * PATCH `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.patch = function (url, data, fn) {\n var req = request('PATCH', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * POST `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.post = function (url, data, fn) {\n var req = request('POST', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * PUT `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.put = function (url, data, fn) {\n var req = request('PUT', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n},{\"./agent-base\":8,\"./is-object\":9,\"./request-base\":11,\"./response-base\":12,\"component-emitter\":1,\"fast-safe-stringify\":2,\"qs\":4}],11:[function(require,module,exports){\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Module of mixed-in functions shared between node and client code\n */\nvar isObject = require('./is-object');\n/**\n * Expose `RequestBase`.\n */\n\n\nmodule.exports = RequestBase;\n/**\n * Initialize a new `RequestBase`.\n *\n * @api public\n */\n\nfunction RequestBase(object) {\n if (object) return mixin(object);\n}\n/**\n * Mixin the prototype properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\n\nfunction mixin(object) {\n for (var key in RequestBase.prototype) {\n if (Object.prototype.hasOwnProperty.call(RequestBase.prototype, key)) object[key] = RequestBase.prototype[key];\n }\n\n return object;\n}\n/**\n * Clear previous timeout.\n *\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.clearTimeout = function () {\n clearTimeout(this._timer);\n clearTimeout(this._responseTimeoutTimer);\n clearTimeout(this._uploadTimeoutTimer);\n delete this._timer;\n delete this._responseTimeoutTimer;\n delete this._uploadTimeoutTimer;\n return this;\n};\n/**\n * Override default response body parser\n *\n * This function will be called to convert incoming data into request.body\n *\n * @param {Function}\n * @api public\n */\n\n\nRequestBase.prototype.parse = function (fn) {\n this._parser = fn;\n return this;\n};\n/**\n * Set format of binary response body.\n * In browser valid formats are 'blob' and 'arraybuffer',\n * which return Blob and ArrayBuffer, respectively.\n *\n * In Node all values result in Buffer.\n *\n * Examples:\n *\n * req.get('/')\n * .responseType('blob')\n * .end(callback);\n *\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.responseType = function (value) {\n this._responseType = value;\n return this;\n};\n/**\n * Override default request body serializer\n *\n * This function will be called to convert data set via .send or .attach into payload to send\n *\n * @param {Function}\n * @api public\n */\n\n\nRequestBase.prototype.serialize = function (fn) {\n this._serializer = fn;\n return this;\n};\n/**\n * Set timeouts.\n *\n * - response timeout is time between sending request and receiving the first byte of the response. Includes DNS and connection time.\n * - deadline is the time from start of the request to receiving response body in full. If the deadline is too short large files may not load at all on slow connections.\n * - upload is the time since last bit of data was sent or received. This timeout works only if deadline timeout is off\n *\n * Value of 0 or false means no timeout.\n *\n * @param {Number|Object} ms or {response, deadline}\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.timeout = function (options) {\n if (!options || _typeof(options) !== 'object') {\n this._timeout = options;\n this._responseTimeout = 0;\n this._uploadTimeout = 0;\n return this;\n }\n\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option)) {\n switch (option) {\n case 'deadline':\n this._timeout = options.deadline;\n break;\n\n case 'response':\n this._responseTimeout = options.response;\n break;\n\n case 'upload':\n this._uploadTimeout = options.upload;\n break;\n\n default:\n console.warn('Unknown timeout option', option);\n }\n }\n }\n\n return this;\n};\n/**\n * Set number of retry attempts on error.\n *\n * Failed requests will be retried 'count' times if timeout or err.code >= 500.\n *\n * @param {Number} count\n * @param {Function} [fn]\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.retry = function (count, fn) {\n // Default to 1 if no count passed or true\n if (arguments.length === 0 || count === true) count = 1;\n if (count <= 0) count = 0;\n this._maxRetries = count;\n this._retries = 0;\n this._retryCallback = fn;\n return this;\n}; //\n// NOTE: we do not include ESOCKETTIMEDOUT because that is from `request` package\n// \n//\n// NOTE: we do not include EADDRINFO because it was removed from libuv in 2014\n// \n// \n//\n//\n// TODO: expose these as configurable defaults\n//\n\n\nvar ERROR_CODES = new Set(['ETIMEDOUT', 'ECONNRESET', 'EADDRINUSE', 'ECONNREFUSED', 'EPIPE', 'ENOTFOUND', 'ENETUNREACH', 'EAI_AGAIN']);\nvar STATUS_CODES = new Set([408, 413, 429, 500, 502, 503, 504, 521, 522, 524]); // TODO: we would need to make this easily configurable before adding it in (e.g. some might want to add POST)\n// const METHODS = new Set(['GET', 'PUT', 'HEAD', 'DELETE', 'OPTIONS', 'TRACE']);\n\n/**\n * Determine if a request should be retried.\n * (Inspired by https://github.com/sindresorhus/got#retry)\n *\n * @param {Error} err an error\n * @param {Response} [res] response\n * @returns {Boolean} if segment should be retried\n */\n\nRequestBase.prototype._shouldRetry = function (err, res) {\n if (!this._maxRetries || this._retries++ >= this._maxRetries) {\n return false;\n }\n\n if (this._retryCallback) {\n try {\n var override = this._retryCallback(err, res);\n\n if (override === true) return true;\n if (override === false) return false; // undefined falls back to defaults\n } catch (err_) {\n console.error(err_);\n }\n } // TODO: we would need to make this easily configurable before adding it in (e.g. some might want to add POST)\n\n /*\n if (\n this.req &&\n this.req.method &&\n !METHODS.has(this.req.method.toUpperCase())\n )\n return false;\n */\n\n\n if (res && res.status && STATUS_CODES.has(res.status)) return true;\n\n if (err) {\n if (err.code && ERROR_CODES.has(err.code)) return true; // Superagent timeout\n\n if (err.timeout && err.code === 'ECONNABORTED') return true;\n if (err.crossDomain) return true;\n }\n\n return false;\n};\n/**\n * Retry request\n *\n * @return {Request} for chaining\n * @api private\n */\n\n\nRequestBase.prototype._retry = function () {\n this.clearTimeout(); // node\n\n if (this.req) {\n this.req = null;\n this.req = this.request();\n }\n\n this._aborted = false;\n this.timedout = false;\n this.timedoutError = null;\n return this._end();\n};\n/**\n * Promise support\n *\n * @param {Function} resolve\n * @param {Function} [reject]\n * @return {Request}\n */\n\n\nRequestBase.prototype.then = function (resolve, reject) {\n var _this = this;\n\n if (!this._fullfilledPromise) {\n var self = this;\n\n if (this._endCalled) {\n console.warn('Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises');\n }\n\n this._fullfilledPromise = new Promise(function (resolve, reject) {\n self.on('abort', function () {\n if (_this._maxRetries && _this._maxRetries > _this._retries) {\n return;\n }\n\n if (_this.timedout && _this.timedoutError) {\n reject(_this.timedoutError);\n return;\n }\n\n var err = new Error('Aborted');\n err.code = 'ABORTED';\n err.status = _this.status;\n err.method = _this.method;\n err.url = _this.url;\n reject(err);\n });\n self.end(function (err, res) {\n if (err) reject(err);else resolve(res);\n });\n });\n }\n\n return this._fullfilledPromise.then(resolve, reject);\n};\n\nRequestBase.prototype.catch = function (cb) {\n return this.then(undefined, cb);\n};\n/**\n * Allow for extension\n */\n\n\nRequestBase.prototype.use = function (fn) {\n fn(this);\n return this;\n};\n\nRequestBase.prototype.ok = function (cb) {\n if (typeof cb !== 'function') throw new Error('Callback required');\n this._okCallback = cb;\n return this;\n};\n\nRequestBase.prototype._isResponseOK = function (res) {\n if (!res) {\n return false;\n }\n\n if (this._okCallback) {\n return this._okCallback(res);\n }\n\n return res.status >= 200 && res.status < 300;\n};\n/**\n * Get request header `field`.\n * Case-insensitive.\n *\n * @param {String} field\n * @return {String}\n * @api public\n */\n\n\nRequestBase.prototype.get = function (field) {\n return this._header[field.toLowerCase()];\n};\n/**\n * Get case-insensitive header `field` value.\n * This is a deprecated internal API. Use `.get(field)` instead.\n *\n * (getHeader is no longer used internally by the superagent code base)\n *\n * @param {String} field\n * @return {String}\n * @api private\n * @deprecated\n */\n\n\nRequestBase.prototype.getHeader = RequestBase.prototype.get;\n/**\n * Set header `field` to `val`, or multiple fields with one object.\n * Case-insensitive.\n *\n * Examples:\n *\n * req.get('/')\n * .set('Accept', 'application/json')\n * .set('X-API-Key', 'foobar')\n * .end(callback);\n *\n * req.get('/')\n * .set({ Accept: 'application/json', 'X-API-Key': 'foobar' })\n * .end(callback);\n *\n * @param {String|Object} field\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.set = function (field, value) {\n if (isObject(field)) {\n for (var key in field) {\n if (Object.prototype.hasOwnProperty.call(field, key)) this.set(key, field[key]);\n }\n\n return this;\n }\n\n this._header[field.toLowerCase()] = value;\n this.header[field] = value;\n return this;\n};\n/**\n * Remove header `field`.\n * Case-insensitive.\n *\n * Example:\n *\n * req.get('/')\n * .unset('User-Agent')\n * .end(callback);\n *\n * @param {String} field field name\n */\n\n\nRequestBase.prototype.unset = function (field) {\n delete this._header[field.toLowerCase()];\n delete this.header[field];\n return this;\n};\n/**\n * Write the field `name` and `val`, or multiple fields with one object\n * for \"multipart/form-data\" request bodies.\n *\n * ``` js\n * request.post('/upload')\n * .field('foo', 'bar')\n * .end(callback);\n *\n * request.post('/upload')\n * .field({ foo: 'bar', baz: 'qux' })\n * .end(callback);\n * ```\n *\n * @param {String|Object} name name of field\n * @param {String|Blob|File|Buffer|fs.ReadStream} val value of field\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.field = function (name, value) {\n // name should be either a string or an object.\n if (name === null || undefined === name) {\n throw new Error('.field(name, val) name can not be empty');\n }\n\n if (this._data) {\n throw new Error(\".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()\");\n }\n\n if (isObject(name)) {\n for (var key in name) {\n if (Object.prototype.hasOwnProperty.call(name, key)) this.field(key, name[key]);\n }\n\n return this;\n }\n\n if (Array.isArray(value)) {\n for (var i in value) {\n if (Object.prototype.hasOwnProperty.call(value, i)) this.field(name, value[i]);\n }\n\n return this;\n } // val should be defined now\n\n\n if (value === null || undefined === value) {\n throw new Error('.field(name, val) val can not be empty');\n }\n\n if (typeof value === 'boolean') {\n value = String(value);\n }\n\n this._getFormData().append(name, value);\n\n return this;\n};\n/**\n * Abort the request, and clear potential timeout.\n *\n * @return {Request} request\n * @api public\n */\n\n\nRequestBase.prototype.abort = function () {\n if (this._aborted) {\n return this;\n }\n\n this._aborted = true;\n if (this.xhr) this.xhr.abort(); // browser\n\n if (this.req) this.req.abort(); // node\n\n this.clearTimeout();\n this.emit('abort');\n return this;\n};\n\nRequestBase.prototype._auth = function (user, pass, options, base64Encoder) {\n switch (options.type) {\n case 'basic':\n this.set('Authorization', \"Basic \".concat(base64Encoder(\"\".concat(user, \":\").concat(pass))));\n break;\n\n case 'auto':\n this.username = user;\n this.password = pass;\n break;\n\n case 'bearer':\n // usage would be .auth(accessToken, { type: 'bearer' })\n this.set('Authorization', \"Bearer \".concat(user));\n break;\n\n default:\n break;\n }\n\n return this;\n};\n/**\n * Enable transmission of cookies with x-domain requests.\n *\n * Note that for this to work the origin must not be\n * using \"Access-Control-Allow-Origin\" with a wildcard,\n * and also must set \"Access-Control-Allow-Credentials\"\n * to \"true\".\n *\n * @api public\n */\n\n\nRequestBase.prototype.withCredentials = function (on) {\n // This is browser-only functionality. Node side is no-op.\n if (on === undefined) on = true;\n this._withCredentials = on;\n return this;\n};\n/**\n * Set the max redirects to `n`. Does nothing in browser XHR implementation.\n *\n * @param {Number} n\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.redirects = function (n) {\n this._maxRedirects = n;\n return this;\n};\n/**\n * Maximum size of buffered response body, in bytes. Counts uncompressed size.\n * Default 200MB.\n *\n * @param {Number} n number of bytes\n * @return {Request} for chaining\n */\n\n\nRequestBase.prototype.maxResponseSize = function (n) {\n if (typeof n !== 'number') {\n throw new TypeError('Invalid argument');\n }\n\n this._maxResponseSize = n;\n return this;\n};\n/**\n * Convert to a plain javascript object (not JSON string) of scalar properties.\n * Note as this method is designed to return a useful non-this value,\n * it cannot be chained.\n *\n * @return {Object} describing method, url, and data of this request\n * @api public\n */\n\n\nRequestBase.prototype.toJSON = function () {\n return {\n method: this.method,\n url: this.url,\n data: this._data,\n headers: this._header\n };\n};\n/**\n * Send `data` as the request body, defaulting the `.type()` to \"json\" when\n * an object is given.\n *\n * Examples:\n *\n * // manual json\n * request.post('/user')\n * .type('json')\n * .send('{\"name\":\"tj\"}')\n * .end(callback)\n *\n * // auto json\n * request.post('/user')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // manual x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send('name=tj')\n * .end(callback)\n *\n * // auto x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // defaults to x-www-form-urlencoded\n * request.post('/user')\n * .send('name=tobi')\n * .send('species=ferret')\n * .end(callback)\n *\n * @param {String|Object} data\n * @return {Request} for chaining\n * @api public\n */\n// eslint-disable-next-line complexity\n\n\nRequestBase.prototype.send = function (data) {\n var isObject_ = isObject(data);\n var type = this._header['content-type'];\n\n if (this._formData) {\n throw new Error(\".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()\");\n }\n\n if (isObject_ && !this._data) {\n if (Array.isArray(data)) {\n this._data = [];\n } else if (!this._isHost(data)) {\n this._data = {};\n }\n } else if (data && this._data && this._isHost(this._data)) {\n throw new Error(\"Can't merge these send calls\");\n } // merge\n\n\n if (isObject_ && isObject(this._data)) {\n for (var key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) this._data[key] = data[key];\n }\n } else if (typeof data === 'string') {\n // default to x-www-form-urlencoded\n if (!type) this.type('form');\n type = this._header['content-type'];\n if (type) type = type.toLowerCase().trim();\n\n if (type === 'application/x-www-form-urlencoded') {\n this._data = this._data ? \"\".concat(this._data, \"&\").concat(data) : data;\n } else {\n this._data = (this._data || '') + data;\n }\n } else {\n this._data = data;\n }\n\n if (!isObject_ || this._isHost(data)) {\n return this;\n } // default to json\n\n\n if (!type) this.type('json');\n return this;\n};\n/**\n * Sort `querystring` by the sort function\n *\n *\n * Examples:\n *\n * // default order\n * request.get('/user')\n * .query('name=Nick')\n * .query('search=Manny')\n * .sortQuery()\n * .end(callback)\n *\n * // customized sort function\n * request.get('/user')\n * .query('name=Nick')\n * .query('search=Manny')\n * .sortQuery(function(a, b){\n * return a.length - b.length;\n * })\n * .end(callback)\n *\n *\n * @param {Function} sort\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.sortQuery = function (sort) {\n // _sort default to true but otherwise can be a function or boolean\n this._sort = typeof sort === 'undefined' ? true : sort;\n return this;\n};\n/**\n * Compose querystring to append to req.url\n *\n * @api private\n */\n\n\nRequestBase.prototype._finalizeQueryString = function () {\n var query = this._query.join('&');\n\n if (query) {\n this.url += (this.url.includes('?') ? '&' : '?') + query;\n }\n\n this._query.length = 0; // Makes the call idempotent\n\n if (this._sort) {\n var index = this.url.indexOf('?');\n\n if (index >= 0) {\n var queryArray = this.url.slice(index + 1).split('&');\n\n if (typeof this._sort === 'function') {\n queryArray.sort(this._sort);\n } else {\n queryArray.sort();\n }\n\n this.url = this.url.slice(0, index) + '?' + queryArray.join('&');\n }\n }\n}; // For backwards compat only\n\n\nRequestBase.prototype._appendQueryString = function () {\n console.warn('Unsupported');\n};\n/**\n * Invoke callback with timeout error.\n *\n * @api private\n */\n\n\nRequestBase.prototype._timeoutError = function (reason, timeout, errno) {\n if (this._aborted) {\n return;\n }\n\n var err = new Error(\"\".concat(reason + timeout, \"ms exceeded\"));\n err.timeout = timeout;\n err.code = 'ECONNABORTED';\n err.errno = errno;\n this.timedout = true;\n this.timedoutError = err;\n this.abort();\n this.callback(err);\n};\n\nRequestBase.prototype._setTimeouts = function () {\n var self = this; // deadline\n\n if (this._timeout && !this._timer) {\n this._timer = setTimeout(function () {\n self._timeoutError('Timeout of ', self._timeout, 'ETIME');\n }, this._timeout);\n } // response timeout\n\n\n if (this._responseTimeout && !this._responseTimeoutTimer) {\n this._responseTimeoutTimer = setTimeout(function () {\n self._timeoutError('Response timeout of ', self._responseTimeout, 'ETIMEDOUT');\n }, this._responseTimeout);\n }\n};\n\n},{\"./is-object\":9}],12:[function(require,module,exports){\n\"use strict\";\n\n/**\n * Module dependencies.\n */\nvar utils = require('./utils');\n/**\n * Expose `ResponseBase`.\n */\n\n\nmodule.exports = ResponseBase;\n/**\n * Initialize a new `ResponseBase`.\n *\n * @api public\n */\n\nfunction ResponseBase(obj) {\n if (obj) return mixin(obj);\n}\n/**\n * Mixin the prototype properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\n\nfunction mixin(obj) {\n for (var key in ResponseBase.prototype) {\n if (Object.prototype.hasOwnProperty.call(ResponseBase.prototype, key)) obj[key] = ResponseBase.prototype[key];\n }\n\n return obj;\n}\n/**\n * Get case-insensitive `field` value.\n *\n * @param {String} field\n * @return {String}\n * @api public\n */\n\n\nResponseBase.prototype.get = function (field) {\n return this.header[field.toLowerCase()];\n};\n/**\n * Set header related properties:\n *\n * - `.type` the content type without params\n *\n * A response of \"Content-Type: text/plain; charset=utf-8\"\n * will provide you with a `.type` of \"text/plain\".\n *\n * @param {Object} header\n * @api private\n */\n\n\nResponseBase.prototype._setHeaderProperties = function (header) {\n // TODO: moar!\n // TODO: make this a util\n // content-type\n var ct = header['content-type'] || '';\n this.type = utils.type(ct); // params\n\n var params = utils.params(ct);\n\n for (var key in params) {\n if (Object.prototype.hasOwnProperty.call(params, key)) this[key] = params[key];\n }\n\n this.links = {}; // links\n\n try {\n if (header.link) {\n this.links = utils.parseLinks(header.link);\n }\n } catch (_unused) {// ignore\n }\n};\n/**\n * Set flags such as `.ok` based on `status`.\n *\n * For example a 2xx response will give you a `.ok` of __true__\n * whereas 5xx will be __false__ and `.error` will be __true__. The\n * `.clientError` and `.serverError` are also available to be more\n * specific, and `.statusType` is the class of error ranging from 1..5\n * sometimes useful for mapping respond colors etc.\n *\n * \"sugar\" properties are also defined for common cases. Currently providing:\n *\n * - .noContent\n * - .badRequest\n * - .unauthorized\n * - .notAcceptable\n * - .notFound\n *\n * @param {Number} status\n * @api private\n */\n\n\nResponseBase.prototype._setStatusProperties = function (status) {\n var type = status / 100 | 0; // status / class\n\n this.statusCode = status;\n this.status = this.statusCode;\n this.statusType = type; // basics\n\n this.info = type === 1;\n this.ok = type === 2;\n this.redirect = type === 3;\n this.clientError = type === 4;\n this.serverError = type === 5;\n this.error = type === 4 || type === 5 ? this.toError() : false; // sugar\n\n this.created = status === 201;\n this.accepted = status === 202;\n this.noContent = status === 204;\n this.badRequest = status === 400;\n this.unauthorized = status === 401;\n this.notAcceptable = status === 406;\n this.forbidden = status === 403;\n this.notFound = status === 404;\n this.unprocessableEntity = status === 422;\n};\n\n},{\"./utils\":13}],13:[function(require,module,exports){\n\"use strict\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * Return the mime type for the given `str`.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\nexports.type = function (str) {\n return str.split(/ *; */).shift();\n};\n/**\n * Return header field parameters.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\n\nexports.params = function (val) {\n var obj = {};\n\n var _iterator = _createForOfIteratorHelper(val.split(/ *; */)),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var str = _step.value;\n var parts = str.split(/ *= */);\n var key = parts.shift();\n\n var _val = parts.shift();\n\n if (key && _val) obj[key] = _val;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return obj;\n};\n/**\n * Parse Link header fields.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\n\nexports.parseLinks = function (val) {\n var obj = {};\n\n var _iterator2 = _createForOfIteratorHelper(val.split(/ *, */)),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var str = _step2.value;\n var parts = str.split(/ *; */);\n var url = parts[0].slice(1, -1);\n var rel = parts[1].split(/ *= */)[1].slice(1, -1);\n obj[rel] = url;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return obj;\n};\n/**\n * Strip content related fields from `header`.\n *\n * @param {Object} header\n * @return {Object} header\n * @api private\n */\n\n\nexports.cleanHeader = function (header, changesOrigin) {\n delete header['content-type'];\n delete header['content-length'];\n delete header['transfer-encoding'];\n delete header.host; // secuirty\n\n if (changesOrigin) {\n delete header.authorization;\n delete header.cookie;\n }\n\n return header;\n};\n\n},{}]},{},[10])(10)\n});\n","import {dragElement} from './dragRecordingDiv';\r\nimport {submitJob} from \"./modzyDeepFakeModel\";\r\n\r\n\r\nlet isRecording=false;\r\nlet mainVideo = document.getElementsByClassName(\"html5-main-video\")[0];\r\nlet recordingTimeMS = 5000;\r\nlet apiKey;\r\n\r\n/**\r\n * Init extension for content page\r\n *\r\n * @param pApiKey\r\n */\r\nfunction init(pApiKey){\r\n apiKey=pApiKey;\r\n\r\n initDeepFakeButtonInPlayer();\r\n\r\n}\r\n\r\n/**\r\n * Since it sometimes takes a while to construct the gui, new player buttons are added in an interval if the right-controls are available\r\n */\r\nfunction initDeepFakeButtonInPlayer(){\r\n const buttonAvailableInterval = setInterval(function (){\r\n var animControlsButton = document.getElementsByClassName(\"ytp-right-controls\");\r\n if (animControlsButton !== undefined){\r\n if(document.getElementById(\"deepfake\") === null || document.getElementById(\"deepfake\") === undefined){\r\n var button = document.createElement('button');\r\n button.id=\"deepfake\";\r\n button.className = 'ytp-button it-player-button';\r\n button.dataset.title = \"Deepfake detection\";\r\n button.onclick = function(){startStopRecording();}\r\n animControlsButton[0].insertBefore(button, animControlsButton[0].childNodes[0]);\r\n\r\n let playerImage = new Image();\r\n playerImage.src = chrome.runtime.getURL(\"/images/logo48.png\");\r\n playerImage.onload = () => {\r\n var imgTag = document.createElement('img');\r\n imgTag.src=playerImage.src;\r\n button.appendChild(imgTag);\r\n }\r\n }\r\n clearInterval(buttonAvailableInterval);\r\n }\r\n }, 100);\r\n}\r\n\r\nfunction showVideoToCheck(){\r\n if(document.getElementById(\"captureVideo\") === null){\r\n const div = document.createElement('div');\r\n // div.style=\"position:absolute;top:100px\"\r\n div.id=\"recordingDiv\"\r\n div.innerHTML = `\r\n
Click here to move
\r\n [X]Close this window
\r\n \r\n
\r\n
\r\n Processing...
\r\n
\r\n
\r\n
\r\n

Result:


\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Video download\r\n \r\n `;\r\n document.getElementById(\"content\").append(div);\r\n\r\n var image = document.createElement(\"img\");\r\n image.src = chrome.runtime.getURL(\"images/preloader.gif\");\r\n document.getElementById(\"preload-deepfake\").appendChild(image);\r\n\r\n dragElement(div);\r\n }\r\n}\r\n\r\nfunction wait(delayInMS) {\r\n return new Promise(resolve => setTimeout(resolve, delayInMS));\r\n}\r\n\r\nfunction startStopRecording(){\r\n let recordedBlob;\r\n mainVideo = document.getElementsByClassName(\"html5-main-video\")[0];\r\n // if(!isRecording){\r\n\r\n // stop(document.getElementsByClassName(\"html5-main-video\")[0]);\r\n document.getElementById(\"content\").style.backgroundColor=\"#8b0000\";\r\n startRecording(mainVideo.captureStream(), recordingTimeMS)\r\n .then (recordedChunks => {\r\n document.getElementById(\"content\").style.backgroundColor=\"#ffffff\";\r\n showVideoToCheck();\r\n recordedBlob = new Blob(recordedChunks, { type: \"video/webm\" });\r\n recording.src = URL.createObjectURL(recordedBlob);\r\n downloadButton.href = recording.src;\r\n downloadButton.download = \"RecordedVideo.webm\";\r\n }).then(()=>{\r\n let reader = new window.FileReader();\r\n reader.readAsDataURL(recordedBlob);\r\n reader.onloadend = function () {\r\n let base64data = reader.result;\r\n submitJob(base64data, apiKey);\r\n }\r\n\r\n });\r\n\r\n\r\n // }else {\r\n // // startRecording(document.getElementsByClassName(\"html5-main-video\")[0],5000);\r\n // }\r\n // isRecording = !isRecording;\r\n}\r\n\r\nasync function startRecording(stream, lengthInMS) {\r\n var options = { mimeType: \"video/webm\" };\r\n let recorder = new MediaRecorder(stream,options);\r\n let data = [];\r\n recorder.ondataavailable = event => data.push(event.data);\r\n recorder.start();\r\n\r\n let stopped = new Promise((resolve, reject) => {\r\n recorder.onstop = resolve;\r\n recorder.onerror = event => reject(event.name);\r\n });\r\n\r\n let recorded = wait(lengthInMS).then(\r\n () => recorder.state == \"recording\" && recorder.stop()\r\n );\r\n\r\n return Promise.all([\r\n stopped,\r\n recorded\r\n ])\r\n .then(() => data);\r\n}\r\n\r\nfunction stop(stream) {\r\n stream.getTracks().forEach(track => track.stop());\r\n}\r\n\r\n\r\nwindow.addEventListener(\"onhashchange\", function() {\r\n if(!location.href.includes(\"watch\")){\r\n if(document.getElementById(\"recordingDiv\") !== null){\r\n document.getElementById(\"recordingDiv\").remove();\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Check if URL Change and remove ai processing div if visible\r\n * https://www.youtube.com -> no video watching\r\n * https://www.youtube.com/watch* -> video watching\r\n *\r\n * @type {string}\r\n */\r\nlet lastUrl = location.href;\r\nnew MutationObserver(() => {\r\n const url = location.href;\r\n if (url !== lastUrl) {\r\n lastUrl = url;\r\n onUrlChange();\r\n }\r\n}).observe(document, {subtree: true, childList: true});\r\n\r\n/**\r\n * Remove recordingDiv if we do not watch a video\r\n */\r\nfunction onUrlChange() {\r\n if(!location.href.includes(\"watch\")){\r\n if(document.getElementById(\"recordingDiv\") !== null){\r\n document.getElementById(\"recordingDiv\").remove();\r\n }\r\n }\r\n}\r\n\r\nexport {init};\r\n"],"names":["f","$222c41b52cbd7a0b$exports","define","amd","window","$parcel$global","self","this","superagent","r1","e","n1","t","o","i","c","undefined","u","a","Error","code","p","exports","call","r","i1","length","require","module","obj","key","Emitter","prototype","mixin","addEventListener","event","fn","_callbacks","push","on","off","apply","arguments","removeListener","removeAllListeners","removeEventListener","cb","callbacks","splice","args","Array","len","slice","obj1","_typeof","Symbol","iterator","constructor","stringify","deterministicStringify","stableStringify","replacerStack","replacer","spacer","res","JSON","replaceGetterValues","arr","part","pop","Object","defineProperty","decirc","val","k","stack","parent","propertyDescriptor","getOwnPropertyDescriptor","get","configurable","value","keys","b","deterministicDecirc","tmp","toJSON","isArray","sort","compareFunction","v","replace","String","percentTwenties","util","Format","RFC1738","RFC3986","assign","default","formatters","parse","formats","utils","hasOwnProperty","decode","str","$0","numberStr","fromCharCode","parseInt","parseArrayValue","options","comma","indexOf","split","parseKeys","givenKey","valuesParsed","allowDots","child","segment","depth","exec","index","plainObjects","has","allowPrototypes","chain","leaf","root","parseArrays","concat","create","cleanRoot","charAt","isNaN","arrayLimit","parseObject","opts","defaults","decoder","TypeError","charset","charsetSentinel","delimiter","isRegExp","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","strictNullHandling","normalizeParseOptions","tempObj","Infinity","cleanStr","limit","skipIndex","parts","bracketEqualsPos","pos","maybeMap","encodedVal","combine","parseValues","newObj","merge","compact","obj2","brackets","prefix","pushToArray","valueOrArray","Date","toISOString","defaultFormat","encode","encoder","encodeValuesOnly","format","formatter","indices","serializeDate","date","toISO","stringify1","object","generateArrayPrefix","skipNulls","filter","isBuffer","objKeys","values","value1","keyPrefix","addQueryPrefix","normalizeStringifyOptions","arrayFormat","arrayPrefixGenerators","joined","join","obj3","array","toString","toUpperCase","arrayToObject","source","target","reduce","acc","queue","prop","refs","item","j","compacted","compactQueue","strWithoutPlus","unescape","decodeURIComponent","defaultEncoder","string","escape","charCodeAt","out","hexTable","mapped","mergeTarget","forEach","targetItem","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","minLen","n","name","test","_unsupportedIterableToArray","_nonIterableSpread","arr2","Agent","_defaults","_len","_key","_setDefaults","req","def","obj4","obj5","safeStringify","qs","RequestBase","noop","method","url","Request","end","XMLHttpRequest","location","protocol","ActiveXObject","_unused","_unused2","_unused3","s","trim","pairs","pushEncodedKeyValuePair","isObject","subkey","pair","mime","status","xhr","_setStatusProperties","headers","parseHeader","getAllResponseHeaders","header","getResponseHeader","_setHeaderProperties","text","_responseType","body","response","_parseBody","err","original","err_","rawResponse","responseType","responseText","new_err","callback","data","send","parseString","html","json","Response","request","type","_parser","isJSON","msg","auth","user","pass","_auth","query","serialize","_query","_getFormData","_formData","FormData","_shouldRetry","_retry","_callback","clearTimeout","_maxRetries","retries","_retries","emit","crossDomainError","crossDomain","agent","warn","ca","buffer","write","pipe","_endCalled","console","_end","_setUploadTimeout","_uploadTimeout","_uploadTimeoutTimer","setTimeout","_timeoutError","_aborted","getXHR","_data","_setTimeouts","onreadystatechange","readyState","_responseTimeoutTimer","_unused5","timedout","handleProgress","direction","total","percent","loaded","hasListeners","username","password","open","_withCredentials","withCredentials","_isHost","field","setRequestHeader","toLowerCase","del","delete","post","obj6","_serializer","timeout","_timeout","_responseTimeout","option","deadline","upload","retry","count","_retryCallback","ERROR_CODES","Set","error","STATUS_CODES","timedoutError","then","resolve1","reject1","_this","_fullfilledPromise","ok","_okCallback","_isResponseOK","_header","set","unset","base64Encoder","isObject_","sortQuery","_sort","_finalizeQueryString","includes","queryArray","errno","abort","ct","params","links","link","parseLinks","statusCode","statusType","info","redirect","clientError","toError","accepted","noContent","notAcceptable","forbidden","_createForOfIteratorHelper","allowArrayLike","it","F","_e","normalCompletion","didErr","step","next","done","_e2","return","_step","_iterator","shift","_val","document","getElementsByClassName"],"version":3,"file":"deepfacke.js.map"} \ No newline at end of file diff --git a/dist/deepfake.js.map b/dist/deepfake.js.map index 2d5b546..c539d94 100644 --- a/dist/deepfake.js.map +++ b/dist/deepfake.js.map @@ -1 +1 @@ -{"mappings":"8KAAUA,GAAG,GAAoB,iBAAVC,EAAiDA,EAAeD,SAAS,GAAmB,mBAATE,QAAqBA,OAAOC,IAAKD,OAAO,GAAGF,OAAO,EAA0B,oBAATI,OAAwBA,YAA+B,IAATC,EAAwBA,EAA6B,oBAAPC,KAAsBA,KAAYC,MAAOC,WAAaR,OAAO,WAAqC,gBAA4BS,EAAEC,EAAEC,EAAEC,YAAYC,EAAEC,EAAEd,GAAG,IAAIW,EAAEG,GAAG,CAAC,IAAIJ,EAAEI,GAAG,CAAC,IAAIC,OAA4BC,EAAU,IAAIhB,GAAGe,EAAE,OAAOA,EAAED,GAAC,GAAK,GAAGG,EAAE,OAAOA,EAAEH,GAAC,GAAK,IAAII,EAAE,IAAIC,MAAM,uBAAuBL,EAAE,KAAK,MAAMI,EAAEE,KAAK,mBAAmBF,EAAE,IAAIG,EAAEV,EAAEG,GAAG,CAACQ,QAAQ,IAAIZ,EAAEI,GAAG,GAAGS,KAAKF,EAAEC,SAAQ,SAASE,GAAoB,OAAOX,EAAlBH,EAAEI,GAAG,GAAGU,IAAeA,KAAIH,EAAEA,EAAEC,QAAQb,EAAEC,EAAEC,EAAEC,GAAG,OAAOD,EAAEG,GAAGQ,QAAQ,IAAI,IAAIL,OAA4BD,EAAUS,EAAE,EAAEA,EAAEb,EAAEc,OAAOD,IAAIZ,EAAED,EAAEa,IAAI,OAAOZ,EAA9b,CAA6c,CAAC,EAAE,CAAC,SAASc,EAAQC,EAAON,GAC11B,wBAkCCO,GAQE,GAAAA,EAAA,uBAsBC,IAAGC,KAAMC,EAAMC,UAASH,EAAAC,GAAAC,EAAAC,UAAAF,GAC1B,OAACD,EAvBAI,CAAAJ,QA1BG,QAAYD,EAASN,QAAAS,kBAsEvBA,EAAKC,UAAcE,iBAAA,SAAAC,EAAAC,GAKrB,YALsBC,WAAA9B,KAAA8B,YAAA,IAEpB9B,KAAiB8B,WAAA,IAAAF,GAAA5B,KAAA8B,WAAA,IAAAF,IAAA,IAAAG,KAAAF,GAGf7B,uBAeA,SAAU4B,EAAOC,YACjBG,IACFhC,KAACiC,IAAAL,EAAAI,GACsDH,EAAAK,MAAAlC,KAAAmC,WAS1D,OALCH,EAAEH,GAAEA,EAIJ7B,KAAAgC,GAAOJ,EAAII,GACZhC,kBA2BCiC,IAAOT,EAAIC,UAAAW,eAAAZ,EAAAC,UAAAY,mBAAAb,EAAAC,UAAAa,oBAAA,SAAAV,EAAAC,GAYX,GAXD7B,KAAA8B,WAAA9B,KAAA8B,YAAA,GAWK,GAACK,UAAahB,OAEnB,OAFwCnB,KAAA8B,WAAA,GAExC9B,KAWC,IAGOuC,EAHPC,EAAcxC,KAAA8B,WAAiB,IAAMF,GACtC,IAAAY,EAAA,OAAAxC,KAEA,GAAA,GAAAmC,UAAAhB,OAAG,cAADnB,KAAA8B,WAAA,IAAAF,GAAC5B,KAAa,IAAC,IAAOO,EAAC,EAAAA,EAAOiC,EAASrB,OAAAZ,QAC9BgC,EAAAC,EAAAjC,MAEKsB,GAAMU,EAAAV,KAAAA,EAAA,CAAgCW,EAAaC,OAAelC,EAAA,GAA6E,MAAoM,OAAJ,IAAAiC,EAAArB,eAAAnB,KAAA8B,WAAA,IAAAF,GAAW5B,uBASlW,SAAa4B,GACpB5B,KAAA8B,WAAkB9B,KAAE8B,YAAS,OAG7B,IAAIY,EAAA,IAAAC,MAAcR,UAAYhB,OACtB,GAAKqB,EAAaxC,KAAE8B,WAAU,IAAMF,GAEvCrB,EAAG,EAAIA,EAAC4B,UAAahB,OAAEZ,IAAAmC,EAAAnC,EAAmB,GAAC4B,UAAW5B,QAMrD,CAAIA,EAAC,EAAT,IAAI,IAAWqC,GAFfJ,EAAWA,EAAOK,MAAA,IAGT1B,OAAAZ,EAAAqC,IAAoBrC,EAACiC,EAASjC,GAAG2B,MAAMlC,KAAA0C,GAIlD,OAAC1C,4BAaS,SAAA4B,0BACE5B,KAAA8B,YAAmB,mBAEnB,IAAmBF,IAAA,6BAGtB,SACCA,0BAAuBA,GAAAT,6BAINJ,2BAAM+B,UAC1BC,EAAA,mBAAAC,QAAA,iBAAAA,OAAAC,SAAA,SAAA3B,iBAEKA,GAIC,SAA8EA,GAEzF,OAAIA,GACO,mBADU0B,QACC1B,EAAM4B,cACbF,QAAO1B,IAAU0B,OAAAvB,UAAA,gBAAAH,IAG1BwB,aAGFK,YACAA,WACDC,IACFC,gBAAAD,QAED,GACFE,EAAC,GACH,SAAqBH,EAAA7B,EAAAiC,EAAAC,GAInB,IAAIC,EASL,MAVQnC,EAAA,GAAA,QAAeb,GAMZgD,EAAA,IADNH,EACKnC,OAACuC,KAAAP,UAAA7B,EAAAiC,EAAAC,GAGFE,KAAAP,UAAA7B,EAAAqC,EAAAJ,GAAAC,GACT,IAAAI,EAAAzC,QAAA,KAEQ0C,EAAAD,EAAAE,MACG,IAAHD,EAAG1C,OAAA4C,OAAuBC,eAAUH,EAAS,GAAKA,EAAG,GAAAA,EAAA,IACrDA,EAAA,GAAAA,EAAA,IAAAA,EAAA,UAKLJ,WAIAQ,EAAQC,EAAGC,EAAIC,EAAGC,OAElB9D,KAGc,aAAZ2D,IAAyB,OAADA,EAAC,CAE5B,IAAA3D,EAAA,EAAAA,EAAA6D,EAAAjD,OAAAZ,IAAA,GAAA6D,EAAA7D,KAAA2D,EAAA,CAEM,IAAGI,EAAAP,OAAAQ,yBAAAF,EAAAF,oBACX1D,IAAA6D,EAAAE,IAEQF,EAA4BG,cAC9BV,OAAAC,eAAAK,EAAAF,EAAA,CAEUO,MAAc,eAGnBd,EAAA7B,KAAA,CAEAsC,EACEF,EACFD,EACEI,KAEChB,EAAOvB,KAAA,UAAmCoC,GAAA,aAC/CP,EAAC7B,KACC,CAAoBsC,EAAKF,EAAED,iCAILA,GAAA,IAAA3D,EAAA,EAAAA,EAAA2D,EAAA/C,OAAAZ,IAAA0D,EAAAC,EAAA3D,GAAAA,EAAA6D,EAAAF,QAC1B,IAACS,EAAAZ,OAAAY,KAAAT,GAED,IAAA3D,EAAM,EAAAA,EAAAoE,EAAAxD,OAAAZ,IAAA,CACP,IAAAgB,EAAAoD,EAAApE,GAGC0D,EAAWC,EAAA3C,GAAMA,EAAe6C,EAAAF,MAU5BJ,kBAEMnD,EAAAiE,YACZA,GAAW,IAEXA,EAAU,eAGOtD,EAAGiC,EAAAC,WACnBqB,EAAAvD,EAAA,GAAA,QAAAb,IAAAa,MAGWmC,EAAA,MAANtC,OAAMuC,KAAAP,UAAA2B,EAAAvB,EAAAC,QAAAL,UAAM2B,EAAAnB,EAAAJ,GAAAC,GAAG,cAAA,SAAKM,MAAC,MAAA3C,OAAA4C,OAAAC,eAAAH,EAAA,GAAAA,EAAA,GAAAA,EAAA,MACzB,GAAAA,EAAQ,IAAOA,EAAA,UAIlBJ,WAGFoB,EAAAX,EAAAC,EAAAC,EAAAC,GAC8D,IAAA9D,EACnC,GAAA,WAAAwC,EAAAmB,IAAA,OAAAA,EAAA,KAGrB3D,EAAA,EAAAA,EAAA6D,EAAoBjD,OAAQZ,IAAG,GAAA6D,EAAA7D,KAAA2D,EAAA,CAC9B,IAAGI,EAAsBP,OAAGQ,yBAA4BF,EAAAF,GA0BvD,iBAzBC1D,IAAA6D,EAAAE,IACTF,EAAAG,cACgBV,OAAKC,eAAMK,EAAAF,EAAA,CACtBO,MAAc,eAINd,EAAE7B,KAAM,CACIsC,EAClBF,EACKD,EACNI,KAIUhB,EAAYvB,KAAK,CACjCmC,EACFC,KAEGE,EAAAF,GAAA,aAACP,EAAA7B,KAAA,CAAIsC,EAAuBF,EACpBD,MAQV,GAAkB,mBAAAA,EAAAa,OAAA,OAEnB,GADCX,EAAkBrC,KAAAmC,GACnBvB,MAAAqC,QAAAd,GAAA,IAAA3D,EAAA,EAAAA,EAAA2D,EAAA/C,OAAAZ,IAAAsE,EAAAX,EAAA3D,GAAAA,EAAA6D,EAAAF,OACM,CAEL,IAAYY,EAAC,GAETH,EAAOZ,OAAQY,KAAKT,GAAOe,KAAAC,GAC5B,IAAA3E,EAAA,EAAAA,EAAAoE,EAAAxD,OAAAZ,IAAA,CACM,IAAEgB,EAASoD,EAAApE,GAChBsE,EAAmBX,EAAA3C,GAAAA,EAAA6C,EAAAF,GACpBY,EAAAvD,GAAA2C,EAAA3C,GAEI,QAAAd,IAAA4D,EAE4B,OAAOS,EAA3ClB,EAAA7B,KAAA,CAAEsC,EAAWF,EAACD,IAAKG,EAAAF,GAAAW,EAGhBV,EAASN,gBAOXH,EAAgBJ,GAKjB,OAJCA,OAAY9C,IAAL8C,EAAKA,EAAA,SAAAY,EAAAgB,GACZ,OAAWA,GAGZ,SAAA5D,EAAA2C,GAAE,GAAAZ,EAAAnC,OAAA,EAAA,IAAA,IAAAZ,EAAA,EAAAA,EAAA+C,EAAAnC,OAAAZ,IAAA,CAAW,IAAEsD,EAAAP,EAAA/C,GAAY,GAAAsD,EAAA,KAAAtC,GAAAsC,EAAA,KAAAK,EAAA,CAAgBA,EAAA,aAACZ,EAAAb,OAAAlC,EAAA,GAAC,OAClC,OAAAgD,EAAAvC,KAAAhB,KAAAuB,EAAA2C,sBAUV9C,EAAgBC,EAAAN,oBAEhBqE,EAAOC,OAAK5D,UAAA2D,QACZE,EAAe,OACfC,EAAAnE,EAAc,WACdoE,EAAQ,CACRC,QAAA,UACAC,QAAA,aAEA3E,QAAawE,EAAII,OAAA,CACjBC,QAAAJ,EAAcE,QACdG,WAAA,CACDJ,QAAA,SAAAf,GAEG,OAAAU,EAAApE,KAA2B0D,EAAQY,EAAC,MAEpCI,QAAO,SAAmBhB,GAC3B,OAAAW,OAAAX,WAUD,UAA+E,gBAM7EtD,EAAAC,EAAmCN,GACvC,aAEA,IAAIoC,EAAA/B,EAAkC,eAElC0E,EAAA1E,EAAc,WAChB2E,EAAU3E,EAAC,eAACL,QAAA,CACZgF,QAAIA,EACJD,MAAIA,EACJ3C,UAASA,iBAML,YACC,gBAEG,kBAQH9B,EAAAN,oBAILiF,EAAS5E,EAAO,aACZ2C,OAAGtC,UAAcwE,iBAIftD,MAAOqC,UACP,YACG,mBACK,aAEL,WACL,yBACM,SACP,UACCgB,EAAME,iBACH,+BAEF,4BACF,iBAEU,iBAIF,gBACkB,sBAAO,KAMlB,SAAAC,GAElB,OAACA,EAAAf,QAAA,aAAA,SAAAgB,EAAAC,GAED,OAAUhB,OAAAiB,aAAAC,SAAAF,EAAA,SAIVG,EAAW,SAAqBtC,EAAgBuC,GAEhD,OAAKvC,GAAoB,iBAANA,GAAkBuC,EAAQC,OAAAxC,EAAAyC,QAAA,MAAA,EAAAzC,EAAA0C,MAAA,KACxC1C,GAmHL2C,EAAY,SAA6BC,EAAmB5C,EAAAuC,EAC1DM,GAAqD,GAACD,EAAD,CAIvD,IAAIvF,EAAMkF,EAAQO,UAAYF,EAAS1B,QAAQ,cAAS,QAAA0B,EAEpDG,EAAO,gBAENC,EAAST,EAAMU,MAAW,GAJ6E,eAIrEC,KAAA7F,GACrC8C,EAAO6C,EAAS3F,EAAAsB,MAAA,EAAAqE,EAAAG,OAAA9F,EAChBoD,EAAI,MACJN,EAAM,CAGR,IAAOoC,EAAMa,cAAWC,EAAAvG,KAAA+C,OAAAtC,UAAA4C,KACzBoC,EAAAe,gBAAA,OAEE7C,EAAA5C,KAAAsC,GAAa,IAAD,IAAA9D,EAAA,EAACkG,EAAAU,MAAA,GAAA,QAAAD,EAAAD,EAAAG,KAAA7F,KAAAhB,EAAAkG,EAAAU,OAAA,CAAa,GAAT5G,GAAA,GAAgBkG,EAAOa,cAAUC,EAAAvG,KAAA+C,OAAAtC,UAAAyF,EAAA,GAAArE,MAAA,GAAA,MACzC4D,EAAAe,gBAAA,OAE2C7C,EAAA5C,KAAOmF,EAAW,WAA2GA,GAAAvC,EAAA5C,KAAA,IAAAR,EAAAsB,MAAAqE,EAAAG,OAAA,KAjDvK,SAA4BI,EAAAvD,EAAQuC,EAAQM,GAKvD,IADA,IAAIW,EAAOX,EAAe7C,EAAAsC,EAAuBtC,EAAGuC,GAC5ClG,EAAAkH,EAAAtG,OAAA,EAAAZ,GAAA,IAAAA,EAAA,CACN,IAAAe,EACAqG,EAAAF,EAAiBlH,GACjB,GAAY,OAAZoH,GAAmBlB,EAAKmB,YAAuBtG,EAAA,GAAGuG,OAAKH,OACvD,CACApG,EAAAmF,EAAiBa,aAAYvD,OAAA+D,OAAe,MAAc,GAE1D,IAAOC,EAAoC,MAAvBJ,EAACK,OAAO,IAAiD,MAA/BL,EAAKK,OAAOL,EAAGxG,OAAS,GAAOwG,EAAA9E,MAAA,GAAA,GAAA8E,EAC7EN,EAAWd,SAAYwB,EAAS,IACiCtB,EAAAmB,aAAA,KAAAG,GAGjEE,MAAAZ,IAA0BM,IAAYI,GAAA1C,OAAAgC,KAAsCU,GAAOV,GAAC,GAAAZ,EAAAmB,aAAoCP,GAAAZ,EAAAyB,YACxH5G,EAAc,IACH+F,GAAOK,EAClBpG,EAAcyG,GAAYL,EANuCpG,EAAA,CAC1D,EAAAoG,GAORA,EAAApG,EAGH,OAAOoG,EAwBwLS,CAAUxD,EAAST,EAAAuC,EAAcM,KAwBhO1F,EAACN,QAAA,SAAAoF,EAAAiC,GAEG,IAAA3B,EA1B4V,SAAA2B,GAAI,IAAAA,EAAO,OAAQC,EAAO,GAAA,OAAAD,EAAAE,cAAA7H,IAAA2H,EAAAE,SAAA,mBAAAF,EAAAE,QAAA,MAAA,IAAAC,UAAA,iCAEtX,QAAyB,IAAjBH,EAAQI,SAAS,UAAAJ,EAAAI,SAAA,eAAAJ,EAAAI,QAAA,MAAA,IAAAD,UAAA,qEAEzB,IAAAC,OAA6B,IAAAJ,EAAAI,QAAAH,EAAAG,QAAAJ,EAAAI,QAE7B,MAAM,CACNxB,eAAyB,IAAJoB,EAAIpB,UAAAqB,EAAArB,YAAAoB,EAAApB,UAC3BQ,gBAAqC,kBAATY,EAAAZ,gBAASY,EAAAZ,gBAAAa,EAAAb,gBACnCU,WAAoB,iBAAAE,EAAAF,WAAAE,EAAAF,WAAAG,EAAAH,WACrBM,QAAAA,EACDC,gBAAc,kBAAAL,EAAAK,gBAAAL,EAAAK,gBAAAJ,EAAAI,gBACd/B,MAAgC,kBAAd0B,EAAA1B,MAAsB0B,EAAA1B,MAAA2B,EAAA3B,MACtC4B,QAA+B,mBAAfF,EAAGE,QAAYF,EAAAE,QAAAD,EAAAC,QAChCI,UAAA,iBAAAN,EAAAM,WAAA1C,EAAA2C,SAAAP,EAAAM,WAAAN,EAAAM,UAAAL,EAAAK,UAECvB,MAAa,iBAAAiB,EAAAjB,QAAA,IAAAiB,EAAAjB,OAAAiB,EAAAjB,MAAAkB,EAAAlB,MACdyB,mBAAA,IAAAR,EAAAQ,kBACFC,yBAAA,kBAAAT,EAAAS,yBAAAT,EAAAS,yBAAAR,EAAAQ,yBACGC,eAAuB,iBAAAV,EAAAU,eAAAV,EAAAU,eAAAT,EAAAS,eACnBlB,aAAuB,IAAdQ,EAASR,YAEtBN,aAAwC,kBAAjBc,EAAAd,aAAgCc,EAAAd,aAAAe,EAAAf,aACrDyB,mBAAoD,kBAAhCX,EAAYW,mBAAoBX,EAAAW,mBAAAV,EAAAU,oBAGzCC,CAAqBZ,GAClC,GAAA,KAAAjC,GAAAA,MAAgBA,EAAiB,OAAAM,EAAAa,aAAAvD,OAAA+D,OAAA,MAAA,GAMnC,IAJA,IAAAmB,EAAqB,iBAAA9C,EAzJZ,SAAMA,EAAAM,OAUblG,IATK,KAEEkG,EAAKmC,kBAAAzC,EAAAf,QAAA,MAAA,IAAAe,IACRM,EAAIqC,iBAAaI,EAAAA,OAAAzI,EAAAgG,EAAAqC,iBAClBK,EACKvC,MAAAH,EAAaiC,UAAIU,GAEzBC,GAAC,EAGFb,EAAA/B,EAAA+B,QAED,GAAA/B,EAAWgC,gBACZ,IAAAlI,EAAA,EAAAA,EAAA+I,EAAAnI,SAAAZ,EAAA,IAAA+I,EAAA/I,GAAAoG,QAAA,WAhBU,mBAkBK2C,EAAA/I,GAA8BiI,EAAU,QArB9C,wBAuBNc,EAAM/I,KAAAiI,EAAA,cACuCa,EAAA9I,EAGxCA,EAAG+I,EAAQnI,QAKlB,IAAIZ,EAAA,EAAOA,EAAG+I,EAAOnI,SAAUZ,EAC3B,GAAAA,IAAS8I,EAAT,CAEA,IAIA9H,EAAG2C,EAJCL,EAAKyF,EAAA/I,GAETgJ,EAAS1F,EAAA8C,QAAA,MACiG6C,GAAA,IAAAD,EAAA1F,EAAA8C,QAAA,KAAA4C,EAAA,GAErG,IAALC,GAGDjI,EAAAkF,EAAA6B,QAAAzE,EAAAwE,EAAAC,QAAAE,EAAA,OAEGtE,EAAMuC,EAAMsC,mBAAA,KAAA,KAIVxH,EAACkF,EAAA6B,QAAAzE,EAAAhB,MAAA,EAAA2G,GAAAnB,EAAAC,QAAAE,EAAA,OAEFtE,EAAQ8B,EAAKyD,SAASjD,EAAgB3C,EAAKhB,MAAG2G,EAAO,GAAI/C,IAAQ,SAAeiD,GAC/E,OAAAjD,EAAA6B,QAAAoB,EAAArB,EAAAC,QAAAE,EAAA,aAMLtE,GAAAuC,EAAAoC,0BAAA,eAAAL,IAAAtE,EAAA2E,EAAA3E,IAEGL,EAAK8C,QAAQ,QAAE,IAAAzC,EAAAc,EAAAd,GAAA,CACiCA,GAGlDA,GAIGqD,EAAAvG,KAAAM,EAAYC,GAASD,EAAEC,GAASyE,EAAA2D,QAAYrI,EAAAC,GAAA2C,GACpD5C,EAAAC,GAAA2C,EAGC,OAAK5C,EAsFgBsI,CAAAzD,EAAAM,GAAAN,EACrB7E,EAASmF,EAAOa,aAAAvD,OAAA+D,OAAA,MAAA,GAEhBnD,EAAAZ,OAAiBY,KAAKsE,GACtB1I,EAAc,EAAAA,EAAAoE,EAAAxD,SAAAZ,EAAA,CACd,IAAQgB,EAAIoD,EAAApE,GACLsJ,EAAQhD,EAAMtF,EAAA0H,EAAA1H,GAAAkF,EAAA,iBAAAN,GACrB7E,EAAA0E,EAAgB8D,MAAExI,EAAKuI,EAAApD,GAEvB,OAAAT,EAAW+D,QAAQzI,gBAIjB,gBAIHF,EAAAC,EAAAN,GAED,sBACEgC,EAAaiH,UACdjH,EAAA,mBAAAC,QAAA,iBAAAA,OAAAC,SAAA,SAAA3B,GAEG,cAAYA,GAGH,SAAqBA,UAErBA,GACH,mBADkB0B,QACJ1B,EAAG4B,cAAAF,QAAA1B,IAAA0B,OAAAvB,UAAA,gBAAAH,IAGZ0I,OAKXhE,EAAQ5E,EAAG,WAGb2E,EAAO3E,EAAW,eACd2C,OAAEtC,UAAAwE,iBAII,CACVgE,SAAC,SAAAC,GAEG,OAAAA,EAAA,4BAGA,SAAQA,EAAA3I,YAAA,IAAUA,EAAQ,YAC3B,SAAA2I,GAED,OAAOA,IACTlF,EAACrC,MAAAqC,QAEDjD,EAAIY,MAASlB,UAAEM,KAEfoI,EAAc,SACZvG,EAAOwG,GAGTrI,EAAIG,MAAO0B,EAAAoB,EAAAoF,GAAAA,EAAA,CAEPA,OAIFC,KAAO5I,UAAU6I,YACnBC,EAACxE,EAAA,QAEDsC,EAAU,iBACE,aACN,UAEA,yBAIS,YACb,IACFmC,QAAC,EAEDC,QAAOzE,EAAMwE,OACdE,kBAAA,EAEGC,OAAAJ,EACFK,UACE7E,EAAOF,WAAQ0E,GAOjBM,SAAI,EAEJC,cAAe,SAAwBC,GAInC,OAAMC,EAAGhK,KAAiB+J,eAGvB,sBAIS,GAUhBE,EAAQ,SAAA9H,EAAA+H,EAAAhB,EAAAiB,EAAApC,EAAAqC,EAAAX,EAAAY,EAAApG,EAAA+B,EAAA8D,EAAAF,EAAAF,EAAAlC,OAPiCrD,EAQvC7D,EAAA4J,KACkB,mBAAlBG,EAAuB/J,EAAS+J,EAAgBnB,EAAG5I,GACnDA,aAAgB+I,KAAA/I,EAAAwJ,EAAAxJ,GACa,UAA7B6J,GAA6BnG,EAAe1D,KAAcA,EAAA0E,EAAQyD,SAAAnI,GAAA,SAAkBoD,GACpF,OAAAA,aAAkB2F,KAAcS,EAAgBpG,GAC1CA,UACN,MACA,OAAApD,EAAA,CACA,GAAAyH,EAAc,OAAA0B,IAAAC,EAAAD,EAAAP,EAAA7B,EAAAoC,QAAAjC,EAAA,OAAA0B,EACd5I,EAAA,MAhBW,iBAD4B6D,EAmBjB7D,IAlBI,iBAAA6D,GAAA,kBAAAA,GAAA,WAAApC,EAAAoC,IAAA,iBAAAA,GAkBHa,EAASsF,SAAchK,GAC9C,OAAImJ,EAEL,CACFG,EAFqBF,EAAcR,EAAAO,EAAuBP,EAAS7B,EAAQoC,QAAAjC,EAAkB,QAE7F,IAAAoC,EAAAH,EAAAnJ,EAAA+G,EAAAoC,QAAAjC,EAAA,WAIY,CACPoC,EAAOV,GAAA,IAAAU,EAAAvF,OAAA/D,SAMViK,EAFCC,EAAS,WACM,IAATlK,EAAc,OAAAkK,KAEpBxG,EAAMqG,GAAWE,EAAMF,MACvB,CACD,IAAA1G,EAAAZ,OAAAY,KAAArD,GAEGiK,EAAStG,EAAAN,EAAAM,KAAAA,GAAAN,EAMb,IAAI,IAAApE,EAAA,EAAWA,EAAAgL,EAAApK,SAAAZ,EAAA,CAEX,IAAIgB,EAAIgK,EAAKhL,GAERkL,EAAUnK,EAASC,OAG1B6J,GAAuB,OAAAK,GAGrB,IAAAC,EAAA1G,EAAsB1D,GAAiC,mBAAjC6J,EAAiCA,EAAAjB,EAAA3I,GAAA2I,EAAAA,GAAAlD,EAAA,IAAAzF,EAAA,IAAAA,EAAA,KAEzD4I,EACAqB,EAAUrI,EAAOsI,EAAQC,EAAAP,EAAApC,EAAAqC,EAAAX,EAAAY,EAAApG,EAAA+B,EAAA8D,EAAAF,EAAAF,EAAAlC,KAO3B,OAAQgD,GA6B+WnK,EAACN,QAAA,SAAAmK,EAAA9C,GAEtX,IAGAmD,EAHGjK,EAAG4J,EACNzE,EA7BqB,SACX2B,OAGVA,EAAA,OAAYC,EACd,GAAC,OAAAD,EAAAqC,cAAAhK,IAAA2H,EAAAqC,SAAA,mBAAArC,EAAAqC,QAAA,MAAA,IAAAlC,UAAA,iCAED,IAAIC,EAASJ,EAAKI,SAAYH,EAACG,QAC/B,QAAqB,IAAXJ,EAAGI,SAA0C,UAAfJ,EAAUI,SAAK,eAAAJ,EAAAI,QAAA,MAAA,IAAAD,UAAA,qEAEvD,IAAIoC,EAAQ5E,EAAe,gBACN,IAAfqC,EAAQuC,OAAwB,CAElC,IAAApD,EAAMvG,KAA0B+E,EAAAF,WAAAuC,EAAAuC,QAAA,MAAA,IAAApC,UAAA,qCAENH,EAAAuC,6BAK9BU,EAAahD,EAAOgD,OAGrB,OAFA,mBAAAjD,EAAAiD,QAAArG,EAAAoD,EAAAiD,WAAAA,EAAAjD,EAAAiD,QAEA,CAAEM,eAAA,kBAAAvD,EAAAuD,eAAAvD,EAAAuD,eAAAtD,EAAAsD,eAAW3E,eAAE,IAAAoB,EAAApB,UAAAqB,EAAArB,YAAAoB,EAAApB,UAAUwB,QAAEA,EAACC,gBAAA,kBAAAL,EAAAK,gBAAAL,EAAAK,gBAAAJ,EAAAI,gBAACC,eAAA,IAAAN,EAAAM,UAAAL,EAAAK,UAAAN,EAAAM,UAAI8B,OAAA,kBAAApC,EAAAoC,OAAApC,EAAAoC,OAAAnC,EAAAmC,OAASC,QAAwB,mBAATrC,EAAOqC,QAAErC,EAAAqC,QAAApC,EAAAoC,QACvDC,iBAAA,kBAAAtC,EAAAsC,iBAAAtC,EAAAsC,iBAAArC,EAAAqC,wBAEIW,EAAuCT,UAAOA,EAAkGE,cAAiB,mBAAA1C,EAAA0C,cAAA1C,EAAA0C,cAAAzC,EAAAyC,cAAGM,UAAA,kBAAAhD,EAAAgD,UAAAhD,EAAAgD,UAAA/C,EAAA+C,eAAqC,mBAAhBhD,EAAAnD,KAAuBmD,EAAAnD,KAAA,KAAC8D,mBAAkD,kBAAvBX,EAAKW,mBAAkCX,EAAMW,mBAAmBV,EAASU,oBAGvT6C,CAAaxD,GAMvB,mBADQ3B,EAAU4E,OAKrB/J,GADC+J,EAAY5E,EAAA4E,QACb,GAAA/J,GAEG0D,EAAeyB,EAAS4E,UAExBE,EADW9E,EAAS4E,cAIpB1G,EAAI,MACW,aAATrD,IAAc,OAAAA,EAAA,MAAA,GAQauK,KAA3BzD,EAAKyD,eAAaC,EAAS1D,EAAAyD,YAChCzD,GAAA,YAAAA,EAAAA,EAAAyC,QAAA,UAAA,SACF,UACF,IAAAM,EAAAW,EAAAD,GAEGN,IAAaA,EAAWxH,OAACY,KAAArD,IACvBmF,EAAMxB,MAAOsG,EAAItG,KAAQwB,EAAAxB,MAAsC,IAAC,IAAA1E,EAAA,EAAAA,EAAAgL,EAAApK,SAAAZ,EAAA,CAE/D,IAAIgB,EAAKgK,EAAMhL,GAMbkG,EAAG2E,WAAA,OAAA9J,EAAAC,IACX4I,EAAAxF,EAAAsG,EAAA3J,EAAAC,GAAAA,EAAA4J,EAAA1E,EAAAsC,mBAAAtC,EAAA2E,UAAA3E,EAAA+D,OAAA/D,EAAAgE,QAAA,KAAAhE,EAAA4E,OAAA5E,EAAAxB,KAAAwB,EAAAO,UAAAP,EAAAqE,cAAArE,EAAAmE,UAAAnE,EAAAiE,iBAAAjE,EAAA+B,UAGC,IAAiCuD,EAAApH,EAAAqH,KAAAvF,EAAAiC,WAK7BwB,GAA+B,IAAvBzD,EAAMkF,eAAiB,IAAA,UACjClF,EAAIgC,kBAEiB,iBAAVD,WACL,0BAIU,mBAASuD,EAAA5K,OAAA,EAAA+I,EAAA6B,EAAA,kBAOjB,YAAQ,kBAUV1K,EAAQN,2BAEVkL,GAcN,OAZgElJ,EAAtD,2BAA8C,iBAAxBC,OAAUC,SAAkC,SAAkB3B,iBAGtFA,GAKL,SAAAA,GACD,OAAOA,GAAM,mBAAA0B,QAAA1B,EAAA4B,cAAAF,QAAA1B,IAAA0B,OAAAvB,UAAA,gBAAAH,IAGD2K,SAGVlI,OAAMtC,UAAUwE,iBAGhBtD,MAAOqC,UAGF,WAEV,IADC,IAAGkH,EAAA,GACJ3L,EAAA,EAAAA,EAAA,MAAAA,EAAA2L,EAAAnK,KAAA,MAAAxB,EAAA,GAAA,IAAA,IAAAA,EAAA4L,SAAA,KAAAC,eAEG,OAAMF,EAJC,GAsBTG,EAAa,SAAAC,EAAA7F,GAGd,QAFGnF,EAAMmF,GAACA,EAAca,aAAAvD,OAAA+D,OAAA,MAAA,GAExBvH,EAAA,EAAAA,EAAA+L,EAAAnL,SAAAZ,OAAA,IAAA+L,EAAA/L,KAAAe,EAAAf,GAAA+L,EAAA/L,IAEG,OAAMe,KA2JkCP,QAAA,CAAEsL,cAAQA,EAAE1G,OAtG/C,SAAC4G,EAAAD,UACLvI,OAAUY,KAAM2H,GAAQE,QAAO,SAAUC,EAAAlL,GAE3C,OADCkL,EAAGlL,GAAI+K,EAAS/K,GACjBkL,IAEDF,IAiG8D5C,QANgH,SAAIhJ,EAAAiE,GAAG,MAAA,GAAAiD,OAAAlH,EAAAiE,IAMpGmF,QA1BzE,SAAMrF,GAOP,IANP,IAAAgI,EAAU,CACV,CACQpL,IAAE,CACHhB,EAAKoE,GAGbiI,KAAA,MAAIC,EAAA,GAAIrM,EAAA,EAAAA,EAAAmM,EAAAvL,SAAAZ,EAG0B,IAHjB,IAAOsM,EAACH,EAAOnM,GACrBe,EAAAuL,EAAAvL,IAAAuL,EAAAF,MAEHhI,EAAAZ,OAAAY,KAAsBrD,GAAWwL,EAAA,EAAAA,EAAAnI,EAAmBxD,SAAQ2L,EAAA,CAAoF,IAAAvL,EAAAoD,EAAAmI,GAEhJ5I,EAAA5C,EAAAC,GAAiL,WAAhJwB,EAAUmB,IAAsI,OAAAA,IAAA,IAAA0I,EAAAjG,QAAAzC,KAAIwI,EAAA3K,KAAA,CAErLT,IAAAA,EAAuDqL,KAAApL,IAA0EqL,EAAO7K,KAAAmC,WApKlI,SAAUwI,QACrBA,EAAOvL,OAAG,GAAA,CACT,IAAA0L,EAAMH,EAAA5I,MACVxC,EAAAuL,EAAAvL,IAAAuL,EAAAF,MAEG,GAAM3H,EAAG1D,GAAS,CAGhB,IAFA,IAAAyL,EAAoB,GAERD,EAAY,EAAAA,EAAAxL,EAC1BH,SAAgD2L,OAAA,IAAAxL,EAAAwL,IAAAC,EAAAhL,KAAAT,EAAAwL,IACzCD,EAAAvL,IAAAuL,EAAeF,MAAOI,IA0J+XC,CAAAN,GAEvZhI,GAUuFwB,OA9FrF,SAAYC,EAAQmC,EAAQE,GACrC,IAAIyE,EAAS9G,EAAAf,QAAA,MAAA,QAAC,eAADoD,WACLpD,QAAA,iBAAA8H,qBAGNC,mBAASF,SACV9M,GAAC,OAAA8M,IAwFqGzC,OApFjG,SAAcrE,EAAAiH,EAAA5E,MAIF,IAAhBrC,EAAKhF,OAAY,OAAQgF,QACnBA,KACS,aAATA,GAAakH,EAAArK,OAAAvB,UAAA0K,SAAAnL,KAAAmF,GAEF,iBAAXA,IAAyBkH,EAAIhI,OAAQc,IACvC,iBAAY,OAAAmH,OAAAD,GAAAjI,QAAA,mBAAA,SAAAgB,kBACLG,SAAGH,EAAAvD,MAAA,GAAA,IAAA,wBAGV,EAAAtC,EAAK8M,EAAQlM,SAAAZ,EAAA,KACfC,EAAC6M,EAAAE,WAAAhN,GACF,KAAAC,GACF,KAAAA,GAEY,KAAbA,GACY,MAALA,GACRA,GAAA,IAAAA,GAAA,IAEWA,GAAG,IAAQA,GAAC,IACfA,GAAM,IAACA,GAAU,IAGdgN,GAAGH,EAASrF,OAASzH,GAMhCC,EAAA,IAEUgN,GAAYC,EAASjN,GAIpBA,EAAG,KACTgN,GAAeC,EAAA,IAAAjN,GAAA,GAAAiN,EAAA,IAAA,GAAAjN,GAOjBA,EAAO,OAAMA,GAAA,MACdgN,GAAAC,EAAA,IAAAjN,GAAA,IAAAiN,EAAA,IAAAjN,GAAA,EAAA,IAAAiN,EAAA,IAAA,GAAAjN,IAKID,GAAA,EACLC,EAAA,QAAe,KAAAA,IAAa,GAAA,KAAA6M,EAAAE,WAAAhN,IAC5BiN,GAAQC,EAAM,IAAAjN,GAAA,IAAAiN,EAAA,IAAAjN,GAAA,GAAA,IAAAiN,EAAA,IAAAjN,GAAA,EAAA,IAAAiN,EAAA,IAAA,GAAAjN,IAEd,OAAOgN,GA4BsGlC,SARpB,SAAAhK,YAElFA,GAAuB,WAAvByB,EAAAzB,QAAqCA,EAAI4B,aAAkB5B,EAAA4B,YAAcoI,UAAUhK,EAAA4B,YAAAoI,SAAAhK,KAMgCqH,SAVM,SAAArH,SAEhG,oBAAzByC,OAAAtC,UAAmB0K,SAAMnL,KAAAM,IAQqGmI,SAHhI,SAAcvF,EAAArC,GACpB,GAAAmD,EAAAd,GAAA,CAEK,IAAL,IAAAwJ,EAAA,GAAKnN,EAAA,EAAAA,EAAA2D,EAAA/C,OAAAZ,GAAA,EAAAmN,EAAA3L,KAAAF,EAAAqC,EAAA3D,KAAM,OAAAmN,EAAU,OAAK7L,EAAAqC,IAAsH4F,MAzJjF,SAAAA,EAAAyC,EAAAD,EAAA7F,GAElD,IAAA6F,EAAA,OAAAC,EAGZ,GAAgB,WAAZxJ,EAAMuJ,GAAM,CAEZ,GAAAtH,EAAWuH,GAAcA,EAC3BxK,KAAMuK,OACG,CAAA,IAAAC,GACA,WADUxJ,EAAawJ,GAMvB,MAAQ,CAChBA,EAGID,IANI7F,IAAiBA,EAC1Ba,cAAcb,EAAQe,mBAAOD,EAAoBvG,KAAA+C,OAAetC,UAAA6K,MAAAC,EAAAD,IAAA,GAQhE,OAAKC,SAGa,WAATxJ,EAASwJ,GAAA,MAAA,WAEdD,SACQC,WACRA,KAAiBvH,EAAWsH,KAAAqB,EAAAtB,EAAAE,EAAA9F,MAC5B8F,IAAavH,EAAesH,MAC7BsB,SAAA,SAAAf,EAAAtM,GACC,GAAGgH,EAAIvG,KAAMuL,EAAQhM,GAAC,CACtB,IAAQsN,EAAAtB,EAAAhM,GACTsN,GAAA,WAAA9K,EAAA8K,IAAAhB,GAAA,WAAA9J,EAAA8J,GAAAN,EAAAhM,GAAAuJ,EAAA+D,EAAAhB,EAAApG,GAEW8F,EAACxK,KAAA8K,QACPN,EAAMhM,GAAAsM,KAEbN,UAGO5H,KAAG2H,GAAIE,QAAa,SAASC,EAAIlL,OACvCmD,EAAQ4H,EAAA/K,UACTgG,EAAAvG,KAAAyL,EAAAlL,GAAAkL,EAAAlL,GAAAuI,EAAA2C,EAAAlL,GAAAmD,EAAA+B,GAEIgG,EAAGlL,GAAMmD,EACT+H,0BA0G6MrL,EAAQC,EAAYN,yBAEnO+M,EAAiBlK,UAsBpB,SAAAA,GAAC,GAAAjB,MAAAqC,QAAApB,GAAA,OAAAmK,EAAAnK,GArBEoK,CAAapK,IAmBpB,SAAsBqK,GAErB,GAAA,oBAAAjL,QAAAA,OAAAC,YAAAc,OAAAkK,GAAA,OAAAtL,MAAAuL,KAAAD,GArB6BE,CAAmBvK,aASlCtD,EAAA8N,GACb,IAAC9N,EAAA,OACF,GAAA,iBAAAA,EAAA,OAAAyN,EAAAzN,EAAA8N,GAED,IAAMC,EAAAtK,OAAUtC,UAAY0K,SAAGnL,KAAaV,GAAGuC,MAAA,GAAA,GACxC,WAADwL,GAAkB/N,EAAC4C,cAAemL,EAAC/N,EAAA4C,YAAAoL,SACjC,QAAJD,GAAqB,QAATA,EAAW,OAAA1L,MAAkBuL,KAAK5N,GAChD,GAAC,cAAA+N,GAAA,2CAAAE,KAAAF,GAAA,OAAAN,EAAAzN,EAAA8N,GAhBwDI,CAA0B5K,yBAM/E2E,UAAU,wIALNkG,GAoBD,SAASV,EAAenK,EAAShB,IAC9B,MAAAA,GAAAA,EAAAgB,EAAAzC,UAAAyB,EAAAgB,EAAAzC,gBAEHZ,EAAO,EAACmO,EAAM,IAAA/L,MAAAC,GAAArC,EAAAqC,EAAArC,IAAAmO,EAAAnO,GAAAqD,EAAArD,GAA4B,OAAImO,WAA6HC,SAAWC,UAAU,IAA2J,MAAsB,KAQvX,4CACM,kBACP,YACD,QAED,KAEC,YAAE,UAAC,SAAC,YAAK,QAAQ,KACN,YAEuC,mCAAiI,SAAA/M,KAA6CJ,UAAUI,GAAI,WAAiH,IAAA,IAAAgN,EAAA1M,UAAAhB,OAAAuB,EAAA,IAAAC,MAAAkM,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAApM,EAAAoM,GAAA3M,UAAA2M,GAKxV,OAL4V9O,KAAO4O,UAAW7M,KAAA,CAAIF,GAAAA,EAIvXa,KAAAA,IACK1C,WAKDyB,UAAWsN,aAAoB,SAAGC,GACvChP,KAAqB4O,UAAAhB,SAAA,SAAAqB,GACrBD,EAAQC,EAAIpN,IAAsEK,MAAA8M,EAAAlB,EAAAmB,EAAAvM,WAIlFrB,EAAON,QAAI4N,mBAaTvN,EAAAC,EAAeN,GAEnB,aACA,SAEGgC,EAAAmM,GAUD,iFAPe,cAAA5N,GAGd,SAAAA,yGAIU4N,GAoBL7N,EAASN,iBALjBO,GAGG,OAAA,OAAAA,GAAA,WAAAyB,EAAAzB,sBAWDF,EAAKC,EAAAN,yBAEHgC,EAAOoM,UAAYpM,EAAA,mBAAAC,QAAA,iBAAAA,OAAAC,SAAA,SAAA3B,GAEjB,cAACA,GAEI,SAAWA,GAAC,OAAAA,GAAA,mBAAA0B,QAAA1B,EAAA4B,cAAAF,QAAA1B,IAAA0B,OAAAvB,UAAA,gBAAAH,IAGR6N,SAWZ,oBAAAtP,0IAIDE,KACF,IAAIyB,EAAWJ,EAAG,qBAChBgO,EAAgBhO,EAAA,uBACjBiO,EAAAjO,EAAA,MAOEkO,EAAAlO,EAAA,gFAAA,SAEMmO,eAQP,SAAOC,EAAWC,GASjB,MAAA,mBAAAA,EAAA,IAAA1O,EAAA2O,QAAA,MAAAF,GAAAG,IAAAF,qFAGM1O,EAAA2O,QAAAA,yBAKL/H,EAAAiI,kBAAMjI,EAAAkI,UAAA,UAAAlI,EAAAkI,SAAAC,WAAAnI,EAAAoI,eAAA,OAAA,IAAAH,eACR,IAEI,OAAM,IAAAG,cACJ,2BACFC,QAGF,OAAQ,IAACD,cACL,sBAEL,MACCE,IAKD,mDAGK,MAAeC,qJAgBnB,SAAOC,UACJA,EAAAC,iBAECD,YAGF/K,QAAI,eAAmB,oHAmBb,OAACiL,EAAArE,KAAA,iDAiBT,GAAYrJ,MAACqC,QAAAd,GAAAA,EAAA0J,SAAA,SAAAzI,GACgBmL,EAAAD,EAAA9O,EAAK4D,WAEzC,GAAAoL,EAAArM,GAQE,IAAA,IAAAsM,KAAAtM,EAAAH,OAAAtC,UAAAwE,eAAAjF,KAAAkD,EAAAsM,IAAAF,EAAAD,EAAA,GAAAxI,OAAAtG,EAAA,KAAAsG,OAAA2I,EAAA,KAAAtM,EAAAsM,gGAeM,gCAAejQ,EAAG,EAAAqC,EAAAyN,EAAAlP,OAAAZ,EAAAqC,IAAArC,GAEV,KAAXiJ,GADAiH,EAAKJ,EAAO9P,IACFoG,QAAA,MAACrF,EAAA6L,mBAAAsD,IAAA,GACNnP,EAAA6L,mBAAAsD,EAAA5N,MAAA,EAAA2G,KAAA2D,mBAAAsD,EAAA5N,MAAA2G,EAAA,IAET,OAAIlI,aAqFJoP,GAOA,MAAK,sBAAqBnC,KAAMmC,sPA6ElB,IAACC,EAAW3Q,KAAG4Q,IAAAD,OACd,OAAXA,IAAWA,EAAA,KACf3Q,KAAK6Q,qBAAoBF,GACzB3Q,KAAK8Q,oLAASC,CAAM/Q,KAAA4Q,IAAAI,yBACpBhR,KAAKiR,OAASjR,KAAA8Q,QAGd9Q,KAAKiR,OAAO,gBAAIjR,KAAA4Q,IAAAM,kBAAA,gBAAAlR,KAAuCmR,qBAAAnR,KAAAiR,QAExC,OAAXjR,KAASoR,MAAcpC,EAACqC,cAAArR,KAAAsR,KAAAtR,KAAA4Q,IAAAW,SAC1BvR,KAAIsR,KAAU,SAAJtR,KAAIgP,IAAAQ,OAAA,KAAAxP,KAAAwR,WAAAxR,KAAAoR,KAAApR,KAAAoR,KAAApR,KAAA4Q,IAAAW,6PA6EOzL,OAAU,EACzB2L,EAAeC,SAAAC,EACZ5R,EAAA6Q,KAoBVa,EAAAG,iBAAA,IAAA7R,EAAA6Q,IAAAiB,aAAA9R,EAAA6Q,IAAAkB,aAAA/R,EAAA6Q,IAAAW,qQAGqBQ,EAAGR,SAAiB9N,EAClCsO,EAASpB,OAAElN,EAAQkN,OACpB5Q,EAAIiS,SAAAD,EAAAtO,IACZ1D,EAAAiS,SAAA,KAAAvO,4CAseC,6BANY5B,EAAUoQ,EAClBA,EAAM,MAGRA,GAAKjD,EAAIkD,KAAAD,GACTpQ,GAAImN,EAAGW,IAAI9N,GACZmN,oCA7vBCmD,UAYF,CACDC,KAAA,YAOEC,KAAA,8UA6JMC,EAAA7Q,kCAYG,SAAA0E,SACLoM,EAAOzM,MAAA9F,KAAAwS,sBACNC,QAAezS,KAAOgP,IAAAyD,QAAAzS,KAAAmG,QACtBuM,EAAI1S,KAASwS,QAAI1M,EAAAyM,EAAAzM,MAAA,wBAClBK,IAAAA,EAAAhF,OAAA,GAAAgF,aAAApC,QAAA+B,EAAAK,GAAA,2BAYM,iBACPnG,KAAOgP,IACTQ,EAA0ER,EAAAQ,OAG1EC,EAAIT,EAAAS,MACF,UAAQ5H,OAAW2H,EAAG,KAAA3H,OAAA4H,EAAA,MAAA5H,OAAA7H,KAAA2Q,OAAA,OACtB,IAAA/P,MAAQ+R,GAMZ,gBALI3S,KAAQ2Q,gBACHnB,IACPC,IAACA,EAGFgC,GAKHc,EAAmCD,SAAAA,0MA4IjCM,KAAO,SAAIC,EAAAC,EAAArM,GACZ,IAAAtE,UAAAhB,SAAA2R,EAAA,IAEiB,WAAV/P,EAAA+P,IAAsC,OAAbA,IAK/BrM,EAAYqM,EACbA,EAAA,uLAYC,OAAI9S,KAAK+S,MAAAF,EAAaC,EAAQrM,EACtBgE,gBAqBRuI,MAAU,SAAS9O,GAGnB,MAFkB,iBAAdA,IAAkBA,EAAA+O,EAAA/O,IAClBA,GAAAlE,KAASkT,OAAKnR,KAAMmC,GACpBlE,qKA6BJ,OAAoFA,MAEtF0P,EAACjO,UAAA0R,aAAA,kBAQEnT,KAAAoT,YAAApT,KAAAoT,UAAA,IAAAzL,EAAA0L,sCAUDrB,SAAK,SAAcP,EAAQhO,GAE3B,GAAIzD,KAACsT,aAAA7B,EAAoBhO,GAAA,OAAAzD,KAAAuT,SAEzB,IAAI1R,EAAK7B,KAAAwT,UACVxT,KAAAyT,eAEOhC,IACEzR,KAAG0T,cAAkEjC,EAAAkC,QAAA3T,KAAA4T,SAAA,GAEzE5T,KAAK6T,KAAA,QAAcpC,IAGrB5P,EAAG4P,EAAKhO,gBASVqQ,iBAAkB,WAClB,IAAIrC,EAAI,IAAG7Q,MAAK,gKAEhB6Q,EAAIsC,aAAa,EAGjBtC,EAAId,OAAA3Q,KAAA2Q,SACFnB,OAAIxP,KAAUwP,SAEdC,IAAIzP,KAAAyP,SAIJuC,SAAIP,MAGJhQ,UAA+EuS,MAAA,0BAG3EC,KAAA,0DAEDjU,QAEHyB,UAASyS,GAAAxE,EAAWjO,UAAAuS,kBACZG,OAAIzE,EAAAjO,UAAAyS,KACZzS,UAAC2S,MAAA,iBAEC,IAAGxT,MAAM,4EAEHyT,KAAM3E,EAAAjO,UAAgB2S,0BAc7B,SAAA9S,UAGDA,GAAuB,WAAbyB,EAAUzB,KAAGqB,MAAAqC,QAAA1D,IAAA,oBAAAyC,OAAAtC,UAAA0K,SAAAnL,KAAAM,gBAgBvBqO,IAAM,SACN9N,GACmB7B,KAAAsU,YAAAC,QAAAN,KAAA,yEAGrBjU,KAAKsU,YAAA,OACHd,UAAS3R,GAAQ0N,8BAKnBvP,KAAEwU,UAEA/S,UAAOgT,kBAAiB,WAC1B,IAAS1U,EAAAC,KAGLA,KAAK0U,iBAAkB1U,KAAI2U,sBAAwB3U,KAAO2U,oBAAAC,YAAA,WAE5D7U,EAAO8U,cAAc,qBAAqB9U,EAAI2U,eAAsB,oBAClDA,oBAGlBjT,UAAI+S,KAAa,cAEjBxU,KAAK8U,SAAU,OAAI9U,KAAOgS,SAAA,IACxBpR,MAAA,mEAGFb,EAAIC,KACNA,KAAsB4Q,IAAA2B,EAAAwC,SAGtB,IAAKnE,EAAI5Q,KAAK4Q,IACZqB,EAAIjS,KAAKoT,WAAYpT,KAAMgV,WAC3BC,eACFrE,EAACsE,mBAAA,WAEG,IAAIC,EAACvE,EACPuE,WAIE,GAHWA,GAAA,GAAApV,EAAAqV,uBAAA3B,aAAA1T,EAAAqV,uBAGM,IAAhBD,EAAD,CAIL,IAAAxE,EAEO,IACCA,EAASC,EAAAD,OACjB,MAAA0E,GAEA1E,EAAA,EAAa,IAAAA,EAAA,CAAW,GAAA5Q,EAAAuV,UAAAvV,EAAA+U,SAAA,OAAS,OAAA/U,EAAA+T,mBAAiB/T,EAAA8T,KAAA,SACjD,IAAA0B,EAAgB,SAAwBC,EAAiBrV,GACnDA,EAAAsV,MAAU,IAEVtV,EAACuV,QAAAvV,EAAawV,OAAGxV,EAAAsV,MAAA,IAGT,MAAVtV,EAAAuV,SAAUjC,aAAA1T,EAAA4U,sBAIbxU,EAAAqV,UAAAA,EACFzV,EAAA8T,KAAA,WAAA1T,IAUE,GAAAH,KAAA4V,aAAA,YAAA,8KAGD,IAEI5V,KAAO6V,UAAmB7V,KAAA8V,SAAGlF,EAAAmF,KAAA/V,KAAAwP,OAAAxP,KAAAyP,KAAA,EAAAzP,KAAA6V,SAAA7V,KAAA8V,UAC1BlF,EAAImF,KAAA/V,KAAAwP,OAAAxP,KAAAyP,KAAA,SACLgC,GAGF,OAAMzR,KAAIgS,SAAUP,GAGzB,GADCzR,KAAOgW,mBAAGpF,EAAAqF,iBAAA,IACXjW,KAAAoT,WAAA,QAAApT,KAAAwP,QAAA,SAAAxP,KAAAwP,QAAA,iBAAAyC,IAAAjS,KAAAkW,QAAAjE,GAAA,oMAYwBlO,OAAKtC,UAAWwE,eAAAjF,KAAAhB,KAAAiR,OAAAkF,IAAAvF,EAAAwF,iBAAAD,EAAAnW,KAAAiR,OAAAkF,IAGnCnW,KAAAqR,gBAA0BT,EAAAiB,aAAG7R,KAAAqR,oBAE/BwC,KAAI,UAAO7T,MAGb4Q,EAAIsB,UAAoB,IAAVD,EAAU,KAAAA,MAExB+B,MAAU,WACX,OAAA,IAAArF,mDAYOf,SAAU,SAAa4B,GAC7Bb,EAAIlN,UAAM+N,EAAiB6G,eAAK,SAAA5G,EAAA5N,GAE5B,IAAAmN,EAAO,IAAIuD,EAAe7C,QAAGF,EAAAC,GAGhC,OAFCzP,KAAK+O,aAAIC,GACLnN,GAAGmN,EAAIW,IAAA9N,GACZmN,QAIDvN,UAAU6U,IAAA3H,EAAAlN,UAAA8U,6BAaI,IAAEvH,EAAQuD,EAAG,MAAA9C,GAS3B,MAR0B,mBAAhBwC,IAENpQ,EAAAoQ,EACFA,EAAK,MAENA,GAAAjD,EAAAgE,MAAAf,GAEGpQ,GAAImN,EAAEW,IAAI9N,GACRmN,4CAsBN,6BANcnN,EAAUoQ,EACpBA,EAAM,MAGRA,GAAKjD,EAAIgE,MAAAf,GACTpQ,GAAImN,EAAGW,IAAI9N,GACZmN,kDAuBD,6BANanN,EAAUoQ,EACnBA,EAAM,MAGRA,GAAKjD,EAAIkD,KAAAD,GACTpQ,GAAImN,EAAGW,IAAI9N,GACZmN,KA0BGsH,IAAIA,IACRC,OAAUD,UAG4G,SAAA7G,EAAAwC,EAAEpQ,GAAK,IAAEmN,EAAAuD,EAAA,QAAA9C,GAG9E,MAH+E,mBAAAwC,IAACpQ,EAAAoQ,EAAKA,EAAA,MAC5HA,GAAAjD,EAAAkD,KAAAD,MAEHjD,EAAOW,IAAC9N,GAAsCmN,GAKvDuD,EAAIiE,KAAW,SAAqB/G,EAAAwC,EAAApQ,GAGjC,IAAAmN,EAAAuD,EAAA,OAAA9C,GAUM,6BAPQ5N,EAAAoQ,EAKdA,EAAA,+BAEkBjD,kBAaXS,EAAIwC,EAAIpQ,GAIhB,IAAAmN,EAAOuD,EAAM,MAAA9C,GAUH,MATX,mBAAAwC,IAMEpQ,EAAAoQ,mCAGmBjD,oBAIR,gBACD,mBACC,qBACD,GACb,oBAAC,EACD,sBAOG,0CAGS,SAASjM,EAAM0T,UACR1T,EAAA,mBAAZC,QAAY,iBAAAA,OAAAC,SAAA,SAAA3B,GACjB,cAAWA,GAkBV,SAAAA,iJAGS,GAAA4J,EAAU,gIAAYxJ,CAAGwJ,2QAuClCpF,MAAA,SAAAjE,UAED7B,KAAKyS,QAAU5Q,EAGT7B,yFAsCDiT,UAAA,SAAmBpR,GAErB,OADH7B,KAAA0W,YAAW7U,EACR7B,kBAa6D2W,QAAA,SAAAlQ,GAAE,IAAcA,GAAA,WAAA1D,EAAA0D,GAAkD,OAAzCzG,KAAA4W,SAAAnQ,EAAazG,KAAA6W,iBAAA,EAAe7W,KAAA0U,eAAA,EAAa1U,KAChI,IAAA,IAAA8W,KAAkBrQ,EAAM,GAAA1C,OAAAtC,UAAAwE,eAAAjF,KAAAyF,EAAAqQ,GAAA,OAAAA,GAAG,IAAA,WAAK9W,KAAA4W,SAAAnQ,EAAAsQ,SAAK,MAAK,IAAA,WAAK/W,KAAA6W,iBAAApQ,EAAA8K,SAAK,MAAK,IAAA,SAAKvR,KAAA0U,eAAAjO,EAAAuQ,OAAK,MAAK,QAAkHzC,QAAAN,KAAA,yBAAA6C,GAU3L,OAAA9W,kBAWKiX,MAAE,SAAaC,EAAMrV,UAET,IAAdM,UAAWhB,SAAG,IAAA+V,IAAAA,EAAA,GACdA,GAAQ,IAAAA,EAAU,GACpBlX,KAAC0T,YAAAwD,EACDlX,KAA8G4T,SAAA,EAEhH5T,KAOEmX,eAAAtV,YAYFuV,EAAY,IAAAC,IAAA,CACb,YAME,6DAGS,cACV,gBAGa,IAAIA,IAAA,KAEjB,IAEA,IACA,IACA,IACA,IACD,IAOE,uCAckB,SAAE5F,EAAQhO,yBACbzD,KAAA4T,YAAqB5T,KAAA0T,YAAoB,OAAQ,yBAIjD,UACR1T,KAAOmX,eAAM1F,EAAahO,OAC1B,MAAM,OAAA,MACP,MAAA,OAAA,mBAGD6T,MAAI3F,mBASP4F,EAAAhQ,IAAA9D,EAAAkN,QAAA,OAAA,EACH,GAACc,EAAA,CAED,GAAOA,EAAK5Q,MAAAuW,EAAmB7P,IAAKkK,EAAA5Q,MAAS,OAAM,EACpD,GAAA4Q,EAAAkF,SAAA,iBAAAlF,EAAA5Q,KAAA,OAAA,EAED,GAAY4Q,EAAAsC,YAAe,OAAG,EAE7B,OAAA,KAWDtS,UAAA8R,OAAY,WAgBX,OAfCvT,KAAIyT,eACAzT,KAACgP,MACLhP,KAAOgP,IAAI,KACZhP,KAAAgP,IAAAhP,KAAAuS,WAGCvS,KAAK8U,UACG,EAGR9U,KAAIsV,UAAK,EAITtV,KAAAwX,cAAqB,KACtBxX,KAAAwU,QAWDlF,EAAY7N,UAAUgW,KAAM,SAAUC,EAAQC,GAC5C,IAAAC,EAAY5X,KACb,IAAAA,KAAA6X,mBAAA,CAWE,IAAA9X,EAAAC,iXAGmByR,EAAS5Q,KAAG,UAoB/B4Q,EAAAd,OAAAiH,EAAAjH,qNAGD,OADU9O,EAAA7B,MACNA,QAKFyB,UAAWqW,GAAA,SAAAvV,GACb,GAAC,mBAAAA,EAAA,MAAA,IAAA3B,MAAA,qBAGD,OADAZ,KAAK+X,YAAcxV,EACdvC,MAEPsP,EAAC7N,UAAAuW,cAAA,SAAAvU,GAYE,QAAAA,uEAGH6L,EAAY7N,UAAU+C,IAAK,SAAG2R,GAC5B,OAAOnW,KAAKiY,QAAQ9B,EAAME,kEAgDxB6B,IAAO,SAAI/B,EAAAzR,GACb,GAA8B6L,EAAA4F,GAAA,CAG1B,IAAA,IAAK5U,KAAS4U,EAAIpS,OAActC,UAClCwE,eAAwDjF,KAAAmV,EAAA5U,IAAAvB,KAAAkY,IAAA3W,EAAA4U,EAAA5U,IAGtD,OAAOvB,KAaV,OAPDA,KAAAiY,QAAW9B,EAAAE,eAAA3R,EACZ1E,KAAAiR,OAAAkF,GAAAzR,EAME1E,QAgBHyB,UAAC0W,MAAA,SAAAhC,iBAEUnW,KAACiY,QAAU9B,EAAQE,sBACpBrW,KAAAiR,OAAYkF,GAClBnW,sPAgCQ,IAAU,IAAAuB,KAAA+M,EAAkBvK,OAAYtC,UAAGwE,eAAAjF,KAAAsN,EAAA/M,IAAAvB,KAAAmW,MAAA5U,EAAA+M,EAAA/M,IACK,OAAAvB,KAE1D,GAAI2C,MAACqC,QAAAN,GAAqB,CAC1B,IAAO,IAAInE,KAAAmE,EAAAX,OAAAtC,UAAAwE,eAAAjF,KAAA0D,EAAAnE,IAAAP,KAAAmW,MAAA7H,EAAA5J,EAAAnE,IACZ,OAAAP,oRAuBWA,KAASyT,eACnBzT,KAAI6T,KAAM,gBAMZvE,EAAC7N,UAAAsR,MAAA,SAAAF,EAAAC,EAAArM,EAAA2R,GAQE,OAAA3R,EAAA+L,4IAGmB,MACpB,IAAQ,SAEHxS,KAAMkY,IAAI,gBAAA,UAAArQ,OAAAgL,IA2Cd,OAAA7S,wUAea,iBACK,CAElBwP,OAAUxP,KAAIwP,OAELC,IAAAzP,KAAAyP,IAGNwC,KAAAjS,KAASgV,MACXlE,QAAS9Q,KAAGiY,YAyDTxW,UAAQyQ,KAAW,SAAgBD,GACxC,IAAAoG,EAAW9H,EAAA0B,GACZO,EAAAxS,KAAAiY,QAAA,gBAKE,GAAAjY,KAAAoT,UAAA,MAAA,IAAAxS,MAAA,uMAIG,GAAKqR,GAAQjS,KAAOgV,OAAQhV,KAAAkW,QAAAlW,KAAAgV,OAAA,MAAA,IAAApU,MAAA,gCAMhC,GAAIyX,GAAQ9H,EAAwCvQ,KAAAgV,OAEhD,IAAI,IAACzT,KAAQ0Q,EAAAlO,OAAAtC,UAAAwE,eAAAjF,KAAAiR,EAAA1Q,KAAAvB,KAAAgV,MAAAzT,GAAA0Q,EAAA1Q,QACM,iBAAT0Q,GAGVO,GAAIxS,KAAAwS,KAAa,WAEfxS,KAAEiY,QAAY,mBAGdzF,EAAAA,EAAW6D,cAAIjG,QAG2BpQ,KAAAgV,MAApC,sCAARxC,EAA2DxS,KAAIgV,MAAA,GAAAnN,OAAA7H,KAAAgV,MAAA,KAAAnN,OAAAoK,GAAAA,GAChEjS,KAAAgV,OAAA,IAAA/C,GACFjS,KAAAgV,MAAA/C,EAC4B,OAAAoG,GAAArY,KAAAkW,QAAAjE,IAI7BO,GAAQxS,KAAkBwS,KAAA,QAJGxS,QA6C5ByB,UAAa6W,UAAE,SAAArT,GAAO,OAALjF,KAAAuY,WAAA,IAAAtT,GAAAA,EAAKjF,QAOzByB,UAEG+W,qBAAA,0CAGcxF,IAAAhT,KAAYyP,MAAAzP,KAAAyP,IAAAgJ,SAAA,KAAA,IAAA,KAAAzF,GAK1BhT,KAAAkT,OAAA/R,OAAA,mDAEmB,IAAMuX,EAAA1Y,KAAAyP,IAAA5M,MAAAwE,EAAA,GAAAT,MAAA,KACD,mBAAT5G,KAAMuY,MAAGG,EAAAzT,KAAAjF,KAAAuY,OAC1BG,EAAAzT,OAOEjF,KAAAyP,IAAAzP,KAAAyP,IAAA5M,MAAA,EAAAwE,GAAA,IAAAqR,EAAA1M,KAAA,4NAmBUyF,EAAAkH,MAAaA,EACxB3Y,KAAAsV,UAAY,EACbtV,KAAAwX,cAAA/F,EAWEzR,KAAA4Y,sTAGU7Y,EAAU8U,cAAA,uBAAyC9U,EAAC8W,iBAAA,eACjD7W,KAAA6W,oCAIL,iBAQMzV,EAAUC,EAAAN,wBAOxB,0LAgCMyD,IAAG,SAAU2R,GACpB,OAAKnW,KAAAiR,OAAWkF,EAASE,4BAapBlF,qBAAsB,SAAWF,GAG5B,IAAA4H,EAAG5H,EAAA,iBAAA,GAACjR,KAAAwS,KAAAxM,EAAAwM,KAAAqG,GAAC,IAAAC,EAAA9S,EAAA8S,OAAAD,GAAK,IAAA,IAAAtX,KAAAuX,EAAA/U,OAAAtC,UAAAwE,eAAAjF,KAAA8X,EAAAvX,KAAAvB,KAAAuB,GAAAuX,EAAAvX,IAAQvB,KAAC+Y,MAAQ,OAGwB9H,EAAA+H,OAAAhZ,KAAA+Y,MAAA/S,EAAAiT,WAAAhI,EAAA+H,OAAI,MAAEhJ,kBAA0Ya,qBAAA,SAAAF,OAAC6B,EAAM7B,EAAI,IAAiJ,EAAG3Q,KAACkZ,WAAAvI,EAAC3Q,KAAI2Q,OAAA3Q,KAAAkZ,WAA8ClZ,KAAAmZ,WAAQ3G,OAAE4G,KAAgB,IAAd5G,UAAsB,IAALA,OAA0B6G,SAAA,IAAA7G,OAAG8G,YAAgB,IAAJ9G,mBAAuB,IAAPA,cAAW,IAAAA,GAA4B,IAATA,IAASxS,KAAAuZ,uBAAa,MAAJ5I,OAAO6I,SAAA,MAAA7I,OAAG8I,UAAmB,MAAP9I,kBAAqB,MAAJA,oBAAe,MAAAA,OAAG+I,cAAA,MAAA/I,OAAGgJ,UAAgB,MAAJhJ,gBAAU,MAAAA,2BAA0B,MAApBA,eAA0F,kBAEx6BvP,EAAQC,EAAMN,yBAAuE6Y,EAAoBtZ,EAASuZ,GAAsB,IAAIC,EAAyD,GAAoB,oBAAL9W,QAAoC,MAAnB1C,EAAO0C,OAAMC,UAAM,CAAO,GAACN,MAAgBqC,QAAA1E,KAAAwZ,EAwD1T,SAA6BxZ,EAAA8N,GACnC,IAAI9N,EAAG,OAAI,GAAC,iBAAAA,EAAA,OAAAyN,EAAAzN,EAAA8N,GAEZ,IAAIC,EAAAtK,OAAUtC,UAAG0K,SAAAnL,KAAAV,GAAAuC,MAA+B,GAAA,GAG3C,WAADwL,GAAC/N,EAAA4C,cAAAmL,EAAA/N,EAAA4C,YAAAoL,SACE,QAALD,GAAiB,QAADA,EAAa,OAAG1L,MAAUuL,KAAE5N,MAC1C,iBAAiB,2CAAKiO,KAAAF,GAAA,OAAAN,EAAAzN,EAAA8N,GAhEsSI,CAAAlO,KAA+CuZ,GAAgBvZ,GAA2B,iBAA3BA,EAAiBa,OAAU,CAAI2Y,IAAAxZ,EAAAwZ,GAEvZ,IAAAvZ,EAAA,EAAyCwZ,EAAI,aAA0H,MAAI,CAAG5J,EAAA4J,EAQpL1L,EAAA,iDAC4B3J,MAAApE,EAAAC,OAS5BJ,EAAA,SAAA6Z,iBAGc,MAAU,IAAGzR,UAAG,yIACpB,IAACkJ,EAAAwI,GAAA,EAAAC,GAAA,EAEZ,MAAI,CAGA/J,EAAC,WACE2J,EAAAxZ,EAAA0C,OAAWC,0BAGd,IAAIkX,EAAML,EAAAM,OAIV,OAFAH,EAAiBE,EAAKE,KAEfF,GAETha,EAAK,SAAQma,GACbJ,GAAY,EACbzI,EAAU6I,GAEV7a,EAAA,WAEM,IACRwa,GAAA,MAAAH,EAAAS,QAAAT,EAAAS,SAOE,mCAakB3W,EAAIhB,IAChB,SAAOA,EAAOgB,EAAEzC,UAAKyB,EAAWgB,EAAEzC,gBACrCZ,EAAI,EAAGmO,EAAO,IAAA/L,MAAAC,GAAArC,EAAAqC,EAAArC,IAAAmO,EAAAnO,GAAAqD,EAAArD,UACfmO,SAeF,SAAAvI,6CAMD,SAAOjC,GACP,IAG6BsW,EAH7BlZ,EAAO,GAGLmZ,EAAOb,EAAoB1V,EAAA0C,MAAA,cAE5B,IAAA6T,EAAAtK,MAAAqK,EAAAC,EAAApM,KAAAgM,MAAA,CAEM,IACR/Q,EADckR,EAAA9V,MACdkC,MAAA,SAEArF,EAAA+H,EAAAoR,QAAEC,EAAArR,EAAAoR,QAACnZ,GAAAoZ,IAAArZ,EAAAC,GAAAoZ,IAAI,MAAAlJ,GAAGgJ,EAAAta,EAAAsR,GAAE,QAAKgJ,EAAAhb,yaApsG+V,QCKjWmb,SAASC,uBAAuB,oBAAoB","sources":["node_modules/superagent/dist/superagent.js","src/deepfake.js"],"sourcesContent":["(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.superagent = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i b) {\n return 1;\n }\n\n return 0;\n}\n\nfunction deterministicStringify(obj, replacer, spacer) {\n var tmp = deterministicDecirc(obj, '', [], undefined) || obj;\n var res;\n\n if (replacerStack.length === 0) {\n res = JSON.stringify(tmp, replacer, spacer);\n } else {\n res = JSON.stringify(tmp, replaceGetterValues(replacer), spacer);\n }\n\n while (arr.length !== 0) {\n var part = arr.pop();\n\n if (part.length === 4) {\n Object.defineProperty(part[0], part[1], part[3]);\n } else {\n part[0][part[1]] = part[2];\n }\n }\n\n return res;\n}\n\nfunction deterministicDecirc(val, k, stack, parent) {\n var i;\n\n if (_typeof(val) === 'object' && val !== null) {\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === val) {\n var propertyDescriptor = Object.getOwnPropertyDescriptor(parent, k);\n\n if (propertyDescriptor.get !== undefined) {\n if (propertyDescriptor.configurable) {\n Object.defineProperty(parent, k, {\n value: '[Circular]'\n });\n arr.push([parent, k, val, propertyDescriptor]);\n } else {\n replacerStack.push([val, k]);\n }\n } else {\n parent[k] = '[Circular]';\n arr.push([parent, k, val]);\n }\n\n return;\n }\n }\n\n if (typeof val.toJSON === 'function') {\n return;\n }\n\n stack.push(val); // Optimize for Arrays. Big arrays could kill the performance otherwise!\n\n if (Array.isArray(val)) {\n for (i = 0; i < val.length; i++) {\n deterministicDecirc(val[i], i, stack, val);\n }\n } else {\n // Create a temporary object in the required way\n var tmp = {};\n var keys = Object.keys(val).sort(compareFunction);\n\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n deterministicDecirc(val[key], key, stack, val);\n tmp[key] = val[key];\n }\n\n if (parent !== undefined) {\n arr.push([parent, k, val]);\n parent[k] = tmp;\n } else {\n return tmp;\n }\n }\n\n stack.pop();\n }\n} // wraps replacer function to handle values we couldn't replace\n// and mark them as [Circular]\n\n\nfunction replaceGetterValues(replacer) {\n replacer = replacer !== undefined ? replacer : function (k, v) {\n return v;\n };\n return function (key, val) {\n if (replacerStack.length > 0) {\n for (var i = 0; i < replacerStack.length; i++) {\n var part = replacerStack[i];\n\n if (part[1] === key && part[0] === val) {\n val = '[Circular]';\n replacerStack.splice(i, 1);\n break;\n }\n }\n }\n\n return replacer.call(this, key, val);\n };\n}\n\n},{}],3:[function(require,module,exports){\n'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar util = require('./utils');\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\nmodule.exports = util.assign({\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function RFC1738(value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function RFC3986(value) {\n return String(value);\n }\n }\n}, Format);\n\n},{\"./utils\":7}],4:[function(require,module,exports){\n'use strict';\n\nvar stringify = require('./stringify');\n\nvar parse = require('./parse');\n\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n\n},{\"./formats\":3,\"./parse\":5,\"./stringify\":6}],5:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function interpretNumericEntities(str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function parseArrayValue(val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n}; // This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\n\n\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\n\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n\n var i;\n var charset = options.charset;\n\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n\n var part = parts[i];\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n var key, val;\n\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(parseArrayValue(part.slice(pos + 1), options), function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n });\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function parseObject(chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n\n if (!options.parseArrays && cleanRoot === '') {\n obj = {\n 0: leaf\n };\n } else if (!isNaN(index) && root !== cleanRoot && String(index) === cleanRoot && index >= 0 && options.parseArrays && index <= options.arrayLimit) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj; // eslint-disable-line no-param-reassign\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n } // Transform dot notation to bracket notation\n\n\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey; // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g; // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key; // Stash the parent if it exists\n\n var keys = [];\n\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n } // Loop through children appending to the array until we hit depth\n\n\n var i = 0;\n\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(segment[1]);\n } // If there's a remainder, just add whatever is left\n\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: typeof opts.depth === 'number' || opts.depth === false ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {}; // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n return utils.compact(obj);\n};\n\n},{\"./utils\":7}],6:[function(require,module,exports){\n'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar utils = require('./utils');\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\n\nvar pushToArray = function pushToArray(arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string' || typeof v === 'number' || typeof v === 'boolean' || _typeof(v) === 'symbol' || typeof v === 'bigint';\n};\n\nvar stringify = function stringify(object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter, encodeValuesOnly, charset) {\n var obj = object;\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n\n return value;\n }).join(',');\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key') : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key');\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value'))];\n }\n\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n\n if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n var value = obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj) ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix : prefix + (allowDots ? '.' + key : '[' + key + ']');\n pushToArray(values, stringify(value, keyPrefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter, encodeValuesOnly, charset));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n\n format = opts.format;\n }\n\n var formatter = formats.formatters[format];\n var filter = defaults.filter;\n\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (_typeof(obj) !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n\n pushToArray(keys, stringify(obj[key], key, generateArrayPrefix, options.strictNullHandling, options.skipNulls, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.formatter, options.encodeValuesOnly, options.charset));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n\n},{\"./formats\":3,\"./utils\":7}],7:[function(require,module,exports){\n'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = function () {\n var array = [];\n\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}();\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (_typeof(source) !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && _typeof(target) === 'object') {\n if (options && (options.plainObjects || options.allowPrototypes) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || _typeof(target) !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n\n if (targetItem && _typeof(targetItem) === 'object' && item && _typeof(item) === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function decode(str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n } // utf-8\n\n\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n\n if (_typeof(str) === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || c >= 0x30 && c <= 0x39 // 0-9\n || c >= 0x41 && c <= 0x5A // a-z\n || c >= 0x61 && c <= 0x7A // A-Z\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | c >> 6] + hexTable[0x80 | c & 0x3F]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | c >> 12] + hexTable[0x80 | c >> 6 & 0x3F] + hexTable[0x80 | c & 0x3F]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + ((c & 0x3FF) << 10 | string.charCodeAt(i) & 0x3FF);\n out += hexTable[0xF0 | c >> 18] + hexTable[0x80 | c >> 12 & 0x3F] + hexTable[0x80 | c >> 6 & 0x3F] + hexTable[0x80 | c & 0x3F];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{\n obj: {\n o: value\n },\n prop: 'o'\n }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n var keys = Object.keys(obj);\n\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n\n if (_typeof(val) === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({\n obj: obj,\n prop: key\n });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || _typeof(obj) !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n\n return mapped;\n }\n\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n\n},{}],8:[function(require,module,exports){\n\"use strict\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction Agent() {\n this._defaults = [];\n}\n\n['use', 'on', 'once', 'set', 'query', 'type', 'accept', 'auth', 'withCredentials', 'sortQuery', 'retry', 'ok', 'redirects', 'timeout', 'buffer', 'serialize', 'parse', 'ca', 'key', 'pfx', 'cert', 'disableTLSCerts'].forEach(function (fn) {\n // Default setting for all requests from this agent\n Agent.prototype[fn] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n this._defaults.push({\n fn: fn,\n args: args\n });\n\n return this;\n };\n});\n\nAgent.prototype._setDefaults = function (req) {\n this._defaults.forEach(function (def) {\n req[def.fn].apply(req, _toConsumableArray(def.args));\n });\n};\n\nmodule.exports = Agent;\n\n},{}],9:[function(require,module,exports){\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Check if `obj` is an object.\n *\n * @param {Object} obj\n * @return {Boolean}\n * @api private\n */\nfunction isObject(obj) {\n return obj !== null && _typeof(obj) === 'object';\n}\n\nmodule.exports = isObject;\n\n},{}],10:[function(require,module,exports){\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Root reference for iframes.\n */\nvar root;\n\nif (typeof window !== 'undefined') {\n // Browser window\n root = window;\n} else if (typeof self === 'undefined') {\n // Other environments\n console.warn('Using browser-only version of superagent in non-browser environment');\n root = void 0;\n} else {\n // Web Worker\n root = self;\n}\n\nvar Emitter = require('component-emitter');\n\nvar safeStringify = require('fast-safe-stringify');\n\nvar qs = require('qs');\n\nvar RequestBase = require('./request-base');\n\nvar isObject = require('./is-object');\n\nvar ResponseBase = require('./response-base');\n\nvar Agent = require('./agent-base');\n/**\n * Noop.\n */\n\n\nfunction noop() {}\n/**\n * Expose `request`.\n */\n\n\nmodule.exports = function (method, url) {\n // callback\n if (typeof url === 'function') {\n return new exports.Request('GET', method).end(url);\n } // url first\n\n\n if (arguments.length === 1) {\n return new exports.Request('GET', method);\n }\n\n return new exports.Request(method, url);\n};\n\nexports = module.exports;\nvar request = exports;\nexports.Request = Request;\n/**\n * Determine XHR.\n */\n\nrequest.getXHR = function () {\n if (root.XMLHttpRequest && (!root.location || root.location.protocol !== 'file:' || !root.ActiveXObject)) {\n return new XMLHttpRequest();\n }\n\n try {\n return new ActiveXObject('Microsoft.XMLHTTP');\n } catch (_unused) {}\n\n try {\n return new ActiveXObject('Msxml2.XMLHTTP.6.0');\n } catch (_unused2) {}\n\n try {\n return new ActiveXObject('Msxml2.XMLHTTP.3.0');\n } catch (_unused3) {}\n\n try {\n return new ActiveXObject('Msxml2.XMLHTTP');\n } catch (_unused4) {}\n\n throw new Error('Browser-only version of superagent could not find XHR');\n};\n/**\n * Removes leading and trailing whitespace, added to support IE.\n *\n * @param {String} s\n * @return {String}\n * @api private\n */\n\n\nvar trim = ''.trim ? function (s) {\n return s.trim();\n} : function (s) {\n return s.replace(/(^\\s*|\\s*$)/g, '');\n};\n/**\n * Serialize the given `obj`.\n *\n * @param {Object} obj\n * @return {String}\n * @api private\n */\n\nfunction serialize(obj) {\n if (!isObject(obj)) return obj;\n var pairs = [];\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) pushEncodedKeyValuePair(pairs, key, obj[key]);\n }\n\n return pairs.join('&');\n}\n/**\n * Helps 'serialize' with serializing arrays.\n * Mutates the pairs array.\n *\n * @param {Array} pairs\n * @param {String} key\n * @param {Mixed} val\n */\n\n\nfunction pushEncodedKeyValuePair(pairs, key, val) {\n if (val === undefined) return;\n\n if (val === null) {\n pairs.push(encodeURI(key));\n return;\n }\n\n if (Array.isArray(val)) {\n val.forEach(function (v) {\n pushEncodedKeyValuePair(pairs, key, v);\n });\n } else if (isObject(val)) {\n for (var subkey in val) {\n if (Object.prototype.hasOwnProperty.call(val, subkey)) pushEncodedKeyValuePair(pairs, \"\".concat(key, \"[\").concat(subkey, \"]\"), val[subkey]);\n }\n } else {\n pairs.push(encodeURI(key) + '=' + encodeURIComponent(val));\n }\n}\n/**\n * Expose serialization method.\n */\n\n\nrequest.serializeObject = serialize;\n/**\n * Parse the given x-www-form-urlencoded `str`.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseString(str) {\n var obj = {};\n var pairs = str.split('&');\n var pair;\n var pos;\n\n for (var i = 0, len = pairs.length; i < len; ++i) {\n pair = pairs[i];\n pos = pair.indexOf('=');\n\n if (pos === -1) {\n obj[decodeURIComponent(pair)] = '';\n } else {\n obj[decodeURIComponent(pair.slice(0, pos))] = decodeURIComponent(pair.slice(pos + 1));\n }\n }\n\n return obj;\n}\n/**\n * Expose parser.\n */\n\n\nrequest.parseString = parseString;\n/**\n * Default MIME type map.\n *\n * superagent.types.xml = 'application/xml';\n *\n */\n\nrequest.types = {\n html: 'text/html',\n json: 'application/json',\n xml: 'text/xml',\n urlencoded: 'application/x-www-form-urlencoded',\n form: 'application/x-www-form-urlencoded',\n 'form-data': 'application/x-www-form-urlencoded'\n};\n/**\n * Default serialization map.\n *\n * superagent.serialize['application/xml'] = function(obj){\n * return 'generated xml here';\n * };\n *\n */\n\nrequest.serialize = {\n 'application/x-www-form-urlencoded': qs.stringify,\n 'application/json': safeStringify\n};\n/**\n * Default parsers.\n *\n * superagent.parse['application/xml'] = function(str){\n * return { object parsed from str };\n * };\n *\n */\n\nrequest.parse = {\n 'application/x-www-form-urlencoded': parseString,\n 'application/json': JSON.parse\n};\n/**\n * Parse the given header `str` into\n * an object containing the mapped fields.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseHeader(str) {\n var lines = str.split(/\\r?\\n/);\n var fields = {};\n var index;\n var line;\n var field;\n var val;\n\n for (var i = 0, len = lines.length; i < len; ++i) {\n line = lines[i];\n index = line.indexOf(':');\n\n if (index === -1) {\n // could be empty line, just skip it\n continue;\n }\n\n field = line.slice(0, index).toLowerCase();\n val = trim(line.slice(index + 1));\n fields[field] = val;\n }\n\n return fields;\n}\n/**\n * Check if `mime` is json or has +json structured syntax suffix.\n *\n * @param {String} mime\n * @return {Boolean}\n * @api private\n */\n\n\nfunction isJSON(mime) {\n // should match /json or +json\n // but not /json-seq\n return /[/+]json($|[^-\\w])/i.test(mime);\n}\n/**\n * Initialize a new `Response` with the given `xhr`.\n *\n * - set flags (.ok, .error, etc)\n * - parse header\n *\n * Examples:\n *\n * Aliasing `superagent` as `request` is nice:\n *\n * request = superagent;\n *\n * We can use the promise-like API, or pass callbacks:\n *\n * request.get('/').end(function(res){});\n * request.get('/', function(res){});\n *\n * Sending data can be chained:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' })\n * .end(function(res){});\n *\n * Or passed to `.send()`:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' }, function(res){});\n *\n * Or passed to `.post()`:\n *\n * request\n * .post('/user', { name: 'tj' })\n * .end(function(res){});\n *\n * Or further reduced to a single call for simple cases:\n *\n * request\n * .post('/user', { name: 'tj' }, function(res){});\n *\n * @param {XMLHTTPRequest} xhr\n * @param {Object} options\n * @api private\n */\n\n\nfunction Response(req) {\n this.req = req;\n this.xhr = this.req.xhr; // responseText is accessible only if responseType is '' or 'text' and on older browsers\n\n this.text = this.req.method !== 'HEAD' && (this.xhr.responseType === '' || this.xhr.responseType === 'text') || typeof this.xhr.responseType === 'undefined' ? this.xhr.responseText : null;\n this.statusText = this.req.xhr.statusText;\n var status = this.xhr.status; // handle IE9 bug: http://stackoverflow.com/questions/10046972/msie-returns-status-code-of-1223-for-ajax-request\n\n if (status === 1223) {\n status = 204;\n }\n\n this._setStatusProperties(status);\n\n this.headers = parseHeader(this.xhr.getAllResponseHeaders());\n this.header = this.headers; // getAllResponseHeaders sometimes falsely returns \"\" for CORS requests, but\n // getResponseHeader still works. so we get content-type even if getting\n // other headers fails.\n\n this.header['content-type'] = this.xhr.getResponseHeader('content-type');\n\n this._setHeaderProperties(this.header);\n\n if (this.text === null && req._responseType) {\n this.body = this.xhr.response;\n } else {\n this.body = this.req.method === 'HEAD' ? null : this._parseBody(this.text ? this.text : this.xhr.response);\n }\n} // eslint-disable-next-line new-cap\n\n\nResponseBase(Response.prototype);\n/**\n * Parse the given body `str`.\n *\n * Used for auto-parsing of bodies. Parsers\n * are defined on the `superagent.parse` object.\n *\n * @param {String} str\n * @return {Mixed}\n * @api private\n */\n\nResponse.prototype._parseBody = function (str) {\n var parse = request.parse[this.type];\n\n if (this.req._parser) {\n return this.req._parser(this, str);\n }\n\n if (!parse && isJSON(this.type)) {\n parse = request.parse['application/json'];\n }\n\n return parse && str && (str.length > 0 || str instanceof Object) ? parse(str) : null;\n};\n/**\n * Return an `Error` representative of this response.\n *\n * @return {Error}\n * @api public\n */\n\n\nResponse.prototype.toError = function () {\n var req = this.req;\n var method = req.method;\n var url = req.url;\n var msg = \"cannot \".concat(method, \" \").concat(url, \" (\").concat(this.status, \")\");\n var err = new Error(msg);\n err.status = this.status;\n err.method = method;\n err.url = url;\n return err;\n};\n/**\n * Expose `Response`.\n */\n\n\nrequest.Response = Response;\n/**\n * Initialize a new `Request` with the given `method` and `url`.\n *\n * @param {String} method\n * @param {String} url\n * @api public\n */\n\nfunction Request(method, url) {\n var self = this;\n this._query = this._query || [];\n this.method = method;\n this.url = url;\n this.header = {}; // preserves header name case\n\n this._header = {}; // coerces header names to lowercase\n\n this.on('end', function () {\n var err = null;\n var res = null;\n\n try {\n res = new Response(self);\n } catch (err_) {\n err = new Error('Parser is unable to parse the response');\n err.parse = true;\n err.original = err_; // issue #675: return the raw response if the response parsing fails\n\n if (self.xhr) {\n // ie9 doesn't have 'response' property\n err.rawResponse = typeof self.xhr.responseType === 'undefined' ? self.xhr.responseText : self.xhr.response; // issue #876: return the http status code if the response parsing fails\n\n err.status = self.xhr.status ? self.xhr.status : null;\n err.statusCode = err.status; // backwards-compat only\n } else {\n err.rawResponse = null;\n err.status = null;\n }\n\n return self.callback(err);\n }\n\n self.emit('response', res);\n var new_err;\n\n try {\n if (!self._isResponseOK(res)) {\n new_err = new Error(res.statusText || res.text || 'Unsuccessful HTTP response');\n }\n } catch (err_) {\n new_err = err_; // ok() callback can throw\n } // #1000 don't catch errors from the callback to avoid double calling it\n\n\n if (new_err) {\n new_err.original = err;\n new_err.response = res;\n new_err.status = res.status;\n self.callback(new_err, res);\n } else {\n self.callback(null, res);\n }\n });\n}\n/**\n * Mixin `Emitter` and `RequestBase`.\n */\n// eslint-disable-next-line new-cap\n\n\nEmitter(Request.prototype); // eslint-disable-next-line new-cap\n\nRequestBase(Request.prototype);\n/**\n * Set Content-Type to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.xml = 'application/xml';\n *\n * request.post('/')\n * .type('xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * request.post('/')\n * .type('application/xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * @param {String} type\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.type = function (type) {\n this.set('Content-Type', request.types[type] || type);\n return this;\n};\n/**\n * Set Accept to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.json = 'application/json';\n *\n * request.get('/agent')\n * .accept('json')\n * .end(callback);\n *\n * request.get('/agent')\n * .accept('application/json')\n * .end(callback);\n *\n * @param {String} accept\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.accept = function (type) {\n this.set('Accept', request.types[type] || type);\n return this;\n};\n/**\n * Set Authorization field value with `user` and `pass`.\n *\n * @param {String} user\n * @param {String} [pass] optional in case of using 'bearer' as type\n * @param {Object} options with 'type' property 'auto', 'basic' or 'bearer' (default 'basic')\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.auth = function (user, pass, options) {\n if (arguments.length === 1) pass = '';\n\n if (_typeof(pass) === 'object' && pass !== null) {\n // pass is optional and can be replaced with options\n options = pass;\n pass = '';\n }\n\n if (!options) {\n options = {\n type: typeof btoa === 'function' ? 'basic' : 'auto'\n };\n }\n\n var encoder = function encoder(string) {\n if (typeof btoa === 'function') {\n return btoa(string);\n }\n\n throw new Error('Cannot use basic auth, btoa is not a function');\n };\n\n return this._auth(user, pass, options, encoder);\n};\n/**\n * Add query-string `val`.\n *\n * Examples:\n *\n * request.get('/shoes')\n * .query('size=10')\n * .query({ color: 'blue' })\n *\n * @param {Object|String} val\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.query = function (val) {\n if (typeof val !== 'string') val = serialize(val);\n if (val) this._query.push(val);\n return this;\n};\n/**\n * Queue the given `file` as an attachment to the specified `field`,\n * with optional `options` (or filename).\n *\n * ``` js\n * request.post('/upload')\n * .attach('content', new Blob(['hey!'], { type: \"text/html\"}))\n * .end(callback);\n * ```\n *\n * @param {String} field\n * @param {Blob|File} file\n * @param {String|Object} options\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.attach = function (field, file, options) {\n if (file) {\n if (this._data) {\n throw new Error(\"superagent can't mix .send() and .attach()\");\n }\n\n this._getFormData().append(field, file, options || file.name);\n }\n\n return this;\n};\n\nRequest.prototype._getFormData = function () {\n if (!this._formData) {\n this._formData = new root.FormData();\n }\n\n return this._formData;\n};\n/**\n * Invoke the callback with `err` and `res`\n * and handle arity check.\n *\n * @param {Error} err\n * @param {Response} res\n * @api private\n */\n\n\nRequest.prototype.callback = function (err, res) {\n if (this._shouldRetry(err, res)) {\n return this._retry();\n }\n\n var fn = this._callback;\n this.clearTimeout();\n\n if (err) {\n if (this._maxRetries) err.retries = this._retries - 1;\n this.emit('error', err);\n }\n\n fn(err, res);\n};\n/**\n * Invoke callback with x-domain error.\n *\n * @api private\n */\n\n\nRequest.prototype.crossDomainError = function () {\n var err = new Error('Request has been terminated\\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.');\n err.crossDomain = true;\n err.status = this.status;\n err.method = this.method;\n err.url = this.url;\n this.callback(err);\n}; // This only warns, because the request is still likely to work\n\n\nRequest.prototype.agent = function () {\n console.warn('This is not supported in browser version of superagent');\n return this;\n};\n\nRequest.prototype.ca = Request.prototype.agent;\nRequest.prototype.buffer = Request.prototype.ca; // This throws, because it can't send/receive data as expected\n\nRequest.prototype.write = function () {\n throw new Error('Streaming is not supported in browser version of superagent');\n};\n\nRequest.prototype.pipe = Request.prototype.write;\n/**\n * Check if `obj` is a host object,\n * we don't want to serialize these :)\n *\n * @param {Object} obj host object\n * @return {Boolean} is a host object\n * @api private\n */\n\nRequest.prototype._isHost = function (obj) {\n // Native objects stringify to [object File], [object Blob], [object FormData], etc.\n return obj && _typeof(obj) === 'object' && !Array.isArray(obj) && Object.prototype.toString.call(obj) !== '[object Object]';\n};\n/**\n * Initiate request, invoking callback `fn(res)`\n * with an instanceof `Response`.\n *\n * @param {Function} fn\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.end = function (fn) {\n if (this._endCalled) {\n console.warn('Warning: .end() was called twice. This is not supported in superagent');\n }\n\n this._endCalled = true; // store callback\n\n this._callback = fn || noop; // querystring\n\n this._finalizeQueryString();\n\n this._end();\n};\n\nRequest.prototype._setUploadTimeout = function () {\n var self = this; // upload timeout it's wokrs only if deadline timeout is off\n\n if (this._uploadTimeout && !this._uploadTimeoutTimer) {\n this._uploadTimeoutTimer = setTimeout(function () {\n self._timeoutError('Upload timeout of ', self._uploadTimeout, 'ETIMEDOUT');\n }, this._uploadTimeout);\n }\n}; // eslint-disable-next-line complexity\n\n\nRequest.prototype._end = function () {\n if (this._aborted) return this.callback(new Error('The request has been aborted even before .end() was called'));\n var self = this;\n this.xhr = request.getXHR();\n var xhr = this.xhr;\n var data = this._formData || this._data;\n\n this._setTimeouts(); // state change\n\n\n xhr.onreadystatechange = function () {\n var readyState = xhr.readyState;\n\n if (readyState >= 2 && self._responseTimeoutTimer) {\n clearTimeout(self._responseTimeoutTimer);\n }\n\n if (readyState !== 4) {\n return;\n } // In IE9, reads to any property (e.g. status) off of an aborted XHR will\n // result in the error \"Could not complete the operation due to error c00c023f\"\n\n\n var status;\n\n try {\n status = xhr.status;\n } catch (_unused5) {\n status = 0;\n }\n\n if (!status) {\n if (self.timedout || self._aborted) return;\n return self.crossDomainError();\n }\n\n self.emit('end');\n }; // progress\n\n\n var handleProgress = function handleProgress(direction, e) {\n if (e.total > 0) {\n e.percent = e.loaded / e.total * 100;\n\n if (e.percent === 100) {\n clearTimeout(self._uploadTimeoutTimer);\n }\n }\n\n e.direction = direction;\n self.emit('progress', e);\n };\n\n if (this.hasListeners('progress')) {\n try {\n xhr.addEventListener('progress', handleProgress.bind(null, 'download'));\n\n if (xhr.upload) {\n xhr.upload.addEventListener('progress', handleProgress.bind(null, 'upload'));\n }\n } catch (_unused6) {// Accessing xhr.upload fails in IE from a web worker, so just pretend it doesn't exist.\n // Reported here:\n // https://connect.microsoft.com/IE/feedback/details/837245/xmlhttprequest-upload-throws-invalid-argument-when-used-from-web-worker-context\n }\n }\n\n if (xhr.upload) {\n this._setUploadTimeout();\n } // initiate request\n\n\n try {\n if (this.username && this.password) {\n xhr.open(this.method, this.url, true, this.username, this.password);\n } else {\n xhr.open(this.method, this.url, true);\n }\n } catch (err) {\n // see #1149\n return this.callback(err);\n } // CORS\n\n\n if (this._withCredentials) xhr.withCredentials = true; // body\n\n if (!this._formData && this.method !== 'GET' && this.method !== 'HEAD' && typeof data !== 'string' && !this._isHost(data)) {\n // serialize stuff\n var contentType = this._header['content-type'];\n\n var _serialize = this._serializer || request.serialize[contentType ? contentType.split(';')[0] : ''];\n\n if (!_serialize && isJSON(contentType)) {\n _serialize = request.serialize['application/json'];\n }\n\n if (_serialize) data = _serialize(data);\n } // set header fields\n\n\n for (var field in this.header) {\n if (this.header[field] === null) continue;\n if (Object.prototype.hasOwnProperty.call(this.header, field)) xhr.setRequestHeader(field, this.header[field]);\n }\n\n if (this._responseType) {\n xhr.responseType = this._responseType;\n } // send stuff\n\n\n this.emit('request', this); // IE11 xhr.send(undefined) sends 'undefined' string as POST payload (instead of nothing)\n // We need null here if data is undefined\n\n xhr.send(typeof data === 'undefined' ? null : data);\n};\n\nrequest.agent = function () {\n return new Agent();\n};\n\n['GET', 'POST', 'OPTIONS', 'PATCH', 'PUT', 'DELETE'].forEach(function (method) {\n Agent.prototype[method.toLowerCase()] = function (url, fn) {\n var req = new request.Request(method, url);\n\n this._setDefaults(req);\n\n if (fn) {\n req.end(fn);\n }\n\n return req;\n };\n});\nAgent.prototype.del = Agent.prototype.delete;\n/**\n * GET `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.get = function (url, data, fn) {\n var req = request('GET', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * HEAD `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.head = function (url, data, fn) {\n var req = request('HEAD', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * OPTIONS query to `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.options = function (url, data, fn) {\n var req = request('OPTIONS', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * DELETE `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nfunction del(url, data, fn) {\n var req = request('DELETE', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n}\n\nrequest.del = del;\nrequest.delete = del;\n/**\n * PATCH `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.patch = function (url, data, fn) {\n var req = request('PATCH', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * POST `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.post = function (url, data, fn) {\n var req = request('POST', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * PUT `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.put = function (url, data, fn) {\n var req = request('PUT', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n},{\"./agent-base\":8,\"./is-object\":9,\"./request-base\":11,\"./response-base\":12,\"component-emitter\":1,\"fast-safe-stringify\":2,\"qs\":4}],11:[function(require,module,exports){\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Module of mixed-in functions shared between node and client code\n */\nvar isObject = require('./is-object');\n/**\n * Expose `RequestBase`.\n */\n\n\nmodule.exports = RequestBase;\n/**\n * Initialize a new `RequestBase`.\n *\n * @api public\n */\n\nfunction RequestBase(object) {\n if (object) return mixin(object);\n}\n/**\n * Mixin the prototype properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\n\nfunction mixin(object) {\n for (var key in RequestBase.prototype) {\n if (Object.prototype.hasOwnProperty.call(RequestBase.prototype, key)) object[key] = RequestBase.prototype[key];\n }\n\n return object;\n}\n/**\n * Clear previous timeout.\n *\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.clearTimeout = function () {\n clearTimeout(this._timer);\n clearTimeout(this._responseTimeoutTimer);\n clearTimeout(this._uploadTimeoutTimer);\n delete this._timer;\n delete this._responseTimeoutTimer;\n delete this._uploadTimeoutTimer;\n return this;\n};\n/**\n * Override default response body parser\n *\n * This function will be called to convert incoming data into request.body\n *\n * @param {Function}\n * @api public\n */\n\n\nRequestBase.prototype.parse = function (fn) {\n this._parser = fn;\n return this;\n};\n/**\n * Set format of binary response body.\n * In browser valid formats are 'blob' and 'arraybuffer',\n * which return Blob and ArrayBuffer, respectively.\n *\n * In Node all values result in Buffer.\n *\n * Examples:\n *\n * req.get('/')\n * .responseType('blob')\n * .end(callback);\n *\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.responseType = function (value) {\n this._responseType = value;\n return this;\n};\n/**\n * Override default request body serializer\n *\n * This function will be called to convert data set via .send or .attach into payload to send\n *\n * @param {Function}\n * @api public\n */\n\n\nRequestBase.prototype.serialize = function (fn) {\n this._serializer = fn;\n return this;\n};\n/**\n * Set timeouts.\n *\n * - response timeout is time between sending request and receiving the first byte of the response. Includes DNS and connection time.\n * - deadline is the time from start of the request to receiving response body in full. If the deadline is too short large files may not load at all on slow connections.\n * - upload is the time since last bit of data was sent or received. This timeout works only if deadline timeout is off\n *\n * Value of 0 or false means no timeout.\n *\n * @param {Number|Object} ms or {response, deadline}\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.timeout = function (options) {\n if (!options || _typeof(options) !== 'object') {\n this._timeout = options;\n this._responseTimeout = 0;\n this._uploadTimeout = 0;\n return this;\n }\n\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option)) {\n switch (option) {\n case 'deadline':\n this._timeout = options.deadline;\n break;\n\n case 'response':\n this._responseTimeout = options.response;\n break;\n\n case 'upload':\n this._uploadTimeout = options.upload;\n break;\n\n default:\n console.warn('Unknown timeout option', option);\n }\n }\n }\n\n return this;\n};\n/**\n * Set number of retry attempts on error.\n *\n * Failed requests will be retried 'count' times if timeout or err.code >= 500.\n *\n * @param {Number} count\n * @param {Function} [fn]\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.retry = function (count, fn) {\n // Default to 1 if no count passed or true\n if (arguments.length === 0 || count === true) count = 1;\n if (count <= 0) count = 0;\n this._maxRetries = count;\n this._retries = 0;\n this._retryCallback = fn;\n return this;\n}; //\n// NOTE: we do not include ESOCKETTIMEDOUT because that is from `request` package\n// \n//\n// NOTE: we do not include EADDRINFO because it was removed from libuv in 2014\n// \n// \n//\n//\n// TODO: expose these as configurable defaults\n//\n\n\nvar ERROR_CODES = new Set(['ETIMEDOUT', 'ECONNRESET', 'EADDRINUSE', 'ECONNREFUSED', 'EPIPE', 'ENOTFOUND', 'ENETUNREACH', 'EAI_AGAIN']);\nvar STATUS_CODES = new Set([408, 413, 429, 500, 502, 503, 504, 521, 522, 524]); // TODO: we would need to make this easily configurable before adding it in (e.g. some might want to add POST)\n// const METHODS = new Set(['GET', 'PUT', 'HEAD', 'DELETE', 'OPTIONS', 'TRACE']);\n\n/**\n * Determine if a request should be retried.\n * (Inspired by https://github.com/sindresorhus/got#retry)\n *\n * @param {Error} err an error\n * @param {Response} [res] response\n * @returns {Boolean} if segment should be retried\n */\n\nRequestBase.prototype._shouldRetry = function (err, res) {\n if (!this._maxRetries || this._retries++ >= this._maxRetries) {\n return false;\n }\n\n if (this._retryCallback) {\n try {\n var override = this._retryCallback(err, res);\n\n if (override === true) return true;\n if (override === false) return false; // undefined falls back to defaults\n } catch (err_) {\n console.error(err_);\n }\n } // TODO: we would need to make this easily configurable before adding it in (e.g. some might want to add POST)\n\n /*\n if (\n this.req &&\n this.req.method &&\n !METHODS.has(this.req.method.toUpperCase())\n )\n return false;\n */\n\n\n if (res && res.status && STATUS_CODES.has(res.status)) return true;\n\n if (err) {\n if (err.code && ERROR_CODES.has(err.code)) return true; // Superagent timeout\n\n if (err.timeout && err.code === 'ECONNABORTED') return true;\n if (err.crossDomain) return true;\n }\n\n return false;\n};\n/**\n * Retry request\n *\n * @return {Request} for chaining\n * @api private\n */\n\n\nRequestBase.prototype._retry = function () {\n this.clearTimeout(); // node\n\n if (this.req) {\n this.req = null;\n this.req = this.request();\n }\n\n this._aborted = false;\n this.timedout = false;\n this.timedoutError = null;\n return this._end();\n};\n/**\n * Promise support\n *\n * @param {Function} resolve\n * @param {Function} [reject]\n * @return {Request}\n */\n\n\nRequestBase.prototype.then = function (resolve, reject) {\n var _this = this;\n\n if (!this._fullfilledPromise) {\n var self = this;\n\n if (this._endCalled) {\n console.warn('Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises');\n }\n\n this._fullfilledPromise = new Promise(function (resolve, reject) {\n self.on('abort', function () {\n if (_this._maxRetries && _this._maxRetries > _this._retries) {\n return;\n }\n\n if (_this.timedout && _this.timedoutError) {\n reject(_this.timedoutError);\n return;\n }\n\n var err = new Error('Aborted');\n err.code = 'ABORTED';\n err.status = _this.status;\n err.method = _this.method;\n err.url = _this.url;\n reject(err);\n });\n self.end(function (err, res) {\n if (err) reject(err);else resolve(res);\n });\n });\n }\n\n return this._fullfilledPromise.then(resolve, reject);\n};\n\nRequestBase.prototype.catch = function (cb) {\n return this.then(undefined, cb);\n};\n/**\n * Allow for extension\n */\n\n\nRequestBase.prototype.use = function (fn) {\n fn(this);\n return this;\n};\n\nRequestBase.prototype.ok = function (cb) {\n if (typeof cb !== 'function') throw new Error('Callback required');\n this._okCallback = cb;\n return this;\n};\n\nRequestBase.prototype._isResponseOK = function (res) {\n if (!res) {\n return false;\n }\n\n if (this._okCallback) {\n return this._okCallback(res);\n }\n\n return res.status >= 200 && res.status < 300;\n};\n/**\n * Get request header `field`.\n * Case-insensitive.\n *\n * @param {String} field\n * @return {String}\n * @api public\n */\n\n\nRequestBase.prototype.get = function (field) {\n return this._header[field.toLowerCase()];\n};\n/**\n * Get case-insensitive header `field` value.\n * This is a deprecated internal API. Use `.get(field)` instead.\n *\n * (getHeader is no longer used internally by the superagent code base)\n *\n * @param {String} field\n * @return {String}\n * @api private\n * @deprecated\n */\n\n\nRequestBase.prototype.getHeader = RequestBase.prototype.get;\n/**\n * Set header `field` to `val`, or multiple fields with one object.\n * Case-insensitive.\n *\n * Examples:\n *\n * req.get('/')\n * .set('Accept', 'application/json')\n * .set('X-API-Key', 'foobar')\n * .end(callback);\n *\n * req.get('/')\n * .set({ Accept: 'application/json', 'X-API-Key': 'foobar' })\n * .end(callback);\n *\n * @param {String|Object} field\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.set = function (field, value) {\n if (isObject(field)) {\n for (var key in field) {\n if (Object.prototype.hasOwnProperty.call(field, key)) this.set(key, field[key]);\n }\n\n return this;\n }\n\n this._header[field.toLowerCase()] = value;\n this.header[field] = value;\n return this;\n};\n/**\n * Remove header `field`.\n * Case-insensitive.\n *\n * Example:\n *\n * req.get('/')\n * .unset('User-Agent')\n * .end(callback);\n *\n * @param {String} field field name\n */\n\n\nRequestBase.prototype.unset = function (field) {\n delete this._header[field.toLowerCase()];\n delete this.header[field];\n return this;\n};\n/**\n * Write the field `name` and `val`, or multiple fields with one object\n * for \"multipart/form-data\" request bodies.\n *\n * ``` js\n * request.post('/upload')\n * .field('foo', 'bar')\n * .end(callback);\n *\n * request.post('/upload')\n * .field({ foo: 'bar', baz: 'qux' })\n * .end(callback);\n * ```\n *\n * @param {String|Object} name name of field\n * @param {String|Blob|File|Buffer|fs.ReadStream} val value of field\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.field = function (name, value) {\n // name should be either a string or an object.\n if (name === null || undefined === name) {\n throw new Error('.field(name, val) name can not be empty');\n }\n\n if (this._data) {\n throw new Error(\".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()\");\n }\n\n if (isObject(name)) {\n for (var key in name) {\n if (Object.prototype.hasOwnProperty.call(name, key)) this.field(key, name[key]);\n }\n\n return this;\n }\n\n if (Array.isArray(value)) {\n for (var i in value) {\n if (Object.prototype.hasOwnProperty.call(value, i)) this.field(name, value[i]);\n }\n\n return this;\n } // val should be defined now\n\n\n if (value === null || undefined === value) {\n throw new Error('.field(name, val) val can not be empty');\n }\n\n if (typeof value === 'boolean') {\n value = String(value);\n }\n\n this._getFormData().append(name, value);\n\n return this;\n};\n/**\n * Abort the request, and clear potential timeout.\n *\n * @return {Request} request\n * @api public\n */\n\n\nRequestBase.prototype.abort = function () {\n if (this._aborted) {\n return this;\n }\n\n this._aborted = true;\n if (this.xhr) this.xhr.abort(); // browser\n\n if (this.req) this.req.abort(); // node\n\n this.clearTimeout();\n this.emit('abort');\n return this;\n};\n\nRequestBase.prototype._auth = function (user, pass, options, base64Encoder) {\n switch (options.type) {\n case 'basic':\n this.set('Authorization', \"Basic \".concat(base64Encoder(\"\".concat(user, \":\").concat(pass))));\n break;\n\n case 'auto':\n this.username = user;\n this.password = pass;\n break;\n\n case 'bearer':\n // usage would be .auth(accessToken, { type: 'bearer' })\n this.set('Authorization', \"Bearer \".concat(user));\n break;\n\n default:\n break;\n }\n\n return this;\n};\n/**\n * Enable transmission of cookies with x-domain requests.\n *\n * Note that for this to work the origin must not be\n * using \"Access-Control-Allow-Origin\" with a wildcard,\n * and also must set \"Access-Control-Allow-Credentials\"\n * to \"true\".\n *\n * @api public\n */\n\n\nRequestBase.prototype.withCredentials = function (on) {\n // This is browser-only functionality. Node side is no-op.\n if (on === undefined) on = true;\n this._withCredentials = on;\n return this;\n};\n/**\n * Set the max redirects to `n`. Does nothing in browser XHR implementation.\n *\n * @param {Number} n\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.redirects = function (n) {\n this._maxRedirects = n;\n return this;\n};\n/**\n * Maximum size of buffered response body, in bytes. Counts uncompressed size.\n * Default 200MB.\n *\n * @param {Number} n number of bytes\n * @return {Request} for chaining\n */\n\n\nRequestBase.prototype.maxResponseSize = function (n) {\n if (typeof n !== 'number') {\n throw new TypeError('Invalid argument');\n }\n\n this._maxResponseSize = n;\n return this;\n};\n/**\n * Convert to a plain javascript object (not JSON string) of scalar properties.\n * Note as this method is designed to return a useful non-this value,\n * it cannot be chained.\n *\n * @return {Object} describing method, url, and data of this request\n * @api public\n */\n\n\nRequestBase.prototype.toJSON = function () {\n return {\n method: this.method,\n url: this.url,\n data: this._data,\n headers: this._header\n };\n};\n/**\n * Send `data` as the request body, defaulting the `.type()` to \"json\" when\n * an object is given.\n *\n * Examples:\n *\n * // manual json\n * request.post('/user')\n * .type('json')\n * .send('{\"name\":\"tj\"}')\n * .end(callback)\n *\n * // auto json\n * request.post('/user')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // manual x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send('name=tj')\n * .end(callback)\n *\n * // auto x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // defaults to x-www-form-urlencoded\n * request.post('/user')\n * .send('name=tobi')\n * .send('species=ferret')\n * .end(callback)\n *\n * @param {String|Object} data\n * @return {Request} for chaining\n * @api public\n */\n// eslint-disable-next-line complexity\n\n\nRequestBase.prototype.send = function (data) {\n var isObject_ = isObject(data);\n var type = this._header['content-type'];\n\n if (this._formData) {\n throw new Error(\".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()\");\n }\n\n if (isObject_ && !this._data) {\n if (Array.isArray(data)) {\n this._data = [];\n } else if (!this._isHost(data)) {\n this._data = {};\n }\n } else if (data && this._data && this._isHost(this._data)) {\n throw new Error(\"Can't merge these send calls\");\n } // merge\n\n\n if (isObject_ && isObject(this._data)) {\n for (var key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) this._data[key] = data[key];\n }\n } else if (typeof data === 'string') {\n // default to x-www-form-urlencoded\n if (!type) this.type('form');\n type = this._header['content-type'];\n if (type) type = type.toLowerCase().trim();\n\n if (type === 'application/x-www-form-urlencoded') {\n this._data = this._data ? \"\".concat(this._data, \"&\").concat(data) : data;\n } else {\n this._data = (this._data || '') + data;\n }\n } else {\n this._data = data;\n }\n\n if (!isObject_ || this._isHost(data)) {\n return this;\n } // default to json\n\n\n if (!type) this.type('json');\n return this;\n};\n/**\n * Sort `querystring` by the sort function\n *\n *\n * Examples:\n *\n * // default order\n * request.get('/user')\n * .query('name=Nick')\n * .query('search=Manny')\n * .sortQuery()\n * .end(callback)\n *\n * // customized sort function\n * request.get('/user')\n * .query('name=Nick')\n * .query('search=Manny')\n * .sortQuery(function(a, b){\n * return a.length - b.length;\n * })\n * .end(callback)\n *\n *\n * @param {Function} sort\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.sortQuery = function (sort) {\n // _sort default to true but otherwise can be a function or boolean\n this._sort = typeof sort === 'undefined' ? true : sort;\n return this;\n};\n/**\n * Compose querystring to append to req.url\n *\n * @api private\n */\n\n\nRequestBase.prototype._finalizeQueryString = function () {\n var query = this._query.join('&');\n\n if (query) {\n this.url += (this.url.includes('?') ? '&' : '?') + query;\n }\n\n this._query.length = 0; // Makes the call idempotent\n\n if (this._sort) {\n var index = this.url.indexOf('?');\n\n if (index >= 0) {\n var queryArray = this.url.slice(index + 1).split('&');\n\n if (typeof this._sort === 'function') {\n queryArray.sort(this._sort);\n } else {\n queryArray.sort();\n }\n\n this.url = this.url.slice(0, index) + '?' + queryArray.join('&');\n }\n }\n}; // For backwards compat only\n\n\nRequestBase.prototype._appendQueryString = function () {\n console.warn('Unsupported');\n};\n/**\n * Invoke callback with timeout error.\n *\n * @api private\n */\n\n\nRequestBase.prototype._timeoutError = function (reason, timeout, errno) {\n if (this._aborted) {\n return;\n }\n\n var err = new Error(\"\".concat(reason + timeout, \"ms exceeded\"));\n err.timeout = timeout;\n err.code = 'ECONNABORTED';\n err.errno = errno;\n this.timedout = true;\n this.timedoutError = err;\n this.abort();\n this.callback(err);\n};\n\nRequestBase.prototype._setTimeouts = function () {\n var self = this; // deadline\n\n if (this._timeout && !this._timer) {\n this._timer = setTimeout(function () {\n self._timeoutError('Timeout of ', self._timeout, 'ETIME');\n }, this._timeout);\n } // response timeout\n\n\n if (this._responseTimeout && !this._responseTimeoutTimer) {\n this._responseTimeoutTimer = setTimeout(function () {\n self._timeoutError('Response timeout of ', self._responseTimeout, 'ETIMEDOUT');\n }, this._responseTimeout);\n }\n};\n\n},{\"./is-object\":9}],12:[function(require,module,exports){\n\"use strict\";\n\n/**\n * Module dependencies.\n */\nvar utils = require('./utils');\n/**\n * Expose `ResponseBase`.\n */\n\n\nmodule.exports = ResponseBase;\n/**\n * Initialize a new `ResponseBase`.\n *\n * @api public\n */\n\nfunction ResponseBase(obj) {\n if (obj) return mixin(obj);\n}\n/**\n * Mixin the prototype properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\n\nfunction mixin(obj) {\n for (var key in ResponseBase.prototype) {\n if (Object.prototype.hasOwnProperty.call(ResponseBase.prototype, key)) obj[key] = ResponseBase.prototype[key];\n }\n\n return obj;\n}\n/**\n * Get case-insensitive `field` value.\n *\n * @param {String} field\n * @return {String}\n * @api public\n */\n\n\nResponseBase.prototype.get = function (field) {\n return this.header[field.toLowerCase()];\n};\n/**\n * Set header related properties:\n *\n * - `.type` the content type without params\n *\n * A response of \"Content-Type: text/plain; charset=utf-8\"\n * will provide you with a `.type` of \"text/plain\".\n *\n * @param {Object} header\n * @api private\n */\n\n\nResponseBase.prototype._setHeaderProperties = function (header) {\n // TODO: moar!\n // TODO: make this a util\n // content-type\n var ct = header['content-type'] || '';\n this.type = utils.type(ct); // params\n\n var params = utils.params(ct);\n\n for (var key in params) {\n if (Object.prototype.hasOwnProperty.call(params, key)) this[key] = params[key];\n }\n\n this.links = {}; // links\n\n try {\n if (header.link) {\n this.links = utils.parseLinks(header.link);\n }\n } catch (_unused) {// ignore\n }\n};\n/**\n * Set flags such as `.ok` based on `status`.\n *\n * For example a 2xx response will give you a `.ok` of __true__\n * whereas 5xx will be __false__ and `.error` will be __true__. The\n * `.clientError` and `.serverError` are also available to be more\n * specific, and `.statusType` is the class of error ranging from 1..5\n * sometimes useful for mapping respond colors etc.\n *\n * \"sugar\" properties are also defined for common cases. Currently providing:\n *\n * - .noContent\n * - .badRequest\n * - .unauthorized\n * - .notAcceptable\n * - .notFound\n *\n * @param {Number} status\n * @api private\n */\n\n\nResponseBase.prototype._setStatusProperties = function (status) {\n var type = status / 100 | 0; // status / class\n\n this.statusCode = status;\n this.status = this.statusCode;\n this.statusType = type; // basics\n\n this.info = type === 1;\n this.ok = type === 2;\n this.redirect = type === 3;\n this.clientError = type === 4;\n this.serverError = type === 5;\n this.error = type === 4 || type === 5 ? this.toError() : false; // sugar\n\n this.created = status === 201;\n this.accepted = status === 202;\n this.noContent = status === 204;\n this.badRequest = status === 400;\n this.unauthorized = status === 401;\n this.notAcceptable = status === 406;\n this.forbidden = status === 403;\n this.notFound = status === 404;\n this.unprocessableEntity = status === 422;\n};\n\n},{\"./utils\":13}],13:[function(require,module,exports){\n\"use strict\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * Return the mime type for the given `str`.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\nexports.type = function (str) {\n return str.split(/ *; */).shift();\n};\n/**\n * Return header field parameters.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\n\nexports.params = function (val) {\n var obj = {};\n\n var _iterator = _createForOfIteratorHelper(val.split(/ *; */)),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var str = _step.value;\n var parts = str.split(/ *= */);\n var key = parts.shift();\n\n var _val = parts.shift();\n\n if (key && _val) obj[key] = _val;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return obj;\n};\n/**\n * Parse Link header fields.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\n\nexports.parseLinks = function (val) {\n var obj = {};\n\n var _iterator2 = _createForOfIteratorHelper(val.split(/ *, */)),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var str = _step2.value;\n var parts = str.split(/ *; */);\n var url = parts[0].slice(1, -1);\n var rel = parts[1].split(/ *= */)[1].slice(1, -1);\n obj[rel] = url;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return obj;\n};\n/**\n * Strip content related fields from `header`.\n *\n * @param {Object} header\n * @return {Object} header\n * @api private\n */\n\n\nexports.cleanHeader = function (header, changesOrigin) {\n delete header['content-type'];\n delete header['content-length'];\n delete header['transfer-encoding'];\n delete header.host; // secuirty\n\n if (changesOrigin) {\n delete header.authorization;\n delete header.cookie;\n }\n\n return header;\n};\n\n},{}]},{},[10])(10)\n});\n","import {dragElement} from './dragRecordingDiv';\r\nimport {submitJob} from \"./modzyDeepFakeModel\";\r\n\r\n\r\nlet isRecording=false;\r\nlet mainVideo = document.getElementsByClassName(\"html5-main-video\")[0];\r\nlet recordingTimeMS = 5000;\r\nlet apiKey;\r\n\r\n/**\r\n * Init extension for content page\r\n *\r\n * @param pApiKey\r\n */\r\nfunction init(pApiKey){\r\n apiKey=pApiKey;\r\n\r\n initDeepFakeButtonInPlayer();\r\n\r\n}\r\n\r\n/**\r\n * Since it sometimes takes a while to construct the gui, new player buttons are added in an interval if the right-controls are available\r\n */\r\nfunction initDeepFakeButtonInPlayer(){\r\n const buttonAvailableInterval = setInterval(function (){\r\n var animControlsButton = document.getElementsByClassName(\"ytp-right-controls\");\r\n if (animControlsButton !== undefined){\r\n if(document.getElementById(\"deepfake\") === null || document.getElementById(\"deepfake\") === undefined){\r\n var button = document.createElement('button');\r\n button.id=\"deepfake\";\r\n button.className = 'ytp-button it-player-button';\r\n button.dataset.title = \"Deepfake detection\";\r\n button.onclick = function(){startStopRecording();}\r\n animControlsButton[0].insertBefore(button, animControlsButton[0].childNodes[0]);\r\n\r\n let playerImage = new Image();\r\n playerImage.src = chrome.runtime.getURL(\"/images/logo48.png\");\r\n playerImage.onload = () => {\r\n var imgTag = document.createElement('img');\r\n imgTag.src=playerImage.src;\r\n button.appendChild(imgTag);\r\n }\r\n }\r\n clearInterval(buttonAvailableInterval);\r\n }\r\n }, 100);\r\n}\r\n\r\nfunction showVideoToCheck(){\r\n if(document.getElementById(\"captureVideo\") === null){\r\n const div = document.createElement('div');\r\n // div.style=\"position:absolute;top:100px\"\r\n div.id=\"recordingDiv\"\r\n div.innerHTML = `\r\n
Click here to move
\r\n [X]Close this window
\r\n \r\n
\r\n
\r\n Processing...
\r\n
\r\n
\r\n
\r\n

Result:


\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Video download\r\n \r\n `;\r\n document.getElementById(\"content\").append(div);\r\n\r\n var image = document.createElement(\"img\");\r\n image.src = chrome.runtime.getURL(\"images/preloader.gif\");\r\n document.getElementById(\"preload-deepfake\").appendChild(image);\r\n\r\n dragElement(div);\r\n }\r\n}\r\n\r\nfunction wait(delayInMS) {\r\n return new Promise(resolve => setTimeout(resolve, delayInMS));\r\n}\r\n\r\nfunction startStopRecording(){\r\n let recordedBlob;\r\n mainVideo = document.getElementsByClassName(\"html5-main-video\")[0];\r\n // if(!isRecording){\r\n\r\n // stop(document.getElementsByClassName(\"html5-main-video\")[0]);\r\n document.getElementById(\"content\").style.backgroundColor=\"#8b0000\";\r\n startRecording(mainVideo.captureStream(), recordingTimeMS)\r\n .then (recordedChunks => {\r\n document.getElementById(\"content\").style.backgroundColor=\"#ffffff\";\r\n showVideoToCheck();\r\n recordedBlob = new Blob(recordedChunks, { type: \"video/webm\" });\r\n recording.src = URL.createObjectURL(recordedBlob);\r\n downloadButton.href = recording.src;\r\n downloadButton.download = \"RecordedVideo.webm\";\r\n }).then(()=>{\r\n let reader = new window.FileReader();\r\n reader.readAsDataURL(recordedBlob);\r\n reader.onloadend = function () {\r\n let base64data = reader.result;\r\n submitJob(base64data, apiKey);\r\n }\r\n\r\n });\r\n\r\n\r\n // }else {\r\n // // startRecording(document.getElementsByClassName(\"html5-main-video\")[0],5000);\r\n // }\r\n // isRecording = !isRecording;\r\n}\r\n\r\nasync function startRecording(stream, lengthInMS) {\r\n var options = { mimeType: \"video/webm\" };\r\n let recorder = new MediaRecorder(stream,options);\r\n let data = [];\r\n recorder.ondataavailable = event => data.push(event.data);\r\n recorder.start();\r\n\r\n let stopped = new Promise((resolve, reject) => {\r\n recorder.onstop = resolve;\r\n recorder.onerror = event => reject(event.name);\r\n });\r\n\r\n let recorded = wait(lengthInMS).then(\r\n () => recorder.state == \"recording\" && recorder.stop()\r\n );\r\n\r\n return Promise.all([\r\n stopped,\r\n recorded\r\n ])\r\n .then(() => data);\r\n}\r\n\r\nfunction stop(stream) {\r\n stream.getTracks().forEach(track => track.stop());\r\n}\r\n\r\n\r\nwindow.addEventListener(\"onhashchange\", function() {\r\n if(!location.href.includes(\"watch\")){\r\n if(document.getElementById(\"recordingDiv\") !== null){\r\n document.getElementById(\"recordingDiv\").remove();\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Check if URL Change and remove ai processing div if visible\r\n * https://www.youtube.com -> no video watching\r\n * https://www.youtube.com/watch* -> video watching\r\n *\r\n * @type {string}\r\n */\r\nlet lastUrl = location.href;\r\nnew MutationObserver(() => {\r\n const url = location.href;\r\n if (url !== lastUrl) {\r\n lastUrl = url;\r\n onUrlChange();\r\n }\r\n}).observe(document, {subtree: true, childList: true});\r\n\r\n/**\r\n * Remove recordingDiv if we do not watch a video\r\n */\r\nfunction onUrlChange() {\r\n if(!location.href.includes(\"watch\")){\r\n if(document.getElementById(\"recordingDiv\") !== null){\r\n document.getElementById(\"recordingDiv\").remove();\r\n }\r\n }\r\n}\r\n\r\nexport {init};\r\n"],"names":["f","$222c41b52cbd7a0b$exports","define","amd","window","$parcel$global","self","this","superagent","r1","e","n1","t","o","i","c","undefined","u","a","Error","code","p","exports","call","r","i1","length","require","module","obj","key","Emitter","prototype","mixin","addEventListener","event","fn","_callbacks","push","on","off","apply","arguments","removeListener","removeAllListeners","removeEventListener","cb","callbacks","splice","args","Array","len","slice","obj1","_typeof","Symbol","iterator","constructor","stringify","deterministicStringify","stableStringify","replacerStack","replacer","spacer","res","JSON","replaceGetterValues","arr","part","pop","Object","defineProperty","decirc","val","k","stack","parent","propertyDescriptor","getOwnPropertyDescriptor","get","configurable","value","keys","b","deterministicDecirc","tmp","toJSON","isArray","sort","compareFunction","v","replace","String","percentTwenties","util","Format","RFC1738","RFC3986","assign","default","formatters","parse","formats","utils","hasOwnProperty","decode","str","$0","numberStr","fromCharCode","parseInt","parseArrayValue","options","comma","indexOf","split","parseKeys","givenKey","valuesParsed","allowDots","child","segment","depth","exec","index","plainObjects","has","allowPrototypes","chain","leaf","root","parseArrays","concat","create","cleanRoot","charAt","isNaN","arrayLimit","parseObject","opts","defaults","decoder","TypeError","charset","charsetSentinel","delimiter","isRegExp","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","strictNullHandling","normalizeParseOptions","tempObj","Infinity","cleanStr","limit","skipIndex","parts","bracketEqualsPos","pos","maybeMap","encodedVal","combine","parseValues","newObj","merge","compact","obj2","brackets","prefix","pushToArray","valueOrArray","Date","toISOString","defaultFormat","encode","encoder","encodeValuesOnly","format","formatter","indices","serializeDate","date","toISO","stringify1","object","generateArrayPrefix","skipNulls","filter","isBuffer","objKeys","values","value1","keyPrefix","addQueryPrefix","normalizeStringifyOptions","arrayFormat","arrayPrefixGenerators","joined","join","obj3","array","toString","toUpperCase","arrayToObject","source","target","reduce","acc","queue","prop","refs","item","j","compacted","compactQueue","strWithoutPlus","unescape","decodeURIComponent","defaultEncoder","string","escape","charCodeAt","out","hexTable","mapped","mergeTarget","forEach","targetItem","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","minLen","n","name","test","_unsupportedIterableToArray","_nonIterableSpread","arr2","Agent","_defaults","_len","_key","_setDefaults","req","def","obj4","obj5","safeStringify","qs","RequestBase","noop","method","url","Request","end","XMLHttpRequest","location","protocol","ActiveXObject","_unused","_unused2","_unused3","s","trim","pairs","pushEncodedKeyValuePair","isObject","subkey","pair","mime","status","xhr","_setStatusProperties","headers","parseHeader","getAllResponseHeaders","header","getResponseHeader","_setHeaderProperties","text","_responseType","body","response","_parseBody","err","original","err_","rawResponse","responseType","responseText","new_err","callback","data","send","parseString","html","json","Response","request","type","_parser","isJSON","msg","auth","user","pass","_auth","query","serialize","_query","_getFormData","_formData","FormData","_shouldRetry","_retry","_callback","clearTimeout","_maxRetries","retries","_retries","emit","crossDomainError","crossDomain","agent","warn","ca","buffer","write","pipe","_endCalled","console","_end","_setUploadTimeout","_uploadTimeout","_uploadTimeoutTimer","setTimeout","_timeoutError","_aborted","getXHR","_data","_setTimeouts","onreadystatechange","readyState","_responseTimeoutTimer","_unused5","timedout","handleProgress","direction","total","percent","loaded","hasListeners","username","password","open","_withCredentials","withCredentials","_isHost","field","setRequestHeader","toLowerCase","del","delete","post","obj6","_serializer","timeout","_timeout","_responseTimeout","option","deadline","upload","retry","count","_retryCallback","ERROR_CODES","Set","error","STATUS_CODES","timedoutError","then","resolve1","reject1","_this","_fullfilledPromise","ok","_okCallback","_isResponseOK","_header","set","unset","base64Encoder","isObject_","sortQuery","_sort","_finalizeQueryString","includes","queryArray","errno","abort","ct","params","links","link","parseLinks","statusCode","statusType","info","redirect","clientError","toError","accepted","noContent","notAcceptable","forbidden","_createForOfIteratorHelper","allowArrayLike","it","F","_e","normalCompletion","didErr","step","next","done","_e2","return","_step","_iterator","shift","_val","document","getElementsByClassName"],"version":3,"file":"deepfake.js.map"} \ No newline at end of file +{"mappings":"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","sources":["node_modules/superagent/dist/superagent.js","src/deepfake.js"],"sourcesContent":["(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.superagent = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i b) {\n return 1;\n }\n\n return 0;\n}\n\nfunction deterministicStringify(obj, replacer, spacer) {\n var tmp = deterministicDecirc(obj, '', [], undefined) || obj;\n var res;\n\n if (replacerStack.length === 0) {\n res = JSON.stringify(tmp, replacer, spacer);\n } else {\n res = JSON.stringify(tmp, replaceGetterValues(replacer), spacer);\n }\n\n while (arr.length !== 0) {\n var part = arr.pop();\n\n if (part.length === 4) {\n Object.defineProperty(part[0], part[1], part[3]);\n } else {\n part[0][part[1]] = part[2];\n }\n }\n\n return res;\n}\n\nfunction deterministicDecirc(val, k, stack, parent) {\n var i;\n\n if (_typeof(val) === 'object' && val !== null) {\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === val) {\n var propertyDescriptor = Object.getOwnPropertyDescriptor(parent, k);\n\n if (propertyDescriptor.get !== undefined) {\n if (propertyDescriptor.configurable) {\n Object.defineProperty(parent, k, {\n value: '[Circular]'\n });\n arr.push([parent, k, val, propertyDescriptor]);\n } else {\n replacerStack.push([val, k]);\n }\n } else {\n parent[k] = '[Circular]';\n arr.push([parent, k, val]);\n }\n\n return;\n }\n }\n\n if (typeof val.toJSON === 'function') {\n return;\n }\n\n stack.push(val); // Optimize for Arrays. Big arrays could kill the performance otherwise!\n\n if (Array.isArray(val)) {\n for (i = 0; i < val.length; i++) {\n deterministicDecirc(val[i], i, stack, val);\n }\n } else {\n // Create a temporary object in the required way\n var tmp = {};\n var keys = Object.keys(val).sort(compareFunction);\n\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n deterministicDecirc(val[key], key, stack, val);\n tmp[key] = val[key];\n }\n\n if (parent !== undefined) {\n arr.push([parent, k, val]);\n parent[k] = tmp;\n } else {\n return tmp;\n }\n }\n\n stack.pop();\n }\n} // wraps replacer function to handle values we couldn't replace\n// and mark them as [Circular]\n\n\nfunction replaceGetterValues(replacer) {\n replacer = replacer !== undefined ? replacer : function (k, v) {\n return v;\n };\n return function (key, val) {\n if (replacerStack.length > 0) {\n for (var i = 0; i < replacerStack.length; i++) {\n var part = replacerStack[i];\n\n if (part[1] === key && part[0] === val) {\n val = '[Circular]';\n replacerStack.splice(i, 1);\n break;\n }\n }\n }\n\n return replacer.call(this, key, val);\n };\n}\n\n},{}],3:[function(require,module,exports){\n'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar util = require('./utils');\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\nmodule.exports = util.assign({\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function RFC1738(value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function RFC3986(value) {\n return String(value);\n }\n }\n}, Format);\n\n},{\"./utils\":7}],4:[function(require,module,exports){\n'use strict';\n\nvar stringify = require('./stringify');\n\nvar parse = require('./parse');\n\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n\n},{\"./formats\":3,\"./parse\":5,\"./stringify\":6}],5:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function interpretNumericEntities(str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function parseArrayValue(val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n}; // This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\n\n\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\n\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n\n var i;\n var charset = options.charset;\n\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n\n var part = parts[i];\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n var key, val;\n\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(parseArrayValue(part.slice(pos + 1), options), function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n });\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function parseObject(chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n\n if (!options.parseArrays && cleanRoot === '') {\n obj = {\n 0: leaf\n };\n } else if (!isNaN(index) && root !== cleanRoot && String(index) === cleanRoot && index >= 0 && options.parseArrays && index <= options.arrayLimit) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj; // eslint-disable-line no-param-reassign\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n } // Transform dot notation to bracket notation\n\n\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey; // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g; // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key; // Stash the parent if it exists\n\n var keys = [];\n\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n } // Loop through children appending to the array until we hit depth\n\n\n var i = 0;\n\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(segment[1]);\n } // If there's a remainder, just add whatever is left\n\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: typeof opts.depth === 'number' || opts.depth === false ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {}; // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n return utils.compact(obj);\n};\n\n},{\"./utils\":7}],6:[function(require,module,exports){\n'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar utils = require('./utils');\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\n\nvar pushToArray = function pushToArray(arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string' || typeof v === 'number' || typeof v === 'boolean' || _typeof(v) === 'symbol' || typeof v === 'bigint';\n};\n\nvar stringify = function stringify(object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter, encodeValuesOnly, charset) {\n var obj = object;\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n\n return value;\n }).join(',');\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key') : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key');\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value'))];\n }\n\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n\n if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n var value = obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj) ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix : prefix + (allowDots ? '.' + key : '[' + key + ']');\n pushToArray(values, stringify(value, keyPrefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter, encodeValuesOnly, charset));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n\n format = opts.format;\n }\n\n var formatter = formats.formatters[format];\n var filter = defaults.filter;\n\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (_typeof(obj) !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n\n pushToArray(keys, stringify(obj[key], key, generateArrayPrefix, options.strictNullHandling, options.skipNulls, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.formatter, options.encodeValuesOnly, options.charset));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n\n},{\"./formats\":3,\"./utils\":7}],7:[function(require,module,exports){\n'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = function () {\n var array = [];\n\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}();\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (_typeof(source) !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && _typeof(target) === 'object') {\n if (options && (options.plainObjects || options.allowPrototypes) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || _typeof(target) !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n\n if (targetItem && _typeof(targetItem) === 'object' && item && _typeof(item) === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function decode(str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n } // utf-8\n\n\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n\n if (_typeof(str) === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || c >= 0x30 && c <= 0x39 // 0-9\n || c >= 0x41 && c <= 0x5A // a-z\n || c >= 0x61 && c <= 0x7A // A-Z\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | c >> 6] + hexTable[0x80 | c & 0x3F]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | c >> 12] + hexTable[0x80 | c >> 6 & 0x3F] + hexTable[0x80 | c & 0x3F]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + ((c & 0x3FF) << 10 | string.charCodeAt(i) & 0x3FF);\n out += hexTable[0xF0 | c >> 18] + hexTable[0x80 | c >> 12 & 0x3F] + hexTable[0x80 | c >> 6 & 0x3F] + hexTable[0x80 | c & 0x3F];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{\n obj: {\n o: value\n },\n prop: 'o'\n }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n var keys = Object.keys(obj);\n\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n\n if (_typeof(val) === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({\n obj: obj,\n prop: key\n });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || _typeof(obj) !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n\n return mapped;\n }\n\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n\n},{}],8:[function(require,module,exports){\n\"use strict\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction Agent() {\n this._defaults = [];\n}\n\n['use', 'on', 'once', 'set', 'query', 'type', 'accept', 'auth', 'withCredentials', 'sortQuery', 'retry', 'ok', 'redirects', 'timeout', 'buffer', 'serialize', 'parse', 'ca', 'key', 'pfx', 'cert', 'disableTLSCerts'].forEach(function (fn) {\n // Default setting for all requests from this agent\n Agent.prototype[fn] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n this._defaults.push({\n fn: fn,\n args: args\n });\n\n return this;\n };\n});\n\nAgent.prototype._setDefaults = function (req) {\n this._defaults.forEach(function (def) {\n req[def.fn].apply(req, _toConsumableArray(def.args));\n });\n};\n\nmodule.exports = Agent;\n\n},{}],9:[function(require,module,exports){\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Check if `obj` is an object.\n *\n * @param {Object} obj\n * @return {Boolean}\n * @api private\n */\nfunction isObject(obj) {\n return obj !== null && _typeof(obj) === 'object';\n}\n\nmodule.exports = isObject;\n\n},{}],10:[function(require,module,exports){\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Root reference for iframes.\n */\nvar root;\n\nif (typeof window !== 'undefined') {\n // Browser window\n root = window;\n} else if (typeof self === 'undefined') {\n // Other environments\n console.warn('Using browser-only version of superagent in non-browser environment');\n root = void 0;\n} else {\n // Web Worker\n root = self;\n}\n\nvar Emitter = require('component-emitter');\n\nvar safeStringify = require('fast-safe-stringify');\n\nvar qs = require('qs');\n\nvar RequestBase = require('./request-base');\n\nvar isObject = require('./is-object');\n\nvar ResponseBase = require('./response-base');\n\nvar Agent = require('./agent-base');\n/**\n * Noop.\n */\n\n\nfunction noop() {}\n/**\n * Expose `request`.\n */\n\n\nmodule.exports = function (method, url) {\n // callback\n if (typeof url === 'function') {\n return new exports.Request('GET', method).end(url);\n } // url first\n\n\n if (arguments.length === 1) {\n return new exports.Request('GET', method);\n }\n\n return new exports.Request(method, url);\n};\n\nexports = module.exports;\nvar request = exports;\nexports.Request = Request;\n/**\n * Determine XHR.\n */\n\nrequest.getXHR = function () {\n if (root.XMLHttpRequest && (!root.location || root.location.protocol !== 'file:' || !root.ActiveXObject)) {\n return new XMLHttpRequest();\n }\n\n try {\n return new ActiveXObject('Microsoft.XMLHTTP');\n } catch (_unused) {}\n\n try {\n return new ActiveXObject('Msxml2.XMLHTTP.6.0');\n } catch (_unused2) {}\n\n try {\n return new ActiveXObject('Msxml2.XMLHTTP.3.0');\n } catch (_unused3) {}\n\n try {\n return new ActiveXObject('Msxml2.XMLHTTP');\n } catch (_unused4) {}\n\n throw new Error('Browser-only version of superagent could not find XHR');\n};\n/**\n * Removes leading and trailing whitespace, added to support IE.\n *\n * @param {String} s\n * @return {String}\n * @api private\n */\n\n\nvar trim = ''.trim ? function (s) {\n return s.trim();\n} : function (s) {\n return s.replace(/(^\\s*|\\s*$)/g, '');\n};\n/**\n * Serialize the given `obj`.\n *\n * @param {Object} obj\n * @return {String}\n * @api private\n */\n\nfunction serialize(obj) {\n if (!isObject(obj)) return obj;\n var pairs = [];\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) pushEncodedKeyValuePair(pairs, key, obj[key]);\n }\n\n return pairs.join('&');\n}\n/**\n * Helps 'serialize' with serializing arrays.\n * Mutates the pairs array.\n *\n * @param {Array} pairs\n * @param {String} key\n * @param {Mixed} val\n */\n\n\nfunction pushEncodedKeyValuePair(pairs, key, val) {\n if (val === undefined) return;\n\n if (val === null) {\n pairs.push(encodeURI(key));\n return;\n }\n\n if (Array.isArray(val)) {\n val.forEach(function (v) {\n pushEncodedKeyValuePair(pairs, key, v);\n });\n } else if (isObject(val)) {\n for (var subkey in val) {\n if (Object.prototype.hasOwnProperty.call(val, subkey)) pushEncodedKeyValuePair(pairs, \"\".concat(key, \"[\").concat(subkey, \"]\"), val[subkey]);\n }\n } else {\n pairs.push(encodeURI(key) + '=' + encodeURIComponent(val));\n }\n}\n/**\n * Expose serialization method.\n */\n\n\nrequest.serializeObject = serialize;\n/**\n * Parse the given x-www-form-urlencoded `str`.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseString(str) {\n var obj = {};\n var pairs = str.split('&');\n var pair;\n var pos;\n\n for (var i = 0, len = pairs.length; i < len; ++i) {\n pair = pairs[i];\n pos = pair.indexOf('=');\n\n if (pos === -1) {\n obj[decodeURIComponent(pair)] = '';\n } else {\n obj[decodeURIComponent(pair.slice(0, pos))] = decodeURIComponent(pair.slice(pos + 1));\n }\n }\n\n return obj;\n}\n/**\n * Expose parser.\n */\n\n\nrequest.parseString = parseString;\n/**\n * Default MIME type map.\n *\n * superagent.types.xml = 'application/xml';\n *\n */\n\nrequest.types = {\n html: 'text/html',\n json: 'application/json',\n xml: 'text/xml',\n urlencoded: 'application/x-www-form-urlencoded',\n form: 'application/x-www-form-urlencoded',\n 'form-data': 'application/x-www-form-urlencoded'\n};\n/**\n * Default serialization map.\n *\n * superagent.serialize['application/xml'] = function(obj){\n * return 'generated xml here';\n * };\n *\n */\n\nrequest.serialize = {\n 'application/x-www-form-urlencoded': qs.stringify,\n 'application/json': safeStringify\n};\n/**\n * Default parsers.\n *\n * superagent.parse['application/xml'] = function(str){\n * return { object parsed from str };\n * };\n *\n */\n\nrequest.parse = {\n 'application/x-www-form-urlencoded': parseString,\n 'application/json': JSON.parse\n};\n/**\n * Parse the given header `str` into\n * an object containing the mapped fields.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseHeader(str) {\n var lines = str.split(/\\r?\\n/);\n var fields = {};\n var index;\n var line;\n var field;\n var val;\n\n for (var i = 0, len = lines.length; i < len; ++i) {\n line = lines[i];\n index = line.indexOf(':');\n\n if (index === -1) {\n // could be empty line, just skip it\n continue;\n }\n\n field = line.slice(0, index).toLowerCase();\n val = trim(line.slice(index + 1));\n fields[field] = val;\n }\n\n return fields;\n}\n/**\n * Check if `mime` is json or has +json structured syntax suffix.\n *\n * @param {String} mime\n * @return {Boolean}\n * @api private\n */\n\n\nfunction isJSON(mime) {\n // should match /json or +json\n // but not /json-seq\n return /[/+]json($|[^-\\w])/i.test(mime);\n}\n/**\n * Initialize a new `Response` with the given `xhr`.\n *\n * - set flags (.ok, .error, etc)\n * - parse header\n *\n * Examples:\n *\n * Aliasing `superagent` as `request` is nice:\n *\n * request = superagent;\n *\n * We can use the promise-like API, or pass callbacks:\n *\n * request.get('/').end(function(res){});\n * request.get('/', function(res){});\n *\n * Sending data can be chained:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' })\n * .end(function(res){});\n *\n * Or passed to `.send()`:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' }, function(res){});\n *\n * Or passed to `.post()`:\n *\n * request\n * .post('/user', { name: 'tj' })\n * .end(function(res){});\n *\n * Or further reduced to a single call for simple cases:\n *\n * request\n * .post('/user', { name: 'tj' }, function(res){});\n *\n * @param {XMLHTTPRequest} xhr\n * @param {Object} options\n * @api private\n */\n\n\nfunction Response(req) {\n this.req = req;\n this.xhr = this.req.xhr; // responseText is accessible only if responseType is '' or 'text' and on older browsers\n\n this.text = this.req.method !== 'HEAD' && (this.xhr.responseType === '' || this.xhr.responseType === 'text') || typeof this.xhr.responseType === 'undefined' ? this.xhr.responseText : null;\n this.statusText = this.req.xhr.statusText;\n var status = this.xhr.status; // handle IE9 bug: http://stackoverflow.com/questions/10046972/msie-returns-status-code-of-1223-for-ajax-request\n\n if (status === 1223) {\n status = 204;\n }\n\n this._setStatusProperties(status);\n\n this.headers = parseHeader(this.xhr.getAllResponseHeaders());\n this.header = this.headers; // getAllResponseHeaders sometimes falsely returns \"\" for CORS requests, but\n // getResponseHeader still works. so we get content-type even if getting\n // other headers fails.\n\n this.header['content-type'] = this.xhr.getResponseHeader('content-type');\n\n this._setHeaderProperties(this.header);\n\n if (this.text === null && req._responseType) {\n this.body = this.xhr.response;\n } else {\n this.body = this.req.method === 'HEAD' ? null : this._parseBody(this.text ? this.text : this.xhr.response);\n }\n} // eslint-disable-next-line new-cap\n\n\nResponseBase(Response.prototype);\n/**\n * Parse the given body `str`.\n *\n * Used for auto-parsing of bodies. Parsers\n * are defined on the `superagent.parse` object.\n *\n * @param {String} str\n * @return {Mixed}\n * @api private\n */\n\nResponse.prototype._parseBody = function (str) {\n var parse = request.parse[this.type];\n\n if (this.req._parser) {\n return this.req._parser(this, str);\n }\n\n if (!parse && isJSON(this.type)) {\n parse = request.parse['application/json'];\n }\n\n return parse && str && (str.length > 0 || str instanceof Object) ? parse(str) : null;\n};\n/**\n * Return an `Error` representative of this response.\n *\n * @return {Error}\n * @api public\n */\n\n\nResponse.prototype.toError = function () {\n var req = this.req;\n var method = req.method;\n var url = req.url;\n var msg = \"cannot \".concat(method, \" \").concat(url, \" (\").concat(this.status, \")\");\n var err = new Error(msg);\n err.status = this.status;\n err.method = method;\n err.url = url;\n return err;\n};\n/**\n * Expose `Response`.\n */\n\n\nrequest.Response = Response;\n/**\n * Initialize a new `Request` with the given `method` and `url`.\n *\n * @param {String} method\n * @param {String} url\n * @api public\n */\n\nfunction Request(method, url) {\n var self = this;\n this._query = this._query || [];\n this.method = method;\n this.url = url;\n this.header = {}; // preserves header name case\n\n this._header = {}; // coerces header names to lowercase\n\n this.on('end', function () {\n var err = null;\n var res = null;\n\n try {\n res = new Response(self);\n } catch (err_) {\n err = new Error('Parser is unable to parse the response');\n err.parse = true;\n err.original = err_; // issue #675: return the raw response if the response parsing fails\n\n if (self.xhr) {\n // ie9 doesn't have 'response' property\n err.rawResponse = typeof self.xhr.responseType === 'undefined' ? self.xhr.responseText : self.xhr.response; // issue #876: return the http status code if the response parsing fails\n\n err.status = self.xhr.status ? self.xhr.status : null;\n err.statusCode = err.status; // backwards-compat only\n } else {\n err.rawResponse = null;\n err.status = null;\n }\n\n return self.callback(err);\n }\n\n self.emit('response', res);\n var new_err;\n\n try {\n if (!self._isResponseOK(res)) {\n new_err = new Error(res.statusText || res.text || 'Unsuccessful HTTP response');\n }\n } catch (err_) {\n new_err = err_; // ok() callback can throw\n } // #1000 don't catch errors from the callback to avoid double calling it\n\n\n if (new_err) {\n new_err.original = err;\n new_err.response = res;\n new_err.status = res.status;\n self.callback(new_err, res);\n } else {\n self.callback(null, res);\n }\n });\n}\n/**\n * Mixin `Emitter` and `RequestBase`.\n */\n// eslint-disable-next-line new-cap\n\n\nEmitter(Request.prototype); // eslint-disable-next-line new-cap\n\nRequestBase(Request.prototype);\n/**\n * Set Content-Type to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.xml = 'application/xml';\n *\n * request.post('/')\n * .type('xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * request.post('/')\n * .type('application/xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * @param {String} type\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.type = function (type) {\n this.set('Content-Type', request.types[type] || type);\n return this;\n};\n/**\n * Set Accept to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.json = 'application/json';\n *\n * request.get('/agent')\n * .accept('json')\n * .end(callback);\n *\n * request.get('/agent')\n * .accept('application/json')\n * .end(callback);\n *\n * @param {String} accept\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.accept = function (type) {\n this.set('Accept', request.types[type] || type);\n return this;\n};\n/**\n * Set Authorization field value with `user` and `pass`.\n *\n * @param {String} user\n * @param {String} [pass] optional in case of using 'bearer' as type\n * @param {Object} options with 'type' property 'auto', 'basic' or 'bearer' (default 'basic')\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.auth = function (user, pass, options) {\n if (arguments.length === 1) pass = '';\n\n if (_typeof(pass) === 'object' && pass !== null) {\n // pass is optional and can be replaced with options\n options = pass;\n pass = '';\n }\n\n if (!options) {\n options = {\n type: typeof btoa === 'function' ? 'basic' : 'auto'\n };\n }\n\n var encoder = function encoder(string) {\n if (typeof btoa === 'function') {\n return btoa(string);\n }\n\n throw new Error('Cannot use basic auth, btoa is not a function');\n };\n\n return this._auth(user, pass, options, encoder);\n};\n/**\n * Add query-string `val`.\n *\n * Examples:\n *\n * request.get('/shoes')\n * .query('size=10')\n * .query({ color: 'blue' })\n *\n * @param {Object|String} val\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.query = function (val) {\n if (typeof val !== 'string') val = serialize(val);\n if (val) this._query.push(val);\n return this;\n};\n/**\n * Queue the given `file` as an attachment to the specified `field`,\n * with optional `options` (or filename).\n *\n * ``` js\n * request.post('/upload')\n * .attach('content', new Blob(['hey!'], { type: \"text/html\"}))\n * .end(callback);\n * ```\n *\n * @param {String} field\n * @param {Blob|File} file\n * @param {String|Object} options\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.attach = function (field, file, options) {\n if (file) {\n if (this._data) {\n throw new Error(\"superagent can't mix .send() and .attach()\");\n }\n\n this._getFormData().append(field, file, options || file.name);\n }\n\n return this;\n};\n\nRequest.prototype._getFormData = function () {\n if (!this._formData) {\n this._formData = new root.FormData();\n }\n\n return this._formData;\n};\n/**\n * Invoke the callback with `err` and `res`\n * and handle arity check.\n *\n * @param {Error} err\n * @param {Response} res\n * @api private\n */\n\n\nRequest.prototype.callback = function (err, res) {\n if (this._shouldRetry(err, res)) {\n return this._retry();\n }\n\n var fn = this._callback;\n this.clearTimeout();\n\n if (err) {\n if (this._maxRetries) err.retries = this._retries - 1;\n this.emit('error', err);\n }\n\n fn(err, res);\n};\n/**\n * Invoke callback with x-domain error.\n *\n * @api private\n */\n\n\nRequest.prototype.crossDomainError = function () {\n var err = new Error('Request has been terminated\\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.');\n err.crossDomain = true;\n err.status = this.status;\n err.method = this.method;\n err.url = this.url;\n this.callback(err);\n}; // This only warns, because the request is still likely to work\n\n\nRequest.prototype.agent = function () {\n console.warn('This is not supported in browser version of superagent');\n return this;\n};\n\nRequest.prototype.ca = Request.prototype.agent;\nRequest.prototype.buffer = Request.prototype.ca; // This throws, because it can't send/receive data as expected\n\nRequest.prototype.write = function () {\n throw new Error('Streaming is not supported in browser version of superagent');\n};\n\nRequest.prototype.pipe = Request.prototype.write;\n/**\n * Check if `obj` is a host object,\n * we don't want to serialize these :)\n *\n * @param {Object} obj host object\n * @return {Boolean} is a host object\n * @api private\n */\n\nRequest.prototype._isHost = function (obj) {\n // Native objects stringify to [object File], [object Blob], [object FormData], etc.\n return obj && _typeof(obj) === 'object' && !Array.isArray(obj) && Object.prototype.toString.call(obj) !== '[object Object]';\n};\n/**\n * Initiate request, invoking callback `fn(res)`\n * with an instanceof `Response`.\n *\n * @param {Function} fn\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.end = function (fn) {\n if (this._endCalled) {\n console.warn('Warning: .end() was called twice. This is not supported in superagent');\n }\n\n this._endCalled = true; // store callback\n\n this._callback = fn || noop; // querystring\n\n this._finalizeQueryString();\n\n this._end();\n};\n\nRequest.prototype._setUploadTimeout = function () {\n var self = this; // upload timeout it's wokrs only if deadline timeout is off\n\n if (this._uploadTimeout && !this._uploadTimeoutTimer) {\n this._uploadTimeoutTimer = setTimeout(function () {\n self._timeoutError('Upload timeout of ', self._uploadTimeout, 'ETIMEDOUT');\n }, this._uploadTimeout);\n }\n}; // eslint-disable-next-line complexity\n\n\nRequest.prototype._end = function () {\n if (this._aborted) return this.callback(new Error('The request has been aborted even before .end() was called'));\n var self = this;\n this.xhr = request.getXHR();\n var xhr = this.xhr;\n var data = this._formData || this._data;\n\n this._setTimeouts(); // state change\n\n\n xhr.onreadystatechange = function () {\n var readyState = xhr.readyState;\n\n if (readyState >= 2 && self._responseTimeoutTimer) {\n clearTimeout(self._responseTimeoutTimer);\n }\n\n if (readyState !== 4) {\n return;\n } // In IE9, reads to any property (e.g. status) off of an aborted XHR will\n // result in the error \"Could not complete the operation due to error c00c023f\"\n\n\n var status;\n\n try {\n status = xhr.status;\n } catch (_unused5) {\n status = 0;\n }\n\n if (!status) {\n if (self.timedout || self._aborted) return;\n return self.crossDomainError();\n }\n\n self.emit('end');\n }; // progress\n\n\n var handleProgress = function handleProgress(direction, e) {\n if (e.total > 0) {\n e.percent = e.loaded / e.total * 100;\n\n if (e.percent === 100) {\n clearTimeout(self._uploadTimeoutTimer);\n }\n }\n\n e.direction = direction;\n self.emit('progress', e);\n };\n\n if (this.hasListeners('progress')) {\n try {\n xhr.addEventListener('progress', handleProgress.bind(null, 'download'));\n\n if (xhr.upload) {\n xhr.upload.addEventListener('progress', handleProgress.bind(null, 'upload'));\n }\n } catch (_unused6) {// Accessing xhr.upload fails in IE from a web worker, so just pretend it doesn't exist.\n // Reported here:\n // https://connect.microsoft.com/IE/feedback/details/837245/xmlhttprequest-upload-throws-invalid-argument-when-used-from-web-worker-context\n }\n }\n\n if (xhr.upload) {\n this._setUploadTimeout();\n } // initiate request\n\n\n try {\n if (this.username && this.password) {\n xhr.open(this.method, this.url, true, this.username, this.password);\n } else {\n xhr.open(this.method, this.url, true);\n }\n } catch (err) {\n // see #1149\n return this.callback(err);\n } // CORS\n\n\n if (this._withCredentials) xhr.withCredentials = true; // body\n\n if (!this._formData && this.method !== 'GET' && this.method !== 'HEAD' && typeof data !== 'string' && !this._isHost(data)) {\n // serialize stuff\n var contentType = this._header['content-type'];\n\n var _serialize = this._serializer || request.serialize[contentType ? contentType.split(';')[0] : ''];\n\n if (!_serialize && isJSON(contentType)) {\n _serialize = request.serialize['application/json'];\n }\n\n if (_serialize) data = _serialize(data);\n } // set header fields\n\n\n for (var field in this.header) {\n if (this.header[field] === null) continue;\n if (Object.prototype.hasOwnProperty.call(this.header, field)) xhr.setRequestHeader(field, this.header[field]);\n }\n\n if (this._responseType) {\n xhr.responseType = this._responseType;\n } // send stuff\n\n\n this.emit('request', this); // IE11 xhr.send(undefined) sends 'undefined' string as POST payload (instead of nothing)\n // We need null here if data is undefined\n\n xhr.send(typeof data === 'undefined' ? null : data);\n};\n\nrequest.agent = function () {\n return new Agent();\n};\n\n['GET', 'POST', 'OPTIONS', 'PATCH', 'PUT', 'DELETE'].forEach(function (method) {\n Agent.prototype[method.toLowerCase()] = function (url, fn) {\n var req = new request.Request(method, url);\n\n this._setDefaults(req);\n\n if (fn) {\n req.end(fn);\n }\n\n return req;\n };\n});\nAgent.prototype.del = Agent.prototype.delete;\n/**\n * GET `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.get = function (url, data, fn) {\n var req = request('GET', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * HEAD `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.head = function (url, data, fn) {\n var req = request('HEAD', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * OPTIONS query to `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.options = function (url, data, fn) {\n var req = request('OPTIONS', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * DELETE `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nfunction del(url, data, fn) {\n var req = request('DELETE', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n}\n\nrequest.del = del;\nrequest.delete = del;\n/**\n * PATCH `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.patch = function (url, data, fn) {\n var req = request('PATCH', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * POST `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.post = function (url, data, fn) {\n var req = request('POST', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * PUT `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.put = function (url, data, fn) {\n var req = request('PUT', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n},{\"./agent-base\":8,\"./is-object\":9,\"./request-base\":11,\"./response-base\":12,\"component-emitter\":1,\"fast-safe-stringify\":2,\"qs\":4}],11:[function(require,module,exports){\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Module of mixed-in functions shared between node and client code\n */\nvar isObject = require('./is-object');\n/**\n * Expose `RequestBase`.\n */\n\n\nmodule.exports = RequestBase;\n/**\n * Initialize a new `RequestBase`.\n *\n * @api public\n */\n\nfunction RequestBase(object) {\n if (object) return mixin(object);\n}\n/**\n * Mixin the prototype properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\n\nfunction mixin(object) {\n for (var key in RequestBase.prototype) {\n if (Object.prototype.hasOwnProperty.call(RequestBase.prototype, key)) object[key] = RequestBase.prototype[key];\n }\n\n return object;\n}\n/**\n * Clear previous timeout.\n *\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.clearTimeout = function () {\n clearTimeout(this._timer);\n clearTimeout(this._responseTimeoutTimer);\n clearTimeout(this._uploadTimeoutTimer);\n delete this._timer;\n delete this._responseTimeoutTimer;\n delete this._uploadTimeoutTimer;\n return this;\n};\n/**\n * Override default response body parser\n *\n * This function will be called to convert incoming data into request.body\n *\n * @param {Function}\n * @api public\n */\n\n\nRequestBase.prototype.parse = function (fn) {\n this._parser = fn;\n return this;\n};\n/**\n * Set format of binary response body.\n * In browser valid formats are 'blob' and 'arraybuffer',\n * which return Blob and ArrayBuffer, respectively.\n *\n * In Node all values result in Buffer.\n *\n * Examples:\n *\n * req.get('/')\n * .responseType('blob')\n * .end(callback);\n *\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.responseType = function (value) {\n this._responseType = value;\n return this;\n};\n/**\n * Override default request body serializer\n *\n * This function will be called to convert data set via .send or .attach into payload to send\n *\n * @param {Function}\n * @api public\n */\n\n\nRequestBase.prototype.serialize = function (fn) {\n this._serializer = fn;\n return this;\n};\n/**\n * Set timeouts.\n *\n * - response timeout is time between sending request and receiving the first byte of the response. Includes DNS and connection time.\n * - deadline is the time from start of the request to receiving response body in full. If the deadline is too short large files may not load at all on slow connections.\n * - upload is the time since last bit of data was sent or received. This timeout works only if deadline timeout is off\n *\n * Value of 0 or false means no timeout.\n *\n * @param {Number|Object} ms or {response, deadline}\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.timeout = function (options) {\n if (!options || _typeof(options) !== 'object') {\n this._timeout = options;\n this._responseTimeout = 0;\n this._uploadTimeout = 0;\n return this;\n }\n\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option)) {\n switch (option) {\n case 'deadline':\n this._timeout = options.deadline;\n break;\n\n case 'response':\n this._responseTimeout = options.response;\n break;\n\n case 'upload':\n this._uploadTimeout = options.upload;\n break;\n\n default:\n console.warn('Unknown timeout option', option);\n }\n }\n }\n\n return this;\n};\n/**\n * Set number of retry attempts on error.\n *\n * Failed requests will be retried 'count' times if timeout or err.code >= 500.\n *\n * @param {Number} count\n * @param {Function} [fn]\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.retry = function (count, fn) {\n // Default to 1 if no count passed or true\n if (arguments.length === 0 || count === true) count = 1;\n if (count <= 0) count = 0;\n this._maxRetries = count;\n this._retries = 0;\n this._retryCallback = fn;\n return this;\n}; //\n// NOTE: we do not include ESOCKETTIMEDOUT because that is from `request` package\n// \n//\n// NOTE: we do not include EADDRINFO because it was removed from libuv in 2014\n// \n// \n//\n//\n// TODO: expose these as configurable defaults\n//\n\n\nvar ERROR_CODES = new Set(['ETIMEDOUT', 'ECONNRESET', 'EADDRINUSE', 'ECONNREFUSED', 'EPIPE', 'ENOTFOUND', 'ENETUNREACH', 'EAI_AGAIN']);\nvar STATUS_CODES = new Set([408, 413, 429, 500, 502, 503, 504, 521, 522, 524]); // TODO: we would need to make this easily configurable before adding it in (e.g. some might want to add POST)\n// const METHODS = new Set(['GET', 'PUT', 'HEAD', 'DELETE', 'OPTIONS', 'TRACE']);\n\n/**\n * Determine if a request should be retried.\n * (Inspired by https://github.com/sindresorhus/got#retry)\n *\n * @param {Error} err an error\n * @param {Response} [res] response\n * @returns {Boolean} if segment should be retried\n */\n\nRequestBase.prototype._shouldRetry = function (err, res) {\n if (!this._maxRetries || this._retries++ >= this._maxRetries) {\n return false;\n }\n\n if (this._retryCallback) {\n try {\n var override = this._retryCallback(err, res);\n\n if (override === true) return true;\n if (override === false) return false; // undefined falls back to defaults\n } catch (err_) {\n console.error(err_);\n }\n } // TODO: we would need to make this easily configurable before adding it in (e.g. some might want to add POST)\n\n /*\n if (\n this.req &&\n this.req.method &&\n !METHODS.has(this.req.method.toUpperCase())\n )\n return false;\n */\n\n\n if (res && res.status && STATUS_CODES.has(res.status)) return true;\n\n if (err) {\n if (err.code && ERROR_CODES.has(err.code)) return true; // Superagent timeout\n\n if (err.timeout && err.code === 'ECONNABORTED') return true;\n if (err.crossDomain) return true;\n }\n\n return false;\n};\n/**\n * Retry request\n *\n * @return {Request} for chaining\n * @api private\n */\n\n\nRequestBase.prototype._retry = function () {\n this.clearTimeout(); // node\n\n if (this.req) {\n this.req = null;\n this.req = this.request();\n }\n\n this._aborted = false;\n this.timedout = false;\n this.timedoutError = null;\n return this._end();\n};\n/**\n * Promise support\n *\n * @param {Function} resolve\n * @param {Function} [reject]\n * @return {Request}\n */\n\n\nRequestBase.prototype.then = function (resolve, reject) {\n var _this = this;\n\n if (!this._fullfilledPromise) {\n var self = this;\n\n if (this._endCalled) {\n console.warn('Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises');\n }\n\n this._fullfilledPromise = new Promise(function (resolve, reject) {\n self.on('abort', function () {\n if (_this._maxRetries && _this._maxRetries > _this._retries) {\n return;\n }\n\n if (_this.timedout && _this.timedoutError) {\n reject(_this.timedoutError);\n return;\n }\n\n var err = new Error('Aborted');\n err.code = 'ABORTED';\n err.status = _this.status;\n err.method = _this.method;\n err.url = _this.url;\n reject(err);\n });\n self.end(function (err, res) {\n if (err) reject(err);else resolve(res);\n });\n });\n }\n\n return this._fullfilledPromise.then(resolve, reject);\n};\n\nRequestBase.prototype.catch = function (cb) {\n return this.then(undefined, cb);\n};\n/**\n * Allow for extension\n */\n\n\nRequestBase.prototype.use = function (fn) {\n fn(this);\n return this;\n};\n\nRequestBase.prototype.ok = function (cb) {\n if (typeof cb !== 'function') throw new Error('Callback required');\n this._okCallback = cb;\n return this;\n};\n\nRequestBase.prototype._isResponseOK = function (res) {\n if (!res) {\n return false;\n }\n\n if (this._okCallback) {\n return this._okCallback(res);\n }\n\n return res.status >= 200 && res.status < 300;\n};\n/**\n * Get request header `field`.\n * Case-insensitive.\n *\n * @param {String} field\n * @return {String}\n * @api public\n */\n\n\nRequestBase.prototype.get = function (field) {\n return this._header[field.toLowerCase()];\n};\n/**\n * Get case-insensitive header `field` value.\n * This is a deprecated internal API. Use `.get(field)` instead.\n *\n * (getHeader is no longer used internally by the superagent code base)\n *\n * @param {String} field\n * @return {String}\n * @api private\n * @deprecated\n */\n\n\nRequestBase.prototype.getHeader = RequestBase.prototype.get;\n/**\n * Set header `field` to `val`, or multiple fields with one object.\n * Case-insensitive.\n *\n * Examples:\n *\n * req.get('/')\n * .set('Accept', 'application/json')\n * .set('X-API-Key', 'foobar')\n * .end(callback);\n *\n * req.get('/')\n * .set({ Accept: 'application/json', 'X-API-Key': 'foobar' })\n * .end(callback);\n *\n * @param {String|Object} field\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.set = function (field, value) {\n if (isObject(field)) {\n for (var key in field) {\n if (Object.prototype.hasOwnProperty.call(field, key)) this.set(key, field[key]);\n }\n\n return this;\n }\n\n this._header[field.toLowerCase()] = value;\n this.header[field] = value;\n return this;\n};\n/**\n * Remove header `field`.\n * Case-insensitive.\n *\n * Example:\n *\n * req.get('/')\n * .unset('User-Agent')\n * .end(callback);\n *\n * @param {String} field field name\n */\n\n\nRequestBase.prototype.unset = function (field) {\n delete this._header[field.toLowerCase()];\n delete this.header[field];\n return this;\n};\n/**\n * Write the field `name` and `val`, or multiple fields with one object\n * for \"multipart/form-data\" request bodies.\n *\n * ``` js\n * request.post('/upload')\n * .field('foo', 'bar')\n * .end(callback);\n *\n * request.post('/upload')\n * .field({ foo: 'bar', baz: 'qux' })\n * .end(callback);\n * ```\n *\n * @param {String|Object} name name of field\n * @param {String|Blob|File|Buffer|fs.ReadStream} val value of field\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.field = function (name, value) {\n // name should be either a string or an object.\n if (name === null || undefined === name) {\n throw new Error('.field(name, val) name can not be empty');\n }\n\n if (this._data) {\n throw new Error(\".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()\");\n }\n\n if (isObject(name)) {\n for (var key in name) {\n if (Object.prototype.hasOwnProperty.call(name, key)) this.field(key, name[key]);\n }\n\n return this;\n }\n\n if (Array.isArray(value)) {\n for (var i in value) {\n if (Object.prototype.hasOwnProperty.call(value, i)) this.field(name, value[i]);\n }\n\n return this;\n } // val should be defined now\n\n\n if (value === null || undefined === value) {\n throw new Error('.field(name, val) val can not be empty');\n }\n\n if (typeof value === 'boolean') {\n value = String(value);\n }\n\n this._getFormData().append(name, value);\n\n return this;\n};\n/**\n * Abort the request, and clear potential timeout.\n *\n * @return {Request} request\n * @api public\n */\n\n\nRequestBase.prototype.abort = function () {\n if (this._aborted) {\n return this;\n }\n\n this._aborted = true;\n if (this.xhr) this.xhr.abort(); // browser\n\n if (this.req) this.req.abort(); // node\n\n this.clearTimeout();\n this.emit('abort');\n return this;\n};\n\nRequestBase.prototype._auth = function (user, pass, options, base64Encoder) {\n switch (options.type) {\n case 'basic':\n this.set('Authorization', \"Basic \".concat(base64Encoder(\"\".concat(user, \":\").concat(pass))));\n break;\n\n case 'auto':\n this.username = user;\n this.password = pass;\n break;\n\n case 'bearer':\n // usage would be .auth(accessToken, { type: 'bearer' })\n this.set('Authorization', \"Bearer \".concat(user));\n break;\n\n default:\n break;\n }\n\n return this;\n};\n/**\n * Enable transmission of cookies with x-domain requests.\n *\n * Note that for this to work the origin must not be\n * using \"Access-Control-Allow-Origin\" with a wildcard,\n * and also must set \"Access-Control-Allow-Credentials\"\n * to \"true\".\n *\n * @api public\n */\n\n\nRequestBase.prototype.withCredentials = function (on) {\n // This is browser-only functionality. Node side is no-op.\n if (on === undefined) on = true;\n this._withCredentials = on;\n return this;\n};\n/**\n * Set the max redirects to `n`. Does nothing in browser XHR implementation.\n *\n * @param {Number} n\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.redirects = function (n) {\n this._maxRedirects = n;\n return this;\n};\n/**\n * Maximum size of buffered response body, in bytes. Counts uncompressed size.\n * Default 200MB.\n *\n * @param {Number} n number of bytes\n * @return {Request} for chaining\n */\n\n\nRequestBase.prototype.maxResponseSize = function (n) {\n if (typeof n !== 'number') {\n throw new TypeError('Invalid argument');\n }\n\n this._maxResponseSize = n;\n return this;\n};\n/**\n * Convert to a plain javascript object (not JSON string) of scalar properties.\n * Note as this method is designed to return a useful non-this value,\n * it cannot be chained.\n *\n * @return {Object} describing method, url, and data of this request\n * @api public\n */\n\n\nRequestBase.prototype.toJSON = function () {\n return {\n method: this.method,\n url: this.url,\n data: this._data,\n headers: this._header\n };\n};\n/**\n * Send `data` as the request body, defaulting the `.type()` to \"json\" when\n * an object is given.\n *\n * Examples:\n *\n * // manual json\n * request.post('/user')\n * .type('json')\n * .send('{\"name\":\"tj\"}')\n * .end(callback)\n *\n * // auto json\n * request.post('/user')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // manual x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send('name=tj')\n * .end(callback)\n *\n * // auto x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // defaults to x-www-form-urlencoded\n * request.post('/user')\n * .send('name=tobi')\n * .send('species=ferret')\n * .end(callback)\n *\n * @param {String|Object} data\n * @return {Request} for chaining\n * @api public\n */\n// eslint-disable-next-line complexity\n\n\nRequestBase.prototype.send = function (data) {\n var isObject_ = isObject(data);\n var type = this._header['content-type'];\n\n if (this._formData) {\n throw new Error(\".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()\");\n }\n\n if (isObject_ && !this._data) {\n if (Array.isArray(data)) {\n this._data = [];\n } else if (!this._isHost(data)) {\n this._data = {};\n }\n } else if (data && this._data && this._isHost(this._data)) {\n throw new Error(\"Can't merge these send calls\");\n } // merge\n\n\n if (isObject_ && isObject(this._data)) {\n for (var key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) this._data[key] = data[key];\n }\n } else if (typeof data === 'string') {\n // default to x-www-form-urlencoded\n if (!type) this.type('form');\n type = this._header['content-type'];\n if (type) type = type.toLowerCase().trim();\n\n if (type === 'application/x-www-form-urlencoded') {\n this._data = this._data ? \"\".concat(this._data, \"&\").concat(data) : data;\n } else {\n this._data = (this._data || '') + data;\n }\n } else {\n this._data = data;\n }\n\n if (!isObject_ || this._isHost(data)) {\n return this;\n } // default to json\n\n\n if (!type) this.type('json');\n return this;\n};\n/**\n * Sort `querystring` by the sort function\n *\n *\n * Examples:\n *\n * // default order\n * request.get('/user')\n * .query('name=Nick')\n * .query('search=Manny')\n * .sortQuery()\n * .end(callback)\n *\n * // customized sort function\n * request.get('/user')\n * .query('name=Nick')\n * .query('search=Manny')\n * .sortQuery(function(a, b){\n * return a.length - b.length;\n * })\n * .end(callback)\n *\n *\n * @param {Function} sort\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.sortQuery = function (sort) {\n // _sort default to true but otherwise can be a function or boolean\n this._sort = typeof sort === 'undefined' ? true : sort;\n return this;\n};\n/**\n * Compose querystring to append to req.url\n *\n * @api private\n */\n\n\nRequestBase.prototype._finalizeQueryString = function () {\n var query = this._query.join('&');\n\n if (query) {\n this.url += (this.url.includes('?') ? '&' : '?') + query;\n }\n\n this._query.length = 0; // Makes the call idempotent\n\n if (this._sort) {\n var index = this.url.indexOf('?');\n\n if (index >= 0) {\n var queryArray = this.url.slice(index + 1).split('&');\n\n if (typeof this._sort === 'function') {\n queryArray.sort(this._sort);\n } else {\n queryArray.sort();\n }\n\n this.url = this.url.slice(0, index) + '?' + queryArray.join('&');\n }\n }\n}; // For backwards compat only\n\n\nRequestBase.prototype._appendQueryString = function () {\n console.warn('Unsupported');\n};\n/**\n * Invoke callback with timeout error.\n *\n * @api private\n */\n\n\nRequestBase.prototype._timeoutError = function (reason, timeout, errno) {\n if (this._aborted) {\n return;\n }\n\n var err = new Error(\"\".concat(reason + timeout, \"ms exceeded\"));\n err.timeout = timeout;\n err.code = 'ECONNABORTED';\n err.errno = errno;\n this.timedout = true;\n this.timedoutError = err;\n this.abort();\n this.callback(err);\n};\n\nRequestBase.prototype._setTimeouts = function () {\n var self = this; // deadline\n\n if (this._timeout && !this._timer) {\n this._timer = setTimeout(function () {\n self._timeoutError('Timeout of ', self._timeout, 'ETIME');\n }, this._timeout);\n } // response timeout\n\n\n if (this._responseTimeout && !this._responseTimeoutTimer) {\n this._responseTimeoutTimer = setTimeout(function () {\n self._timeoutError('Response timeout of ', self._responseTimeout, 'ETIMEDOUT');\n }, this._responseTimeout);\n }\n};\n\n},{\"./is-object\":9}],12:[function(require,module,exports){\n\"use strict\";\n\n/**\n * Module dependencies.\n */\nvar utils = require('./utils');\n/**\n * Expose `ResponseBase`.\n */\n\n\nmodule.exports = ResponseBase;\n/**\n * Initialize a new `ResponseBase`.\n *\n * @api public\n */\n\nfunction ResponseBase(obj) {\n if (obj) return mixin(obj);\n}\n/**\n * Mixin the prototype properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\n\nfunction mixin(obj) {\n for (var key in ResponseBase.prototype) {\n if (Object.prototype.hasOwnProperty.call(ResponseBase.prototype, key)) obj[key] = ResponseBase.prototype[key];\n }\n\n return obj;\n}\n/**\n * Get case-insensitive `field` value.\n *\n * @param {String} field\n * @return {String}\n * @api public\n */\n\n\nResponseBase.prototype.get = function (field) {\n return this.header[field.toLowerCase()];\n};\n/**\n * Set header related properties:\n *\n * - `.type` the content type without params\n *\n * A response of \"Content-Type: text/plain; charset=utf-8\"\n * will provide you with a `.type` of \"text/plain\".\n *\n * @param {Object} header\n * @api private\n */\n\n\nResponseBase.prototype._setHeaderProperties = function (header) {\n // TODO: moar!\n // TODO: make this a util\n // content-type\n var ct = header['content-type'] || '';\n this.type = utils.type(ct); // params\n\n var params = utils.params(ct);\n\n for (var key in params) {\n if (Object.prototype.hasOwnProperty.call(params, key)) this[key] = params[key];\n }\n\n this.links = {}; // links\n\n try {\n if (header.link) {\n this.links = utils.parseLinks(header.link);\n }\n } catch (_unused) {// ignore\n }\n};\n/**\n * Set flags such as `.ok` based on `status`.\n *\n * For example a 2xx response will give you a `.ok` of __true__\n * whereas 5xx will be __false__ and `.error` will be __true__. The\n * `.clientError` and `.serverError` are also available to be more\n * specific, and `.statusType` is the class of error ranging from 1..5\n * sometimes useful for mapping respond colors etc.\n *\n * \"sugar\" properties are also defined for common cases. Currently providing:\n *\n * - .noContent\n * - .badRequest\n * - .unauthorized\n * - .notAcceptable\n * - .notFound\n *\n * @param {Number} status\n * @api private\n */\n\n\nResponseBase.prototype._setStatusProperties = function (status) {\n var type = status / 100 | 0; // status / class\n\n this.statusCode = status;\n this.status = this.statusCode;\n this.statusType = type; // basics\n\n this.info = type === 1;\n this.ok = type === 2;\n this.redirect = type === 3;\n this.clientError = type === 4;\n this.serverError = type === 5;\n this.error = type === 4 || type === 5 ? this.toError() : false; // sugar\n\n this.created = status === 201;\n this.accepted = status === 202;\n this.noContent = status === 204;\n this.badRequest = status === 400;\n this.unauthorized = status === 401;\n this.notAcceptable = status === 406;\n this.forbidden = status === 403;\n this.notFound = status === 404;\n this.unprocessableEntity = status === 422;\n};\n\n},{\"./utils\":13}],13:[function(require,module,exports){\n\"use strict\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * Return the mime type for the given `str`.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\nexports.type = function (str) {\n return str.split(/ *; */).shift();\n};\n/**\n * Return header field parameters.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\n\nexports.params = function (val) {\n var obj = {};\n\n var _iterator = _createForOfIteratorHelper(val.split(/ *; */)),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var str = _step.value;\n var parts = str.split(/ *= */);\n var key = parts.shift();\n\n var _val = parts.shift();\n\n if (key && _val) obj[key] = _val;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return obj;\n};\n/**\n * Parse Link header fields.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\n\nexports.parseLinks = function (val) {\n var obj = {};\n\n var _iterator2 = _createForOfIteratorHelper(val.split(/ *, */)),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var str = _step2.value;\n var parts = str.split(/ *; */);\n var url = parts[0].slice(1, -1);\n var rel = parts[1].split(/ *= */)[1].slice(1, -1);\n obj[rel] = url;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return obj;\n};\n/**\n * Strip content related fields from `header`.\n *\n * @param {Object} header\n * @return {Object} header\n * @api private\n */\n\n\nexports.cleanHeader = function (header, changesOrigin) {\n delete header['content-type'];\n delete header['content-length'];\n delete header['transfer-encoding'];\n delete header.host; // secuirty\n\n if (changesOrigin) {\n delete header.authorization;\n delete header.cookie;\n }\n\n return header;\n};\n\n},{}]},{},[10])(10)\n});\n","import {dragElement} from './dragRecordingDiv';\nimport {submitJob} from \"./modzyDeepFakeModel\";\n\n\nlet mainVideo = document.getElementsByClassName(\"html5-main-video\")[0];\nlet recordingTimeMS = 5000;\nlet apiKey;\n\n/**\n * Init extension for content page\n *\n * @param pApiKey\n */\nfunction init(pApiKey){\n apiKey=pApiKey;\n\n initDeepFakeButtonInPlayer();\n\n}\n\n/**\n * Since it sometimes takes a while to construct the gui, new player buttons are added in an interval if the right-controls are available\n */\nfunction initDeepFakeButtonInPlayer(){\n const buttonAvailableInterval = setInterval(function (){\n var animControlsButton = document.getElementsByClassName(\"ytp-right-controls\");\n if (animControlsButton !== undefined){\n if(document.getElementById(\"deepfake\") === null || document.getElementById(\"deepfake\") === undefined){\n var button = document.createElement('button');\n button.id=\"deepfake\";\n button.className = 'ytp-button it-player-button';\n button.dataset.title = \"Deepfake detection\";\n button.onclick = function(){startStopRecording();}\n animControlsButton[0].insertBefore(button, animControlsButton[0].childNodes[0]);\n let playerImage = new Image();\n playerImage.src = chrome.runtime.getURL(\"/images/logo48.png\");\n playerImage.onload = () => {\n var imgTag = document.createElement('img');\n imgTag.src=playerImage.src;\n button.appendChild(imgTag);\n }\n }\n clearInterval(buttonAvailableInterval);\n }\n }, 100);\n}\n\n/**\n * Show the recorded video always in a new review-div.\n */\nfunction showVideoToCheck(){\n\n removePreviewPlayerDiv(); // if we already showing a preview div, remote it\n\n const div = document.createElement('div');\n // div.style=\"position:absolute;top:100px\"\n div.id=\"recordingDiv\"\n div.innerHTML = `\n
Click here to move
\n [X]Close this window
\n \n
\n
\n Processing...
\n
\n
\n
\n

Result:


\n \n \n \n
\n
\n \n Video download\n \n `;\n document.getElementById(\"content\").append(div);\n\n var image = document.createElement(\"img\");\n image.src = chrome.runtime.getURL(\"images/preloader.gif\");\n document.getElementById(\"preload-deepfake\").appendChild(image);\n\n dragElement(div);\n}\n\n/**\n * Removes the preview player div if exists\n */\nfunction removePreviewPlayerDiv(){\n var previewPlayer = document.getElementById(\"recordingDiv\");\n if(previewPlayer !== null){\n previewPlayer.parentNode.removeChild(previewPlayer);\n }\n}\n\nfunction wait(delayInMS) {\n return new Promise(resolve => setTimeout(resolve, delayInMS));\n}\n\nfunction startStopRecording(){\n let recordedBlob;\n mainVideo = document.getElementsByClassName(\"html5-main-video\")[0];\n // if(!isRecording){\n\n // stop(document.getElementsByClassName(\"html5-main-video\")[0]);\n document.getElementById(\"content\").style.backgroundColor=\"#8b0000\";\n startRecording(mainVideo.captureStream(), recordingTimeMS)\n .then (recordedChunks => {\n document.getElementById(\"content\").style.backgroundColor=\"#ffffff\";\n showVideoToCheck();\n recordedBlob = new Blob(recordedChunks, { type: \"video/webm\" });\n recording.src = URL.createObjectURL(recordedBlob);\n downloadButton.href = recording.src;\n downloadButton.download = \"RecordedVideo.webm\";\n }).then(()=>{\n let reader = new window.FileReader();\n reader.readAsDataURL(recordedBlob);\n reader.onloadend = function () {\n let base64data = reader.result;\n submitJob(base64data, apiKey);\n }\n\n });\n\n\n // }else {\n // // startRecording(document.getElementsByClassName(\"html5-main-video\")[0],5000);\n // }\n // isRecording = !isRecording;\n}\n\nasync function startRecording(stream, lengthInMS) {\n var options = { mimeType: \"video/webm\" };\n let recorder = new MediaRecorder(stream,options);\n let data = [];\n recorder.ondataavailable = event => data.push(event.data);\n recorder.start();\n\n let stopped = new Promise((resolve, reject) => {\n recorder.onstop = resolve;\n recorder.onerror = event => reject(event.name);\n });\n\n let recorded = wait(lengthInMS).then(\n () => recorder.state == \"recording\" && recorder.stop()\n );\n\n return Promise.all([\n stopped,\n recorded\n ])\n .then(() => data);\n}\n\n\nwindow.addEventListener(\"onhashchange\", function() {\n if(!location.href.includes(\"watch\")){\n if(document.getElementById(\"recordingDiv\") !== null){\n document.getElementById(\"recordingDiv\").remove();\n }\n }\n});\n\n/**\n * Check if URL Change and remove ai processing div if visible\n * https://www.youtube.com -> no video watching\n * https://www.youtube.com/watch* -> video watching\n *\n * @type {string}\n */\nlet lastUrl = location.href;\nnew MutationObserver(() => {\n const url = location.href;\n if (url !== lastUrl) {\n lastUrl = url;\n onUrlChange();\n }\n}).observe(document, {subtree: true, childList: true});\n\n/**\n * Remove recordingDiv if we do not watch a video\n */\nfunction onUrlChange() {\n if(!location.href.includes(\"watch\")){\n if(document.getElementById(\"recordingDiv\") !== null){\n document.getElementById(\"recordingDiv\").remove();\n }\n }\n}\n\nexport {init};\n"],"names":["f","$d4422860d1c3abfd$exports","define","amd","window","$parcel$global","self","this","superagent","r1","e","n1","t","o","i","c","undefined","u","a","Error","code","p","exports","call","r","i1","length","require","module","obj","key","Emitter","prototype","mixin","addEventListener","event","fn","_callbacks","push","on","off","apply","arguments","removeListener","removeAllListeners","removeEventListener","cb","callbacks","splice","args","Array","len","slice","obj1","_typeof","Symbol","iterator","constructor","stringify","deterministicStringify","stableStringify","replacerStack","replacer","spacer","res","JSON","replaceGetterValues","arr","part","pop","Object","defineProperty","decirc","val","k","stack","parent","propertyDescriptor","getOwnPropertyDescriptor","get","configurable","value","keys","b","deterministicDecirc","tmp","toJSON","isArray","sort","compareFunction","v","replace","String","percentTwenties","util","Format","RFC1738","RFC3986","assign","default","formatters","parse","formats","utils","hasOwnProperty","decode","str","$0","numberStr","fromCharCode","parseInt","parseArrayValue","options","comma","indexOf","split","parseKeys","givenKey","valuesParsed","allowDots","child","segment","depth","exec","index","plainObjects","has","allowPrototypes","chain","leaf","root","parseArrays","concat","create","cleanRoot","charAt","isNaN","arrayLimit","parseObject","opts","defaults","decoder","TypeError","charset","charsetSentinel","delimiter","isRegExp","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","strictNullHandling","normalizeParseOptions","tempObj","Infinity","cleanStr","limit","skipIndex","parts","bracketEqualsPos","pos","maybeMap","encodedVal","combine","parseValues","newObj","merge","compact","obj2","brackets","prefix","pushToArray","valueOrArray","Date","toISOString","defaultFormat","encode","encoder","encodeValuesOnly","format","formatter","indices","serializeDate","date","toISO","stringify1","object","generateArrayPrefix","skipNulls","filter","isBuffer","objKeys","values","value1","keyPrefix","addQueryPrefix","normalizeStringifyOptions","arrayFormat","arrayPrefixGenerators","joined","join","obj3","array","toString","toUpperCase","arrayToObject","source","target","reduce","acc","queue","prop","refs","item","j","compacted","compactQueue","strWithoutPlus","unescape","decodeURIComponent","defaultEncoder","string","escape","charCodeAt","out","hexTable","mapped","mergeTarget","forEach","targetItem","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","minLen","n","name","test","_unsupportedIterableToArray","_nonIterableSpread","arr2","Agent","_defaults","_len","_key","_setDefaults","req","def","obj4","obj5","safeStringify","qs","RequestBase","noop","method","url","Request","end","XMLHttpRequest","location","protocol","ActiveXObject","_unused","_unused2","_unused3","s","trim","pairs","pushEncodedKeyValuePair","isObject","subkey","pair","mime","status","xhr","_setStatusProperties","headers","parseHeader","getAllResponseHeaders","header","getResponseHeader","_setHeaderProperties","text","_responseType","body","response","_parseBody","err","original","err_","rawResponse","responseType","responseText","new_err","callback","data","send","parseString","html","json","Response","request","type","_parser","isJSON","msg","auth","user","pass","_auth","query","serialize","_query","_getFormData","_formData","FormData","_shouldRetry","_retry","_callback","clearTimeout","_maxRetries","retries","_retries","emit","crossDomainError","crossDomain","agent","warn","ca","buffer","write","pipe","_endCalled","console","_end","_setUploadTimeout","_uploadTimeout","_uploadTimeoutTimer","setTimeout","_timeoutError","_aborted","getXHR","_data","_setTimeouts","onreadystatechange","readyState","_responseTimeoutTimer","_unused5","timedout","handleProgress","direction","total","percent","loaded","hasListeners","username","password","open","_withCredentials","withCredentials","_isHost","field","setRequestHeader","toLowerCase","del","delete","post","obj6","_serializer","timeout","_timeout","_responseTimeout","option","deadline","upload","retry","count","_retryCallback","ERROR_CODES","Set","error","STATUS_CODES","timedoutError","then","resolve1","reject1","_this","_fullfilledPromise","ok","_okCallback","_isResponseOK","_header","set","unset","base64Encoder","isObject_","sortQuery","_sort","_finalizeQueryString","includes","queryArray","errno","abort","ct","params","links","link","parseLinks","statusCode","statusType","info","redirect","clientError","toError","accepted","noContent","notAcceptable","forbidden","_createForOfIteratorHelper","allowArrayLike","it","F","_e","normalCompletion","didErr","step","next","done","_e2","return","_step","_iterator","shift","_val","document","getElementsByClassName","href","getElementById","remove"],"version":3,"file":"deepfake.js.map"} \ No newline at end of file diff --git a/dist/fake.b27be8b2.png b/dist/fake.b27be8b2.png deleted file mode 100644 index 6e16081..0000000 Binary files a/dist/fake.b27be8b2.png and /dev/null differ diff --git a/dist/images/check.png b/dist/images/check.png deleted file mode 100644 index a0d94c7..0000000 Binary files a/dist/images/check.png and /dev/null differ diff --git a/dist/images/fake.png b/dist/images/fake.png deleted file mode 100644 index a7e4d54..0000000 Binary files a/dist/images/fake.png and /dev/null differ diff --git a/dist/manifest.json b/dist/manifest.json index e055bfe..f525fcd 100644 --- a/dist/manifest.json +++ b/dist/manifest.json @@ -1,6 +1,6 @@ { "name": "Deepfake Detection", - "description": "AI extension for YouTube deepfake detection", + "description": "AI extension for YouTube™ deepfake detection", "version": "1.0", "manifest_version": 3, "background": { @@ -8,7 +8,7 @@ }, "content_scripts": [ { - "matches": ["https://www.youtube.com/"], + "matches": ["https://www.youtube.com/*"], "run_at": "document_end", "js": ["content.js"], "css": ["content.css"] diff --git a/dist/modzyDeepFakeModel.js.map b/dist/modzyDeepFakeModel.js.map index c656e2e..f441a29 100644 --- a/dist/modzyDeepFakeModel.js.map +++ b/dist/modzyDeepFakeModel.js.map @@ -1 +1 @@ -{"mappings":"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","sources":["node_modules/superagent/dist/superagent.js"],"sourcesContent":["(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.superagent = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i b) {\n return 1;\n }\n\n return 0;\n}\n\nfunction deterministicStringify(obj, replacer, spacer) {\n var tmp = deterministicDecirc(obj, '', [], undefined) || obj;\n var res;\n\n if (replacerStack.length === 0) {\n res = JSON.stringify(tmp, replacer, spacer);\n } else {\n res = JSON.stringify(tmp, replaceGetterValues(replacer), spacer);\n }\n\n while (arr.length !== 0) {\n var part = arr.pop();\n\n if (part.length === 4) {\n Object.defineProperty(part[0], part[1], part[3]);\n } else {\n part[0][part[1]] = part[2];\n }\n }\n\n return res;\n}\n\nfunction deterministicDecirc(val, k, stack, parent) {\n var i;\n\n if (_typeof(val) === 'object' && val !== null) {\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === val) {\n var propertyDescriptor = Object.getOwnPropertyDescriptor(parent, k);\n\n if (propertyDescriptor.get !== undefined) {\n if (propertyDescriptor.configurable) {\n Object.defineProperty(parent, k, {\n value: '[Circular]'\n });\n arr.push([parent, k, val, propertyDescriptor]);\n } else {\n replacerStack.push([val, k]);\n }\n } else {\n parent[k] = '[Circular]';\n arr.push([parent, k, val]);\n }\n\n return;\n }\n }\n\n if (typeof val.toJSON === 'function') {\n return;\n }\n\n stack.push(val); // Optimize for Arrays. Big arrays could kill the performance otherwise!\n\n if (Array.isArray(val)) {\n for (i = 0; i < val.length; i++) {\n deterministicDecirc(val[i], i, stack, val);\n }\n } else {\n // Create a temporary object in the required way\n var tmp = {};\n var keys = Object.keys(val).sort(compareFunction);\n\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n deterministicDecirc(val[key], key, stack, val);\n tmp[key] = val[key];\n }\n\n if (parent !== undefined) {\n arr.push([parent, k, val]);\n parent[k] = tmp;\n } else {\n return tmp;\n }\n }\n\n stack.pop();\n }\n} // wraps replacer function to handle values we couldn't replace\n// and mark them as [Circular]\n\n\nfunction replaceGetterValues(replacer) {\n replacer = replacer !== undefined ? replacer : function (k, v) {\n return v;\n };\n return function (key, val) {\n if (replacerStack.length > 0) {\n for (var i = 0; i < replacerStack.length; i++) {\n var part = replacerStack[i];\n\n if (part[1] === key && part[0] === val) {\n val = '[Circular]';\n replacerStack.splice(i, 1);\n break;\n }\n }\n }\n\n return replacer.call(this, key, val);\n };\n}\n\n},{}],3:[function(require,module,exports){\n'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar util = require('./utils');\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\nmodule.exports = util.assign({\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function RFC1738(value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function RFC3986(value) {\n return String(value);\n }\n }\n}, Format);\n\n},{\"./utils\":7}],4:[function(require,module,exports){\n'use strict';\n\nvar stringify = require('./stringify');\n\nvar parse = require('./parse');\n\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n\n},{\"./formats\":3,\"./parse\":5,\"./stringify\":6}],5:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function interpretNumericEntities(str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function parseArrayValue(val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n}; // This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\n\n\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\n\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n\n var i;\n var charset = options.charset;\n\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n\n var part = parts[i];\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n var key, val;\n\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(parseArrayValue(part.slice(pos + 1), options), function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n });\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function parseObject(chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n\n if (!options.parseArrays && cleanRoot === '') {\n obj = {\n 0: leaf\n };\n } else if (!isNaN(index) && root !== cleanRoot && String(index) === cleanRoot && index >= 0 && options.parseArrays && index <= options.arrayLimit) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj; // eslint-disable-line no-param-reassign\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n } // Transform dot notation to bracket notation\n\n\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey; // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g; // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key; // Stash the parent if it exists\n\n var keys = [];\n\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n } // Loop through children appending to the array until we hit depth\n\n\n var i = 0;\n\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(segment[1]);\n } // If there's a remainder, just add whatever is left\n\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: typeof opts.depth === 'number' || opts.depth === false ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {}; // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n return utils.compact(obj);\n};\n\n},{\"./utils\":7}],6:[function(require,module,exports){\n'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar utils = require('./utils');\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\n\nvar pushToArray = function pushToArray(arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string' || typeof v === 'number' || typeof v === 'boolean' || _typeof(v) === 'symbol' || typeof v === 'bigint';\n};\n\nvar stringify = function stringify(object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter, encodeValuesOnly, charset) {\n var obj = object;\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n\n return value;\n }).join(',');\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key') : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key');\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value'))];\n }\n\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n\n if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n var value = obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj) ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix : prefix + (allowDots ? '.' + key : '[' + key + ']');\n pushToArray(values, stringify(value, keyPrefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter, encodeValuesOnly, charset));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n\n format = opts.format;\n }\n\n var formatter = formats.formatters[format];\n var filter = defaults.filter;\n\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (_typeof(obj) !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n\n pushToArray(keys, stringify(obj[key], key, generateArrayPrefix, options.strictNullHandling, options.skipNulls, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.formatter, options.encodeValuesOnly, options.charset));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n\n},{\"./formats\":3,\"./utils\":7}],7:[function(require,module,exports){\n'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = function () {\n var array = [];\n\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}();\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (_typeof(source) !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && _typeof(target) === 'object') {\n if (options && (options.plainObjects || options.allowPrototypes) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || _typeof(target) !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n\n if (targetItem && _typeof(targetItem) === 'object' && item && _typeof(item) === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function decode(str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n } // utf-8\n\n\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n\n if (_typeof(str) === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || c >= 0x30 && c <= 0x39 // 0-9\n || c >= 0x41 && c <= 0x5A // a-z\n || c >= 0x61 && c <= 0x7A // A-Z\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | c >> 6] + hexTable[0x80 | c & 0x3F]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | c >> 12] + hexTable[0x80 | c >> 6 & 0x3F] + hexTable[0x80 | c & 0x3F]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + ((c & 0x3FF) << 10 | string.charCodeAt(i) & 0x3FF);\n out += hexTable[0xF0 | c >> 18] + hexTable[0x80 | c >> 12 & 0x3F] + hexTable[0x80 | c >> 6 & 0x3F] + hexTable[0x80 | c & 0x3F];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{\n obj: {\n o: value\n },\n prop: 'o'\n }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n var keys = Object.keys(obj);\n\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n\n if (_typeof(val) === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({\n obj: obj,\n prop: key\n });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || _typeof(obj) !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n\n return mapped;\n }\n\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n\n},{}],8:[function(require,module,exports){\n\"use strict\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction Agent() {\n this._defaults = [];\n}\n\n['use', 'on', 'once', 'set', 'query', 'type', 'accept', 'auth', 'withCredentials', 'sortQuery', 'retry', 'ok', 'redirects', 'timeout', 'buffer', 'serialize', 'parse', 'ca', 'key', 'pfx', 'cert', 'disableTLSCerts'].forEach(function (fn) {\n // Default setting for all requests from this agent\n Agent.prototype[fn] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n this._defaults.push({\n fn: fn,\n args: args\n });\n\n return this;\n };\n});\n\nAgent.prototype._setDefaults = function (req) {\n this._defaults.forEach(function (def) {\n req[def.fn].apply(req, _toConsumableArray(def.args));\n });\n};\n\nmodule.exports = Agent;\n\n},{}],9:[function(require,module,exports){\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Check if `obj` is an object.\n *\n * @param {Object} obj\n * @return {Boolean}\n * @api private\n */\nfunction isObject(obj) {\n return obj !== null && _typeof(obj) === 'object';\n}\n\nmodule.exports = isObject;\n\n},{}],10:[function(require,module,exports){\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Root reference for iframes.\n */\nvar root;\n\nif (typeof window !== 'undefined') {\n // Browser window\n root = window;\n} else if (typeof self === 'undefined') {\n // Other environments\n console.warn('Using browser-only version of superagent in non-browser environment');\n root = void 0;\n} else {\n // Web Worker\n root = self;\n}\n\nvar Emitter = require('component-emitter');\n\nvar safeStringify = require('fast-safe-stringify');\n\nvar qs = require('qs');\n\nvar RequestBase = require('./request-base');\n\nvar isObject = require('./is-object');\n\nvar ResponseBase = require('./response-base');\n\nvar Agent = require('./agent-base');\n/**\n * Noop.\n */\n\n\nfunction noop() {}\n/**\n * Expose `request`.\n */\n\n\nmodule.exports = function (method, url) {\n // callback\n if (typeof url === 'function') {\n return new exports.Request('GET', method).end(url);\n } // url first\n\n\n if (arguments.length === 1) {\n return new exports.Request('GET', method);\n }\n\n return new exports.Request(method, url);\n};\n\nexports = module.exports;\nvar request = exports;\nexports.Request = Request;\n/**\n * Determine XHR.\n */\n\nrequest.getXHR = function () {\n if (root.XMLHttpRequest && (!root.location || root.location.protocol !== 'file:' || !root.ActiveXObject)) {\n return new XMLHttpRequest();\n }\n\n try {\n return new ActiveXObject('Microsoft.XMLHTTP');\n } catch (_unused) {}\n\n try {\n return new ActiveXObject('Msxml2.XMLHTTP.6.0');\n } catch (_unused2) {}\n\n try {\n return new ActiveXObject('Msxml2.XMLHTTP.3.0');\n } catch (_unused3) {}\n\n try {\n return new ActiveXObject('Msxml2.XMLHTTP');\n } catch (_unused4) {}\n\n throw new Error('Browser-only version of superagent could not find XHR');\n};\n/**\n * Removes leading and trailing whitespace, added to support IE.\n *\n * @param {String} s\n * @return {String}\n * @api private\n */\n\n\nvar trim = ''.trim ? function (s) {\n return s.trim();\n} : function (s) {\n return s.replace(/(^\\s*|\\s*$)/g, '');\n};\n/**\n * Serialize the given `obj`.\n *\n * @param {Object} obj\n * @return {String}\n * @api private\n */\n\nfunction serialize(obj) {\n if (!isObject(obj)) return obj;\n var pairs = [];\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) pushEncodedKeyValuePair(pairs, key, obj[key]);\n }\n\n return pairs.join('&');\n}\n/**\n * Helps 'serialize' with serializing arrays.\n * Mutates the pairs array.\n *\n * @param {Array} pairs\n * @param {String} key\n * @param {Mixed} val\n */\n\n\nfunction pushEncodedKeyValuePair(pairs, key, val) {\n if (val === undefined) return;\n\n if (val === null) {\n pairs.push(encodeURI(key));\n return;\n }\n\n if (Array.isArray(val)) {\n val.forEach(function (v) {\n pushEncodedKeyValuePair(pairs, key, v);\n });\n } else if (isObject(val)) {\n for (var subkey in val) {\n if (Object.prototype.hasOwnProperty.call(val, subkey)) pushEncodedKeyValuePair(pairs, \"\".concat(key, \"[\").concat(subkey, \"]\"), val[subkey]);\n }\n } else {\n pairs.push(encodeURI(key) + '=' + encodeURIComponent(val));\n }\n}\n/**\n * Expose serialization method.\n */\n\n\nrequest.serializeObject = serialize;\n/**\n * Parse the given x-www-form-urlencoded `str`.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseString(str) {\n var obj = {};\n var pairs = str.split('&');\n var pair;\n var pos;\n\n for (var i = 0, len = pairs.length; i < len; ++i) {\n pair = pairs[i];\n pos = pair.indexOf('=');\n\n if (pos === -1) {\n obj[decodeURIComponent(pair)] = '';\n } else {\n obj[decodeURIComponent(pair.slice(0, pos))] = decodeURIComponent(pair.slice(pos + 1));\n }\n }\n\n return obj;\n}\n/**\n * Expose parser.\n */\n\n\nrequest.parseString = parseString;\n/**\n * Default MIME type map.\n *\n * superagent.types.xml = 'application/xml';\n *\n */\n\nrequest.types = {\n html: 'text/html',\n json: 'application/json',\n xml: 'text/xml',\n urlencoded: 'application/x-www-form-urlencoded',\n form: 'application/x-www-form-urlencoded',\n 'form-data': 'application/x-www-form-urlencoded'\n};\n/**\n * Default serialization map.\n *\n * superagent.serialize['application/xml'] = function(obj){\n * return 'generated xml here';\n * };\n *\n */\n\nrequest.serialize = {\n 'application/x-www-form-urlencoded': qs.stringify,\n 'application/json': safeStringify\n};\n/**\n * Default parsers.\n *\n * superagent.parse['application/xml'] = function(str){\n * return { object parsed from str };\n * };\n *\n */\n\nrequest.parse = {\n 'application/x-www-form-urlencoded': parseString,\n 'application/json': JSON.parse\n};\n/**\n * Parse the given header `str` into\n * an object containing the mapped fields.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseHeader(str) {\n var lines = str.split(/\\r?\\n/);\n var fields = {};\n var index;\n var line;\n var field;\n var val;\n\n for (var i = 0, len = lines.length; i < len; ++i) {\n line = lines[i];\n index = line.indexOf(':');\n\n if (index === -1) {\n // could be empty line, just skip it\n continue;\n }\n\n field = line.slice(0, index).toLowerCase();\n val = trim(line.slice(index + 1));\n fields[field] = val;\n }\n\n return fields;\n}\n/**\n * Check if `mime` is json or has +json structured syntax suffix.\n *\n * @param {String} mime\n * @return {Boolean}\n * @api private\n */\n\n\nfunction isJSON(mime) {\n // should match /json or +json\n // but not /json-seq\n return /[/+]json($|[^-\\w])/i.test(mime);\n}\n/**\n * Initialize a new `Response` with the given `xhr`.\n *\n * - set flags (.ok, .error, etc)\n * - parse header\n *\n * Examples:\n *\n * Aliasing `superagent` as `request` is nice:\n *\n * request = superagent;\n *\n * We can use the promise-like API, or pass callbacks:\n *\n * request.get('/').end(function(res){});\n * request.get('/', function(res){});\n *\n * Sending data can be chained:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' })\n * .end(function(res){});\n *\n * Or passed to `.send()`:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' }, function(res){});\n *\n * Or passed to `.post()`:\n *\n * request\n * .post('/user', { name: 'tj' })\n * .end(function(res){});\n *\n * Or further reduced to a single call for simple cases:\n *\n * request\n * .post('/user', { name: 'tj' }, function(res){});\n *\n * @param {XMLHTTPRequest} xhr\n * @param {Object} options\n * @api private\n */\n\n\nfunction Response(req) {\n this.req = req;\n this.xhr = this.req.xhr; // responseText is accessible only if responseType is '' or 'text' and on older browsers\n\n this.text = this.req.method !== 'HEAD' && (this.xhr.responseType === '' || this.xhr.responseType === 'text') || typeof this.xhr.responseType === 'undefined' ? this.xhr.responseText : null;\n this.statusText = this.req.xhr.statusText;\n var status = this.xhr.status; // handle IE9 bug: http://stackoverflow.com/questions/10046972/msie-returns-status-code-of-1223-for-ajax-request\n\n if (status === 1223) {\n status = 204;\n }\n\n this._setStatusProperties(status);\n\n this.headers = parseHeader(this.xhr.getAllResponseHeaders());\n this.header = this.headers; // getAllResponseHeaders sometimes falsely returns \"\" for CORS requests, but\n // getResponseHeader still works. so we get content-type even if getting\n // other headers fails.\n\n this.header['content-type'] = this.xhr.getResponseHeader('content-type');\n\n this._setHeaderProperties(this.header);\n\n if (this.text === null && req._responseType) {\n this.body = this.xhr.response;\n } else {\n this.body = this.req.method === 'HEAD' ? null : this._parseBody(this.text ? this.text : this.xhr.response);\n }\n} // eslint-disable-next-line new-cap\n\n\nResponseBase(Response.prototype);\n/**\n * Parse the given body `str`.\n *\n * Used for auto-parsing of bodies. Parsers\n * are defined on the `superagent.parse` object.\n *\n * @param {String} str\n * @return {Mixed}\n * @api private\n */\n\nResponse.prototype._parseBody = function (str) {\n var parse = request.parse[this.type];\n\n if (this.req._parser) {\n return this.req._parser(this, str);\n }\n\n if (!parse && isJSON(this.type)) {\n parse = request.parse['application/json'];\n }\n\n return parse && str && (str.length > 0 || str instanceof Object) ? parse(str) : null;\n};\n/**\n * Return an `Error` representative of this response.\n *\n * @return {Error}\n * @api public\n */\n\n\nResponse.prototype.toError = function () {\n var req = this.req;\n var method = req.method;\n var url = req.url;\n var msg = \"cannot \".concat(method, \" \").concat(url, \" (\").concat(this.status, \")\");\n var err = new Error(msg);\n err.status = this.status;\n err.method = method;\n err.url = url;\n return err;\n};\n/**\n * Expose `Response`.\n */\n\n\nrequest.Response = Response;\n/**\n * Initialize a new `Request` with the given `method` and `url`.\n *\n * @param {String} method\n * @param {String} url\n * @api public\n */\n\nfunction Request(method, url) {\n var self = this;\n this._query = this._query || [];\n this.method = method;\n this.url = url;\n this.header = {}; // preserves header name case\n\n this._header = {}; // coerces header names to lowercase\n\n this.on('end', function () {\n var err = null;\n var res = null;\n\n try {\n res = new Response(self);\n } catch (err_) {\n err = new Error('Parser is unable to parse the response');\n err.parse = true;\n err.original = err_; // issue #675: return the raw response if the response parsing fails\n\n if (self.xhr) {\n // ie9 doesn't have 'response' property\n err.rawResponse = typeof self.xhr.responseType === 'undefined' ? self.xhr.responseText : self.xhr.response; // issue #876: return the http status code if the response parsing fails\n\n err.status = self.xhr.status ? self.xhr.status : null;\n err.statusCode = err.status; // backwards-compat only\n } else {\n err.rawResponse = null;\n err.status = null;\n }\n\n return self.callback(err);\n }\n\n self.emit('response', res);\n var new_err;\n\n try {\n if (!self._isResponseOK(res)) {\n new_err = new Error(res.statusText || res.text || 'Unsuccessful HTTP response');\n }\n } catch (err_) {\n new_err = err_; // ok() callback can throw\n } // #1000 don't catch errors from the callback to avoid double calling it\n\n\n if (new_err) {\n new_err.original = err;\n new_err.response = res;\n new_err.status = res.status;\n self.callback(new_err, res);\n } else {\n self.callback(null, res);\n }\n });\n}\n/**\n * Mixin `Emitter` and `RequestBase`.\n */\n// eslint-disable-next-line new-cap\n\n\nEmitter(Request.prototype); // eslint-disable-next-line new-cap\n\nRequestBase(Request.prototype);\n/**\n * Set Content-Type to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.xml = 'application/xml';\n *\n * request.post('/')\n * .type('xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * request.post('/')\n * .type('application/xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * @param {String} type\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.type = function (type) {\n this.set('Content-Type', request.types[type] || type);\n return this;\n};\n/**\n * Set Accept to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.json = 'application/json';\n *\n * request.get('/agent')\n * .accept('json')\n * .end(callback);\n *\n * request.get('/agent')\n * .accept('application/json')\n * .end(callback);\n *\n * @param {String} accept\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.accept = function (type) {\n this.set('Accept', request.types[type] || type);\n return this;\n};\n/**\n * Set Authorization field value with `user` and `pass`.\n *\n * @param {String} user\n * @param {String} [pass] optional in case of using 'bearer' as type\n * @param {Object} options with 'type' property 'auto', 'basic' or 'bearer' (default 'basic')\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.auth = function (user, pass, options) {\n if (arguments.length === 1) pass = '';\n\n if (_typeof(pass) === 'object' && pass !== null) {\n // pass is optional and can be replaced with options\n options = pass;\n pass = '';\n }\n\n if (!options) {\n options = {\n type: typeof btoa === 'function' ? 'basic' : 'auto'\n };\n }\n\n var encoder = function encoder(string) {\n if (typeof btoa === 'function') {\n return btoa(string);\n }\n\n throw new Error('Cannot use basic auth, btoa is not a function');\n };\n\n return this._auth(user, pass, options, encoder);\n};\n/**\n * Add query-string `val`.\n *\n * Examples:\n *\n * request.get('/shoes')\n * .query('size=10')\n * .query({ color: 'blue' })\n *\n * @param {Object|String} val\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.query = function (val) {\n if (typeof val !== 'string') val = serialize(val);\n if (val) this._query.push(val);\n return this;\n};\n/**\n * Queue the given `file` as an attachment to the specified `field`,\n * with optional `options` (or filename).\n *\n * ``` js\n * request.post('/upload')\n * .attach('content', new Blob(['hey!'], { type: \"text/html\"}))\n * .end(callback);\n * ```\n *\n * @param {String} field\n * @param {Blob|File} file\n * @param {String|Object} options\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.attach = function (field, file, options) {\n if (file) {\n if (this._data) {\n throw new Error(\"superagent can't mix .send() and .attach()\");\n }\n\n this._getFormData().append(field, file, options || file.name);\n }\n\n return this;\n};\n\nRequest.prototype._getFormData = function () {\n if (!this._formData) {\n this._formData = new root.FormData();\n }\n\n return this._formData;\n};\n/**\n * Invoke the callback with `err` and `res`\n * and handle arity check.\n *\n * @param {Error} err\n * @param {Response} res\n * @api private\n */\n\n\nRequest.prototype.callback = function (err, res) {\n if (this._shouldRetry(err, res)) {\n return this._retry();\n }\n\n var fn = this._callback;\n this.clearTimeout();\n\n if (err) {\n if (this._maxRetries) err.retries = this._retries - 1;\n this.emit('error', err);\n }\n\n fn(err, res);\n};\n/**\n * Invoke callback with x-domain error.\n *\n * @api private\n */\n\n\nRequest.prototype.crossDomainError = function () {\n var err = new Error('Request has been terminated\\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.');\n err.crossDomain = true;\n err.status = this.status;\n err.method = this.method;\n err.url = this.url;\n this.callback(err);\n}; // This only warns, because the request is still likely to work\n\n\nRequest.prototype.agent = function () {\n console.warn('This is not supported in browser version of superagent');\n return this;\n};\n\nRequest.prototype.ca = Request.prototype.agent;\nRequest.prototype.buffer = Request.prototype.ca; // This throws, because it can't send/receive data as expected\n\nRequest.prototype.write = function () {\n throw new Error('Streaming is not supported in browser version of superagent');\n};\n\nRequest.prototype.pipe = Request.prototype.write;\n/**\n * Check if `obj` is a host object,\n * we don't want to serialize these :)\n *\n * @param {Object} obj host object\n * @return {Boolean} is a host object\n * @api private\n */\n\nRequest.prototype._isHost = function (obj) {\n // Native objects stringify to [object File], [object Blob], [object FormData], etc.\n return obj && _typeof(obj) === 'object' && !Array.isArray(obj) && Object.prototype.toString.call(obj) !== '[object Object]';\n};\n/**\n * Initiate request, invoking callback `fn(res)`\n * with an instanceof `Response`.\n *\n * @param {Function} fn\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.end = function (fn) {\n if (this._endCalled) {\n console.warn('Warning: .end() was called twice. This is not supported in superagent');\n }\n\n this._endCalled = true; // store callback\n\n this._callback = fn || noop; // querystring\n\n this._finalizeQueryString();\n\n this._end();\n};\n\nRequest.prototype._setUploadTimeout = function () {\n var self = this; // upload timeout it's wokrs only if deadline timeout is off\n\n if (this._uploadTimeout && !this._uploadTimeoutTimer) {\n this._uploadTimeoutTimer = setTimeout(function () {\n self._timeoutError('Upload timeout of ', self._uploadTimeout, 'ETIMEDOUT');\n }, this._uploadTimeout);\n }\n}; // eslint-disable-next-line complexity\n\n\nRequest.prototype._end = function () {\n if (this._aborted) return this.callback(new Error('The request has been aborted even before .end() was called'));\n var self = this;\n this.xhr = request.getXHR();\n var xhr = this.xhr;\n var data = this._formData || this._data;\n\n this._setTimeouts(); // state change\n\n\n xhr.onreadystatechange = function () {\n var readyState = xhr.readyState;\n\n if (readyState >= 2 && self._responseTimeoutTimer) {\n clearTimeout(self._responseTimeoutTimer);\n }\n\n if (readyState !== 4) {\n return;\n } // In IE9, reads to any property (e.g. status) off of an aborted XHR will\n // result in the error \"Could not complete the operation due to error c00c023f\"\n\n\n var status;\n\n try {\n status = xhr.status;\n } catch (_unused5) {\n status = 0;\n }\n\n if (!status) {\n if (self.timedout || self._aborted) return;\n return self.crossDomainError();\n }\n\n self.emit('end');\n }; // progress\n\n\n var handleProgress = function handleProgress(direction, e) {\n if (e.total > 0) {\n e.percent = e.loaded / e.total * 100;\n\n if (e.percent === 100) {\n clearTimeout(self._uploadTimeoutTimer);\n }\n }\n\n e.direction = direction;\n self.emit('progress', e);\n };\n\n if (this.hasListeners('progress')) {\n try {\n xhr.addEventListener('progress', handleProgress.bind(null, 'download'));\n\n if (xhr.upload) {\n xhr.upload.addEventListener('progress', handleProgress.bind(null, 'upload'));\n }\n } catch (_unused6) {// Accessing xhr.upload fails in IE from a web worker, so just pretend it doesn't exist.\n // Reported here:\n // https://connect.microsoft.com/IE/feedback/details/837245/xmlhttprequest-upload-throws-invalid-argument-when-used-from-web-worker-context\n }\n }\n\n if (xhr.upload) {\n this._setUploadTimeout();\n } // initiate request\n\n\n try {\n if (this.username && this.password) {\n xhr.open(this.method, this.url, true, this.username, this.password);\n } else {\n xhr.open(this.method, this.url, true);\n }\n } catch (err) {\n // see #1149\n return this.callback(err);\n } // CORS\n\n\n if (this._withCredentials) xhr.withCredentials = true; // body\n\n if (!this._formData && this.method !== 'GET' && this.method !== 'HEAD' && typeof data !== 'string' && !this._isHost(data)) {\n // serialize stuff\n var contentType = this._header['content-type'];\n\n var _serialize = this._serializer || request.serialize[contentType ? contentType.split(';')[0] : ''];\n\n if (!_serialize && isJSON(contentType)) {\n _serialize = request.serialize['application/json'];\n }\n\n if (_serialize) data = _serialize(data);\n } // set header fields\n\n\n for (var field in this.header) {\n if (this.header[field] === null) continue;\n if (Object.prototype.hasOwnProperty.call(this.header, field)) xhr.setRequestHeader(field, this.header[field]);\n }\n\n if (this._responseType) {\n xhr.responseType = this._responseType;\n } // send stuff\n\n\n this.emit('request', this); // IE11 xhr.send(undefined) sends 'undefined' string as POST payload (instead of nothing)\n // We need null here if data is undefined\n\n xhr.send(typeof data === 'undefined' ? null : data);\n};\n\nrequest.agent = function () {\n return new Agent();\n};\n\n['GET', 'POST', 'OPTIONS', 'PATCH', 'PUT', 'DELETE'].forEach(function (method) {\n Agent.prototype[method.toLowerCase()] = function (url, fn) {\n var req = new request.Request(method, url);\n\n this._setDefaults(req);\n\n if (fn) {\n req.end(fn);\n }\n\n return req;\n };\n});\nAgent.prototype.del = Agent.prototype.delete;\n/**\n * GET `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.get = function (url, data, fn) {\n var req = request('GET', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * HEAD `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.head = function (url, data, fn) {\n var req = request('HEAD', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * OPTIONS query to `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.options = function (url, data, fn) {\n var req = request('OPTIONS', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * DELETE `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nfunction del(url, data, fn) {\n var req = request('DELETE', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n}\n\nrequest.del = del;\nrequest.delete = del;\n/**\n * PATCH `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.patch = function (url, data, fn) {\n var req = request('PATCH', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * POST `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.post = function (url, data, fn) {\n var req = request('POST', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * PUT `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.put = function (url, data, fn) {\n var req = request('PUT', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n},{\"./agent-base\":8,\"./is-object\":9,\"./request-base\":11,\"./response-base\":12,\"component-emitter\":1,\"fast-safe-stringify\":2,\"qs\":4}],11:[function(require,module,exports){\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Module of mixed-in functions shared between node and client code\n */\nvar isObject = require('./is-object');\n/**\n * Expose `RequestBase`.\n */\n\n\nmodule.exports = RequestBase;\n/**\n * Initialize a new `RequestBase`.\n *\n * @api public\n */\n\nfunction RequestBase(object) {\n if (object) return mixin(object);\n}\n/**\n * Mixin the prototype properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\n\nfunction mixin(object) {\n for (var key in RequestBase.prototype) {\n if (Object.prototype.hasOwnProperty.call(RequestBase.prototype, key)) object[key] = RequestBase.prototype[key];\n }\n\n return object;\n}\n/**\n * Clear previous timeout.\n *\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.clearTimeout = function () {\n clearTimeout(this._timer);\n clearTimeout(this._responseTimeoutTimer);\n clearTimeout(this._uploadTimeoutTimer);\n delete this._timer;\n delete this._responseTimeoutTimer;\n delete this._uploadTimeoutTimer;\n return this;\n};\n/**\n * Override default response body parser\n *\n * This function will be called to convert incoming data into request.body\n *\n * @param {Function}\n * @api public\n */\n\n\nRequestBase.prototype.parse = function (fn) {\n this._parser = fn;\n return this;\n};\n/**\n * Set format of binary response body.\n * In browser valid formats are 'blob' and 'arraybuffer',\n * which return Blob and ArrayBuffer, respectively.\n *\n * In Node all values result in Buffer.\n *\n * Examples:\n *\n * req.get('/')\n * .responseType('blob')\n * .end(callback);\n *\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.responseType = function (value) {\n this._responseType = value;\n return this;\n};\n/**\n * Override default request body serializer\n *\n * This function will be called to convert data set via .send or .attach into payload to send\n *\n * @param {Function}\n * @api public\n */\n\n\nRequestBase.prototype.serialize = function (fn) {\n this._serializer = fn;\n return this;\n};\n/**\n * Set timeouts.\n *\n * - response timeout is time between sending request and receiving the first byte of the response. Includes DNS and connection time.\n * - deadline is the time from start of the request to receiving response body in full. If the deadline is too short large files may not load at all on slow connections.\n * - upload is the time since last bit of data was sent or received. This timeout works only if deadline timeout is off\n *\n * Value of 0 or false means no timeout.\n *\n * @param {Number|Object} ms or {response, deadline}\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.timeout = function (options) {\n if (!options || _typeof(options) !== 'object') {\n this._timeout = options;\n this._responseTimeout = 0;\n this._uploadTimeout = 0;\n return this;\n }\n\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option)) {\n switch (option) {\n case 'deadline':\n this._timeout = options.deadline;\n break;\n\n case 'response':\n this._responseTimeout = options.response;\n break;\n\n case 'upload':\n this._uploadTimeout = options.upload;\n break;\n\n default:\n console.warn('Unknown timeout option', option);\n }\n }\n }\n\n return this;\n};\n/**\n * Set number of retry attempts on error.\n *\n * Failed requests will be retried 'count' times if timeout or err.code >= 500.\n *\n * @param {Number} count\n * @param {Function} [fn]\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.retry = function (count, fn) {\n // Default to 1 if no count passed or true\n if (arguments.length === 0 || count === true) count = 1;\n if (count <= 0) count = 0;\n this._maxRetries = count;\n this._retries = 0;\n this._retryCallback = fn;\n return this;\n}; //\n// NOTE: we do not include ESOCKETTIMEDOUT because that is from `request` package\n// \n//\n// NOTE: we do not include EADDRINFO because it was removed from libuv in 2014\n// \n// \n//\n//\n// TODO: expose these as configurable defaults\n//\n\n\nvar ERROR_CODES = new Set(['ETIMEDOUT', 'ECONNRESET', 'EADDRINUSE', 'ECONNREFUSED', 'EPIPE', 'ENOTFOUND', 'ENETUNREACH', 'EAI_AGAIN']);\nvar STATUS_CODES = new Set([408, 413, 429, 500, 502, 503, 504, 521, 522, 524]); // TODO: we would need to make this easily configurable before adding it in (e.g. some might want to add POST)\n// const METHODS = new Set(['GET', 'PUT', 'HEAD', 'DELETE', 'OPTIONS', 'TRACE']);\n\n/**\n * Determine if a request should be retried.\n * (Inspired by https://github.com/sindresorhus/got#retry)\n *\n * @param {Error} err an error\n * @param {Response} [res] response\n * @returns {Boolean} if segment should be retried\n */\n\nRequestBase.prototype._shouldRetry = function (err, res) {\n if (!this._maxRetries || this._retries++ >= this._maxRetries) {\n return false;\n }\n\n if (this._retryCallback) {\n try {\n var override = this._retryCallback(err, res);\n\n if (override === true) return true;\n if (override === false) return false; // undefined falls back to defaults\n } catch (err_) {\n console.error(err_);\n }\n } // TODO: we would need to make this easily configurable before adding it in (e.g. some might want to add POST)\n\n /*\n if (\n this.req &&\n this.req.method &&\n !METHODS.has(this.req.method.toUpperCase())\n )\n return false;\n */\n\n\n if (res && res.status && STATUS_CODES.has(res.status)) return true;\n\n if (err) {\n if (err.code && ERROR_CODES.has(err.code)) return true; // Superagent timeout\n\n if (err.timeout && err.code === 'ECONNABORTED') return true;\n if (err.crossDomain) return true;\n }\n\n return false;\n};\n/**\n * Retry request\n *\n * @return {Request} for chaining\n * @api private\n */\n\n\nRequestBase.prototype._retry = function () {\n this.clearTimeout(); // node\n\n if (this.req) {\n this.req = null;\n this.req = this.request();\n }\n\n this._aborted = false;\n this.timedout = false;\n this.timedoutError = null;\n return this._end();\n};\n/**\n * Promise support\n *\n * @param {Function} resolve\n * @param {Function} [reject]\n * @return {Request}\n */\n\n\nRequestBase.prototype.then = function (resolve, reject) {\n var _this = this;\n\n if (!this._fullfilledPromise) {\n var self = this;\n\n if (this._endCalled) {\n console.warn('Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises');\n }\n\n this._fullfilledPromise = new Promise(function (resolve, reject) {\n self.on('abort', function () {\n if (_this._maxRetries && _this._maxRetries > _this._retries) {\n return;\n }\n\n if (_this.timedout && _this.timedoutError) {\n reject(_this.timedoutError);\n return;\n }\n\n var err = new Error('Aborted');\n err.code = 'ABORTED';\n err.status = _this.status;\n err.method = _this.method;\n err.url = _this.url;\n reject(err);\n });\n self.end(function (err, res) {\n if (err) reject(err);else resolve(res);\n });\n });\n }\n\n return this._fullfilledPromise.then(resolve, reject);\n};\n\nRequestBase.prototype.catch = function (cb) {\n return this.then(undefined, cb);\n};\n/**\n * Allow for extension\n */\n\n\nRequestBase.prototype.use = function (fn) {\n fn(this);\n return this;\n};\n\nRequestBase.prototype.ok = function (cb) {\n if (typeof cb !== 'function') throw new Error('Callback required');\n this._okCallback = cb;\n return this;\n};\n\nRequestBase.prototype._isResponseOK = function (res) {\n if (!res) {\n return false;\n }\n\n if (this._okCallback) {\n return this._okCallback(res);\n }\n\n return res.status >= 200 && res.status < 300;\n};\n/**\n * Get request header `field`.\n * Case-insensitive.\n *\n * @param {String} field\n * @return {String}\n * @api public\n */\n\n\nRequestBase.prototype.get = function (field) {\n return this._header[field.toLowerCase()];\n};\n/**\n * Get case-insensitive header `field` value.\n * This is a deprecated internal API. Use `.get(field)` instead.\n *\n * (getHeader is no longer used internally by the superagent code base)\n *\n * @param {String} field\n * @return {String}\n * @api private\n * @deprecated\n */\n\n\nRequestBase.prototype.getHeader = RequestBase.prototype.get;\n/**\n * Set header `field` to `val`, or multiple fields with one object.\n * Case-insensitive.\n *\n * Examples:\n *\n * req.get('/')\n * .set('Accept', 'application/json')\n * .set('X-API-Key', 'foobar')\n * .end(callback);\n *\n * req.get('/')\n * .set({ Accept: 'application/json', 'X-API-Key': 'foobar' })\n * .end(callback);\n *\n * @param {String|Object} field\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.set = function (field, value) {\n if (isObject(field)) {\n for (var key in field) {\n if (Object.prototype.hasOwnProperty.call(field, key)) this.set(key, field[key]);\n }\n\n return this;\n }\n\n this._header[field.toLowerCase()] = value;\n this.header[field] = value;\n return this;\n};\n/**\n * Remove header `field`.\n * Case-insensitive.\n *\n * Example:\n *\n * req.get('/')\n * .unset('User-Agent')\n * .end(callback);\n *\n * @param {String} field field name\n */\n\n\nRequestBase.prototype.unset = function (field) {\n delete this._header[field.toLowerCase()];\n delete this.header[field];\n return this;\n};\n/**\n * Write the field `name` and `val`, or multiple fields with one object\n * for \"multipart/form-data\" request bodies.\n *\n * ``` js\n * request.post('/upload')\n * .field('foo', 'bar')\n * .end(callback);\n *\n * request.post('/upload')\n * .field({ foo: 'bar', baz: 'qux' })\n * .end(callback);\n * ```\n *\n * @param {String|Object} name name of field\n * @param {String|Blob|File|Buffer|fs.ReadStream} val value of field\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.field = function (name, value) {\n // name should be either a string or an object.\n if (name === null || undefined === name) {\n throw new Error('.field(name, val) name can not be empty');\n }\n\n if (this._data) {\n throw new Error(\".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()\");\n }\n\n if (isObject(name)) {\n for (var key in name) {\n if (Object.prototype.hasOwnProperty.call(name, key)) this.field(key, name[key]);\n }\n\n return this;\n }\n\n if (Array.isArray(value)) {\n for (var i in value) {\n if (Object.prototype.hasOwnProperty.call(value, i)) this.field(name, value[i]);\n }\n\n return this;\n } // val should be defined now\n\n\n if (value === null || undefined === value) {\n throw new Error('.field(name, val) val can not be empty');\n }\n\n if (typeof value === 'boolean') {\n value = String(value);\n }\n\n this._getFormData().append(name, value);\n\n return this;\n};\n/**\n * Abort the request, and clear potential timeout.\n *\n * @return {Request} request\n * @api public\n */\n\n\nRequestBase.prototype.abort = function () {\n if (this._aborted) {\n return this;\n }\n\n this._aborted = true;\n if (this.xhr) this.xhr.abort(); // browser\n\n if (this.req) this.req.abort(); // node\n\n this.clearTimeout();\n this.emit('abort');\n return this;\n};\n\nRequestBase.prototype._auth = function (user, pass, options, base64Encoder) {\n switch (options.type) {\n case 'basic':\n this.set('Authorization', \"Basic \".concat(base64Encoder(\"\".concat(user, \":\").concat(pass))));\n break;\n\n case 'auto':\n this.username = user;\n this.password = pass;\n break;\n\n case 'bearer':\n // usage would be .auth(accessToken, { type: 'bearer' })\n this.set('Authorization', \"Bearer \".concat(user));\n break;\n\n default:\n break;\n }\n\n return this;\n};\n/**\n * Enable transmission of cookies with x-domain requests.\n *\n * Note that for this to work the origin must not be\n * using \"Access-Control-Allow-Origin\" with a wildcard,\n * and also must set \"Access-Control-Allow-Credentials\"\n * to \"true\".\n *\n * @api public\n */\n\n\nRequestBase.prototype.withCredentials = function (on) {\n // This is browser-only functionality. Node side is no-op.\n if (on === undefined) on = true;\n this._withCredentials = on;\n return this;\n};\n/**\n * Set the max redirects to `n`. Does nothing in browser XHR implementation.\n *\n * @param {Number} n\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.redirects = function (n) {\n this._maxRedirects = n;\n return this;\n};\n/**\n * Maximum size of buffered response body, in bytes. Counts uncompressed size.\n * Default 200MB.\n *\n * @param {Number} n number of bytes\n * @return {Request} for chaining\n */\n\n\nRequestBase.prototype.maxResponseSize = function (n) {\n if (typeof n !== 'number') {\n throw new TypeError('Invalid argument');\n }\n\n this._maxResponseSize = n;\n return this;\n};\n/**\n * Convert to a plain javascript object (not JSON string) of scalar properties.\n * Note as this method is designed to return a useful non-this value,\n * it cannot be chained.\n *\n * @return {Object} describing method, url, and data of this request\n * @api public\n */\n\n\nRequestBase.prototype.toJSON = function () {\n return {\n method: this.method,\n url: this.url,\n data: this._data,\n headers: this._header\n };\n};\n/**\n * Send `data` as the request body, defaulting the `.type()` to \"json\" when\n * an object is given.\n *\n * Examples:\n *\n * // manual json\n * request.post('/user')\n * .type('json')\n * .send('{\"name\":\"tj\"}')\n * .end(callback)\n *\n * // auto json\n * request.post('/user')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // manual x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send('name=tj')\n * .end(callback)\n *\n * // auto x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // defaults to x-www-form-urlencoded\n * request.post('/user')\n * .send('name=tobi')\n * .send('species=ferret')\n * .end(callback)\n *\n * @param {String|Object} data\n * @return {Request} for chaining\n * @api public\n */\n// eslint-disable-next-line complexity\n\n\nRequestBase.prototype.send = function (data) {\n var isObject_ = isObject(data);\n var type = this._header['content-type'];\n\n if (this._formData) {\n throw new Error(\".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()\");\n }\n\n if (isObject_ && !this._data) {\n if (Array.isArray(data)) {\n this._data = [];\n } else if (!this._isHost(data)) {\n this._data = {};\n }\n } else if (data && this._data && this._isHost(this._data)) {\n throw new Error(\"Can't merge these send calls\");\n } // merge\n\n\n if (isObject_ && isObject(this._data)) {\n for (var key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) this._data[key] = data[key];\n }\n } else if (typeof data === 'string') {\n // default to x-www-form-urlencoded\n if (!type) this.type('form');\n type = this._header['content-type'];\n if (type) type = type.toLowerCase().trim();\n\n if (type === 'application/x-www-form-urlencoded') {\n this._data = this._data ? \"\".concat(this._data, \"&\").concat(data) : data;\n } else {\n this._data = (this._data || '') + data;\n }\n } else {\n this._data = data;\n }\n\n if (!isObject_ || this._isHost(data)) {\n return this;\n } // default to json\n\n\n if (!type) this.type('json');\n return this;\n};\n/**\n * Sort `querystring` by the sort function\n *\n *\n * Examples:\n *\n * // default order\n * request.get('/user')\n * .query('name=Nick')\n * .query('search=Manny')\n * .sortQuery()\n * .end(callback)\n *\n * // customized sort function\n * request.get('/user')\n * .query('name=Nick')\n * .query('search=Manny')\n * .sortQuery(function(a, b){\n * return a.length - b.length;\n * })\n * .end(callback)\n *\n *\n * @param {Function} sort\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.sortQuery = function (sort) {\n // _sort default to true but otherwise can be a function or boolean\n this._sort = typeof sort === 'undefined' ? true : sort;\n return this;\n};\n/**\n * Compose querystring to append to req.url\n *\n * @api private\n */\n\n\nRequestBase.prototype._finalizeQueryString = function () {\n var query = this._query.join('&');\n\n if (query) {\n this.url += (this.url.includes('?') ? '&' : '?') + query;\n }\n\n this._query.length = 0; // Makes the call idempotent\n\n if (this._sort) {\n var index = this.url.indexOf('?');\n\n if (index >= 0) {\n var queryArray = this.url.slice(index + 1).split('&');\n\n if (typeof this._sort === 'function') {\n queryArray.sort(this._sort);\n } else {\n queryArray.sort();\n }\n\n this.url = this.url.slice(0, index) + '?' + queryArray.join('&');\n }\n }\n}; // For backwards compat only\n\n\nRequestBase.prototype._appendQueryString = function () {\n console.warn('Unsupported');\n};\n/**\n * Invoke callback with timeout error.\n *\n * @api private\n */\n\n\nRequestBase.prototype._timeoutError = function (reason, timeout, errno) {\n if (this._aborted) {\n return;\n }\n\n var err = new Error(\"\".concat(reason + timeout, \"ms exceeded\"));\n err.timeout = timeout;\n err.code = 'ECONNABORTED';\n err.errno = errno;\n this.timedout = true;\n this.timedoutError = err;\n this.abort();\n this.callback(err);\n};\n\nRequestBase.prototype._setTimeouts = function () {\n var self = this; // deadline\n\n if (this._timeout && !this._timer) {\n this._timer = setTimeout(function () {\n self._timeoutError('Timeout of ', self._timeout, 'ETIME');\n }, this._timeout);\n } // response timeout\n\n\n if (this._responseTimeout && !this._responseTimeoutTimer) {\n this._responseTimeoutTimer = setTimeout(function () {\n self._timeoutError('Response timeout of ', self._responseTimeout, 'ETIMEDOUT');\n }, this._responseTimeout);\n }\n};\n\n},{\"./is-object\":9}],12:[function(require,module,exports){\n\"use strict\";\n\n/**\n * Module dependencies.\n */\nvar utils = require('./utils');\n/**\n * Expose `ResponseBase`.\n */\n\n\nmodule.exports = ResponseBase;\n/**\n * Initialize a new `ResponseBase`.\n *\n * @api public\n */\n\nfunction ResponseBase(obj) {\n if (obj) return mixin(obj);\n}\n/**\n * Mixin the prototype properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\n\nfunction mixin(obj) {\n for (var key in ResponseBase.prototype) {\n if (Object.prototype.hasOwnProperty.call(ResponseBase.prototype, key)) obj[key] = ResponseBase.prototype[key];\n }\n\n return obj;\n}\n/**\n * Get case-insensitive `field` value.\n *\n * @param {String} field\n * @return {String}\n * @api public\n */\n\n\nResponseBase.prototype.get = function (field) {\n return this.header[field.toLowerCase()];\n};\n/**\n * Set header related properties:\n *\n * - `.type` the content type without params\n *\n * A response of \"Content-Type: text/plain; charset=utf-8\"\n * will provide you with a `.type` of \"text/plain\".\n *\n * @param {Object} header\n * @api private\n */\n\n\nResponseBase.prototype._setHeaderProperties = function (header) {\n // TODO: moar!\n // TODO: make this a util\n // content-type\n var ct = header['content-type'] || '';\n this.type = utils.type(ct); // params\n\n var params = utils.params(ct);\n\n for (var key in params) {\n if (Object.prototype.hasOwnProperty.call(params, key)) this[key] = params[key];\n }\n\n this.links = {}; // links\n\n try {\n if (header.link) {\n this.links = utils.parseLinks(header.link);\n }\n } catch (_unused) {// ignore\n }\n};\n/**\n * Set flags such as `.ok` based on `status`.\n *\n * For example a 2xx response will give you a `.ok` of __true__\n * whereas 5xx will be __false__ and `.error` will be __true__. The\n * `.clientError` and `.serverError` are also available to be more\n * specific, and `.statusType` is the class of error ranging from 1..5\n * sometimes useful for mapping respond colors etc.\n *\n * \"sugar\" properties are also defined for common cases. Currently providing:\n *\n * - .noContent\n * - .badRequest\n * - .unauthorized\n * - .notAcceptable\n * - .notFound\n *\n * @param {Number} status\n * @api private\n */\n\n\nResponseBase.prototype._setStatusProperties = function (status) {\n var type = status / 100 | 0; // status / class\n\n this.statusCode = status;\n this.status = this.statusCode;\n this.statusType = type; // basics\n\n this.info = type === 1;\n this.ok = type === 2;\n this.redirect = type === 3;\n this.clientError = type === 4;\n this.serverError = type === 5;\n this.error = type === 4 || type === 5 ? this.toError() : false; // sugar\n\n this.created = status === 201;\n this.accepted = status === 202;\n this.noContent = status === 204;\n this.badRequest = status === 400;\n this.unauthorized = status === 401;\n this.notAcceptable = status === 406;\n this.forbidden = status === 403;\n this.notFound = status === 404;\n this.unprocessableEntity = status === 422;\n};\n\n},{\"./utils\":13}],13:[function(require,module,exports){\n\"use strict\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * Return the mime type for the given `str`.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\nexports.type = function (str) {\n return str.split(/ *; */).shift();\n};\n/**\n * Return header field parameters.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\n\nexports.params = function (val) {\n var obj = {};\n\n var _iterator = _createForOfIteratorHelper(val.split(/ *; */)),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var str = _step.value;\n var parts = str.split(/ *= */);\n var key = parts.shift();\n\n var _val = parts.shift();\n\n if (key && _val) obj[key] = _val;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return obj;\n};\n/**\n * Parse Link header fields.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\n\nexports.parseLinks = function (val) {\n var obj = {};\n\n var _iterator2 = _createForOfIteratorHelper(val.split(/ *, */)),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var str = _step2.value;\n var parts = str.split(/ *; */);\n var url = parts[0].slice(1, -1);\n var rel = parts[1].split(/ *= */)[1].slice(1, -1);\n obj[rel] = url;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return obj;\n};\n/**\n * Strip content related fields from `header`.\n *\n * @param {Object} header\n * @return {Object} header\n * @api private\n */\n\n\nexports.cleanHeader = function (header, changesOrigin) {\n delete header['content-type'];\n delete header['content-length'];\n delete header['transfer-encoding'];\n delete header.host; // secuirty\n\n if (changesOrigin) {\n delete header.authorization;\n delete header.cookie;\n }\n\n return header;\n};\n\n},{}]},{},[10])(10)\n});\n"],"names":["f","$222c41b52cbd7a0b$exports","define","amd","window","$parcel$global","self","this","superagent","r1","e","n1","t","o","i","c","undefined","u","a","Error","code","p","exports","call","r","i1","length","require","module","obj","key","Emitter","prototype","mixin","addEventListener","event","fn","_callbacks","push","on","off","apply","arguments","removeListener","removeAllListeners","removeEventListener","cb","callbacks","splice","args","Array","len","slice","obj1","_typeof","Symbol","iterator","constructor","stringify","deterministicStringify","stableStringify","replacerStack","replacer","spacer","res","JSON","replaceGetterValues","arr","part","pop","Object","defineProperty","decirc","val","k","stack","parent","propertyDescriptor","getOwnPropertyDescriptor","get","configurable","value","keys","b","deterministicDecirc","tmp","toJSON","isArray","sort","compareFunction","v","replace","String","percentTwenties","util","Format","RFC1738","RFC3986","assign","default","formatters","parse","formats","utils","hasOwnProperty","decode","str","$0","numberStr","fromCharCode","parseInt","parseArrayValue","options","comma","indexOf","split","parseKeys","givenKey","valuesParsed","allowDots","child","segment","depth","exec","index","plainObjects","has","allowPrototypes","chain","leaf","root","parseArrays","concat","create","cleanRoot","charAt","isNaN","arrayLimit","parseObject","opts","defaults","decoder","TypeError","charset","charsetSentinel","delimiter","isRegExp","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","strictNullHandling","normalizeParseOptions","tempObj","Infinity","cleanStr","limit","skipIndex","parts","bracketEqualsPos","pos","maybeMap","encodedVal","combine","parseValues","newObj","merge","compact","obj2","brackets","prefix","pushToArray","valueOrArray","Date","toISOString","defaultFormat","encode","encoder","encodeValuesOnly","format","formatter","indices","serializeDate","date","toISO","stringify1","object","generateArrayPrefix","skipNulls","filter","isBuffer","objKeys","values","value1","keyPrefix","addQueryPrefix","normalizeStringifyOptions","arrayFormat","arrayPrefixGenerators","joined","join","obj3","array","toString","toUpperCase","arrayToObject","source","target","reduce","acc","queue","prop","refs","item","j","compacted","compactQueue","strWithoutPlus","unescape","decodeURIComponent","defaultEncoder","string","escape","charCodeAt","out","hexTable","mapped","mergeTarget","forEach","targetItem","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","minLen","n","name","test","_unsupportedIterableToArray","_nonIterableSpread","arr2","Agent","_defaults","_len","_key","_setDefaults","req","def","obj4","obj5","safeStringify","qs","RequestBase","noop","method","url","Request","end","XMLHttpRequest","location","protocol","ActiveXObject","_unused","_unused2","_unused3","s","trim","pairs","pushEncodedKeyValuePair","isObject","subkey","pair","mime","status","xhr","_setStatusProperties","headers","parseHeader","getAllResponseHeaders","header","getResponseHeader","_setHeaderProperties","text","_responseType","body","response","_parseBody","err","original","err_","rawResponse","responseType","responseText","new_err","callback","data","send","parseString","html","json","Response","request","type","_parser","isJSON","msg","auth","user","pass","_auth","query","serialize","_query","_getFormData","_formData","FormData","_shouldRetry","_retry","_callback","clearTimeout","_maxRetries","retries","_retries","emit","crossDomainError","crossDomain","agent","warn","ca","buffer","write","pipe","_endCalled","console","_end","_setUploadTimeout","_uploadTimeout","_uploadTimeoutTimer","setTimeout","_timeoutError","_aborted","getXHR","_data","_setTimeouts","onreadystatechange","readyState","_responseTimeoutTimer","_unused5","timedout","handleProgress","direction","total","percent","loaded","hasListeners","username","password","open","_withCredentials","withCredentials","_isHost","field","setRequestHeader","toLowerCase","del","delete","post","obj6","_serializer","timeout","_timeout","_responseTimeout","option","deadline","upload","retry","count","_retryCallback","ERROR_CODES","Set","error","STATUS_CODES","timedoutError","then","resolve1","reject1","_this","_fullfilledPromise","ok","_okCallback","_isResponseOK","_header","set","unset","base64Encoder","isObject_","sortQuery","_sort","_finalizeQueryString","includes","queryArray","errno","abort","ct","params","links","link","parseLinks","statusCode","statusType","info","redirect","clientError","toError","accepted","noContent","notAcceptable","forbidden","_createForOfIteratorHelper","allowArrayLike","it","F","_e","normalCompletion","didErr","step","next","done","_e2","return","_step","_iterator","shift","_val"],"version":3,"file":"modzyDeepFakeModel.js.map"} \ No newline at end of file +{"mappings":"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","sources":["node_modules/superagent/dist/superagent.js"],"sourcesContent":["(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.superagent = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i b) {\n return 1;\n }\n\n return 0;\n}\n\nfunction deterministicStringify(obj, replacer, spacer) {\n var tmp = deterministicDecirc(obj, '', [], undefined) || obj;\n var res;\n\n if (replacerStack.length === 0) {\n res = JSON.stringify(tmp, replacer, spacer);\n } else {\n res = JSON.stringify(tmp, replaceGetterValues(replacer), spacer);\n }\n\n while (arr.length !== 0) {\n var part = arr.pop();\n\n if (part.length === 4) {\n Object.defineProperty(part[0], part[1], part[3]);\n } else {\n part[0][part[1]] = part[2];\n }\n }\n\n return res;\n}\n\nfunction deterministicDecirc(val, k, stack, parent) {\n var i;\n\n if (_typeof(val) === 'object' && val !== null) {\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === val) {\n var propertyDescriptor = Object.getOwnPropertyDescriptor(parent, k);\n\n if (propertyDescriptor.get !== undefined) {\n if (propertyDescriptor.configurable) {\n Object.defineProperty(parent, k, {\n value: '[Circular]'\n });\n arr.push([parent, k, val, propertyDescriptor]);\n } else {\n replacerStack.push([val, k]);\n }\n } else {\n parent[k] = '[Circular]';\n arr.push([parent, k, val]);\n }\n\n return;\n }\n }\n\n if (typeof val.toJSON === 'function') {\n return;\n }\n\n stack.push(val); // Optimize for Arrays. Big arrays could kill the performance otherwise!\n\n if (Array.isArray(val)) {\n for (i = 0; i < val.length; i++) {\n deterministicDecirc(val[i], i, stack, val);\n }\n } else {\n // Create a temporary object in the required way\n var tmp = {};\n var keys = Object.keys(val).sort(compareFunction);\n\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n deterministicDecirc(val[key], key, stack, val);\n tmp[key] = val[key];\n }\n\n if (parent !== undefined) {\n arr.push([parent, k, val]);\n parent[k] = tmp;\n } else {\n return tmp;\n }\n }\n\n stack.pop();\n }\n} // wraps replacer function to handle values we couldn't replace\n// and mark them as [Circular]\n\n\nfunction replaceGetterValues(replacer) {\n replacer = replacer !== undefined ? replacer : function (k, v) {\n return v;\n };\n return function (key, val) {\n if (replacerStack.length > 0) {\n for (var i = 0; i < replacerStack.length; i++) {\n var part = replacerStack[i];\n\n if (part[1] === key && part[0] === val) {\n val = '[Circular]';\n replacerStack.splice(i, 1);\n break;\n }\n }\n }\n\n return replacer.call(this, key, val);\n };\n}\n\n},{}],3:[function(require,module,exports){\n'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar util = require('./utils');\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\nmodule.exports = util.assign({\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function RFC1738(value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function RFC3986(value) {\n return String(value);\n }\n }\n}, Format);\n\n},{\"./utils\":7}],4:[function(require,module,exports){\n'use strict';\n\nvar stringify = require('./stringify');\n\nvar parse = require('./parse');\n\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n\n},{\"./formats\":3,\"./parse\":5,\"./stringify\":6}],5:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function interpretNumericEntities(str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function parseArrayValue(val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n}; // This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\n\n\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\n\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n\n var i;\n var charset = options.charset;\n\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n\n var part = parts[i];\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n var key, val;\n\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(parseArrayValue(part.slice(pos + 1), options), function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n });\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function parseObject(chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n\n if (!options.parseArrays && cleanRoot === '') {\n obj = {\n 0: leaf\n };\n } else if (!isNaN(index) && root !== cleanRoot && String(index) === cleanRoot && index >= 0 && options.parseArrays && index <= options.arrayLimit) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj; // eslint-disable-line no-param-reassign\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n } // Transform dot notation to bracket notation\n\n\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey; // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g; // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key; // Stash the parent if it exists\n\n var keys = [];\n\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n } // Loop through children appending to the array until we hit depth\n\n\n var i = 0;\n\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(segment[1]);\n } // If there's a remainder, just add whatever is left\n\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: typeof opts.depth === 'number' || opts.depth === false ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {}; // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n return utils.compact(obj);\n};\n\n},{\"./utils\":7}],6:[function(require,module,exports){\n'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar utils = require('./utils');\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\n\nvar pushToArray = function pushToArray(arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string' || typeof v === 'number' || typeof v === 'boolean' || _typeof(v) === 'symbol' || typeof v === 'bigint';\n};\n\nvar stringify = function stringify(object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter, encodeValuesOnly, charset) {\n var obj = object;\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n\n return value;\n }).join(',');\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key') : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key');\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value'))];\n }\n\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n\n if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n var value = obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj) ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix : prefix + (allowDots ? '.' + key : '[' + key + ']');\n pushToArray(values, stringify(value, keyPrefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter, encodeValuesOnly, charset));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n\n format = opts.format;\n }\n\n var formatter = formats.formatters[format];\n var filter = defaults.filter;\n\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (_typeof(obj) !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n\n pushToArray(keys, stringify(obj[key], key, generateArrayPrefix, options.strictNullHandling, options.skipNulls, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.formatter, options.encodeValuesOnly, options.charset));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n\n},{\"./formats\":3,\"./utils\":7}],7:[function(require,module,exports){\n'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = function () {\n var array = [];\n\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}();\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (_typeof(source) !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && _typeof(target) === 'object') {\n if (options && (options.plainObjects || options.allowPrototypes) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || _typeof(target) !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n\n if (targetItem && _typeof(targetItem) === 'object' && item && _typeof(item) === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function decode(str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n } // utf-8\n\n\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n\n if (_typeof(str) === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || c >= 0x30 && c <= 0x39 // 0-9\n || c >= 0x41 && c <= 0x5A // a-z\n || c >= 0x61 && c <= 0x7A // A-Z\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | c >> 6] + hexTable[0x80 | c & 0x3F]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | c >> 12] + hexTable[0x80 | c >> 6 & 0x3F] + hexTable[0x80 | c & 0x3F]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + ((c & 0x3FF) << 10 | string.charCodeAt(i) & 0x3FF);\n out += hexTable[0xF0 | c >> 18] + hexTable[0x80 | c >> 12 & 0x3F] + hexTable[0x80 | c >> 6 & 0x3F] + hexTable[0x80 | c & 0x3F];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{\n obj: {\n o: value\n },\n prop: 'o'\n }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n var keys = Object.keys(obj);\n\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n\n if (_typeof(val) === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({\n obj: obj,\n prop: key\n });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || _typeof(obj) !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n\n return mapped;\n }\n\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n\n},{}],8:[function(require,module,exports){\n\"use strict\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction Agent() {\n this._defaults = [];\n}\n\n['use', 'on', 'once', 'set', 'query', 'type', 'accept', 'auth', 'withCredentials', 'sortQuery', 'retry', 'ok', 'redirects', 'timeout', 'buffer', 'serialize', 'parse', 'ca', 'key', 'pfx', 'cert', 'disableTLSCerts'].forEach(function (fn) {\n // Default setting for all requests from this agent\n Agent.prototype[fn] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n this._defaults.push({\n fn: fn,\n args: args\n });\n\n return this;\n };\n});\n\nAgent.prototype._setDefaults = function (req) {\n this._defaults.forEach(function (def) {\n req[def.fn].apply(req, _toConsumableArray(def.args));\n });\n};\n\nmodule.exports = Agent;\n\n},{}],9:[function(require,module,exports){\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Check if `obj` is an object.\n *\n * @param {Object} obj\n * @return {Boolean}\n * @api private\n */\nfunction isObject(obj) {\n return obj !== null && _typeof(obj) === 'object';\n}\n\nmodule.exports = isObject;\n\n},{}],10:[function(require,module,exports){\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Root reference for iframes.\n */\nvar root;\n\nif (typeof window !== 'undefined') {\n // Browser window\n root = window;\n} else if (typeof self === 'undefined') {\n // Other environments\n console.warn('Using browser-only version of superagent in non-browser environment');\n root = void 0;\n} else {\n // Web Worker\n root = self;\n}\n\nvar Emitter = require('component-emitter');\n\nvar safeStringify = require('fast-safe-stringify');\n\nvar qs = require('qs');\n\nvar RequestBase = require('./request-base');\n\nvar isObject = require('./is-object');\n\nvar ResponseBase = require('./response-base');\n\nvar Agent = require('./agent-base');\n/**\n * Noop.\n */\n\n\nfunction noop() {}\n/**\n * Expose `request`.\n */\n\n\nmodule.exports = function (method, url) {\n // callback\n if (typeof url === 'function') {\n return new exports.Request('GET', method).end(url);\n } // url first\n\n\n if (arguments.length === 1) {\n return new exports.Request('GET', method);\n }\n\n return new exports.Request(method, url);\n};\n\nexports = module.exports;\nvar request = exports;\nexports.Request = Request;\n/**\n * Determine XHR.\n */\n\nrequest.getXHR = function () {\n if (root.XMLHttpRequest && (!root.location || root.location.protocol !== 'file:' || !root.ActiveXObject)) {\n return new XMLHttpRequest();\n }\n\n try {\n return new ActiveXObject('Microsoft.XMLHTTP');\n } catch (_unused) {}\n\n try {\n return new ActiveXObject('Msxml2.XMLHTTP.6.0');\n } catch (_unused2) {}\n\n try {\n return new ActiveXObject('Msxml2.XMLHTTP.3.0');\n } catch (_unused3) {}\n\n try {\n return new ActiveXObject('Msxml2.XMLHTTP');\n } catch (_unused4) {}\n\n throw new Error('Browser-only version of superagent could not find XHR');\n};\n/**\n * Removes leading and trailing whitespace, added to support IE.\n *\n * @param {String} s\n * @return {String}\n * @api private\n */\n\n\nvar trim = ''.trim ? function (s) {\n return s.trim();\n} : function (s) {\n return s.replace(/(^\\s*|\\s*$)/g, '');\n};\n/**\n * Serialize the given `obj`.\n *\n * @param {Object} obj\n * @return {String}\n * @api private\n */\n\nfunction serialize(obj) {\n if (!isObject(obj)) return obj;\n var pairs = [];\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) pushEncodedKeyValuePair(pairs, key, obj[key]);\n }\n\n return pairs.join('&');\n}\n/**\n * Helps 'serialize' with serializing arrays.\n * Mutates the pairs array.\n *\n * @param {Array} pairs\n * @param {String} key\n * @param {Mixed} val\n */\n\n\nfunction pushEncodedKeyValuePair(pairs, key, val) {\n if (val === undefined) return;\n\n if (val === null) {\n pairs.push(encodeURI(key));\n return;\n }\n\n if (Array.isArray(val)) {\n val.forEach(function (v) {\n pushEncodedKeyValuePair(pairs, key, v);\n });\n } else if (isObject(val)) {\n for (var subkey in val) {\n if (Object.prototype.hasOwnProperty.call(val, subkey)) pushEncodedKeyValuePair(pairs, \"\".concat(key, \"[\").concat(subkey, \"]\"), val[subkey]);\n }\n } else {\n pairs.push(encodeURI(key) + '=' + encodeURIComponent(val));\n }\n}\n/**\n * Expose serialization method.\n */\n\n\nrequest.serializeObject = serialize;\n/**\n * Parse the given x-www-form-urlencoded `str`.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseString(str) {\n var obj = {};\n var pairs = str.split('&');\n var pair;\n var pos;\n\n for (var i = 0, len = pairs.length; i < len; ++i) {\n pair = pairs[i];\n pos = pair.indexOf('=');\n\n if (pos === -1) {\n obj[decodeURIComponent(pair)] = '';\n } else {\n obj[decodeURIComponent(pair.slice(0, pos))] = decodeURIComponent(pair.slice(pos + 1));\n }\n }\n\n return obj;\n}\n/**\n * Expose parser.\n */\n\n\nrequest.parseString = parseString;\n/**\n * Default MIME type map.\n *\n * superagent.types.xml = 'application/xml';\n *\n */\n\nrequest.types = {\n html: 'text/html',\n json: 'application/json',\n xml: 'text/xml',\n urlencoded: 'application/x-www-form-urlencoded',\n form: 'application/x-www-form-urlencoded',\n 'form-data': 'application/x-www-form-urlencoded'\n};\n/**\n * Default serialization map.\n *\n * superagent.serialize['application/xml'] = function(obj){\n * return 'generated xml here';\n * };\n *\n */\n\nrequest.serialize = {\n 'application/x-www-form-urlencoded': qs.stringify,\n 'application/json': safeStringify\n};\n/**\n * Default parsers.\n *\n * superagent.parse['application/xml'] = function(str){\n * return { object parsed from str };\n * };\n *\n */\n\nrequest.parse = {\n 'application/x-www-form-urlencoded': parseString,\n 'application/json': JSON.parse\n};\n/**\n * Parse the given header `str` into\n * an object containing the mapped fields.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseHeader(str) {\n var lines = str.split(/\\r?\\n/);\n var fields = {};\n var index;\n var line;\n var field;\n var val;\n\n for (var i = 0, len = lines.length; i < len; ++i) {\n line = lines[i];\n index = line.indexOf(':');\n\n if (index === -1) {\n // could be empty line, just skip it\n continue;\n }\n\n field = line.slice(0, index).toLowerCase();\n val = trim(line.slice(index + 1));\n fields[field] = val;\n }\n\n return fields;\n}\n/**\n * Check if `mime` is json or has +json structured syntax suffix.\n *\n * @param {String} mime\n * @return {Boolean}\n * @api private\n */\n\n\nfunction isJSON(mime) {\n // should match /json or +json\n // but not /json-seq\n return /[/+]json($|[^-\\w])/i.test(mime);\n}\n/**\n * Initialize a new `Response` with the given `xhr`.\n *\n * - set flags (.ok, .error, etc)\n * - parse header\n *\n * Examples:\n *\n * Aliasing `superagent` as `request` is nice:\n *\n * request = superagent;\n *\n * We can use the promise-like API, or pass callbacks:\n *\n * request.get('/').end(function(res){});\n * request.get('/', function(res){});\n *\n * Sending data can be chained:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' })\n * .end(function(res){});\n *\n * Or passed to `.send()`:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' }, function(res){});\n *\n * Or passed to `.post()`:\n *\n * request\n * .post('/user', { name: 'tj' })\n * .end(function(res){});\n *\n * Or further reduced to a single call for simple cases:\n *\n * request\n * .post('/user', { name: 'tj' }, function(res){});\n *\n * @param {XMLHTTPRequest} xhr\n * @param {Object} options\n * @api private\n */\n\n\nfunction Response(req) {\n this.req = req;\n this.xhr = this.req.xhr; // responseText is accessible only if responseType is '' or 'text' and on older browsers\n\n this.text = this.req.method !== 'HEAD' && (this.xhr.responseType === '' || this.xhr.responseType === 'text') || typeof this.xhr.responseType === 'undefined' ? this.xhr.responseText : null;\n this.statusText = this.req.xhr.statusText;\n var status = this.xhr.status; // handle IE9 bug: http://stackoverflow.com/questions/10046972/msie-returns-status-code-of-1223-for-ajax-request\n\n if (status === 1223) {\n status = 204;\n }\n\n this._setStatusProperties(status);\n\n this.headers = parseHeader(this.xhr.getAllResponseHeaders());\n this.header = this.headers; // getAllResponseHeaders sometimes falsely returns \"\" for CORS requests, but\n // getResponseHeader still works. so we get content-type even if getting\n // other headers fails.\n\n this.header['content-type'] = this.xhr.getResponseHeader('content-type');\n\n this._setHeaderProperties(this.header);\n\n if (this.text === null && req._responseType) {\n this.body = this.xhr.response;\n } else {\n this.body = this.req.method === 'HEAD' ? null : this._parseBody(this.text ? this.text : this.xhr.response);\n }\n} // eslint-disable-next-line new-cap\n\n\nResponseBase(Response.prototype);\n/**\n * Parse the given body `str`.\n *\n * Used for auto-parsing of bodies. Parsers\n * are defined on the `superagent.parse` object.\n *\n * @param {String} str\n * @return {Mixed}\n * @api private\n */\n\nResponse.prototype._parseBody = function (str) {\n var parse = request.parse[this.type];\n\n if (this.req._parser) {\n return this.req._parser(this, str);\n }\n\n if (!parse && isJSON(this.type)) {\n parse = request.parse['application/json'];\n }\n\n return parse && str && (str.length > 0 || str instanceof Object) ? parse(str) : null;\n};\n/**\n * Return an `Error` representative of this response.\n *\n * @return {Error}\n * @api public\n */\n\n\nResponse.prototype.toError = function () {\n var req = this.req;\n var method = req.method;\n var url = req.url;\n var msg = \"cannot \".concat(method, \" \").concat(url, \" (\").concat(this.status, \")\");\n var err = new Error(msg);\n err.status = this.status;\n err.method = method;\n err.url = url;\n return err;\n};\n/**\n * Expose `Response`.\n */\n\n\nrequest.Response = Response;\n/**\n * Initialize a new `Request` with the given `method` and `url`.\n *\n * @param {String} method\n * @param {String} url\n * @api public\n */\n\nfunction Request(method, url) {\n var self = this;\n this._query = this._query || [];\n this.method = method;\n this.url = url;\n this.header = {}; // preserves header name case\n\n this._header = {}; // coerces header names to lowercase\n\n this.on('end', function () {\n var err = null;\n var res = null;\n\n try {\n res = new Response(self);\n } catch (err_) {\n err = new Error('Parser is unable to parse the response');\n err.parse = true;\n err.original = err_; // issue #675: return the raw response if the response parsing fails\n\n if (self.xhr) {\n // ie9 doesn't have 'response' property\n err.rawResponse = typeof self.xhr.responseType === 'undefined' ? self.xhr.responseText : self.xhr.response; // issue #876: return the http status code if the response parsing fails\n\n err.status = self.xhr.status ? self.xhr.status : null;\n err.statusCode = err.status; // backwards-compat only\n } else {\n err.rawResponse = null;\n err.status = null;\n }\n\n return self.callback(err);\n }\n\n self.emit('response', res);\n var new_err;\n\n try {\n if (!self._isResponseOK(res)) {\n new_err = new Error(res.statusText || res.text || 'Unsuccessful HTTP response');\n }\n } catch (err_) {\n new_err = err_; // ok() callback can throw\n } // #1000 don't catch errors from the callback to avoid double calling it\n\n\n if (new_err) {\n new_err.original = err;\n new_err.response = res;\n new_err.status = res.status;\n self.callback(new_err, res);\n } else {\n self.callback(null, res);\n }\n });\n}\n/**\n * Mixin `Emitter` and `RequestBase`.\n */\n// eslint-disable-next-line new-cap\n\n\nEmitter(Request.prototype); // eslint-disable-next-line new-cap\n\nRequestBase(Request.prototype);\n/**\n * Set Content-Type to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.xml = 'application/xml';\n *\n * request.post('/')\n * .type('xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * request.post('/')\n * .type('application/xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * @param {String} type\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.type = function (type) {\n this.set('Content-Type', request.types[type] || type);\n return this;\n};\n/**\n * Set Accept to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.json = 'application/json';\n *\n * request.get('/agent')\n * .accept('json')\n * .end(callback);\n *\n * request.get('/agent')\n * .accept('application/json')\n * .end(callback);\n *\n * @param {String} accept\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.accept = function (type) {\n this.set('Accept', request.types[type] || type);\n return this;\n};\n/**\n * Set Authorization field value with `user` and `pass`.\n *\n * @param {String} user\n * @param {String} [pass] optional in case of using 'bearer' as type\n * @param {Object} options with 'type' property 'auto', 'basic' or 'bearer' (default 'basic')\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.auth = function (user, pass, options) {\n if (arguments.length === 1) pass = '';\n\n if (_typeof(pass) === 'object' && pass !== null) {\n // pass is optional and can be replaced with options\n options = pass;\n pass = '';\n }\n\n if (!options) {\n options = {\n type: typeof btoa === 'function' ? 'basic' : 'auto'\n };\n }\n\n var encoder = function encoder(string) {\n if (typeof btoa === 'function') {\n return btoa(string);\n }\n\n throw new Error('Cannot use basic auth, btoa is not a function');\n };\n\n return this._auth(user, pass, options, encoder);\n};\n/**\n * Add query-string `val`.\n *\n * Examples:\n *\n * request.get('/shoes')\n * .query('size=10')\n * .query({ color: 'blue' })\n *\n * @param {Object|String} val\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.query = function (val) {\n if (typeof val !== 'string') val = serialize(val);\n if (val) this._query.push(val);\n return this;\n};\n/**\n * Queue the given `file` as an attachment to the specified `field`,\n * with optional `options` (or filename).\n *\n * ``` js\n * request.post('/upload')\n * .attach('content', new Blob(['hey!'], { type: \"text/html\"}))\n * .end(callback);\n * ```\n *\n * @param {String} field\n * @param {Blob|File} file\n * @param {String|Object} options\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.attach = function (field, file, options) {\n if (file) {\n if (this._data) {\n throw new Error(\"superagent can't mix .send() and .attach()\");\n }\n\n this._getFormData().append(field, file, options || file.name);\n }\n\n return this;\n};\n\nRequest.prototype._getFormData = function () {\n if (!this._formData) {\n this._formData = new root.FormData();\n }\n\n return this._formData;\n};\n/**\n * Invoke the callback with `err` and `res`\n * and handle arity check.\n *\n * @param {Error} err\n * @param {Response} res\n * @api private\n */\n\n\nRequest.prototype.callback = function (err, res) {\n if (this._shouldRetry(err, res)) {\n return this._retry();\n }\n\n var fn = this._callback;\n this.clearTimeout();\n\n if (err) {\n if (this._maxRetries) err.retries = this._retries - 1;\n this.emit('error', err);\n }\n\n fn(err, res);\n};\n/**\n * Invoke callback with x-domain error.\n *\n * @api private\n */\n\n\nRequest.prototype.crossDomainError = function () {\n var err = new Error('Request has been terminated\\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.');\n err.crossDomain = true;\n err.status = this.status;\n err.method = this.method;\n err.url = this.url;\n this.callback(err);\n}; // This only warns, because the request is still likely to work\n\n\nRequest.prototype.agent = function () {\n console.warn('This is not supported in browser version of superagent');\n return this;\n};\n\nRequest.prototype.ca = Request.prototype.agent;\nRequest.prototype.buffer = Request.prototype.ca; // This throws, because it can't send/receive data as expected\n\nRequest.prototype.write = function () {\n throw new Error('Streaming is not supported in browser version of superagent');\n};\n\nRequest.prototype.pipe = Request.prototype.write;\n/**\n * Check if `obj` is a host object,\n * we don't want to serialize these :)\n *\n * @param {Object} obj host object\n * @return {Boolean} is a host object\n * @api private\n */\n\nRequest.prototype._isHost = function (obj) {\n // Native objects stringify to [object File], [object Blob], [object FormData], etc.\n return obj && _typeof(obj) === 'object' && !Array.isArray(obj) && Object.prototype.toString.call(obj) !== '[object Object]';\n};\n/**\n * Initiate request, invoking callback `fn(res)`\n * with an instanceof `Response`.\n *\n * @param {Function} fn\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequest.prototype.end = function (fn) {\n if (this._endCalled) {\n console.warn('Warning: .end() was called twice. This is not supported in superagent');\n }\n\n this._endCalled = true; // store callback\n\n this._callback = fn || noop; // querystring\n\n this._finalizeQueryString();\n\n this._end();\n};\n\nRequest.prototype._setUploadTimeout = function () {\n var self = this; // upload timeout it's wokrs only if deadline timeout is off\n\n if (this._uploadTimeout && !this._uploadTimeoutTimer) {\n this._uploadTimeoutTimer = setTimeout(function () {\n self._timeoutError('Upload timeout of ', self._uploadTimeout, 'ETIMEDOUT');\n }, this._uploadTimeout);\n }\n}; // eslint-disable-next-line complexity\n\n\nRequest.prototype._end = function () {\n if (this._aborted) return this.callback(new Error('The request has been aborted even before .end() was called'));\n var self = this;\n this.xhr = request.getXHR();\n var xhr = this.xhr;\n var data = this._formData || this._data;\n\n this._setTimeouts(); // state change\n\n\n xhr.onreadystatechange = function () {\n var readyState = xhr.readyState;\n\n if (readyState >= 2 && self._responseTimeoutTimer) {\n clearTimeout(self._responseTimeoutTimer);\n }\n\n if (readyState !== 4) {\n return;\n } // In IE9, reads to any property (e.g. status) off of an aborted XHR will\n // result in the error \"Could not complete the operation due to error c00c023f\"\n\n\n var status;\n\n try {\n status = xhr.status;\n } catch (_unused5) {\n status = 0;\n }\n\n if (!status) {\n if (self.timedout || self._aborted) return;\n return self.crossDomainError();\n }\n\n self.emit('end');\n }; // progress\n\n\n var handleProgress = function handleProgress(direction, e) {\n if (e.total > 0) {\n e.percent = e.loaded / e.total * 100;\n\n if (e.percent === 100) {\n clearTimeout(self._uploadTimeoutTimer);\n }\n }\n\n e.direction = direction;\n self.emit('progress', e);\n };\n\n if (this.hasListeners('progress')) {\n try {\n xhr.addEventListener('progress', handleProgress.bind(null, 'download'));\n\n if (xhr.upload) {\n xhr.upload.addEventListener('progress', handleProgress.bind(null, 'upload'));\n }\n } catch (_unused6) {// Accessing xhr.upload fails in IE from a web worker, so just pretend it doesn't exist.\n // Reported here:\n // https://connect.microsoft.com/IE/feedback/details/837245/xmlhttprequest-upload-throws-invalid-argument-when-used-from-web-worker-context\n }\n }\n\n if (xhr.upload) {\n this._setUploadTimeout();\n } // initiate request\n\n\n try {\n if (this.username && this.password) {\n xhr.open(this.method, this.url, true, this.username, this.password);\n } else {\n xhr.open(this.method, this.url, true);\n }\n } catch (err) {\n // see #1149\n return this.callback(err);\n } // CORS\n\n\n if (this._withCredentials) xhr.withCredentials = true; // body\n\n if (!this._formData && this.method !== 'GET' && this.method !== 'HEAD' && typeof data !== 'string' && !this._isHost(data)) {\n // serialize stuff\n var contentType = this._header['content-type'];\n\n var _serialize = this._serializer || request.serialize[contentType ? contentType.split(';')[0] : ''];\n\n if (!_serialize && isJSON(contentType)) {\n _serialize = request.serialize['application/json'];\n }\n\n if (_serialize) data = _serialize(data);\n } // set header fields\n\n\n for (var field in this.header) {\n if (this.header[field] === null) continue;\n if (Object.prototype.hasOwnProperty.call(this.header, field)) xhr.setRequestHeader(field, this.header[field]);\n }\n\n if (this._responseType) {\n xhr.responseType = this._responseType;\n } // send stuff\n\n\n this.emit('request', this); // IE11 xhr.send(undefined) sends 'undefined' string as POST payload (instead of nothing)\n // We need null here if data is undefined\n\n xhr.send(typeof data === 'undefined' ? null : data);\n};\n\nrequest.agent = function () {\n return new Agent();\n};\n\n['GET', 'POST', 'OPTIONS', 'PATCH', 'PUT', 'DELETE'].forEach(function (method) {\n Agent.prototype[method.toLowerCase()] = function (url, fn) {\n var req = new request.Request(method, url);\n\n this._setDefaults(req);\n\n if (fn) {\n req.end(fn);\n }\n\n return req;\n };\n});\nAgent.prototype.del = Agent.prototype.delete;\n/**\n * GET `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.get = function (url, data, fn) {\n var req = request('GET', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * HEAD `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.head = function (url, data, fn) {\n var req = request('HEAD', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * OPTIONS query to `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.options = function (url, data, fn) {\n var req = request('OPTIONS', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * DELETE `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nfunction del(url, data, fn) {\n var req = request('DELETE', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n}\n\nrequest.del = del;\nrequest.delete = del;\n/**\n * PATCH `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.patch = function (url, data, fn) {\n var req = request('PATCH', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * POST `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.post = function (url, data, fn) {\n var req = request('POST', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n/**\n * PUT `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\n\nrequest.put = function (url, data, fn) {\n var req = request('PUT', url);\n\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n},{\"./agent-base\":8,\"./is-object\":9,\"./request-base\":11,\"./response-base\":12,\"component-emitter\":1,\"fast-safe-stringify\":2,\"qs\":4}],11:[function(require,module,exports){\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Module of mixed-in functions shared between node and client code\n */\nvar isObject = require('./is-object');\n/**\n * Expose `RequestBase`.\n */\n\n\nmodule.exports = RequestBase;\n/**\n * Initialize a new `RequestBase`.\n *\n * @api public\n */\n\nfunction RequestBase(object) {\n if (object) return mixin(object);\n}\n/**\n * Mixin the prototype properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\n\nfunction mixin(object) {\n for (var key in RequestBase.prototype) {\n if (Object.prototype.hasOwnProperty.call(RequestBase.prototype, key)) object[key] = RequestBase.prototype[key];\n }\n\n return object;\n}\n/**\n * Clear previous timeout.\n *\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.clearTimeout = function () {\n clearTimeout(this._timer);\n clearTimeout(this._responseTimeoutTimer);\n clearTimeout(this._uploadTimeoutTimer);\n delete this._timer;\n delete this._responseTimeoutTimer;\n delete this._uploadTimeoutTimer;\n return this;\n};\n/**\n * Override default response body parser\n *\n * This function will be called to convert incoming data into request.body\n *\n * @param {Function}\n * @api public\n */\n\n\nRequestBase.prototype.parse = function (fn) {\n this._parser = fn;\n return this;\n};\n/**\n * Set format of binary response body.\n * In browser valid formats are 'blob' and 'arraybuffer',\n * which return Blob and ArrayBuffer, respectively.\n *\n * In Node all values result in Buffer.\n *\n * Examples:\n *\n * req.get('/')\n * .responseType('blob')\n * .end(callback);\n *\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.responseType = function (value) {\n this._responseType = value;\n return this;\n};\n/**\n * Override default request body serializer\n *\n * This function will be called to convert data set via .send or .attach into payload to send\n *\n * @param {Function}\n * @api public\n */\n\n\nRequestBase.prototype.serialize = function (fn) {\n this._serializer = fn;\n return this;\n};\n/**\n * Set timeouts.\n *\n * - response timeout is time between sending request and receiving the first byte of the response. Includes DNS and connection time.\n * - deadline is the time from start of the request to receiving response body in full. If the deadline is too short large files may not load at all on slow connections.\n * - upload is the time since last bit of data was sent or received. This timeout works only if deadline timeout is off\n *\n * Value of 0 or false means no timeout.\n *\n * @param {Number|Object} ms or {response, deadline}\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.timeout = function (options) {\n if (!options || _typeof(options) !== 'object') {\n this._timeout = options;\n this._responseTimeout = 0;\n this._uploadTimeout = 0;\n return this;\n }\n\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option)) {\n switch (option) {\n case 'deadline':\n this._timeout = options.deadline;\n break;\n\n case 'response':\n this._responseTimeout = options.response;\n break;\n\n case 'upload':\n this._uploadTimeout = options.upload;\n break;\n\n default:\n console.warn('Unknown timeout option', option);\n }\n }\n }\n\n return this;\n};\n/**\n * Set number of retry attempts on error.\n *\n * Failed requests will be retried 'count' times if timeout or err.code >= 500.\n *\n * @param {Number} count\n * @param {Function} [fn]\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.retry = function (count, fn) {\n // Default to 1 if no count passed or true\n if (arguments.length === 0 || count === true) count = 1;\n if (count <= 0) count = 0;\n this._maxRetries = count;\n this._retries = 0;\n this._retryCallback = fn;\n return this;\n}; //\n// NOTE: we do not include ESOCKETTIMEDOUT because that is from `request` package\n// \n//\n// NOTE: we do not include EADDRINFO because it was removed from libuv in 2014\n// \n// \n//\n//\n// TODO: expose these as configurable defaults\n//\n\n\nvar ERROR_CODES = new Set(['ETIMEDOUT', 'ECONNRESET', 'EADDRINUSE', 'ECONNREFUSED', 'EPIPE', 'ENOTFOUND', 'ENETUNREACH', 'EAI_AGAIN']);\nvar STATUS_CODES = new Set([408, 413, 429, 500, 502, 503, 504, 521, 522, 524]); // TODO: we would need to make this easily configurable before adding it in (e.g. some might want to add POST)\n// const METHODS = new Set(['GET', 'PUT', 'HEAD', 'DELETE', 'OPTIONS', 'TRACE']);\n\n/**\n * Determine if a request should be retried.\n * (Inspired by https://github.com/sindresorhus/got#retry)\n *\n * @param {Error} err an error\n * @param {Response} [res] response\n * @returns {Boolean} if segment should be retried\n */\n\nRequestBase.prototype._shouldRetry = function (err, res) {\n if (!this._maxRetries || this._retries++ >= this._maxRetries) {\n return false;\n }\n\n if (this._retryCallback) {\n try {\n var override = this._retryCallback(err, res);\n\n if (override === true) return true;\n if (override === false) return false; // undefined falls back to defaults\n } catch (err_) {\n console.error(err_);\n }\n } // TODO: we would need to make this easily configurable before adding it in (e.g. some might want to add POST)\n\n /*\n if (\n this.req &&\n this.req.method &&\n !METHODS.has(this.req.method.toUpperCase())\n )\n return false;\n */\n\n\n if (res && res.status && STATUS_CODES.has(res.status)) return true;\n\n if (err) {\n if (err.code && ERROR_CODES.has(err.code)) return true; // Superagent timeout\n\n if (err.timeout && err.code === 'ECONNABORTED') return true;\n if (err.crossDomain) return true;\n }\n\n return false;\n};\n/**\n * Retry request\n *\n * @return {Request} for chaining\n * @api private\n */\n\n\nRequestBase.prototype._retry = function () {\n this.clearTimeout(); // node\n\n if (this.req) {\n this.req = null;\n this.req = this.request();\n }\n\n this._aborted = false;\n this.timedout = false;\n this.timedoutError = null;\n return this._end();\n};\n/**\n * Promise support\n *\n * @param {Function} resolve\n * @param {Function} [reject]\n * @return {Request}\n */\n\n\nRequestBase.prototype.then = function (resolve, reject) {\n var _this = this;\n\n if (!this._fullfilledPromise) {\n var self = this;\n\n if (this._endCalled) {\n console.warn('Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises');\n }\n\n this._fullfilledPromise = new Promise(function (resolve, reject) {\n self.on('abort', function () {\n if (_this._maxRetries && _this._maxRetries > _this._retries) {\n return;\n }\n\n if (_this.timedout && _this.timedoutError) {\n reject(_this.timedoutError);\n return;\n }\n\n var err = new Error('Aborted');\n err.code = 'ABORTED';\n err.status = _this.status;\n err.method = _this.method;\n err.url = _this.url;\n reject(err);\n });\n self.end(function (err, res) {\n if (err) reject(err);else resolve(res);\n });\n });\n }\n\n return this._fullfilledPromise.then(resolve, reject);\n};\n\nRequestBase.prototype.catch = function (cb) {\n return this.then(undefined, cb);\n};\n/**\n * Allow for extension\n */\n\n\nRequestBase.prototype.use = function (fn) {\n fn(this);\n return this;\n};\n\nRequestBase.prototype.ok = function (cb) {\n if (typeof cb !== 'function') throw new Error('Callback required');\n this._okCallback = cb;\n return this;\n};\n\nRequestBase.prototype._isResponseOK = function (res) {\n if (!res) {\n return false;\n }\n\n if (this._okCallback) {\n return this._okCallback(res);\n }\n\n return res.status >= 200 && res.status < 300;\n};\n/**\n * Get request header `field`.\n * Case-insensitive.\n *\n * @param {String} field\n * @return {String}\n * @api public\n */\n\n\nRequestBase.prototype.get = function (field) {\n return this._header[field.toLowerCase()];\n};\n/**\n * Get case-insensitive header `field` value.\n * This is a deprecated internal API. Use `.get(field)` instead.\n *\n * (getHeader is no longer used internally by the superagent code base)\n *\n * @param {String} field\n * @return {String}\n * @api private\n * @deprecated\n */\n\n\nRequestBase.prototype.getHeader = RequestBase.prototype.get;\n/**\n * Set header `field` to `val`, or multiple fields with one object.\n * Case-insensitive.\n *\n * Examples:\n *\n * req.get('/')\n * .set('Accept', 'application/json')\n * .set('X-API-Key', 'foobar')\n * .end(callback);\n *\n * req.get('/')\n * .set({ Accept: 'application/json', 'X-API-Key': 'foobar' })\n * .end(callback);\n *\n * @param {String|Object} field\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.set = function (field, value) {\n if (isObject(field)) {\n for (var key in field) {\n if (Object.prototype.hasOwnProperty.call(field, key)) this.set(key, field[key]);\n }\n\n return this;\n }\n\n this._header[field.toLowerCase()] = value;\n this.header[field] = value;\n return this;\n};\n/**\n * Remove header `field`.\n * Case-insensitive.\n *\n * Example:\n *\n * req.get('/')\n * .unset('User-Agent')\n * .end(callback);\n *\n * @param {String} field field name\n */\n\n\nRequestBase.prototype.unset = function (field) {\n delete this._header[field.toLowerCase()];\n delete this.header[field];\n return this;\n};\n/**\n * Write the field `name` and `val`, or multiple fields with one object\n * for \"multipart/form-data\" request bodies.\n *\n * ``` js\n * request.post('/upload')\n * .field('foo', 'bar')\n * .end(callback);\n *\n * request.post('/upload')\n * .field({ foo: 'bar', baz: 'qux' })\n * .end(callback);\n * ```\n *\n * @param {String|Object} name name of field\n * @param {String|Blob|File|Buffer|fs.ReadStream} val value of field\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.field = function (name, value) {\n // name should be either a string or an object.\n if (name === null || undefined === name) {\n throw new Error('.field(name, val) name can not be empty');\n }\n\n if (this._data) {\n throw new Error(\".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()\");\n }\n\n if (isObject(name)) {\n for (var key in name) {\n if (Object.prototype.hasOwnProperty.call(name, key)) this.field(key, name[key]);\n }\n\n return this;\n }\n\n if (Array.isArray(value)) {\n for (var i in value) {\n if (Object.prototype.hasOwnProperty.call(value, i)) this.field(name, value[i]);\n }\n\n return this;\n } // val should be defined now\n\n\n if (value === null || undefined === value) {\n throw new Error('.field(name, val) val can not be empty');\n }\n\n if (typeof value === 'boolean') {\n value = String(value);\n }\n\n this._getFormData().append(name, value);\n\n return this;\n};\n/**\n * Abort the request, and clear potential timeout.\n *\n * @return {Request} request\n * @api public\n */\n\n\nRequestBase.prototype.abort = function () {\n if (this._aborted) {\n return this;\n }\n\n this._aborted = true;\n if (this.xhr) this.xhr.abort(); // browser\n\n if (this.req) this.req.abort(); // node\n\n this.clearTimeout();\n this.emit('abort');\n return this;\n};\n\nRequestBase.prototype._auth = function (user, pass, options, base64Encoder) {\n switch (options.type) {\n case 'basic':\n this.set('Authorization', \"Basic \".concat(base64Encoder(\"\".concat(user, \":\").concat(pass))));\n break;\n\n case 'auto':\n this.username = user;\n this.password = pass;\n break;\n\n case 'bearer':\n // usage would be .auth(accessToken, { type: 'bearer' })\n this.set('Authorization', \"Bearer \".concat(user));\n break;\n\n default:\n break;\n }\n\n return this;\n};\n/**\n * Enable transmission of cookies with x-domain requests.\n *\n * Note that for this to work the origin must not be\n * using \"Access-Control-Allow-Origin\" with a wildcard,\n * and also must set \"Access-Control-Allow-Credentials\"\n * to \"true\".\n *\n * @api public\n */\n\n\nRequestBase.prototype.withCredentials = function (on) {\n // This is browser-only functionality. Node side is no-op.\n if (on === undefined) on = true;\n this._withCredentials = on;\n return this;\n};\n/**\n * Set the max redirects to `n`. Does nothing in browser XHR implementation.\n *\n * @param {Number} n\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.redirects = function (n) {\n this._maxRedirects = n;\n return this;\n};\n/**\n * Maximum size of buffered response body, in bytes. Counts uncompressed size.\n * Default 200MB.\n *\n * @param {Number} n number of bytes\n * @return {Request} for chaining\n */\n\n\nRequestBase.prototype.maxResponseSize = function (n) {\n if (typeof n !== 'number') {\n throw new TypeError('Invalid argument');\n }\n\n this._maxResponseSize = n;\n return this;\n};\n/**\n * Convert to a plain javascript object (not JSON string) of scalar properties.\n * Note as this method is designed to return a useful non-this value,\n * it cannot be chained.\n *\n * @return {Object} describing method, url, and data of this request\n * @api public\n */\n\n\nRequestBase.prototype.toJSON = function () {\n return {\n method: this.method,\n url: this.url,\n data: this._data,\n headers: this._header\n };\n};\n/**\n * Send `data` as the request body, defaulting the `.type()` to \"json\" when\n * an object is given.\n *\n * Examples:\n *\n * // manual json\n * request.post('/user')\n * .type('json')\n * .send('{\"name\":\"tj\"}')\n * .end(callback)\n *\n * // auto json\n * request.post('/user')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // manual x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send('name=tj')\n * .end(callback)\n *\n * // auto x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // defaults to x-www-form-urlencoded\n * request.post('/user')\n * .send('name=tobi')\n * .send('species=ferret')\n * .end(callback)\n *\n * @param {String|Object} data\n * @return {Request} for chaining\n * @api public\n */\n// eslint-disable-next-line complexity\n\n\nRequestBase.prototype.send = function (data) {\n var isObject_ = isObject(data);\n var type = this._header['content-type'];\n\n if (this._formData) {\n throw new Error(\".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()\");\n }\n\n if (isObject_ && !this._data) {\n if (Array.isArray(data)) {\n this._data = [];\n } else if (!this._isHost(data)) {\n this._data = {};\n }\n } else if (data && this._data && this._isHost(this._data)) {\n throw new Error(\"Can't merge these send calls\");\n } // merge\n\n\n if (isObject_ && isObject(this._data)) {\n for (var key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) this._data[key] = data[key];\n }\n } else if (typeof data === 'string') {\n // default to x-www-form-urlencoded\n if (!type) this.type('form');\n type = this._header['content-type'];\n if (type) type = type.toLowerCase().trim();\n\n if (type === 'application/x-www-form-urlencoded') {\n this._data = this._data ? \"\".concat(this._data, \"&\").concat(data) : data;\n } else {\n this._data = (this._data || '') + data;\n }\n } else {\n this._data = data;\n }\n\n if (!isObject_ || this._isHost(data)) {\n return this;\n } // default to json\n\n\n if (!type) this.type('json');\n return this;\n};\n/**\n * Sort `querystring` by the sort function\n *\n *\n * Examples:\n *\n * // default order\n * request.get('/user')\n * .query('name=Nick')\n * .query('search=Manny')\n * .sortQuery()\n * .end(callback)\n *\n * // customized sort function\n * request.get('/user')\n * .query('name=Nick')\n * .query('search=Manny')\n * .sortQuery(function(a, b){\n * return a.length - b.length;\n * })\n * .end(callback)\n *\n *\n * @param {Function} sort\n * @return {Request} for chaining\n * @api public\n */\n\n\nRequestBase.prototype.sortQuery = function (sort) {\n // _sort default to true but otherwise can be a function or boolean\n this._sort = typeof sort === 'undefined' ? true : sort;\n return this;\n};\n/**\n * Compose querystring to append to req.url\n *\n * @api private\n */\n\n\nRequestBase.prototype._finalizeQueryString = function () {\n var query = this._query.join('&');\n\n if (query) {\n this.url += (this.url.includes('?') ? '&' : '?') + query;\n }\n\n this._query.length = 0; // Makes the call idempotent\n\n if (this._sort) {\n var index = this.url.indexOf('?');\n\n if (index >= 0) {\n var queryArray = this.url.slice(index + 1).split('&');\n\n if (typeof this._sort === 'function') {\n queryArray.sort(this._sort);\n } else {\n queryArray.sort();\n }\n\n this.url = this.url.slice(0, index) + '?' + queryArray.join('&');\n }\n }\n}; // For backwards compat only\n\n\nRequestBase.prototype._appendQueryString = function () {\n console.warn('Unsupported');\n};\n/**\n * Invoke callback with timeout error.\n *\n * @api private\n */\n\n\nRequestBase.prototype._timeoutError = function (reason, timeout, errno) {\n if (this._aborted) {\n return;\n }\n\n var err = new Error(\"\".concat(reason + timeout, \"ms exceeded\"));\n err.timeout = timeout;\n err.code = 'ECONNABORTED';\n err.errno = errno;\n this.timedout = true;\n this.timedoutError = err;\n this.abort();\n this.callback(err);\n};\n\nRequestBase.prototype._setTimeouts = function () {\n var self = this; // deadline\n\n if (this._timeout && !this._timer) {\n this._timer = setTimeout(function () {\n self._timeoutError('Timeout of ', self._timeout, 'ETIME');\n }, this._timeout);\n } // response timeout\n\n\n if (this._responseTimeout && !this._responseTimeoutTimer) {\n this._responseTimeoutTimer = setTimeout(function () {\n self._timeoutError('Response timeout of ', self._responseTimeout, 'ETIMEDOUT');\n }, this._responseTimeout);\n }\n};\n\n},{\"./is-object\":9}],12:[function(require,module,exports){\n\"use strict\";\n\n/**\n * Module dependencies.\n */\nvar utils = require('./utils');\n/**\n * Expose `ResponseBase`.\n */\n\n\nmodule.exports = ResponseBase;\n/**\n * Initialize a new `ResponseBase`.\n *\n * @api public\n */\n\nfunction ResponseBase(obj) {\n if (obj) return mixin(obj);\n}\n/**\n * Mixin the prototype properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\n\nfunction mixin(obj) {\n for (var key in ResponseBase.prototype) {\n if (Object.prototype.hasOwnProperty.call(ResponseBase.prototype, key)) obj[key] = ResponseBase.prototype[key];\n }\n\n return obj;\n}\n/**\n * Get case-insensitive `field` value.\n *\n * @param {String} field\n * @return {String}\n * @api public\n */\n\n\nResponseBase.prototype.get = function (field) {\n return this.header[field.toLowerCase()];\n};\n/**\n * Set header related properties:\n *\n * - `.type` the content type without params\n *\n * A response of \"Content-Type: text/plain; charset=utf-8\"\n * will provide you with a `.type` of \"text/plain\".\n *\n * @param {Object} header\n * @api private\n */\n\n\nResponseBase.prototype._setHeaderProperties = function (header) {\n // TODO: moar!\n // TODO: make this a util\n // content-type\n var ct = header['content-type'] || '';\n this.type = utils.type(ct); // params\n\n var params = utils.params(ct);\n\n for (var key in params) {\n if (Object.prototype.hasOwnProperty.call(params, key)) this[key] = params[key];\n }\n\n this.links = {}; // links\n\n try {\n if (header.link) {\n this.links = utils.parseLinks(header.link);\n }\n } catch (_unused) {// ignore\n }\n};\n/**\n * Set flags such as `.ok` based on `status`.\n *\n * For example a 2xx response will give you a `.ok` of __true__\n * whereas 5xx will be __false__ and `.error` will be __true__. The\n * `.clientError` and `.serverError` are also available to be more\n * specific, and `.statusType` is the class of error ranging from 1..5\n * sometimes useful for mapping respond colors etc.\n *\n * \"sugar\" properties are also defined for common cases. Currently providing:\n *\n * - .noContent\n * - .badRequest\n * - .unauthorized\n * - .notAcceptable\n * - .notFound\n *\n * @param {Number} status\n * @api private\n */\n\n\nResponseBase.prototype._setStatusProperties = function (status) {\n var type = status / 100 | 0; // status / class\n\n this.statusCode = status;\n this.status = this.statusCode;\n this.statusType = type; // basics\n\n this.info = type === 1;\n this.ok = type === 2;\n this.redirect = type === 3;\n this.clientError = type === 4;\n this.serverError = type === 5;\n this.error = type === 4 || type === 5 ? this.toError() : false; // sugar\n\n this.created = status === 201;\n this.accepted = status === 202;\n this.noContent = status === 204;\n this.badRequest = status === 400;\n this.unauthorized = status === 401;\n this.notAcceptable = status === 406;\n this.forbidden = status === 403;\n this.notFound = status === 404;\n this.unprocessableEntity = status === 422;\n};\n\n},{\"./utils\":13}],13:[function(require,module,exports){\n\"use strict\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * Return the mime type for the given `str`.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\nexports.type = function (str) {\n return str.split(/ *; */).shift();\n};\n/**\n * Return header field parameters.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\n\nexports.params = function (val) {\n var obj = {};\n\n var _iterator = _createForOfIteratorHelper(val.split(/ *; */)),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var str = _step.value;\n var parts = str.split(/ *= */);\n var key = parts.shift();\n\n var _val = parts.shift();\n\n if (key && _val) obj[key] = _val;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return obj;\n};\n/**\n * Parse Link header fields.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\n\nexports.parseLinks = function (val) {\n var obj = {};\n\n var _iterator2 = _createForOfIteratorHelper(val.split(/ *, */)),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var str = _step2.value;\n var parts = str.split(/ *; */);\n var url = parts[0].slice(1, -1);\n var rel = parts[1].split(/ *= */)[1].slice(1, -1);\n obj[rel] = url;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return obj;\n};\n/**\n * Strip content related fields from `header`.\n *\n * @param {Object} header\n * @return {Object} header\n * @api private\n */\n\n\nexports.cleanHeader = function (header, changesOrigin) {\n delete header['content-type'];\n delete header['content-length'];\n delete header['transfer-encoding'];\n delete header.host; // secuirty\n\n if (changesOrigin) {\n delete header.authorization;\n delete header.cookie;\n }\n\n return header;\n};\n\n},{}]},{},[10])(10)\n});\n"],"names":["f","$d4422860d1c3abfd$exports","define","amd","window","$parcel$global","self","this","superagent","r1","e","n1","t","o","i","c","undefined","u","a","Error","code","p","exports","call","r","i1","length","require","module","obj","key","Emitter","prototype","mixin","addEventListener","event","fn","_callbacks","push","on","off","apply","arguments","removeListener","removeAllListeners","removeEventListener","cb","callbacks","splice","args","Array","len","slice","obj1","_typeof","Symbol","iterator","constructor","stringify","deterministicStringify","stableStringify","replacerStack","replacer","spacer","res","JSON","replaceGetterValues","arr","part","pop","Object","defineProperty","decirc","val","k","stack","parent","propertyDescriptor","getOwnPropertyDescriptor","get","configurable","value","keys","b","deterministicDecirc","tmp","toJSON","isArray","sort","compareFunction","v","replace","String","percentTwenties","util","Format","RFC1738","RFC3986","assign","default","formatters","parse","formats","utils","hasOwnProperty","decode","str","$0","numberStr","fromCharCode","parseInt","parseArrayValue","options","comma","indexOf","split","parseKeys","givenKey","valuesParsed","allowDots","child","segment","depth","exec","index","plainObjects","has","allowPrototypes","chain","leaf","root","parseArrays","concat","create","cleanRoot","charAt","isNaN","arrayLimit","parseObject","opts","defaults","decoder","TypeError","charset","charsetSentinel","delimiter","isRegExp","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","strictNullHandling","normalizeParseOptions","tempObj","Infinity","cleanStr","limit","skipIndex","parts","bracketEqualsPos","pos","maybeMap","encodedVal","combine","parseValues","newObj","merge","compact","obj2","brackets","prefix","pushToArray","valueOrArray","Date","toISOString","defaultFormat","encode","encoder","encodeValuesOnly","format","formatter","indices","serializeDate","date","toISO","stringify1","object","generateArrayPrefix","skipNulls","filter","isBuffer","objKeys","values","value1","keyPrefix","addQueryPrefix","normalizeStringifyOptions","arrayFormat","arrayPrefixGenerators","joined","join","obj3","array","toString","toUpperCase","arrayToObject","source","target","reduce","acc","queue","prop","refs","item","j","compacted","compactQueue","strWithoutPlus","unescape","decodeURIComponent","defaultEncoder","string","escape","charCodeAt","out","hexTable","mapped","mergeTarget","forEach","targetItem","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","minLen","n","name","test","_unsupportedIterableToArray","_nonIterableSpread","arr2","Agent","_defaults","_len","_key","_setDefaults","req","def","obj4","obj5","safeStringify","qs","RequestBase","noop","method","url","Request","end","XMLHttpRequest","location","protocol","ActiveXObject","_unused","_unused2","_unused3","s","trim","pairs","pushEncodedKeyValuePair","isObject","subkey","pair","mime","status","xhr","_setStatusProperties","headers","parseHeader","getAllResponseHeaders","header","getResponseHeader","_setHeaderProperties","text","_responseType","body","response","_parseBody","err","original","err_","rawResponse","responseType","responseText","new_err","callback","data","send","parseString","html","json","Response","request","type","_parser","isJSON","msg","auth","user","pass","_auth","query","serialize","_query","_getFormData","_formData","FormData","_shouldRetry","_retry","_callback","clearTimeout","_maxRetries","retries","_retries","emit","crossDomainError","crossDomain","agent","warn","ca","buffer","write","pipe","_endCalled","console","_end","_setUploadTimeout","_uploadTimeout","_uploadTimeoutTimer","setTimeout","_timeoutError","_aborted","getXHR","_data","_setTimeouts","onreadystatechange","readyState","_responseTimeoutTimer","_unused5","timedout","handleProgress","direction","total","percent","loaded","hasListeners","username","password","open","_withCredentials","withCredentials","_isHost","field","setRequestHeader","toLowerCase","del","delete","post","obj6","_serializer","timeout","_timeout","_responseTimeout","option","deadline","upload","retry","count","_retryCallback","ERROR_CODES","Set","error","STATUS_CODES","timedoutError","then","resolve1","reject1","_this","_fullfilledPromise","ok","_okCallback","_isResponseOK","_header","set","unset","base64Encoder","isObject_","sortQuery","_sort","_finalizeQueryString","includes","queryArray","errno","abort","ct","params","links","link","parseLinks","statusCode","statusType","info","redirect","clientError","toError","accepted","noContent","notAcceptable","forbidden","_createForOfIteratorHelper","allowArrayLike","it","F","_e","normalCompletion","didErr","step","next","done","_e2","return","_step","_iterator","shift","_val"],"version":3,"file":"modzyDeepFakeModel.js.map"} \ No newline at end of file diff --git a/dist/options.0e216617.css b/dist/options.0e216617.css deleted file mode 100644 index 01dbbc0..0000000 --- a/dist/options.0e216617.css +++ /dev/null @@ -1,2 +0,0 @@ -p{color:#1e90ff}.errorMessage{color:red;display:none;font-size:medium} -/*# sourceMappingURL=options.0e216617.css.map */ diff --git a/dist/options.0e216617.css.map b/dist/options.0e216617.css.map deleted file mode 100644 index 4659bd1..0000000 --- a/dist/options.0e216617.css.map +++ /dev/null @@ -1 +0,0 @@ -{"mappings":"AAAA,EACA,aACA,CAEA,cACA,SAAA,CACA,YAAA,CACA,gBACA","sources":["src/options.css"],"sourcesContent":["p{\r\n color: dodgerblue;\r\n}\r\n\r\n.errorMessage{\r\n color: red;\r\n display: none;\r\n font-size: medium;\r\n}\r\n"],"names":[],"version":3,"file":"options.0e216617.css.map"} \ No newline at end of file diff --git a/dist/options.19f21f05.css b/dist/options.19f21f05.css deleted file mode 100644 index 03aee1f..0000000 --- a/dist/options.19f21f05.css +++ /dev/null @@ -1,2 +0,0 @@ -p{color:#1e90ff}.errorMessage{color:red} -/*# sourceMappingURL=options.19f21f05.css.map */ diff --git a/dist/options.19f21f05.css.map b/dist/options.19f21f05.css.map deleted file mode 100644 index 7601caf..0000000 --- a/dist/options.19f21f05.css.map +++ /dev/null @@ -1 +0,0 @@ -{"mappings":"AAAA,EACA,aACA,CAEA,cACA,SACA","sources":["src/options.css"],"sourcesContent":["p{\r\n color: dodgerblue;\r\n}\r\n\r\n.errorMessage{\r\n color: red;\r\n}\r\n"],"names":[],"version":3,"file":"options.19f21f05.css.map"} \ No newline at end of file diff --git a/dist/options.4317c2a4.css b/dist/options.22d3752d.css similarity index 68% rename from dist/options.4317c2a4.css rename to dist/options.22d3752d.css index d2fc782..299cf4e 100644 --- a/dist/options.4317c2a4.css +++ b/dist/options.22d3752d.css @@ -1,2 +1,2 @@ .errorMessage{color:red}.errorMessage,.validMessage{display:none;font-size:medium}.validMessage{color:green} -/*# sourceMappingURL=options.4317c2a4.css.map */ +/*# sourceMappingURL=options.22d3752d.css.map */ diff --git a/dist/options.22d3752d.css.map b/dist/options.22d3752d.css.map new file mode 100644 index 0000000..3d1d026 --- /dev/null +++ b/dist/options.22d3752d.css.map @@ -0,0 +1 @@ +{"mappings":"AAAA,cACA,SAGA,CAEA,4BAJA,YAAA,CACA,gBAOA,CAJA,cACA,WAGA","sources":["src/options.css"],"sourcesContent":[".errorMessage{\n color: red;\n display: none;\n font-size: medium;\n}\n\n.validMessage{\n color: green;\n display: none;\n font-size: medium;\n}\n"],"names":[],"version":3,"file":"options.22d3752d.css.map"} \ No newline at end of file diff --git a/dist/options.4317c2a4.css.map b/dist/options.4317c2a4.css.map deleted file mode 100644 index b156726..0000000 --- a/dist/options.4317c2a4.css.map +++ /dev/null @@ -1 +0,0 @@ -{"mappings":"AAAA,cACA,SAGA,CAEA,4BAJA,YAAA,CACA,gBAOA,CAJA,cACA,WAGA","sources":["src/options.css"],"sourcesContent":[".errorMessage{\r\n color: red;\r\n display: none;\r\n font-size: medium;\r\n}\r\n\r\n.validMessage{\r\n color: green;\r\n display: none;\r\n font-size: medium;\r\n}\r\n"],"names":[],"version":3,"file":"options.4317c2a4.css.map"} \ No newline at end of file diff --git a/dist/options.e81abfba.css b/dist/options.639f6c8a.css similarity index 99% rename from dist/options.e81abfba.css rename to dist/options.639f6c8a.css index 028e8ae..ec30c82 100644 --- a/dist/options.e81abfba.css +++ b/dist/options.639f6c8a.css @@ -4,4 +4,4 @@ * Copyright 2015 Igor Adamenko (https://igoradamenko.com) * Licensed under MIT (https://github.com/igoradamenko/awsm.css/blob/master/LICENSE.md) */html{-webkit-overflow-scrolling:touch;background:#d3d7dd;color:#3a3b45;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,PT Sans,Open Sans,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:100%;line-height:1.4}body{font-size:1rem;margin:1.2em}@media (min-width:20rem){body{font-size:calc(.875rem + .625vw)}}@media (min-width:40rem){body{font-size:1.125rem}}body article,body footer,body header,body main{margin:0 auto;max-width:40rem;position:relative}body>header{margin-bottom:3.5em}body>header h1{font-size:1.5em;margin:0}body>header p{font-size:.85em;margin:0}body>footer{color:#9197a3;font-size:.8rem;margin-top:6em;padding-bottom:1.5em;text-align:center}details,nav{margin:1em 0}nav ul{list-style:none;margin:0;padding:0}nav li{display:inline-block;margin-bottom:.25em;margin-right:1em}nav li:last-child{margin-right:0}a,nav a:visited{color:#c34138}article header h1 a:visited:hover,article header h2 a:visited:hover,nav a:hover{color:#db887b}ol,ul{margin-top:0;padding-left:2.5em;padding-top:0}article header h1+p,article header h2+p,ol li+li,ul li+li{margin-top:.25em}ol li>details,ul li>details{margin:0}p{-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;margin:1em 0}aside:first-child,form legend:first-child+label,p:first-child{margin-top:0}aside:last-child,p:last-child{margin-bottom:0}p+ol,p+ul{margin-top:-.75em}p img,p picture{float:right;margin-bottom:.5em;margin-left:.5em}p picture img{float:none;margin:0}blockquote,dd{padding-left:2.5em}dd{margin-bottom:1em;margin-left:0}dt{font-weight:700}blockquote{margin:0}aside{color:#9197a3;font-style:italic;margin:.5em 0}@media (min-width:65rem){aside{border-left:1px solid #cfced4;font-size:.8em;margin:0;max-width:9.375rem;padding-left:.5em;position:absolute;right:-12.5rem;width:9.375rem}}section+section{margin-top:2em}h1,h2,h3,h4,h5,h6{line-height:1.2;margin:1.25em 0 0}h1:focus>a[href^="#"][id]:empty,h1:hover>a[href^="#"][id]:empty,h2:focus>a[href^="#"][id]:empty,h2:hover>a[href^="#"][id]:empty,h3:focus>a[href^="#"][id]:empty,h3:hover>a[href^="#"][id]:empty,h4:focus>a[href^="#"][id]:empty,h4:hover>a[href^="#"][id]:empty,h5:focus>a[href^="#"][id]:empty,h5:hover>a[href^="#"][id]:empty,h6:focus>a[href^="#"][id]:empty,h6:hover>a[href^="#"][id]:empty{opacity:1}figure+p,h1+details,h1+p,h2+details,h2+p,h3+details,h3+p,h4+details,h4+p,h5+details,h5+p,h6+details,h6+p{margin-top:.5em}h1>a[href^="#"][id]:empty,h2>a[href^="#"][id]:empty,h3>a[href^="#"][id]:empty,h4>a[href^="#"][id]:empty,h5>a[href^="#"][id]:empty,h6>a[href^="#"][id]:empty{color:#9197a3;font-weight:400;left:-.65em;line-height:1;opacity:0;position:absolute;text-decoration:none}@media (min-width:40rem){h1>a[href^="#"][id]:empty,h2>a[href^="#"][id]:empty,h3>a[href^="#"][id]:empty,h4>a[href^="#"][id]:empty,h5>a[href^="#"][id]:empty,h6>a[href^="#"][id]:empty{left:-.8em}}h1>a[href^="#"][id]:empty:focus,h1>a[href^="#"][id]:empty:hover,h1>a[href^="#"][id]:empty:target,h2>a[href^="#"][id]:empty:focus,h2>a[href^="#"][id]:empty:hover,h2>a[href^="#"][id]:empty:target,h3>a[href^="#"][id]:empty:focus,h3>a[href^="#"][id]:empty:hover,h3>a[href^="#"][id]:empty:target,h4>a[href^="#"][id]:empty:focus,h4>a[href^="#"][id]:empty:hover,h4>a[href^="#"][id]:empty:target,h5>a[href^="#"][id]:empty:focus,h5>a[href^="#"][id]:empty:hover,h5>a[href^="#"][id]:empty:target,h6>a[href^="#"][id]:empty:focus,h6>a[href^="#"][id]:empty:hover,h6>a[href^="#"][id]:empty:target{box-shadow:none;color:#3a3b45;opacity:1}h1>a[href^="#"][id]:empty:target:focus,h2>a[href^="#"][id]:empty:target:focus,h3>a[href^="#"][id]:empty:target:focus,h4>a[href^="#"][id]:empty:target:focus,h5>a[href^="#"][id]:empty:target:focus,h6>a[href^="#"][id]:empty:target:focus{outline:0}h1>a[href^="#"][id]:empty:before,h2>a[href^="#"][id]:empty:before,h3>a[href^="#"][id]:empty:before,h4>a[href^="#"][id]:empty:before,h5>a[href^="#"][id]:empty:before,h6>a[href^="#"][id]:empty:before{content:"§ "}h1{font-size:2.5em}h2{font-size:1.75em}h3{font-size:1.25em}h4{font-size:1.15em}a abbr,h5,h6{font-size:1em}h6{margin-top:1em}article+article{margin-top:4em}article header p{color:#9197a3;font-size:.6em}article header p+h1,article header p+h2{margin-top:-.25em}article header h1 a,article header h2 a{color:#3a3b45}article header h1 a:visited,article header h2 a:visited,h6,legend{color:#9197a3}article>footer{font-size:.85em;margin-top:1.5em}a:visited{color:#603237}a:active,a:hover{outline-width:0}a:hover{color:#db887b}abbr{font-size:.9em;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;letter-spacing:.075em;margin-right:-.075em;text-decoration:none}img,picture{display:block;margin:0 auto;max-width:100%}audio,video{max-width:100%;width:100%}figure{margin:1em 0 .5em;padding:0}figure figcaption{font-size:.85em;opacity:.65}table{background:linear-gradient(rgba(58,59,69,.15),rgba(58,59,69,.15)) 0 0,linear-gradient(rgba(58,59,69,.15),rgba(58,59,69,.15)) 100% 0;background-attachment:scroll,scroll;background-repeat:no-repeat,no-repeat;background-size:1px 100%,1px 100%;border-collapse:collapse;border-spacing:0;display:inline-block;max-width:100%;overflow-x:auto;text-align:left;vertical-align:top}table caption{background:#d3d7dd;font-size:.9em}table td,table th{border:1px solid #cfced4;border-left:0;border-top:0;font-size:.9em;padding:.35em .75em;vertical-align:top}table td:first-child,table th:first-child{background-image:linear-gradient(90deg,#d3d7dd 50%,rgba(211,215,221,0));background-repeat:no-repeat;background-size:2px 100%;padding-left:0}table td:last-child,table th:last-child{background-image:linear-gradient(270deg,#d3d7dd 50%,rgba(211,215,221,0));background-position:100% 0;background-repeat:no-repeat;background-size:2px 100%;border-right:0;padding-right:0}table td:only-child,table th:only-child{background-image:linear-gradient(90deg,#d3d7dd 50%,rgba(211,215,221,0)),linear-gradient(270deg,#d3d7dd 50%,rgba(211,215,221,0));background-position:0 0,100% 0;background-repeat:no-repeat,no-repeat;background-size:2px 100%,2px 100%}table th{line-height:1.2}form{margin-left:auto;margin-right:auto}@media (min-width:40rem){form{max-width:80%}}form label,form select,output{display:block}form label:not(:first-child){margin-top:1em}form p label{display:inline}form p label+label{margin-left:1em}form input[type],form select,form textarea{margin-bottom:1em}form input[type=checkbox],form input[type=radio]{margin-bottom:0}button,fieldset{border:1px solid #9197a3;margin:0}fieldset{padding:.5em 1em}button{background:#d3d7dd;background:#cfced4;border-radius:2px;box-sizing:border-box;color:#3a3b45;cursor:pointer;display:inline-block;font-family:inherit;font-size:1em;height:2em;outline:0;padding:calc(.25em - 1px) .5em;width:auto}button:focus,button:not([disabled]):hover,input[type=button]:not([disabled]):hover,input[type=email]:focus,input[type=file]:not([disabled]):hover,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=reset]:not([disabled]):hover,input[type=search]:focus,input[type=submit]:not([disabled]):hover,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type^=date]:focus,select:focus,select:not([disabled]):hover{border:1px solid #3a3b45}button:active,select:active{background-color:#9197a3}button[disabled],select[disabled]{color:#9197a3;cursor:not-allowed}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#d3d7dd;background:#cfced4;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 3 2'%3E%3Cpath fill='%239197A3' d='M1.5 2 3 0H0z'/%3E%3C/svg%3E");background-position:top 55% right .35em;background-repeat:no-repeat;background-size:.5em;border:1px solid #9197a3;border-radius:2px;box-sizing:border-box;color:#3a3b45;cursor:pointer;display:inline-block;font-family:inherit;font-size:1em;height:2em;margin:0;outline:0;padding:calc(.25em - 1px) 1.2em calc(.25em - 1px) .5em;width:auto}select:not([disabled]):focus,select:not([disabled]):hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 3 2'%3E%3Cpath fill='%233A3B45' d='M1.5 2 3 0H0z'/%3E%3C/svg%3E")}input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],input[type^=date]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#d3d7dd;border:1px solid #9197a3;border-radius:2px;box-sizing:border-box;color:#3a3b45;display:block;font-family:inherit;font-size:1em;height:2em;line-height:1.5em;margin:0;outline:0;padding:calc(.25em - 1px) .5em;width:100%}input[type=email]::-moz-placeholder,input[type=month]::-moz-placeholder,input[type=number]::-moz-placeholder,input[type=password]::-moz-placeholder,input[type=search]::-moz-placeholder,input[type=tel]::-moz-placeholder,input[type=text]::-moz-placeholder,input[type=time]::-moz-placeholder,input[type=url]::-moz-placeholder,input[type=week]::-moz-placeholder,input[type^=date]::-moz-placeholder{color:#9197a3}input[type=email]::-webkit-input-placeholder,input[type=month]::-webkit-input-placeholder,input[type=number]::-webkit-input-placeholder,input[type=password]::-webkit-input-placeholder,input[type=search]::-webkit-input-placeholder,input[type=tel]::-webkit-input-placeholder,input[type=text]::-webkit-input-placeholder,input[type=time]::-webkit-input-placeholder,input[type=url]::-webkit-input-placeholder,input[type=week]::-webkit-input-placeholder,input[type^=date]::-webkit-input-placeholder{color:#9197a3}input[type=email]:-ms-input-placeholder,input[type=month]:-ms-input-placeholder,input[type=number]:-ms-input-placeholder,input[type=password]:-ms-input-placeholder,input[type=search]:-ms-input-placeholder,input[type=tel]:-ms-input-placeholder,input[type=text]:-ms-input-placeholder,input[type=time]:-ms-input-placeholder,input[type=url]:-ms-input-placeholder,input[type=week]:-ms-input-placeholder,input[type^=date]:-ms-input-placeholder{color:#9197a3}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#d3d7dd;background:#cfced4;border:1px solid #9197a3;border-radius:2px;box-sizing:border-box;color:#3a3b45;cursor:pointer;display:inline-block;font-family:inherit;font-size:1em;height:2em;margin:0;outline:0;padding:calc(.25em - 1px) .5em;width:auto}input[type=button]:focus,input[type=reset]:focus,input[type=submit]:focus{border:1px solid #3a3b45}input[type=button]:active,input[type=reset]:active,input[type=submit]:active{background-color:#9197a3}input[type=button][disabled],input[type=reset][disabled],input[type=submit][disabled]{color:#9197a3;cursor:not-allowed}input[type=color]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#d3d7dd;border:1px solid #9197a3;border-radius:2px;box-sizing:border-box;color:#3a3b45;display:block;font-family:inherit;font-size:1em;height:2em;line-height:1.5em;margin:0;outline:0;padding:calc(.25em - 1px) .5em;width:6em}input[type=color]:focus{border:1px solid #3a3b45}input[type=color]::-moz-placeholder,textarea::-moz-placeholder{color:#9197a3}input[type=color]::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#9197a3}input[type=color]:-ms-input-placeholder{color:#9197a3}input[type=color]:hover{border:1px solid #3a3b45}input[type=file]{background:#d3d7dd;background:#cfced4;border:1px solid #9197a3;border-radius:2px;box-sizing:border-box;color:#3a3b45;cursor:pointer;display:block;font-family:inherit;font-size:12px;height:auto;line-height:1;margin:0;outline:0;padding:.75em .5em;width:100%}input[type=file]:focus,textarea:focus{border:1px solid #3a3b45}input[type=file]:active{background-color:#9197a3}input[type=file][disabled]{color:#9197a3;cursor:not-allowed}input[type=checkbox],input[type=radio]{margin:-.2em .75em 0 0;vertical-align:middle}textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#d3d7dd;border:1px solid #9197a3;border-radius:2px;box-sizing:border-box;color:#3a3b45;display:block;font-family:inherit;font-size:1em;height:4.5em;line-height:1.5em;margin:0;outline:0;padding:.5em;resize:vertical;width:100%}textarea:-ms-input-placeholder{color:#9197a3}code,kbd,samp,var{font-family:Consolas,Lucida Console,Monaco,monospace;font-style:normal}pre{background:linear-gradient(rgba(58,59,69,.15),rgba(58,59,69,.15)) 0 0,linear-gradient(rgba(58,59,69,.15),rgba(58,59,69,.15)) 100% 0;background-attachment:scroll,scroll;background-repeat:no-repeat,no-repeat;background-size:1px 100%,1px 100%;font-size:.8em;overflow-x:auto}pre>code,summary{display:inline-block}pre>code{border-left:1px solid #d3d7dd;border-right:3px solid #d3d7dd;box-sizing:border-box;min-width:100%;overflow-x:visible}hr{background:#cfced4;border:0;height:1px;margin:2em 0}details[open]{border-bottom:1px solid #cfced4;padding-bottom:.5em}summary{border-bottom:1px dashed;cursor:pointer;font-weight:700}summary::-webkit-details-marker{display:none}noscript{color:#851f1b}::selection{background:rgba(195,65,56,.25)} -/*# sourceMappingURL=options.e81abfba.css.map */ +/*# sourceMappingURL=options.639f6c8a.css.map */ diff --git a/dist/options.639f6c8a.css.map b/dist/options.639f6c8a.css.map new file mode 100644 index 0000000..3bd1ccd --- /dev/null +++ b/dist/options.639f6c8a.css.map @@ -0,0 +1 @@ +{"mappings":"AAMsrH,gBAAwN;AAL94H;;;;EAIE,CACF,KAAiQ,gCAAA,CAAjC,kBAAkB,CAAC,aAAa,CAA3P,+KAA2L,CAAC,cAAc,CAAC,eAAiF,CAAC,KAAkB,cAAA,CAAb,YAA2B,CAAC,yBAAyB,KAAK,gCAA6C,CAAC,CAAC,yBAAyB,KAAK,kBAAkB,CAAC,CAAC,+CAAiF,aAAA,CAAhB,eAAe,CAAjC,iBAA+C,CAAC,YAAY,mBAAmB,CAAC,eAAwB,eAAA,CAAT,QAAwB,CAAC,cAAuB,eAAA,CAAT,QAAwB,CAAC,YAAkF,aAAA,CAAhB,eAAe,CAArE,cAAc,CAAC,oBAAoB,CAAC,iBAA+C,CAAC,YAAY,YAAY,CAAC,OAAO,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,oBAAoB,CAAkB,mBAAA,CAAjB,gBAAoC,CAAC,kBAAkB,cAAc,CAAC,gBAAgB,aAAa,CAAC,gFAAgF,aAAa,CAAC,MAAM,YAAY,CAAe,kBAAA,CAAd,aAAgC,CAAC,0DAA0D,gBAAgB,CAAC,4BAA4B,QAAQ,CAAC,EAAe,oBAAoB,CAAC,gBAAgB,CAAC,YAAA,CAAnD,YAA+D,CAAC,8DAA8D,YAAY,CAAC,8BAA8B,eAAe,CAAC,UAAU,iBAAiB,CAAC,gBAAgB,WAAW,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,cAAc,UAAU,CAAC,QAAQ,CAAC,cAAc,kBAAkB,CAAC,GAAG,iBAAiB,CAAC,aAAa,CAAC,GAAG,eAAe,CAAC,WAAW,QAAQ,CAAC,MAAsC,aAAA,CAAlB,iBAAiB,CAA/B,aAA6C,CAAC,yBAAyB,MAAmH,6BAAA,CAAf,cAAc,CAAzC,QAAQ,CAA3B,kBAAkB,CAAU,iBAAiB,CAA7F,iBAAiB,CAAC,cAAc,CAAC,cAAyG,CAAC,CAAC,gBAAgB,cAAc,CAAC,kBAAoC,eAAA,CAAlB,iBAAiC,CAAC,gYAAgY,SAAS,CAAC,yGAAyG,eAAe,CAAC,4JAAuP,aAAA,CAA9B,eAAe,CAA1D,WAAW,CAAgD,aAAa,CAA5D,SAAS,CAAvC,iBAAiB,CAAuB,oBAAgE,CAAC,yBAAyB,4JAA4J,UAAU,CAAC,CAAC,skBAAglB,eAAe,CAAC,aAAA,CAA1B,SAAuC,CAAC,0OAA0O,SAAS,CAAC,sMAA4M,YAAY,CAAC,GAAG,eAAe,CAAC,GAAG,gBAAgB,CAAC,GAAG,gBAAgB,CAAC,GAAG,gBAAgB,CAAC,aAAa,aAAa,CAAC,GAAG,cAAc,CAAC,gBAAgB,cAAc,CAAC,iBAAgC,aAAA,CAAf,cAA4B,CAAC,wCAAwC,iBAAiB,CAAC,wCAAwC,aAAa,CAAC,kEAAkE,aAAa,CAAC,eAAgC,eAAA,CAAjB,gBAAgC,CAAC,UAAU,aAAa,CAAC,iBAAiB,eAAe,CAAC,QAAQ,aAAa,CAAC,KAAwH,cAAA,CAAzE,oBAAoB,CAAC,gBAAgB,CAAC,YAAY,CAAC,qBAAqB,CAAlH,oBAAoB,CAAC,oBAA4G,CAAC,YAAY,aAAa,CAAgB,aAAA,CAAf,cAA4B,CAAC,YAAuB,cAAA,CAAX,UAAyB,CAAC,OAAO,iBAAiB,CAAC,SAAS,CAAC,kBAA8B,eAAA,CAAZ,WAA2B,CAAC,MAAuI,mIAAmJ,CAAC,mCAAmC,CAAmC,qCAAA,CAAlC,iCAAiC,CAApT,wBAAwB,CAAzC,gBAAgB,CAArC,oBAAoB,CAA2D,cAAc,CAA9B,eAAe,CAAgB,eAAe,CAAC,kBAAkR,CAAC,cAA6B,kBAAA,CAAf,cAAiC,CAAC,kBAAwE,wBAAwB,CAAc,aAAA,CAAb,YAAY,CAApD,cAAc,CAArD,mBAAmB,CAAC,kBAAqF,CAAC,0CAAyD,uEAA+E,CAA0B,2BAAA,CAAzB,wBAAwB,CAAvH,cAAmJ,CAAC,wCAAuE,wEAA8E,CAAC,0BAA0B,CAA0B,2BAAA,CAAzB,wBAAwB,CAAjJ,cAAc,CAA9B,eAA6L,CAAC,wCAAwC,+HAA6I,CAAC,8BAA8B,CAAmC,qCAAA,CAAlC,iCAAuE,CAAC,SAAS,eAAe,CAAC,KAAuB,gBAAA,CAAlB,iBAAkC,CAAC,yBAAyB,KAAK,aAAa,CAAC,CAAC,8BAA8B,aAAa,CAAC,6BAA6B,cAAc,CAAC,aAAa,cAAc,CAAC,mBAAmB,eAAe,CAAC,2CAA2C,iBAAiB,CAAC,iDAAiD,eAAe,CAAC,gBAAyB,wBAAA,CAAT,QAAiC,CAAC,SAAS,gBAAgB,CAAC,OAAqI,kBAAkB,CAAiC,kBAAkB,CAAvF,iBAAiB,CAAnH,qBAAqB,CAAqK,aAAa,CAAC,cAAA,CAAjE,oBAAoB,CAA3F,mBAAmB,CAAC,aAAa,CAA3E,UAAU,CAA1C,SAAS,CAAkC,8BAA8B,CAA6F,UAA0D,CAA0T,2fAA2N,wBAAwB,CAAC,4BAA4B,wBAAwB,CAAC,kCAAkC,aAAa,CAAC,kBAAkB,CAAC,OAAuX,uBAAuB,CAAC,oBAAoB,CAAC,eAAe,CAA5Q,kBAAkB,CAAiC,kBAAkB,CAAwM,+KAA8L,CAApV,uCAAuC,CAAsB,2BAA2B,CAAhD,oBAAoB,CAA9N,wBAAwB,CAAC,iBAAiB,CAArJ,qBAAqB,CAAuM,aAAa,CAAC,cAAc,CAA/E,oBAAoB,CAApH,mBAAmB,CAAC,aAAa,CAApF,UAAU,CAAC,QAAQ,CAAnD,SAAS,CAA0P,sDAAmB,CAA9E,UAAma,CAAC,0DAA0D,+KAA2L,CAAC,oMAA8c,uBAAuB,CAAC,oBAAoB,CAAC,eAAA,CAAvJ,kBAAkB,CAA7D,wBAAwB,CAAC,iBAAiB,CAArJ,qBAAqB,CAAoJ,aAAa,CAAC,aAAa,CAA3H,mBAAmB,CAAC,aAAa,CAApF,UAAU,CAAgL,iBAA+C,CAA9N,QAAQ,CAAnD,SAAS,CAA2C,8BAA8B,CAA6H,UAAuH,CAAC,0YAA0Y,aAAa,CAAC,6eAA6e,aAAa,CAAC,sbAAsb,aAAa,CAAC,wDAA2T,uBAAuB,CAAC,oBAAoB,CAAC,eAAA,CAAhJ,kBAAkB,CAAiC,kBAAkB,CAAhH,wBAAwB,CAAC,iBAAiB,CAArJ,qBAAqB,CAAuM,aAAa,CAAC,cAAc,CAA/E,oBAAoB,CAApH,mBAAmB,CAAC,aAAa,CAApF,UAAU,CAAC,QAAQ,CAAnD,SAAS,CAA2C,8BAA8B,CAAsH,UAAuH,CAAC,0EAA0E,wBAAwB,CAAC,6EAA6E,wBAAwB,CAAC,sFAAsF,aAAa,CAAC,kBAAkB,CAAC,kBAAiR,uBAAuB,CAAC,oBAAoB,CAAC,eAAe,CAA3J,kBAAkB,CAA7D,wBAAwB,CAAC,iBAAiB,CAArJ,qBAAqB,CAAoJ,aAAa,CAAC,aAAa,CAA3H,mBAAmB,CAAC,aAAa,CAApF,UAAU,CAAqK,iBAA+C,CAAnN,QAAQ,CAAnD,SAAS,CAA2C,8BAA8B,CAA0O,SAAS,CAAC,wBAAwB,wBAAwB,CAAC,+DAA+D,aAAa,CAAC,iFAAiF,aAAa,CAAC,wCAAwC,aAAa,CAAC,wBAAwB,wBAAwB,CAAC,iBAAwJ,kBAAkB,CAAC,kBAAkB,CAAhF,wBAAwB,CAAC,iBAAiB,CAA5H,qBAAqB,CAA8I,aAAa,CAAC,cAAc,CAAC,aAAa,CAA/I,mBAAmB,CAAuK,cAAc,CAA7C,WAAW,CAAmC,aAAA,CAAjP,QAAQ,CAAxC,SAAS,CAAsO,kBAAkB,CAAzC,UAAsE,CAAC,sCAAsC,wBAAwB,CAAC,wBAAwB,wBAAwB,CAAC,2BAA2B,aAAa,CAAC,kBAAkB,CAAC,uCAAuC,sBAAsB,CAAC,qBAAqB,CAAC,SAAwQ,uBAAuB,CAAC,oBAAoB,CAAC,eAAe,CAAtK,kBAAkB,CAA7D,wBAAwB,CAAC,iBAAiB,CAA1I,qBAAqB,CAAyI,aAAa,CAAC,aAAa,CAA3H,mBAAmB,CAAC,aAAa,CAAmN,YAAY,CAAzH,iBAA+C,CAA9N,QAAQ,CAAxC,SAAS,CAAiW,YAAA,CAAjC,eAAe,CAApJ,UAAyL,CAAC,+BAA+B,aAAa,CAAC,kBAAkB,oDAAsD,CAAC,iBAAiB,CAAC,IAAmC,mIAAmJ,CAAC,mCAAmC,CAAmC,qCAAA,CAAlC,iCAAiC,CAAxO,cAAc,CAA9B,eAA8R,CAAC,iBAAiB,oBAAoB,CAAC,SAAgG,6BAAA,CAA/B,8BAA8B,CAAnE,qBAAqB,CAAC,cAAc,CAAvD,kBAAoH,CAAC,GAAoC,kBAAA,CAAT,QAAQ,CAAhC,UAAU,CAAC,YAAwC,CAAC,cAAkC,+BAAA,CAApB,mBAAmD,CAAC,QAAwB,wBAAwB,CAAC,cAAA,CAAzC,eAAuD,CAAC,gCAAgC,YAAY,CAAC,SAAS,aAAa,CAAC,YAAY,8BAA8B","sources":["src/awsm.min.css"],"sourcesContent":["@charset \"UTF-8\";\n/*!\n * awsm.css v3.0.7 (https://igoradamenko.github.io/awsm.css/)\n * Copyright 2015 Igor Adamenko (https://igoradamenko.com)\n * Licensed under MIT (https://github.com/igoradamenko/awsm.css/blob/master/LICENSE.md)\n */\nhtml{font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen,Ubuntu,Cantarell,\"PT Sans\",\"Open Sans\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",Helvetica,Arial,sans-serif;font-size:100%;line-height:1.4;background:#d3d7dd;color:#3a3b45;-webkit-overflow-scrolling:touch}body{margin:1.2em;font-size:1rem}@media (min-width:20rem){body{font-size:calc(1rem + .00625*(100vw - 20rem))}}@media (min-width:40rem){body{font-size:1.125rem}}body article,body footer,body header,body main{position:relative;max-width:40rem;margin:0 auto}body>header{margin-bottom:3.5em}body>header h1{margin:0;font-size:1.5em}body>header p{margin:0;font-size:.85em}body>footer{margin-top:6em;padding-bottom:1.5em;text-align:center;font-size:.8rem;color:#9197a3}details,nav{margin:1em 0}nav ul{list-style:none;margin:0;padding:0}nav li{display:inline-block;margin-right:1em;margin-bottom:.25em}nav li:last-child{margin-right:0}a,nav a:visited{color:#c34138}article header h1 a:visited:hover,article header h2 a:visited:hover,nav a:hover{color:#db887b}ol,ul{margin-top:0;padding-top:0;padding-left:2.5em}article header h1+p,article header h2+p,ol li+li,ul li+li{margin-top:.25em}ol li>details,ul li>details{margin:0}p{margin:1em 0;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}aside:first-child,form legend:first-child+label,p:first-child{margin-top:0}aside:last-child,p:last-child{margin-bottom:0}p+ol,p+ul{margin-top:-.75em}p img,p picture{float:right;margin-bottom:.5em;margin-left:.5em}p picture img{float:none;margin:0}blockquote,dd{padding-left:2.5em}dd{margin-bottom:1em;margin-left:0}dt{font-weight:700}blockquote{margin:0}aside{margin:.5em 0;font-style:italic;color:#9197a3}@media (min-width:65rem){aside{position:absolute;right:-12.5rem;width:9.375rem;max-width:9.375rem;margin:0;padding-left:.5em;font-size:.8em;border-left:1px solid #cfced4}}section+section{margin-top:2em}h1,h2,h3,h4,h5,h6{margin:1.25em 0 0;line-height:1.2}h1:focus>a[href^=\"#\"][id]:empty,h1:hover>a[href^=\"#\"][id]:empty,h2:focus>a[href^=\"#\"][id]:empty,h2:hover>a[href^=\"#\"][id]:empty,h3:focus>a[href^=\"#\"][id]:empty,h3:hover>a[href^=\"#\"][id]:empty,h4:focus>a[href^=\"#\"][id]:empty,h4:hover>a[href^=\"#\"][id]:empty,h5:focus>a[href^=\"#\"][id]:empty,h5:hover>a[href^=\"#\"][id]:empty,h6:focus>a[href^=\"#\"][id]:empty,h6:hover>a[href^=\"#\"][id]:empty{opacity:1}figure+p,h1+details,h1+p,h2+details,h2+p,h3+details,h3+p,h4+details,h4+p,h5+details,h5+p,h6+details,h6+p{margin-top:.5em}h1>a[href^=\"#\"][id]:empty,h2>a[href^=\"#\"][id]:empty,h3>a[href^=\"#\"][id]:empty,h4>a[href^=\"#\"][id]:empty,h5>a[href^=\"#\"][id]:empty,h6>a[href^=\"#\"][id]:empty{position:absolute;left:-.65em;opacity:0;text-decoration:none;font-weight:400;line-height:1;color:#9197a3}@media (min-width:40rem){h1>a[href^=\"#\"][id]:empty,h2>a[href^=\"#\"][id]:empty,h3>a[href^=\"#\"][id]:empty,h4>a[href^=\"#\"][id]:empty,h5>a[href^=\"#\"][id]:empty,h6>a[href^=\"#\"][id]:empty{left:-.8em}}h1>a[href^=\"#\"][id]:empty:focus,h1>a[href^=\"#\"][id]:empty:hover,h1>a[href^=\"#\"][id]:empty:target,h2>a[href^=\"#\"][id]:empty:focus,h2>a[href^=\"#\"][id]:empty:hover,h2>a[href^=\"#\"][id]:empty:target,h3>a[href^=\"#\"][id]:empty:focus,h3>a[href^=\"#\"][id]:empty:hover,h3>a[href^=\"#\"][id]:empty:target,h4>a[href^=\"#\"][id]:empty:focus,h4>a[href^=\"#\"][id]:empty:hover,h4>a[href^=\"#\"][id]:empty:target,h5>a[href^=\"#\"][id]:empty:focus,h5>a[href^=\"#\"][id]:empty:hover,h5>a[href^=\"#\"][id]:empty:target,h6>a[href^=\"#\"][id]:empty:focus,h6>a[href^=\"#\"][id]:empty:hover,h6>a[href^=\"#\"][id]:empty:target{opacity:1;box-shadow:none;color:#3a3b45}h1>a[href^=\"#\"][id]:empty:target:focus,h2>a[href^=\"#\"][id]:empty:target:focus,h3>a[href^=\"#\"][id]:empty:target:focus,h4>a[href^=\"#\"][id]:empty:target:focus,h5>a[href^=\"#\"][id]:empty:target:focus,h6>a[href^=\"#\"][id]:empty:target:focus{outline:0}h1>a[href^=\"#\"][id]:empty::before,h2>a[href^=\"#\"][id]:empty::before,h3>a[href^=\"#\"][id]:empty::before,h4>a[href^=\"#\"][id]:empty::before,h5>a[href^=\"#\"][id]:empty::before,h6>a[href^=\"#\"][id]:empty::before{content:\"§ \"}h1{font-size:2.5em}h2{font-size:1.75em}h3{font-size:1.25em}h4{font-size:1.15em}a abbr,h5,h6{font-size:1em}h6{margin-top:1em}article+article{margin-top:4em}article header p{font-size:.6em;color:#9197a3}article header p+h1,article header p+h2{margin-top:-.25em}article header h1 a,article header h2 a{color:#3a3b45}article header h1 a:visited,article header h2 a:visited,h6,legend{color:#9197a3}article>footer{margin-top:1.5em;font-size:.85em}a:visited{color:#603237}a:active,a:hover{outline-width:0}a:hover{color:#db887b}abbr{margin-right:-.075em;text-decoration:none;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;letter-spacing:.075em;font-size:.9em}img,picture{display:block;max-width:100%;margin:0 auto}audio,video{width:100%;max-width:100%}figure{margin:1em 0 .5em;padding:0}figure figcaption{opacity:.65;font-size:.85em}table{display:inline-block;border-spacing:0;border-collapse:collapse;overflow-x:auto;max-width:100%;text-align:left;vertical-align:top;background:linear-gradient(rgba(58,59,69,.15) 0%,rgba(58,59,69,.15) 100%) 0 0,linear-gradient(rgba(58,59,69,.15) 0%,rgba(58,59,69,.15) 100%) 100% 0;background-attachment:scroll,scroll;background-size:1px 100%,1px 100%;background-repeat:no-repeat,no-repeat}table caption{font-size:.9em;background:#d3d7dd}table td,table th{padding:.35em .75em;vertical-align:top;font-size:.9em;border:1px solid #cfced4;border-top:0;border-left:0}table td:first-child,table th:first-child{padding-left:0;background-image:linear-gradient(to right,#d3d7dd 50%,rgba(211,215,221,0) 100%);background-size:2px 100%;background-repeat:no-repeat}table td:last-child,table th:last-child{padding-right:0;border-right:0;background-image:linear-gradient(to left,#d3d7dd 50%,rgba(211,215,221,0) 100%);background-position:100% 0;background-size:2px 100%;background-repeat:no-repeat}table td:only-child,table th:only-child{background-image:linear-gradient(to right,#d3d7dd 50%,rgba(211,215,221,0) 100%),linear-gradient(to left,#d3d7dd 50%,rgba(211,215,221,0) 100%);background-position:0 0,100% 0;background-size:2px 100%,2px 100%;background-repeat:no-repeat,no-repeat}table th{line-height:1.2}form{margin-right:auto;margin-left:auto}@media (min-width:40rem){form{max-width:80%}}form label,form select,output{display:block}form label:not(:first-child){margin-top:1em}form p label{display:inline}form p label+label{margin-left:1em}form input[type],form select,form textarea{margin-bottom:1em}form input[type=checkbox],form input[type=radio]{margin-bottom:0}button,fieldset{margin:0;border:1px solid #9197a3}fieldset{padding:.5em 1em}button{outline:0;box-sizing:border-box;height:2em;padding:calc(.25em - 1px) .5em;font-family:inherit;font-size:1em;border-radius:2px;background:#d3d7dd;display:inline-block;width:auto;background:#cfced4;color:#3a3b45;cursor:pointer}button:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type^=date]:focus,select:focus{border:1px solid #3a3b45}button:not([disabled]):hover,input[type=button]:not([disabled]):hover,input[type=file]:not([disabled]):hover,input[type=reset]:not([disabled]):hover,input[type=submit]:not([disabled]):hover,select:not([disabled]):hover{border:1px solid #3a3b45}button:active,select:active{background-color:#9197a3}button[disabled],select[disabled]{color:#9197a3;cursor:not-allowed}select{outline:0;box-sizing:border-box;height:2em;margin:0;padding:calc(.25em - 1px) .5em;font-family:inherit;font-size:1em;border:1px solid #9197a3;border-radius:2px;background:#d3d7dd;display:inline-block;width:auto;background:#cfced4;color:#3a3b45;cursor:pointer;padding-right:1.2em;background-position:top 55% right .35em;background-size:.5em;background-repeat:no-repeat;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 3 2'%3E%3Cpath fill='rgb(145, 151, 163)' fill-rule='nonzero' d='M1.5 2L3 0H0z'/%3E%3C/svg%3E\")}select:not([disabled]):focus,select:not([disabled]):hover{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 3 2'%3E%3Cpath fill='rgb(58, 59, 69)' fill-rule='nonzero' d='M1.5 2L3 0H0z'/%3E%3C/svg%3E\")}input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],input[type^=date]{outline:0;box-sizing:border-box;height:2em;margin:0;padding:calc(.25em - 1px) .5em;font-family:inherit;font-size:1em;border:1px solid #9197a3;border-radius:2px;background:#d3d7dd;color:#3a3b45;display:block;width:100%;line-height:calc(2em - 1px*2 - (.25em - 1px)*2);-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=email]::-moz-placeholder,input[type=month]::-moz-placeholder,input[type=number]::-moz-placeholder,input[type=password]::-moz-placeholder,input[type=search]::-moz-placeholder,input[type=tel]::-moz-placeholder,input[type=text]::-moz-placeholder,input[type=time]::-moz-placeholder,input[type=url]::-moz-placeholder,input[type=week]::-moz-placeholder,input[type^=date]::-moz-placeholder{color:#9197a3}input[type=email]::-webkit-input-placeholder,input[type=month]::-webkit-input-placeholder,input[type=number]::-webkit-input-placeholder,input[type=password]::-webkit-input-placeholder,input[type=search]::-webkit-input-placeholder,input[type=tel]::-webkit-input-placeholder,input[type=text]::-webkit-input-placeholder,input[type=time]::-webkit-input-placeholder,input[type=url]::-webkit-input-placeholder,input[type=week]::-webkit-input-placeholder,input[type^=date]::-webkit-input-placeholder{color:#9197a3}input[type=email]:-ms-input-placeholder,input[type=month]:-ms-input-placeholder,input[type=number]:-ms-input-placeholder,input[type=password]:-ms-input-placeholder,input[type=search]:-ms-input-placeholder,input[type=tel]:-ms-input-placeholder,input[type=text]:-ms-input-placeholder,input[type=time]:-ms-input-placeholder,input[type=url]:-ms-input-placeholder,input[type=week]:-ms-input-placeholder,input[type^=date]:-ms-input-placeholder{color:#9197a3}input[type=button],input[type=reset],input[type=submit]{outline:0;box-sizing:border-box;height:2em;margin:0;padding:calc(.25em - 1px) .5em;font-family:inherit;font-size:1em;border:1px solid #9197a3;border-radius:2px;background:#d3d7dd;display:inline-block;width:auto;background:#cfced4;color:#3a3b45;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=button]:focus,input[type=reset]:focus,input[type=submit]:focus{border:1px solid #3a3b45}input[type=button]:active,input[type=reset]:active,input[type=submit]:active{background-color:#9197a3}input[type=button][disabled],input[type=reset][disabled],input[type=submit][disabled]{color:#9197a3;cursor:not-allowed}input[type=color]{outline:0;box-sizing:border-box;height:2em;margin:0;padding:calc(.25em - 1px) .5em;font-family:inherit;font-size:1em;border:1px solid #9197a3;border-radius:2px;background:#d3d7dd;color:#3a3b45;display:block;line-height:calc(2em - 1px*2 - (.25em - 1px)*2);-webkit-appearance:none;-moz-appearance:none;appearance:none;width:6em}input[type=color]:focus{border:1px solid #3a3b45}input[type=color]::-moz-placeholder,textarea::-moz-placeholder{color:#9197a3}input[type=color]::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#9197a3}input[type=color]:-ms-input-placeholder{color:#9197a3}input[type=color]:hover{border:1px solid #3a3b45}input[type=file]{outline:0;box-sizing:border-box;margin:0;padding:calc(.25em - 1px) .5em;font-family:inherit;border:1px solid #9197a3;border-radius:2px;background:#d3d7dd;background:#cfced4;color:#3a3b45;cursor:pointer;display:block;width:100%;height:auto;padding:.75em .5em;font-size:12px;line-height:1}input[type=file]:focus,textarea:focus{border:1px solid #3a3b45}input[type=file]:active{background-color:#9197a3}input[type=file][disabled]{color:#9197a3;cursor:not-allowed}input[type=checkbox],input[type=radio]{margin:-.2em .75em 0 0;vertical-align:middle}textarea{outline:0;box-sizing:border-box;margin:0;padding:calc(.25em - 1px) .5em;font-family:inherit;font-size:1em;border:1px solid #9197a3;border-radius:2px;background:#d3d7dd;color:#3a3b45;display:block;width:100%;line-height:calc(2em - 1px*2 - (.25em - 1px)*2);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4.5em;resize:vertical;padding-top:.5em;padding-bottom:.5em}textarea:-ms-input-placeholder{color:#9197a3}code,kbd,samp,var{font-family:Consolas,\"Lucida Console\",Monaco,monospace;font-style:normal}pre{overflow-x:auto;font-size:.8em;background:linear-gradient(rgba(58,59,69,.15) 0%,rgba(58,59,69,.15) 100%) 0 0,linear-gradient(rgba(58,59,69,.15) 0%,rgba(58,59,69,.15) 100%) 100% 0;background-attachment:scroll,scroll;background-size:1px 100%,1px 100%;background-repeat:no-repeat,no-repeat}pre>code,summary{display:inline-block}pre>code{overflow-x:visible;box-sizing:border-box;min-width:100%;border-right:3px solid #d3d7dd;border-left:1px solid #d3d7dd}hr{height:1px;margin:2em 0;border:0;background:#cfced4}details[open]{padding-bottom:.5em;border-bottom:1px solid #cfced4}summary{font-weight:700;border-bottom:1px dashed;cursor:pointer}summary::-webkit-details-marker{display:none}noscript{color:#851f1b}::selection{background:rgba(195,65,56,.25)}\n"],"names":[],"version":3,"file":"options.639f6c8a.css.map"} \ No newline at end of file diff --git a/dist/options.86176e60.js.map b/dist/options.86176e60.js.map deleted file mode 100644 index 128f4fd..0000000 --- a/dist/options.86176e60.js.map +++ /dev/null @@ -1 +0,0 @@ -{"mappings":"SAsCYA,cAAaC,GAOzB,MAFC,kCAEYC,KAAAD,qJAxCTE,SAAIC,eAAe,gBAASC,iBAA2B,SAAA,WACvD,IAAIJ,EAAAE,SAAeC,eAAS,UAAyBH,MAClDK,EAAcH,SAAQC,eAAA,cACrBG,EAAaJ,SAAMC,eAAc,YACjCJ,cAAaC,IACbK,EAAOE,MAAYC,QAAM,SAAQD,MAAKC,QAAA,QAAAC,OAAGC,QAAYC,KAAAC,IAAA,CACpDC,OAAAb,IACC,iBAGLM,EAAAC,MAAAC,QAAA,OAEJH,EAAAE,MAAAC,QAAA","sources":["src/options.js"],"sourcesContent":["/**\r\n * Save apiKey in storage\r\n */\r\ndocument.getElementById(\"submitApiKey\").addEventListener(\"click\", function (){\r\n let value = document.getElementById(\"apiKey\").value;\r\n let errorMessage = document.getElementById('invalidKey');\r\n let validMessage = document.getElementById('validKey');\r\n if(isApiKeyValid(value)){\r\n errorMessage.style.display='none';\r\n validMessage.style.display='block';\r\n chrome.storage.sync.set({apiKey: value}, function() {\r\n });\r\n }else {\r\n validMessage.style.display='none';\r\n errorMessage.style.display='block';\r\n }\r\n\r\n});\r\n\r\n/**\r\n * Check ApiKey format\r\n * Modzy api key structure is: 20 characters - period - 20 characters\r\n * characters are random numbers and letters, both lowercase and uppercase are allowed\r\n *\r\n * @param value\r\n * @returns {boolean}\r\n */\r\nfunction isApiKeyValid(value){\r\n // [a-zA-Z0-9]{20}.[a-zA-Z0-9]{20}\r\n const regEx = /[a-zA-Z0-9]{20}.[a-zA-Z0-9]{20}/;\r\n return regEx.test(value);\r\n}\r\n\r\n/**\r\n * If ApiKey exists, display it\r\n */\r\nfunction displayApiKey() {\r\n chrome.storage.sync.get(['apiKey'], function (result) {\r\n if (result.apiKey !== undefined) {\r\n document.getElementById(\"apiKey\").value=result.apiKey;\r\n }\r\n\r\n });\r\n}\r\n\r\ndisplayApiKey();\r\n"],"names":["isApiKeyValid","value","test","document","getElementById","addEventListener","errorMessage","validMessage","style","display","chrome","storage","sync","set","apiKey"],"version":3,"file":"options.86176e60.js.map"} \ No newline at end of file diff --git a/dist/options.a8b97683.css b/dist/options.a8b97683.css deleted file mode 100644 index 82a1d5e..0000000 --- a/dist/options.a8b97683.css +++ /dev/null @@ -1,2 +0,0 @@ -p{color:#1e90ff}.errorMessage{color:red;display:none} -/*# sourceMappingURL=options.a8b97683.css.map */ diff --git a/dist/options.a8b97683.css.map b/dist/options.a8b97683.css.map deleted file mode 100644 index 89572f1..0000000 --- a/dist/options.a8b97683.css.map +++ /dev/null @@ -1 +0,0 @@ -{"mappings":"AAAA,EACA,aACA,CAEA,cACA,SAAA,CACA,YACA","sources":["src/options.css"],"sourcesContent":["p{\r\n color: dodgerblue;\r\n}\r\n\r\n.errorMessage{\r\n color: red;\r\n display: none;\r\n}\r\n"],"names":[],"version":3,"file":"options.a8b97683.css.map"} \ No newline at end of file diff --git a/dist/options.b4f4bfd1.css b/dist/options.b4f4bfd1.css deleted file mode 100644 index 91b300c..0000000 --- a/dist/options.b4f4bfd1.css +++ /dev/null @@ -1,2 +0,0 @@ -.errorMessage{color:red;display:none;font-size:medium} -/*# sourceMappingURL=options.b4f4bfd1.css.map */ diff --git a/dist/options.b4f4bfd1.css.map b/dist/options.b4f4bfd1.css.map deleted file mode 100644 index 9d7f7fd..0000000 --- a/dist/options.b4f4bfd1.css.map +++ /dev/null @@ -1 +0,0 @@ -{"mappings":"AAAA,cACA,SAAA,CACA,YAAA,CACA,gBACA","sources":["src/options.css"],"sourcesContent":[".errorMessage{\r\n color: red;\r\n display: none;\r\n font-size: medium;\r\n}\r\n"],"names":[],"version":3,"file":"options.b4f4bfd1.css.map"} \ No newline at end of file diff --git a/dist/options.b517429d.js b/dist/options.b517429d.js deleted file mode 100644 index 7a1581b..0000000 --- a/dist/options.b517429d.js +++ /dev/null @@ -1,2 +0,0 @@ -function isApiKeyValid(e){return/[a-zA-Z0-9]{20}.[a-zA-Z0-9]{20}/.test(e)}document.getElementById("submitApiKey").addEventListener("click",(function(){let e=document.getElementById("apiKey").value;var t=document.getElementsByClassName("errorMessage");isApiKeyValid(e)?(t.style.display="none",chrome.storage.sync.set({apiKey:e},(function(){console.log("Set ApiKey")}))):t.style.display="block"})); -//# sourceMappingURL=options.b517429d.js.map diff --git a/dist/options.b517429d.js.map b/dist/options.b517429d.js.map deleted file mode 100644 index 349691b..0000000 --- a/dist/options.b517429d.js.map +++ /dev/null @@ -1 +0,0 @@ -{"mappings":"0EAKIA,SAAIC,eAAe,gBAASC,iBAAqC,SAAA,WACjE,IAAGC,EAAAH,SAAcC,eAAQ,UAAAE,UACrBC,EAAaJ,SAAMK,uBAAc,gBACjCC,cAAcH,MAAmBI,MAAKC,QAAA,OAAAC,OAAGC,QAAYC,KAAAC,IAAA,CACjDC,OAAQV,IACX,WAEDW,QAAAC,IAAa,kBAYlBX,EAAAG,MAAAC,QAAA","sources":["src/options.js"],"sourcesContent":["/**\r\n * Save apiKey in storage\r\n */\r\ndocument.getElementById(\"submitApiKey\").addEventListener(\"click\", function (){\r\n let value = document.getElementById(\"apiKey\").value;\r\n var errorMessage = document.getElementsByClassName('errorMessage');\r\n if(isApiKeyValid(value)){\r\n errorMessage.style.display='none';\r\n chrome.storage.sync.set({apiKey: value}, function() {\r\n console.log(\"Set ApiKey\");\r\n });\r\n }else {\r\n errorMessage.style.display='block';\r\n }\r\n\r\n});\r\n\r\n/**\r\n * Check ApiKey format\r\n * Modzy api key structure is: 20 characters - period - 20 characters\r\n * characters are random numbers and letters, both lowercase and uppercase are allowed\r\n *\r\n * @param value\r\n * @returns {boolean}\r\n */\r\nfunction isApiKeyValid(value){\r\n // [a-zA-Z0-9]{20}.[a-zA-Z0-9]{20}\r\n const regEx = /[a-zA-Z0-9]{20}.[a-zA-Z0-9]{20}/;\r\n return regEx.test(value);\r\n}\r\n\r\n"],"names":["document","getElementById","addEventListener","value","errorMessage","getElementsByClassName","isApiKeyValid","style","display","chrome","storage","sync","set","apiKey","console","log"],"version":3,"file":"options.b517429d.js.map"} \ No newline at end of file diff --git a/dist/options.b8f76118.js b/dist/options.b8f76118.js deleted file mode 100644 index 3c5f2e5..0000000 --- a/dist/options.b8f76118.js +++ /dev/null @@ -1,2 +0,0 @@ -document.getElementById("submitApiKey").addEventListener("click",(function(){let e=document.getElementById("apiKey").value;chrome.storage.sync.set({apiKey:e},(function(){console.log("Set ApiKey")}))})); -//# sourceMappingURL=options.b8f76118.js.map diff --git a/dist/options.b8f76118.js.map b/dist/options.b8f76118.js.map deleted file mode 100644 index f75b43b..0000000 --- a/dist/options.b8f76118.js.map +++ /dev/null @@ -1 +0,0 @@ -{"mappings":"AAEAA,SAASC,eAAe,gBAAgBC,iBAAiB,SAAS,WAC9D,IAAIC,EAAQH,SAASC,eAAe,UAAUE,MAC9CC,OAAOC,QAAQC,KAAKC,IAAI,CAACC,OAAQL,IAAQ,WACrCM,QAAQC,IAAI","sources":["src/options.js"],"sourcesContent":["\r\n\r\ndocument.getElementById(\"submitApiKey\").addEventListener(\"click\", function (){\r\n let value = document.getElementById(\"apiKey\").value;\r\n chrome.storage.sync.set({apiKey: value}, function() {\r\n console.log(\"Set ApiKey\");\r\n });\r\n});\r\n\r\n"],"names":["document","getElementById","addEventListener","value","chrome","storage","sync","set","apiKey","console","log"],"version":3,"file":"options.b8f76118.js.map"} \ No newline at end of file diff --git a/dist/options.bfe8a234.js b/dist/options.bfe8a234.js deleted file mode 100644 index 868ad01..0000000 --- a/dist/options.bfe8a234.js +++ /dev/null @@ -1,2 +0,0 @@ -function isApiKeyValid(e){return/[a-zA-Z0-9]{20}.[a-zA-Z0-9]{20}/.test(e)}document.getElementById("submitApiKey").addEventListener("click",(function(){let e=document.getElementById("apiKey").value,t=document.getElementById("invalidKey");isApiKeyValid(e)?(t.style.display="none",chrome.storage.sync.set({apiKey:e},(function(){console.log("Set ApiKey")}))):t.style.display="block"})); -//# sourceMappingURL=options.bfe8a234.js.map diff --git a/dist/options.bfe8a234.js.map b/dist/options.bfe8a234.js.map deleted file mode 100644 index f26a051..0000000 --- a/dist/options.bfe8a234.js.map +++ /dev/null @@ -1 +0,0 @@ -{"mappings":"0EAKIA,SAAIC,eAAe,gBAASC,iBAA2B,SAAA,WACvD,IAAGC,EAAAH,SAAcC,eAAQ,UAAAE,MACrBC,EAAaJ,SAAMC,eAAc,cACjCI,cAAcF,MAAmBG,MAAKC,QAAA,OAAAC,OAAGC,QAAYC,KAAAC,IAAA,CACjDC,OAAQT,IACX,WAEDU,QAAAC,IAAa,kBAYlBV,EAAAE,MAAAC,QAAA","sources":["src/options.js"],"sourcesContent":["/**\r\n * Save apiKey in storage\r\n */\r\ndocument.getElementById(\"submitApiKey\").addEventListener(\"click\", function (){\r\n let value = document.getElementById(\"apiKey\").value;\r\n let errorMessage = document.getElementById('invalidKey');\r\n if(isApiKeyValid(value)){\r\n errorMessage.style.display='none';\r\n chrome.storage.sync.set({apiKey: value}, function() {\r\n console.log(\"Set ApiKey\");\r\n });\r\n }else {\r\n errorMessage.style.display='block';\r\n }\r\n\r\n});\r\n\r\n/**\r\n * Check ApiKey format\r\n * Modzy api key structure is: 20 characters - period - 20 characters\r\n * characters are random numbers and letters, both lowercase and uppercase are allowed\r\n *\r\n * @param value\r\n * @returns {boolean}\r\n */\r\nfunction isApiKeyValid(value){\r\n // [a-zA-Z0-9]{20}.[a-zA-Z0-9]{20}\r\n const regEx = /[a-zA-Z0-9]{20}.[a-zA-Z0-9]{20}/;\r\n return regEx.test(value);\r\n}\r\n\r\n"],"names":["document","getElementById","addEventListener","value","errorMessage","isApiKeyValid","style","display","chrome","storage","sync","set","apiKey","console","log"],"version":3,"file":"options.bfe8a234.js.map"} \ No newline at end of file diff --git a/dist/options.c35bc109.css b/dist/options.c35bc109.css deleted file mode 100644 index ad30e75..0000000 --- a/dist/options.c35bc109.css +++ /dev/null @@ -1,2 +0,0 @@ -p{color:#1e90ff} -/*# sourceMappingURL=options.c35bc109.css.map */ diff --git a/dist/options.c35bc109.css.map b/dist/options.c35bc109.css.map deleted file mode 100644 index d49be92..0000000 --- a/dist/options.c35bc109.css.map +++ /dev/null @@ -1 +0,0 @@ -{"mappings":"AAAA,EACA,aACA","sources":["src/options.css"],"sourcesContent":["p{\r\n color: dodgerblue;\r\n}\r\n"],"names":[],"version":3,"file":"options.c35bc109.css.map"} \ No newline at end of file diff --git a/dist/options.e81abfba.css.map b/dist/options.e81abfba.css.map deleted file mode 100644 index cf52fec..0000000 --- a/dist/options.e81abfba.css.map +++ /dev/null @@ -1 +0,0 @@ -{"mappings":"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","sources":["src/awsm.min.css"],"sourcesContent":["@charset \"UTF-8\";\r\n/*!\r\n * awsm.css v3.0.7 (https://igoradamenko.github.io/awsm.css/)\r\n * Copyright 2015 Igor Adamenko (https://igoradamenko.com)\r\n * Licensed under MIT (https://github.com/igoradamenko/awsm.css/blob/master/LICENSE.md)\r\n */\r\nhtml{font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen,Ubuntu,Cantarell,\"PT Sans\",\"Open Sans\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",Helvetica,Arial,sans-serif;font-size:100%;line-height:1.4;background:#d3d7dd;color:#3a3b45;-webkit-overflow-scrolling:touch}body{margin:1.2em;font-size:1rem}@media (min-width:20rem){body{font-size:calc(1rem + .00625*(100vw - 20rem))}}@media (min-width:40rem){body{font-size:1.125rem}}body article,body footer,body header,body main{position:relative;max-width:40rem;margin:0 auto}body>header{margin-bottom:3.5em}body>header h1{margin:0;font-size:1.5em}body>header p{margin:0;font-size:.85em}body>footer{margin-top:6em;padding-bottom:1.5em;text-align:center;font-size:.8rem;color:#9197a3}details,nav{margin:1em 0}nav ul{list-style:none;margin:0;padding:0}nav li{display:inline-block;margin-right:1em;margin-bottom:.25em}nav li:last-child{margin-right:0}a,nav a:visited{color:#c34138}article header h1 a:visited:hover,article header h2 a:visited:hover,nav a:hover{color:#db887b}ol,ul{margin-top:0;padding-top:0;padding-left:2.5em}article header h1+p,article header h2+p,ol li+li,ul li+li{margin-top:.25em}ol li>details,ul li>details{margin:0}p{margin:1em 0;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}aside:first-child,form legend:first-child+label,p:first-child{margin-top:0}aside:last-child,p:last-child{margin-bottom:0}p+ol,p+ul{margin-top:-.75em}p img,p picture{float:right;margin-bottom:.5em;margin-left:.5em}p picture img{float:none;margin:0}blockquote,dd{padding-left:2.5em}dd{margin-bottom:1em;margin-left:0}dt{font-weight:700}blockquote{margin:0}aside{margin:.5em 0;font-style:italic;color:#9197a3}@media (min-width:65rem){aside{position:absolute;right:-12.5rem;width:9.375rem;max-width:9.375rem;margin:0;padding-left:.5em;font-size:.8em;border-left:1px solid #cfced4}}section+section{margin-top:2em}h1,h2,h3,h4,h5,h6{margin:1.25em 0 0;line-height:1.2}h1:focus>a[href^=\"#\"][id]:empty,h1:hover>a[href^=\"#\"][id]:empty,h2:focus>a[href^=\"#\"][id]:empty,h2:hover>a[href^=\"#\"][id]:empty,h3:focus>a[href^=\"#\"][id]:empty,h3:hover>a[href^=\"#\"][id]:empty,h4:focus>a[href^=\"#\"][id]:empty,h4:hover>a[href^=\"#\"][id]:empty,h5:focus>a[href^=\"#\"][id]:empty,h5:hover>a[href^=\"#\"][id]:empty,h6:focus>a[href^=\"#\"][id]:empty,h6:hover>a[href^=\"#\"][id]:empty{opacity:1}figure+p,h1+details,h1+p,h2+details,h2+p,h3+details,h3+p,h4+details,h4+p,h5+details,h5+p,h6+details,h6+p{margin-top:.5em}h1>a[href^=\"#\"][id]:empty,h2>a[href^=\"#\"][id]:empty,h3>a[href^=\"#\"][id]:empty,h4>a[href^=\"#\"][id]:empty,h5>a[href^=\"#\"][id]:empty,h6>a[href^=\"#\"][id]:empty{position:absolute;left:-.65em;opacity:0;text-decoration:none;font-weight:400;line-height:1;color:#9197a3}@media (min-width:40rem){h1>a[href^=\"#\"][id]:empty,h2>a[href^=\"#\"][id]:empty,h3>a[href^=\"#\"][id]:empty,h4>a[href^=\"#\"][id]:empty,h5>a[href^=\"#\"][id]:empty,h6>a[href^=\"#\"][id]:empty{left:-.8em}}h1>a[href^=\"#\"][id]:empty:focus,h1>a[href^=\"#\"][id]:empty:hover,h1>a[href^=\"#\"][id]:empty:target,h2>a[href^=\"#\"][id]:empty:focus,h2>a[href^=\"#\"][id]:empty:hover,h2>a[href^=\"#\"][id]:empty:target,h3>a[href^=\"#\"][id]:empty:focus,h3>a[href^=\"#\"][id]:empty:hover,h3>a[href^=\"#\"][id]:empty:target,h4>a[href^=\"#\"][id]:empty:focus,h4>a[href^=\"#\"][id]:empty:hover,h4>a[href^=\"#\"][id]:empty:target,h5>a[href^=\"#\"][id]:empty:focus,h5>a[href^=\"#\"][id]:empty:hover,h5>a[href^=\"#\"][id]:empty:target,h6>a[href^=\"#\"][id]:empty:focus,h6>a[href^=\"#\"][id]:empty:hover,h6>a[href^=\"#\"][id]:empty:target{opacity:1;box-shadow:none;color:#3a3b45}h1>a[href^=\"#\"][id]:empty:target:focus,h2>a[href^=\"#\"][id]:empty:target:focus,h3>a[href^=\"#\"][id]:empty:target:focus,h4>a[href^=\"#\"][id]:empty:target:focus,h5>a[href^=\"#\"][id]:empty:target:focus,h6>a[href^=\"#\"][id]:empty:target:focus{outline:0}h1>a[href^=\"#\"][id]:empty::before,h2>a[href^=\"#\"][id]:empty::before,h3>a[href^=\"#\"][id]:empty::before,h4>a[href^=\"#\"][id]:empty::before,h5>a[href^=\"#\"][id]:empty::before,h6>a[href^=\"#\"][id]:empty::before{content:\"§ \"}h1{font-size:2.5em}h2{font-size:1.75em}h3{font-size:1.25em}h4{font-size:1.15em}a abbr,h5,h6{font-size:1em}h6{margin-top:1em}article+article{margin-top:4em}article header p{font-size:.6em;color:#9197a3}article header p+h1,article header p+h2{margin-top:-.25em}article header h1 a,article header h2 a{color:#3a3b45}article header h1 a:visited,article header h2 a:visited,h6,legend{color:#9197a3}article>footer{margin-top:1.5em;font-size:.85em}a:visited{color:#603237}a:active,a:hover{outline-width:0}a:hover{color:#db887b}abbr{margin-right:-.075em;text-decoration:none;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;letter-spacing:.075em;font-size:.9em}img,picture{display:block;max-width:100%;margin:0 auto}audio,video{width:100%;max-width:100%}figure{margin:1em 0 .5em;padding:0}figure figcaption{opacity:.65;font-size:.85em}table{display:inline-block;border-spacing:0;border-collapse:collapse;overflow-x:auto;max-width:100%;text-align:left;vertical-align:top;background:linear-gradient(rgba(58,59,69,.15) 0%,rgba(58,59,69,.15) 100%) 0 0,linear-gradient(rgba(58,59,69,.15) 0%,rgba(58,59,69,.15) 100%) 100% 0;background-attachment:scroll,scroll;background-size:1px 100%,1px 100%;background-repeat:no-repeat,no-repeat}table caption{font-size:.9em;background:#d3d7dd}table td,table th{padding:.35em .75em;vertical-align:top;font-size:.9em;border:1px solid #cfced4;border-top:0;border-left:0}table td:first-child,table th:first-child{padding-left:0;background-image:linear-gradient(to right,#d3d7dd 50%,rgba(211,215,221,0) 100%);background-size:2px 100%;background-repeat:no-repeat}table td:last-child,table th:last-child{padding-right:0;border-right:0;background-image:linear-gradient(to left,#d3d7dd 50%,rgba(211,215,221,0) 100%);background-position:100% 0;background-size:2px 100%;background-repeat:no-repeat}table td:only-child,table th:only-child{background-image:linear-gradient(to right,#d3d7dd 50%,rgba(211,215,221,0) 100%),linear-gradient(to left,#d3d7dd 50%,rgba(211,215,221,0) 100%);background-position:0 0,100% 0;background-size:2px 100%,2px 100%;background-repeat:no-repeat,no-repeat}table th{line-height:1.2}form{margin-right:auto;margin-left:auto}@media (min-width:40rem){form{max-width:80%}}form label,form select,output{display:block}form label:not(:first-child){margin-top:1em}form p label{display:inline}form p label+label{margin-left:1em}form input[type],form select,form textarea{margin-bottom:1em}form input[type=checkbox],form input[type=radio]{margin-bottom:0}button,fieldset{margin:0;border:1px solid #9197a3}fieldset{padding:.5em 1em}button{outline:0;box-sizing:border-box;height:2em;padding:calc(.25em - 1px) .5em;font-family:inherit;font-size:1em;border-radius:2px;background:#d3d7dd;display:inline-block;width:auto;background:#cfced4;color:#3a3b45;cursor:pointer}button:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type^=date]:focus,select:focus{border:1px solid #3a3b45}button:not([disabled]):hover,input[type=button]:not([disabled]):hover,input[type=file]:not([disabled]):hover,input[type=reset]:not([disabled]):hover,input[type=submit]:not([disabled]):hover,select:not([disabled]):hover{border:1px solid #3a3b45}button:active,select:active{background-color:#9197a3}button[disabled],select[disabled]{color:#9197a3;cursor:not-allowed}select{outline:0;box-sizing:border-box;height:2em;margin:0;padding:calc(.25em - 1px) .5em;font-family:inherit;font-size:1em;border:1px solid #9197a3;border-radius:2px;background:#d3d7dd;display:inline-block;width:auto;background:#cfced4;color:#3a3b45;cursor:pointer;padding-right:1.2em;background-position:top 55% right .35em;background-size:.5em;background-repeat:no-repeat;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 3 2'%3E%3Cpath fill='rgb(145, 151, 163)' fill-rule='nonzero' d='M1.5 2L3 0H0z'/%3E%3C/svg%3E\")}select:not([disabled]):focus,select:not([disabled]):hover{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 3 2'%3E%3Cpath fill='rgb(58, 59, 69)' fill-rule='nonzero' d='M1.5 2L3 0H0z'/%3E%3C/svg%3E\")}input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],input[type^=date]{outline:0;box-sizing:border-box;height:2em;margin:0;padding:calc(.25em - 1px) .5em;font-family:inherit;font-size:1em;border:1px solid #9197a3;border-radius:2px;background:#d3d7dd;color:#3a3b45;display:block;width:100%;line-height:calc(2em - 1px*2 - (.25em - 1px)*2);-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=email]::-moz-placeholder,input[type=month]::-moz-placeholder,input[type=number]::-moz-placeholder,input[type=password]::-moz-placeholder,input[type=search]::-moz-placeholder,input[type=tel]::-moz-placeholder,input[type=text]::-moz-placeholder,input[type=time]::-moz-placeholder,input[type=url]::-moz-placeholder,input[type=week]::-moz-placeholder,input[type^=date]::-moz-placeholder{color:#9197a3}input[type=email]::-webkit-input-placeholder,input[type=month]::-webkit-input-placeholder,input[type=number]::-webkit-input-placeholder,input[type=password]::-webkit-input-placeholder,input[type=search]::-webkit-input-placeholder,input[type=tel]::-webkit-input-placeholder,input[type=text]::-webkit-input-placeholder,input[type=time]::-webkit-input-placeholder,input[type=url]::-webkit-input-placeholder,input[type=week]::-webkit-input-placeholder,input[type^=date]::-webkit-input-placeholder{color:#9197a3}input[type=email]:-ms-input-placeholder,input[type=month]:-ms-input-placeholder,input[type=number]:-ms-input-placeholder,input[type=password]:-ms-input-placeholder,input[type=search]:-ms-input-placeholder,input[type=tel]:-ms-input-placeholder,input[type=text]:-ms-input-placeholder,input[type=time]:-ms-input-placeholder,input[type=url]:-ms-input-placeholder,input[type=week]:-ms-input-placeholder,input[type^=date]:-ms-input-placeholder{color:#9197a3}input[type=button],input[type=reset],input[type=submit]{outline:0;box-sizing:border-box;height:2em;margin:0;padding:calc(.25em - 1px) .5em;font-family:inherit;font-size:1em;border:1px solid #9197a3;border-radius:2px;background:#d3d7dd;display:inline-block;width:auto;background:#cfced4;color:#3a3b45;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=button]:focus,input[type=reset]:focus,input[type=submit]:focus{border:1px solid #3a3b45}input[type=button]:active,input[type=reset]:active,input[type=submit]:active{background-color:#9197a3}input[type=button][disabled],input[type=reset][disabled],input[type=submit][disabled]{color:#9197a3;cursor:not-allowed}input[type=color]{outline:0;box-sizing:border-box;height:2em;margin:0;padding:calc(.25em - 1px) .5em;font-family:inherit;font-size:1em;border:1px solid #9197a3;border-radius:2px;background:#d3d7dd;color:#3a3b45;display:block;line-height:calc(2em - 1px*2 - (.25em - 1px)*2);-webkit-appearance:none;-moz-appearance:none;appearance:none;width:6em}input[type=color]:focus{border:1px solid #3a3b45}input[type=color]::-moz-placeholder,textarea::-moz-placeholder{color:#9197a3}input[type=color]::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#9197a3}input[type=color]:-ms-input-placeholder{color:#9197a3}input[type=color]:hover{border:1px solid #3a3b45}input[type=file]{outline:0;box-sizing:border-box;margin:0;padding:calc(.25em - 1px) .5em;font-family:inherit;border:1px solid #9197a3;border-radius:2px;background:#d3d7dd;background:#cfced4;color:#3a3b45;cursor:pointer;display:block;width:100%;height:auto;padding:.75em .5em;font-size:12px;line-height:1}input[type=file]:focus,textarea:focus{border:1px solid #3a3b45}input[type=file]:active{background-color:#9197a3}input[type=file][disabled]{color:#9197a3;cursor:not-allowed}input[type=checkbox],input[type=radio]{margin:-.2em .75em 0 0;vertical-align:middle}textarea{outline:0;box-sizing:border-box;margin:0;padding:calc(.25em - 1px) .5em;font-family:inherit;font-size:1em;border:1px solid #9197a3;border-radius:2px;background:#d3d7dd;color:#3a3b45;display:block;width:100%;line-height:calc(2em - 1px*2 - (.25em - 1px)*2);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4.5em;resize:vertical;padding-top:.5em;padding-bottom:.5em}textarea:-ms-input-placeholder{color:#9197a3}code,kbd,samp,var{font-family:Consolas,\"Lucida Console\",Monaco,monospace;font-style:normal}pre{overflow-x:auto;font-size:.8em;background:linear-gradient(rgba(58,59,69,.15) 0%,rgba(58,59,69,.15) 100%) 0 0,linear-gradient(rgba(58,59,69,.15) 0%,rgba(58,59,69,.15) 100%) 100% 0;background-attachment:scroll,scroll;background-size:1px 100%,1px 100%;background-repeat:no-repeat,no-repeat}pre>code,summary{display:inline-block}pre>code{overflow-x:visible;box-sizing:border-box;min-width:100%;border-right:3px solid #d3d7dd;border-left:1px solid #d3d7dd}hr{height:1px;margin:2em 0;border:0;background:#cfced4}details[open]{padding-bottom:.5em;border-bottom:1px solid #cfced4}summary{font-weight:700;border-bottom:1px dashed;cursor:pointer}summary::-webkit-details-marker{display:none}noscript{color:#851f1b}::selection{background:rgba(195,65,56,.25)}\r\n"],"names":[],"version":3,"file":"options.e81abfba.css.map"} \ No newline at end of file diff --git a/dist/options.e9fad817.css b/dist/options.e9fad817.css deleted file mode 100644 index ae50cf7..0000000 --- a/dist/options.e9fad817.css +++ /dev/null @@ -1,7 +0,0 @@ -@charset "UTF-8"; -/*! - * awsm.css v3.0.7 (https://igoradamenko.github.io/awsm.css/) - * Copyright 2015 Igor Adamenko (https://igoradamenko.com) - * Licensed under MIT (https://github.com/igoradamenko/awsm.css/blob/master/LICENSE.md) - */html{-webkit-overflow-scrolling:touch;background:#fff;color:#000;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,PT Sans,Open Sans,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:100%;line-height:1.4}body{font-size:1rem;margin:1.2em}@media (min-width:20rem){body{font-size:calc(.875rem + .625vw)}}@media (min-width:40rem){body{font-size:1.125rem}}body article,body footer,body header,body main{margin:0 auto;max-width:40rem;position:relative}body>header{margin-bottom:3.5em}body>header h1{font-size:1.5em;margin:0}body>header p{font-size:.85em;margin:0}body>footer{color:#aaa;font-size:.8rem;margin-top:6em;padding-bottom:1.5em;text-align:center}details,nav{margin:1em 0}nav ul{list-style:none;margin:0;padding:0}nav li{display:inline-block;margin-bottom:.25em;margin-right:1em}nav li:last-child{margin-right:0}a,nav a:visited{color:#0064c1}article header h1 a:visited:hover,article header h2 a:visited:hover,nav a:hover{color:#f00000}ol,ul{margin-top:0;padding-left:2.5em;padding-top:0}article header h1+p,article header h2+p,ol li+li,ul li+li{margin-top:.25em}ol li>details,ul li>details{margin:0}p{-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;margin:1em 0}aside:first-child,form legend:first-child+label,p:first-child{margin-top:0}aside:last-child,p:last-child{margin-bottom:0}p+ol,p+ul{margin-top:-.75em}p img,p picture{float:right;margin-bottom:.5em;margin-left:.5em}p picture img{float:none;margin:0}blockquote,dd{padding-left:2.5em}dd{margin-bottom:1em;margin-left:0}dt{font-weight:700}blockquote{margin:0}aside{color:#aaa;font-style:italic;margin:.5em 0}@media (min-width:65rem){aside{border-left:1px solid #f2f2f2;font-size:.8em;margin:0;max-width:9.375rem;padding-left:.5em;position:absolute;right:-12.5rem;width:9.375rem}}section+section{margin-top:2em}h1,h2,h3,h4,h5,h6{line-height:1.2;margin:1.25em 0 0}h1:focus>a[href^="#"][id]:empty,h1:hover>a[href^="#"][id]:empty,h2:focus>a[href^="#"][id]:empty,h2:hover>a[href^="#"][id]:empty,h3:focus>a[href^="#"][id]:empty,h3:hover>a[href^="#"][id]:empty,h4:focus>a[href^="#"][id]:empty,h4:hover>a[href^="#"][id]:empty,h5:focus>a[href^="#"][id]:empty,h5:hover>a[href^="#"][id]:empty,h6:focus>a[href^="#"][id]:empty,h6:hover>a[href^="#"][id]:empty{opacity:1}figure+p,h1+details,h1+p,h2+details,h2+p,h3+details,h3+p,h4+details,h4+p,h5+details,h5+p,h6+details,h6+p{margin-top:.5em}h1>a[href^="#"][id]:empty,h2>a[href^="#"][id]:empty,h3>a[href^="#"][id]:empty,h4>a[href^="#"][id]:empty,h5>a[href^="#"][id]:empty,h6>a[href^="#"][id]:empty{color:#aaa;font-weight:400;left:-.65em;line-height:1;opacity:0;position:absolute;text-decoration:none}@media (min-width:40rem){h1>a[href^="#"][id]:empty,h2>a[href^="#"][id]:empty,h3>a[href^="#"][id]:empty,h4>a[href^="#"][id]:empty,h5>a[href^="#"][id]:empty,h6>a[href^="#"][id]:empty{left:-.8em}}h1>a[href^="#"][id]:empty:focus,h1>a[href^="#"][id]:empty:hover,h1>a[href^="#"][id]:empty:target,h2>a[href^="#"][id]:empty:focus,h2>a[href^="#"][id]:empty:hover,h2>a[href^="#"][id]:empty:target,h3>a[href^="#"][id]:empty:focus,h3>a[href^="#"][id]:empty:hover,h3>a[href^="#"][id]:empty:target,h4>a[href^="#"][id]:empty:focus,h4>a[href^="#"][id]:empty:hover,h4>a[href^="#"][id]:empty:target,h5>a[href^="#"][id]:empty:focus,h5>a[href^="#"][id]:empty:hover,h5>a[href^="#"][id]:empty:target,h6>a[href^="#"][id]:empty:focus,h6>a[href^="#"][id]:empty:hover,h6>a[href^="#"][id]:empty:target{box-shadow:none;color:#000;opacity:1}h1>a[href^="#"][id]:empty:target:focus,h2>a[href^="#"][id]:empty:target:focus,h3>a[href^="#"][id]:empty:target:focus,h4>a[href^="#"][id]:empty:target:focus,h5>a[href^="#"][id]:empty:target:focus,h6>a[href^="#"][id]:empty:target:focus{outline:0}h1>a[href^="#"][id]:empty:before,h2>a[href^="#"][id]:empty:before,h3>a[href^="#"][id]:empty:before,h4>a[href^="#"][id]:empty:before,h5>a[href^="#"][id]:empty:before,h6>a[href^="#"][id]:empty:before{content:"§ "}h1{font-size:2.5em}h2{font-size:1.75em}h3{font-size:1.25em}h4{font-size:1.15em}a abbr,h5,h6{font-size:1em}h6{margin-top:1em}article+article{margin-top:4em}article header p{color:#aaa;font-size:.6em}article header p+h1,article header p+h2{margin-top:-.25em}article header h1 a,article header h2 a{color:#000}article header h1 a:visited,article header h2 a:visited,h6,legend{color:#aaa}article>footer{font-size:.85em;margin-top:1.5em}a:visited{color:#8d39d0}a:active,a:hover{outline-width:0}a:hover{color:#f00000}abbr{font-size:.9em;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;letter-spacing:.075em;margin-right:-.075em;text-decoration:none}img,picture{display:block;margin:0 auto;max-width:100%}audio,video{max-width:100%;width:100%}figure{margin:1em 0 .5em;padding:0}figure figcaption{font-size:.85em;opacity:.65}table{background:linear-gradient(rgba(0,0,0,.15),rgba(0,0,0,.15)) 0 0,linear-gradient(rgba(0,0,0,.15),rgba(0,0,0,.15)) 100% 0;background-attachment:scroll,scroll;background-repeat:no-repeat,no-repeat;background-size:1px 100%,1px 100%;border-collapse:collapse;border-spacing:0;display:inline-block;max-width:100%;overflow-x:auto;text-align:left;vertical-align:top}table caption{background:#fff;font-size:.9em}table td,table th{border:1px solid #f2f2f2;border-left:0;border-top:0;font-size:.9em;padding:.35em .75em;vertical-align:top}table td:first-child,table th:first-child{background-image:linear-gradient(90deg,#fff 50%,hsla(0,0%,100%,0));background-repeat:no-repeat;background-size:2px 100%;padding-left:0}table td:last-child,table th:last-child{background-image:linear-gradient(270deg,#fff 50%,hsla(0,0%,100%,0));background-position:100% 0;background-repeat:no-repeat;background-size:2px 100%;border-right:0;padding-right:0}table td:only-child,table th:only-child{background-image:linear-gradient(90deg,#fff 50%,hsla(0,0%,100%,0)),linear-gradient(270deg,#fff 50%,hsla(0,0%,100%,0));background-position:0 0,100% 0;background-repeat:no-repeat,no-repeat;background-size:2px 100%,2px 100%}table th{line-height:1.2}form{margin-left:auto;margin-right:auto}@media (min-width:40rem){form{max-width:80%}}form label,form select,output{display:block}form label:not(:first-child){margin-top:1em}form p label{display:inline}form p label+label{margin-left:1em}form input[type],form select,form textarea{margin-bottom:1em}form input[type=checkbox],form input[type=radio]{margin-bottom:0}button,fieldset{border:1px solid #aaa;margin:0}fieldset{padding:.5em 1em}button{background:#fff;background:#f2f2f2;border-radius:2px;box-sizing:border-box;color:#000;cursor:pointer;display:inline-block;font-family:inherit;font-size:1em;height:2em;outline:0;padding:calc(.25em - 1px) .5em;width:auto}button:focus,button:not([disabled]):hover,input[type=button]:not([disabled]):hover,input[type=email]:focus,input[type=file]:not([disabled]):hover,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=reset]:not([disabled]):hover,input[type=search]:focus,input[type=submit]:not([disabled]):hover,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type^=date]:focus,select:focus,select:not([disabled]):hover{border:1px solid #000}button:active,select:active{background-color:#aaa}button[disabled],select[disabled]{color:#aaa;cursor:not-allowed}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff;background:#f2f2f2;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 3 2'%3E%3Cpath fill='%23AAA' d='M1.5 2 3 0H0z'/%3E%3C/svg%3E");background-position:top 55% right .35em;background-repeat:no-repeat;background-size:.5em;border:1px solid #aaa;border-radius:2px;box-sizing:border-box;color:#000;cursor:pointer;display:inline-block;font-family:inherit;font-size:1em;height:2em;margin:0;outline:0;padding:calc(.25em - 1px) 1.2em calc(.25em - 1px) .5em;width:auto}select:not([disabled]):focus,select:not([disabled]):hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 3 2'%3E%3Cpath d='M1.5 2 3 0H0z'/%3E%3C/svg%3E")}input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],input[type^=date]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff;border:1px solid #aaa;border-radius:2px;box-sizing:border-box;color:#000;display:block;font-family:inherit;font-size:1em;height:2em;line-height:1.5em;margin:0;outline:0;padding:calc(.25em - 1px) .5em;width:100%}input[type=email]::-moz-placeholder,input[type=month]::-moz-placeholder,input[type=number]::-moz-placeholder,input[type=password]::-moz-placeholder,input[type=search]::-moz-placeholder,input[type=tel]::-moz-placeholder,input[type=text]::-moz-placeholder,input[type=time]::-moz-placeholder,input[type=url]::-moz-placeholder,input[type=week]::-moz-placeholder,input[type^=date]::-moz-placeholder{color:#aaa}input[type=email]::-webkit-input-placeholder,input[type=month]::-webkit-input-placeholder,input[type=number]::-webkit-input-placeholder,input[type=password]::-webkit-input-placeholder,input[type=search]::-webkit-input-placeholder,input[type=tel]::-webkit-input-placeholder,input[type=text]::-webkit-input-placeholder,input[type=time]::-webkit-input-placeholder,input[type=url]::-webkit-input-placeholder,input[type=week]::-webkit-input-placeholder,input[type^=date]::-webkit-input-placeholder{color:#aaa}input[type=email]:-ms-input-placeholder,input[type=month]:-ms-input-placeholder,input[type=number]:-ms-input-placeholder,input[type=password]:-ms-input-placeholder,input[type=search]:-ms-input-placeholder,input[type=tel]:-ms-input-placeholder,input[type=text]:-ms-input-placeholder,input[type=time]:-ms-input-placeholder,input[type=url]:-ms-input-placeholder,input[type=week]:-ms-input-placeholder,input[type^=date]:-ms-input-placeholder{color:#aaa}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff;background:#f2f2f2;border:1px solid #aaa;border-radius:2px;box-sizing:border-box;color:#000;cursor:pointer;display:inline-block;font-family:inherit;font-size:1em;height:2em;margin:0;outline:0;padding:calc(.25em - 1px) .5em;width:auto}input[type=button]:focus,input[type=reset]:focus,input[type=submit]:focus{border:1px solid #000}input[type=button]:active,input[type=reset]:active,input[type=submit]:active{background-color:#aaa}input[type=button][disabled],input[type=reset][disabled],input[type=submit][disabled]{color:#aaa;cursor:not-allowed}input[type=color]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff;border:1px solid #aaa;border-radius:2px;box-sizing:border-box;color:#000;display:block;font-family:inherit;font-size:1em;height:2em;line-height:1.5em;margin:0;outline:0;padding:calc(.25em - 1px) .5em;width:6em}input[type=color]:focus{border:1px solid #000}input[type=color]::-moz-placeholder,textarea::-moz-placeholder{color:#aaa}input[type=color]::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#aaa}input[type=color]:-ms-input-placeholder{color:#aaa}input[type=color]:hover{border:1px solid #000}input[type=file]{background:#fff;background:#f2f2f2;border:1px solid #aaa;border-radius:2px;box-sizing:border-box;color:#000;cursor:pointer;display:block;font-family:inherit;font-size:12px;height:auto;line-height:1;margin:0;outline:0;padding:.75em .5em;width:100%}input[type=file]:focus,textarea:focus{border:1px solid #000}input[type=file]:active{background-color:#aaa}input[type=file][disabled]{color:#aaa;cursor:not-allowed}input[type=checkbox],input[type=radio]{margin:-.2em .75em 0 0;vertical-align:middle}textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff;border:1px solid #aaa;border-radius:2px;box-sizing:border-box;color:#000;display:block;font-family:inherit;font-size:1em;height:4.5em;line-height:1.5em;margin:0;outline:0;padding:.5em;resize:vertical;width:100%}textarea:-ms-input-placeholder{color:#aaa}code,kbd,samp,var{font-family:Consolas,Lucida Console,Monaco,monospace;font-style:normal}pre{background:linear-gradient(rgba(0,0,0,.15),rgba(0,0,0,.15)) 0 0,linear-gradient(rgba(0,0,0,.15),rgba(0,0,0,.15)) 100% 0;background-attachment:scroll,scroll;background-repeat:no-repeat,no-repeat;background-size:1px 100%,1px 100%;font-size:.8em;overflow-x:auto}pre>code,summary{display:inline-block}pre>code{border-left:1px solid #fff;border-right:3px solid #fff;box-sizing:border-box;min-width:100%;overflow-x:visible}hr{background:#f2f2f2;border:0;height:1px;margin:2em 0}details[open]{border-bottom:1px solid #f2f2f2;padding-bottom:.5em}summary{border-bottom:1px dashed;cursor:pointer;font-weight:700}summary::-webkit-details-marker{display:none}noscript{color:#d00000}::selection{background:rgba(0,100,193,.25)} -/*# sourceMappingURL=options.e9fad817.css.map */ diff --git a/dist/options.e9fad817.css.map b/dist/options.e9fad817.css.map deleted file mode 100644 index ad8757e..0000000 --- a/dist/options.e9fad817.css.map +++ /dev/null @@ -1 +0,0 @@ -{"mappings":"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","sources":["src/awsm.min.css"],"sourcesContent":["@charset \"UTF-8\";\r\n/*!\r\n * awsm.css v3.0.7 (https://igoradamenko.github.io/awsm.css/)\r\n * Copyright 2015 Igor Adamenko (https://igoradamenko.com)\r\n * Licensed under MIT (https://github.com/igoradamenko/awsm.css/blob/master/LICENSE.md)\r\n */\r\nhtml{font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen,Ubuntu,Cantarell,\"PT Sans\",\"Open Sans\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",Helvetica,Arial,sans-serif;font-size:100%;line-height:1.4;background:#fff;color:#000;-webkit-overflow-scrolling:touch}body{margin:1.2em;font-size:1rem}@media (min-width:20rem){body{font-size:calc(1rem + .00625*(100vw - 20rem))}}@media (min-width:40rem){body{font-size:1.125rem}}body article,body footer,body header,body main{position:relative;max-width:40rem;margin:0 auto}body>header{margin-bottom:3.5em}body>header h1{margin:0;font-size:1.5em}body>header p{margin:0;font-size:.85em}body>footer{margin-top:6em;padding-bottom:1.5em;text-align:center;font-size:.8rem;color:#aaa}details,nav{margin:1em 0}nav ul{list-style:none;margin:0;padding:0}nav li{display:inline-block;margin-right:1em;margin-bottom:.25em}nav li:last-child{margin-right:0}a,nav a:visited{color:#0064c1}article header h1 a:visited:hover,article header h2 a:visited:hover,nav a:hover{color:#f00000}ol,ul{margin-top:0;padding-top:0;padding-left:2.5em}article header h1+p,article header h2+p,ol li+li,ul li+li{margin-top:.25em}ol li>details,ul li>details{margin:0}p{margin:1em 0;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}aside:first-child,form legend:first-child+label,p:first-child{margin-top:0}aside:last-child,p:last-child{margin-bottom:0}p+ol,p+ul{margin-top:-.75em}p img,p picture{float:right;margin-bottom:.5em;margin-left:.5em}p picture img{float:none;margin:0}blockquote,dd{padding-left:2.5em}dd{margin-bottom:1em;margin-left:0}dt{font-weight:700}blockquote{margin:0}aside{margin:.5em 0;font-style:italic;color:#aaa}@media (min-width:65rem){aside{position:absolute;right:-12.5rem;width:9.375rem;max-width:9.375rem;margin:0;padding-left:.5em;font-size:.8em;border-left:1px solid #f2f2f2}}section+section{margin-top:2em}h1,h2,h3,h4,h5,h6{margin:1.25em 0 0;line-height:1.2}h1:focus>a[href^=\"#\"][id]:empty,h1:hover>a[href^=\"#\"][id]:empty,h2:focus>a[href^=\"#\"][id]:empty,h2:hover>a[href^=\"#\"][id]:empty,h3:focus>a[href^=\"#\"][id]:empty,h3:hover>a[href^=\"#\"][id]:empty,h4:focus>a[href^=\"#\"][id]:empty,h4:hover>a[href^=\"#\"][id]:empty,h5:focus>a[href^=\"#\"][id]:empty,h5:hover>a[href^=\"#\"][id]:empty,h6:focus>a[href^=\"#\"][id]:empty,h6:hover>a[href^=\"#\"][id]:empty{opacity:1}figure+p,h1+details,h1+p,h2+details,h2+p,h3+details,h3+p,h4+details,h4+p,h5+details,h5+p,h6+details,h6+p{margin-top:.5em}h1>a[href^=\"#\"][id]:empty,h2>a[href^=\"#\"][id]:empty,h3>a[href^=\"#\"][id]:empty,h4>a[href^=\"#\"][id]:empty,h5>a[href^=\"#\"][id]:empty,h6>a[href^=\"#\"][id]:empty{position:absolute;left:-.65em;opacity:0;text-decoration:none;font-weight:400;line-height:1;color:#aaa}@media (min-width:40rem){h1>a[href^=\"#\"][id]:empty,h2>a[href^=\"#\"][id]:empty,h3>a[href^=\"#\"][id]:empty,h4>a[href^=\"#\"][id]:empty,h5>a[href^=\"#\"][id]:empty,h6>a[href^=\"#\"][id]:empty{left:-.8em}}h1>a[href^=\"#\"][id]:empty:focus,h1>a[href^=\"#\"][id]:empty:hover,h1>a[href^=\"#\"][id]:empty:target,h2>a[href^=\"#\"][id]:empty:focus,h2>a[href^=\"#\"][id]:empty:hover,h2>a[href^=\"#\"][id]:empty:target,h3>a[href^=\"#\"][id]:empty:focus,h3>a[href^=\"#\"][id]:empty:hover,h3>a[href^=\"#\"][id]:empty:target,h4>a[href^=\"#\"][id]:empty:focus,h4>a[href^=\"#\"][id]:empty:hover,h4>a[href^=\"#\"][id]:empty:target,h5>a[href^=\"#\"][id]:empty:focus,h5>a[href^=\"#\"][id]:empty:hover,h5>a[href^=\"#\"][id]:empty:target,h6>a[href^=\"#\"][id]:empty:focus,h6>a[href^=\"#\"][id]:empty:hover,h6>a[href^=\"#\"][id]:empty:target{opacity:1;box-shadow:none;color:#000}h1>a[href^=\"#\"][id]:empty:target:focus,h2>a[href^=\"#\"][id]:empty:target:focus,h3>a[href^=\"#\"][id]:empty:target:focus,h4>a[href^=\"#\"][id]:empty:target:focus,h5>a[href^=\"#\"][id]:empty:target:focus,h6>a[href^=\"#\"][id]:empty:target:focus{outline:0}h1>a[href^=\"#\"][id]:empty::before,h2>a[href^=\"#\"][id]:empty::before,h3>a[href^=\"#\"][id]:empty::before,h4>a[href^=\"#\"][id]:empty::before,h5>a[href^=\"#\"][id]:empty::before,h6>a[href^=\"#\"][id]:empty::before{content:\"§ \"}h1{font-size:2.5em}h2{font-size:1.75em}h3{font-size:1.25em}h4{font-size:1.15em}a abbr,h5,h6{font-size:1em}h6{margin-top:1em}article+article{margin-top:4em}article header p{font-size:.6em;color:#aaa}article header p+h1,article header p+h2{margin-top:-.25em}article header h1 a,article header h2 a{color:#000}article header h1 a:visited,article header h2 a:visited,h6,legend{color:#aaa}article>footer{margin-top:1.5em;font-size:.85em}a:visited{color:#8d39d0}a:active,a:hover{outline-width:0}a:hover{color:#f00000}abbr{margin-right:-.075em;text-decoration:none;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;letter-spacing:.075em;font-size:.9em}img,picture{display:block;max-width:100%;margin:0 auto}audio,video{width:100%;max-width:100%}figure{margin:1em 0 .5em;padding:0}figure figcaption{opacity:.65;font-size:.85em}table{display:inline-block;border-spacing:0;border-collapse:collapse;overflow-x:auto;max-width:100%;text-align:left;vertical-align:top;background:linear-gradient(rgba(0,0,0,.15) 0%,rgba(0,0,0,.15) 100%) 0 0,linear-gradient(rgba(0,0,0,.15) 0%,rgba(0,0,0,.15) 100%) 100% 0;background-attachment:scroll,scroll;background-size:1px 100%,1px 100%;background-repeat:no-repeat,no-repeat}table caption{font-size:.9em;background:#fff}table td,table th{padding:.35em .75em;vertical-align:top;font-size:.9em;border:1px solid #f2f2f2;border-top:0;border-left:0}table td:first-child,table th:first-child{padding-left:0;background-image:linear-gradient(to right,#fff 50%,rgba(255,255,255,0) 100%);background-size:2px 100%;background-repeat:no-repeat}table td:last-child,table th:last-child{padding-right:0;border-right:0;background-image:linear-gradient(to left,#fff 50%,rgba(255,255,255,0) 100%);background-position:100% 0;background-size:2px 100%;background-repeat:no-repeat}table td:only-child,table th:only-child{background-image:linear-gradient(to right,#fff 50%,rgba(255,255,255,0) 100%),linear-gradient(to left,#fff 50%,rgba(255,255,255,0) 100%);background-position:0 0,100% 0;background-size:2px 100%,2px 100%;background-repeat:no-repeat,no-repeat}table th{line-height:1.2}form{margin-right:auto;margin-left:auto}@media (min-width:40rem){form{max-width:80%}}form label,form select,output{display:block}form label:not(:first-child){margin-top:1em}form p label{display:inline}form p label+label{margin-left:1em}form input[type],form select,form textarea{margin-bottom:1em}form input[type=checkbox],form input[type=radio]{margin-bottom:0}button,fieldset{margin:0;border:1px solid #aaa}fieldset{padding:.5em 1em}button{outline:0;box-sizing:border-box;height:2em;padding:calc(.25em - 1px) .5em;font-family:inherit;font-size:1em;border-radius:2px;background:#fff;display:inline-block;width:auto;background:#f2f2f2;color:#000;cursor:pointer}button:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type^=date]:focus,select:focus{border:1px solid #000}button:not([disabled]):hover,input[type=button]:not([disabled]):hover,input[type=file]:not([disabled]):hover,input[type=reset]:not([disabled]):hover,input[type=submit]:not([disabled]):hover,select:not([disabled]):hover{border:1px solid #000}button:active,select:active{background-color:#aaa}button[disabled],select[disabled]{color:#aaa;cursor:not-allowed}select{outline:0;box-sizing:border-box;height:2em;margin:0;padding:calc(.25em - 1px) .5em;font-family:inherit;font-size:1em;border:1px solid #aaa;border-radius:2px;background:#fff;display:inline-block;width:auto;background:#f2f2f2;color:#000;cursor:pointer;padding-right:1.2em;background-position:top 55% right .35em;background-size:.5em;background-repeat:no-repeat;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 3 2'%3E%3Cpath fill='rgb(170, 170, 170)' fill-rule='nonzero' d='M1.5 2L3 0H0z'/%3E%3C/svg%3E\")}select:not([disabled]):focus,select:not([disabled]):hover{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 3 2'%3E%3Cpath fill='rgb(0, 0, 0)' fill-rule='nonzero' d='M1.5 2L3 0H0z'/%3E%3C/svg%3E\")}input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],input[type^=date]{outline:0;box-sizing:border-box;height:2em;margin:0;padding:calc(.25em - 1px) .5em;font-family:inherit;font-size:1em;border:1px solid #aaa;border-radius:2px;background:#fff;color:#000;display:block;width:100%;line-height:calc(2em - 1px*2 - (.25em - 1px)*2);-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=email]::-moz-placeholder,input[type=month]::-moz-placeholder,input[type=number]::-moz-placeholder,input[type=password]::-moz-placeholder,input[type=search]::-moz-placeholder,input[type=tel]::-moz-placeholder,input[type=text]::-moz-placeholder,input[type=time]::-moz-placeholder,input[type=url]::-moz-placeholder,input[type=week]::-moz-placeholder,input[type^=date]::-moz-placeholder{color:#aaa}input[type=email]::-webkit-input-placeholder,input[type=month]::-webkit-input-placeholder,input[type=number]::-webkit-input-placeholder,input[type=password]::-webkit-input-placeholder,input[type=search]::-webkit-input-placeholder,input[type=tel]::-webkit-input-placeholder,input[type=text]::-webkit-input-placeholder,input[type=time]::-webkit-input-placeholder,input[type=url]::-webkit-input-placeholder,input[type=week]::-webkit-input-placeholder,input[type^=date]::-webkit-input-placeholder{color:#aaa}input[type=email]:-ms-input-placeholder,input[type=month]:-ms-input-placeholder,input[type=number]:-ms-input-placeholder,input[type=password]:-ms-input-placeholder,input[type=search]:-ms-input-placeholder,input[type=tel]:-ms-input-placeholder,input[type=text]:-ms-input-placeholder,input[type=time]:-ms-input-placeholder,input[type=url]:-ms-input-placeholder,input[type=week]:-ms-input-placeholder,input[type^=date]:-ms-input-placeholder{color:#aaa}input[type=button],input[type=reset],input[type=submit]{outline:0;box-sizing:border-box;height:2em;margin:0;padding:calc(.25em - 1px) .5em;font-family:inherit;font-size:1em;border:1px solid #aaa;border-radius:2px;background:#fff;display:inline-block;width:auto;background:#f2f2f2;color:#000;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=button]:focus,input[type=reset]:focus,input[type=submit]:focus{border:1px solid #000}input[type=button]:active,input[type=reset]:active,input[type=submit]:active{background-color:#aaa}input[type=button][disabled],input[type=reset][disabled],input[type=submit][disabled]{color:#aaa;cursor:not-allowed}input[type=color]{outline:0;box-sizing:border-box;height:2em;margin:0;padding:calc(.25em - 1px) .5em;font-family:inherit;font-size:1em;border:1px solid #aaa;border-radius:2px;background:#fff;color:#000;display:block;line-height:calc(2em - 1px*2 - (.25em - 1px)*2);-webkit-appearance:none;-moz-appearance:none;appearance:none;width:6em}input[type=color]:focus{border:1px solid #000}input[type=color]::-moz-placeholder,textarea::-moz-placeholder{color:#aaa}input[type=color]::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#aaa}input[type=color]:-ms-input-placeholder{color:#aaa}input[type=color]:hover{border:1px solid #000}input[type=file]{outline:0;box-sizing:border-box;margin:0;padding:calc(.25em - 1px) .5em;font-family:inherit;border:1px solid #aaa;border-radius:2px;background:#fff;background:#f2f2f2;color:#000;cursor:pointer;display:block;width:100%;height:auto;padding:.75em .5em;font-size:12px;line-height:1}input[type=file]:focus,textarea:focus{border:1px solid #000}input[type=file]:active{background-color:#aaa}input[type=file][disabled]{color:#aaa;cursor:not-allowed}input[type=checkbox],input[type=radio]{margin:-.2em .75em 0 0;vertical-align:middle}textarea{outline:0;box-sizing:border-box;margin:0;padding:calc(.25em - 1px) .5em;font-family:inherit;font-size:1em;border:1px solid #aaa;border-radius:2px;background:#fff;color:#000;display:block;width:100%;line-height:calc(2em - 1px*2 - (.25em - 1px)*2);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4.5em;resize:vertical;padding-top:.5em;padding-bottom:.5em}textarea:-ms-input-placeholder{color:#aaa}code,kbd,samp,var{font-family:Consolas,\"Lucida Console\",Monaco,monospace;font-style:normal}pre{overflow-x:auto;font-size:.8em;background:linear-gradient(rgba(0,0,0,.15) 0%,rgba(0,0,0,.15) 100%) 0 0,linear-gradient(rgba(0,0,0,.15) 0%,rgba(0,0,0,.15) 100%) 100% 0;background-attachment:scroll,scroll;background-size:1px 100%,1px 100%;background-repeat:no-repeat,no-repeat}pre>code,summary{display:inline-block}pre>code{overflow-x:visible;box-sizing:border-box;min-width:100%;border-right:3px solid #fff;border-left:1px solid #fff}hr{height:1px;margin:2em 0;border:0;background:#f2f2f2}details[open]{padding-bottom:.5em;border-bottom:1px solid #f2f2f2}summary{font-weight:700;border-bottom:1px dashed;cursor:pointer}summary::-webkit-details-marker{display:none}noscript{color:#d00000}::selection{background:rgba(0,100,193,.25)}\r\n"],"names":[],"version":3,"file":"options.e9fad817.css.map"} \ No newline at end of file diff --git a/dist/options.86176e60.js b/dist/options.f4acf2fb.js similarity index 93% rename from dist/options.86176e60.js rename to dist/options.f4acf2fb.js index c7b049c..af0c0fb 100644 --- a/dist/options.86176e60.js +++ b/dist/options.f4acf2fb.js @@ -1,2 +1,2 @@ function isApiKeyValid(e){return/[a-zA-Z0-9]{20}.[a-zA-Z0-9]{20}/.test(e)}function displayApiKey(){chrome.storage.sync.get(["apiKey"],(function(e){void 0!==e.apiKey&&(document.getElementById("apiKey").value=e.apiKey)}))}document.getElementById("submitApiKey").addEventListener("click",(function(){let e=document.getElementById("apiKey").value,t=document.getElementById("invalidKey"),i=document.getElementById("validKey");isApiKeyValid(e)?(t.style.display="none",i.style.display="block",chrome.storage.sync.set({apiKey:e},(function(){}))):(i.style.display="none",t.style.display="block")})),displayApiKey(); -//# sourceMappingURL=options.86176e60.js.map +//# sourceMappingURL=options.f4acf2fb.js.map diff --git a/dist/options.f4acf2fb.js.map b/dist/options.f4acf2fb.js.map new file mode 100644 index 0000000..a55599b --- /dev/null +++ b/dist/options.f4acf2fb.js.map @@ -0,0 +1 @@ +{"mappings":"AA0BG,SACMA,cAAcC,GAGnB,MADW,kCACEC,KAAKD,GAKnB,SACME,gBACLC,OAAOC,QAAQC,KAAKC,IAAI,CAAC,WAAW,SAAUC,QACpBC,IAAlBD,EAAOE,SACPC,SAASC,eAAe,UAAUX,MAAMO,EAAOE,WApC3DC,SAASC,eAAe,gBAAgBC,iBAAiB,SAAS,WAC9D,IAAIZ,EAAQU,SAASC,eAAe,UAAUX,MAC1Ca,EAAeH,SAASC,eAAe,cACvCG,EAAeJ,SAASC,eAAe,YACxCZ,cAAcC,IACba,EAAaE,MAAMC,QAAQ,OAC3BF,EAAaC,MAAMC,QAAQ,QAC3Bb,OAAOC,QAAQC,KAAKY,IAAI,CAACR,OAAQT,IAAQ,iBAGzCc,EAAaC,MAAMC,QAAQ,OAC3BH,EAAaE,MAAMC,QAAQ,YA+BnCd","sources":["src/options.js"],"sourcesContent":["/**\n * Save apiKey in storage\n */\ndocument.getElementById(\"submitApiKey\").addEventListener(\"click\", function (){\n let value = document.getElementById(\"apiKey\").value;\n let errorMessage = document.getElementById('invalidKey');\n let validMessage = document.getElementById('validKey');\n if(isApiKeyValid(value)){\n errorMessage.style.display='none';\n validMessage.style.display='block';\n chrome.storage.sync.set({apiKey: value}, function() {\n });\n }else {\n validMessage.style.display='none';\n errorMessage.style.display='block';\n }\n\n});\n\n/**\n * Check ApiKey format\n * Modzy api key structure is: 20 characters - period - 20 characters\n * characters are random numbers and letters, both lowercase and uppercase are allowed\n *\n * @param value\n * @returns {boolean}\n */\nfunction isApiKeyValid(value){\n // [a-zA-Z0-9]{20}.[a-zA-Z0-9]{20}\n const regEx = /[a-zA-Z0-9]{20}.[a-zA-Z0-9]{20}/;\n return regEx.test(value);\n}\n\n/**\n * If ApiKey exists, display it\n */\nfunction displayApiKey() {\n chrome.storage.sync.get(['apiKey'], function (result) {\n if (result.apiKey !== undefined) {\n document.getElementById(\"apiKey\").value=result.apiKey;\n }\n\n });\n}\n\ndisplayApiKey();\n"],"names":["isApiKeyValid","value","test","displayApiKey","chrome","storage","sync","get","result","undefined","apiKey","document","getElementById","addEventListener","errorMessage","validMessage","style","display","set"],"version":3,"file":"options.f4acf2fb.js.map"} \ No newline at end of file diff --git a/dist/options.fe5c49ea.js b/dist/options.fe5c49ea.js deleted file mode 100644 index daf0277..0000000 --- a/dist/options.fe5c49ea.js +++ /dev/null @@ -1,2 +0,0 @@ -function isApiKeyValid(e){return/[a-zA-Z0-9]{20}.[a-zA-Z0-9]{20}/.test(e)}document.getElementById("submitApiKey").addEventListener("click",(function(){let e=document.getElementById("apiKey").value,t=document.getElementById("invalidKey");isApiKeyValid(e)?(t.style.display="none",chrome.storage.sync.set({apiKey:e},(function(){}))):t.style.display="block"})); -//# sourceMappingURL=options.fe5c49ea.js.map diff --git a/dist/options.fe5c49ea.js.map b/dist/options.fe5c49ea.js.map deleted file mode 100644 index 6e30e6d..0000000 --- a/dist/options.fe5c49ea.js.map +++ /dev/null @@ -1 +0,0 @@ -{"mappings":"0EAKIA,SAAIC,eAAe,gBAASC,iBAA2B,SAAA,WACvD,IAAGC,EAAAH,SAAcC,eAAQ,UAAAE,MACrBC,EAAaJ,SAAMC,eAAc,cACjCI,cAAcF,MAAmBG,MAAKC,QAAA,OAAAC,OAAGC,QAAYC,KAAAC,IAAA,CACpDC,OAAAT,IAED,gBAYLC,EAAAE,MAAAC,QAAA","sources":["src/options.js"],"sourcesContent":["/**\r\n * Save apiKey in storage\r\n */\r\ndocument.getElementById(\"submitApiKey\").addEventListener(\"click\", function (){\r\n let value = document.getElementById(\"apiKey\").value;\r\n let errorMessage = document.getElementById('invalidKey');\r\n if(isApiKeyValid(value)){\r\n errorMessage.style.display='none';\r\n chrome.storage.sync.set({apiKey: value}, function() {\r\n });\r\n }else {\r\n errorMessage.style.display='block';\r\n }\r\n\r\n});\r\n\r\n/**\r\n * Check ApiKey format\r\n * Modzy api key structure is: 20 characters - period - 20 characters\r\n * characters are random numbers and letters, both lowercase and uppercase are allowed\r\n *\r\n * @param value\r\n * @returns {boolean}\r\n */\r\nfunction isApiKeyValid(value){\r\n // [a-zA-Z0-9]{20}.[a-zA-Z0-9]{20}\r\n const regEx = /[a-zA-Z0-9]{20}.[a-zA-Z0-9]{20}/;\r\n return regEx.test(value);\r\n}\r\n\r\n"],"names":["document","getElementById","addEventListener","value","errorMessage","isApiKeyValid","style","display","chrome","storage","sync","set","apiKey"],"version":3,"file":"options.fe5c49ea.js.map"} \ No newline at end of file diff --git a/dist/options.ffa2b41d.js b/dist/options.ffa2b41d.js deleted file mode 100644 index b2540b8..0000000 --- a/dist/options.ffa2b41d.js +++ /dev/null @@ -1,2 +0,0 @@ -function isApiKeyValid(e){return/[a-zA-Z0-9]{20}.[a-zA-Z0-9]{20}/.test(e)}function displayApiKey(){chrome.storage.sync.get(["apiKey"],(function(e){void 0!==e.apiKey&&(document.getElementById("apiKey").value=e.apiKey)}))}document.getElementById("submitApiKey").addEventListener("click",(function(){let e=document.getElementById("apiKey").value,i=document.getElementById("invalidKey");isApiKeyValid(e)?(i.style.display="none",chrome.storage.sync.set({apiKey:e},(function(){}))):i.style.display="block"})),displayApiKey(); -//# sourceMappingURL=options.ffa2b41d.js.map diff --git a/dist/options.ffa2b41d.js.map b/dist/options.ffa2b41d.js.map deleted file mode 100644 index 7105bfa..0000000 --- a/dist/options.ffa2b41d.js.map +++ /dev/null @@ -1 +0,0 @@ -{"mappings":"SAmCYA,cAAaC,GAOzB,MAFC,kCAEYC,KAAAD,qJArCTE,SAAIC,eAAe,gBAASC,iBAA2B,SAAA,WACvD,IAAGJ,EAAAE,SAAcC,eAAQ,UAAAH,MACrBK,EAAaH,SAAMC,eAAc,cACjCJ,cAAcC,MAAmBM,MAAKC,QAAA,OAAAC,OAAGC,QAAYC,KAAAC,IAAA,CACpDC,OAAAZ,IAED,gBAYLK,EAAAC,MAAAC,QAAA","sources":["src/options.js"],"sourcesContent":["/**\r\n * Save apiKey in storage\r\n */\r\ndocument.getElementById(\"submitApiKey\").addEventListener(\"click\", function (){\r\n let value = document.getElementById(\"apiKey\").value;\r\n let errorMessage = document.getElementById('invalidKey');\r\n if(isApiKeyValid(value)){\r\n errorMessage.style.display='none';\r\n chrome.storage.sync.set({apiKey: value}, function() {\r\n });\r\n }else {\r\n errorMessage.style.display='block';\r\n }\r\n\r\n});\r\n\r\n/**\r\n * Check ApiKey format\r\n * Modzy api key structure is: 20 characters - period - 20 characters\r\n * characters are random numbers and letters, both lowercase and uppercase are allowed\r\n *\r\n * @param value\r\n * @returns {boolean}\r\n */\r\nfunction isApiKeyValid(value){\r\n // [a-zA-Z0-9]{20}.[a-zA-Z0-9]{20}\r\n const regEx = /[a-zA-Z0-9]{20}.[a-zA-Z0-9]{20}/;\r\n return regEx.test(value);\r\n}\r\n\r\n/**\r\n * If ApiKey exists, display it\r\n */\r\nfunction displayApiKey() {\r\n chrome.storage.sync.get(['apiKey'], function (result) {\r\n if (result.apiKey !== undefined) {\r\n document.getElementById(\"apiKey\").value=result.apiKey;\r\n }\r\n\r\n });\r\n}\r\n\r\ndisplayApiKey();\r\n"],"names":["isApiKeyValid","value","test","document","getElementById","addEventListener","errorMessage","style","display","chrome","storage","sync","set","apiKey"],"version":3,"file":"options.ffa2b41d.js.map"} \ No newline at end of file diff --git a/dist/options.html b/dist/options.html index 6687c0e..5861c2a 100644 --- a/dist/options.html +++ b/dist/options.html @@ -1 +1 @@ -Options for AI DeepFake


API key is not valid.
API key saved.

Why?

Detecting DeepFakes is a constant cat-and-mouse game.
That's why you need access to a good AI.
With this extension you will automatically use the latest version of the AI from

Modzy is a leading ModelOps platform to integrate, monitor, and secure AI.


How to setup this extension?

First of all: it's fast and simple.
To get access to the AI model, you need a free Modzy account.

Use this link to register.

After login to Modzy create a new project.



Then enter a project name and description.



Now select the project.



After that you can download the key.



Enter this key in the input field above and click 'Set API key'.



You're done.
Visit YouTube and review suspicious videos.
You have a new button in the player.



\ No newline at end of file +Options for AI DeepFake


API key is not valid.
API key saved.

Why?

Detecting DeepFakes is a constant cat-and-mouse game.
That's why you need access to a good AI.
With this extension you will automatically use the latest version of the AI from

Modzy is a leading ModelOps platform to integrate, monitor, and secure AI.


How to setup this extension?

First of all: it's fast and simple.
To get access to the AI model, you need a free Modzy account.

Use this link to register.

After login to Modzy create a new project.



Then enter a project name and description.



Now select the project.



After that you can download the key.



Enter this key in the input field above and click 'Set API key'.



You're done.
Visit YouTube and review suspicious videos.
You have a new button in the player.



\ No newline at end of file diff --git a/dist/options.js.map b/dist/options.js.map index 730e112..ec0b6fd 100644 --- a/dist/options.js.map +++ b/dist/options.js.map @@ -1 +1 @@ -{"mappings":"AAKIA,SAAIC,eAAe,gBAASC,iBAA2B,SAAA,WACvD,IAAIC,EAAAH,SAAeC,eAAS,UAAyBE,MAClDC,EAAAJ,SAAAC,eAAc,cACbI,EAAaL,SAAMC,eAAc,sBA+BrBE,GAMpB,MAFC,kCAEDG,KAAAH,GApCQI,CAAkCJ,IAMrCE,EAAAG,MAAAC,QAAA,OAEJL,EAAAI,MAAAC,QAAA,UAPOL,EAAOI,MAAYC,QAAM,SAAQD,MAAKC,QAAA,QAAAC,OAAGC,QAAYC,KAAAC,IAAA,CACpDC,OAAAX,IACC","sources":["src/options.js"],"sourcesContent":["/**\r\n * Save apiKey in storage\r\n */\r\ndocument.getElementById(\"submitApiKey\").addEventListener(\"click\", function (){\r\n let value = document.getElementById(\"apiKey\").value;\r\n let errorMessage = document.getElementById('invalidKey');\r\n let validMessage = document.getElementById('validKey');\r\n if(isApiKeyValid(value)){\r\n errorMessage.style.display='none';\r\n validMessage.style.display='block';\r\n chrome.storage.sync.set({apiKey: value}, function() {\r\n });\r\n }else {\r\n validMessage.style.display='none';\r\n errorMessage.style.display='block';\r\n }\r\n\r\n});\r\n\r\n/**\r\n * Check ApiKey format\r\n * Modzy api key structure is: 20 characters - period - 20 characters\r\n * characters are random numbers and letters, both lowercase and uppercase are allowed\r\n *\r\n * @param value\r\n * @returns {boolean}\r\n */\r\nfunction isApiKeyValid(value){\r\n // [a-zA-Z0-9]{20}.[a-zA-Z0-9]{20}\r\n const regEx = /[a-zA-Z0-9]{20}.[a-zA-Z0-9]{20}/;\r\n return regEx.test(value);\r\n}\r\n\r\n/**\r\n * If ApiKey exists, display it\r\n */\r\nfunction displayApiKey() {\r\n chrome.storage.sync.get(['apiKey'], function (result) {\r\n if (result.apiKey !== undefined) {\r\n document.getElementById(\"apiKey\").value=result.apiKey;\r\n }\r\n\r\n });\r\n}\r\n\r\ndisplayApiKey();\r\n"],"names":["document","getElementById","addEventListener","value","errorMessage","validMessage","test","$05a7eccc37ac617e$var$isApiKeyValid","style","display","chrome","storage","sync","set","apiKey"],"version":3,"file":"options.js.map"} \ No newline at end of file +{"mappings":"AAGAA,SAASC,eAAe,gBAAgBC,iBAAiB,SAAS,WAC9D,IAAIC,EAAQH,SAASC,eAAe,UAAUE,MAC1CC,EAAeJ,SAASC,eAAe,cACvCI,EAAeL,SAASC,eAAe,aAoB5C,SACoBE,GAGnB,MADW,kCACEG,KAAKH,GAvBfI,CAAcJ,IAMbE,EAAaG,MAAMC,QAAQ,OAC3BL,EAAaI,MAAMC,QAAQ,UAN3BL,EAAaI,MAAMC,QAAQ,OAC3BJ,EAAaG,MAAMC,QAAQ,QAC3BC,OAAOC,QAAQC,KAAKC,IAAI,CAACC,OAAQX,IAAQ,mBA2B7CO,OAAOC,QAAQC,KAAKG,IAAI,CAAC,WAAW,SAAUC,QACpBC,IAAlBD,EAAOF,SACPd,SAASC,eAAe,UAAUE,MAAMa,EAAOF","sources":["src/options.js"],"sourcesContent":["/**\n * Save apiKey in storage\n */\ndocument.getElementById(\"submitApiKey\").addEventListener(\"click\", function (){\n let value = document.getElementById(\"apiKey\").value;\n let errorMessage = document.getElementById('invalidKey');\n let validMessage = document.getElementById('validKey');\n if(isApiKeyValid(value)){\n errorMessage.style.display='none';\n validMessage.style.display='block';\n chrome.storage.sync.set({apiKey: value}, function() {\n });\n }else {\n validMessage.style.display='none';\n errorMessage.style.display='block';\n }\n\n});\n\n/**\n * Check ApiKey format\n * Modzy api key structure is: 20 characters - period - 20 characters\n * characters are random numbers and letters, both lowercase and uppercase are allowed\n *\n * @param value\n * @returns {boolean}\n */\nfunction isApiKeyValid(value){\n // [a-zA-Z0-9]{20}.[a-zA-Z0-9]{20}\n const regEx = /[a-zA-Z0-9]{20}.[a-zA-Z0-9]{20}/;\n return regEx.test(value);\n}\n\n/**\n * If ApiKey exists, display it\n */\nfunction displayApiKey() {\n chrome.storage.sync.get(['apiKey'], function (result) {\n if (result.apiKey !== undefined) {\n document.getElementById(\"apiKey\").value=result.apiKey;\n }\n\n });\n}\n\ndisplayApiKey();\n"],"names":["document","getElementById","addEventListener","value","errorMessage","validMessage","test","$40e47d4230293487$var$isApiKeyValid","style","display","chrome","storage","sync","set","apiKey","get","result","undefined"],"version":3,"file":"options.js.map"} \ No newline at end of file diff --git a/dist/popup.34e12cbf.css b/dist/popup.34e12cbf.css deleted file mode 100644 index 2b710de..0000000 --- a/dist/popup.34e12cbf.css +++ /dev/null @@ -1,2 +0,0 @@ - -/*# sourceMappingURL=popup.34e12cbf.css.map */ diff --git a/dist/popup.3b63ade7.js b/dist/popup.3b63ade7.js new file mode 100644 index 0000000..71a4480 --- /dev/null +++ b/dist/popup.3b63ade7.js @@ -0,0 +1,2 @@ +let deepfakeChecks={};function init(){chrome.storage.sync.get(["deepfakeChecks"],(function(e){e.deepfakeChecks&&(deepfakeChecks=e.deepfakeChecks),generateTable()}))}function generateTable(){for(var e="\n \n \n \n \n \n ",t=deepfakeChecks.length-1;t>=0;t--){e+="\n \n \n \n \n \n '}e+="
StatusCertainLinkCeckedDelete
"+(deepfakeChecks[t].isFake?"❌ Fake":"✅ Ok")+""+deepfakeChecks[t].score+'%'+deepfakeChecks[t].page_title+""+deepfakeChecks[t].timeChecked+'
",document.getElementById("history").innerHTML=e,initButtonClickEvents()}function initButtonClickEvents(){for(var e=0;e\\n\" +\n \" Status\\n\" +\n \" Certain\\n\" +\n \" Link\\n\" +\n \" Cecked\\n\" +\n \" Delete\\n\" +\n \" \";\n for (var key=deepfakeChecks.length-1; key>=0; key--) {\n let icon = deepfakeChecks[key].isFake ? \"❌ Fake\": \"✅ Ok\";\n mytable += \"\\n\" +\n \" \" + icon + \"\\n\" +\n \" \" + deepfakeChecks[key].score + \"%\\n\" +\n \" \" + deepfakeChecks[key].page_title + \"\\n\" +\n \" \" + deepfakeChecks[key].timeChecked + \"\\n\" +\n \" \\n\" +\n \" \";\n }\n\n mytable += \"\";\n // Update div history with table\n document.getElementById(\"history\").innerHTML = mytable;\n // Add event listener to delete button\n initButtonClickEvents();\n}\n\n/**\n * Create onClickFunction for delete button\n */\nfunction initButtonClickEvents() {\n for (var i = 0; i < deepfakeChecks.length; i++) {\n document.getElementById(i).onclick = function() {\n deepfakeChecks.splice(this.id, 1);\n chrome.storage.sync.set({'deepfakeChecks': deepfakeChecks}, function() {\n });\n generateTable();\n };\n }\n}\n\n// init deepfakeChecks\ninit();\n"],"names":["deepfakeChecks","init","chrome","storage","sync","get","result","generateTable","mytable","key","length","isFake","score","page_url","page_title","timeChecked","document","getElementById","innerHTML","initButtonClickEvents","i","onclick","splice","this","id","set"],"version":3,"file":"popup.3b63ade7.js.map"} \ No newline at end of file diff --git a/dist/popup.c00a6a9e.css b/dist/popup.c00a6a9e.css deleted file mode 100644 index 8962a3d..0000000 --- a/dist/popup.c00a6a9e.css +++ /dev/null @@ -1,2 +0,0 @@ -body{height:600px;width:800px} -/*# sourceMappingURL=popup.c00a6a9e.css.map */ diff --git a/dist/popup.c00a6a9e.css.map b/dist/popup.c00a6a9e.css.map deleted file mode 100644 index 19cb283..0000000 --- a/dist/popup.c00a6a9e.css.map +++ /dev/null @@ -1 +0,0 @@ -{"mappings":"AAAA,KAEA,YAAA,CADA,WAEA","sources":["src/popup.css"],"sourcesContent":["body{\r\n width: 800px;\r\n height: 600px;\r\n}\r\n"],"names":[],"version":3,"file":"popup.c00a6a9e.css.map"} \ No newline at end of file diff --git a/dist/popup.c7bca184.css b/dist/popup.c7bca184.css new file mode 100644 index 0000000..8098213 --- /dev/null +++ b/dist/popup.c7bca184.css @@ -0,0 +1,2 @@ + +/*# sourceMappingURL=popup.c7bca184.css.map */ diff --git a/dist/popup.34e12cbf.css.map b/dist/popup.c7bca184.css.map similarity index 62% rename from dist/popup.34e12cbf.css.map rename to dist/popup.c7bca184.css.map index 229300c..61ebe41 100644 --- a/dist/popup.34e12cbf.css.map +++ b/dist/popup.c7bca184.css.map @@ -1 +1 @@ -{"mappings":"","sources":[],"sourcesContent":[],"names":[],"version":3,"file":"popup.34e12cbf.css.map"} \ No newline at end of file +{"mappings":"","sources":[],"sourcesContent":[],"names":[],"version":3,"file":"popup.c7bca184.css.map"} \ No newline at end of file diff --git a/dist/popup.ecc416de.js b/dist/popup.ecc416de.js deleted file mode 100644 index a442e0b..0000000 --- a/dist/popup.ecc416de.js +++ /dev/null @@ -1,2 +0,0 @@ - -//# sourceMappingURL=popup.ecc416de.js.map diff --git a/dist/popup.ecc416de.js.map b/dist/popup.ecc416de.js.map deleted file mode 100644 index c334a5c..0000000 --- a/dist/popup.ecc416de.js.map +++ /dev/null @@ -1 +0,0 @@ -{"mappings":"","sources":[],"sourcesContent":[],"names":[],"version":3,"file":"popup.ecc416de.js.map"} \ No newline at end of file diff --git a/dist/popup.html b/dist/popup.html index 5597bd7..567a5e1 100644 --- a/dist/popup.html +++ b/dist/popup.html @@ -1 +1 @@ -PopUp AI DeepFake

History deepfake detection


\ No newline at end of file +PopUp AI DeepFake
logo

History deepfake detection


\ No newline at end of file diff --git a/dist/popup.js b/dist/popup.js index 166a628..1c3e3bd 100644 --- a/dist/popup.js +++ b/dist/popup.js @@ -1,2 +1,2 @@ - +(()=>{let t={};function e(){for(var n="\n \n \n \n \n \n ",d=t.length-1;d>=0;d--){n+="\n \n \n \n \n \n '}n+="
StatusCertainLinkCeckedDelete
"+(t[d].isFake?"❌ Fake":"✅ Ok")+""+t[d].score+'%'+t[d].page_title+""+t[d].timeChecked+'
",document.getElementById("history").innerHTML=n,function(){for(var n=0;n\\n\" +\n \" Status\\n\" +\n \" Certain\\n\" +\n \" Link\\n\" +\n \" Cecked\\n\" +\n \" Delete\\n\" +\n \" \";\n for (var key=deepfakeChecks.length-1; key>=0; key--) {\n let icon = deepfakeChecks[key].isFake ? \"❌ Fake\": \"✅ Ok\";\n mytable += \"\\n\" +\n \" \" + icon + \"\\n\" +\n \" \" + deepfakeChecks[key].score + \"%\\n\" +\n \" \" + deepfakeChecks[key].page_title + \"\\n\" +\n \" \" + deepfakeChecks[key].timeChecked + \"\\n\" +\n \" \\n\" +\n \" \";\n }\n\n mytable += \"\";\n // Update div history with table\n document.getElementById(\"history\").innerHTML = mytable;\n // Add event listener to delete button\n initButtonClickEvents();\n}\n\n/**\n * Create onClickFunction for delete button\n */\nfunction initButtonClickEvents() {\n for (var i = 0; i < deepfakeChecks.length; i++) {\n document.getElementById(i).onclick = function() {\n deepfakeChecks.splice(this.id, 1);\n chrome.storage.sync.set({'deepfakeChecks': deepfakeChecks}, function() {\n });\n generateTable();\n };\n }\n}\n\n// init deepfakeChecks\ninit();\n"],"names":["$ae5ca5173007c258$var$deepfakeChecks","$ae5ca5173007c258$var$generateTable","mytable","key","length","isFake","score","page_url","page_title","timeChecked","document","getElementById","innerHTML","i","onclick","splice","this","id","chrome","storage","sync","set","deepfakeChecks","$ae5ca5173007c258$var$initButtonClickEvents","get","result"],"version":3,"file":"popup.js.map"} \ No newline at end of file diff --git a/src/background.js b/src/background.js index 07beec5..5db1d5b 100644 --- a/src/background.js +++ b/src/background.js @@ -15,7 +15,8 @@ chrome.runtime.onInstalled.addListener(function() { chrome.webNavigation.onHistoryStateUpdated.addListener(function (details){ if(details.url.includes("https://www.youtube.com/watch")){ chrome.tabs.query({active: true, currentWindow: true}, function(tabs) { - chrome.tabs.sendMessage(tabs[0].id, {message: "initRecordButton"}); + chrome.tabs.sendMessage(tabs[0].id, {message: "initRecordButton"}, function(response) { + }); }); } }); diff --git a/src/content.js b/src/content.js index a248c56..6dab4e0 100644 --- a/src/content.js +++ b/src/content.js @@ -2,6 +2,9 @@ import * as deepfake from './deepfake'; let apiKey; +/** + * Read the api key from storage. If it is not set, it will try to get it from the user. + */ function readApiKey() { chrome.storage.sync.get(['apiKey'], function (result) { apiKey = result.apiKey; diff --git a/src/deepfake.js b/src/deepfake.js index 9dbae27..0f8c4f9 100644 --- a/src/deepfake.js +++ b/src/deepfake.js @@ -2,7 +2,6 @@ import {dragElement} from './dragRecordingDiv'; import {submitJob} from "./modzyDeepFakeModel"; -let isRecording=false; let mainVideo = document.getElementsByClassName("html5-main-video")[0]; let recordingTimeMS = 5000; let apiKey; @@ -33,7 +32,6 @@ function initDeepFakeButtonInPlayer(){ button.dataset.title = "Deepfake detection"; button.onclick = function(){startStopRecording();} animControlsButton[0].insertBefore(button, animControlsButton[0].childNodes[0]); - let playerImage = new Image(); playerImage.src = chrome.runtime.getURL("/images/logo48.png"); playerImage.onload = () => { @@ -155,10 +153,6 @@ async function startRecording(stream, lengthInMS) { .then(() => data); } -function stop(stream) { - stream.getTracks().forEach(track => track.stop()); -} - window.addEventListener("onhashchange", function() { if(!location.href.includes("watch")){ diff --git a/src/images/check.png b/src/images/check.png deleted file mode 100644 index a0d94c7..0000000 Binary files a/src/images/check.png and /dev/null differ diff --git a/src/images/fake.png b/src/images/fake.png deleted file mode 100644 index a7e4d54..0000000 Binary files a/src/images/fake.png and /dev/null differ diff --git a/src/manifest.json b/src/manifest.json index e055bfe..f525fcd 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -1,6 +1,6 @@ { "name": "Deepfake Detection", - "description": "AI extension for YouTube deepfake detection", + "description": "AI extension for YouTube™ deepfake detection", "version": "1.0", "manifest_version": 3, "background": { @@ -8,7 +8,7 @@ }, "content_scripts": [ { - "matches": ["https://www.youtube.com/"], + "matches": ["https://www.youtube.com/*"], "run_at": "document_end", "js": ["content.js"], "css": ["content.css"] diff --git a/src/modzyDeepFakeModel.js b/src/modzyDeepFakeModel.js index cf1262b..2391525 100644 --- a/src/modzyDeepFakeModel.js +++ b/src/modzyDeepFakeModel.js @@ -86,12 +86,17 @@ function pollStatus(jobIdentifier){ .redirects(0) .end(function (err, res) { if (err || !res.ok) { + clearInterval(pollJobInterval); + updateModelResult("COMPLETED_WITH_ERROR", error); console.error("Oh no! error"); } else { let jobStatus = res.body["status"] if("COMPLETED" === jobStatus || "TIMEDOUT" === jobStatus || "CANCELED" === jobStatus || "ERROR" === jobStatus){ clearInterval(pollJobInterval); getJobResult(jobIdentifier); + }else if("COMPLETED_WITH_ERROR" === jobStatus){ + clearInterval(pollJobInterval); + updateModelResult("COMPLETED_WITH_ERROR", error); } } }); @@ -111,6 +116,7 @@ function getJobResult(jobIdentifier){ .redirects(0) .end(function (err, res) { if (err || !res.ok) { + updateModelResult("COMPLETED_WITH_ERROR", error); console.error("Oh no! error"); } else { // check for general error response @@ -143,18 +149,66 @@ function updateModelResult(status, result){ let message = document.getElementById("result-deepfake-message"); if("SUCCESSFUL" === status){ if(result >= 0.5){ - message.innerHTML = ":-(
This is a DeepFake video.
AI is " + (result*100) +"% sure."; + message.innerHTML = "❌ Fake
This is a DeepFake video.
AI is " + Math.round((result*100)) +"% sure.

Note: An AI can always be wrong.
Therefore, be skeptical."; resultDIV.style.color="red"; + updateSearchResult(true,(result*100)); }else{ - message.innerHTML = "^_^
No DeepFake video.
AI is " + (100-(result*100)) +"% sure."; + message.innerHTML = "✅ Ok
No DeepFake video.
AI is " + Math.round((100-(result*100))) +"% sure.

Note: An AI can always be wrong.
Therefore, be skeptical."; resultDIV.style.color="green"; + updateSearchResult(false,(100-(result*100))); } }else { - message.innerHTML = "Oops, sorry, this should not happen.
Try again later.

Is the face in the video easy to see and not too small?

Error: " + result; + message.innerHTML = "Oops, sorry, this should not happen.
The AI could not process the video.

Try again later.

Is the face in the video easy to see and not too small?
"; } document.getElementById("preload-deepfake").style.display="none"; resultDIV.style.display="inline"; } +/** + * Update Chrome storage with new model result + */ +function updateSearchResult(isDeepFake, score){ + // Get current Page URL + let url = window.location.href; + // Get current Page Title + let title = document.title; + + // Save deepfakecheck result to chrome storage + saveDeepFakeCheck(title,url, isDeepFake, score); + +} + + +/** + * Save value to crome storage + */ +function saveDeepFakeCheck(page_title, page_url, isFake, score) { + + // get current time + let currentTime = new Date(); + // format time to string + let timeCheck = currentTime.getFullYear() + "-" + (currentTime.getMonth()+1) + "-" + currentTime.getDate() + " " + currentTime.getHours() + ":" + currentTime.getMinutes() + ":" + currentTime.getSeconds(); + + + // get deepfake checks + chrome.storage.sync.get(['deepfakeChecks'], function (result) { + let deepfakeChecks = result.deepfakeChecks; + if (deepfakeChecks === undefined) { + deepfakeChecks = []; + } + // add new deepfake check + deepfakeChecks.push({ + page_title: page_title, + page_url: page_url, + score: score, + isFake: isFake, + timeChecked: timeCheck + }); + // save deepfake checks + chrome.storage.sync.set({'deepfakeChecks': deepfakeChecks}, function () { + }); + }); +} + export {submitJob}; diff --git a/src/popup.html b/src/popup.html index f12e83e..432f422 100644 --- a/src/popup.html +++ b/src/popup.html @@ -12,38 +12,11 @@
- + logo

History deepfake detection


diff --git a/src/popup.js b/src/popup.js index e69de29..a0a8574 100644 --- a/src/popup.js +++ b/src/popup.js @@ -0,0 +1,57 @@ + +let deepfakeChecks = {}; + +// Load deepfakeChecks from chrome storage +function init() { + chrome.storage.sync.get(['deepfakeChecks'], function(result) { + if (result.deepfakeChecks) { + deepfakeChecks = result.deepfakeChecks; + } + generateTable(); + }); + +} + +// Generat thml table from deepfakeChecks +function generateTable() { + var mytable = "\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " "; + for (var key=deepfakeChecks.length-1; key>=0; key--) { + let icon = deepfakeChecks[key].isFake ? "❌ Fake": "✅ Ok"; + mytable += "\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " "; + } + + mytable += "
StatusCertainLinkCeckedDelete
" + icon + "" + deepfakeChecks[key].score + "%" + deepfakeChecks[key].page_title + "" + deepfakeChecks[key].timeChecked + "
"; + // Update div history with table + document.getElementById("history").innerHTML = mytable; + // Add event listener to delete button + initButtonClickEvents(); +} + +/** + * Create onClickFunction for delete button + */ +function initButtonClickEvents() { + for (var i = 0; i < deepfakeChecks.length; i++) { + document.getElementById(i).onclick = function() { + deepfakeChecks.splice(this.id, 1); + chrome.storage.sync.set({'deepfakeChecks': deepfakeChecks}, function() { + }); + generateTable(); + }; + } +} + +// init deepfakeChecks +init();