From fa9c12a09703cb0d43d9cb1dd6e94c014b5e38d3 Mon Sep 17 00:00:00 2001 From: Daniel Thies Date: Thu, 8 Feb 2024 12:19:03 -0600 Subject: [PATCH] git push --set-upstream origin MED-92 --- .github/workflows/moodle-ci.yml | 14 +- classes/event/resource_created.php | 12 +- classes/output/renderer.php | 86 ++++++++++++ db/subplugins.php | 27 ++++ index.php | 11 +- source/streamio/amd/build/config.min.js | 2 + source/streamio/amd/build/config.min.js.map | 1 + source/streamio/amd/build/file_upload.min.js | 5 +- .../streamio/amd/build/file_upload.min.js.map | 2 +- source/streamio/amd/build/tus.min.js | 5 +- source/streamio/amd/build/tus.min.js.map | 2 +- source/streamio/amd/src/config.js | 10 ++ source/streamio/amd/src/file_upload.js | 124 ++++++++++++------ .../classes/event/resource_created.php | 12 +- .../streamio/templates/file_upload.mustache | 6 +- subplugins.php | 3 +- templates/media_manager.mustache | 12 +- 17 files changed, 258 insertions(+), 76 deletions(-) create mode 100644 classes/output/renderer.php create mode 100644 db/subplugins.php create mode 100644 source/streamio/amd/build/config.min.js create mode 100644 source/streamio/amd/build/config.min.js.map create mode 100644 source/streamio/amd/src/config.js diff --git a/.github/workflows/moodle-ci.yml b/.github/workflows/moodle-ci.yml index 670a2fb..ad09566 100644 --- a/.github/workflows/moodle-ci.yml +++ b/.github/workflows/moodle-ci.yml @@ -28,17 +28,11 @@ jobs: fail-fast: false matrix: include: - - php: '8.1' - moodle-branch: 'master' + - php: '7.4' + moodle-branch: 'MOODLE_39_STABLE' database: 'pgsql' - - php: '8.1' - moodle-branch: 'MOODLE_403_STABLE' - database: 'pgsql' - - php: '8.0' - moodle-branch: 'MOODLE_402_STABLE' - database: 'mariadb' - - php: '8.0' - moodle-branch: 'MOODLE_401_STABLE' + - php: '7.4' + moodle-branch: 'MOODLE_39_STABLE' database: 'mariadb' steps: diff --git a/classes/event/resource_created.php b/classes/event/resource_created.php index e397e52..501386c 100644 --- a/classes/event/resource_created.php +++ b/classes/event/resource_created.php @@ -24,7 +24,17 @@ * @copyright 2024 bdecent gmbh * @license https://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class resource_created extends core_event\base { +class resource_created extends \core\event\base { // For more information about the Events API please visit {@link https://docs.moodle.org/dev/Events_API}. + + /** + * Init method. + * + * @return void + */ + protected function init() { + $this->data['crud'] = 'c'; + $this->data['edulevel'] = self::LEVEL_OTHER; + } } diff --git a/classes/output/renderer.php b/classes/output/renderer.php new file mode 100644 index 0000000..464aa45 --- /dev/null +++ b/classes/output/renderer.php @@ -0,0 +1,86 @@ +. + +/** + * Renderer for tool_mediatime + * + * @package tool_mediatime + * @copyright 2024 bdecent gmbh + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace tool_mediatime\output; + +use plugin_renderer_base; +use renderable; + +/** + * Renderer for tool_mediatime + * + * @copyright 2024 bdecent gmbh + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class renderer extends plugin_renderer_base { + + /** + * Overrides the parent so that templatable widgets are handled even without their explicit render method. + * + * @param renderable $widget + * @return string + * @throws \moodle_exception + */ + public function render(renderable $widget) { + + $namespacedclassname = get_class($widget); + $parts = []; + if ($parts = explode('\\', $namespacedclassname)) { + $plainclassname = $parts[array_key_last($parts)]; + $namespacecomponent = $parts[array_key_first($parts)]; + $rendermethod = 'render_'.$plainclassname; + + if (method_exists($this, $rendermethod)) { + // Explicit rendering method exists, fall back to the default behaviour. + return parent::render($widget); + } + + $interfaces = class_implements($namespacedclassname); + + if (isset($interfaces['templatable'])) { + // Default implementation of template-based rendering. + $data = $widget->export_for_template($this); + + if (method_exists($widget, 'get_template_name')) { + $templatename = $widget->get_template_name(); + } else { + $templatename = $plainclassname; + } + + if (method_exists($widget, 'get_component_name')) { + $component = $widget->get_component_name(); + } else if (count($parts) > 1) { + $component = $namespacecomponent; + } else { + $component = 'core'; + } + + return parent::render_from_template($component . '/' . $templatename, $data); + + } else { + return parent::render($widget); + } + } + } +} diff --git a/db/subplugins.php b/db/subplugins.php new file mode 100644 index 0000000..ffed85c --- /dev/null +++ b/db/subplugins.php @@ -0,0 +1,27 @@ +. + +/** + * Subplugin definitions for the Video Time module. + * + * @package tool_mediatime + * @copyright 2024 bdecent gmbh + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +defined('MOODLE_INTERNAL') || die(); + +$subplugins = (array) json_decode(file_get_contents(__DIR__ . "/subplugins.json"))->plugintypes; diff --git a/index.php b/index.php index 85d4041..ff98374 100644 --- a/index.php +++ b/index.php @@ -35,7 +35,10 @@ admin_externalpage_setup('mediatimelibrary'); -$PAGE->set_heading(get_string('pluginname', 'tool_mediatime')); +$output = $PAGE->get_renderer('tool_mediatime'); +echo $output->header(); +echo $output->heading(get_string('pluginname', 'tool_mediatime')); + if ($id) { $record = $DB->get_record('tool_mediatime', ['id' => $id]); } else if ($edit) { @@ -46,8 +49,6 @@ $manager = new media_manager($source, $record); -echo $OUTPUT->header(); - -echo $OUTPUT->render($manager); +echo $output->render($manager); -echo $OUTPUT->footer(); +echo $output->footer(); diff --git a/source/streamio/amd/build/config.min.js b/source/streamio/amd/build/config.min.js new file mode 100644 index 0000000..93626cd --- /dev/null +++ b/source/streamio/amd/build/config.min.js @@ -0,0 +1,2 @@ +define ("mediatimesrc_streamio/config",[],function(){window.requirejs.config({paths:{tus:M.cfg.wwwroot+"/admin/tool/mediatime/source/streamio/js/tus"},shim:{tus:{exports:"tus"}}})}); +//# sourceMappingURL=config.min.js.map diff --git a/source/streamio/amd/build/config.min.js.map b/source/streamio/amd/build/config.min.js.map new file mode 100644 index 0000000..bdb89e8 --- /dev/null +++ b/source/streamio/amd/build/config.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/config.js"],"names":["define","window","requirejs","config","paths","M","cfg","wwwroot","shim","exports"],"mappings":"AAAAA,OAAM,gCAAC,EAAD,CAAK,UAAY,CACnBC,MAAM,CAACC,SAAP,CAAiBC,MAAjB,CAAwB,CACpBC,KAAK,CAAE,CACH,IAAOC,CAAC,CAACC,GAAF,CAAMC,OAAN,CAAgB,8CADpB,CADa,CAIpBC,IAAI,CAAE,CACF,IAAO,CAACC,OAAO,CAAE,KAAV,CADL,CAJc,CAAxB,CAQH,CATK,CAAN","sourcesContent":["define([], function () {\n window.requirejs.config({\n paths: {\n \"tus\": M.cfg.wwwroot + '/admin/tool/mediatime/source/streamio/js/tus',\n },\n shim: {\n 'tus': {exports: 'tus'},\n }\n });\n});"],"file":"config.min.js"} \ No newline at end of file diff --git a/source/streamio/amd/build/file_upload.min.js b/source/streamio/amd/build/file_upload.min.js index 505432d..373a1cb 100644 --- a/source/streamio/amd/build/file_upload.min.js +++ b/source/streamio/amd/build/file_upload.min.js @@ -1,3 +1,2 @@ -define("mediatimesrc_streamio/file_upload",["exports","mediatimesrc_streamio/tus","core/log"],(function(_exports,tus,_log){var obj,upload;function _getRequireWildcardCache(nodeInterop){if("function"!=typeof WeakMap)return null;var cacheBabelInterop=new WeakMap,cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,tus=function(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule)return obj;if(null===obj||"object"!=typeof obj&&"function"!=typeof obj)return{default:obj};var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj))return cache.get(obj);var newObj={},hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj)if("default"!==key&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;desc&&(desc.get||desc.set)?Object.defineProperty(newObj,key,desc):newObj[key]=obj[key]}newObj.default=obj,cache&&cache.set(obj,newObj);return newObj}(tus);const options={endpoint:"https://streamio.com/api/v1/videos/tus",metadata:{},onError:(_log=(obj=_log)&&obj.__esModule?obj:{default:obj}).default.debug,onProgress:function(bytesUploaded,bytesTotal){document.querySelectorAll(".progress").forEach((indicator=>{indicator.style.width=bytesUploaded/bytesTotal*100+"%"}))},onSuccess:function(){document.getElementById("upload_resource_form").submit(),_log.default.debug(upload.url)}};var _default={init:function(token){options.metadata.uploadtoken=token,document.body.removeEventListener("click",this.handleClick),document.body.addEventListener("click",this.handleClick)},handleClick:function(e){if(e.target.closest('button[name="upload"]')){const file=document.querySelector('input[name="streamiofile"]').files[0];e.preventDefault(),options.metadata.filename=file.name,options.metadata.filetype=file.type,_log.default.debug(options),_log.default.debug(tus),(upload=new tus.Upload(file,options)).start()}}};return _exports.default=_default,_exports.default})); - -//# sourceMappingURL=file_upload.min.js.map \ No newline at end of file +define ("mediatimesrc_streamio/file_upload",["core/log","mediatimesrc_streamio/tus"],function(a,b){var c=function(b){this.upload={};this.options={endpoint:"https://streamio.com/api/v1/videos/tus",metadata:{uploadtoken:b},onError:a.debug,onProgress:function onProgress(a,b){document.querySelectorAll(".progress").forEach(function(c){c.style.width=100*(a/b)+"%"})},onSuccess:function onSuccess(){document.getElementById("upload_resource_form").submit();a.debug(this.upload.url)}};this.addEvents()};c.prototype={options:{},upload:{},addEvents:function addEvents(){document.body.removeEventListener("click",this.handleClick.bind(this));document.body.addEventListener("click",this.handleClick.bind(this))},handleClick:function handleClick(c){var d=c.target.closest("button[name=\"upload\"]");if(d){var e=document.querySelector("input[name=\"streamiofile\"]").files[0];c.preventDefault();if(e){this.options.metadata.filename=e.name;this.options.metadata.filetype=e.type;a.debug(this.options);a.debug(b);this.upload=new b.Upload(e,this.options);this.upload.start()}}}};return{init:function init(a){var b=new c(a);return Promise.resolve(b)}}}); +//# sourceMappingURL=file_upload.min.js.map diff --git a/source/streamio/amd/build/file_upload.min.js.map b/source/streamio/amd/build/file_upload.min.js.map index 9da2b95..3d956b7 100644 --- a/source/streamio/amd/build/file_upload.min.js.map +++ b/source/streamio/amd/build/file_upload.min.js.map @@ -1 +1 @@ -{"version":3,"file":"file_upload.min.js","sources":["../src/file_upload.js"],"sourcesContent":["var upload;\n\nimport * as tus from 'mediatimesrc_streamio/tus';\nimport Log from 'core/log';\n\nconst options = {\n endpoint: 'https://streamio.com/api/v1/videos/tus',\n metadata: {},\n onError: Log.debug,\n onProgress: function(bytesUploaded, bytesTotal) {\n document.querySelectorAll('.progress').forEach(indicator => {\n indicator.style.width = (bytesUploaded / bytesTotal * 100) + '%';\n });\n },\n onSuccess: function() {\n document.getElementById('upload_resource_form').submit();\n Log.debug(upload.url);\n }\n};\n\nexport default {\n init: function(token) {\n options.metadata.uploadtoken = token;\n document.body.removeEventListener('click', this.handleClick);\n document.body.addEventListener('click', this.handleClick);\n },\n\n handleClick: function(e) {\n const button = e.target.closest('button[name=\"upload\"]');\n if (button) {\n const file = document.querySelector('input[name=\"streamiofile\"]').files[0];\n e.preventDefault();\n options.metadata.filename = file.name;\n options.metadata.filetype = file.type;\n Log.debug(options);\n Log.debug(tus);\n\n upload = new tus.Upload(file, options);\n upload.start();\n }\n }\n};\n"],"names":["upload","options","endpoint","metadata","onError","debug","onProgress","bytesUploaded","bytesTotal","document","querySelectorAll","forEach","indicator","style","width","onSuccess","getElementById","submit","url","init","token","uploadtoken","body","removeEventListener","this","handleClick","addEventListener","e","target","closest","file","querySelector","files","preventDefault","filename","name","filetype","type","tus","Upload","start"],"mappings":"mIAAIA,sgCAKEC,QAAU,CACZC,SAAU,yCACVC,SAAU,GACVC,oEAAaC,MACbC,WAAY,SAASC,cAAeC,YAChCC,SAASC,iBAAiB,aAAaC,SAAQC,YAC3CA,UAAUC,MAAMC,MAASP,cAAgBC,WAAa,IAAO,QAGrEO,UAAW,WACPN,SAASO,eAAe,wBAAwBC,sBAC5CZ,MAAML,OAAOkB,oBAIV,CACXC,KAAM,SAASC,OACXnB,QAAQE,SAASkB,YAAcD,MAC/BX,SAASa,KAAKC,oBAAoB,QAASC,KAAKC,aAChDhB,SAASa,KAAKI,iBAAiB,QAASF,KAAKC,cAGjDA,YAAa,SAASE,MACHA,EAAEC,OAAOC,QAAQ,yBACpB,OACFC,KAAOrB,SAASsB,cAAc,8BAA8BC,MAAM,GACxEL,EAAEM,iBACFhC,QAAQE,SAAS+B,SAAWJ,KAAKK,KACjClC,QAAQE,SAASiC,SAAWN,KAAKO,kBAC7BhC,MAAMJ,sBACNI,MAAMiC,MAEVtC,OAAS,IAAIsC,IAAIC,OAAOT,KAAM7B,UACvBuC"} \ No newline at end of file +{"version":3,"sources":["../src/file_upload.js"],"names":["define","Log","tus","FileUpload","token","upload","options","endpoint","metadata","uploadtoken","onError","debug","onProgress","bytesUploaded","bytesTotal","document","querySelectorAll","forEach","indicator","style","width","onSuccess","getElementById","submit","url","addEvents","prototype","body","removeEventListener","handleClick","bind","addEventListener","e","button","target","closest","file","querySelector","files","preventDefault","filename","name","filetype","type","Upload","start","init","fileupload","Promise","resolve"],"mappings":"AASAA,OAAM,qCAAC,CAAC,UAAD,CAAa,2BAAb,CAAD,CAA4C,SAASC,CAAT,CAAcC,CAAd,CAAmB,CAQjE,GAAIC,CAAAA,CAAU,CAAG,SAASC,CAAT,CAAgB,CAC7B,KAAKC,MAAL,CAAc,EAAd,CACA,KAAKC,OAAL,CAAe,CACXC,QAAQ,CAAE,wCADC,CAEXC,QAAQ,CAAE,CAACC,WAAW,CAAEL,CAAd,CAFC,CAGXM,OAAO,CAAET,CAAG,CAACU,KAHF,CAIXC,UAAU,CAAE,oBAASC,CAAT,CAAwBC,CAAxB,CAAoC,CAC5CC,QAAQ,CAACC,gBAAT,CAA0B,WAA1B,EAAuCC,OAAvC,CAA+C,SAACC,CAAD,CAAe,CAC1DA,CAAS,CAACC,KAAV,CAAgBC,KAAhB,CAAsD,GAA7B,EAAAP,CAAa,CAAGC,CAAhB,CAAD,CAAqC,GAChE,CAFD,CAGH,CARU,CASXO,SAAS,CAAE,oBAAW,CAClBN,QAAQ,CAACO,cAAT,CAAwB,sBAAxB,EAAgDC,MAAhD,GACAtB,CAAG,CAACU,KAAJ,CAAU,KAAKN,MAAL,CAAYmB,GAAtB,CACH,CAZU,CAAf,CAeA,KAAKC,SAAL,EACH,CAlBD,CAoBAtB,CAAU,CAACuB,SAAX,CAAuB,CAEnBpB,OAAO,CAAE,EAFU,CAInBD,MAAM,CAAE,EAJW,CASnBoB,SAAS,CAAE,oBAAW,CAClBV,QAAQ,CAACY,IAAT,CAAcC,mBAAd,CAAkC,OAAlC,CAA2C,KAAKC,WAAL,CAAiBC,IAAjB,CAAsB,IAAtB,CAA3C,EACAf,QAAQ,CAACY,IAAT,CAAcI,gBAAd,CAA+B,OAA/B,CAAwC,KAAKF,WAAL,CAAiBC,IAAjB,CAAsB,IAAtB,CAAxC,CACH,CAZkB,CAcnBD,WAAW,CAAE,qBAASG,CAAT,CAAY,CACrB,GAAMC,CAAAA,CAAM,CAAGD,CAAC,CAACE,MAAF,CAASC,OAAT,CAAiB,yBAAjB,CAAf,CACA,GAAIF,CAAJ,CAAY,CACR,GAAMG,CAAAA,CAAI,CAAGrB,QAAQ,CAACsB,aAAT,CAAuB,8BAAvB,EAAqDC,KAArD,CAA2D,CAA3D,CAAb,CACAN,CAAC,CAACO,cAAF,GAEA,GAAIH,CAAJ,CAAU,CACN,KAAK9B,OAAL,CAAaE,QAAb,CAAsBgC,QAAtB,CAAiCJ,CAAI,CAACK,IAAtC,CACA,KAAKnC,OAAL,CAAaE,QAAb,CAAsBkC,QAAtB,CAAiCN,CAAI,CAACO,IAAtC,CACA1C,CAAG,CAACU,KAAJ,CAAU,KAAKL,OAAf,EACAL,CAAG,CAACU,KAAJ,CAAUT,CAAV,EAEA,KAAKG,MAAL,CAAc,GAAIH,CAAAA,CAAG,CAAC0C,MAAR,CAAeR,CAAf,CAAqB,KAAK9B,OAA1B,CAAd,CACA,KAAKD,MAAL,CAAYwC,KAAZ,EACH,CACJ,CACJ,CA9BkB,CAAvB,CAiCA,MAAO,CAOHC,IAAI,CAAE,cAAS1C,CAAT,CAAgB,CAClB,GAAI2C,CAAAA,CAAU,CAAG,GAAI5C,CAAAA,CAAJ,CAAeC,CAAf,CAAjB,CAEA,MAAO4C,CAAAA,OAAO,CAACC,OAAR,CAAgBF,CAAhB,CACV,CAXE,CAaV,CA1EK,CAAN","sourcesContent":["/*\n * Upload video file to Streamio\n *\n * @package tool_mediatime\n * @subpackage mediatimesrc_streamio\n * @module mediatimesrc_streamio/file_upload\n * @copyright 2024 bdecent gmbh \n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine(['core/log', 'mediatimesrc_streamio/tus'], function(Log, tus) {\n\n /**\n * Initialises FileUpload\n *\n * @class\n * @param {string} token\n */\n var FileUpload = function(token) {\n this.upload = {};\n this.options = {\n endpoint: 'https://streamio.com/api/v1/videos/tus',\n metadata: {uploadtoken: token},\n onError: Log.debug,\n onProgress: function(bytesUploaded, bytesTotal) {\n document.querySelectorAll('.progress').forEach((indicator) => {\n indicator.style.width = (bytesUploaded / bytesTotal * 100) + '%';\n });\n },\n onSuccess: function() {\n document.getElementById('upload_resource_form').submit();\n Log.debug(this.upload.url);\n }\n };\n\n this.addEvents();\n };\n\n FileUpload.prototype = {\n /** @type {Object} */\n options: {},\n /** @type {Object} */\n upload: {},\n\n /**\n * Adds events to the current FileUpload\n */\n addEvents: function() {\n document.body.removeEventListener('click', this.handleClick.bind(this));\n document.body.addEventListener('click', this.handleClick.bind(this));\n },\n\n handleClick: function(e) {\n const button = e.target.closest('button[name=\"upload\"]');\n if (button) {\n const file = document.querySelector('input[name=\"streamiofile\"]').files[0];\n e.preventDefault();\n\n if (file) {\n this.options.metadata.filename = file.name;\n this.options.metadata.filetype = file.type;\n Log.debug(this.options);\n Log.debug(tus);\n\n this.upload = new tus.Upload(file, this.options);\n this.upload.start();\n }\n }\n }\n };\n\n return {\n /**\n * Initialises the component\n *\n * @param {string} token\n * @returns {Promise} resolved once complete\n */\n init: function(token) {\n var fileupload = new FileUpload(token);\n\n return Promise.resolve(fileupload);\n }\n };\n});\n"],"file":"file_upload.min.js"} \ No newline at end of file diff --git a/source/streamio/amd/build/tus.min.js b/source/streamio/amd/build/tus.min.js index 49f6876..f044e81 100644 --- a/source/streamio/amd/build/tus.min.js +++ b/source/streamio/amd/build/tus.min.js @@ -1,3 +1,2 @@ -!function(f){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=f();else if("function"==typeof define&&define.amd)define("mediatimesrc_streamio/tus",[],f);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).tus=f()}}((function(){return 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){return o(e[i][1][r]||r)}),p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return handle("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(c&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),resetTryEntry(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;resetTryEntry(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:values(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg),value=info.value}catch(error){return void reject(error)}info.done?resolve(value):Promise.resolve(value).then(_next,_throw)}function _defineProperties(target,props){for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:null;return new Promise((function(resolve,reject){_this._xhr.onload=function(){resolve(new Response(_this._xhr))},_this._xhr.onerror=function(err){reject(err)},_this._xhr.send(body)}))}},{key:"abort",value:function(){return this._xhr.abort(),Promise.resolve()}},{key:"getUnderlyingObject",value:function(){return this._xhr}}]),Request}(),Response=function(){function Response(xhr){_classCallCheck(this,Response),this._xhr=xhr}return _createClass(Response,[{key:"getStatus",value:function(){return this._xhr.status}},{key:"getHeader",value:function(header){return this._xhr.getResponseHeader(header)}},{key:"getBody",value:function(){return this._xhr.responseText}},{key:"getUnderlyingObject",value:function(){return this._xhr}}]),Response}()},{}],4:[function(require,module,exports){Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"DefaultHttpStack",{enumerable:!0,get:function(){return _httpStack.default}}),Object.defineProperty(exports,"DetailedError",{enumerable:!0,get:function(){return _error.default}}),exports.Upload=void 0,Object.defineProperty(exports,"canStoreURLs",{enumerable:!0,get:function(){return _urlStorage.canStoreURLs}}),exports.defaultOptions=void 0,Object.defineProperty(exports,"enableDebugLog",{enumerable:!0,get:function(){return _logger.enableDebugLog}}),exports.isSupported=void 0;var _upload=_interopRequireDefault(require("../upload.js")),_noopUrlStorage=_interopRequireDefault(require("../noopUrlStorage.js")),_logger=require("../logger.js"),_error=_interopRequireDefault(require("../error.js")),_urlStorage=require("./urlStorage.js"),_httpStack=_interopRequireDefault(require("./httpStack.js")),_fileReader=_interopRequireDefault(require("./fileReader.js")),_fileSignature=_interopRequireDefault(require("./fileSignature.js"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _typeof(o){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _defineProperties(target,props){for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:null,options=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return _classCallCheck(this,Upload),options=_objectSpread(_objectSpread({},defaultOptions),options),_super.call(this,file,options)}return Constructor=Upload,staticProps=[{key:"terminate",value:function(url){var options=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return options=_objectSpread(_objectSpread({},defaultOptions),options),_upload.default.terminate(url,options)}}],(protoProps=null)&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),Object.defineProperty(Constructor,"prototype",{writable:!1}),Upload}(_upload.default),exports.isSupported="function"==typeof XMLHttpRequest&&"function"==typeof Blob&&"function"==typeof Blob.prototype.slice},{"../error.js":12,"../logger.js":13,"../noopUrlStorage.js":14,"../upload.js":15,"./fileReader.js":1,"./fileSignature.js":2,"./httpStack.js":3,"./urlStorage.js":11}],5:[function(require,module,exports){Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;exports.default=function(){return"undefined"!=typeof navigator&&"string"==typeof navigator.product&&"reactnative"===navigator.product.toLowerCase()}},{}],6:[function(require,module,exports){Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _isCordova=_interopRequireDefault(require("./isCordova.js")),_readAsByteArray=_interopRequireDefault(require("./readAsByteArray.js"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _typeof(o){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function _defineProperties(target,props){for(var i=0;i=this.size;return Promise.resolve({value:value,done:done})}},{key:"close",value:function(){}}])&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),Object.defineProperty(Constructor,"prototype",{writable:!1}),FileSource}()},{"./isCordova.js":8,"./readAsByteArray.js":9}],7:[function(require,module,exports){function _typeof(o){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function _defineProperties(target,props){for(var i=0;ithis._bufferOffset&&(this._buffer=this._buffer.slice(start-this._bufferOffset),this._bufferOffset=start);var hasAllDataBeenRead=0===len(this._buffer);return this._done&&hasAllDataBeenRead?null:this._buffer.slice(0,end-start)}},{key:"close",value:function(){this._reader.cancel&&this._reader.cancel()}}])&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),Object.defineProperty(Constructor,"prototype",{writable:!1}),StreamSource}()},{}],8:[function(require,module,exports){Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;exports.default=function(){return"undefined"!=typeof window&&(void 0!==window.PhoneGap||void 0!==window.Cordova||void 0!==window.cordova)}},{}],9:[function(require,module,exports){Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=function(chunk){return new Promise((function(resolve,reject){var reader=new FileReader;reader.onload=function(){var value=new Uint8Array(reader.result);resolve({value:value})},reader.onerror=function(err){reject(err)},reader.readAsArrayBuffer(chunk)}))}},{}],10:[function(require,module,exports){Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=function(uri){return new Promise((function(resolve,reject){var xhr=new XMLHttpRequest;xhr.responseType="blob",xhr.onload=function(){var blob=xhr.response;resolve(blob)},xhr.onerror=function(err){reject(err)},xhr.open("GET",uri),xhr.send()}))}},{}],11:[function(require,module,exports){function _typeof(o){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function _defineProperties(target,props){for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null,req=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,res=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;if(_classCallCheck(this,DetailedError),(_this=_super.call(this,message)).originalRequest=req,_this.originalResponse=res,_this.causingError=causingErr,null!=causingErr&&(message+=", caused by ".concat(causingErr.toString())),null!=req){var requestId=req.getHeader("X-Request-ID")||"n/a",method=req.getMethod(),url=req.getURL(),status=res?res.getStatus():"n/a",body=res?res.getBody()||"":"n/a";message+=", originated from request (method: ".concat(method,", url: ").concat(url,", response code: ").concat(status,", response text: ").concat(body,", request id: ").concat(requestId,")")}return _this.message=message,_this}return Constructor=DetailedError,protoProps&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),Object.defineProperty(Constructor,"prototype",{writable:!1}),Constructor}(_wrapNativeSuper(Error));exports.default=DetailedError},{}],13:[function(require,module,exports){Object.defineProperty(exports,"__esModule",{value:!0}),exports.enableDebugLog=function(){isEnabled=!0},exports.log=function(msg){if(!isEnabled)return;console.log(msg)};var isEnabled=!1},{}],14:[function(require,module,exports){function _typeof(o){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function _defineProperties(target,props){for(var i=0;i=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return handle("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(c&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),resetTryEntry(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;resetTryEntry(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:values(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg),value=info.value}catch(error){return void reject(error)}info.done?resolve(value):Promise.resolve(value).then(_next,_throw)}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise((function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(void 0)}))}}function _slicedToArray(arr,i){return function(arr){if(Array.isArray(arr))return arr}(arr)||function(r,l){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r}finally{try{if(!f&&null!=t.return&&(u=t.return(),Object(u)!==u))return}finally{if(o)throw n}}return a}}(arr,i)||function(o,minLen){if(!o)return;if("string"==typeof o)return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);"Object"===n&&o.constructor&&(n=o.constructor.name);if("Map"===n||"Set"===n)return Array.from(o);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}(arr,i)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _arrayLikeToArray(arr,len){(null==len||len>arr.length)&&(len=arr.length);for(var i=0,arr2=new Array(len);i1)for(var _i=0,_arr=["uploadUrl","uploadSize","uploadLengthDeferred"];_i<_arr.length;_i++){var optionName=_arr[_i];if(this.options[optionName])return void this._emitError(new Error("tus: cannot use the ".concat(optionName," option when parallelUploads is enabled")))}if(this.options.parallelUploadBoundaries){if(this.options.parallelUploads<=1)return void this._emitError(new Error("tus: cannot use the `parallelUploadBoundaries` option when `parallelUploads` is disabled"));if(this.options.parallelUploads!==this.options.parallelUploadBoundaries.length)return void this._emitError(new Error("tus: the `parallelUploadBoundaries` must have the same length as the value of `parallelUploads`"))}this.options.fingerprint(file,this.options).then((function(fingerprint){return null==fingerprint?(0,_logger.log)("No fingerprint was calculated meaning that the upload cannot be stored in the URL storage."):(0,_logger.log)("Calculated fingerprint: ".concat(fingerprint)),_this2._fingerprint=fingerprint,_this2._source?_this2._source:_this2.options.fileReader.openFile(file,_this2.options.chunkSize)})).then((function(source){if(_this2._source=source,_this2.options.uploadLengthDeferred)_this2._size=null;else if(null!=_this2.options.uploadSize){if(_this2._size=Number(_this2.options.uploadSize),Number.isNaN(_this2._size))return void _this2._emitError(new Error("tus: cannot convert `uploadSize` option into a number"))}else if(_this2._size=_this2._source.size,null==_this2._size)return void _this2._emitError(new Error("tus: cannot automatically derive upload's size from input. Specify it manually using the `uploadSize` option or use the `uploadLengthDeferred` option"));_this2.options.parallelUploads>1||null!=_this2._parallelUploadUrls?_this2._startParallelUpload():_this2._startSingleUpload()})).catch((function(err){_this2._emitError(err)}))}else this._emitError(new Error("tus: the `retryDelays` option must either be an array or null"))}else this._emitError(new Error("tus: neither an endpoint or an upload URL is provided"));else this._emitError(new Error("tus: no file or stream to upload provided"))}},{key:"_startParallelUpload",value:function(){var _this$options$paralle,_this3=this,totalSize=this._size,totalProgress=0;this._parallelUploads=[];var partCount=null!=this._parallelUploadUrls?this._parallelUploadUrls.length:this.options.parallelUploads,parts=null!==(_this$options$paralle=this.options.parallelUploadBoundaries)&&void 0!==_this$options$paralle?_this$options$paralle:function(totalSize,partCount){for(var partSize=Math.floor(totalSize/partCount),parts=[],i=0;ithis._offsetBeforeRetry&&(this._retryAttempt=0),shouldRetry(err,this._retryAttempt,this.options))){var delay=this.options.retryDelays[this._retryAttempt++];return this._offsetBeforeRetry=this._offset,void(this._retryTimeout=setTimeout((function(){_this5.start()}),delay))}if("function"!=typeof this.options.onError)throw err;this.options.onError(err)}}},{key:"_emitSuccess",value:function(){this.options.removeFingerprintOnSuccess&&this._removeFromUrlStorage(),"function"==typeof this.options.onSuccess&&this.options.onSuccess()}},{key:"_emitProgress",value:function(bytesSent,bytesTotal){"function"==typeof this.options.onProgress&&this.options.onProgress(bytesSent,bytesTotal)}},{key:"_emitChunkComplete",value:function(chunkSize,bytesAccepted,bytesTotal){"function"==typeof this.options.onChunkComplete&&this.options.onChunkComplete(chunkSize,bytesAccepted,bytesTotal)}},{key:"_createUpload",value:function(){var _this6=this;if(this.options.endpoint){var req=this._openRequest("POST",this.options.endpoint);this.options.uploadLengthDeferred?req.setHeader("Upload-Defer-Length",1):req.setHeader("Upload-Length",this._size);var promise,metadata=encodeMetadata(this.options.metadata);""!==metadata&&req.setHeader("Upload-Metadata",metadata),this.options.uploadDataDuringCreation&&!this.options.uploadLengthDeferred?(this._offset=0,promise=this._addChunkToRequest(req)):promise=this._sendRequest(req,null),promise.then((function(res){if(inStatusCategory(res.getStatus(),200)){var location=res.getHeader("Location");if(null!=location){if(_this6.url=resolveUrl(_this6.options.endpoint,location),(0,_logger.log)("Created upload at ".concat(_this6.url)),"function"==typeof _this6.options.onUploadUrlAvailable&&_this6.options.onUploadUrlAvailable(),0===_this6._size)return _this6._emitSuccess(),void _this6._source.close();_this6._saveUploadInUrlStorage().then((function(){_this6.options.uploadDataDuringCreation?_this6._handleUploadResponse(req,res):(_this6._offset=0,_this6._performUpload())}))}else _this6._emitHttpError(req,res,"tus: invalid or missing Location header")}else _this6._emitHttpError(req,res,"tus: unexpected response while creating upload")})).catch((function(err){_this6._emitHttpError(req,null,"tus: failed to create upload",err)}))}else this._emitError(new Error("tus: unable to create upload because no endpoint is provided"))}},{key:"_resumeUpload",value:function(){var _this7=this,req=this._openRequest("HEAD",this.url);this._sendRequest(req,null).then((function(res){var status=res.getStatus();if(!inStatusCategory(status,200))return 423===status?void _this7._emitHttpError(req,res,"tus: upload is currently locked; retry later"):(inStatusCategory(status,400)&&_this7._removeFromUrlStorage(),_this7.options.endpoint?(_this7.url=null,void _this7._createUpload()):void _this7._emitHttpError(req,res,"tus: unable to resume upload (new upload cannot be created without an endpoint)"));var offset=parseInt(res.getHeader("Upload-Offset"),10);if(Number.isNaN(offset))_this7._emitHttpError(req,res,"tus: invalid or missing offset value");else{var length=parseInt(res.getHeader("Upload-Length"),10);!Number.isNaN(length)||_this7.options.uploadLengthDeferred?("function"==typeof _this7.options.onUploadUrlAvailable&&_this7.options.onUploadUrlAvailable(),_this7._saveUploadInUrlStorage().then((function(){if(offset===length)return _this7._emitProgress(length,length),void _this7._emitSuccess();_this7._offset=offset,_this7._performUpload()}))):_this7._emitHttpError(req,res,"tus: invalid or missing length value")}})).catch((function(err){_this7._emitHttpError(req,null,"tus: failed to resume upload",err)}))}},{key:"_performUpload",value:function(){var req,_this8=this;this._aborted||(this.options.overridePatchMethod?(req=this._openRequest("POST",this.url)).setHeader("X-HTTP-Method-Override","PATCH"):req=this._openRequest("PATCH",this.url),req.setHeader("Upload-Offset",this._offset),this._addChunkToRequest(req).then((function(res){inStatusCategory(res.getStatus(),200)?_this8._handleUploadResponse(req,res):_this8._emitHttpError(req,res,"tus: unexpected response while uploading chunk")})).catch((function(err){_this8._aborted||_this8._emitHttpError(req,null,"tus: failed to upload chunk at offset ".concat(_this8._offset),err)})))}},{key:"_addChunkToRequest",value:function(req){var _this9=this,start=this._offset,end=this._offset+this.options.chunkSize;return req.setProgressHandler((function(bytesSent){_this9._emitProgress(start+bytesSent,_this9._size)})),req.setHeader("Content-Type","application/offset+octet-stream"),(end===1/0||end>this._size)&&!this.options.uploadLengthDeferred&&(end=this._size),this._source.slice(start,end).then((function(_ref2){var value=_ref2.value,done=_ref2.done,valueSize=value&&value.size?value.size:0;_this9.options.uploadLengthDeferred&&done&&(_this9._size=_this9._offset+valueSize,req.setHeader("Upload-Length",_this9._size));var newSize=_this9._offset+valueSize;return!_this9.options.uploadLengthDeferred&&done&&newSize!==_this9._size?Promise.reject(new Error("upload was configured with a size of ".concat(_this9._size," bytes, but the source is done after ").concat(newSize," bytes"))):null===value?_this9._sendRequest(req):(_this9._emitProgress(_this9._offset,_this9._size),_this9._sendRequest(req,value))}))}},{key:"_handleUploadResponse",value:function(req,res){var offset=parseInt(res.getHeader("Upload-Offset"),10);if(Number.isNaN(offset))this._emitHttpError(req,res,"tus: invalid or missing offset value");else{if(this._emitProgress(offset,this._size),this._emitChunkComplete(offset-this._offset,offset,this._size),this._offset=offset,offset===this._size)return this._emitSuccess(),void this._source.close();this._performUpload()}}},{key:"_openRequest",value:function(method,url){var req=openRequest(method,url,this.options);return this._req=req,req}},{key:"_removeFromUrlStorage",value:function(){var _this10=this;this._urlStorageKey&&(this._urlStorage.removeUpload(this._urlStorageKey).catch((function(err){_this10._emitError(err)})),this._urlStorageKey=null)}},{key:"_saveUploadInUrlStorage",value:function(){var _this11=this;if(!this.options.storeFingerprintForResuming||!this._fingerprint||null!==this._urlStorageKey)return Promise.resolve();var storedUpload={size:this._size,metadata:this.options.metadata,creationTime:(new Date).toString()};return this._parallelUploads?storedUpload.parallelUploadUrls=this._parallelUploadUrls:storedUpload.uploadUrl=this.url,this._urlStorage.addUpload(this._fingerprint,storedUpload).then((function(urlStorageKey){_this11._urlStorageKey=urlStorageKey}))}},{key:"_sendRequest",value:function(req){var body=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return sendRequest(req,body,this.options)}}],staticProps=[{key:"terminate",value:function(url){var options=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},req=openRequest("DELETE",url,options);return sendRequest(req,null,options).then((function(res){if(204!==res.getStatus())throw new _error.default("tus: unexpected response while terminating upload",null,req,res)})).catch((function(err){if(err instanceof _error.default||(err=new _error.default("tus: failed to terminate upload",err,req,null)),!shouldRetry(err,0,options))throw err;var delay=options.retryDelays[0],remainingDelays=options.retryDelays.slice(1),newOptions=_objectSpread(_objectSpread({},options),{},{retryDelays:remainingDelays});return new Promise((function(resolve){return setTimeout(resolve,delay)})).then((function(){return BaseUpload.terminate(url,newOptions)}))}))}}],protoProps&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),Object.defineProperty(Constructor,"prototype",{writable:!1}),BaseUpload}();function encodeMetadata(metadata){return Object.entries(metadata).map((function(_ref3){var _ref4=_slicedToArray(_ref3,2),key=_ref4[0],value=_ref4[1];return"".concat(key," ").concat(_jsBase.Base64.encode(String(value)))})).join(",")}function inStatusCategory(status,category){return status>=category&&status=options.retryDelays.length||null==err.originalRequest)&&(options&&"function"==typeof options.onShouldRetry?options.onShouldRetry(err,retryAttempt,options):defaultOnShouldRetry(err))}function defaultOnShouldRetry(err){var online,status=err.originalResponse?err.originalResponse.getStatus():0;return(!inStatusCategory(status,400)||409===status||423===status)&&(online=!0,"undefined"!=typeof navigator&&!1===navigator.onLine&&(online=!1),online)}function resolveUrl(origin,link){return new _urlParse.default(link,origin).toString()}BaseUpload.defaultOptions=defaultOptions;exports.default=BaseUpload},{"./error.js":12,"./logger.js":13,"./uuid.js":16,"js-base64":20,"url-parse":23}],16:[function(require,module,exports){Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(c){var r=16*Math.random()|0;return("x"===c?r:3&r|8).toString(16)}))}},{}],17:[function(require,module,exports){exports.byteLength=function(b64){var lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1];return 3*(validLen+placeHoldersLen)/4-placeHoldersLen},exports.toByteArray=function(b64){var tmp,i,lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1],arr=new Arr(function(b64,validLen,placeHoldersLen){return 3*(validLen+placeHoldersLen)/4-placeHoldersLen}(0,validLen,placeHoldersLen)),curByte=0,len=placeHoldersLen>0?validLen-4:validLen;for(i=0;i>16&255,arr[curByte++]=tmp>>8&255,arr[curByte++]=255&tmp;2===placeHoldersLen&&(tmp=revLookup[b64.charCodeAt(i)]<<2|revLookup[b64.charCodeAt(i+1)]>>4,arr[curByte++]=255&tmp);1===placeHoldersLen&&(tmp=revLookup[b64.charCodeAt(i)]<<10|revLookup[b64.charCodeAt(i+1)]<<4|revLookup[b64.charCodeAt(i+2)]>>2,arr[curByte++]=tmp>>8&255,arr[curByte++]=255&tmp);return arr},exports.fromByteArray=function(uint8){for(var tmp,len=uint8.length,extraBytes=len%3,parts=[],i=0,len2=len-extraBytes;ilen2?len2:i+16383));1===extraBytes?(tmp=uint8[len-1],parts.push(lookup[tmp>>2]+lookup[tmp<<4&63]+"==")):2===extraBytes&&(tmp=(uint8[len-2]<<8)+uint8[len-1],parts.push(lookup[tmp>>10]+lookup[tmp>>4&63]+lookup[tmp<<2&63]+"="));return parts.join("")};for(var lookup=[],revLookup=[],Arr="undefined"!=typeof Uint8Array?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i=0,len=code.length;i0)throw new Error("Invalid string. Length must be a multiple of 4");var validLen=b64.indexOf("=");return-1===validLen&&(validLen=len),[validLen,validLen===len?0:4-validLen%4]}function encodeChunk(uint8,start,end){for(var tmp,num,output=[],i=start;i>18&63]+lookup[num>>12&63]+lookup[num>>6&63]+lookup[63&num]);return output.join("")}revLookup["-".charCodeAt(0)]=62,revLookup["_".charCodeAt(0)]=63},{}],18:[function(require,module,exports){(function(Buffer){(function(){var base64=require("base64-js"),ieee754=require("ieee754");exports.Buffer=Buffer,exports.SlowBuffer=function(length){+length!=length&&(length=0);return Buffer.alloc(+length)},exports.INSPECT_MAX_BYTES=50;function createBuffer(length){if(length>2147483647)throw new RangeError('The value "'+length+'" is invalid for option "size"');var buf=new Uint8Array(length);return buf.__proto__=Buffer.prototype,buf}function Buffer(arg,encodingOrOffset,length){if("number"==typeof arg){if("string"==typeof encodingOrOffset)throw new TypeError('The "string" argument must be of type string. Received type number');return allocUnsafe(arg)}return from(arg,encodingOrOffset,length)}function from(value,encodingOrOffset,length){if("string"==typeof value)return function(string,encoding){"string"==typeof encoding&&""!==encoding||(encoding="utf8");if(!Buffer.isEncoding(encoding))throw new TypeError("Unknown encoding: "+encoding);var length=0|byteLength(string,encoding),buf=createBuffer(length),actual=buf.write(string,encoding);actual!==length&&(buf=buf.slice(0,actual));return buf}(value,encodingOrOffset);if(ArrayBuffer.isView(value))return fromArrayLike(value);if(null==value)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof value);if(isInstance(value,ArrayBuffer)||value&&isInstance(value.buffer,ArrayBuffer))return function(array,byteOffset,length){if(byteOffset<0||array.byteLength=2147483647)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+2147483647..toString(16)+" bytes");return 0|length}function byteLength(string,encoding){if(Buffer.isBuffer(string))return string.length;if(ArrayBuffer.isView(string)||isInstance(string,ArrayBuffer))return string.byteLength;if("string"!=typeof string)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof string);var len=string.length,mustMatch=arguments.length>2&&!0===arguments[2];if(!mustMatch&&0===len)return 0;for(var loweredCase=!1;;)switch(encoding){case"ascii":case"latin1":case"binary":return len;case"utf8":case"utf-8":return utf8ToBytes(string).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*len;case"hex":return len>>>1;case"base64":return base64ToBytes(string).length;default:if(loweredCase)return mustMatch?-1:utf8ToBytes(string).length;encoding=(""+encoding).toLowerCase(),loweredCase=!0}}function slowToString(encoding,start,end){var loweredCase=!1;if((void 0===start||start<0)&&(start=0),start>this.length)return"";if((void 0===end||end>this.length)&&(end=this.length),end<=0)return"";if((end>>>=0)<=(start>>>=0))return"";for(encoding||(encoding="utf8");;)switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"latin1":case"binary":return latin1Slice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase(),loweredCase=!0}}function swap(b,n,m){var i=b[n];b[n]=b[m],b[m]=i}function bidirectionalIndexOf(buffer,val,byteOffset,encoding,dir){if(0===buffer.length)return-1;if("string"==typeof byteOffset?(encoding=byteOffset,byteOffset=0):byteOffset>2147483647?byteOffset=2147483647:byteOffset<-2147483648&&(byteOffset=-2147483648),numberIsNaN(byteOffset=+byteOffset)&&(byteOffset=dir?0:buffer.length-1),byteOffset<0&&(byteOffset=buffer.length+byteOffset),byteOffset>=buffer.length){if(dir)return-1;byteOffset=buffer.length-1}else if(byteOffset<0){if(!dir)return-1;byteOffset=0}if("string"==typeof val&&(val=Buffer.from(val,encoding)),Buffer.isBuffer(val))return 0===val.length?-1:arrayIndexOf(buffer,val,byteOffset,encoding,dir);if("number"==typeof val)return val&=255,"function"==typeof Uint8Array.prototype.indexOf?dir?Uint8Array.prototype.indexOf.call(buffer,val,byteOffset):Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset):arrayIndexOf(buffer,[val],byteOffset,encoding,dir);throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(arr,val,byteOffset,encoding,dir){var i,indexSize=1,arrLength=arr.length,valLength=val.length;if(void 0!==encoding&&("ucs2"===(encoding=String(encoding).toLowerCase())||"ucs-2"===encoding||"utf16le"===encoding||"utf-16le"===encoding)){if(arr.length<2||val.length<2)return-1;indexSize=2,arrLength/=2,valLength/=2,byteOffset/=2}function read(buf,i){return 1===indexSize?buf[i]:buf.readUInt16BE(i*indexSize)}if(dir){var foundIndex=-1;for(i=byteOffset;iarrLength&&(byteOffset=arrLength-valLength),i=byteOffset;i>=0;i--){for(var found=!0,j=0;jremaining&&(length=remaining):length=remaining;var strLen=string.length;length>strLen/2&&(length=strLen/2);for(var i=0;i>8,lo=c%256,byteArray.push(lo),byteArray.push(hi);return byteArray}(string,buf.length-offset),buf,offset,length)}function base64Slice(buf,start,end){return 0===start&&end===buf.length?base64.fromByteArray(buf):base64.fromByteArray(buf.slice(start,end))}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);for(var res=[],i=start;i239?4:firstByte>223?3:firstByte>191?2:1;if(i+bytesPerSequence<=end)switch(bytesPerSequence){case 1:firstByte<128&&(codePoint=firstByte);break;case 2:128==(192&(secondByte=buf[i+1]))&&(tempCodePoint=(31&firstByte)<<6|63&secondByte)>127&&(codePoint=tempCodePoint);break;case 3:secondByte=buf[i+1],thirdByte=buf[i+2],128==(192&secondByte)&&128==(192&thirdByte)&&(tempCodePoint=(15&firstByte)<<12|(63&secondByte)<<6|63&thirdByte)>2047&&(tempCodePoint<55296||tempCodePoint>57343)&&(codePoint=tempCodePoint);break;case 4:secondByte=buf[i+1],thirdByte=buf[i+2],fourthByte=buf[i+3],128==(192&secondByte)&&128==(192&thirdByte)&&128==(192&fourthByte)&&(tempCodePoint=(15&firstByte)<<18|(63&secondByte)<<12|(63&thirdByte)<<6|63&fourthByte)>65535&&tempCodePoint<1114112&&(codePoint=tempCodePoint)}null===codePoint?(codePoint=65533,bytesPerSequence=1):codePoint>65535&&(codePoint-=65536,res.push(codePoint>>>10&1023|55296),codePoint=56320|1023&codePoint),res.push(codePoint),i+=bytesPerSequence}return function(codePoints){var len=codePoints.length;if(len<=4096)return String.fromCharCode.apply(String,codePoints);var res="",i=0;for(;imax&&(str+=" ... "),""},Buffer.prototype.compare=function(target,start,end,thisStart,thisEnd){if(isInstance(target,Uint8Array)&&(target=Buffer.from(target,target.offset,target.byteLength)),!Buffer.isBuffer(target))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof target);if(void 0===start&&(start=0),void 0===end&&(end=target?target.length:0),void 0===thisStart&&(thisStart=0),void 0===thisEnd&&(thisEnd=this.length),start<0||end>target.length||thisStart<0||thisEnd>this.length)throw new RangeError("out of range index");if(thisStart>=thisEnd&&start>=end)return 0;if(thisStart>=thisEnd)return-1;if(start>=end)return 1;if(this===target)return 0;for(var x=(thisEnd>>>=0)-(thisStart>>>=0),y=(end>>>=0)-(start>>>=0),len=Math.min(x,y),thisCopy=this.slice(thisStart,thisEnd),targetCopy=target.slice(start,end),i=0;i>>=0,isFinite(length)?(length>>>=0,void 0===encoding&&(encoding="utf8")):(encoding=length,length=void 0)}var remaining=this.length-offset;if((void 0===length||length>remaining)&&(length=remaining),string.length>0&&(length<0||offset<0)||offset>this.length)throw new RangeError("Attempt to write outside buffer bounds");encoding||(encoding="utf8");for(var loweredCase=!1;;)switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":return asciiWrite(this,string,offset,length);case"latin1":case"binary":return latin1Write(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase(),loweredCase=!0}},Buffer.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function asciiSlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;ilen)&&(end=len);for(var out="",i=start;ilength)throw new RangeError("Trying to access beyond buffer length")}function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw new TypeError('"buffer" argument must be a Buffer instance');if(value>max||valuebuf.length)throw new RangeError("Index out of range")}function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw new RangeError("Index out of range");if(offset<0)throw new RangeError("Index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){return value=+value,offset>>>=0,noAssert||checkIEEE754(buf,0,offset,4),ieee754.write(buf,value,offset,littleEndian,23,4),offset+4}function writeDouble(buf,value,offset,littleEndian,noAssert){return value=+value,offset>>>=0,noAssert||checkIEEE754(buf,0,offset,8),ieee754.write(buf,value,offset,littleEndian,52,8),offset+8}Buffer.prototype.slice=function(start,end){var len=this.length;(start=~~start)<0?(start+=len)<0&&(start=0):start>len&&(start=len),(end=void 0===end?len:~~end)<0?(end+=len)<0&&(end=0):end>len&&(end=len),end>>=0,byteLength>>>=0,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset],mul=1,i=0;++i>>=0,byteLength>>>=0,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset+--byteLength],mul=1;byteLength>0&&(mul*=256);)val+=this[offset+--byteLength]*mul;return val},Buffer.prototype.readUInt8=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,1,this.length),this[offset]},Buffer.prototype.readUInt16LE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,2,this.length),this[offset]|this[offset+1]<<8},Buffer.prototype.readUInt16BE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,2,this.length),this[offset]<<8|this[offset+1]},Buffer.prototype.readUInt32LE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+16777216*this[offset+3]},Buffer.prototype.readUInt32BE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),16777216*this[offset]+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])},Buffer.prototype.readIntLE=function(offset,byteLength,noAssert){offset>>>=0,byteLength>>>=0,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset],mul=1,i=0;++i=(mul*=128)&&(val-=Math.pow(2,8*byteLength)),val},Buffer.prototype.readIntBE=function(offset,byteLength,noAssert){offset>>>=0,byteLength>>>=0,noAssert||checkOffset(offset,byteLength,this.length);for(var i=byteLength,mul=1,val=this[offset+--i];i>0&&(mul*=256);)val+=this[offset+--i]*mul;return val>=(mul*=128)&&(val-=Math.pow(2,8*byteLength)),val},Buffer.prototype.readInt8=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,1,this.length),128&this[offset]?-1*(255-this[offset]+1):this[offset]},Buffer.prototype.readInt16LE=function(offset,noAssert){offset>>>=0,noAssert||checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return 32768&val?4294901760|val:val},Buffer.prototype.readInt16BE=function(offset,noAssert){offset>>>=0,noAssert||checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return 32768&val?4294901760|val:val},Buffer.prototype.readInt32LE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24},Buffer.prototype.readInt32BE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]},Buffer.prototype.readFloatLE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!0,23,4)},Buffer.prototype.readFloatBE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!1,23,4)},Buffer.prototype.readDoubleLE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!0,52,8)},Buffer.prototype.readDoubleBE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!1,52,8)},Buffer.prototype.writeUIntLE=function(value,offset,byteLength,noAssert){(value=+value,offset>>>=0,byteLength>>>=0,noAssert)||checkInt(this,value,offset,byteLength,Math.pow(2,8*byteLength)-1,0);var mul=1,i=0;for(this[offset]=255&value;++i>>=0,byteLength>>>=0,noAssert)||checkInt(this,value,offset,byteLength,Math.pow(2,8*byteLength)-1,0);var i=byteLength-1,mul=1;for(this[offset+i]=255&value;--i>=0&&(mul*=256);)this[offset+i]=value/mul&255;return offset+byteLength},Buffer.prototype.writeUInt8=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,1,255,0),this[offset]=255&value,offset+1},Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,2,65535,0),this[offset]=255&value,this[offset+1]=value>>>8,offset+2},Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,2,65535,0),this[offset]=value>>>8,this[offset+1]=255&value,offset+2},Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,4,4294967295,0),this[offset+3]=value>>>24,this[offset+2]=value>>>16,this[offset+1]=value>>>8,this[offset]=255&value,offset+4},Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,4,4294967295,0),this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=255&value,offset+4},Buffer.prototype.writeIntLE=function(value,offset,byteLength,noAssert){if(value=+value,offset>>>=0,!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=0,mul=1,sub=0;for(this[offset]=255&value;++i>0)-sub&255;return offset+byteLength},Buffer.prototype.writeIntBE=function(value,offset,byteLength,noAssert){if(value=+value,offset>>>=0,!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=byteLength-1,mul=1,sub=0;for(this[offset+i]=255&value;--i>=0&&(mul*=256);)value<0&&0===sub&&0!==this[offset+i+1]&&(sub=1),this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength},Buffer.prototype.writeInt8=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,1,127,-128),value<0&&(value=255+value+1),this[offset]=255&value,offset+1},Buffer.prototype.writeInt16LE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,2,32767,-32768),this[offset]=255&value,this[offset+1]=value>>>8,offset+2},Buffer.prototype.writeInt16BE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,2,32767,-32768),this[offset]=value>>>8,this[offset+1]=255&value,offset+2},Buffer.prototype.writeInt32LE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),this[offset]=255&value,this[offset+1]=value>>>8,this[offset+2]=value>>>16,this[offset+3]=value>>>24,offset+4},Buffer.prototype.writeInt32BE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),value<0&&(value=4294967295+value+1),this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=255&value,offset+4},Buffer.prototype.writeFloatLE=function(value,offset,noAssert){return writeFloat(this,value,offset,!0,noAssert)},Buffer.prototype.writeFloatBE=function(value,offset,noAssert){return writeFloat(this,value,offset,!1,noAssert)},Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){return writeDouble(this,value,offset,!0,noAssert)},Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){return writeDouble(this,value,offset,!1,noAssert)},Buffer.prototype.copy=function(target,targetStart,start,end){if(!Buffer.isBuffer(target))throw new TypeError("argument should be a Buffer");if(start||(start=0),end||0===end||(end=this.length),targetStart>=target.length&&(targetStart=target.length),targetStart||(targetStart=0),end>0&&end=this.length)throw new RangeError("Index out of range");if(end<0)throw new RangeError("sourceEnd out of bounds");end>this.length&&(end=this.length),target.length-targetStart=0;--i)target[i+targetStart]=this[i+start];else Uint8Array.prototype.set.call(target,this.subarray(start,end),targetStart);return len},Buffer.prototype.fill=function(val,start,end,encoding){if("string"==typeof val){if("string"==typeof start?(encoding=start,start=0,end=this.length):"string"==typeof end&&(encoding=end,end=this.length),void 0!==encoding&&"string"!=typeof encoding)throw new TypeError("encoding must be a string");if("string"==typeof encoding&&!Buffer.isEncoding(encoding))throw new TypeError("Unknown encoding: "+encoding);if(1===val.length){var code=val.charCodeAt(0);("utf8"===encoding&&code<128||"latin1"===encoding)&&(val=code)}}else"number"==typeof val&&(val&=255);if(start<0||this.length>>=0,end=void 0===end?this.length:end>>>0,val||(val=0),"number"==typeof val)for(i=start;i55295&&codePoint<57344){if(!leadSurrogate){if(codePoint>56319){(units-=3)>-1&&bytes.push(239,191,189);continue}if(i+1===length){(units-=3)>-1&&bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(codePoint<56320){(units-=3)>-1&&bytes.push(239,191,189),leadSurrogate=codePoint;continue}codePoint=65536+(leadSurrogate-55296<<10|codePoint-56320)}else leadSurrogate&&(units-=3)>-1&&bytes.push(239,191,189);if(leadSurrogate=null,codePoint<128){if((units-=1)<0)break;bytes.push(codePoint)}else if(codePoint<2048){if((units-=2)<0)break;bytes.push(codePoint>>6|192,63&codePoint|128)}else if(codePoint<65536){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,63&codePoint|128)}else{if(!(codePoint<1114112))throw new Error("Invalid code point");if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,63&codePoint|128)}}return bytes}function base64ToBytes(str){return base64.toByteArray(function(str){if((str=(str=str.split("=")[0]).trim().replace(INVALID_BASE64_RE,"")).length<2)return"";for(;str.length%4!=0;)str+="=";return str}(str))}function blitBuffer(src,dst,offset,length){for(var i=0;i=dst.length||i>=src.length);++i)dst[i+offset]=src[i];return i}function isInstance(obj,type){return obj instanceof type||null!=obj&&null!=obj.constructor&&null!=obj.constructor.name&&obj.constructor.name===type.name}function numberIsNaN(obj){return obj!=obj}}).call(this)}).call(this,require("buffer").Buffer)},{"base64-js":17,buffer:18,ieee754:19}],19:[function(require,module,exports){exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m,eLen=8*nBytes-mLen-1,eMax=(1<>1,nBits=-7,i=isLE?nBytes-1:0,d=isLE?-1:1,s=buffer[offset+i];for(i+=d,e=s&(1<<-nBits)-1,s>>=-nBits,nBits+=eLen;nBits>0;e=256*e+buffer[offset+i],i+=d,nBits-=8);for(m=e&(1<<-nBits)-1,e>>=-nBits,nBits+=mLen;nBits>0;m=256*m+buffer[offset+i],i+=d,nBits-=8);if(0===e)e=1-eBias;else{if(e===eMax)return m?NaN:1/0*(s?-1:1);m+=Math.pow(2,mLen),e-=eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)},exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c,eLen=8*nBytes-mLen-1,eMax=(1<>1,rt=23===mLen?Math.pow(2,-24)-Math.pow(2,-77):0,i=isLE?0:nBytes-1,d=isLE?1:-1,s=value<0||0===value&&1/value<0?1:0;for(value=Math.abs(value),isNaN(value)||value===1/0?(m=isNaN(value)?1:0,e=eMax):(e=Math.floor(Math.log(value)/Math.LN2),value*(c=Math.pow(2,-e))<1&&(e--,c*=2),(value+=e+eBias>=1?rt/c:rt*Math.pow(2,1-eBias))*c>=2&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):e+eBias>=1?(m=(value*c-1)*Math.pow(2,mLen),e+=eBias):(m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0));mLen>=8;buffer[offset+i]=255&m,i+=d,m/=256,mLen-=8);for(e=e<0;buffer[offset+i]=255&e,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=128*s}},{}],20:[function(require,module,exports){(function(global,Buffer){(function(){!function(global,factory){var _Base64,gBase64;"object"==typeof exports&&void 0!==module?module.exports=factory():(_Base64=global.Base64,(gBase64=factory()).noConflict=function(){return global.Base64=_Base64,gBase64},global.Meteor&&(Base64=gBase64),global.Base64=gBase64)}("undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==global?global:this,(function(){var tab,_hasatob="function"==typeof atob,_hasbtoa="function"==typeof btoa,_hasBuffer="function"==typeof Buffer,_TD="function"==typeof TextDecoder?new TextDecoder:void 0,_TE="function"==typeof TextEncoder?new TextEncoder:void 0,b64chs=Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="),b64tab=(tab={},b64chs.forEach((function(c,i){return tab[c]=i})),tab),b64re=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,_fromCC=String.fromCharCode.bind(String),_U8Afrom="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):function(it){return new Uint8Array(Array.prototype.slice.call(it,0))},_mkUriSafe=function(src){return src.replace(/=/g,"").replace(/[+\/]/g,(function(m0){return"+"==m0?"-":"_"}))},_tidyB64=function(s){return s.replace(/[^A-Za-z0-9\+\/]/g,"")},btoaPolyfill=function(bin){for(var u32,c0,c1,c2,asc="",pad=bin.length%3,i=0;i255||(c1=bin.charCodeAt(i++))>255||(c2=bin.charCodeAt(i++))>255)throw new TypeError("invalid character found");asc+=b64chs[(u32=c0<<16|c1<<8|c2)>>18&63]+b64chs[u32>>12&63]+b64chs[u32>>6&63]+b64chs[63&u32]}return pad?asc.slice(0,pad-3)+"===".substring(pad):asc},_btoa=_hasbtoa?function(bin){return btoa(bin)}:_hasBuffer?function(bin){return Buffer.from(bin,"binary").toString("base64")}:btoaPolyfill,_fromUint8Array=_hasBuffer?function(u8a){return Buffer.from(u8a).toString("base64")}:function(u8a){for(var strs=[],i=0,l=u8a.length;i>>6)+_fromCC(128|63&cc):_fromCC(224|cc>>>12&15)+_fromCC(128|cc>>>6&63)+_fromCC(128|63&cc);var cc=65536+1024*(c.charCodeAt(0)-55296)+(c.charCodeAt(1)-56320);return _fromCC(240|cc>>>18&7)+_fromCC(128|cc>>>12&63)+_fromCC(128|cc>>>6&63)+_fromCC(128|63&cc)},re_utob=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,utob=function(u){return u.replace(re_utob,cb_utob)},_encode=_hasBuffer?function(s){return Buffer.from(s,"utf8").toString("base64")}:_TE?function(s){return _fromUint8Array(_TE.encode(s))}:function(s){return _btoa(utob(s))},encode=function(src,urlsafe){return void 0===urlsafe&&(urlsafe=!1),urlsafe?_mkUriSafe(_encode(src)):_encode(src)},encodeURI=function(src){return encode(src,!0)},re_btou=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,cb_btou=function(cccc){switch(cccc.length){case 4:var offset=((7&cccc.charCodeAt(0))<<18|(63&cccc.charCodeAt(1))<<12|(63&cccc.charCodeAt(2))<<6|63&cccc.charCodeAt(3))-65536;return _fromCC(55296+(offset>>>10))+_fromCC(56320+(1023&offset));case 3:return _fromCC((15&cccc.charCodeAt(0))<<12|(63&cccc.charCodeAt(1))<<6|63&cccc.charCodeAt(2));default:return _fromCC((31&cccc.charCodeAt(0))<<6|63&cccc.charCodeAt(1))}},btou=function(b){return b.replace(re_btou,cb_btou)},atobPolyfill=function(asc){if(asc=asc.replace(/\s+/g,""),!b64re.test(asc))throw new TypeError("malformed base64.");asc+="==".slice(2-(3&asc.length));for(var u24,r1,r2,bin="",i=0;i>16&255):64===r2?_fromCC(u24>>16&255,u24>>8&255):_fromCC(u24>>16&255,u24>>8&255,255&u24);return bin},_atob=_hasatob?function(asc){return atob(_tidyB64(asc))}:_hasBuffer?function(asc){return Buffer.from(asc,"base64").toString("binary")}:atobPolyfill,_toUint8Array=_hasBuffer?function(a){return _U8Afrom(Buffer.from(a,"base64"))}:function(a){return _U8Afrom(_atob(a).split("").map((function(c){return c.charCodeAt(0)})))},toUint8Array=function(a){return _toUint8Array(_unURI(a))},_decode=_hasBuffer?function(a){return Buffer.from(a,"base64").toString("utf8")}:_TD?function(a){return _TD.decode(_toUint8Array(a))}:function(a){return btou(_atob(a))},_unURI=function(a){return _tidyB64(a.replace(/[-_]/g,(function(m0){return"-"==m0?"+":"/"})))},decode=function(src){return _decode(_unURI(src))},_noEnum=function(v){return{value:v,enumerable:!1,writable:!0,configurable:!0}},extendString=function(){var _add=function(name,body){return Object.defineProperty(String.prototype,name,_noEnum(body))};_add("fromBase64",(function(){return decode(this)})),_add("toBase64",(function(urlsafe){return encode(this,urlsafe)})),_add("toBase64URI",(function(){return encode(this,!0)})),_add("toBase64URL",(function(){return encode(this,!0)})),_add("toUint8Array",(function(){return toUint8Array(this)}))},extendUint8Array=function(){var _add=function(name,body){return Object.defineProperty(Uint8Array.prototype,name,_noEnum(body))};_add("toBase64",(function(urlsafe){return fromUint8Array(this,urlsafe)})),_add("toBase64URI",(function(){return fromUint8Array(this,!0)})),_add("toBase64URL",(function(){return fromUint8Array(this,!0)}))},gBase64={version:"3.7.5",VERSION:"3.7.5",atob:_atob,atobPolyfill:atobPolyfill,btoa:_btoa,btoaPolyfill:btoaPolyfill,fromBase64:decode,toBase64:encode,encode:encode,encodeURI:encodeURI,encodeURL:encodeURI,utob:utob,btou:btou,decode:decode,isValid:function(src){if("string"!=typeof src)return!1;var s=src.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(s)||!/[^\s0-9a-zA-Z\-_]/.test(s)},fromUint8Array:fromUint8Array,toUint8Array:toUint8Array,extendString:extendString,extendUint8Array:extendUint8Array,extendBuiltins:function(){extendString(),extendUint8Array()},Base64:{}};return Object.keys(gBase64).forEach((function(k){return gBase64.Base64[k]=gBase64[k]})),gBase64}))}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},require("buffer").Buffer)},{buffer:18}],21:[function(require,module,exports){var has=Object.prototype.hasOwnProperty;function decode(input){try{return decodeURIComponent(input.replace(/\+/g," "))}catch(e){return null}}function encode(input){try{return encodeURIComponent(input)}catch(e){return null}}exports.stringify=function(obj,prefix){prefix=prefix||"";var value,key,pairs=[];for(key in"string"!=typeof prefix&&(prefix="?"),obj)if(has.call(obj,key)){if((value=obj[key])||null!=value&&!isNaN(value)||(value=""),key=encode(key),value=encode(value),null===key||null===value)continue;pairs.push(key+"="+value)}return pairs.length?prefix+pairs.join("&"):""},exports.parse=function(query){for(var part,parser=/([^=?#&]+)=?([^&]*)/g,result={};part=parser.exec(query);){var key=decode(part[1]),value=decode(part[2]);null===key||null===value||key in result||(result[key]=value)}return result}},{}],22:[function(require,module,exports){module.exports=function(port,protocol){if(protocol=protocol.split(":")[0],!(port=+port))return!1;switch(protocol){case"http":case"ws":return 80!==port;case"https":case"wss":return 443!==port;case"ftp":return 21!==port;case"gopher":return 70!==port;case"file":return!1}return 0!==port}},{}],23:[function(require,module,exports){(function(global){(function(){var required=require("requires-port"),qs=require("querystringify"),controlOrWhitespace=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,CRHTLF=/[\n\r\t]/g,slashes=/^[A-Za-z][A-Za-z0-9+-.]*:\/\//,port=/:\d+$/,protocolre=/^([a-z][a-z0-9.+-]*:)?(\/\/)?([\\/]+)?([\S\s]*)/i,windowsDriveLetter=/^[a-zA-Z]:/;function trimLeft(str){return(str||"").toString().replace(controlOrWhitespace,"")}var rules=[["#","hash"],["?","query"],function(address,url){return isSpecial(url.protocol)?address.replace(/\\/g,"/"):address},["/","pathname"],["@","auth",1],[NaN,"host",void 0,1,1],[/:(\d*)$/,"port",void 0,1],[NaN,"hostname",void 0,1,1]],ignore={hash:1,query:1};function lolcation(loc){var key,location=("undefined"!=typeof window?window:void 0!==global?global:"undefined"!=typeof self?self:{}).location||{},finaldestination={},type=typeof(loc=loc||location);if("blob:"===loc.protocol)finaldestination=new Url(unescape(loc.pathname),{});else if("string"===type)for(key in finaldestination=new Url(loc,{}),ignore)delete finaldestination[key];else if("object"===type){for(key in loc)key in ignore||(finaldestination[key]=loc[key]);void 0===finaldestination.slashes&&(finaldestination.slashes=slashes.test(loc.href))}return finaldestination}function isSpecial(scheme){return"file:"===scheme||"ftp:"===scheme||"http:"===scheme||"https:"===scheme||"ws:"===scheme||"wss:"===scheme}function extractProtocol(address,location){address=(address=trimLeft(address)).replace(CRHTLF,""),location=location||{};var rest,match=protocolre.exec(address),protocol=match[1]?match[1].toLowerCase():"",forwardSlashes=!!match[2],otherSlashes=!!match[3],slashesCount=0;return forwardSlashes?otherSlashes?(rest=match[2]+match[3]+match[4],slashesCount=match[2].length+match[3].length):(rest=match[2]+match[4],slashesCount=match[2].length):otherSlashes?(rest=match[3]+match[4],slashesCount=match[3].length):rest=match[4],"file:"===protocol?slashesCount>=2&&(rest=rest.slice(2)):isSpecial(protocol)?rest=match[4]:protocol?forwardSlashes&&(rest=rest.slice(2)):slashesCount>=2&&isSpecial(location.protocol)&&(rest=match[4]),{protocol:protocol,slashes:forwardSlashes||isSpecial(protocol),slashesCount:slashesCount,rest:rest}}function Url(address,location,parser){if(address=(address=trimLeft(address)).replace(CRHTLF,""),!(this instanceof Url))return new Url(address,location,parser);var relative,extracted,parse,instruction,index,key,instructions=rules.slice(),type=typeof location,url=this,i=0;for("object"!==type&&"string"!==type&&(parser=location,location=null),parser&&"function"!=typeof parser&&(parser=qs.parse),relative=!(extracted=extractProtocol(address||"",location=lolcation(location))).protocol&&!extracted.slashes,url.slashes=extracted.slashes||relative&&location.slashes,url.protocol=extracted.protocol||location.protocol||"",address=extracted.rest,("file:"===extracted.protocol&&(2!==extracted.slashesCount||windowsDriveLetter.test(address))||!extracted.slashes&&(extracted.protocol||extracted.slashesCount<2||!isSpecial(url.protocol)))&&(instructions[3]=[/(.*)/,"pathname"]);i=this.size;return Promise.resolve({value:r,done:o})}},{key:"close",value:function(){}}]);return e}()},{"./isCordova.js":8,"./readAsByteArray.js":9}],7:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});r["default"]=void 0;function n(e){"@babel/helpers - typeof";return n="function"==typeof Symbol&&"symbol"==_typeof2(Symbol.iterator)?function(e){return _typeof2(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":_typeof2(e)},n(e)}function a(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}function l(e,t){for(var r=0,o;rthis._bufferOffset){this._buffer=this._buffer.slice(e-this._bufferOffset);this._bufferOffset=e}var r=0===d(this._buffer);if(this._done&&r){return null}return this._buffer.slice(0,t-e)}},{key:"close",value:function(){if(this._reader.cancel){this._reader.cancel()}}}]);return e}()},{}],8:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});r["default"]=void 0;r["default"]=function(){return"undefined"!=typeof window&&("undefined"!=typeof window.PhoneGap||"undefined"!=typeof window.Cordova||"undefined"!=typeof window.cordova)}},{}],9:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});r["default"]=function(e){return new Promise(function(t,r){var o=new FileReader;o.onload=function(){var e=new Uint8Array(o.result);t({value:e})};o.onerror=function(e){r(e)};o.readAsArrayBuffer(e)})}},{}],10:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});r["default"]=function(e){return new Promise(function(t,r){var o=new XMLHttpRequest;o.responseType="blob";o.onload=function(){var e=o.response;t(e)};o.onerror=function(e){r(e)};o.open("GET",e);o.send()})}},{}],11:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.canStoreURLs=r.WebStorageUrlStorage=void 0;function n(e){"@babel/helpers - typeof";return n="function"==typeof Symbol&&"symbol"==_typeof2(Symbol.iterator)?function(e){return _typeof2(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":_typeof2(e)},n(e)}function a(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}function l(e,t){for(var r=0,o;re.length)t=e.length;for(var r=0,o=Array(t);r=this.options.parallelUploads){this._emitError(new Error("tus: cannot use the `parallelUploadBoundaries` option when `parallelUploads` is disabled"));return}if(this.options.parallelUploads!==this.options.parallelUploadBoundaries.length){this._emitError(new Error("tus: the `parallelUploadBoundaries` must have the same length as the value of `parallelUploads`"));return}}this.options.fingerprint(t,this.options).then(function(r){if(null==r){(0,z.log)("No fingerprint was calculated meaning that the upload cannot be stored in the URL storage.")}else{(0,z.log)("Calculated fingerprint: ".concat(r))}e._fingerprint=r;if(e._source){return e._source}return e.options.fileReader.openFile(t,e.options.chunkSize)}).then(function(t){e._source=t;if(e.options.uploadLengthDeferred){e._size=null}else if(null!=e.options.uploadSize){e._size=+e.options.uploadSize;if(Number.isNaN(e._size)){e._emitError(new Error("tus: cannot convert `uploadSize` option into a number"));return}}else{e._size=e._source.size;if(null==e._size){e._emitError(new Error("tus: cannot automatically derive upload's size from input. Specify it manually using the `uploadSize` option or use the `uploadLengthDeferred` option"));return}}if(1this._offsetBeforeRetry;if(r){this._retryAttempt=0}if(A(e,this._retryAttempt,this.options)){var o=this.options.retryDelays[this._retryAttempt++];this._offsetBeforeRetry=this._offset;this._retryTimeout=setTimeout(function(){t.start()},o);return}}if("function"==typeof this.options.onError){this.options.onError(e)}else{throw e}}},{key:"_emitSuccess",value:function(){if(this.options.removeFingerprintOnSuccess){this._removeFromUrlStorage()}if("function"==typeof this.options.onSuccess){this.options.onSuccess()}}},{key:"_emitProgress",value:function(e,t){if("function"==typeof this.options.onProgress){this.options.onProgress(e,t)}}},{key:"_emitChunkComplete",value:function(e,t,r){if("function"==typeof this.options.onChunkComplete){this.options.onChunkComplete(e,t,r)}}},{key:"_createUpload",value:function(){var e=this;if(!this.options.endpoint){this._emitError(new Error("tus: unable to create upload because no endpoint is provided"));return}var t=this._openRequest("POST",this.options.endpoint);if(this.options.uploadLengthDeferred){t.setHeader("Upload-Defer-Length",1)}else{t.setHeader("Upload-Length",this._size)}var r=S(this.options.metadata);if(""!==r){t.setHeader("Upload-Metadata",r)}var o;if(this.options.uploadDataDuringCreation&&!this.options.uploadLengthDeferred){this._offset=0;o=this._addChunkToRequest(t)}else{o=this._sendRequest(t,null)}o.then(function(r){if(!P(r.getStatus(),200)){e._emitHttpError(t,r,"tus: unexpected response while creating upload");return}var o=r.getHeader("Location");if(null==o){e._emitHttpError(t,r,"tus: invalid or missing Location header");return}e.url=R(e.options.endpoint,o);(0,z.log)("Created upload at ".concat(e.url));if("function"==typeof e.options.onUploadUrlAvailable){e.options.onUploadUrlAvailable()}if(0===e._size){e._emitSuccess();e._source.close();return}e._saveUploadInUrlStorage().then(function(){if(e.options.uploadDataDuringCreation){e._handleUploadResponse(t,r)}else{e._offset=0;e._performUpload()}})})["catch"](function(r){e._emitHttpError(t,null,"tus: failed to create upload",r)})}},{key:"_resumeUpload",value:function(){var e=this,t=this._openRequest("HEAD",this.url),r=this._sendRequest(t,null);r.then(function(r){var o=r.getStatus();if(!P(o,200)){if(423===o){e._emitHttpError(t,r,"tus: upload is currently locked; retry later");return}if(P(o,400)){e._removeFromUrlStorage()}if(!e.options.endpoint){e._emitHttpError(t,r,"tus: unable to resume upload (new upload cannot be created without an endpoint)");return}e.url=null;e._createUpload();return}var n=parseInt(r.getHeader("Upload-Offset"),10);if(Number.isNaN(n)){e._emitHttpError(t,r,"tus: invalid or missing offset value");return}var a=parseInt(r.getHeader("Upload-Length"),10);if(Number.isNaN(a)&&!e.options.uploadLengthDeferred){e._emitHttpError(t,r,"tus: invalid or missing length value");return}if("function"==typeof e.options.onUploadUrlAvailable){e.options.onUploadUrlAvailable()}e._saveUploadInUrlStorage().then(function(){if(n===a){e._emitProgress(a,a);e._emitSuccess();return}e._offset=n;e._performUpload()})})["catch"](function(r){e._emitHttpError(t,null,"tus: failed to resume upload",r)})}},{key:"_performUpload",value:function(){var e=this;if(this._aborted){return}var t;if(this.options.overridePatchMethod){t=this._openRequest("POST",this.url);t.setHeader("X-HTTP-Method-Override","PATCH")}else{t=this._openRequest("PATCH",this.url)}t.setHeader("Upload-Offset",this._offset);var r=this._addChunkToRequest(t);r.then(function(r){if(!P(r.getStatus(),200)){e._emitHttpError(t,r,"tus: unexpected response while uploading chunk");return}e._handleUploadResponse(t,r)})["catch"](function(r){if(e._aborted){return}e._emitHttpError(t,null,"tus: failed to upload chunk at offset ".concat(e._offset),r)})}},{key:"_addChunkToRequest",value:function(e){var t=this,r=this._offset,o=this._offset+this.options.chunkSize;e.setProgressHandler(function(e){t._emitProgress(r+e,t._size)});e.setHeader("Content-Type","application/offset+octet-stream");if((o===1/0||o>this._size)&&!this.options.uploadLengthDeferred){o=this._size}return this._source.slice(r,o).then(function(r){var o=r.value,n=r.done,a=o&&o.size?o.size:0;if(t.options.uploadLengthDeferred&&n){t._size=t._offset+a;e.setHeader("Upload-Length",t._size)}var l=t._offset+a;if(!t.options.uploadLengthDeferred&&n&&l!==t._size){return Promise.reject(new Error("upload was configured with a size of ".concat(t._size," bytes, but the source is done after ").concat(l," bytes")))}if(null===o){return t._sendRequest(e)}t._emitProgress(t._offset,t._size);return t._sendRequest(e,o)})}},{key:"_handleUploadResponse",value:function(e,t){var r=parseInt(t.getHeader("Upload-Offset"),10);if(Number.isNaN(r)){this._emitHttpError(e,t,"tus: invalid or missing offset value");return}this._emitProgress(r,this._size);this._emitChunkComplete(r-this._offset,r,this._size);this._offset=r;if(r===this._size){this._emitSuccess();this._source.close();return}this._performUpload()}},{key:"_openRequest",value:function(e,t){var r=E(e,t,this.options);this._req=r;return r}},{key:"_removeFromUrlStorage",value:function(){var e=this;if(!this._urlStorageKey)return;this._urlStorage.removeUpload(this._urlStorageKey)["catch"](function(t){e._emitError(t)});this._urlStorageKey=null}},{key:"_saveUploadInUrlStorage",value:function(){var e=this;if(!this.options.storeFingerprintForResuming||!this._fingerprint||null!==this._urlStorageKey){return Promise.resolve()}var t={size:this._size,metadata:this.options.metadata,creationTime:new Date().toString()};if(this._parallelUploads){t.parallelUploadUrls=this._parallelUploadUrls}else{t.uploadUrl=this.url}return this._urlStorage.addUpload(this._fingerprint,t).then(function(t){e._urlStorageKey=t})}},{key:"_sendRequest",value:function(e){var t=1=t&&e=r.retryDelays.length||null==e.originalRequest){return!1}if(r&&"function"==typeof r.onShouldRetry){return r.onShouldRetry(e,t,r)}return C(e)}function C(e){var t=e.originalResponse?e.originalResponse.getStatus():0;return(!P(t,400)||409===t||423===t)&&B()}function R(e,t){return new I["default"](t,e).toString()}function j(e,t){for(var r=Math.floor(e/t),o=[],n=0;n>16;s[u++]=255&t>>8;s[u++]=255&t}if(2===l){t=p[e.charCodeAt(c)]<<2|p[e.charCodeAt(c+1)]>>4;s[u++]=255&t}if(1===l){t=p[e.charCodeAt(c)]<<10|p[e.charCodeAt(c+1)]<<4|p[e.charCodeAt(c+2)]>>2;s[u++]=255&t>>8;s[u++]=255&t}return s}function l(e){return d[63&e>>18]+d[63&e>>12]+d[63&e>>6]+d[63&e]}function s(e,t,r){for(var o,n=[],a=t;au?u:l+a))}if(1===o){t=e[r-1];n.push(d[t>>2]+d[63&t<<4]+"==")}else if(2===o){t=(e[r-2]<<8)+e[r-1];n.push(d[t>>10]+d[63&t>>4]+d[63&t<<2]+"=")}return n.join("")}},{}],18:[function(e,t,r){(function(){(function(){'use strict';var Y=e("base64-js"),K=e("ieee754");r.Buffer=o;r.SlowBuffer=function(e){if(+e!=e){e=0}return o.alloc(+e)};r.INSPECT_MAX_BYTES=50;r.kMaxLength=2147483647;o.TYPED_ARRAY_SUPPORT=function(){try{var e=new Uint8Array(1);e.__proto__={__proto__:Uint8Array.prototype,foo:function foo(){return 42}};return 42===e.foo()}catch(t){return!1}}();if(!o.TYPED_ARRAY_SUPPORT&&"undefined"!=typeof console&&"function"==typeof console.error){console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.")}Object.defineProperty(o.prototype,"parent",{enumerable:!0,get:function get(){if(!o.isBuffer(this))return;return this.buffer}});Object.defineProperty(o.prototype,"offset",{enumerable:!0,get:function get(){if(!o.isBuffer(this))return;return this.byteOffset}});function t(e){if(e>2147483647){throw new RangeError("The value \""+e+"\" is invalid for option \"size\"")}var t=new Uint8Array(e);t.__proto__=o.prototype;return t}function o(e,t,r){if("number"==typeof e){if("string"==typeof t){throw new TypeError("The \"string\" argument must be of type string. Received type number")}return i(e)}return n(e,t,r)}if("undefined"!=typeof Symbol&&null!=Symbol.species&&o[Symbol.species]===o){Object.defineProperty(o,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1})}o.poolSize=8192;function n(e,t,r){if("string"==typeof e){return s(e,t)}if(ArrayBuffer.isView(e)){return u(e)}if(null==e){throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+_typeof2(e))}if(N(e,ArrayBuffer)||e&&N(e.buffer,ArrayBuffer)){return d(e,t,r)}if("number"==typeof e){throw new TypeError("The \"value\" argument must not be of type number. Received type number")}var n=e.valueOf&&e.valueOf();if(null!=n&&n!==e){return o.from(n,t,r)}var a=p(e);if(a)return a;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive]){return o.from(e[Symbol.toPrimitive]("string"),t,r)}throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+_typeof2(e))}o.from=function(e,t,r){return n(e,t,r)};o.prototype.__proto__=Uint8Array.prototype;o.__proto__=Uint8Array;function a(e){if("number"!=typeof e){throw new TypeError("\"size\" argument must be of type number")}else if(0>e){throw new RangeError("The value \""+e+"\" is invalid for option \"size\"")}}function l(e,r,o){a(e);if(0>=e){return t(e)}if(r!==void 0){return"string"==typeof o?t(e).fill(r,o):t(e).fill(r)}return t(e)}o.alloc=function(e,t,r){return l(e,t,r)};function i(e){a(e);return t(0>e?0:0|f(e))}o.allocUnsafe=function(e){return i(e)};o.allocUnsafeSlow=function(e){return i(e)};function s(e,r){if("string"!=typeof r||""===r){r="utf8"}if(!o.isEncoding(r)){throw new TypeError("Unknown encoding: "+r)}var n=0|c(e,r),a=t(n),l=a.write(e,r);if(l!==n){a=a.slice(0,l)}return a}function u(e){for(var r=0>e.length?0:0|f(e.length),o=t(r),n=0;nt||e.byteLength=2147483647){throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+2147483647 .toString(16)+" bytes")}return 0|e}o.isBuffer=function(e){return null!=e&&!0===e._isBuffer&&e!==o.prototype};o.compare=function(e,t){if(N(e,Uint8Array))e=o.from(e,e.offset,e.byteLength);if(N(t,Uint8Array))t=o.from(t,t.offset,t.byteLength);if(!o.isBuffer(e)||!o.isBuffer(t)){throw new TypeError("The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array")}if(e===t)return 0;for(var r=e.length,n=t.length,l=0,s=Math.min(r,n);l>>1;case"base64":return F(e).length;default:if(a){return n?-1:T(e).length}t=(""+t).toLowerCase();a=!0;}}}o.byteLength=c;function h(e,t,r){var o=!1;if(t===void 0||0>t){t=0}if(t>this.length){return""}if(r===void 0||r>this.length){r=this.length}if(0>=r){return""}r>>>=0;t>>>=0;if(r<=t){return""}if(!e)e="utf8";while(!0){switch(e){case"hex":return B(this,t,r);case"utf8":case"utf-8":return P(this,t,r);case"ascii":return k(this,t,r);case"latin1":case"binary":return L(this,t,r);case"base64":return S(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,t,r);default:if(o)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase();o=!0;}}}o.prototype._isBuffer=!0;function y(e,t,r){var o=e[t];e[t]=e[r];e[r]=o}o.prototype.swap16=function(){var e=this.length;if(0!=e%2){throw new RangeError("Buffer size must be a multiple of 16-bits")}for(var t=0;tt)e+=" ... ";return""};o.prototype.compare=function(e,t,r,n,a){if(N(e,Uint8Array)){e=o.from(e,e.offset,e.byteLength)}if(!o.isBuffer(e)){throw new TypeError("The \"target\" argument must be one of type Buffer or Uint8Array. Received type "+_typeof2(e))}if(t===void 0){t=0}if(r===void 0){r=e?e.length:0}if(n===void 0){n=0}if(a===void 0){a=this.length}if(0>t||r>e.length||0>n||a>this.length){throw new RangeError("out of range index")}if(n>=a&&t>=r){return 0}if(n>=a){return-1}if(t>=r){return 1}t>>>=0;r>>>=0;n>>>=0;a>>>=0;if(this===e)return 0;for(var l=a-n,s=r-t,u=Math.min(l,s),d=this.slice(n,a),p=e.slice(t,r),f=0;fr){r=-2147483648}r=+r;if(G(r)){r=a?0:e.length-1}if(0>r)r=e.length+r;if(r>=e.length){if(a)return-1;else r=e.length-1}else if(0>r){if(a)r=0;else return-1}if("string"==typeof t){t=o.from(t,n)}if(o.isBuffer(t)){if(0===t.length){return-1}return m(e,t,r,n,a)}else if("number"==typeof t){t=255&t;if("function"==typeof Uint8Array.prototype.indexOf){if(a){return Uint8Array.prototype.indexOf.call(e,t,r)}else{return Uint8Array.prototype.lastIndexOf.call(e,t,r)}}return m(e,[t],r,n,a)}throw new TypeError("val must be string, number or Buffer")}function m(e,t,r,o,n){var l=1,s=e.length,u=t.length;if(o!==void 0){o=(o+"").toLowerCase();if("ucs2"===o||"ucs-2"===o||"utf16le"===o||"utf-16le"===o){if(2>e.length||2>t.length){return-1}l=2;s/=2;u/=2;r/=2}}function a(e,t){if(1==l){return e[t]}else{return e.readUInt16BE(t*l)}}var d;if(n){var p=-1;for(d=r;ds)r=s-u;for(d=r;0<=d;d--){for(var f=!0,c=0;cn){o=n}}var a=t.length;if(o>a/2){o=a/2}for(var l=0,s;l>>0;if(isFinite(r)){r=r>>>0;if(o===void 0)o="utf8"}else{o=r;r=void 0}}else{throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported")}var n=this.length-t;if(r===void 0||r>n)r=n;if(0r||0>t)||t>this.length){throw new RangeError("Attempt to write outside buffer bounds")}if(!o)o="utf8";var a=!1;for(;;){switch(o){case"hex":return _(this,e,t,r);case"utf8":case"utf-8":return b(this,e,t,r);case"ascii":return v(this,e,t,r);case"latin1":case"binary":return w(this,e,t,r);case"base64":return U(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return x(this,e,t,r);default:if(a)throw new TypeError("Unknown encoding: "+o);o=(""+o).toLowerCase();a=!0;}}};o.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function S(e,t,r){if(0===t&&r===e.length){return Y.fromByteArray(e)}else{return Y.fromByteArray(e.slice(t,r))}}function P(e,t,r){r=Math.min(e.length,r);var o=[],n=t;while(na){l=a}break;case 2:u=e[n+1];if(128==(192&u)){f=(31&a)<<6|63&u;if(127f||57343f){l=f}}}}if(null===l){l=65533;s=1}else if(65535>>10);l=56320|1023&l}o.push(l);n+=s}return E(o)}function E(e){var t=e.length;if(t<=4096){return String.fromCharCode.apply(String,e)}var r="",o=0;while(ot)t=0;if(!r||0>r||r>o)r=o;for(var n="",a=t;ae){e+=r;if(0>e)e=0}else if(e>r){e=r}if(0>t){t+=r;if(0>t)t=0}else if(t>r){t=r}if(te)throw new RangeError("offset is not uint");if(e+t>r)throw new RangeError("Trying to access beyond buffer length")}o.prototype.readUIntLE=function(e,t,r){e=e>>>0;t=t>>>0;if(!r)C(e,t,this.length);var o=this[e],n=1,a=0;while(++a>>0;t=t>>>0;if(!r){C(e,t,this.length)}var o=this[e+--t],n=1;while(0>>0;if(!t)C(e,1,this.length);return this[e]};o.prototype.readUInt16LE=function(e,t){e=e>>>0;if(!t)C(e,2,this.length);return this[e]|this[e+1]<<8};o.prototype.readUInt16BE=function(e,t){e=e>>>0;if(!t)C(e,2,this.length);return this[e]<<8|this[e+1]};o.prototype.readUInt32LE=function(e,t){e=e>>>0;if(!t)C(e,4,this.length);return(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]};o.prototype.readUInt32BE=function(e,t){e=e>>>0;if(!t)C(e,4,this.length);return 16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])};o.prototype.readIntLE=function(e,t,r){e=e>>>0;t=t>>>0;if(!r)C(e,t,this.length);var o=this[e],n=1,a=0;while(++a=n)o-=Math.pow(2,8*t);return o};o.prototype.readIntBE=function(e,t,r){e=e>>>0;t=t>>>0;if(!r)C(e,t,this.length);var o=t,n=1,a=this[e+--o];while(0=n)a-=Math.pow(2,8*t);return a};o.prototype.readInt8=function(e,t){e=e>>>0;if(!t)C(e,1,this.length);if(!(128&this[e]))return this[e];return-1*(255-this[e]+1)};o.prototype.readInt16LE=function(e,t){e=e>>>0;if(!t)C(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r};o.prototype.readInt16BE=function(e,t){e=e>>>0;if(!t)C(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r};o.prototype.readInt32LE=function(e,t){e=e>>>0;if(!t)C(e,4,this.length);return this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};o.prototype.readInt32BE=function(e,t){e=e>>>0;if(!t)C(e,4,this.length);return this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};o.prototype.readFloatLE=function(e,t){e=e>>>0;if(!t)C(e,4,this.length);return K.read(this,e,!0,23,4)};o.prototype.readFloatBE=function(e,t){e=e>>>0;if(!t)C(e,4,this.length);return K.read(this,e,!1,23,4)};o.prototype.readDoubleLE=function(e,t){e=e>>>0;if(!t)C(e,8,this.length);return K.read(this,e,!0,52,8)};o.prototype.readDoubleBE=function(e,t){e=e>>>0;if(!t)C(e,8,this.length);return K.read(this,e,!1,52,8)};function R(e,t,r,n,a,l){if(!o.isBuffer(e))throw new TypeError("\"buffer\" argument must be a Buffer instance");if(t>a||te.length)throw new RangeError("Index out of range")}o.prototype.writeUIntLE=function(e,t,r,o){e=+e;t=t>>>0;r=r>>>0;if(!o){var n=Math.pow(2,8*r)-1;R(this,e,t,r,n,0)}var a=1,l=0;this[t]=255&e;while(++l>>0;r=r>>>0;if(!o){var n=Math.pow(2,8*r)-1;R(this,e,t,r,n,0)}var a=r-1,l=1;this[t+a]=255&e;while(0<=--a&&(l*=256)){this[t+a]=255&e/l}return t+r};o.prototype.writeUInt8=function(e,t,r){e=+e;t=t>>>0;if(!r)R(this,e,t,1,255,0);this[t]=255&e;return t+1};o.prototype.writeUInt16LE=function(e,t,r){e=+e;t=t>>>0;if(!r)R(this,e,t,2,65535,0);this[t]=255&e;this[t+1]=e>>>8;return t+2};o.prototype.writeUInt16BE=function(e,t,r){e=+e;t=t>>>0;if(!r)R(this,e,t,2,65535,0);this[t]=e>>>8;this[t+1]=255&e;return t+2};o.prototype.writeUInt32LE=function(e,t,r){e=+e;t=t>>>0;if(!r)R(this,e,t,4,4294967295,0);this[t+3]=e>>>24;this[t+2]=e>>>16;this[t+1]=e>>>8;this[t]=255&e;return t+4};o.prototype.writeUInt32BE=function(e,t,r){e=+e;t=t>>>0;if(!r)R(this,e,t,4,4294967295,0);this[t]=e>>>24;this[t+1]=e>>>16;this[t+2]=e>>>8;this[t+3]=255&e;return t+4};o.prototype.writeIntLE=function(e,t,r,o){e=+e;t=t>>>0;if(!o){var n=Math.pow(2,8*r-1);R(this,e,t,r,n-1,-n)}var a=0,l=1,s=0;this[t]=255&e;while(++ae&&0===s&&0!==this[t+a-1]){s=1}this[t+a]=255&(e/l>>0)-s}return t+r};o.prototype.writeIntBE=function(e,t,r,o){e=+e;t=t>>>0;if(!o){var n=Math.pow(2,8*r-1);R(this,e,t,r,n-1,-n)}var a=r-1,l=1,s=0;this[t+a]=255&e;while(0<=--a&&(l*=256)){if(0>e&&0===s&&0!==this[t+a+1]){s=1}this[t+a]=255&(e/l>>0)-s}return t+r};o.prototype.writeInt8=function(e,t,r){e=+e;t=t>>>0;if(!r)R(this,e,t,1,127,-128);if(0>e)e=255+e+1;this[t]=255&e;return t+1};o.prototype.writeInt16LE=function(e,t,r){e=+e;t=t>>>0;if(!r)R(this,e,t,2,32767,-32768);this[t]=255&e;this[t+1]=e>>>8;return t+2};o.prototype.writeInt16BE=function(e,t,r){e=+e;t=t>>>0;if(!r)R(this,e,t,2,32767,-32768);this[t]=e>>>8;this[t+1]=255&e;return t+2};o.prototype.writeInt32LE=function(e,t,r){e=+e;t=t>>>0;if(!r)R(this,e,t,4,2147483647,-2147483648);this[t]=255&e;this[t+1]=e>>>8;this[t+2]=e>>>16;this[t+3]=e>>>24;return t+4};o.prototype.writeInt32BE=function(e,t,r){e=+e;t=t>>>0;if(!r)R(this,e,t,4,2147483647,-2147483648);if(0>e)e=4294967295+e+1;this[t]=e>>>24;this[t+1]=e>>>16;this[t+2]=e>>>8;this[t+3]=255&e;return t+4};function j(e,t,r,o){if(r+o>e.length)throw new RangeError("Index out of range");if(0>r)throw new RangeError("Index out of range")}function O(e,t,r,o,n){t=+t;r=r>>>0;if(!n){j(e,t,r,4,34028234663852886e22,-34028234663852886e22)}K.write(e,t,r,o,23,4);return r+4}o.prototype.writeFloatLE=function(e,t,r){return O(this,e,t,!0,r)};o.prototype.writeFloatBE=function(e,t,r){return O(this,e,t,!1,r)};function I(e,t,r,o,n){t=+t;r=r>>>0;if(!n){j(e,t,r,8,17976931348623157e292,-17976931348623157e292)}K.write(e,t,r,o,52,8);return r+8}o.prototype.writeDoubleLE=function(e,t,r){return I(this,e,t,!0,r)};o.prototype.writeDoubleBE=function(e,t,r){return I(this,e,t,!1,r)};o.prototype.copy=function(e,t,r,n){if(!o.isBuffer(e))throw new TypeError("argument should be a Buffer");if(!r)r=0;if(!n&&0!==n)n=this.length;if(t>=e.length)t=e.length;if(!t)t=0;if(0t){throw new RangeError("targetStart out of bounds")}if(0>r||r>=this.length)throw new RangeError("Index out of range");if(0>n)throw new RangeError("sourceEnd out of bounds");if(n>this.length)n=this.length;if(e.length-ta||"latin1"===n){e=a}}}else if("number"==typeof e){e=255&e}if(0>t||this.length>>0;r=r===void 0?this.length:r>>>0;if(!e)e=0;var l;if("number"==typeof e){for(l=t;le.length)return"";while(0!=e.length%4){e=e+"="}return e}function z(e){if(16>e)return"0"+e.toString(16);return e.toString(16)}function T(e,t){t=t||1/0;for(var r,o=e.length,n=null,a=[],l=0;lr){if(!n){if(56319r){if(-1<(t-=3))a.push(239,191,189);n=r;continue}r=(n-55296<<10|r-56320)+65536}else if(n){if(-1<(t-=3))a.push(239,191,189)}n=null;if(128>r){if(0>(t-=1))break;a.push(r)}else if(2048>r){if(0>(t-=2))break;a.push(192|r>>6,128|63&r)}else if(65536>r){if(0>(t-=3))break;a.push(224|r>>12,128|63&r>>6,128|63&r)}else if(1114112>r){if(0>(t-=4))break;a.push(240|r>>18,128|63&r>>12,128|63&r>>6,128|63&r)}else{throw new Error("Invalid code point")}}return a}function q(e){for(var t=[],r=0;r(t-=2))break;r=e.charCodeAt(l);o=r>>8;n=r%256;a.push(n);a.push(o)}return a}function F(e){return Y.toByteArray(D(e))}function M(e,t,r,o){for(var n=0;n=t.length||n>=e.length)break;t[n+r]=e[n]}return n}function N(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function G(e){return e!==e}}).call(this)}).call(this,e("buffer").Buffer)},{"base64-js":17,buffer:18,ieee754:19}],19:[function(e,t,r){r.read=function(t,r,o,n,a){var l,u,p=8*a-n-1,f=(1<>1,h=-7,y=o?a-1:0,g=o?-1:1,d=t[r+y];y+=g;l=d&(1<<-h)-1;d>>=-h;h+=p;for(;0>=-h;h+=n;for(;0>1,_=23===a?Math.pow(2,-24)-Math.pow(2,-77):0,b=n?0:l-1,v=n?1:-1,d=0>r||0===r&&0>1/r?1:0;r=Math.abs(r);if(isNaN(r)||r===1/0){p=isNaN(r)?1:0;u=y}else{u=Math.floor(Math.log(r)/Math.LN2);if(1>r*(f=Math.pow(2,-u))){u--;f*=2}if(1<=u+g){r+=_/f}else{r+=_*Math.pow(2,1-g)}if(2<=r*f){u++;f/=2}if(u+g>=y){p=0;u=y}else if(1<=u+g){p=(r*f-1)*Math.pow(2,a);u=u+g}else{p=r*Math.pow(2,g-1)*Math.pow(2,a);u=0}}for(;8<=a;t[o+b]=255&p,b+=v,p/=256,a-=8){}u=u<>18]+l[63&t>>12]+l[63&t>>6]+l[63&t]}return s?a.slice(0,s-3)+"===".substring(s):a},y=t?function(e){return btoa(e)}:r?function(e){return n.from(e,"binary").toString("base64")}:h,g=r?function(e){return n.from(e).toString("base64")}:function(e){for(var t=4096,r=[],o=0,n=e.length;oe.length){var t=e.charCodeAt(0);return 128>t?e:2048>t?d(192|t>>>6)+d(128|63&t):d(224|15&t>>>12)+d(128|63&t>>>6)+d(128|63&t)}else{var t=65536+1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320);return d(240|7&t>>>18)+d(128|63&t>>>12)+d(128|63&t>>>6)+d(128|63&t)}},b=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,v=function(e){return e.replace(b,_)},w=r?function(e){return n.from(e,"utf8").toString("base64")}:a?function(e){return g(a.encode(e))}:function(e){return y(v(e))},U=function(e,t){if(void 0===t){t=!1}return t?f(w(e)):w(e)},x=function(e){return U(e,!0)},S=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,P=function(e){switch(e.length){case 4:var t=(7&e.charCodeAt(0))<<18|(63&e.charCodeAt(1))<<12|(63&e.charCodeAt(2))<<6|63&e.charCodeAt(3),r=t-65536;return d((r>>>10)+55296)+d((1023&r)+56320);case 3:return d((15&e.charCodeAt(0))<<12|(63&e.charCodeAt(1))<<6|63&e.charCodeAt(2));default:return d((31&e.charCodeAt(0))<<6|63&e.charCodeAt(1));}},E=function(e){return e.replace(S,P)},k=function(e){e=e.replace(/\s+/g,"");if(!u.test(e))throw new TypeError("malformed base64.");e+="==".slice(2-(3&e.length));for(var t,r="",o,n,a=0;a>16):64===n?d(255&t>>16,255&t>>8):d(255&t>>16,255&t>>8,255&t)}return r},L=e?function(e){return atob(c(e))}:r?function(e){return n.from(e,"base64").toString("binary")}:k,B=r?function(e){return p(n.from(e,"base64"))}:function(e){return p(L(e).split("").map(function(e){return e.charCodeAt(0)}))},A=function(e){return B(R(e))},C=r?function(e){return n.from(e,"base64").toString("utf8")}:o?function(e){return o.decode(B(e))}:function(e){return E(L(e))},R=function(e){return c(e.replace(/[-_]/g,function(e){return"-"==e?"+":"/"}))},j=function(e){return C(R(e))},O=function(e){return{value:e,enumerable:!1,writable:!0,configurable:!0}},I=function(){var e=function(e,t){return Object.defineProperty(String.prototype,e,O(t))};e("fromBase64",function(){return j(this)});e("toBase64",function(e){return U(this,e)});e("toBase64URI",function(){return U(this,!0)});e("toBase64URL",function(){return U(this,!0)});e("toUint8Array",function(){return A(this)})},D=function(){var e=function(e,t){return Object.defineProperty(Uint8Array.prototype,e,O(t))};e("toBase64",function(e){return m(this,e)});e("toBase64URI",function(){return m(this,!0)});e("toBase64URL",function(){return m(this,!0)})},z={version:"3.7.5",VERSION:"3.7.5",atob:L,atobPolyfill:k,btoa:y,btoaPolyfill:h,fromBase64:j,toBase64:U,encode:U,encodeURI:x,encodeURL:x,utob:v,btou:E,decode:j,isValid:function isValid(e){if("string"!=typeof e)return!1;var t=e.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(t)||!/[^\s0-9a-zA-Z\-_]/.test(t)},fromUint8Array:m,toUint8Array:A,extendString:I,extendUint8Array:D,extendBuiltins:function extendBuiltins(){I();D()}};z.Base64={};Object.keys(z).forEach(function(e){return z.Base64[e]=z[e]});return z})}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer)},{buffer:18}],21:[function(e,t,r){'use strict';var l=Object.prototype.hasOwnProperty,i;function o(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(t){return null}}function n(e){try{return encodeURIComponent(e)}catch(t){return null}}function a(e){var t=/([^=?#&]+)=?([^&]*)/g,r={},n;while(n=t.exec(e)){var a=o(n[1]),l=o(n[2]);if(null===a||null===l||a in r)continue;r[a]=l}return r}r.stringify=function(e,t){t=t||"";var r=[],o,a;if("string"!=typeof t)t="?";for(a in e){if(l.call(e,a)){o=e[a];if(!o&&(null===o||o===i||isNaN(o))){o=""}a=n(a);o=n(o);if(null===a||null===o)continue;r.push(a+"="+o)}}return r.length?t+r.join("&"):""};r.parse=a},{}],22:[function(e,t){'use strict';t.exports=function(e,t){t=t.split(":")[0];e=+e;if(!e)return!1;switch(t){case"http":case"ws":return 80!==e;case"https":case"wss":return 443!==e;case"ftp":return 21!==e;case"gopher":return 70!==e;case"file":return!1;}return 0!==e}},{}],23:[function(e,t){(function(r){(function(){'use strict';var d=e("requires-port"),p=e("querystringify"),f=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,c=/[\n\r\t]/g,h=/^[A-Za-z][A-Za-z0-9+-.]*:\/\//,y=/:\d+$/,g=/^([a-z][a-z0-9.+-]*:)?(\/\/)?([\\/]+)?([\S\s]*)/i,m=/^[a-zA-Z]:/;function o(e){return(e?e:"").toString().replace(f,"")}var _=[["#","hash"],["?","query"],function(e,t){return a(t.protocol)?e.replace(/\\/g,"/"):e},["/","pathname"],["@","auth",1],[NaN,"host",void 0,1,1],[/:(\d*)$/,"port",void 0,1],[NaN,"hostname",void 0,1,1]],b={hash:1,query:1};function n(e){var t;if("undefined"!=typeof window)t=window;else if("undefined"!=typeof r)t=r;else if("undefined"!=typeof self)t=self;else t={};var o=t.location||{};e=e||o;var n={},a=_typeof2(e),l;if("blob:"===e.protocol){n=new s(unescape(e.pathname),{})}else if("string"===a){n=new s(e,{});for(l in b){delete n[l]}}else if("object"===a){for(l in e){if(l in b)continue;n[l]=e[l]}if(n.slashes===void 0){n.slashes=h.test(e.href)}}return n}function a(e){return"file:"===e||"ftp:"===e||"http:"===e||"https:"===e||"ws:"===e||"wss:"===e}function l(e,t){e=o(e);e=e.replace(c,"");t=t||{};var r=g.exec(e),n=r[1]?r[1].toLowerCase():"",l=!!r[2],i=!!r[3],s=0,u;if(l){if(i){u=r[2]+r[3]+r[4];s=r[2].length+r[3].length}else{u=r[2]+r[4];s=r[2].length}}else{if(i){u=r[3]+r[4];s=r[3].length}else{u=r[4]}}if("file:"===n){if(2<=s){u=u.slice(2)}}else if(a(n)){u=r[4]}else if(n){if(l){u=u.slice(2)}}else if(2<=s&&a(t.protocol)){u=r[4]}return{protocol:n,slashes:l||a(n),slashesCount:s,rest:u}}function i(e,t){if(""===e)return t;var r=(t||"/").split("/").slice(0,-1).concat(e.split("/")),o=r.length,n=r[o-1],a=!1,l=0;while(o--){if("."===r[o]){r.splice(o,1)}else if(".."===r[o]){r.splice(o,1);l++}else if(l){if(0===o)a=!0;r.splice(o,1);l--}}if(a)r.unshift("");if("."===n||".."===n)r.push("");return r.join("/")}function s(e,t,r){e=o(e);e=e.replace(c,"");if(!(this instanceof s)){return new s(e,t,r)}var u,f,h,y,g,b,v=_.slice(),w=_typeof2(t),U=this,x=0;if("object"!==w&&"string"!==w){r=t;t=null}if(r&&"function"!=typeof r)r=p.parse;t=n(t);f=l(e||"",t);u=!f.protocol&&!f.slashes;U.slashes=f.slashes||u&&t.slashes;U.protocol=f.protocol||t.protocol||"";e=f.rest;if("file:"===f.protocol&&(2!==f.slashesCount||m.test(e))||!f.slashes&&(f.protocol||2>f.slashesCount||!a(U.protocol))){v[3]=[/(.*)/,"pathname"]}for(;x= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar FileReader = exports[\"default\"] = /*#__PURE__*/function () {\n function FileReader() {\n _classCallCheck(this, FileReader);\n }\n _createClass(FileReader, [{\n key: \"openFile\",\n value: function () {\n var _openFile = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(input, chunkSize) {\n var blob;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n if (!((0, _isReactNative[\"default\"])() && input && typeof input.uri !== 'undefined')) {\n _context.next = 11;\n break;\n }\n _context.prev = 1;\n _context.next = 4;\n return (0, _uriToBlob[\"default\"])(input.uri);\n case 4:\n blob = _context.sent;\n return _context.abrupt(\"return\", new _FileSource[\"default\"](blob));\n case 8:\n _context.prev = 8;\n _context.t0 = _context[\"catch\"](1);\n throw new Error(\"tus: cannot fetch `file.uri` as Blob, make sure the uri is correct and accessible. \".concat(_context.t0));\n case 11:\n if (!(typeof input.slice === 'function' && typeof input.size !== 'undefined')) {\n _context.next = 13;\n break;\n }\n return _context.abrupt(\"return\", Promise.resolve(new _FileSource[\"default\"](input)));\n case 13:\n if (!(typeof input.read === 'function')) {\n _context.next = 18;\n break;\n }\n chunkSize = Number(chunkSize);\n if (Number.isFinite(chunkSize)) {\n _context.next = 17;\n break;\n }\n return _context.abrupt(\"return\", Promise.reject(new Error('cannot create source for stream without a finite value for the `chunkSize` option')));\n case 17:\n return _context.abrupt(\"return\", Promise.resolve(new _StreamSource[\"default\"](input, chunkSize)));\n case 18:\n return _context.abrupt(\"return\", Promise.reject(new Error('source object may only be an instance of File, Blob, or Reader in this environment')));\n case 19:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[1, 8]]);\n }));\n function openFile(_x, _x2) {\n return _openFile.apply(this, arguments);\n }\n return openFile;\n }()\n }]);\n return FileReader;\n}();\n\n},{\"./isReactNative.js\":5,\"./sources/FileSource.js\":6,\"./sources/StreamSource.js\":7,\"./uriToBlob.js\":10}],2:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = fingerprint;\nvar _isReactNative = _interopRequireDefault(require(\"./isReactNative.js\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n// TODO: Differenciate between input types\n\n/**\n * Generate a fingerprint for a file which will be used the store the endpoint\n *\n * @param {File} file\n * @param {Object} options\n * @param {Function} callback\n */\nfunction fingerprint(file, options) {\n if ((0, _isReactNative[\"default\"])()) {\n return Promise.resolve(reactNativeFingerprint(file, options));\n }\n return Promise.resolve(['tus-br', file.name, file.type, file.size, file.lastModified, options.endpoint].join('-'));\n}\nfunction reactNativeFingerprint(file, options) {\n var exifHash = file.exif ? hashCode(JSON.stringify(file.exif)) : 'noexif';\n return ['tus-rn', file.name || 'noname', file.size || 'nosize', exifHash, options.endpoint].join('/');\n}\nfunction hashCode(str) {\n /* eslint-disable no-bitwise */\n // from https://stackoverflow.com/a/8831937/151666\n var hash = 0;\n if (str.length === 0) {\n return hash;\n }\n for (var i = 0; i < str.length; i++) {\n var _char = str.charCodeAt(i);\n hash = (hash << 5) - hash + _char;\n hash &= hash; // Convert to 32bit integer\n }\n return hash;\n}\n\n},{\"./isReactNative.js\":5}],3:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/* eslint-disable max-classes-per-file */\nvar XHRHttpStack = exports[\"default\"] = /*#__PURE__*/function () {\n function XHRHttpStack() {\n _classCallCheck(this, XHRHttpStack);\n }\n _createClass(XHRHttpStack, [{\n key: \"createRequest\",\n value: function createRequest(method, url) {\n return new Request(method, url);\n }\n }, {\n key: \"getName\",\n value: function getName() {\n return 'XHRHttpStack';\n }\n }]);\n return XHRHttpStack;\n}();\nvar Request = /*#__PURE__*/function () {\n function Request(method, url) {\n _classCallCheck(this, Request);\n this._xhr = new XMLHttpRequest();\n this._xhr.open(method, url, true);\n this._method = method;\n this._url = url;\n this._headers = {};\n }\n _createClass(Request, [{\n key: \"getMethod\",\n value: function getMethod() {\n return this._method;\n }\n }, {\n key: \"getURL\",\n value: function getURL() {\n return this._url;\n }\n }, {\n key: \"setHeader\",\n value: function setHeader(header, value) {\n this._xhr.setRequestHeader(header, value);\n this._headers[header] = value;\n }\n }, {\n key: \"getHeader\",\n value: function getHeader(header) {\n return this._headers[header];\n }\n }, {\n key: \"setProgressHandler\",\n value: function setProgressHandler(progressHandler) {\n // Test support for progress events before attaching an event listener\n if (!('upload' in this._xhr)) {\n return;\n }\n this._xhr.upload.onprogress = function (e) {\n if (!e.lengthComputable) {\n return;\n }\n progressHandler(e.loaded);\n };\n }\n }, {\n key: \"send\",\n value: function send() {\n var _this = this;\n var body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n return new Promise(function (resolve, reject) {\n _this._xhr.onload = function () {\n resolve(new Response(_this._xhr));\n };\n _this._xhr.onerror = function (err) {\n reject(err);\n };\n _this._xhr.send(body);\n });\n }\n }, {\n key: \"abort\",\n value: function abort() {\n this._xhr.abort();\n return Promise.resolve();\n }\n }, {\n key: \"getUnderlyingObject\",\n value: function getUnderlyingObject() {\n return this._xhr;\n }\n }]);\n return Request;\n}();\nvar Response = /*#__PURE__*/function () {\n function Response(xhr) {\n _classCallCheck(this, Response);\n this._xhr = xhr;\n }\n _createClass(Response, [{\n key: \"getStatus\",\n value: function getStatus() {\n return this._xhr.status;\n }\n }, {\n key: \"getHeader\",\n value: function getHeader(header) {\n return this._xhr.getResponseHeader(header);\n }\n }, {\n key: \"getBody\",\n value: function getBody() {\n return this._xhr.responseText;\n }\n }, {\n key: \"getUnderlyingObject\",\n value: function getUnderlyingObject() {\n return this._xhr;\n }\n }]);\n return Response;\n}();\n\n},{}],4:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"DefaultHttpStack\", {\n enumerable: true,\n get: function get() {\n return _httpStack[\"default\"];\n }\n});\nObject.defineProperty(exports, \"DetailedError\", {\n enumerable: true,\n get: function get() {\n return _error[\"default\"];\n }\n});\nexports.Upload = void 0;\nObject.defineProperty(exports, \"canStoreURLs\", {\n enumerable: true,\n get: function get() {\n return _urlStorage.canStoreURLs;\n }\n});\nexports.defaultOptions = void 0;\nObject.defineProperty(exports, \"enableDebugLog\", {\n enumerable: true,\n get: function get() {\n return _logger.enableDebugLog;\n }\n});\nexports.isSupported = void 0;\nvar _upload = _interopRequireDefault(require(\"../upload.js\"));\nvar _noopUrlStorage = _interopRequireDefault(require(\"../noopUrlStorage.js\"));\nvar _logger = require(\"../logger.js\");\nvar _error = _interopRequireDefault(require(\"../error.js\"));\nvar _urlStorage = require(\"./urlStorage.js\");\nvar _httpStack = _interopRequireDefault(require(\"./httpStack.js\"));\nvar _fileReader = _interopRequireDefault(require(\"./fileReader.js\"));\nvar _fileSignature = _interopRequireDefault(require(\"./fileSignature.js\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar defaultOptions = exports.defaultOptions = _objectSpread(_objectSpread({}, _upload[\"default\"].defaultOptions), {}, {\n httpStack: new _httpStack[\"default\"](),\n fileReader: new _fileReader[\"default\"](),\n urlStorage: _urlStorage.canStoreURLs ? new _urlStorage.WebStorageUrlStorage() : new _noopUrlStorage[\"default\"](),\n fingerprint: _fileSignature[\"default\"]\n});\nvar Upload = exports.Upload = /*#__PURE__*/function (_BaseUpload) {\n _inherits(Upload, _BaseUpload);\n var _super = _createSuper(Upload);\n function Upload() {\n var file = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Upload);\n options = _objectSpread(_objectSpread({}, defaultOptions), options);\n return _super.call(this, file, options);\n }\n _createClass(Upload, null, [{\n key: \"terminate\",\n value: function terminate(url) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n options = _objectSpread(_objectSpread({}, defaultOptions), options);\n return _upload[\"default\"].terminate(url, options);\n }\n }]);\n return Upload;\n}(_upload[\"default\"]); // Note: We don't reference `window` here because these classes also exist in a Web Worker's context.\nvar isSupported = exports.isSupported = typeof XMLHttpRequest === 'function' && typeof Blob === 'function' && typeof Blob.prototype.slice === 'function';\n\n},{\"../error.js\":12,\"../logger.js\":13,\"../noopUrlStorage.js\":14,\"../upload.js\":15,\"./fileReader.js\":1,\"./fileSignature.js\":2,\"./httpStack.js\":3,\"./urlStorage.js\":11}],5:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar isReactNative = function isReactNative() {\n return typeof navigator !== 'undefined' && typeof navigator.product === 'string' && navigator.product.toLowerCase() === 'reactnative';\n};\nvar _default = exports[\"default\"] = isReactNative;\n\n},{}],6:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _isCordova = _interopRequireDefault(require(\"./isCordova.js\"));\nvar _readAsByteArray = _interopRequireDefault(require(\"./readAsByteArray.js\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar FileSource = exports[\"default\"] = /*#__PURE__*/function () {\n // Make this.size a method\n function FileSource(file) {\n _classCallCheck(this, FileSource);\n this._file = file;\n this.size = file.size;\n }\n _createClass(FileSource, [{\n key: \"slice\",\n value: function slice(start, end) {\n // In Apache Cordova applications, a File must be resolved using\n // FileReader instances, see\n // https://cordova.apache.org/docs/en/8.x/reference/cordova-plugin-file/index.html#read-a-file\n if ((0, _isCordova[\"default\"])()) {\n return (0, _readAsByteArray[\"default\"])(this._file.slice(start, end));\n }\n var value = this._file.slice(start, end);\n var done = end >= this.size;\n return Promise.resolve({\n value: value,\n done: done\n });\n }\n }, {\n key: \"close\",\n value: function close() {\n // Nothing to do here since we don't need to release any resources.\n }\n }]);\n return FileSource;\n}();\n\n},{\"./isCordova.js\":8,\"./readAsByteArray.js\":9}],7:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction len(blobOrArray) {\n if (blobOrArray === undefined) return 0;\n if (blobOrArray.size !== undefined) return blobOrArray.size;\n return blobOrArray.length;\n}\n\n/*\n Typed arrays and blobs don't have a concat method.\n This function helps StreamSource accumulate data to reach chunkSize.\n*/\nfunction concat(a, b) {\n if (a.concat) {\n // Is `a` an Array?\n return a.concat(b);\n }\n if (a instanceof Blob) {\n return new Blob([a, b], {\n type: a.type\n });\n }\n if (a.set) {\n // Is `a` a typed array?\n var c = new a.constructor(a.length + b.length);\n c.set(a);\n c.set(b, a.length);\n return c;\n }\n throw new Error('Unknown data type');\n}\nvar StreamSource = exports[\"default\"] = /*#__PURE__*/function () {\n function StreamSource(reader) {\n _classCallCheck(this, StreamSource);\n this._buffer = undefined;\n this._bufferOffset = 0;\n this._reader = reader;\n this._done = false;\n }\n _createClass(StreamSource, [{\n key: \"slice\",\n value: function slice(start, end) {\n if (start < this._bufferOffset) {\n return Promise.reject(new Error(\"Requested data is before the reader's current offset\"));\n }\n return this._readUntilEnoughDataOrDone(start, end);\n }\n }, {\n key: \"_readUntilEnoughDataOrDone\",\n value: function _readUntilEnoughDataOrDone(start, end) {\n var _this = this;\n var hasEnoughData = end <= this._bufferOffset + len(this._buffer);\n if (this._done || hasEnoughData) {\n var value = this._getDataFromBuffer(start, end);\n var done = value == null ? this._done : false;\n return Promise.resolve({\n value: value,\n done: done\n });\n }\n return this._reader.read().then(function (_ref) {\n var value = _ref.value,\n done = _ref.done;\n if (done) {\n _this._done = true;\n } else if (_this._buffer === undefined) {\n _this._buffer = value;\n } else {\n _this._buffer = concat(_this._buffer, value);\n }\n return _this._readUntilEnoughDataOrDone(start, end);\n });\n }\n }, {\n key: \"_getDataFromBuffer\",\n value: function _getDataFromBuffer(start, end) {\n // Remove data from buffer before `start`.\n // Data might be reread from the buffer if an upload fails, so we can only\n // safely delete data when it comes *before* what is currently being read.\n if (start > this._bufferOffset) {\n this._buffer = this._buffer.slice(start - this._bufferOffset);\n this._bufferOffset = start;\n }\n // If the buffer is empty after removing old data, all data has been read.\n var hasAllDataBeenRead = len(this._buffer) === 0;\n if (this._done && hasAllDataBeenRead) {\n return null;\n }\n // We already removed data before `start`, so we just return the first\n // chunk from the buffer.\n return this._buffer.slice(0, end - start);\n }\n }, {\n key: \"close\",\n value: function close() {\n if (this._reader.cancel) {\n this._reader.cancel();\n }\n }\n }]);\n return StreamSource;\n}();\n\n},{}],8:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar isCordova = function isCordova() {\n return typeof window !== 'undefined' && (typeof window.PhoneGap !== 'undefined' || typeof window.Cordova !== 'undefined' || typeof window.cordova !== 'undefined');\n};\nvar _default = exports[\"default\"] = isCordova;\n\n},{}],9:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = readAsByteArray;\n/**\n * readAsByteArray converts a File object to a Uint8Array.\n * This function is only used on the Apache Cordova platform.\n * See https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/index.html#read-a-file\n */\nfunction readAsByteArray(chunk) {\n return new Promise(function (resolve, reject) {\n var reader = new FileReader();\n reader.onload = function () {\n var value = new Uint8Array(reader.result);\n resolve({\n value: value\n });\n };\n reader.onerror = function (err) {\n reject(err);\n };\n reader.readAsArrayBuffer(chunk);\n });\n}\n\n},{}],10:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = uriToBlob;\n/**\n * uriToBlob resolves a URI to a Blob object. This is used for\n * React Native to retrieve a file (identified by a file://\n * URI) as a blob.\n */\nfunction uriToBlob(uri) {\n return new Promise(function (resolve, reject) {\n var xhr = new XMLHttpRequest();\n xhr.responseType = 'blob';\n xhr.onload = function () {\n var blob = xhr.response;\n resolve(blob);\n };\n xhr.onerror = function (err) {\n reject(err);\n };\n xhr.open('GET', uri);\n xhr.send();\n });\n}\n\n},{}],11:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canStoreURLs = exports.WebStorageUrlStorage = void 0;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar hasStorage = false;\ntry {\n // Note: localStorage does not exist in the Web Worker's context, so we must use window here.\n hasStorage = 'localStorage' in window;\n\n // Attempt to store and read entries from the local storage to detect Private\n // Mode on Safari on iOS (see #49)\n // If the key was not used before, we remove it from local storage again to\n // not cause confusion where the entry came from.\n var key = 'tusSupport';\n var originalValue = localStorage.getItem(key);\n localStorage.setItem(key, originalValue);\n if (originalValue === null) localStorage.removeItem(key);\n} catch (e) {\n // If we try to access localStorage inside a sandboxed iframe, a SecurityError\n // is thrown. When in private mode on iOS Safari, a QuotaExceededError is\n // thrown (see #49)\n if (e.code === e.SECURITY_ERR || e.code === e.QUOTA_EXCEEDED_ERR) {\n hasStorage = false;\n } else {\n throw e;\n }\n}\nvar canStoreURLs = exports.canStoreURLs = hasStorage;\nvar WebStorageUrlStorage = exports.WebStorageUrlStorage = /*#__PURE__*/function () {\n function WebStorageUrlStorage() {\n _classCallCheck(this, WebStorageUrlStorage);\n }\n _createClass(WebStorageUrlStorage, [{\n key: \"findAllUploads\",\n value: function findAllUploads() {\n var results = this._findEntries('tus::');\n return Promise.resolve(results);\n }\n }, {\n key: \"findUploadsByFingerprint\",\n value: function findUploadsByFingerprint(fingerprint) {\n var results = this._findEntries(\"tus::\".concat(fingerprint, \"::\"));\n return Promise.resolve(results);\n }\n }, {\n key: \"removeUpload\",\n value: function removeUpload(urlStorageKey) {\n localStorage.removeItem(urlStorageKey);\n return Promise.resolve();\n }\n }, {\n key: \"addUpload\",\n value: function addUpload(fingerprint, upload) {\n var id = Math.round(Math.random() * 1e12);\n var key = \"tus::\".concat(fingerprint, \"::\").concat(id);\n localStorage.setItem(key, JSON.stringify(upload));\n return Promise.resolve(key);\n }\n }, {\n key: \"_findEntries\",\n value: function _findEntries(prefix) {\n var results = [];\n for (var i = 0; i < localStorage.length; i++) {\n var _key = localStorage.key(i);\n if (_key.indexOf(prefix) !== 0) continue;\n try {\n var upload = JSON.parse(localStorage.getItem(_key));\n upload.urlStorageKey = _key;\n results.push(upload);\n } catch (e) {\n // The JSON parse error is intentionally ignored here, so a malformed\n // entry in the storage cannot prevent an upload.\n }\n }\n return results;\n }\n }]);\n return WebStorageUrlStorage;\n}();\n\n},{}],12:[function(require,module,exports){\n\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _isNativeFunction(fn) { try { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; } catch (e) { return typeof fn === \"function\"; } }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nvar DetailedError = /*#__PURE__*/function (_Error) {\n _inherits(DetailedError, _Error);\n var _super = _createSuper(DetailedError);\n function DetailedError(message) {\n var _this;\n var causingErr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var req = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var res = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n _classCallCheck(this, DetailedError);\n _this = _super.call(this, message);\n _this.originalRequest = req;\n _this.originalResponse = res;\n _this.causingError = causingErr;\n if (causingErr != null) {\n message += \", caused by \".concat(causingErr.toString());\n }\n if (req != null) {\n var requestId = req.getHeader('X-Request-ID') || 'n/a';\n var method = req.getMethod();\n var url = req.getURL();\n var status = res ? res.getStatus() : 'n/a';\n var body = res ? res.getBody() || '' : 'n/a';\n message += \", originated from request (method: \".concat(method, \", url: \").concat(url, \", response code: \").concat(status, \", response text: \").concat(body, \", request id: \").concat(requestId, \")\");\n }\n _this.message = message;\n return _this;\n }\n return _createClass(DetailedError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\nvar _default = exports[\"default\"] = DetailedError;\n\n},{}],13:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.enableDebugLog = enableDebugLog;\nexports.log = log;\n/* eslint no-console: \"off\" */\n\nvar isEnabled = false;\nfunction enableDebugLog() {\n isEnabled = true;\n}\nfunction log(msg) {\n if (!isEnabled) return;\n console.log(msg);\n}\n\n},{}],14:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/* eslint no-unused-vars: \"off\" */\nvar NoopUrlStorage = exports[\"default\"] = /*#__PURE__*/function () {\n function NoopUrlStorage() {\n _classCallCheck(this, NoopUrlStorage);\n }\n _createClass(NoopUrlStorage, [{\n key: \"listAllUploads\",\n value: function listAllUploads() {\n return Promise.resolve([]);\n }\n }, {\n key: \"findUploadsByFingerprint\",\n value: function findUploadsByFingerprint(fingerprint) {\n return Promise.resolve([]);\n }\n }, {\n key: \"removeUpload\",\n value: function removeUpload(urlStorageKey) {\n return Promise.resolve();\n }\n }, {\n key: \"addUpload\",\n value: function addUpload(fingerprint, upload) {\n return Promise.resolve(null);\n }\n }]);\n return NoopUrlStorage;\n}();\n\n},{}],15:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _jsBase = require(\"js-base64\");\nvar _urlParse = _interopRequireDefault(require(\"url-parse\"));\nvar _error = _interopRequireDefault(require(\"./error.js\"));\nvar _logger = require(\"./logger.js\");\nvar _uuid = _interopRequireDefault(require(\"./uuid.js\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\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); }\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; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar defaultOptions = {\n endpoint: null,\n uploadUrl: null,\n metadata: {},\n fingerprint: null,\n uploadSize: null,\n onProgress: null,\n onChunkComplete: null,\n onSuccess: null,\n onError: null,\n onUploadUrlAvailable: null,\n overridePatchMethod: false,\n headers: {},\n addRequestId: false,\n onBeforeRequest: null,\n onAfterResponse: null,\n onShouldRetry: defaultOnShouldRetry,\n chunkSize: Infinity,\n retryDelays: [0, 1000, 3000, 5000],\n parallelUploads: 1,\n parallelUploadBoundaries: null,\n storeFingerprintForResuming: true,\n removeFingerprintOnSuccess: false,\n uploadLengthDeferred: false,\n uploadDataDuringCreation: false,\n urlStorage: null,\n fileReader: null,\n httpStack: null\n};\nvar BaseUpload = /*#__PURE__*/function () {\n function BaseUpload(file, options) {\n _classCallCheck(this, BaseUpload);\n // Warn about removed options from previous versions\n if ('resume' in options) {\n // eslint-disable-next-line no-console\n console.log('tus: The `resume` option has been removed in tus-js-client v2. Please use the URL storage API instead.');\n }\n\n // The default options will already be added from the wrapper classes.\n this.options = options;\n\n // Cast chunkSize to integer\n this.options.chunkSize = Number(this.options.chunkSize);\n\n // The storage module used to store URLs\n this._urlStorage = this.options.urlStorage;\n\n // The underlying File/Blob object\n this.file = file;\n\n // The URL against which the file will be uploaded\n this.url = null;\n\n // The underlying request object for the current PATCH request\n this._req = null;\n\n // The fingerpinrt for the current file (set after start())\n this._fingerprint = null;\n\n // The key that the URL storage returned when saving an URL with a fingerprint,\n this._urlStorageKey = null;\n\n // The offset used in the current PATCH request\n this._offset = null;\n\n // True if the current PATCH request has been aborted\n this._aborted = false;\n\n // The file's size in bytes\n this._size = null;\n\n // The Source object which will wrap around the given file and provides us\n // with a unified interface for getting its size and slice chunks from its\n // content allowing us to easily handle Files, Blobs, Buffers and Streams.\n this._source = null;\n\n // The current count of attempts which have been made. Zero indicates none.\n this._retryAttempt = 0;\n\n // The timeout's ID which is used to delay the next retry\n this._retryTimeout = null;\n\n // The offset of the remote upload before the latest attempt was started.\n this._offsetBeforeRetry = 0;\n\n // An array of BaseUpload instances which are used for uploading the different\n // parts, if the parallelUploads option is used.\n this._parallelUploads = null;\n\n // An array of upload URLs which are used for uploading the different\n // parts, if the parallelUploads option is used.\n this._parallelUploadUrls = null;\n }\n\n /**\n * Use the Termination extension to delete an upload from the server by sending a DELETE\n * request to the specified upload URL. This is only possible if the server supports the\n * Termination extension. If the `options.retryDelays` property is set, the method will\n * also retry if an error ocurrs.\n *\n * @param {String} url The upload's URL which will be terminated.\n * @param {object} options Optional options for influencing HTTP requests.\n * @return {Promise} The Promise will be resolved/rejected when the requests finish.\n */\n _createClass(BaseUpload, [{\n key: \"findPreviousUploads\",\n value: function findPreviousUploads() {\n var _this = this;\n return this.options.fingerprint(this.file, this.options).then(function (fingerprint) {\n return _this._urlStorage.findUploadsByFingerprint(fingerprint);\n });\n }\n }, {\n key: \"resumeFromPreviousUpload\",\n value: function resumeFromPreviousUpload(previousUpload) {\n this.url = previousUpload.uploadUrl || null;\n this._parallelUploadUrls = previousUpload.parallelUploadUrls || null;\n this._urlStorageKey = previousUpload.urlStorageKey;\n }\n }, {\n key: \"start\",\n value: function start() {\n var _this2 = this;\n var file = this.file;\n if (!file) {\n this._emitError(new Error('tus: no file or stream to upload provided'));\n return;\n }\n if (!this.options.endpoint && !this.options.uploadUrl && !this.url) {\n this._emitError(new Error('tus: neither an endpoint or an upload URL is provided'));\n return;\n }\n var retryDelays = this.options.retryDelays;\n if (retryDelays != null && Object.prototype.toString.call(retryDelays) !== '[object Array]') {\n this._emitError(new Error('tus: the `retryDelays` option must either be an array or null'));\n return;\n }\n if (this.options.parallelUploads > 1) {\n // Test which options are incompatible with parallel uploads.\n for (var _i = 0, _arr = ['uploadUrl', 'uploadSize', 'uploadLengthDeferred']; _i < _arr.length; _i++) {\n var optionName = _arr[_i];\n if (this.options[optionName]) {\n this._emitError(new Error(\"tus: cannot use the \".concat(optionName, \" option when parallelUploads is enabled\")));\n return;\n }\n }\n }\n if (this.options.parallelUploadBoundaries) {\n if (this.options.parallelUploads <= 1) {\n this._emitError(new Error('tus: cannot use the `parallelUploadBoundaries` option when `parallelUploads` is disabled'));\n return;\n }\n if (this.options.parallelUploads !== this.options.parallelUploadBoundaries.length) {\n this._emitError(new Error('tus: the `parallelUploadBoundaries` must have the same length as the value of `parallelUploads`'));\n return;\n }\n }\n this.options.fingerprint(file, this.options).then(function (fingerprint) {\n if (fingerprint == null) {\n (0, _logger.log)('No fingerprint was calculated meaning that the upload cannot be stored in the URL storage.');\n } else {\n (0, _logger.log)(\"Calculated fingerprint: \".concat(fingerprint));\n }\n _this2._fingerprint = fingerprint;\n if (_this2._source) {\n return _this2._source;\n }\n return _this2.options.fileReader.openFile(file, _this2.options.chunkSize);\n }).then(function (source) {\n _this2._source = source;\n\n // First, we look at the uploadLengthDeferred option.\n // Next, we check if the caller has supplied a manual upload size.\n // Finally, we try to use the calculated size from the source object.\n if (_this2.options.uploadLengthDeferred) {\n _this2._size = null;\n } else if (_this2.options.uploadSize != null) {\n _this2._size = Number(_this2.options.uploadSize);\n if (Number.isNaN(_this2._size)) {\n _this2._emitError(new Error('tus: cannot convert `uploadSize` option into a number'));\n return;\n }\n } else {\n _this2._size = _this2._source.size;\n if (_this2._size == null) {\n _this2._emitError(new Error(\"tus: cannot automatically derive upload's size from input. Specify it manually using the `uploadSize` option or use the `uploadLengthDeferred` option\"));\n return;\n }\n }\n\n // If the upload was configured to use multiple requests or if we resume from\n // an upload which used multiple requests, we start a parallel upload.\n if (_this2.options.parallelUploads > 1 || _this2._parallelUploadUrls != null) {\n _this2._startParallelUpload();\n } else {\n _this2._startSingleUpload();\n }\n })[\"catch\"](function (err) {\n _this2._emitError(err);\n });\n }\n\n /**\n * Initiate the uploading procedure for a parallelized upload, where one file is split into\n * multiple request which are run in parallel.\n *\n * @api private\n */\n }, {\n key: \"_startParallelUpload\",\n value: function _startParallelUpload() {\n var _this$options$paralle,\n _this3 = this;\n var totalSize = this._size;\n var totalProgress = 0;\n this._parallelUploads = [];\n var partCount = this._parallelUploadUrls != null ? this._parallelUploadUrls.length : this.options.parallelUploads;\n\n // The input file will be split into multiple slices which are uploaded in separate\n // requests. Here we get the start and end position for the slices.\n var parts = (_this$options$paralle = this.options.parallelUploadBoundaries) !== null && _this$options$paralle !== void 0 ? _this$options$paralle : splitSizeIntoParts(this._source.size, partCount);\n\n // Attach URLs from previous uploads, if available.\n if (this._parallelUploadUrls) {\n parts.forEach(function (part, index) {\n part.uploadUrl = _this3._parallelUploadUrls[index] || null;\n });\n }\n\n // Create an empty list for storing the upload URLs\n this._parallelUploadUrls = new Array(parts.length);\n\n // Generate a promise for each slice that will be resolve if the respective\n // upload is completed.\n var uploads = parts.map(function (part, index) {\n var lastPartProgress = 0;\n return _this3._source.slice(part.start, part.end).then(function (_ref) {\n var value = _ref.value;\n return new Promise(function (resolve, reject) {\n // Merge with the user supplied options but overwrite some values.\n var options = _objectSpread(_objectSpread({}, _this3.options), {}, {\n // If available, the partial upload should be resumed from a previous URL.\n uploadUrl: part.uploadUrl || null,\n // We take manually care of resuming for partial uploads, so they should\n // not be stored in the URL storage.\n storeFingerprintForResuming: false,\n removeFingerprintOnSuccess: false,\n // Reset the parallelUploads option to not cause recursion.\n parallelUploads: 1,\n // Reset this option as we are not doing a parallel upload.\n parallelUploadBoundaries: null,\n metadata: {},\n // Add the header to indicate the this is a partial upload.\n headers: _objectSpread(_objectSpread({}, _this3.options.headers), {}, {\n 'Upload-Concat': 'partial'\n }),\n // Reject or resolve the promise if the upload errors or completes.\n onSuccess: resolve,\n onError: reject,\n // Based in the progress for this partial upload, calculate the progress\n // for the entire final upload.\n onProgress: function onProgress(newPartProgress) {\n totalProgress = totalProgress - lastPartProgress + newPartProgress;\n lastPartProgress = newPartProgress;\n _this3._emitProgress(totalProgress, totalSize);\n },\n // Wait until every partial upload has an upload URL, so we can add\n // them to the URL storage.\n onUploadUrlAvailable: function onUploadUrlAvailable() {\n _this3._parallelUploadUrls[index] = upload.url;\n // Test if all uploads have received an URL\n if (_this3._parallelUploadUrls.filter(function (u) {\n return Boolean(u);\n }).length === parts.length) {\n _this3._saveUploadInUrlStorage();\n }\n }\n });\n var upload = new BaseUpload(value, options);\n upload.start();\n\n // Store the upload in an array, so we can later abort them if necessary.\n _this3._parallelUploads.push(upload);\n });\n });\n });\n var req;\n // Wait until all partial uploads are finished and we can send the POST request for\n // creating the final upload.\n Promise.all(uploads).then(function () {\n req = _this3._openRequest('POST', _this3.options.endpoint);\n req.setHeader('Upload-Concat', \"final;\".concat(_this3._parallelUploadUrls.join(' ')));\n\n // Add metadata if values have been added\n var metadata = encodeMetadata(_this3.options.metadata);\n if (metadata !== '') {\n req.setHeader('Upload-Metadata', metadata);\n }\n return _this3._sendRequest(req, null);\n }).then(function (res) {\n if (!inStatusCategory(res.getStatus(), 200)) {\n _this3._emitHttpError(req, res, 'tus: unexpected response while creating upload');\n return;\n }\n var location = res.getHeader('Location');\n if (location == null) {\n _this3._emitHttpError(req, res, 'tus: invalid or missing Location header');\n return;\n }\n _this3.url = resolveUrl(_this3.options.endpoint, location);\n (0, _logger.log)(\"Created upload at \".concat(_this3.url));\n _this3._emitSuccess();\n })[\"catch\"](function (err) {\n _this3._emitError(err);\n });\n }\n\n /**\n * Initiate the uploading procedure for a non-parallel upload. Here the entire file is\n * uploaded in a sequential matter.\n *\n * @api private\n */\n }, {\n key: \"_startSingleUpload\",\n value: function _startSingleUpload() {\n // Reset the aborted flag when the upload is started or else the\n // _performUpload will stop before sending a request if the upload has been\n // aborted previously.\n this._aborted = false;\n\n // The upload had been started previously and we should reuse this URL.\n if (this.url != null) {\n (0, _logger.log)(\"Resuming upload from previous URL: \".concat(this.url));\n this._resumeUpload();\n return;\n }\n\n // A URL has manually been specified, so we try to resume\n if (this.options.uploadUrl != null) {\n (0, _logger.log)(\"Resuming upload from provided URL: \".concat(this.options.uploadUrl));\n this.url = this.options.uploadUrl;\n this._resumeUpload();\n return;\n }\n\n // An upload has not started for the file yet, so we start a new one\n (0, _logger.log)('Creating a new upload');\n this._createUpload();\n }\n\n /**\n * Abort any running request and stop the current upload. After abort is called, no event\n * handler will be invoked anymore. You can use the `start` method to resume the upload\n * again.\n * If `shouldTerminate` is true, the `terminate` function will be called to remove the\n * current upload from the server.\n *\n * @param {boolean} shouldTerminate True if the upload should be deleted from the server.\n * @return {Promise} The Promise will be resolved/rejected when the requests finish.\n */\n }, {\n key: \"abort\",\n value: function abort(shouldTerminate) {\n var _this4 = this;\n // Stop any parallel partial uploads, that have been started in _startParallelUploads.\n if (this._parallelUploads != null) {\n this._parallelUploads.forEach(function (upload) {\n upload.abort(shouldTerminate);\n });\n }\n\n // Stop any current running request.\n if (this._req !== null) {\n this._req.abort();\n // Note: We do not close the file source here, so the user can resume in the future.\n }\n this._aborted = true;\n\n // Stop any timeout used for initiating a retry.\n if (this._retryTimeout != null) {\n clearTimeout(this._retryTimeout);\n this._retryTimeout = null;\n }\n if (!shouldTerminate || this.url == null) {\n return Promise.resolve();\n }\n return BaseUpload.terminate(this.url, this.options)\n // Remove entry from the URL storage since the upload URL is no longer valid.\n .then(function () {\n return _this4._removeFromUrlStorage();\n });\n }\n }, {\n key: \"_emitHttpError\",\n value: function _emitHttpError(req, res, message, causingErr) {\n this._emitError(new _error[\"default\"](message, causingErr, req, res));\n }\n }, {\n key: \"_emitError\",\n value: function _emitError(err) {\n var _this5 = this;\n // Do not emit errors, e.g. from aborted HTTP requests, if the upload has been stopped.\n if (this._aborted) return;\n\n // Check if we should retry, when enabled, before sending the error to the user.\n if (this.options.retryDelays != null) {\n // We will reset the attempt counter if\n // - we were already able to connect to the server (offset != null) and\n // - we were able to upload a small chunk of data to the server\n var shouldResetDelays = this._offset != null && this._offset > this._offsetBeforeRetry;\n if (shouldResetDelays) {\n this._retryAttempt = 0;\n }\n if (shouldRetry(err, this._retryAttempt, this.options)) {\n var delay = this.options.retryDelays[this._retryAttempt++];\n this._offsetBeforeRetry = this._offset;\n this._retryTimeout = setTimeout(function () {\n _this5.start();\n }, delay);\n return;\n }\n }\n if (typeof this.options.onError === 'function') {\n this.options.onError(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Publishes notification if the upload has been successfully completed.\n *\n * @api private\n */\n }, {\n key: \"_emitSuccess\",\n value: function _emitSuccess() {\n if (this.options.removeFingerprintOnSuccess) {\n // Remove stored fingerprint and corresponding endpoint. This causes\n // new uploads of the same file to be treated as a different file.\n this._removeFromUrlStorage();\n }\n if (typeof this.options.onSuccess === 'function') {\n this.options.onSuccess();\n }\n }\n\n /**\n * Publishes notification when data has been sent to the server. This\n * data may not have been accepted by the server yet.\n *\n * @param {number} bytesSent Number of bytes sent to the server.\n * @param {number} bytesTotal Total number of bytes to be sent to the server.\n * @api private\n */\n }, {\n key: \"_emitProgress\",\n value: function _emitProgress(bytesSent, bytesTotal) {\n if (typeof this.options.onProgress === 'function') {\n this.options.onProgress(bytesSent, bytesTotal);\n }\n }\n\n /**\n * Publishes notification when a chunk of data has been sent to the server\n * and accepted by the server.\n * @param {number} chunkSize Size of the chunk that was accepted by the server.\n * @param {number} bytesAccepted Total number of bytes that have been\n * accepted by the server.\n * @param {number} bytesTotal Total number of bytes to be sent to the server.\n * @api private\n */\n }, {\n key: \"_emitChunkComplete\",\n value: function _emitChunkComplete(chunkSize, bytesAccepted, bytesTotal) {\n if (typeof this.options.onChunkComplete === 'function') {\n this.options.onChunkComplete(chunkSize, bytesAccepted, bytesTotal);\n }\n }\n\n /**\n * Create a new upload using the creation extension by sending a POST\n * request to the endpoint. After successful creation the file will be\n * uploaded\n *\n * @api private\n */\n }, {\n key: \"_createUpload\",\n value: function _createUpload() {\n var _this6 = this;\n if (!this.options.endpoint) {\n this._emitError(new Error('tus: unable to create upload because no endpoint is provided'));\n return;\n }\n var req = this._openRequest('POST', this.options.endpoint);\n if (this.options.uploadLengthDeferred) {\n req.setHeader('Upload-Defer-Length', 1);\n } else {\n req.setHeader('Upload-Length', this._size);\n }\n\n // Add metadata if values have been added\n var metadata = encodeMetadata(this.options.metadata);\n if (metadata !== '') {\n req.setHeader('Upload-Metadata', metadata);\n }\n var promise;\n if (this.options.uploadDataDuringCreation && !this.options.uploadLengthDeferred) {\n this._offset = 0;\n promise = this._addChunkToRequest(req);\n } else {\n promise = this._sendRequest(req, null);\n }\n promise.then(function (res) {\n if (!inStatusCategory(res.getStatus(), 200)) {\n _this6._emitHttpError(req, res, 'tus: unexpected response while creating upload');\n return;\n }\n var location = res.getHeader('Location');\n if (location == null) {\n _this6._emitHttpError(req, res, 'tus: invalid or missing Location header');\n return;\n }\n _this6.url = resolveUrl(_this6.options.endpoint, location);\n (0, _logger.log)(\"Created upload at \".concat(_this6.url));\n if (typeof _this6.options.onUploadUrlAvailable === 'function') {\n _this6.options.onUploadUrlAvailable();\n }\n if (_this6._size === 0) {\n // Nothing to upload and file was successfully created\n _this6._emitSuccess();\n _this6._source.close();\n return;\n }\n _this6._saveUploadInUrlStorage().then(function () {\n if (_this6.options.uploadDataDuringCreation) {\n _this6._handleUploadResponse(req, res);\n } else {\n _this6._offset = 0;\n _this6._performUpload();\n }\n });\n })[\"catch\"](function (err) {\n _this6._emitHttpError(req, null, 'tus: failed to create upload', err);\n });\n }\n\n /*\n * Try to resume an existing upload. First a HEAD request will be sent\n * to retrieve the offset. If the request fails a new upload will be\n * created. In the case of a successful response the file will be uploaded.\n *\n * @api private\n */\n }, {\n key: \"_resumeUpload\",\n value: function _resumeUpload() {\n var _this7 = this;\n var req = this._openRequest('HEAD', this.url);\n var promise = this._sendRequest(req, null);\n promise.then(function (res) {\n var status = res.getStatus();\n if (!inStatusCategory(status, 200)) {\n // If the upload is locked (indicated by the 423 Locked status code), we\n // emit an error instead of directly starting a new upload. This way the\n // retry logic can catch the error and will retry the upload. An upload\n // is usually locked for a short period of time and will be available\n // afterwards.\n if (status === 423) {\n _this7._emitHttpError(req, res, 'tus: upload is currently locked; retry later');\n return;\n }\n if (inStatusCategory(status, 400)) {\n // Remove stored fingerprint and corresponding endpoint,\n // on client errors since the file can not be found\n _this7._removeFromUrlStorage();\n }\n if (!_this7.options.endpoint) {\n // Don't attempt to create a new upload if no endpoint is provided.\n _this7._emitHttpError(req, res, 'tus: unable to resume upload (new upload cannot be created without an endpoint)');\n return;\n }\n\n // Try to create a new upload\n _this7.url = null;\n _this7._createUpload();\n return;\n }\n var offset = parseInt(res.getHeader('Upload-Offset'), 10);\n if (Number.isNaN(offset)) {\n _this7._emitHttpError(req, res, 'tus: invalid or missing offset value');\n return;\n }\n var length = parseInt(res.getHeader('Upload-Length'), 10);\n if (Number.isNaN(length) && !_this7.options.uploadLengthDeferred) {\n _this7._emitHttpError(req, res, 'tus: invalid or missing length value');\n return;\n }\n if (typeof _this7.options.onUploadUrlAvailable === 'function') {\n _this7.options.onUploadUrlAvailable();\n }\n _this7._saveUploadInUrlStorage().then(function () {\n // Upload has already been completed and we do not need to send additional\n // data to the server\n if (offset === length) {\n _this7._emitProgress(length, length);\n _this7._emitSuccess();\n return;\n }\n _this7._offset = offset;\n _this7._performUpload();\n });\n })[\"catch\"](function (err) {\n _this7._emitHttpError(req, null, 'tus: failed to resume upload', err);\n });\n }\n\n /**\n * Start uploading the file using PATCH requests. The file will be divided\n * into chunks as specified in the chunkSize option. During the upload\n * the onProgress event handler may be invoked multiple times.\n *\n * @api private\n */\n }, {\n key: \"_performUpload\",\n value: function _performUpload() {\n var _this8 = this;\n // If the upload has been aborted, we will not send the next PATCH request.\n // This is important if the abort method was called during a callback, such\n // as onChunkComplete or onProgress.\n if (this._aborted) {\n return;\n }\n var req;\n\n // Some browser and servers may not support the PATCH method. For those\n // cases, you can tell tus-js-client to use a POST request with the\n // X-HTTP-Method-Override header for simulating a PATCH request.\n if (this.options.overridePatchMethod) {\n req = this._openRequest('POST', this.url);\n req.setHeader('X-HTTP-Method-Override', 'PATCH');\n } else {\n req = this._openRequest('PATCH', this.url);\n }\n req.setHeader('Upload-Offset', this._offset);\n var promise = this._addChunkToRequest(req);\n promise.then(function (res) {\n if (!inStatusCategory(res.getStatus(), 200)) {\n _this8._emitHttpError(req, res, 'tus: unexpected response while uploading chunk');\n return;\n }\n _this8._handleUploadResponse(req, res);\n })[\"catch\"](function (err) {\n // Don't emit an error if the upload was aborted manually\n if (_this8._aborted) {\n return;\n }\n _this8._emitHttpError(req, null, \"tus: failed to upload chunk at offset \".concat(_this8._offset), err);\n });\n }\n\n /**\n * _addChunktoRequest reads a chunk from the source and sends it using the\n * supplied request object. It will not handle the response.\n *\n * @api private\n */\n }, {\n key: \"_addChunkToRequest\",\n value: function _addChunkToRequest(req) {\n var _this9 = this;\n var start = this._offset;\n var end = this._offset + this.options.chunkSize;\n req.setProgressHandler(function (bytesSent) {\n _this9._emitProgress(start + bytesSent, _this9._size);\n });\n req.setHeader('Content-Type', 'application/offset+octet-stream');\n\n // The specified chunkSize may be Infinity or the calcluated end position\n // may exceed the file's size. In both cases, we limit the end position to\n // the input's total size for simpler calculations and correctness.\n if ((end === Infinity || end > this._size) && !this.options.uploadLengthDeferred) {\n end = this._size;\n }\n return this._source.slice(start, end).then(function (_ref2) {\n var value = _ref2.value,\n done = _ref2.done;\n var valueSize = value && value.size ? value.size : 0;\n\n // If the upload length is deferred, the upload size was not specified during\n // upload creation. So, if the file reader is done reading, we know the total\n // upload size and can tell the tus server.\n if (_this9.options.uploadLengthDeferred && done) {\n _this9._size = _this9._offset + valueSize;\n req.setHeader('Upload-Length', _this9._size);\n }\n\n // The specified uploadSize might not match the actual amount of data that a source\n // provides. In these cases, we cannot successfully complete the upload, so we\n // rather error out and let the user know. If not, tus-js-client will be stuck\n // in a loop of repeating empty PATCH requests.\n // See https://community.transloadit.com/t/how-to-abort-hanging-companion-uploads/16488/13\n var newSize = _this9._offset + valueSize;\n if (!_this9.options.uploadLengthDeferred && done && newSize !== _this9._size) {\n return Promise.reject(new Error(\"upload was configured with a size of \".concat(_this9._size, \" bytes, but the source is done after \").concat(newSize, \" bytes\")));\n }\n if (value === null) {\n return _this9._sendRequest(req);\n }\n _this9._emitProgress(_this9._offset, _this9._size);\n return _this9._sendRequest(req, value);\n });\n }\n\n /**\n * _handleUploadResponse is used by requests that haven been sent using _addChunkToRequest\n * and already have received a response.\n *\n * @api private\n */\n }, {\n key: \"_handleUploadResponse\",\n value: function _handleUploadResponse(req, res) {\n var offset = parseInt(res.getHeader('Upload-Offset'), 10);\n if (Number.isNaN(offset)) {\n this._emitHttpError(req, res, 'tus: invalid or missing offset value');\n return;\n }\n this._emitProgress(offset, this._size);\n this._emitChunkComplete(offset - this._offset, offset, this._size);\n this._offset = offset;\n if (offset === this._size) {\n // Yay, finally done :)\n this._emitSuccess();\n this._source.close();\n return;\n }\n this._performUpload();\n }\n\n /**\n * Create a new HTTP request object with the given method and URL.\n *\n * @api private\n */\n }, {\n key: \"_openRequest\",\n value: function _openRequest(method, url) {\n var req = openRequest(method, url, this.options);\n this._req = req;\n return req;\n }\n\n /**\n * Remove the entry in the URL storage, if it has been saved before.\n *\n * @api private\n */\n }, {\n key: \"_removeFromUrlStorage\",\n value: function _removeFromUrlStorage() {\n var _this10 = this;\n if (!this._urlStorageKey) return;\n this._urlStorage.removeUpload(this._urlStorageKey)[\"catch\"](function (err) {\n _this10._emitError(err);\n });\n this._urlStorageKey = null;\n }\n\n /**\n * Add the upload URL to the URL storage, if possible.\n *\n * @api private\n */\n }, {\n key: \"_saveUploadInUrlStorage\",\n value: function _saveUploadInUrlStorage() {\n var _this11 = this;\n // We do not store the upload URL\n // - if it was disabled in the option, or\n // - if no fingerprint was calculated for the input (i.e. a stream), or\n // - if the URL is already stored (i.e. key is set alread).\n if (!this.options.storeFingerprintForResuming || !this._fingerprint || this._urlStorageKey !== null) {\n return Promise.resolve();\n }\n var storedUpload = {\n size: this._size,\n metadata: this.options.metadata,\n creationTime: new Date().toString()\n };\n if (this._parallelUploads) {\n // Save multiple URLs if the parallelUploads option is used ...\n storedUpload.parallelUploadUrls = this._parallelUploadUrls;\n } else {\n // ... otherwise we just save the one available URL.\n storedUpload.uploadUrl = this.url;\n }\n return this._urlStorage.addUpload(this._fingerprint, storedUpload).then(function (urlStorageKey) {\n _this11._urlStorageKey = urlStorageKey;\n });\n }\n\n /**\n * Send a request with the provided body.\n *\n * @api private\n */\n }, {\n key: \"_sendRequest\",\n value: function _sendRequest(req) {\n var body = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return sendRequest(req, body, this.options);\n }\n }], [{\n key: \"terminate\",\n value: function terminate(url) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var req = openRequest('DELETE', url, options);\n return sendRequest(req, null, options).then(function (res) {\n // A 204 response indicates a successfull request\n if (res.getStatus() === 204) {\n return;\n }\n throw new _error[\"default\"]('tus: unexpected response while terminating upload', null, req, res);\n })[\"catch\"](function (err) {\n if (!(err instanceof _error[\"default\"])) {\n err = new _error[\"default\"]('tus: failed to terminate upload', err, req, null);\n }\n if (!shouldRetry(err, 0, options)) {\n throw err;\n }\n\n // Instead of keeping track of the retry attempts, we remove the first element from the delays\n // array. If the array is empty, all retry attempts are used up and we will bubble up the error.\n // We recursively call the terminate function will removing elements from the retryDelays array.\n var delay = options.retryDelays[0];\n var remainingDelays = options.retryDelays.slice(1);\n var newOptions = _objectSpread(_objectSpread({}, options), {}, {\n retryDelays: remainingDelays\n });\n return new Promise(function (resolve) {\n return setTimeout(resolve, delay);\n }).then(function () {\n return BaseUpload.terminate(url, newOptions);\n });\n });\n }\n }]);\n return BaseUpload;\n}();\nfunction encodeMetadata(metadata) {\n return Object.entries(metadata).map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n key = _ref4[0],\n value = _ref4[1];\n return \"\".concat(key, \" \").concat(_jsBase.Base64.encode(String(value)));\n }).join(',');\n}\n\n/**\n * Checks whether a given status is in the range of the expected category.\n * For example, only a status between 200 and 299 will satisfy the category 200.\n *\n * @api private\n */\nfunction inStatusCategory(status, category) {\n return status >= category && status < category + 100;\n}\n\n/**\n * Create a new HTTP request with the specified method and URL.\n * The necessary headers that are included in every request\n * will be added, including the request ID.\n *\n * @api private\n */\nfunction openRequest(method, url, options) {\n var req = options.httpStack.createRequest(method, url);\n req.setHeader('Tus-Resumable', '1.0.0');\n var headers = options.headers || {};\n Object.entries(headers).forEach(function (_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n name = _ref6[0],\n value = _ref6[1];\n req.setHeader(name, value);\n });\n if (options.addRequestId) {\n var requestId = (0, _uuid[\"default\"])();\n req.setHeader('X-Request-ID', requestId);\n }\n return req;\n}\n\n/**\n * Send a request with the provided body while invoking the onBeforeRequest\n * and onAfterResponse callbacks.\n *\n * @api private\n */\nfunction sendRequest(_x, _x2, _x3) {\n return _sendRequest2.apply(this, arguments);\n}\n/**\n * Checks whether the browser running this code has internet access.\n * This function will always return true in the node.js environment\n *\n * @api private\n */\nfunction _sendRequest2() {\n _sendRequest2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(req, body, options) {\n var res;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n if (!(typeof options.onBeforeRequest === 'function')) {\n _context.next = 3;\n break;\n }\n _context.next = 3;\n return options.onBeforeRequest(req);\n case 3:\n _context.next = 5;\n return req.send(body);\n case 5:\n res = _context.sent;\n if (!(typeof options.onAfterResponse === 'function')) {\n _context.next = 9;\n break;\n }\n _context.next = 9;\n return options.onAfterResponse(req, res);\n case 9:\n return _context.abrupt(\"return\", res);\n case 10:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return _sendRequest2.apply(this, arguments);\n}\nfunction isOnline() {\n var online = true;\n // Note: We don't reference `window` here because the navigator object also exists\n // in a Web Worker's context.\n // eslint-disable-next-line no-undef\n if (typeof navigator !== 'undefined' && navigator.onLine === false) {\n online = false;\n }\n return online;\n}\n\n/**\n * Checks whether or not it is ok to retry a request.\n * @param {Error|DetailedError} err the error returned from the last request\n * @param {number} retryAttempt the number of times the request has already been retried\n * @param {object} options tus Upload options\n *\n * @api private\n */\nfunction shouldRetry(err, retryAttempt, options) {\n // We only attempt a retry if\n // - retryDelays option is set\n // - we didn't exceed the maxium number of retries, yet, and\n // - this error was caused by a request or it's response and\n // - the error is server error (i.e. not a status 4xx except a 409 or 423) or\n // a onShouldRetry is specified and returns true\n // - the browser does not indicate that we are offline\n if (options.retryDelays == null || retryAttempt >= options.retryDelays.length || err.originalRequest == null) {\n return false;\n }\n if (options && typeof options.onShouldRetry === 'function') {\n return options.onShouldRetry(err, retryAttempt, options);\n }\n return defaultOnShouldRetry(err);\n}\n\n/**\n * determines if the request should be retried. Will only retry if not a status 4xx except a 409 or 423\n * @param {DetailedError} err\n * @returns {boolean}\n */\nfunction defaultOnShouldRetry(err) {\n var status = err.originalResponse ? err.originalResponse.getStatus() : 0;\n return (!inStatusCategory(status, 400) || status === 409 || status === 423) && isOnline();\n}\n\n/**\n * Resolve a relative link given the origin as source. For example,\n * if a HTTP request to http://example.com/files/ returns a Location\n * header with the value /upload/abc, the resolved URL will be:\n * http://example.com/upload/abc\n */\nfunction resolveUrl(origin, link) {\n return new _urlParse[\"default\"](link, origin).toString();\n}\n\n/**\n * Calculate the start and end positions for the parts if an upload\n * is split into multiple parallel requests.\n *\n * @param {number} totalSize The byte size of the upload, which will be split.\n * @param {number} partCount The number in how many parts the upload will be split.\n * @return {object[]}\n * @api private\n */\nfunction splitSizeIntoParts(totalSize, partCount) {\n var partSize = Math.floor(totalSize / partCount);\n var parts = [];\n for (var i = 0; i < partCount; i++) {\n parts.push({\n start: partSize * i,\n end: partSize * (i + 1)\n });\n }\n parts[partCount - 1].end = totalSize;\n return parts;\n}\nBaseUpload.defaultOptions = defaultOptions;\nvar _default = exports[\"default\"] = BaseUpload;\n\n},{\"./error.js\":12,\"./logger.js\":13,\"./uuid.js\":16,\"js-base64\":20,\"url-parse\":23}],16:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = uuid;\n/**\n * Generate a UUID v4 based on random numbers. We intentioanlly use the less\n * secure Math.random function here since the more secure crypto.getRandomNumbers\n * is not available on all platforms.\n * This is not a problem for us since we use the UUID only for generating a\n * request ID, so we can correlate server logs to client errors.\n *\n * This function is taken from following site:\n * https://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript\n *\n * @return {string} The generate UUID\n */\nfunction uuid() {\n /* eslint-disable no-bitwise */\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0;\n var v = c === 'x' ? r : r & 0x3 | 0x8;\n return v.toString(16);\n });\n}\n\n},{}],17:[function(require,module,exports){\n'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n\n},{}],18:[function(require,module,exports){\n(function (Buffer){(function (){\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = { __proto__: Uint8Array.prototype, foo: function () { return 42 } }\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n buf.__proto__ = Buffer.prototype\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\n// Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\nif (typeof Symbol !== 'undefined' && Symbol.species != null &&\n Buffer[Symbol.species] === Buffer) {\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true,\n enumerable: false,\n writable: false\n })\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayLike(value)\n }\n\n if (value == null) {\n throw TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nBuffer.prototype.__proto__ = Uint8Array.prototype\nBuffer.__proto__ = Uint8Array\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n buf.__proto__ = Buffer.prototype\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n buf = Buffer.from(buf)\n }\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n newBuf.__proto__ = Buffer.prototype\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (var i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n}).call(this)}).call(this,require(\"buffer\").Buffer)\n\n},{\"base64-js\":17,\"buffer\":18,\"ieee754\":19}],19:[function(require,module,exports){\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n\n},{}],20:[function(require,module,exports){\n(function (global,Buffer){(function (){\n//\n// THIS FILE IS AUTOMATICALLY GENERATED! DO NOT EDIT BY HAND!\n//\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n ? module.exports = factory()\n : typeof define === 'function' && define.amd\n ? define(factory) :\n // cf. https://github.com/dankogai/js-base64/issues/119\n (function () {\n // existing version for noConflict()\n var _Base64 = global.Base64;\n var gBase64 = factory();\n gBase64.noConflict = function () {\n global.Base64 = _Base64;\n return gBase64;\n };\n if (global.Meteor) { // Meteor.js\n Base64 = gBase64;\n }\n global.Base64 = gBase64;\n })();\n}((typeof self !== 'undefined' ? self\n : typeof window !== 'undefined' ? window\n : typeof global !== 'undefined' ? global\n : this), function () {\n 'use strict';\n /**\n * base64.ts\n *\n * Licensed under the BSD 3-Clause License.\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * References:\n * http://en.wikipedia.org/wiki/Base64\n *\n * @author Dan Kogai (https://github.com/dankogai)\n */\n var version = '3.7.5';\n /**\n * @deprecated use lowercase `version`.\n */\n var VERSION = version;\n var _hasatob = typeof atob === 'function';\n var _hasbtoa = typeof btoa === 'function';\n var _hasBuffer = typeof Buffer === 'function';\n var _TD = typeof TextDecoder === 'function' ? new TextDecoder() : undefined;\n var _TE = typeof TextEncoder === 'function' ? new TextEncoder() : undefined;\n var b64ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var b64chs = Array.prototype.slice.call(b64ch);\n var b64tab = (function (a) {\n var tab = {};\n a.forEach(function (c, i) { return tab[c] = i; });\n return tab;\n })(b64chs);\n var b64re = /^(?:[A-Za-z\\d+\\/]{4})*?(?:[A-Za-z\\d+\\/]{2}(?:==)?|[A-Za-z\\d+\\/]{3}=?)?$/;\n var _fromCC = String.fromCharCode.bind(String);\n var _U8Afrom = typeof Uint8Array.from === 'function'\n ? Uint8Array.from.bind(Uint8Array)\n : function (it) { return new Uint8Array(Array.prototype.slice.call(it, 0)); };\n var _mkUriSafe = function (src) { return src\n .replace(/=/g, '').replace(/[+\\/]/g, function (m0) { return m0 == '+' ? '-' : '_'; }); };\n var _tidyB64 = function (s) { return s.replace(/[^A-Za-z0-9\\+\\/]/g, ''); };\n /**\n * polyfill version of `btoa`\n */\n var btoaPolyfill = function (bin) {\n // console.log('polyfilled');\n var u32, c0, c1, c2, asc = '';\n var pad = bin.length % 3;\n for (var i = 0; i < bin.length;) {\n if ((c0 = bin.charCodeAt(i++)) > 255 ||\n (c1 = bin.charCodeAt(i++)) > 255 ||\n (c2 = bin.charCodeAt(i++)) > 255)\n throw new TypeError('invalid character found');\n u32 = (c0 << 16) | (c1 << 8) | c2;\n asc += b64chs[u32 >> 18 & 63]\n + b64chs[u32 >> 12 & 63]\n + b64chs[u32 >> 6 & 63]\n + b64chs[u32 & 63];\n }\n return pad ? asc.slice(0, pad - 3) + \"===\".substring(pad) : asc;\n };\n /**\n * does what `window.btoa` of web browsers do.\n * @param {String} bin binary string\n * @returns {string} Base64-encoded string\n */\n var _btoa = _hasbtoa ? function (bin) { return btoa(bin); }\n : _hasBuffer ? function (bin) { return Buffer.from(bin, 'binary').toString('base64'); }\n : btoaPolyfill;\n var _fromUint8Array = _hasBuffer\n ? function (u8a) { return Buffer.from(u8a).toString('base64'); }\n : function (u8a) {\n // cf. https://stackoverflow.com/questions/12710001/how-to-convert-uint8-array-to-base64-encoded-string/12713326#12713326\n var maxargs = 0x1000;\n var strs = [];\n for (var i = 0, l = u8a.length; i < l; i += maxargs) {\n strs.push(_fromCC.apply(null, u8a.subarray(i, i + maxargs)));\n }\n return _btoa(strs.join(''));\n };\n /**\n * converts a Uint8Array to a Base64 string.\n * @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 §5\n * @returns {string} Base64 string\n */\n var fromUint8Array = function (u8a, urlsafe) {\n if (urlsafe === void 0) { urlsafe = false; }\n return urlsafe ? _mkUriSafe(_fromUint8Array(u8a)) : _fromUint8Array(u8a);\n };\n // This trick is found broken https://github.com/dankogai/js-base64/issues/130\n // const utob = (src: string) => unescape(encodeURIComponent(src));\n // reverting good old fationed regexp\n var cb_utob = function (c) {\n if (c.length < 2) {\n var cc = c.charCodeAt(0);\n return cc < 0x80 ? c\n : cc < 0x800 ? (_fromCC(0xc0 | (cc >>> 6))\n + _fromCC(0x80 | (cc & 0x3f)))\n : (_fromCC(0xe0 | ((cc >>> 12) & 0x0f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n else {\n var cc = 0x10000\n + (c.charCodeAt(0) - 0xD800) * 0x400\n + (c.charCodeAt(1) - 0xDC00);\n return (_fromCC(0xf0 | ((cc >>> 18) & 0x07))\n + _fromCC(0x80 | ((cc >>> 12) & 0x3f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n };\n var re_utob = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFFF]|[^\\x00-\\x7F]/g;\n /**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-8 string\n * @returns {string} UTF-16 string\n */\n var utob = function (u) { return u.replace(re_utob, cb_utob); };\n //\n var _encode = _hasBuffer\n ? function (s) { return Buffer.from(s, 'utf8').toString('base64'); }\n : _TE\n ? function (s) { return _fromUint8Array(_TE.encode(s)); }\n : function (s) { return _btoa(utob(s)); };\n /**\n * converts a UTF-8-encoded string to a Base64 string.\n * @param {boolean} [urlsafe] if `true` make the result URL-safe\n * @returns {string} Base64 string\n */\n var encode = function (src, urlsafe) {\n if (urlsafe === void 0) { urlsafe = false; }\n return urlsafe\n ? _mkUriSafe(_encode(src))\n : _encode(src);\n };\n /**\n * converts a UTF-8-encoded string to URL-safe Base64 RFC4648 §5.\n * @returns {string} Base64 string\n */\n var encodeURI = function (src) { return encode(src, true); };\n // This trick is found broken https://github.com/dankogai/js-base64/issues/130\n // const btou = (src: string) => decodeURIComponent(escape(src));\n // reverting good old fationed regexp\n var re_btou = /[\\xC0-\\xDF][\\x80-\\xBF]|[\\xE0-\\xEF][\\x80-\\xBF]{2}|[\\xF0-\\xF7][\\x80-\\xBF]{3}/g;\n var cb_btou = function (cccc) {\n switch (cccc.length) {\n case 4:\n var cp = ((0x07 & cccc.charCodeAt(0)) << 18)\n | ((0x3f & cccc.charCodeAt(1)) << 12)\n | ((0x3f & cccc.charCodeAt(2)) << 6)\n | (0x3f & cccc.charCodeAt(3)), offset = cp - 0x10000;\n return (_fromCC((offset >>> 10) + 0xD800)\n + _fromCC((offset & 0x3FF) + 0xDC00));\n case 3:\n return _fromCC(((0x0f & cccc.charCodeAt(0)) << 12)\n | ((0x3f & cccc.charCodeAt(1)) << 6)\n | (0x3f & cccc.charCodeAt(2)));\n default:\n return _fromCC(((0x1f & cccc.charCodeAt(0)) << 6)\n | (0x3f & cccc.charCodeAt(1)));\n }\n };\n /**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-16 string\n * @returns {string} UTF-8 string\n */\n var btou = function (b) { return b.replace(re_btou, cb_btou); };\n /**\n * polyfill version of `atob`\n */\n var atobPolyfill = function (asc) {\n // console.log('polyfilled');\n asc = asc.replace(/\\s+/g, '');\n if (!b64re.test(asc))\n throw new TypeError('malformed base64.');\n asc += '=='.slice(2 - (asc.length & 3));\n var u24, bin = '', r1, r2;\n for (var i = 0; i < asc.length;) {\n u24 = b64tab[asc.charAt(i++)] << 18\n | b64tab[asc.charAt(i++)] << 12\n | (r1 = b64tab[asc.charAt(i++)]) << 6\n | (r2 = b64tab[asc.charAt(i++)]);\n bin += r1 === 64 ? _fromCC(u24 >> 16 & 255)\n : r2 === 64 ? _fromCC(u24 >> 16 & 255, u24 >> 8 & 255)\n : _fromCC(u24 >> 16 & 255, u24 >> 8 & 255, u24 & 255);\n }\n return bin;\n };\n /**\n * does what `window.atob` of web browsers do.\n * @param {String} asc Base64-encoded string\n * @returns {string} binary string\n */\n var _atob = _hasatob ? function (asc) { return atob(_tidyB64(asc)); }\n : _hasBuffer ? function (asc) { return Buffer.from(asc, 'base64').toString('binary'); }\n : atobPolyfill;\n //\n var _toUint8Array = _hasBuffer\n ? function (a) { return _U8Afrom(Buffer.from(a, 'base64')); }\n : function (a) { return _U8Afrom(_atob(a).split('').map(function (c) { return c.charCodeAt(0); })); };\n /**\n * converts a Base64 string to a Uint8Array.\n */\n var toUint8Array = function (a) { return _toUint8Array(_unURI(a)); };\n //\n var _decode = _hasBuffer\n ? function (a) { return Buffer.from(a, 'base64').toString('utf8'); }\n : _TD\n ? function (a) { return _TD.decode(_toUint8Array(a)); }\n : function (a) { return btou(_atob(a)); };\n var _unURI = function (a) { return _tidyB64(a.replace(/[-_]/g, function (m0) { return m0 == '-' ? '+' : '/'; })); };\n /**\n * converts a Base64 string to a UTF-8 string.\n * @param {String} src Base64 string. Both normal and URL-safe are supported\n * @returns {string} UTF-8 string\n */\n var decode = function (src) { return _decode(_unURI(src)); };\n /**\n * check if a value is a valid Base64 string\n * @param {String} src a value to check\n */\n var isValid = function (src) {\n if (typeof src !== 'string')\n return false;\n var s = src.replace(/\\s+/g, '').replace(/={0,2}$/, '');\n return !/[^\\s0-9a-zA-Z\\+/]/.test(s) || !/[^\\s0-9a-zA-Z\\-_]/.test(s);\n };\n //\n var _noEnum = function (v) {\n return {\n value: v, enumerable: false, writable: true, configurable: true\n };\n };\n /**\n * extend String.prototype with relevant methods\n */\n var extendString = function () {\n var _add = function (name, body) { return Object.defineProperty(String.prototype, name, _noEnum(body)); };\n _add('fromBase64', function () { return decode(this); });\n _add('toBase64', function (urlsafe) { return encode(this, urlsafe); });\n _add('toBase64URI', function () { return encode(this, true); });\n _add('toBase64URL', function () { return encode(this, true); });\n _add('toUint8Array', function () { return toUint8Array(this); });\n };\n /**\n * extend Uint8Array.prototype with relevant methods\n */\n var extendUint8Array = function () {\n var _add = function (name, body) { return Object.defineProperty(Uint8Array.prototype, name, _noEnum(body)); };\n _add('toBase64', function (urlsafe) { return fromUint8Array(this, urlsafe); });\n _add('toBase64URI', function () { return fromUint8Array(this, true); });\n _add('toBase64URL', function () { return fromUint8Array(this, true); });\n };\n /**\n * extend Builtin prototypes with relevant methods\n */\n var extendBuiltins = function () {\n extendString();\n extendUint8Array();\n };\n var gBase64 = {\n version: version,\n VERSION: VERSION,\n atob: _atob,\n atobPolyfill: atobPolyfill,\n btoa: _btoa,\n btoaPolyfill: btoaPolyfill,\n fromBase64: decode,\n toBase64: encode,\n encode: encode,\n encodeURI: encodeURI,\n encodeURL: encodeURI,\n utob: utob,\n btou: btou,\n decode: decode,\n isValid: isValid,\n fromUint8Array: fromUint8Array,\n toUint8Array: toUint8Array,\n extendString: extendString,\n extendUint8Array: extendUint8Array,\n extendBuiltins: extendBuiltins\n };\n //\n // export Base64 to the namespace\n //\n // ES5 is yet to have Object.assign() that may make transpilers unhappy.\n // gBase64.Base64 = Object.assign({}, gBase64);\n gBase64.Base64 = {};\n Object.keys(gBase64).forEach(function (k) { return gBase64.Base64[k] = gBase64[k]; });\n return gBase64;\n}));\n\n}).call(this)}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {},require(\"buffer\").Buffer)\n\n},{\"buffer\":18}],21:[function(require,module,exports){\n'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , undef;\n\n/**\n * Decode a URI encoded string.\n *\n * @param {String} input The URI encoded string.\n * @returns {String|Null} The decoded string.\n * @api private\n */\nfunction decode(input) {\n try {\n return decodeURIComponent(input.replace(/\\+/g, ' '));\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Attempts to encode a given input.\n *\n * @param {String} input The string that needs to be encoded.\n * @returns {String|Null} The encoded string.\n * @api private\n */\nfunction encode(input) {\n try {\n return encodeURIComponent(input);\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\nfunction querystring(query) {\n var parser = /([^=?#&]+)=?([^&]*)/g\n , result = {}\n , part;\n\n while (part = parser.exec(query)) {\n var key = decode(part[1])\n , value = decode(part[2]);\n\n //\n // Prevent overriding of existing properties. This ensures that build-in\n // methods like `toString` or __proto__ are not overriden by malicious\n // querystrings.\n //\n // In the case if failed decoding, we want to omit the key/value pairs\n // from the result.\n //\n if (key === null || value === null || key in result) continue;\n result[key] = value;\n }\n\n return result;\n}\n\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\nfunction querystringify(obj, prefix) {\n prefix = prefix || '';\n\n var pairs = []\n , value\n , key;\n\n //\n // Optionally prefix with a '?' if needed\n //\n if ('string' !== typeof prefix) prefix = '?';\n\n for (key in obj) {\n if (has.call(obj, key)) {\n value = obj[key];\n\n //\n // Edge cases where we actually want to encode the value to an empty\n // string instead of the stringified value.\n //\n if (!value && (value === null || value === undef || isNaN(value))) {\n value = '';\n }\n\n key = encode(key);\n value = encode(value);\n\n //\n // If we failed to encode the strings, we should bail out as we don't\n // want to add invalid strings to the query.\n //\n if (key === null || value === null) continue;\n pairs.push(key +'='+ value);\n }\n }\n\n return pairs.length ? prefix + pairs.join('&') : '';\n}\n\n//\n// Expose the module.\n//\nexports.stringify = querystringify;\nexports.parse = querystring;\n\n},{}],22:[function(require,module,exports){\n'use strict';\n\n/**\n * Check if we're required to add a port number.\n *\n * @see https://url.spec.whatwg.org/#default-port\n * @param {Number|String} port Port number we need to check\n * @param {String} protocol Protocol we need to check against.\n * @returns {Boolean} Is it a default port for the given protocol\n * @api private\n */\nmodule.exports = function required(port, protocol) {\n protocol = protocol.split(':')[0];\n port = +port;\n\n if (!port) return false;\n\n switch (protocol) {\n case 'http':\n case 'ws':\n return port !== 80;\n\n case 'https':\n case 'wss':\n return port !== 443;\n\n case 'ftp':\n return port !== 21;\n\n case 'gopher':\n return port !== 70;\n\n case 'file':\n return false;\n }\n\n return port !== 0;\n};\n\n},{}],23:[function(require,module,exports){\n(function (global){(function (){\n'use strict';\n\nvar required = require('requires-port')\n , qs = require('querystringify')\n , controlOrWhitespace = /^[\\x00-\\x20\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]+/\n , CRHTLF = /[\\n\\r\\t]/g\n , slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//\n , port = /:\\d+$/\n , protocolre = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\\\/]+)?([\\S\\s]*)/i\n , windowsDriveLetter = /^[a-zA-Z]:/;\n\n/**\n * Remove control characters and whitespace from the beginning of a string.\n *\n * @param {Object|String} str String to trim.\n * @returns {String} A new string representing `str` stripped of control\n * characters and whitespace from its beginning.\n * @public\n */\nfunction trimLeft(str) {\n return (str ? str : '').toString().replace(controlOrWhitespace, '');\n}\n\n/**\n * These are the parse rules for the URL parser, it informs the parser\n * about:\n *\n * 0. The char it Needs to parse, if it's a string it should be done using\n * indexOf, RegExp using exec and NaN means set as current value.\n * 1. The property we should set when parsing this value.\n * 2. Indication if it's backwards or forward parsing, when set as number it's\n * the value of extra chars that should be split off.\n * 3. Inherit from location if non existing in the parser.\n * 4. `toLowerCase` the resulting value.\n */\nvar rules = [\n ['#', 'hash'], // Extract from the back.\n ['?', 'query'], // Extract from the back.\n function sanitize(address, url) { // Sanitize what is left of the address\n return isSpecial(url.protocol) ? address.replace(/\\\\/g, '/') : address;\n },\n ['/', 'pathname'], // Extract from the back.\n ['@', 'auth', 1], // Extract from the front.\n [NaN, 'host', undefined, 1, 1], // Set left over value.\n [/:(\\d*)$/, 'port', undefined, 1], // RegExp the back.\n [NaN, 'hostname', undefined, 1, 1] // Set left over.\n];\n\n/**\n * These properties should not be copied or inherited from. This is only needed\n * for all non blob URL's as a blob URL does not include a hash, only the\n * origin.\n *\n * @type {Object}\n * @private\n */\nvar ignore = { hash: 1, query: 1 };\n\n/**\n * The location object differs when your code is loaded through a normal page,\n * Worker or through a worker using a blob. And with the blobble begins the\n * trouble as the location object will contain the URL of the blob, not the\n * location of the page where our code is loaded in. The actual origin is\n * encoded in the `pathname` so we can thankfully generate a good \"default\"\n * location from it so we can generate proper relative URL's again.\n *\n * @param {Object|String} loc Optional default location object.\n * @returns {Object} lolcation object.\n * @public\n */\nfunction lolcation(loc) {\n var globalVar;\n\n if (typeof window !== 'undefined') globalVar = window;\n else if (typeof global !== 'undefined') globalVar = global;\n else if (typeof self !== 'undefined') globalVar = self;\n else globalVar = {};\n\n var location = globalVar.location || {};\n loc = loc || location;\n\n var finaldestination = {}\n , type = typeof loc\n , key;\n\n if ('blob:' === loc.protocol) {\n finaldestination = new Url(unescape(loc.pathname), {});\n } else if ('string' === type) {\n finaldestination = new Url(loc, {});\n for (key in ignore) delete finaldestination[key];\n } else if ('object' === type) {\n for (key in loc) {\n if (key in ignore) continue;\n finaldestination[key] = loc[key];\n }\n\n if (finaldestination.slashes === undefined) {\n finaldestination.slashes = slashes.test(loc.href);\n }\n }\n\n return finaldestination;\n}\n\n/**\n * Check whether a protocol scheme is special.\n *\n * @param {String} The protocol scheme of the URL\n * @return {Boolean} `true` if the protocol scheme is special, else `false`\n * @private\n */\nfunction isSpecial(scheme) {\n return (\n scheme === 'file:' ||\n scheme === 'ftp:' ||\n scheme === 'http:' ||\n scheme === 'https:' ||\n scheme === 'ws:' ||\n scheme === 'wss:'\n );\n}\n\n/**\n * @typedef ProtocolExtract\n * @type Object\n * @property {String} protocol Protocol matched in the URL, in lowercase.\n * @property {Boolean} slashes `true` if protocol is followed by \"//\", else `false`.\n * @property {String} rest Rest of the URL that is not part of the protocol.\n */\n\n/**\n * Extract protocol information from a URL with/without double slash (\"//\").\n *\n * @param {String} address URL we want to extract from.\n * @param {Object} location\n * @return {ProtocolExtract} Extracted information.\n * @private\n */\nfunction extractProtocol(address, location) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, '');\n location = location || {};\n\n var match = protocolre.exec(address);\n var protocol = match[1] ? match[1].toLowerCase() : '';\n var forwardSlashes = !!match[2];\n var otherSlashes = !!match[3];\n var slashesCount = 0;\n var rest;\n\n if (forwardSlashes) {\n if (otherSlashes) {\n rest = match[2] + match[3] + match[4];\n slashesCount = match[2].length + match[3].length;\n } else {\n rest = match[2] + match[4];\n slashesCount = match[2].length;\n }\n } else {\n if (otherSlashes) {\n rest = match[3] + match[4];\n slashesCount = match[3].length;\n } else {\n rest = match[4]\n }\n }\n\n if (protocol === 'file:') {\n if (slashesCount >= 2) {\n rest = rest.slice(2);\n }\n } else if (isSpecial(protocol)) {\n rest = match[4];\n } else if (protocol) {\n if (forwardSlashes) {\n rest = rest.slice(2);\n }\n } else if (slashesCount >= 2 && isSpecial(location.protocol)) {\n rest = match[4];\n }\n\n return {\n protocol: protocol,\n slashes: forwardSlashes || isSpecial(protocol),\n slashesCount: slashesCount,\n rest: rest\n };\n}\n\n/**\n * Resolve a relative URL pathname against a base URL pathname.\n *\n * @param {String} relative Pathname of the relative URL.\n * @param {String} base Pathname of the base URL.\n * @return {String} Resolved pathname.\n * @private\n */\nfunction resolve(relative, base) {\n if (relative === '') return base;\n\n var path = (base || '/').split('/').slice(0, -1).concat(relative.split('/'))\n , i = path.length\n , last = path[i - 1]\n , unshift = false\n , up = 0;\n\n while (i--) {\n if (path[i] === '.') {\n path.splice(i, 1);\n } else if (path[i] === '..') {\n path.splice(i, 1);\n up++;\n } else if (up) {\n if (i === 0) unshift = true;\n path.splice(i, 1);\n up--;\n }\n }\n\n if (unshift) path.unshift('');\n if (last === '.' || last === '..') path.push('');\n\n return path.join('/');\n}\n\n/**\n * The actual URL instance. Instead of returning an object we've opted-in to\n * create an actual constructor as it's much more memory efficient and\n * faster and it pleases my OCD.\n *\n * It is worth noting that we should not use `URL` as class name to prevent\n * clashes with the global URL instance that got introduced in browsers.\n *\n * @constructor\n * @param {String} address URL we want to parse.\n * @param {Object|String} [location] Location defaults for relative paths.\n * @param {Boolean|Function} [parser] Parser for the query string.\n * @private\n */\nfunction Url(address, location, parser) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, '');\n\n if (!(this instanceof Url)) {\n return new Url(address, location, parser);\n }\n\n var relative, extracted, parse, instruction, index, key\n , instructions = rules.slice()\n , type = typeof location\n , url = this\n , i = 0;\n\n //\n // The following if statements allows this module two have compatibility with\n // 2 different API:\n //\n // 1. Node.js's `url.parse` api which accepts a URL, boolean as arguments\n // where the boolean indicates that the query string should also be parsed.\n //\n // 2. The `URL` interface of the browser which accepts a URL, object as\n // arguments. The supplied object will be used as default values / fall-back\n // for relative paths.\n //\n if ('object' !== type && 'string' !== type) {\n parser = location;\n location = null;\n }\n\n if (parser && 'function' !== typeof parser) parser = qs.parse;\n\n location = lolcation(location);\n\n //\n // Extract protocol information before running the instructions.\n //\n extracted = extractProtocol(address || '', location);\n relative = !extracted.protocol && !extracted.slashes;\n url.slashes = extracted.slashes || relative && location.slashes;\n url.protocol = extracted.protocol || location.protocol || '';\n address = extracted.rest;\n\n //\n // When the authority component is absent the URL starts with a path\n // component.\n //\n if (\n extracted.protocol === 'file:' && (\n extracted.slashesCount !== 2 || windowsDriveLetter.test(address)) ||\n (!extracted.slashes &&\n (extracted.protocol ||\n extracted.slashesCount < 2 ||\n !isSpecial(url.protocol)))\n ) {\n instructions[3] = [/(.*)/, 'pathname'];\n }\n\n for (; i < instructions.length; i++) {\n instruction = instructions[i];\n\n if (typeof instruction === 'function') {\n address = instruction(address, url);\n continue;\n }\n\n parse = instruction[0];\n key = instruction[1];\n\n if (parse !== parse) {\n url[key] = address;\n } else if ('string' === typeof parse) {\n index = parse === '@'\n ? address.lastIndexOf(parse)\n : address.indexOf(parse);\n\n if (~index) {\n if ('number' === typeof instruction[2]) {\n url[key] = address.slice(0, index);\n address = address.slice(index + instruction[2]);\n } else {\n url[key] = address.slice(index);\n address = address.slice(0, index);\n }\n }\n } else if ((index = parse.exec(address))) {\n url[key] = index[1];\n address = address.slice(0, index.index);\n }\n\n url[key] = url[key] || (\n relative && instruction[3] ? location[key] || '' : ''\n );\n\n //\n // Hostname, host and protocol should be lowercased so they can be used to\n // create a proper `origin`.\n //\n if (instruction[4]) url[key] = url[key].toLowerCase();\n }\n\n //\n // Also parse the supplied query string in to an object. If we're supplied\n // with a custom parser as function use that instead of the default build-in\n // parser.\n //\n if (parser) url.query = parser(url.query);\n\n //\n // If the URL is relative, resolve the pathname against the base URL.\n //\n if (\n relative\n && location.slashes\n && url.pathname.charAt(0) !== '/'\n && (url.pathname !== '' || location.pathname !== '')\n ) {\n url.pathname = resolve(url.pathname, location.pathname);\n }\n\n //\n // Default to a / for pathname if none exists. This normalizes the URL\n // to always have a /\n //\n if (url.pathname.charAt(0) !== '/' && isSpecial(url.protocol)) {\n url.pathname = '/' + url.pathname;\n }\n\n //\n // We should not add port numbers if they are already the default port number\n // for a given protocol. As the host also contains the port number we're going\n // override it with the hostname which contains no port number.\n //\n if (!required(url.port, url.protocol)) {\n url.host = url.hostname;\n url.port = '';\n }\n\n //\n // Parse down the `auth` for the username and password.\n //\n url.username = url.password = '';\n\n if (url.auth) {\n index = url.auth.indexOf(':');\n\n if (~index) {\n url.username = url.auth.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n url.password = url.auth.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password))\n } else {\n url.username = encodeURIComponent(decodeURIComponent(url.auth));\n }\n\n url.auth = url.password ? url.username +':'+ url.password : url.username;\n }\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n //\n // The href is just the compiled result.\n //\n url.href = url.toString();\n}\n\n/**\n * This is convenience method for changing properties in the URL instance to\n * insure that they all propagate correctly.\n *\n * @param {String} part Property we need to adjust.\n * @param {Mixed} value The newly assigned value.\n * @param {Boolean|Function} fn When setting the query, it will be the function\n * used to parse the query.\n * When setting the protocol, double slash will be\n * removed from the final url if it is true.\n * @returns {URL} URL instance for chaining.\n * @public\n */\nfunction set(part, value, fn) {\n var url = this;\n\n switch (part) {\n case 'query':\n if ('string' === typeof value && value.length) {\n value = (fn || qs.parse)(value);\n }\n\n url[part] = value;\n break;\n\n case 'port':\n url[part] = value;\n\n if (!required(value, url.protocol)) {\n url.host = url.hostname;\n url[part] = '';\n } else if (value) {\n url.host = url.hostname +':'+ value;\n }\n\n break;\n\n case 'hostname':\n url[part] = value;\n\n if (url.port) value += ':'+ url.port;\n url.host = value;\n break;\n\n case 'host':\n url[part] = value;\n\n if (port.test(value)) {\n value = value.split(':');\n url.port = value.pop();\n url.hostname = value.join(':');\n } else {\n url.hostname = value;\n url.port = '';\n }\n\n break;\n\n case 'protocol':\n url.protocol = value.toLowerCase();\n url.slashes = !fn;\n break;\n\n case 'pathname':\n case 'hash':\n if (value) {\n var char = part === 'pathname' ? '/' : '#';\n url[part] = value.charAt(0) !== char ? char + value : value;\n } else {\n url[part] = value;\n }\n break;\n\n case 'username':\n case 'password':\n url[part] = encodeURIComponent(value);\n break;\n\n case 'auth':\n var index = value.indexOf(':');\n\n if (~index) {\n url.username = value.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n url.password = value.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password));\n } else {\n url.username = encodeURIComponent(decodeURIComponent(value));\n }\n }\n\n for (var i = 0; i < rules.length; i++) {\n var ins = rules[i];\n\n if (ins[4]) url[ins[1]] = url[ins[1]].toLowerCase();\n }\n\n url.auth = url.password ? url.username +':'+ url.password : url.username;\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n url.href = url.toString();\n\n return url;\n}\n\n/**\n * Transform the properties back in to a valid and full URL string.\n *\n * @param {Function} stringify Optional query stringify function.\n * @returns {String} Compiled version of the URL.\n * @public\n */\nfunction toString(stringify) {\n if (!stringify || 'function' !== typeof stringify) stringify = qs.stringify;\n\n var query\n , url = this\n , host = url.host\n , protocol = url.protocol;\n\n if (protocol && protocol.charAt(protocol.length - 1) !== ':') protocol += ':';\n\n var result =\n protocol +\n ((url.protocol && url.slashes) || isSpecial(url.protocol) ? '//' : '');\n\n if (url.username) {\n result += url.username;\n if (url.password) result += ':'+ url.password;\n result += '@';\n } else if (url.password) {\n result += ':'+ url.password;\n result += '@';\n } else if (\n url.protocol !== 'file:' &&\n isSpecial(url.protocol) &&\n !host &&\n url.pathname !== '/'\n ) {\n //\n // Add back the empty userinfo, otherwise the original invalid URL\n // might be transformed into a valid one with `url.pathname` as host.\n //\n result += '@';\n }\n\n //\n // Trailing colon is removed from `url.host` when it is parsed. If it still\n // ends with a colon, then add back the trailing colon that was removed. This\n // prevents an invalid URL from being transformed into a valid one.\n //\n if (host[host.length - 1] === ':' || (port.test(url.hostname) && !url.port)) {\n host += ':';\n }\n\n result += host + url.pathname;\n\n query = 'object' === typeof url.query ? stringify(url.query) : url.query;\n if (query) result += '?' !== query.charAt(0) ? '?'+ query : query;\n\n if (url.hash) result += url.hash;\n\n return result;\n}\n\nUrl.prototype = { set: set, toString: toString };\n\n//\n// Expose the URL parser and some additional properties that might be useful for\n// others or testing.\n//\nUrl.extractProtocol = extractProtocol;\nUrl.location = lolcation;\nUrl.trimLeft = trimLeft;\nUrl.qs = qs;\n\nmodule.exports = Url;\n\n}).call(this)}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{\"querystringify\":21,\"requires-port\":22}]},{},[4])(4)\n});\n//# sourceMappingURL=tus.js.map\n"],"names":["f","exports","module","define","amd","window","global","self","this","tus","r","e","n","t","o","i","c","require","u","a","Error","code","p","call","length","Object","defineProperty","value","_isReactNative","_interopRequireDefault","_uriToBlob","_FileSource","_StreamSource","obj","__esModule","_typeof","Symbol","iterator","constructor","prototype","_regeneratorRuntime","hasOwnProperty","asyncIterator","toStringTag","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","h","s","y","GeneratorFunction","GeneratorFunctionPrototype","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_defineProperties","target","props","descriptor","input","hint","prim","toPrimitive","undefined","res","String","Number","_toPrimitive","FileReader","instance","Constructor","_classCallCheck","protoProps","staticProps","fn","_openFile","_callee","chunkSize","blob","_context","uri","t0","concat","size","read","isFinite","args","arguments","apply","err","_x","_x2","file","options","exifHash","exif","str","hash","charCodeAt","hashCode","JSON","stringify","endpoint","join","reactNativeFingerprint","lastModified","_createClass","XHRHttpStack","url","Request","_xhr","XMLHttpRequest","open","_method","_url","_headers","header","setRequestHeader","progressHandler","upload","onprogress","lengthComputable","loaded","_this","body","onload","Response","onerror","send","abort","xhr","status","getResponseHeader","responseText","get","_httpStack","_error","Upload","_urlStorage","canStoreURLs","defaultOptions","_logger","enableDebugLog","isSupported","_upload","_noopUrlStorage","_fileReader","_fileSignature","_toPropertyKey","_setPrototypeOf","bind","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct","result","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","ReferenceError","_assertThisInitialized","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","httpStack","fileReader","urlStorage","WebStorageUrlStorage","fingerprint","_BaseUpload","subClass","superClass","_inherits","_super","terminate","Blob","navigator","product","toLowerCase","_isCordova","_readAsByteArray","FileSource","_file","start","end","len","blobOrArray","StreamSource","reader","_buffer","_bufferOffset","_reader","_done","_readUntilEnoughDataOrDone","hasEnoughData","_getDataFromBuffer","_ref","b","set","hasAllDataBeenRead","cancel","PhoneGap","Cordova","cordova","chunk","Uint8Array","readAsArrayBuffer","responseType","response","hasStorage","originalValue","localStorage","getItem","setItem","removeItem","SECURITY_ERR","QUOTA_EXCEEDED_ERR","results","_findEntries","urlStorageKey","id","Math","round","random","prefix","_key","indexOf","parse","_wrapNativeSuper","Class","_cache","Map","Function","toString","_isNativeFunction","has","Wrapper","_construct","Parent","DetailedError","_Error","message","causingErr","req","originalRequest","originalResponse","causingError","requestId","getHeader","getMethod","getURL","getStatus","getBody","isEnabled","log","msg","console","NoopUrlStorage","_jsBase","_urlParse","_uuid","_asyncToGenerator","_slicedToArray","arr","Array","isArray","_arrayWithHoles","l","_iterableToArrayLimit","minLen","_arrayLikeToArray","from","test","_unsupportedIterableToArray","_nonIterableRest","arr2","uploadUrl","metadata","uploadSize","onProgress","onChunkComplete","onSuccess","onError","onUploadUrlAvailable","overridePatchMethod","headers","addRequestId","onBeforeRequest","onAfterResponse","onShouldRetry","defaultOnShouldRetry","Infinity","retryDelays","parallelUploads","parallelUploadBoundaries","storeFingerprintForResuming","removeFingerprintOnSuccess","uploadLengthDeferred","uploadDataDuringCreation","BaseUpload","_req","_fingerprint","_urlStorageKey","_offset","_aborted","_size","_source","_retryAttempt","_retryTimeout","_offsetBeforeRetry","_parallelUploads","_parallelUploadUrls","findUploadsByFingerprint","previousUpload","parallelUploadUrls","_this2","_i","_arr","optionName","_emitError","openFile","source","_startParallelUpload","_startSingleUpload","_this$options$paralle","_this3","totalSize","totalProgress","partCount","parts","partSize","floor","splitSizeIntoParts","part","index","uploads","map","lastPartProgress","newPartProgress","_emitProgress","_saveUploadInUrlStorage","all","_openRequest","setHeader","encodeMetadata","_sendRequest","inStatusCategory","location","resolveUrl","_emitSuccess","_emitHttpError","_resumeUpload","_createUpload","shouldTerminate","_this4","clearTimeout","_removeFromUrlStorage","_this5","shouldRetry","delay","setTimeout","bytesSent","bytesTotal","bytesAccepted","_this6","promise","_addChunkToRequest","close","_handleUploadResponse","_performUpload","_this7","offset","parseInt","_this8","_this9","setProgressHandler","_ref2","valueSize","newSize","_emitChunkComplete","openRequest","_this10","removeUpload","_this11","storedUpload","creationTime","Date","addUpload","sendRequest","remainingDelays","newOptions","entries","_ref3","_ref4","Base64","encode","category","createRequest","_ref5","_ref6","_x3","_sendRequest2","retryAttempt","online","onLine","origin","link","replace","byteLength","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","Arr","_byteLength","curByte","revLookup","fromByteArray","uint8","extraBytes","len2","encodeChunk","lookup","num","output","Buffer","base64","ieee754","SlowBuffer","alloc","INSPECT_MAX_BYTES","createBuffer","RangeError","buf","encodingOrOffset","allocUnsafe","string","encoding","isEncoding","actual","write","fromString","ArrayBuffer","isView","fromArrayLike","isInstance","buffer","array","byteOffset","fromArrayBuffer","isBuffer","checked","copy","numberIsNaN","data","fromObject","assertSize","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","m","bidirectionalIndexOf","val","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","found","j","hexWrite","remaining","strLen","parsed","substr","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","min","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","fromCharCode","decodeCodePointsArray","kMaxLength","TYPED_ARRAY_SUPPORT","foo","typedArraySupport","species","poolSize","fill","allocUnsafeSlow","_isBuffer","compare","x","list","pos","swap16","swap32","swap64","toLocaleString","equals","inspect","max","trim","thisStart","thisEnd","thisCopy","targetCopy","includes","toJSON","ret","out","toHex","bytes","checkOffset","ext","checkInt","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","subarray","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","INVALID_BASE64_RE","leadSurrogate","split","base64clean","src","dst","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","abs","LN2","factory","_Base64","gBase64","noConflict","Meteor","tab","_hasatob","atob","_hasbtoa","btoa","_hasBuffer","_TD","TextDecoder","_TE","TextEncoder","b64chs","b64tab","b64re","_fromCC","_U8Afrom","it","_mkUriSafe","m0","_tidyB64","btoaPolyfill","bin","u32","c0","c1","c2","asc","pad","substring","_btoa","_fromUint8Array","u8a","strs","fromUint8Array","urlsafe","cb_utob","cc","re_utob","utob","_encode","encodeURI","re_btou","cb_btou","cccc","btou","atobPolyfill","u24","r1","r2","_atob","_toUint8Array","toUint8Array","_unURI","_decode","decode","_noEnum","extendString","_add","extendUint8Array","version","VERSION","fromBase64","toBase64","encodeURL","isValid","extendBuiltins","k","decodeURIComponent","encodeURIComponent","pairs","query","parser","exec","port","protocol","required","qs","controlOrWhitespace","CRHTLF","slashes","protocolre","windowsDriveLetter","trimLeft","rules","address","isSpecial","ignore","lolcation","loc","finaldestination","Url","unescape","pathname","href","scheme","extractProtocol","rest","match","forwardSlashes","otherSlashes","slashesCount","relative","extracted","instruction","instructions","base","path","last","unshift","up","splice","host","hostname","username","password","auth","char","ins"],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["../src/tus.js"],"names":["f","exports","module","define","amd","g","window","global","self","tus","r","e","n","t","o","i","c","require","u","a","Error","code","p","call","length","Object","defineProperty","value","_isReactNative","_interopRequireDefault","_uriToBlob","_FileSource","_StreamSource","obj","__esModule","_typeof","Symbol","iterator","constructor","prototype","_regeneratorRuntime","hasOwnProperty","asyncIterator","toStringTag","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","y","GeneratorFunction","GeneratorFunctionPrototype","d","getPrototypeOf","v","values","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","h","resolve","__await","then","callInvokeWithMethodAndArg","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","args","arguments","apply","err","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_toPrimitive","input","hint","prim","toPrimitive","res","String","Number","FileReader","_openFile","_callee","chunkSize","blob","_context","uri","t0","concat","size","read","isFinite","file","options","reactNativeFingerprint","lastModified","endpoint","join","exifHash","exif","hashCode","JSON","stringify","str","hash","_char","charCodeAt","XHRHttpStack","url","Request","_xhr","XMLHttpRequest","open","_method","_url","_headers","header","setRequestHeader","progressHandler","upload","onprogress","lengthComputable","loaded","_this","body","onload","Response","onerror","send","abort","xhr","status","getResponseHeader","responseText","get","_httpStack","_error","Upload","_urlStorage","canStoreURLs","defaultOptions","_logger","enableDebugLog","isSupported","_upload","_noopUrlStorage","_fileReader","_fileSignature","_inherits","subClass","superClass","_setPrototypeOf","bind","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","result","NewTarget","Reflect","construct","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","sham","Proxy","Boolean","valueOf","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","httpStack","fileReader","urlStorage","WebStorageUrlStorage","fingerprint","_BaseUpload","_super","terminate","Blob","navigator","product","toLowerCase","_isCordova","_readAsByteArray","FileSource","_file","start","end","len","blobOrArray","b","set","StreamSource","reader","_buffer","_bufferOffset","_reader","_done","_readUntilEnoughDataOrDone","hasEnoughData","_getDataFromBuffer","_ref","hasAllDataBeenRead","cancel","PhoneGap","Cordova","cordova","chunk","Uint8Array","readAsArrayBuffer","responseType","response","hasStorage","originalValue","localStorage","getItem","setItem","removeItem","SECURITY_ERR","QUOTA_EXCEEDED_ERR","results","_findEntries","urlStorageKey","id","Math","round","random","prefix","_key","indexOf","parse","_wrapNativeSuper","Class","_cache","Map","_isNativeFunction","has","Wrapper","_construct","Parent","Function","toString","DetailedError","_Error","message","causingErr","req","originalRequest","originalResponse","causingError","requestId","getHeader","getMethod","getURL","getStatus","getBody","_default","isEnabled","log","msg","console","NoopUrlStorage","_jsBase","_urlParse","_uuid","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","Array","from","test","arr2","l","isArray","BaseUpload","_req","_fingerprint","_urlStorageKey","_offset","_aborted","_size","_source","_retryAttempt","_retryTimeout","_offsetBeforeRetry","_parallelUploads","_parallelUploadUrls","findUploadsByFingerprint","previousUpload","uploadUrl","parallelUploadUrls","_this2","_emitError","retryDelays","parallelUploads","_i","_arr","optionName","parallelUploadBoundaries","openFile","source","uploadLengthDeferred","uploadSize","_startParallelUpload","_startSingleUpload","_this$options$paralle","_this3","totalSize","totalProgress","partCount","parts","splitSizeIntoParts","part","index","uploads","map","lastPartProgress","storeFingerprintForResuming","removeFingerprintOnSuccess","metadata","headers","onSuccess","onError","onProgress","newPartProgress","_emitProgress","onUploadUrlAvailable","_saveUploadInUrlStorage","all","_openRequest","setHeader","encodeMetadata","_sendRequest","inStatusCategory","_emitHttpError","location","resolveUrl","_emitSuccess","_resumeUpload","_createUpload","shouldTerminate","_this4","clearTimeout","_removeFromUrlStorage","_this5","shouldResetDelays","shouldRetry","delay","setTimeout","bytesSent","bytesTotal","bytesAccepted","onChunkComplete","_this6","promise","uploadDataDuringCreation","_addChunkToRequest","close","_handleUploadResponse","_performUpload","_this7","offset","parseInt","_this8","overridePatchMethod","_this9","setProgressHandler","_ref2","valueSize","newSize","_emitChunkComplete","openRequest","_this10","removeUpload","_this11","storedUpload","creationTime","Date","addUpload","sendRequest","remainingDelays","newOptions","entries","_ref3","_ref4","Base64","encode","category","createRequest","_ref5","_ref6","addRequestId","_sendRequest2","onBeforeRequest","onAfterResponse","isOnline","online","onLine","retryAttempt","onShouldRetry","defaultOnShouldRetry","origin","link","partSize","floor","replace","byteLength","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","fromByteArray","lookup","revLookup","Arr","_byteLength","tmp","curByte","tripletToBase64","num","encodeChunk","uint8","output","extraBytes","maxChunkLength","len2","base64","ieee754","Buffer","SlowBuffer","alloc","INSPECT_MAX_BYTES","kMaxLength","TYPED_ARRAY_SUPPORT","foo","isBuffer","buffer","byteOffset","createBuffer","RangeError","buf","encodingOrOffset","allocUnsafe","species","poolSize","fromString","ArrayBuffer","isView","fromArrayLike","isInstance","fromArrayBuffer","fromObject","assertSize","fill","encoding","checked","allocUnsafeSlow","string","isEncoding","actual","write","array","copy","numberIsNaN","data","_isBuffer","compare","x","min","list","pos","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","m","swap16","swap32","swap64","toLocaleString","equals","inspect","max","trim","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","val","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","found","j","includes","hexWrite","remaining","strLen","parsed","substr","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","toJSON","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","codePoints","fromCharCode","ret","out","toHex","bytes","newBuf","subarray","checkOffset","ext","readUIntLE","noAssert","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","checkInt","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","checkIEEE754","writeFloat","littleEndian","writeFloatLE","writeFloatBE","writeDouble","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","INVALID_BASE64_RE","base64clean","split","units","leadSurrogate","byteArray","hi","lo","src","dst","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","s","NaN","rt","abs","LN2","factory","_Base64","gBase64","noConflict","Meteor","_hasatob","atob","_hasbtoa","btoa","_hasBuffer","_TD","TextDecoder","_TE","TextEncoder","b64chs","b64tab","tab","b64re","_fromCC","_U8Afrom","it","_mkUriSafe","m0","_tidyB64","btoaPolyfill","bin","u32","c0","c1","c2","asc","pad","substring","_btoa","_fromUint8Array","u8a","maxargs","strs","fromUint8Array","urlsafe","cb_utob","cc","re_utob","utob","_encode","encodeURI","re_btou","cb_btou","cccc","cp","btou","atobPolyfill","u24","r1","r2","_atob","_toUint8Array","toUint8Array","_unURI","_decode","decode","_noEnum","extendString","_add","extendUint8Array","version","VERSION","fromBase64","toBase64","encodeURL","isValid","extendBuiltins","k","undef","decodeURIComponent","encodeURIComponent","querystring","query","parser","exec","pairs","port","protocol","required","qs","controlOrWhitespace","CRHTLF","slashes","protocolre","windowsDriveLetter","trimLeft","rules","address","isSpecial","ignore","lolcation","loc","globalVar","finaldestination","Url","unescape","pathname","href","scheme","extractProtocol","match","forwardSlashes","otherSlashes","slashesCount","rest","relative","base","path","last","unshift","up","splice","extracted","instruction","instructions","host","hostname","username","password","auth","char","ins"],"mappings":"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","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.tus = 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= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar FileReader = exports[\"default\"] = /*#__PURE__*/function () {\n function FileReader() {\n _classCallCheck(this, FileReader);\n }\n _createClass(FileReader, [{\n key: \"openFile\",\n value: function () {\n var _openFile = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(input, chunkSize) {\n var blob;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n if (!((0, _isReactNative[\"default\"])() && input && typeof input.uri !== 'undefined')) {\n _context.next = 11;\n break;\n }\n _context.prev = 1;\n _context.next = 4;\n return (0, _uriToBlob[\"default\"])(input.uri);\n case 4:\n blob = _context.sent;\n return _context.abrupt(\"return\", new _FileSource[\"default\"](blob));\n case 8:\n _context.prev = 8;\n _context.t0 = _context[\"catch\"](1);\n throw new Error(\"tus: cannot fetch `file.uri` as Blob, make sure the uri is correct and accessible. \".concat(_context.t0));\n case 11:\n if (!(typeof input.slice === 'function' && typeof input.size !== 'undefined')) {\n _context.next = 13;\n break;\n }\n return _context.abrupt(\"return\", Promise.resolve(new _FileSource[\"default\"](input)));\n case 13:\n if (!(typeof input.read === 'function')) {\n _context.next = 18;\n break;\n }\n chunkSize = Number(chunkSize);\n if (Number.isFinite(chunkSize)) {\n _context.next = 17;\n break;\n }\n return _context.abrupt(\"return\", Promise.reject(new Error('cannot create source for stream without a finite value for the `chunkSize` option')));\n case 17:\n return _context.abrupt(\"return\", Promise.resolve(new _StreamSource[\"default\"](input, chunkSize)));\n case 18:\n return _context.abrupt(\"return\", Promise.reject(new Error('source object may only be an instance of File, Blob, or Reader in this environment')));\n case 19:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[1, 8]]);\n }));\n function openFile(_x, _x2) {\n return _openFile.apply(this, arguments);\n }\n return openFile;\n }()\n }]);\n return FileReader;\n}();\n\n},{\"./isReactNative.js\":5,\"./sources/FileSource.js\":6,\"./sources/StreamSource.js\":7,\"./uriToBlob.js\":10}],2:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = fingerprint;\nvar _isReactNative = _interopRequireDefault(require(\"./isReactNative.js\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n// TODO: Differenciate between input types\n\n/**\n * Generate a fingerprint for a file which will be used the store the endpoint\n *\n * @param {File} file\n * @param {Object} options\n * @param {Function} callback\n */\nfunction fingerprint(file, options) {\n if ((0, _isReactNative[\"default\"])()) {\n return Promise.resolve(reactNativeFingerprint(file, options));\n }\n return Promise.resolve(['tus-br', file.name, file.type, file.size, file.lastModified, options.endpoint].join('-'));\n}\nfunction reactNativeFingerprint(file, options) {\n var exifHash = file.exif ? hashCode(JSON.stringify(file.exif)) : 'noexif';\n return ['tus-rn', file.name || 'noname', file.size || 'nosize', exifHash, options.endpoint].join('/');\n}\nfunction hashCode(str) {\n /* eslint-disable no-bitwise */\n // from https://stackoverflow.com/a/8831937/151666\n var hash = 0;\n if (str.length === 0) {\n return hash;\n }\n for (var i = 0; i < str.length; i++) {\n var _char = str.charCodeAt(i);\n hash = (hash << 5) - hash + _char;\n hash &= hash; // Convert to 32bit integer\n }\n return hash;\n}\n\n},{\"./isReactNative.js\":5}],3:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/* eslint-disable max-classes-per-file */\nvar XHRHttpStack = exports[\"default\"] = /*#__PURE__*/function () {\n function XHRHttpStack() {\n _classCallCheck(this, XHRHttpStack);\n }\n _createClass(XHRHttpStack, [{\n key: \"createRequest\",\n value: function createRequest(method, url) {\n return new Request(method, url);\n }\n }, {\n key: \"getName\",\n value: function getName() {\n return 'XHRHttpStack';\n }\n }]);\n return XHRHttpStack;\n}();\nvar Request = /*#__PURE__*/function () {\n function Request(method, url) {\n _classCallCheck(this, Request);\n this._xhr = new XMLHttpRequest();\n this._xhr.open(method, url, true);\n this._method = method;\n this._url = url;\n this._headers = {};\n }\n _createClass(Request, [{\n key: \"getMethod\",\n value: function getMethod() {\n return this._method;\n }\n }, {\n key: \"getURL\",\n value: function getURL() {\n return this._url;\n }\n }, {\n key: \"setHeader\",\n value: function setHeader(header, value) {\n this._xhr.setRequestHeader(header, value);\n this._headers[header] = value;\n }\n }, {\n key: \"getHeader\",\n value: function getHeader(header) {\n return this._headers[header];\n }\n }, {\n key: \"setProgressHandler\",\n value: function setProgressHandler(progressHandler) {\n // Test support for progress events before attaching an event listener\n if (!('upload' in this._xhr)) {\n return;\n }\n this._xhr.upload.onprogress = function (e) {\n if (!e.lengthComputable) {\n return;\n }\n progressHandler(e.loaded);\n };\n }\n }, {\n key: \"send\",\n value: function send() {\n var _this = this;\n var body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n return new Promise(function (resolve, reject) {\n _this._xhr.onload = function () {\n resolve(new Response(_this._xhr));\n };\n _this._xhr.onerror = function (err) {\n reject(err);\n };\n _this._xhr.send(body);\n });\n }\n }, {\n key: \"abort\",\n value: function abort() {\n this._xhr.abort();\n return Promise.resolve();\n }\n }, {\n key: \"getUnderlyingObject\",\n value: function getUnderlyingObject() {\n return this._xhr;\n }\n }]);\n return Request;\n}();\nvar Response = /*#__PURE__*/function () {\n function Response(xhr) {\n _classCallCheck(this, Response);\n this._xhr = xhr;\n }\n _createClass(Response, [{\n key: \"getStatus\",\n value: function getStatus() {\n return this._xhr.status;\n }\n }, {\n key: \"getHeader\",\n value: function getHeader(header) {\n return this._xhr.getResponseHeader(header);\n }\n }, {\n key: \"getBody\",\n value: function getBody() {\n return this._xhr.responseText;\n }\n }, {\n key: \"getUnderlyingObject\",\n value: function getUnderlyingObject() {\n return this._xhr;\n }\n }]);\n return Response;\n}();\n\n},{}],4:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"DefaultHttpStack\", {\n enumerable: true,\n get: function get() {\n return _httpStack[\"default\"];\n }\n});\nObject.defineProperty(exports, \"DetailedError\", {\n enumerable: true,\n get: function get() {\n return _error[\"default\"];\n }\n});\nexports.Upload = void 0;\nObject.defineProperty(exports, \"canStoreURLs\", {\n enumerable: true,\n get: function get() {\n return _urlStorage.canStoreURLs;\n }\n});\nexports.defaultOptions = void 0;\nObject.defineProperty(exports, \"enableDebugLog\", {\n enumerable: true,\n get: function get() {\n return _logger.enableDebugLog;\n }\n});\nexports.isSupported = void 0;\nvar _upload = _interopRequireDefault(require(\"../upload.js\"));\nvar _noopUrlStorage = _interopRequireDefault(require(\"../noopUrlStorage.js\"));\nvar _logger = require(\"../logger.js\");\nvar _error = _interopRequireDefault(require(\"../error.js\"));\nvar _urlStorage = require(\"./urlStorage.js\");\nvar _httpStack = _interopRequireDefault(require(\"./httpStack.js\"));\nvar _fileReader = _interopRequireDefault(require(\"./fileReader.js\"));\nvar _fileSignature = _interopRequireDefault(require(\"./fileSignature.js\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar defaultOptions = exports.defaultOptions = _objectSpread(_objectSpread({}, _upload[\"default\"].defaultOptions), {}, {\n httpStack: new _httpStack[\"default\"](),\n fileReader: new _fileReader[\"default\"](),\n urlStorage: _urlStorage.canStoreURLs ? new _urlStorage.WebStorageUrlStorage() : new _noopUrlStorage[\"default\"](),\n fingerprint: _fileSignature[\"default\"]\n});\nvar Upload = exports.Upload = /*#__PURE__*/function (_BaseUpload) {\n _inherits(Upload, _BaseUpload);\n var _super = _createSuper(Upload);\n function Upload() {\n var file = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Upload);\n options = _objectSpread(_objectSpread({}, defaultOptions), options);\n return _super.call(this, file, options);\n }\n _createClass(Upload, null, [{\n key: \"terminate\",\n value: function terminate(url) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n options = _objectSpread(_objectSpread({}, defaultOptions), options);\n return _upload[\"default\"].terminate(url, options);\n }\n }]);\n return Upload;\n}(_upload[\"default\"]); // Note: We don't reference `window` here because these classes also exist in a Web Worker's context.\nvar isSupported = exports.isSupported = typeof XMLHttpRequest === 'function' && typeof Blob === 'function' && typeof Blob.prototype.slice === 'function';\n\n},{\"../error.js\":12,\"../logger.js\":13,\"../noopUrlStorage.js\":14,\"../upload.js\":15,\"./fileReader.js\":1,\"./fileSignature.js\":2,\"./httpStack.js\":3,\"./urlStorage.js\":11}],5:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar isReactNative = function isReactNative() {\n return typeof navigator !== 'undefined' && typeof navigator.product === 'string' && navigator.product.toLowerCase() === 'reactnative';\n};\nvar _default = exports[\"default\"] = isReactNative;\n\n},{}],6:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _isCordova = _interopRequireDefault(require(\"./isCordova.js\"));\nvar _readAsByteArray = _interopRequireDefault(require(\"./readAsByteArray.js\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar FileSource = exports[\"default\"] = /*#__PURE__*/function () {\n // Make this.size a method\n function FileSource(file) {\n _classCallCheck(this, FileSource);\n this._file = file;\n this.size = file.size;\n }\n _createClass(FileSource, [{\n key: \"slice\",\n value: function slice(start, end) {\n // In Apache Cordova applications, a File must be resolved using\n // FileReader instances, see\n // https://cordova.apache.org/docs/en/8.x/reference/cordova-plugin-file/index.html#read-a-file\n if ((0, _isCordova[\"default\"])()) {\n return (0, _readAsByteArray[\"default\"])(this._file.slice(start, end));\n }\n var value = this._file.slice(start, end);\n var done = end >= this.size;\n return Promise.resolve({\n value: value,\n done: done\n });\n }\n }, {\n key: \"close\",\n value: function close() {\n // Nothing to do here since we don't need to release any resources.\n }\n }]);\n return FileSource;\n}();\n\n},{\"./isCordova.js\":8,\"./readAsByteArray.js\":9}],7:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction len(blobOrArray) {\n if (blobOrArray === undefined) return 0;\n if (blobOrArray.size !== undefined) return blobOrArray.size;\n return blobOrArray.length;\n}\n\n/*\n Typed arrays and blobs don't have a concat method.\n This function helps StreamSource accumulate data to reach chunkSize.\n*/\nfunction concat(a, b) {\n if (a.concat) {\n // Is `a` an Array?\n return a.concat(b);\n }\n if (a instanceof Blob) {\n return new Blob([a, b], {\n type: a.type\n });\n }\n if (a.set) {\n // Is `a` a typed array?\n var c = new a.constructor(a.length + b.length);\n c.set(a);\n c.set(b, a.length);\n return c;\n }\n throw new Error('Unknown data type');\n}\nvar StreamSource = exports[\"default\"] = /*#__PURE__*/function () {\n function StreamSource(reader) {\n _classCallCheck(this, StreamSource);\n this._buffer = undefined;\n this._bufferOffset = 0;\n this._reader = reader;\n this._done = false;\n }\n _createClass(StreamSource, [{\n key: \"slice\",\n value: function slice(start, end) {\n if (start < this._bufferOffset) {\n return Promise.reject(new Error(\"Requested data is before the reader's current offset\"));\n }\n return this._readUntilEnoughDataOrDone(start, end);\n }\n }, {\n key: \"_readUntilEnoughDataOrDone\",\n value: function _readUntilEnoughDataOrDone(start, end) {\n var _this = this;\n var hasEnoughData = end <= this._bufferOffset + len(this._buffer);\n if (this._done || hasEnoughData) {\n var value = this._getDataFromBuffer(start, end);\n var done = value == null ? this._done : false;\n return Promise.resolve({\n value: value,\n done: done\n });\n }\n return this._reader.read().then(function (_ref) {\n var value = _ref.value,\n done = _ref.done;\n if (done) {\n _this._done = true;\n } else if (_this._buffer === undefined) {\n _this._buffer = value;\n } else {\n _this._buffer = concat(_this._buffer, value);\n }\n return _this._readUntilEnoughDataOrDone(start, end);\n });\n }\n }, {\n key: \"_getDataFromBuffer\",\n value: function _getDataFromBuffer(start, end) {\n // Remove data from buffer before `start`.\n // Data might be reread from the buffer if an upload fails, so we can only\n // safely delete data when it comes *before* what is currently being read.\n if (start > this._bufferOffset) {\n this._buffer = this._buffer.slice(start - this._bufferOffset);\n this._bufferOffset = start;\n }\n // If the buffer is empty after removing old data, all data has been read.\n var hasAllDataBeenRead = len(this._buffer) === 0;\n if (this._done && hasAllDataBeenRead) {\n return null;\n }\n // We already removed data before `start`, so we just return the first\n // chunk from the buffer.\n return this._buffer.slice(0, end - start);\n }\n }, {\n key: \"close\",\n value: function close() {\n if (this._reader.cancel) {\n this._reader.cancel();\n }\n }\n }]);\n return StreamSource;\n}();\n\n},{}],8:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar isCordova = function isCordova() {\n return typeof window !== 'undefined' && (typeof window.PhoneGap !== 'undefined' || typeof window.Cordova !== 'undefined' || typeof window.cordova !== 'undefined');\n};\nvar _default = exports[\"default\"] = isCordova;\n\n},{}],9:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = readAsByteArray;\n/**\n * readAsByteArray converts a File object to a Uint8Array.\n * This function is only used on the Apache Cordova platform.\n * See https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/index.html#read-a-file\n */\nfunction readAsByteArray(chunk) {\n return new Promise(function (resolve, reject) {\n var reader = new FileReader();\n reader.onload = function () {\n var value = new Uint8Array(reader.result);\n resolve({\n value: value\n });\n };\n reader.onerror = function (err) {\n reject(err);\n };\n reader.readAsArrayBuffer(chunk);\n });\n}\n\n},{}],10:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = uriToBlob;\n/**\n * uriToBlob resolves a URI to a Blob object. This is used for\n * React Native to retrieve a file (identified by a file://\n * URI) as a blob.\n */\nfunction uriToBlob(uri) {\n return new Promise(function (resolve, reject) {\n var xhr = new XMLHttpRequest();\n xhr.responseType = 'blob';\n xhr.onload = function () {\n var blob = xhr.response;\n resolve(blob);\n };\n xhr.onerror = function (err) {\n reject(err);\n };\n xhr.open('GET', uri);\n xhr.send();\n });\n}\n\n},{}],11:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canStoreURLs = exports.WebStorageUrlStorage = void 0;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar hasStorage = false;\ntry {\n // Note: localStorage does not exist in the Web Worker's context, so we must use window here.\n hasStorage = 'localStorage' in window;\n\n // Attempt to store and read entries from the local storage to detect Private\n // Mode on Safari on iOS (see #49)\n // If the key was not used before, we remove it from local storage again to\n // not cause confusion where the entry came from.\n var key = 'tusSupport';\n var originalValue = localStorage.getItem(key);\n localStorage.setItem(key, originalValue);\n if (originalValue === null) localStorage.removeItem(key);\n} catch (e) {\n // If we try to access localStorage inside a sandboxed iframe, a SecurityError\n // is thrown. When in private mode on iOS Safari, a QuotaExceededError is\n // thrown (see #49)\n if (e.code === e.SECURITY_ERR || e.code === e.QUOTA_EXCEEDED_ERR) {\n hasStorage = false;\n } else {\n throw e;\n }\n}\nvar canStoreURLs = exports.canStoreURLs = hasStorage;\nvar WebStorageUrlStorage = exports.WebStorageUrlStorage = /*#__PURE__*/function () {\n function WebStorageUrlStorage() {\n _classCallCheck(this, WebStorageUrlStorage);\n }\n _createClass(WebStorageUrlStorage, [{\n key: \"findAllUploads\",\n value: function findAllUploads() {\n var results = this._findEntries('tus::');\n return Promise.resolve(results);\n }\n }, {\n key: \"findUploadsByFingerprint\",\n value: function findUploadsByFingerprint(fingerprint) {\n var results = this._findEntries(\"tus::\".concat(fingerprint, \"::\"));\n return Promise.resolve(results);\n }\n }, {\n key: \"removeUpload\",\n value: function removeUpload(urlStorageKey) {\n localStorage.removeItem(urlStorageKey);\n return Promise.resolve();\n }\n }, {\n key: \"addUpload\",\n value: function addUpload(fingerprint, upload) {\n var id = Math.round(Math.random() * 1e12);\n var key = \"tus::\".concat(fingerprint, \"::\").concat(id);\n localStorage.setItem(key, JSON.stringify(upload));\n return Promise.resolve(key);\n }\n }, {\n key: \"_findEntries\",\n value: function _findEntries(prefix) {\n var results = [];\n for (var i = 0; i < localStorage.length; i++) {\n var _key = localStorage.key(i);\n if (_key.indexOf(prefix) !== 0) continue;\n try {\n var upload = JSON.parse(localStorage.getItem(_key));\n upload.urlStorageKey = _key;\n results.push(upload);\n } catch (e) {\n // The JSON parse error is intentionally ignored here, so a malformed\n // entry in the storage cannot prevent an upload.\n }\n }\n return results;\n }\n }]);\n return WebStorageUrlStorage;\n}();\n\n},{}],12:[function(require,module,exports){\n\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _isNativeFunction(fn) { try { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; } catch (e) { return typeof fn === \"function\"; } }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nvar DetailedError = /*#__PURE__*/function (_Error) {\n _inherits(DetailedError, _Error);\n var _super = _createSuper(DetailedError);\n function DetailedError(message) {\n var _this;\n var causingErr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var req = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var res = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n _classCallCheck(this, DetailedError);\n _this = _super.call(this, message);\n _this.originalRequest = req;\n _this.originalResponse = res;\n _this.causingError = causingErr;\n if (causingErr != null) {\n message += \", caused by \".concat(causingErr.toString());\n }\n if (req != null) {\n var requestId = req.getHeader('X-Request-ID') || 'n/a';\n var method = req.getMethod();\n var url = req.getURL();\n var status = res ? res.getStatus() : 'n/a';\n var body = res ? res.getBody() || '' : 'n/a';\n message += \", originated from request (method: \".concat(method, \", url: \").concat(url, \", response code: \").concat(status, \", response text: \").concat(body, \", request id: \").concat(requestId, \")\");\n }\n _this.message = message;\n return _this;\n }\n return _createClass(DetailedError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\nvar _default = exports[\"default\"] = DetailedError;\n\n},{}],13:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.enableDebugLog = enableDebugLog;\nexports.log = log;\n/* eslint no-console: \"off\" */\n\nvar isEnabled = false;\nfunction enableDebugLog() {\n isEnabled = true;\n}\nfunction log(msg) {\n if (!isEnabled) return;\n console.log(msg);\n}\n\n},{}],14:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/* eslint no-unused-vars: \"off\" */\nvar NoopUrlStorage = exports[\"default\"] = /*#__PURE__*/function () {\n function NoopUrlStorage() {\n _classCallCheck(this, NoopUrlStorage);\n }\n _createClass(NoopUrlStorage, [{\n key: \"listAllUploads\",\n value: function listAllUploads() {\n return Promise.resolve([]);\n }\n }, {\n key: \"findUploadsByFingerprint\",\n value: function findUploadsByFingerprint(fingerprint) {\n return Promise.resolve([]);\n }\n }, {\n key: \"removeUpload\",\n value: function removeUpload(urlStorageKey) {\n return Promise.resolve();\n }\n }, {\n key: \"addUpload\",\n value: function addUpload(fingerprint, upload) {\n return Promise.resolve(null);\n }\n }]);\n return NoopUrlStorage;\n}();\n\n},{}],15:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _jsBase = require(\"js-base64\");\nvar _urlParse = _interopRequireDefault(require(\"url-parse\"));\nvar _error = _interopRequireDefault(require(\"./error.js\"));\nvar _logger = require(\"./logger.js\");\nvar _uuid = _interopRequireDefault(require(\"./uuid.js\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\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); }\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; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar defaultOptions = {\n endpoint: null,\n uploadUrl: null,\n metadata: {},\n fingerprint: null,\n uploadSize: null,\n onProgress: null,\n onChunkComplete: null,\n onSuccess: null,\n onError: null,\n onUploadUrlAvailable: null,\n overridePatchMethod: false,\n headers: {},\n addRequestId: false,\n onBeforeRequest: null,\n onAfterResponse: null,\n onShouldRetry: defaultOnShouldRetry,\n chunkSize: Infinity,\n retryDelays: [0, 1000, 3000, 5000],\n parallelUploads: 1,\n parallelUploadBoundaries: null,\n storeFingerprintForResuming: true,\n removeFingerprintOnSuccess: false,\n uploadLengthDeferred: false,\n uploadDataDuringCreation: false,\n urlStorage: null,\n fileReader: null,\n httpStack: null\n};\nvar BaseUpload = /*#__PURE__*/function () {\n function BaseUpload(file, options) {\n _classCallCheck(this, BaseUpload);\n // Warn about removed options from previous versions\n if ('resume' in options) {\n // eslint-disable-next-line no-console\n console.log('tus: The `resume` option has been removed in tus-js-client v2. Please use the URL storage API instead.');\n }\n\n // The default options will already be added from the wrapper classes.\n this.options = options;\n\n // Cast chunkSize to integer\n this.options.chunkSize = Number(this.options.chunkSize);\n\n // The storage module used to store URLs\n this._urlStorage = this.options.urlStorage;\n\n // The underlying File/Blob object\n this.file = file;\n\n // The URL against which the file will be uploaded\n this.url = null;\n\n // The underlying request object for the current PATCH request\n this._req = null;\n\n // The fingerpinrt for the current file (set after start())\n this._fingerprint = null;\n\n // The key that the URL storage returned when saving an URL with a fingerprint,\n this._urlStorageKey = null;\n\n // The offset used in the current PATCH request\n this._offset = null;\n\n // True if the current PATCH request has been aborted\n this._aborted = false;\n\n // The file's size in bytes\n this._size = null;\n\n // The Source object which will wrap around the given file and provides us\n // with a unified interface for getting its size and slice chunks from its\n // content allowing us to easily handle Files, Blobs, Buffers and Streams.\n this._source = null;\n\n // The current count of attempts which have been made. Zero indicates none.\n this._retryAttempt = 0;\n\n // The timeout's ID which is used to delay the next retry\n this._retryTimeout = null;\n\n // The offset of the remote upload before the latest attempt was started.\n this._offsetBeforeRetry = 0;\n\n // An array of BaseUpload instances which are used for uploading the different\n // parts, if the parallelUploads option is used.\n this._parallelUploads = null;\n\n // An array of upload URLs which are used for uploading the different\n // parts, if the parallelUploads option is used.\n this._parallelUploadUrls = null;\n }\n\n /**\n * Use the Termination extension to delete an upload from the server by sending a DELETE\n * request to the specified upload URL. This is only possible if the server supports the\n * Termination extension. If the `options.retryDelays` property is set, the method will\n * also retry if an error ocurrs.\n *\n * @param {String} url The upload's URL which will be terminated.\n * @param {object} options Optional options for influencing HTTP requests.\n * @return {Promise} The Promise will be resolved/rejected when the requests finish.\n */\n _createClass(BaseUpload, [{\n key: \"findPreviousUploads\",\n value: function findPreviousUploads() {\n var _this = this;\n return this.options.fingerprint(this.file, this.options).then(function (fingerprint) {\n return _this._urlStorage.findUploadsByFingerprint(fingerprint);\n });\n }\n }, {\n key: \"resumeFromPreviousUpload\",\n value: function resumeFromPreviousUpload(previousUpload) {\n this.url = previousUpload.uploadUrl || null;\n this._parallelUploadUrls = previousUpload.parallelUploadUrls || null;\n this._urlStorageKey = previousUpload.urlStorageKey;\n }\n }, {\n key: \"start\",\n value: function start() {\n var _this2 = this;\n var file = this.file;\n if (!file) {\n this._emitError(new Error('tus: no file or stream to upload provided'));\n return;\n }\n if (!this.options.endpoint && !this.options.uploadUrl && !this.url) {\n this._emitError(new Error('tus: neither an endpoint or an upload URL is provided'));\n return;\n }\n var retryDelays = this.options.retryDelays;\n if (retryDelays != null && Object.prototype.toString.call(retryDelays) !== '[object Array]') {\n this._emitError(new Error('tus: the `retryDelays` option must either be an array or null'));\n return;\n }\n if (this.options.parallelUploads > 1) {\n // Test which options are incompatible with parallel uploads.\n for (var _i = 0, _arr = ['uploadUrl', 'uploadSize', 'uploadLengthDeferred']; _i < _arr.length; _i++) {\n var optionName = _arr[_i];\n if (this.options[optionName]) {\n this._emitError(new Error(\"tus: cannot use the \".concat(optionName, \" option when parallelUploads is enabled\")));\n return;\n }\n }\n }\n if (this.options.parallelUploadBoundaries) {\n if (this.options.parallelUploads <= 1) {\n this._emitError(new Error('tus: cannot use the `parallelUploadBoundaries` option when `parallelUploads` is disabled'));\n return;\n }\n if (this.options.parallelUploads !== this.options.parallelUploadBoundaries.length) {\n this._emitError(new Error('tus: the `parallelUploadBoundaries` must have the same length as the value of `parallelUploads`'));\n return;\n }\n }\n this.options.fingerprint(file, this.options).then(function (fingerprint) {\n if (fingerprint == null) {\n (0, _logger.log)('No fingerprint was calculated meaning that the upload cannot be stored in the URL storage.');\n } else {\n (0, _logger.log)(\"Calculated fingerprint: \".concat(fingerprint));\n }\n _this2._fingerprint = fingerprint;\n if (_this2._source) {\n return _this2._source;\n }\n return _this2.options.fileReader.openFile(file, _this2.options.chunkSize);\n }).then(function (source) {\n _this2._source = source;\n\n // First, we look at the uploadLengthDeferred option.\n // Next, we check if the caller has supplied a manual upload size.\n // Finally, we try to use the calculated size from the source object.\n if (_this2.options.uploadLengthDeferred) {\n _this2._size = null;\n } else if (_this2.options.uploadSize != null) {\n _this2._size = Number(_this2.options.uploadSize);\n if (Number.isNaN(_this2._size)) {\n _this2._emitError(new Error('tus: cannot convert `uploadSize` option into a number'));\n return;\n }\n } else {\n _this2._size = _this2._source.size;\n if (_this2._size == null) {\n _this2._emitError(new Error(\"tus: cannot automatically derive upload's size from input. Specify it manually using the `uploadSize` option or use the `uploadLengthDeferred` option\"));\n return;\n }\n }\n\n // If the upload was configured to use multiple requests or if we resume from\n // an upload which used multiple requests, we start a parallel upload.\n if (_this2.options.parallelUploads > 1 || _this2._parallelUploadUrls != null) {\n _this2._startParallelUpload();\n } else {\n _this2._startSingleUpload();\n }\n })[\"catch\"](function (err) {\n _this2._emitError(err);\n });\n }\n\n /**\n * Initiate the uploading procedure for a parallelized upload, where one file is split into\n * multiple request which are run in parallel.\n *\n * @api private\n */\n }, {\n key: \"_startParallelUpload\",\n value: function _startParallelUpload() {\n var _this$options$paralle,\n _this3 = this;\n var totalSize = this._size;\n var totalProgress = 0;\n this._parallelUploads = [];\n var partCount = this._parallelUploadUrls != null ? this._parallelUploadUrls.length : this.options.parallelUploads;\n\n // The input file will be split into multiple slices which are uploaded in separate\n // requests. Here we get the start and end position for the slices.\n var parts = (_this$options$paralle = this.options.parallelUploadBoundaries) !== null && _this$options$paralle !== void 0 ? _this$options$paralle : splitSizeIntoParts(this._source.size, partCount);\n\n // Attach URLs from previous uploads, if available.\n if (this._parallelUploadUrls) {\n parts.forEach(function (part, index) {\n part.uploadUrl = _this3._parallelUploadUrls[index] || null;\n });\n }\n\n // Create an empty list for storing the upload URLs\n this._parallelUploadUrls = new Array(parts.length);\n\n // Generate a promise for each slice that will be resolve if the respective\n // upload is completed.\n var uploads = parts.map(function (part, index) {\n var lastPartProgress = 0;\n return _this3._source.slice(part.start, part.end).then(function (_ref) {\n var value = _ref.value;\n return new Promise(function (resolve, reject) {\n // Merge with the user supplied options but overwrite some values.\n var options = _objectSpread(_objectSpread({}, _this3.options), {}, {\n // If available, the partial upload should be resumed from a previous URL.\n uploadUrl: part.uploadUrl || null,\n // We take manually care of resuming for partial uploads, so they should\n // not be stored in the URL storage.\n storeFingerprintForResuming: false,\n removeFingerprintOnSuccess: false,\n // Reset the parallelUploads option to not cause recursion.\n parallelUploads: 1,\n // Reset this option as we are not doing a parallel upload.\n parallelUploadBoundaries: null,\n metadata: {},\n // Add the header to indicate the this is a partial upload.\n headers: _objectSpread(_objectSpread({}, _this3.options.headers), {}, {\n 'Upload-Concat': 'partial'\n }),\n // Reject or resolve the promise if the upload errors or completes.\n onSuccess: resolve,\n onError: reject,\n // Based in the progress for this partial upload, calculate the progress\n // for the entire final upload.\n onProgress: function onProgress(newPartProgress) {\n totalProgress = totalProgress - lastPartProgress + newPartProgress;\n lastPartProgress = newPartProgress;\n _this3._emitProgress(totalProgress, totalSize);\n },\n // Wait until every partial upload has an upload URL, so we can add\n // them to the URL storage.\n onUploadUrlAvailable: function onUploadUrlAvailable() {\n _this3._parallelUploadUrls[index] = upload.url;\n // Test if all uploads have received an URL\n if (_this3._parallelUploadUrls.filter(function (u) {\n return Boolean(u);\n }).length === parts.length) {\n _this3._saveUploadInUrlStorage();\n }\n }\n });\n var upload = new BaseUpload(value, options);\n upload.start();\n\n // Store the upload in an array, so we can later abort them if necessary.\n _this3._parallelUploads.push(upload);\n });\n });\n });\n var req;\n // Wait until all partial uploads are finished and we can send the POST request for\n // creating the final upload.\n Promise.all(uploads).then(function () {\n req = _this3._openRequest('POST', _this3.options.endpoint);\n req.setHeader('Upload-Concat', \"final;\".concat(_this3._parallelUploadUrls.join(' ')));\n\n // Add metadata if values have been added\n var metadata = encodeMetadata(_this3.options.metadata);\n if (metadata !== '') {\n req.setHeader('Upload-Metadata', metadata);\n }\n return _this3._sendRequest(req, null);\n }).then(function (res) {\n if (!inStatusCategory(res.getStatus(), 200)) {\n _this3._emitHttpError(req, res, 'tus: unexpected response while creating upload');\n return;\n }\n var location = res.getHeader('Location');\n if (location == null) {\n _this3._emitHttpError(req, res, 'tus: invalid or missing Location header');\n return;\n }\n _this3.url = resolveUrl(_this3.options.endpoint, location);\n (0, _logger.log)(\"Created upload at \".concat(_this3.url));\n _this3._emitSuccess();\n })[\"catch\"](function (err) {\n _this3._emitError(err);\n });\n }\n\n /**\n * Initiate the uploading procedure for a non-parallel upload. Here the entire file is\n * uploaded in a sequential matter.\n *\n * @api private\n */\n }, {\n key: \"_startSingleUpload\",\n value: function _startSingleUpload() {\n // Reset the aborted flag when the upload is started or else the\n // _performUpload will stop before sending a request if the upload has been\n // aborted previously.\n this._aborted = false;\n\n // The upload had been started previously and we should reuse this URL.\n if (this.url != null) {\n (0, _logger.log)(\"Resuming upload from previous URL: \".concat(this.url));\n this._resumeUpload();\n return;\n }\n\n // A URL has manually been specified, so we try to resume\n if (this.options.uploadUrl != null) {\n (0, _logger.log)(\"Resuming upload from provided URL: \".concat(this.options.uploadUrl));\n this.url = this.options.uploadUrl;\n this._resumeUpload();\n return;\n }\n\n // An upload has not started for the file yet, so we start a new one\n (0, _logger.log)('Creating a new upload');\n this._createUpload();\n }\n\n /**\n * Abort any running request and stop the current upload. After abort is called, no event\n * handler will be invoked anymore. You can use the `start` method to resume the upload\n * again.\n * If `shouldTerminate` is true, the `terminate` function will be called to remove the\n * current upload from the server.\n *\n * @param {boolean} shouldTerminate True if the upload should be deleted from the server.\n * @return {Promise} The Promise will be resolved/rejected when the requests finish.\n */\n }, {\n key: \"abort\",\n value: function abort(shouldTerminate) {\n var _this4 = this;\n // Stop any parallel partial uploads, that have been started in _startParallelUploads.\n if (this._parallelUploads != null) {\n this._parallelUploads.forEach(function (upload) {\n upload.abort(shouldTerminate);\n });\n }\n\n // Stop any current running request.\n if (this._req !== null) {\n this._req.abort();\n // Note: We do not close the file source here, so the user can resume in the future.\n }\n this._aborted = true;\n\n // Stop any timeout used for initiating a retry.\n if (this._retryTimeout != null) {\n clearTimeout(this._retryTimeout);\n this._retryTimeout = null;\n }\n if (!shouldTerminate || this.url == null) {\n return Promise.resolve();\n }\n return BaseUpload.terminate(this.url, this.options)\n // Remove entry from the URL storage since the upload URL is no longer valid.\n .then(function () {\n return _this4._removeFromUrlStorage();\n });\n }\n }, {\n key: \"_emitHttpError\",\n value: function _emitHttpError(req, res, message, causingErr) {\n this._emitError(new _error[\"default\"](message, causingErr, req, res));\n }\n }, {\n key: \"_emitError\",\n value: function _emitError(err) {\n var _this5 = this;\n // Do not emit errors, e.g. from aborted HTTP requests, if the upload has been stopped.\n if (this._aborted) return;\n\n // Check if we should retry, when enabled, before sending the error to the user.\n if (this.options.retryDelays != null) {\n // We will reset the attempt counter if\n // - we were already able to connect to the server (offset != null) and\n // - we were able to upload a small chunk of data to the server\n var shouldResetDelays = this._offset != null && this._offset > this._offsetBeforeRetry;\n if (shouldResetDelays) {\n this._retryAttempt = 0;\n }\n if (shouldRetry(err, this._retryAttempt, this.options)) {\n var delay = this.options.retryDelays[this._retryAttempt++];\n this._offsetBeforeRetry = this._offset;\n this._retryTimeout = setTimeout(function () {\n _this5.start();\n }, delay);\n return;\n }\n }\n if (typeof this.options.onError === 'function') {\n this.options.onError(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Publishes notification if the upload has been successfully completed.\n *\n * @api private\n */\n }, {\n key: \"_emitSuccess\",\n value: function _emitSuccess() {\n if (this.options.removeFingerprintOnSuccess) {\n // Remove stored fingerprint and corresponding endpoint. This causes\n // new uploads of the same file to be treated as a different file.\n this._removeFromUrlStorage();\n }\n if (typeof this.options.onSuccess === 'function') {\n this.options.onSuccess();\n }\n }\n\n /**\n * Publishes notification when data has been sent to the server. This\n * data may not have been accepted by the server yet.\n *\n * @param {number} bytesSent Number of bytes sent to the server.\n * @param {number} bytesTotal Total number of bytes to be sent to the server.\n * @api private\n */\n }, {\n key: \"_emitProgress\",\n value: function _emitProgress(bytesSent, bytesTotal) {\n if (typeof this.options.onProgress === 'function') {\n this.options.onProgress(bytesSent, bytesTotal);\n }\n }\n\n /**\n * Publishes notification when a chunk of data has been sent to the server\n * and accepted by the server.\n * @param {number} chunkSize Size of the chunk that was accepted by the server.\n * @param {number} bytesAccepted Total number of bytes that have been\n * accepted by the server.\n * @param {number} bytesTotal Total number of bytes to be sent to the server.\n * @api private\n */\n }, {\n key: \"_emitChunkComplete\",\n value: function _emitChunkComplete(chunkSize, bytesAccepted, bytesTotal) {\n if (typeof this.options.onChunkComplete === 'function') {\n this.options.onChunkComplete(chunkSize, bytesAccepted, bytesTotal);\n }\n }\n\n /**\n * Create a new upload using the creation extension by sending a POST\n * request to the endpoint. After successful creation the file will be\n * uploaded\n *\n * @api private\n */\n }, {\n key: \"_createUpload\",\n value: function _createUpload() {\n var _this6 = this;\n if (!this.options.endpoint) {\n this._emitError(new Error('tus: unable to create upload because no endpoint is provided'));\n return;\n }\n var req = this._openRequest('POST', this.options.endpoint);\n if (this.options.uploadLengthDeferred) {\n req.setHeader('Upload-Defer-Length', 1);\n } else {\n req.setHeader('Upload-Length', this._size);\n }\n\n // Add metadata if values have been added\n var metadata = encodeMetadata(this.options.metadata);\n if (metadata !== '') {\n req.setHeader('Upload-Metadata', metadata);\n }\n var promise;\n if (this.options.uploadDataDuringCreation && !this.options.uploadLengthDeferred) {\n this._offset = 0;\n promise = this._addChunkToRequest(req);\n } else {\n promise = this._sendRequest(req, null);\n }\n promise.then(function (res) {\n if (!inStatusCategory(res.getStatus(), 200)) {\n _this6._emitHttpError(req, res, 'tus: unexpected response while creating upload');\n return;\n }\n var location = res.getHeader('Location');\n if (location == null) {\n _this6._emitHttpError(req, res, 'tus: invalid or missing Location header');\n return;\n }\n _this6.url = resolveUrl(_this6.options.endpoint, location);\n (0, _logger.log)(\"Created upload at \".concat(_this6.url));\n if (typeof _this6.options.onUploadUrlAvailable === 'function') {\n _this6.options.onUploadUrlAvailable();\n }\n if (_this6._size === 0) {\n // Nothing to upload and file was successfully created\n _this6._emitSuccess();\n _this6._source.close();\n return;\n }\n _this6._saveUploadInUrlStorage().then(function () {\n if (_this6.options.uploadDataDuringCreation) {\n _this6._handleUploadResponse(req, res);\n } else {\n _this6._offset = 0;\n _this6._performUpload();\n }\n });\n })[\"catch\"](function (err) {\n _this6._emitHttpError(req, null, 'tus: failed to create upload', err);\n });\n }\n\n /*\n * Try to resume an existing upload. First a HEAD request will be sent\n * to retrieve the offset. If the request fails a new upload will be\n * created. In the case of a successful response the file will be uploaded.\n *\n * @api private\n */\n }, {\n key: \"_resumeUpload\",\n value: function _resumeUpload() {\n var _this7 = this;\n var req = this._openRequest('HEAD', this.url);\n var promise = this._sendRequest(req, null);\n promise.then(function (res) {\n var status = res.getStatus();\n if (!inStatusCategory(status, 200)) {\n // If the upload is locked (indicated by the 423 Locked status code), we\n // emit an error instead of directly starting a new upload. This way the\n // retry logic can catch the error and will retry the upload. An upload\n // is usually locked for a short period of time and will be available\n // afterwards.\n if (status === 423) {\n _this7._emitHttpError(req, res, 'tus: upload is currently locked; retry later');\n return;\n }\n if (inStatusCategory(status, 400)) {\n // Remove stored fingerprint and corresponding endpoint,\n // on client errors since the file can not be found\n _this7._removeFromUrlStorage();\n }\n if (!_this7.options.endpoint) {\n // Don't attempt to create a new upload if no endpoint is provided.\n _this7._emitHttpError(req, res, 'tus: unable to resume upload (new upload cannot be created without an endpoint)');\n return;\n }\n\n // Try to create a new upload\n _this7.url = null;\n _this7._createUpload();\n return;\n }\n var offset = parseInt(res.getHeader('Upload-Offset'), 10);\n if (Number.isNaN(offset)) {\n _this7._emitHttpError(req, res, 'tus: invalid or missing offset value');\n return;\n }\n var length = parseInt(res.getHeader('Upload-Length'), 10);\n if (Number.isNaN(length) && !_this7.options.uploadLengthDeferred) {\n _this7._emitHttpError(req, res, 'tus: invalid or missing length value');\n return;\n }\n if (typeof _this7.options.onUploadUrlAvailable === 'function') {\n _this7.options.onUploadUrlAvailable();\n }\n _this7._saveUploadInUrlStorage().then(function () {\n // Upload has already been completed and we do not need to send additional\n // data to the server\n if (offset === length) {\n _this7._emitProgress(length, length);\n _this7._emitSuccess();\n return;\n }\n _this7._offset = offset;\n _this7._performUpload();\n });\n })[\"catch\"](function (err) {\n _this7._emitHttpError(req, null, 'tus: failed to resume upload', err);\n });\n }\n\n /**\n * Start uploading the file using PATCH requests. The file will be divided\n * into chunks as specified in the chunkSize option. During the upload\n * the onProgress event handler may be invoked multiple times.\n *\n * @api private\n */\n }, {\n key: \"_performUpload\",\n value: function _performUpload() {\n var _this8 = this;\n // If the upload has been aborted, we will not send the next PATCH request.\n // This is important if the abort method was called during a callback, such\n // as onChunkComplete or onProgress.\n if (this._aborted) {\n return;\n }\n var req;\n\n // Some browser and servers may not support the PATCH method. For those\n // cases, you can tell tus-js-client to use a POST request with the\n // X-HTTP-Method-Override header for simulating a PATCH request.\n if (this.options.overridePatchMethod) {\n req = this._openRequest('POST', this.url);\n req.setHeader('X-HTTP-Method-Override', 'PATCH');\n } else {\n req = this._openRequest('PATCH', this.url);\n }\n req.setHeader('Upload-Offset', this._offset);\n var promise = this._addChunkToRequest(req);\n promise.then(function (res) {\n if (!inStatusCategory(res.getStatus(), 200)) {\n _this8._emitHttpError(req, res, 'tus: unexpected response while uploading chunk');\n return;\n }\n _this8._handleUploadResponse(req, res);\n })[\"catch\"](function (err) {\n // Don't emit an error if the upload was aborted manually\n if (_this8._aborted) {\n return;\n }\n _this8._emitHttpError(req, null, \"tus: failed to upload chunk at offset \".concat(_this8._offset), err);\n });\n }\n\n /**\n * _addChunktoRequest reads a chunk from the source and sends it using the\n * supplied request object. It will not handle the response.\n *\n * @api private\n */\n }, {\n key: \"_addChunkToRequest\",\n value: function _addChunkToRequest(req) {\n var _this9 = this;\n var start = this._offset;\n var end = this._offset + this.options.chunkSize;\n req.setProgressHandler(function (bytesSent) {\n _this9._emitProgress(start + bytesSent, _this9._size);\n });\n req.setHeader('Content-Type', 'application/offset+octet-stream');\n\n // The specified chunkSize may be Infinity or the calcluated end position\n // may exceed the file's size. In both cases, we limit the end position to\n // the input's total size for simpler calculations and correctness.\n if ((end === Infinity || end > this._size) && !this.options.uploadLengthDeferred) {\n end = this._size;\n }\n return this._source.slice(start, end).then(function (_ref2) {\n var value = _ref2.value,\n done = _ref2.done;\n var valueSize = value && value.size ? value.size : 0;\n\n // If the upload length is deferred, the upload size was not specified during\n // upload creation. So, if the file reader is done reading, we know the total\n // upload size and can tell the tus server.\n if (_this9.options.uploadLengthDeferred && done) {\n _this9._size = _this9._offset + valueSize;\n req.setHeader('Upload-Length', _this9._size);\n }\n\n // The specified uploadSize might not match the actual amount of data that a source\n // provides. In these cases, we cannot successfully complete the upload, so we\n // rather error out and let the user know. If not, tus-js-client will be stuck\n // in a loop of repeating empty PATCH requests.\n // See https://community.transloadit.com/t/how-to-abort-hanging-companion-uploads/16488/13\n var newSize = _this9._offset + valueSize;\n if (!_this9.options.uploadLengthDeferred && done && newSize !== _this9._size) {\n return Promise.reject(new Error(\"upload was configured with a size of \".concat(_this9._size, \" bytes, but the source is done after \").concat(newSize, \" bytes\")));\n }\n if (value === null) {\n return _this9._sendRequest(req);\n }\n _this9._emitProgress(_this9._offset, _this9._size);\n return _this9._sendRequest(req, value);\n });\n }\n\n /**\n * _handleUploadResponse is used by requests that haven been sent using _addChunkToRequest\n * and already have received a response.\n *\n * @api private\n */\n }, {\n key: \"_handleUploadResponse\",\n value: function _handleUploadResponse(req, res) {\n var offset = parseInt(res.getHeader('Upload-Offset'), 10);\n if (Number.isNaN(offset)) {\n this._emitHttpError(req, res, 'tus: invalid or missing offset value');\n return;\n }\n this._emitProgress(offset, this._size);\n this._emitChunkComplete(offset - this._offset, offset, this._size);\n this._offset = offset;\n if (offset === this._size) {\n // Yay, finally done :)\n this._emitSuccess();\n this._source.close();\n return;\n }\n this._performUpload();\n }\n\n /**\n * Create a new HTTP request object with the given method and URL.\n *\n * @api private\n */\n }, {\n key: \"_openRequest\",\n value: function _openRequest(method, url) {\n var req = openRequest(method, url, this.options);\n this._req = req;\n return req;\n }\n\n /**\n * Remove the entry in the URL storage, if it has been saved before.\n *\n * @api private\n */\n }, {\n key: \"_removeFromUrlStorage\",\n value: function _removeFromUrlStorage() {\n var _this10 = this;\n if (!this._urlStorageKey) return;\n this._urlStorage.removeUpload(this._urlStorageKey)[\"catch\"](function (err) {\n _this10._emitError(err);\n });\n this._urlStorageKey = null;\n }\n\n /**\n * Add the upload URL to the URL storage, if possible.\n *\n * @api private\n */\n }, {\n key: \"_saveUploadInUrlStorage\",\n value: function _saveUploadInUrlStorage() {\n var _this11 = this;\n // We do not store the upload URL\n // - if it was disabled in the option, or\n // - if no fingerprint was calculated for the input (i.e. a stream), or\n // - if the URL is already stored (i.e. key is set alread).\n if (!this.options.storeFingerprintForResuming || !this._fingerprint || this._urlStorageKey !== null) {\n return Promise.resolve();\n }\n var storedUpload = {\n size: this._size,\n metadata: this.options.metadata,\n creationTime: new Date().toString()\n };\n if (this._parallelUploads) {\n // Save multiple URLs if the parallelUploads option is used ...\n storedUpload.parallelUploadUrls = this._parallelUploadUrls;\n } else {\n // ... otherwise we just save the one available URL.\n storedUpload.uploadUrl = this.url;\n }\n return this._urlStorage.addUpload(this._fingerprint, storedUpload).then(function (urlStorageKey) {\n _this11._urlStorageKey = urlStorageKey;\n });\n }\n\n /**\n * Send a request with the provided body.\n *\n * @api private\n */\n }, {\n key: \"_sendRequest\",\n value: function _sendRequest(req) {\n var body = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return sendRequest(req, body, this.options);\n }\n }], [{\n key: \"terminate\",\n value: function terminate(url) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var req = openRequest('DELETE', url, options);\n return sendRequest(req, null, options).then(function (res) {\n // A 204 response indicates a successfull request\n if (res.getStatus() === 204) {\n return;\n }\n throw new _error[\"default\"]('tus: unexpected response while terminating upload', null, req, res);\n })[\"catch\"](function (err) {\n if (!(err instanceof _error[\"default\"])) {\n err = new _error[\"default\"]('tus: failed to terminate upload', err, req, null);\n }\n if (!shouldRetry(err, 0, options)) {\n throw err;\n }\n\n // Instead of keeping track of the retry attempts, we remove the first element from the delays\n // array. If the array is empty, all retry attempts are used up and we will bubble up the error.\n // We recursively call the terminate function will removing elements from the retryDelays array.\n var delay = options.retryDelays[0];\n var remainingDelays = options.retryDelays.slice(1);\n var newOptions = _objectSpread(_objectSpread({}, options), {}, {\n retryDelays: remainingDelays\n });\n return new Promise(function (resolve) {\n return setTimeout(resolve, delay);\n }).then(function () {\n return BaseUpload.terminate(url, newOptions);\n });\n });\n }\n }]);\n return BaseUpload;\n}();\nfunction encodeMetadata(metadata) {\n return Object.entries(metadata).map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n key = _ref4[0],\n value = _ref4[1];\n return \"\".concat(key, \" \").concat(_jsBase.Base64.encode(String(value)));\n }).join(',');\n}\n\n/**\n * Checks whether a given status is in the range of the expected category.\n * For example, only a status between 200 and 299 will satisfy the category 200.\n *\n * @api private\n */\nfunction inStatusCategory(status, category) {\n return status >= category && status < category + 100;\n}\n\n/**\n * Create a new HTTP request with the specified method and URL.\n * The necessary headers that are included in every request\n * will be added, including the request ID.\n *\n * @api private\n */\nfunction openRequest(method, url, options) {\n var req = options.httpStack.createRequest(method, url);\n req.setHeader('Tus-Resumable', '1.0.0');\n var headers = options.headers || {};\n Object.entries(headers).forEach(function (_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n name = _ref6[0],\n value = _ref6[1];\n req.setHeader(name, value);\n });\n if (options.addRequestId) {\n var requestId = (0, _uuid[\"default\"])();\n req.setHeader('X-Request-ID', requestId);\n }\n return req;\n}\n\n/**\n * Send a request with the provided body while invoking the onBeforeRequest\n * and onAfterResponse callbacks.\n *\n * @api private\n */\nfunction sendRequest(_x, _x2, _x3) {\n return _sendRequest2.apply(this, arguments);\n}\n/**\n * Checks whether the browser running this code has internet access.\n * This function will always return true in the node.js environment\n *\n * @api private\n */\nfunction _sendRequest2() {\n _sendRequest2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(req, body, options) {\n var res;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n if (!(typeof options.onBeforeRequest === 'function')) {\n _context.next = 3;\n break;\n }\n _context.next = 3;\n return options.onBeforeRequest(req);\n case 3:\n _context.next = 5;\n return req.send(body);\n case 5:\n res = _context.sent;\n if (!(typeof options.onAfterResponse === 'function')) {\n _context.next = 9;\n break;\n }\n _context.next = 9;\n return options.onAfterResponse(req, res);\n case 9:\n return _context.abrupt(\"return\", res);\n case 10:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return _sendRequest2.apply(this, arguments);\n}\nfunction isOnline() {\n var online = true;\n // Note: We don't reference `window` here because the navigator object also exists\n // in a Web Worker's context.\n // eslint-disable-next-line no-undef\n if (typeof navigator !== 'undefined' && navigator.onLine === false) {\n online = false;\n }\n return online;\n}\n\n/**\n * Checks whether or not it is ok to retry a request.\n * @param {Error|DetailedError} err the error returned from the last request\n * @param {number} retryAttempt the number of times the request has already been retried\n * @param {object} options tus Upload options\n *\n * @api private\n */\nfunction shouldRetry(err, retryAttempt, options) {\n // We only attempt a retry if\n // - retryDelays option is set\n // - we didn't exceed the maxium number of retries, yet, and\n // - this error was caused by a request or it's response and\n // - the error is server error (i.e. not a status 4xx except a 409 or 423) or\n // a onShouldRetry is specified and returns true\n // - the browser does not indicate that we are offline\n if (options.retryDelays == null || retryAttempt >= options.retryDelays.length || err.originalRequest == null) {\n return false;\n }\n if (options && typeof options.onShouldRetry === 'function') {\n return options.onShouldRetry(err, retryAttempt, options);\n }\n return defaultOnShouldRetry(err);\n}\n\n/**\n * determines if the request should be retried. Will only retry if not a status 4xx except a 409 or 423\n * @param {DetailedError} err\n * @returns {boolean}\n */\nfunction defaultOnShouldRetry(err) {\n var status = err.originalResponse ? err.originalResponse.getStatus() : 0;\n return (!inStatusCategory(status, 400) || status === 409 || status === 423) && isOnline();\n}\n\n/**\n * Resolve a relative link given the origin as source. For example,\n * if a HTTP request to http://example.com/files/ returns a Location\n * header with the value /upload/abc, the resolved URL will be:\n * http://example.com/upload/abc\n */\nfunction resolveUrl(origin, link) {\n return new _urlParse[\"default\"](link, origin).toString();\n}\n\n/**\n * Calculate the start and end positions for the parts if an upload\n * is split into multiple parallel requests.\n *\n * @param {number} totalSize The byte size of the upload, which will be split.\n * @param {number} partCount The number in how many parts the upload will be split.\n * @return {object[]}\n * @api private\n */\nfunction splitSizeIntoParts(totalSize, partCount) {\n var partSize = Math.floor(totalSize / partCount);\n var parts = [];\n for (var i = 0; i < partCount; i++) {\n parts.push({\n start: partSize * i,\n end: partSize * (i + 1)\n });\n }\n parts[partCount - 1].end = totalSize;\n return parts;\n}\nBaseUpload.defaultOptions = defaultOptions;\nvar _default = exports[\"default\"] = BaseUpload;\n\n},{\"./error.js\":12,\"./logger.js\":13,\"./uuid.js\":16,\"js-base64\":20,\"url-parse\":23}],16:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = uuid;\n/**\n * Generate a UUID v4 based on random numbers. We intentioanlly use the less\n * secure Math.random function here since the more secure crypto.getRandomNumbers\n * is not available on all platforms.\n * This is not a problem for us since we use the UUID only for generating a\n * request ID, so we can correlate server logs to client errors.\n *\n * This function is taken from following site:\n * https://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript\n *\n * @return {string} The generate UUID\n */\nfunction uuid() {\n /* eslint-disable no-bitwise */\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0;\n var v = c === 'x' ? r : r & 0x3 | 0x8;\n return v.toString(16);\n });\n}\n\n},{}],17:[function(require,module,exports){\n'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n\n},{}],18:[function(require,module,exports){\n(function (Buffer){(function (){\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = { __proto__: Uint8Array.prototype, foo: function () { return 42 } }\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n buf.__proto__ = Buffer.prototype\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\n// Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\nif (typeof Symbol !== 'undefined' && Symbol.species != null &&\n Buffer[Symbol.species] === Buffer) {\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true,\n enumerable: false,\n writable: false\n })\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayLike(value)\n }\n\n if (value == null) {\n throw TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nBuffer.prototype.__proto__ = Uint8Array.prototype\nBuffer.__proto__ = Uint8Array\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n buf.__proto__ = Buffer.prototype\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n buf = Buffer.from(buf)\n }\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n newBuf.__proto__ = Buffer.prototype\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (var i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n}).call(this)}).call(this,require(\"buffer\").Buffer)\n\n},{\"base64-js\":17,\"buffer\":18,\"ieee754\":19}],19:[function(require,module,exports){\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n\n},{}],20:[function(require,module,exports){\n(function (global,Buffer){(function (){\n//\n// THIS FILE IS AUTOMATICALLY GENERATED! DO NOT EDIT BY HAND!\n//\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n ? module.exports = factory()\n : typeof define === 'function' && define.amd\n ? define(factory) :\n // cf. https://github.com/dankogai/js-base64/issues/119\n (function () {\n // existing version for noConflict()\n var _Base64 = global.Base64;\n var gBase64 = factory();\n gBase64.noConflict = function () {\n global.Base64 = _Base64;\n return gBase64;\n };\n if (global.Meteor) { // Meteor.js\n Base64 = gBase64;\n }\n global.Base64 = gBase64;\n })();\n}((typeof self !== 'undefined' ? self\n : typeof window !== 'undefined' ? window\n : typeof global !== 'undefined' ? global\n : this), function () {\n 'use strict';\n /**\n * base64.ts\n *\n * Licensed under the BSD 3-Clause License.\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * References:\n * http://en.wikipedia.org/wiki/Base64\n *\n * @author Dan Kogai (https://github.com/dankogai)\n */\n var version = '3.7.5';\n /**\n * @deprecated use lowercase `version`.\n */\n var VERSION = version;\n var _hasatob = typeof atob === 'function';\n var _hasbtoa = typeof btoa === 'function';\n var _hasBuffer = typeof Buffer === 'function';\n var _TD = typeof TextDecoder === 'function' ? new TextDecoder() : undefined;\n var _TE = typeof TextEncoder === 'function' ? new TextEncoder() : undefined;\n var b64ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var b64chs = Array.prototype.slice.call(b64ch);\n var b64tab = (function (a) {\n var tab = {};\n a.forEach(function (c, i) { return tab[c] = i; });\n return tab;\n })(b64chs);\n var b64re = /^(?:[A-Za-z\\d+\\/]{4})*?(?:[A-Za-z\\d+\\/]{2}(?:==)?|[A-Za-z\\d+\\/]{3}=?)?$/;\n var _fromCC = String.fromCharCode.bind(String);\n var _U8Afrom = typeof Uint8Array.from === 'function'\n ? Uint8Array.from.bind(Uint8Array)\n : function (it) { return new Uint8Array(Array.prototype.slice.call(it, 0)); };\n var _mkUriSafe = function (src) { return src\n .replace(/=/g, '').replace(/[+\\/]/g, function (m0) { return m0 == '+' ? '-' : '_'; }); };\n var _tidyB64 = function (s) { return s.replace(/[^A-Za-z0-9\\+\\/]/g, ''); };\n /**\n * polyfill version of `btoa`\n */\n var btoaPolyfill = function (bin) {\n // console.log('polyfilled');\n var u32, c0, c1, c2, asc = '';\n var pad = bin.length % 3;\n for (var i = 0; i < bin.length;) {\n if ((c0 = bin.charCodeAt(i++)) > 255 ||\n (c1 = bin.charCodeAt(i++)) > 255 ||\n (c2 = bin.charCodeAt(i++)) > 255)\n throw new TypeError('invalid character found');\n u32 = (c0 << 16) | (c1 << 8) | c2;\n asc += b64chs[u32 >> 18 & 63]\n + b64chs[u32 >> 12 & 63]\n + b64chs[u32 >> 6 & 63]\n + b64chs[u32 & 63];\n }\n return pad ? asc.slice(0, pad - 3) + \"===\".substring(pad) : asc;\n };\n /**\n * does what `window.btoa` of web browsers do.\n * @param {String} bin binary string\n * @returns {string} Base64-encoded string\n */\n var _btoa = _hasbtoa ? function (bin) { return btoa(bin); }\n : _hasBuffer ? function (bin) { return Buffer.from(bin, 'binary').toString('base64'); }\n : btoaPolyfill;\n var _fromUint8Array = _hasBuffer\n ? function (u8a) { return Buffer.from(u8a).toString('base64'); }\n : function (u8a) {\n // cf. https://stackoverflow.com/questions/12710001/how-to-convert-uint8-array-to-base64-encoded-string/12713326#12713326\n var maxargs = 0x1000;\n var strs = [];\n for (var i = 0, l = u8a.length; i < l; i += maxargs) {\n strs.push(_fromCC.apply(null, u8a.subarray(i, i + maxargs)));\n }\n return _btoa(strs.join(''));\n };\n /**\n * converts a Uint8Array to a Base64 string.\n * @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 §5\n * @returns {string} Base64 string\n */\n var fromUint8Array = function (u8a, urlsafe) {\n if (urlsafe === void 0) { urlsafe = false; }\n return urlsafe ? _mkUriSafe(_fromUint8Array(u8a)) : _fromUint8Array(u8a);\n };\n // This trick is found broken https://github.com/dankogai/js-base64/issues/130\n // const utob = (src: string) => unescape(encodeURIComponent(src));\n // reverting good old fationed regexp\n var cb_utob = function (c) {\n if (c.length < 2) {\n var cc = c.charCodeAt(0);\n return cc < 0x80 ? c\n : cc < 0x800 ? (_fromCC(0xc0 | (cc >>> 6))\n + _fromCC(0x80 | (cc & 0x3f)))\n : (_fromCC(0xe0 | ((cc >>> 12) & 0x0f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n else {\n var cc = 0x10000\n + (c.charCodeAt(0) - 0xD800) * 0x400\n + (c.charCodeAt(1) - 0xDC00);\n return (_fromCC(0xf0 | ((cc >>> 18) & 0x07))\n + _fromCC(0x80 | ((cc >>> 12) & 0x3f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n };\n var re_utob = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFFF]|[^\\x00-\\x7F]/g;\n /**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-8 string\n * @returns {string} UTF-16 string\n */\n var utob = function (u) { return u.replace(re_utob, cb_utob); };\n //\n var _encode = _hasBuffer\n ? function (s) { return Buffer.from(s, 'utf8').toString('base64'); }\n : _TE\n ? function (s) { return _fromUint8Array(_TE.encode(s)); }\n : function (s) { return _btoa(utob(s)); };\n /**\n * converts a UTF-8-encoded string to a Base64 string.\n * @param {boolean} [urlsafe] if `true` make the result URL-safe\n * @returns {string} Base64 string\n */\n var encode = function (src, urlsafe) {\n if (urlsafe === void 0) { urlsafe = false; }\n return urlsafe\n ? _mkUriSafe(_encode(src))\n : _encode(src);\n };\n /**\n * converts a UTF-8-encoded string to URL-safe Base64 RFC4648 §5.\n * @returns {string} Base64 string\n */\n var encodeURI = function (src) { return encode(src, true); };\n // This trick is found broken https://github.com/dankogai/js-base64/issues/130\n // const btou = (src: string) => decodeURIComponent(escape(src));\n // reverting good old fationed regexp\n var re_btou = /[\\xC0-\\xDF][\\x80-\\xBF]|[\\xE0-\\xEF][\\x80-\\xBF]{2}|[\\xF0-\\xF7][\\x80-\\xBF]{3}/g;\n var cb_btou = function (cccc) {\n switch (cccc.length) {\n case 4:\n var cp = ((0x07 & cccc.charCodeAt(0)) << 18)\n | ((0x3f & cccc.charCodeAt(1)) << 12)\n | ((0x3f & cccc.charCodeAt(2)) << 6)\n | (0x3f & cccc.charCodeAt(3)), offset = cp - 0x10000;\n return (_fromCC((offset >>> 10) + 0xD800)\n + _fromCC((offset & 0x3FF) + 0xDC00));\n case 3:\n return _fromCC(((0x0f & cccc.charCodeAt(0)) << 12)\n | ((0x3f & cccc.charCodeAt(1)) << 6)\n | (0x3f & cccc.charCodeAt(2)));\n default:\n return _fromCC(((0x1f & cccc.charCodeAt(0)) << 6)\n | (0x3f & cccc.charCodeAt(1)));\n }\n };\n /**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-16 string\n * @returns {string} UTF-8 string\n */\n var btou = function (b) { return b.replace(re_btou, cb_btou); };\n /**\n * polyfill version of `atob`\n */\n var atobPolyfill = function (asc) {\n // console.log('polyfilled');\n asc = asc.replace(/\\s+/g, '');\n if (!b64re.test(asc))\n throw new TypeError('malformed base64.');\n asc += '=='.slice(2 - (asc.length & 3));\n var u24, bin = '', r1, r2;\n for (var i = 0; i < asc.length;) {\n u24 = b64tab[asc.charAt(i++)] << 18\n | b64tab[asc.charAt(i++)] << 12\n | (r1 = b64tab[asc.charAt(i++)]) << 6\n | (r2 = b64tab[asc.charAt(i++)]);\n bin += r1 === 64 ? _fromCC(u24 >> 16 & 255)\n : r2 === 64 ? _fromCC(u24 >> 16 & 255, u24 >> 8 & 255)\n : _fromCC(u24 >> 16 & 255, u24 >> 8 & 255, u24 & 255);\n }\n return bin;\n };\n /**\n * does what `window.atob` of web browsers do.\n * @param {String} asc Base64-encoded string\n * @returns {string} binary string\n */\n var _atob = _hasatob ? function (asc) { return atob(_tidyB64(asc)); }\n : _hasBuffer ? function (asc) { return Buffer.from(asc, 'base64').toString('binary'); }\n : atobPolyfill;\n //\n var _toUint8Array = _hasBuffer\n ? function (a) { return _U8Afrom(Buffer.from(a, 'base64')); }\n : function (a) { return _U8Afrom(_atob(a).split('').map(function (c) { return c.charCodeAt(0); })); };\n /**\n * converts a Base64 string to a Uint8Array.\n */\n var toUint8Array = function (a) { return _toUint8Array(_unURI(a)); };\n //\n var _decode = _hasBuffer\n ? function (a) { return Buffer.from(a, 'base64').toString('utf8'); }\n : _TD\n ? function (a) { return _TD.decode(_toUint8Array(a)); }\n : function (a) { return btou(_atob(a)); };\n var _unURI = function (a) { return _tidyB64(a.replace(/[-_]/g, function (m0) { return m0 == '-' ? '+' : '/'; })); };\n /**\n * converts a Base64 string to a UTF-8 string.\n * @param {String} src Base64 string. Both normal and URL-safe are supported\n * @returns {string} UTF-8 string\n */\n var decode = function (src) { return _decode(_unURI(src)); };\n /**\n * check if a value is a valid Base64 string\n * @param {String} src a value to check\n */\n var isValid = function (src) {\n if (typeof src !== 'string')\n return false;\n var s = src.replace(/\\s+/g, '').replace(/={0,2}$/, '');\n return !/[^\\s0-9a-zA-Z\\+/]/.test(s) || !/[^\\s0-9a-zA-Z\\-_]/.test(s);\n };\n //\n var _noEnum = function (v) {\n return {\n value: v, enumerable: false, writable: true, configurable: true\n };\n };\n /**\n * extend String.prototype with relevant methods\n */\n var extendString = function () {\n var _add = function (name, body) { return Object.defineProperty(String.prototype, name, _noEnum(body)); };\n _add('fromBase64', function () { return decode(this); });\n _add('toBase64', function (urlsafe) { return encode(this, urlsafe); });\n _add('toBase64URI', function () { return encode(this, true); });\n _add('toBase64URL', function () { return encode(this, true); });\n _add('toUint8Array', function () { return toUint8Array(this); });\n };\n /**\n * extend Uint8Array.prototype with relevant methods\n */\n var extendUint8Array = function () {\n var _add = function (name, body) { return Object.defineProperty(Uint8Array.prototype, name, _noEnum(body)); };\n _add('toBase64', function (urlsafe) { return fromUint8Array(this, urlsafe); });\n _add('toBase64URI', function () { return fromUint8Array(this, true); });\n _add('toBase64URL', function () { return fromUint8Array(this, true); });\n };\n /**\n * extend Builtin prototypes with relevant methods\n */\n var extendBuiltins = function () {\n extendString();\n extendUint8Array();\n };\n var gBase64 = {\n version: version,\n VERSION: VERSION,\n atob: _atob,\n atobPolyfill: atobPolyfill,\n btoa: _btoa,\n btoaPolyfill: btoaPolyfill,\n fromBase64: decode,\n toBase64: encode,\n encode: encode,\n encodeURI: encodeURI,\n encodeURL: encodeURI,\n utob: utob,\n btou: btou,\n decode: decode,\n isValid: isValid,\n fromUint8Array: fromUint8Array,\n toUint8Array: toUint8Array,\n extendString: extendString,\n extendUint8Array: extendUint8Array,\n extendBuiltins: extendBuiltins\n };\n //\n // export Base64 to the namespace\n //\n // ES5 is yet to have Object.assign() that may make transpilers unhappy.\n // gBase64.Base64 = Object.assign({}, gBase64);\n gBase64.Base64 = {};\n Object.keys(gBase64).forEach(function (k) { return gBase64.Base64[k] = gBase64[k]; });\n return gBase64;\n}));\n\n}).call(this)}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {},require(\"buffer\").Buffer)\n\n},{\"buffer\":18}],21:[function(require,module,exports){\n'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , undef;\n\n/**\n * Decode a URI encoded string.\n *\n * @param {String} input The URI encoded string.\n * @returns {String|Null} The decoded string.\n * @api private\n */\nfunction decode(input) {\n try {\n return decodeURIComponent(input.replace(/\\+/g, ' '));\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Attempts to encode a given input.\n *\n * @param {String} input The string that needs to be encoded.\n * @returns {String|Null} The encoded string.\n * @api private\n */\nfunction encode(input) {\n try {\n return encodeURIComponent(input);\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\nfunction querystring(query) {\n var parser = /([^=?#&]+)=?([^&]*)/g\n , result = {}\n , part;\n\n while (part = parser.exec(query)) {\n var key = decode(part[1])\n , value = decode(part[2]);\n\n //\n // Prevent overriding of existing properties. This ensures that build-in\n // methods like `toString` or __proto__ are not overriden by malicious\n // querystrings.\n //\n // In the case if failed decoding, we want to omit the key/value pairs\n // from the result.\n //\n if (key === null || value === null || key in result) continue;\n result[key] = value;\n }\n\n return result;\n}\n\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\nfunction querystringify(obj, prefix) {\n prefix = prefix || '';\n\n var pairs = []\n , value\n , key;\n\n //\n // Optionally prefix with a '?' if needed\n //\n if ('string' !== typeof prefix) prefix = '?';\n\n for (key in obj) {\n if (has.call(obj, key)) {\n value = obj[key];\n\n //\n // Edge cases where we actually want to encode the value to an empty\n // string instead of the stringified value.\n //\n if (!value && (value === null || value === undef || isNaN(value))) {\n value = '';\n }\n\n key = encode(key);\n value = encode(value);\n\n //\n // If we failed to encode the strings, we should bail out as we don't\n // want to add invalid strings to the query.\n //\n if (key === null || value === null) continue;\n pairs.push(key +'='+ value);\n }\n }\n\n return pairs.length ? prefix + pairs.join('&') : '';\n}\n\n//\n// Expose the module.\n//\nexports.stringify = querystringify;\nexports.parse = querystring;\n\n},{}],22:[function(require,module,exports){\n'use strict';\n\n/**\n * Check if we're required to add a port number.\n *\n * @see https://url.spec.whatwg.org/#default-port\n * @param {Number|String} port Port number we need to check\n * @param {String} protocol Protocol we need to check against.\n * @returns {Boolean} Is it a default port for the given protocol\n * @api private\n */\nmodule.exports = function required(port, protocol) {\n protocol = protocol.split(':')[0];\n port = +port;\n\n if (!port) return false;\n\n switch (protocol) {\n case 'http':\n case 'ws':\n return port !== 80;\n\n case 'https':\n case 'wss':\n return port !== 443;\n\n case 'ftp':\n return port !== 21;\n\n case 'gopher':\n return port !== 70;\n\n case 'file':\n return false;\n }\n\n return port !== 0;\n};\n\n},{}],23:[function(require,module,exports){\n(function (global){(function (){\n'use strict';\n\nvar required = require('requires-port')\n , qs = require('querystringify')\n , controlOrWhitespace = /^[\\x00-\\x20\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]+/\n , CRHTLF = /[\\n\\r\\t]/g\n , slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//\n , port = /:\\d+$/\n , protocolre = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\\\/]+)?([\\S\\s]*)/i\n , windowsDriveLetter = /^[a-zA-Z]:/;\n\n/**\n * Remove control characters and whitespace from the beginning of a string.\n *\n * @param {Object|String} str String to trim.\n * @returns {String} A new string representing `str` stripped of control\n * characters and whitespace from its beginning.\n * @public\n */\nfunction trimLeft(str) {\n return (str ? str : '').toString().replace(controlOrWhitespace, '');\n}\n\n/**\n * These are the parse rules for the URL parser, it informs the parser\n * about:\n *\n * 0. The char it Needs to parse, if it's a string it should be done using\n * indexOf, RegExp using exec and NaN means set as current value.\n * 1. The property we should set when parsing this value.\n * 2. Indication if it's backwards or forward parsing, when set as number it's\n * the value of extra chars that should be split off.\n * 3. Inherit from location if non existing in the parser.\n * 4. `toLowerCase` the resulting value.\n */\nvar rules = [\n ['#', 'hash'], // Extract from the back.\n ['?', 'query'], // Extract from the back.\n function sanitize(address, url) { // Sanitize what is left of the address\n return isSpecial(url.protocol) ? address.replace(/\\\\/g, '/') : address;\n },\n ['/', 'pathname'], // Extract from the back.\n ['@', 'auth', 1], // Extract from the front.\n [NaN, 'host', undefined, 1, 1], // Set left over value.\n [/:(\\d*)$/, 'port', undefined, 1], // RegExp the back.\n [NaN, 'hostname', undefined, 1, 1] // Set left over.\n];\n\n/**\n * These properties should not be copied or inherited from. This is only needed\n * for all non blob URL's as a blob URL does not include a hash, only the\n * origin.\n *\n * @type {Object}\n * @private\n */\nvar ignore = { hash: 1, query: 1 };\n\n/**\n * The location object differs when your code is loaded through a normal page,\n * Worker or through a worker using a blob. And with the blobble begins the\n * trouble as the location object will contain the URL of the blob, not the\n * location of the page where our code is loaded in. The actual origin is\n * encoded in the `pathname` so we can thankfully generate a good \"default\"\n * location from it so we can generate proper relative URL's again.\n *\n * @param {Object|String} loc Optional default location object.\n * @returns {Object} lolcation object.\n * @public\n */\nfunction lolcation(loc) {\n var globalVar;\n\n if (typeof window !== 'undefined') globalVar = window;\n else if (typeof global !== 'undefined') globalVar = global;\n else if (typeof self !== 'undefined') globalVar = self;\n else globalVar = {};\n\n var location = globalVar.location || {};\n loc = loc || location;\n\n var finaldestination = {}\n , type = typeof loc\n , key;\n\n if ('blob:' === loc.protocol) {\n finaldestination = new Url(unescape(loc.pathname), {});\n } else if ('string' === type) {\n finaldestination = new Url(loc, {});\n for (key in ignore) delete finaldestination[key];\n } else if ('object' === type) {\n for (key in loc) {\n if (key in ignore) continue;\n finaldestination[key] = loc[key];\n }\n\n if (finaldestination.slashes === undefined) {\n finaldestination.slashes = slashes.test(loc.href);\n }\n }\n\n return finaldestination;\n}\n\n/**\n * Check whether a protocol scheme is special.\n *\n * @param {String} The protocol scheme of the URL\n * @return {Boolean} `true` if the protocol scheme is special, else `false`\n * @private\n */\nfunction isSpecial(scheme) {\n return (\n scheme === 'file:' ||\n scheme === 'ftp:' ||\n scheme === 'http:' ||\n scheme === 'https:' ||\n scheme === 'ws:' ||\n scheme === 'wss:'\n );\n}\n\n/**\n * @typedef ProtocolExtract\n * @type Object\n * @property {String} protocol Protocol matched in the URL, in lowercase.\n * @property {Boolean} slashes `true` if protocol is followed by \"//\", else `false`.\n * @property {String} rest Rest of the URL that is not part of the protocol.\n */\n\n/**\n * Extract protocol information from a URL with/without double slash (\"//\").\n *\n * @param {String} address URL we want to extract from.\n * @param {Object} location\n * @return {ProtocolExtract} Extracted information.\n * @private\n */\nfunction extractProtocol(address, location) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, '');\n location = location || {};\n\n var match = protocolre.exec(address);\n var protocol = match[1] ? match[1].toLowerCase() : '';\n var forwardSlashes = !!match[2];\n var otherSlashes = !!match[3];\n var slashesCount = 0;\n var rest;\n\n if (forwardSlashes) {\n if (otherSlashes) {\n rest = match[2] + match[3] + match[4];\n slashesCount = match[2].length + match[3].length;\n } else {\n rest = match[2] + match[4];\n slashesCount = match[2].length;\n }\n } else {\n if (otherSlashes) {\n rest = match[3] + match[4];\n slashesCount = match[3].length;\n } else {\n rest = match[4]\n }\n }\n\n if (protocol === 'file:') {\n if (slashesCount >= 2) {\n rest = rest.slice(2);\n }\n } else if (isSpecial(protocol)) {\n rest = match[4];\n } else if (protocol) {\n if (forwardSlashes) {\n rest = rest.slice(2);\n }\n } else if (slashesCount >= 2 && isSpecial(location.protocol)) {\n rest = match[4];\n }\n\n return {\n protocol: protocol,\n slashes: forwardSlashes || isSpecial(protocol),\n slashesCount: slashesCount,\n rest: rest\n };\n}\n\n/**\n * Resolve a relative URL pathname against a base URL pathname.\n *\n * @param {String} relative Pathname of the relative URL.\n * @param {String} base Pathname of the base URL.\n * @return {String} Resolved pathname.\n * @private\n */\nfunction resolve(relative, base) {\n if (relative === '') return base;\n\n var path = (base || '/').split('/').slice(0, -1).concat(relative.split('/'))\n , i = path.length\n , last = path[i - 1]\n , unshift = false\n , up = 0;\n\n while (i--) {\n if (path[i] === '.') {\n path.splice(i, 1);\n } else if (path[i] === '..') {\n path.splice(i, 1);\n up++;\n } else if (up) {\n if (i === 0) unshift = true;\n path.splice(i, 1);\n up--;\n }\n }\n\n if (unshift) path.unshift('');\n if (last === '.' || last === '..') path.push('');\n\n return path.join('/');\n}\n\n/**\n * The actual URL instance. Instead of returning an object we've opted-in to\n * create an actual constructor as it's much more memory efficient and\n * faster and it pleases my OCD.\n *\n * It is worth noting that we should not use `URL` as class name to prevent\n * clashes with the global URL instance that got introduced in browsers.\n *\n * @constructor\n * @param {String} address URL we want to parse.\n * @param {Object|String} [location] Location defaults for relative paths.\n * @param {Boolean|Function} [parser] Parser for the query string.\n * @private\n */\nfunction Url(address, location, parser) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, '');\n\n if (!(this instanceof Url)) {\n return new Url(address, location, parser);\n }\n\n var relative, extracted, parse, instruction, index, key\n , instructions = rules.slice()\n , type = typeof location\n , url = this\n , i = 0;\n\n //\n // The following if statements allows this module two have compatibility with\n // 2 different API:\n //\n // 1. Node.js's `url.parse` api which accepts a URL, boolean as arguments\n // where the boolean indicates that the query string should also be parsed.\n //\n // 2. The `URL` interface of the browser which accepts a URL, object as\n // arguments. The supplied object will be used as default values / fall-back\n // for relative paths.\n //\n if ('object' !== type && 'string' !== type) {\n parser = location;\n location = null;\n }\n\n if (parser && 'function' !== typeof parser) parser = qs.parse;\n\n location = lolcation(location);\n\n //\n // Extract protocol information before running the instructions.\n //\n extracted = extractProtocol(address || '', location);\n relative = !extracted.protocol && !extracted.slashes;\n url.slashes = extracted.slashes || relative && location.slashes;\n url.protocol = extracted.protocol || location.protocol || '';\n address = extracted.rest;\n\n //\n // When the authority component is absent the URL starts with a path\n // component.\n //\n if (\n extracted.protocol === 'file:' && (\n extracted.slashesCount !== 2 || windowsDriveLetter.test(address)) ||\n (!extracted.slashes &&\n (extracted.protocol ||\n extracted.slashesCount < 2 ||\n !isSpecial(url.protocol)))\n ) {\n instructions[3] = [/(.*)/, 'pathname'];\n }\n\n for (; i < instructions.length; i++) {\n instruction = instructions[i];\n\n if (typeof instruction === 'function') {\n address = instruction(address, url);\n continue;\n }\n\n parse = instruction[0];\n key = instruction[1];\n\n if (parse !== parse) {\n url[key] = address;\n } else if ('string' === typeof parse) {\n index = parse === '@'\n ? address.lastIndexOf(parse)\n : address.indexOf(parse);\n\n if (~index) {\n if ('number' === typeof instruction[2]) {\n url[key] = address.slice(0, index);\n address = address.slice(index + instruction[2]);\n } else {\n url[key] = address.slice(index);\n address = address.slice(0, index);\n }\n }\n } else if ((index = parse.exec(address))) {\n url[key] = index[1];\n address = address.slice(0, index.index);\n }\n\n url[key] = url[key] || (\n relative && instruction[3] ? location[key] || '' : ''\n );\n\n //\n // Hostname, host and protocol should be lowercased so they can be used to\n // create a proper `origin`.\n //\n if (instruction[4]) url[key] = url[key].toLowerCase();\n }\n\n //\n // Also parse the supplied query string in to an object. If we're supplied\n // with a custom parser as function use that instead of the default build-in\n // parser.\n //\n if (parser) url.query = parser(url.query);\n\n //\n // If the URL is relative, resolve the pathname against the base URL.\n //\n if (\n relative\n && location.slashes\n && url.pathname.charAt(0) !== '/'\n && (url.pathname !== '' || location.pathname !== '')\n ) {\n url.pathname = resolve(url.pathname, location.pathname);\n }\n\n //\n // Default to a / for pathname if none exists. This normalizes the URL\n // to always have a /\n //\n if (url.pathname.charAt(0) !== '/' && isSpecial(url.protocol)) {\n url.pathname = '/' + url.pathname;\n }\n\n //\n // We should not add port numbers if they are already the default port number\n // for a given protocol. As the host also contains the port number we're going\n // override it with the hostname which contains no port number.\n //\n if (!required(url.port, url.protocol)) {\n url.host = url.hostname;\n url.port = '';\n }\n\n //\n // Parse down the `auth` for the username and password.\n //\n url.username = url.password = '';\n\n if (url.auth) {\n index = url.auth.indexOf(':');\n\n if (~index) {\n url.username = url.auth.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n url.password = url.auth.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password))\n } else {\n url.username = encodeURIComponent(decodeURIComponent(url.auth));\n }\n\n url.auth = url.password ? url.username +':'+ url.password : url.username;\n }\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n //\n // The href is just the compiled result.\n //\n url.href = url.toString();\n}\n\n/**\n * This is convenience method for changing properties in the URL instance to\n * insure that they all propagate correctly.\n *\n * @param {String} part Property we need to adjust.\n * @param {Mixed} value The newly assigned value.\n * @param {Boolean|Function} fn When setting the query, it will be the function\n * used to parse the query.\n * When setting the protocol, double slash will be\n * removed from the final url if it is true.\n * @returns {URL} URL instance for chaining.\n * @public\n */\nfunction set(part, value, fn) {\n var url = this;\n\n switch (part) {\n case 'query':\n if ('string' === typeof value && value.length) {\n value = (fn || qs.parse)(value);\n }\n\n url[part] = value;\n break;\n\n case 'port':\n url[part] = value;\n\n if (!required(value, url.protocol)) {\n url.host = url.hostname;\n url[part] = '';\n } else if (value) {\n url.host = url.hostname +':'+ value;\n }\n\n break;\n\n case 'hostname':\n url[part] = value;\n\n if (url.port) value += ':'+ url.port;\n url.host = value;\n break;\n\n case 'host':\n url[part] = value;\n\n if (port.test(value)) {\n value = value.split(':');\n url.port = value.pop();\n url.hostname = value.join(':');\n } else {\n url.hostname = value;\n url.port = '';\n }\n\n break;\n\n case 'protocol':\n url.protocol = value.toLowerCase();\n url.slashes = !fn;\n break;\n\n case 'pathname':\n case 'hash':\n if (value) {\n var char = part === 'pathname' ? '/' : '#';\n url[part] = value.charAt(0) !== char ? char + value : value;\n } else {\n url[part] = value;\n }\n break;\n\n case 'username':\n case 'password':\n url[part] = encodeURIComponent(value);\n break;\n\n case 'auth':\n var index = value.indexOf(':');\n\n if (~index) {\n url.username = value.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n url.password = value.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password));\n } else {\n url.username = encodeURIComponent(decodeURIComponent(value));\n }\n }\n\n for (var i = 0; i < rules.length; i++) {\n var ins = rules[i];\n\n if (ins[4]) url[ins[1]] = url[ins[1]].toLowerCase();\n }\n\n url.auth = url.password ? url.username +':'+ url.password : url.username;\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n url.href = url.toString();\n\n return url;\n}\n\n/**\n * Transform the properties back in to a valid and full URL string.\n *\n * @param {Function} stringify Optional query stringify function.\n * @returns {String} Compiled version of the URL.\n * @public\n */\nfunction toString(stringify) {\n if (!stringify || 'function' !== typeof stringify) stringify = qs.stringify;\n\n var query\n , url = this\n , host = url.host\n , protocol = url.protocol;\n\n if (protocol && protocol.charAt(protocol.length - 1) !== ':') protocol += ':';\n\n var result =\n protocol +\n ((url.protocol && url.slashes) || isSpecial(url.protocol) ? '//' : '');\n\n if (url.username) {\n result += url.username;\n if (url.password) result += ':'+ url.password;\n result += '@';\n } else if (url.password) {\n result += ':'+ url.password;\n result += '@';\n } else if (\n url.protocol !== 'file:' &&\n isSpecial(url.protocol) &&\n !host &&\n url.pathname !== '/'\n ) {\n //\n // Add back the empty userinfo, otherwise the original invalid URL\n // might be transformed into a valid one with `url.pathname` as host.\n //\n result += '@';\n }\n\n //\n // Trailing colon is removed from `url.host` when it is parsed. If it still\n // ends with a colon, then add back the trailing colon that was removed. This\n // prevents an invalid URL from being transformed into a valid one.\n //\n if (host[host.length - 1] === ':' || (port.test(url.hostname) && !url.port)) {\n host += ':';\n }\n\n result += host + url.pathname;\n\n query = 'object' === typeof url.query ? stringify(url.query) : url.query;\n if (query) result += '?' !== query.charAt(0) ? '?'+ query : query;\n\n if (url.hash) result += url.hash;\n\n return result;\n}\n\nUrl.prototype = { set: set, toString: toString };\n\n//\n// Expose the URL parser and some additional properties that might be useful for\n// others or testing.\n//\nUrl.extractProtocol = extractProtocol;\nUrl.location = lolcation;\nUrl.trimLeft = trimLeft;\nUrl.qs = qs;\n\nmodule.exports = Url;\n\n}).call(this)}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{\"querystringify\":21,\"requires-port\":22}]},{},[4])(4)\n});\n\n"],"file":"tus.min.js"} \ No newline at end of file diff --git a/source/streamio/amd/src/config.js b/source/streamio/amd/src/config.js new file mode 100644 index 0000000..12e9fcb --- /dev/null +++ b/source/streamio/amd/src/config.js @@ -0,0 +1,10 @@ +define([], function () { + window.requirejs.config({ + paths: { + "tus": M.cfg.wwwroot + '/admin/tool/mediatime/source/streamio/js/tus', + }, + shim: { + 'tus': {exports: 'tus'}, + } + }); +}); \ No newline at end of file diff --git a/source/streamio/amd/src/file_upload.js b/source/streamio/amd/src/file_upload.js index 1800f51..851e81e 100644 --- a/source/streamio/amd/src/file_upload.js +++ b/source/streamio/amd/src/file_upload.js @@ -1,42 +1,84 @@ -var upload; - -import * as tus from 'mediatimesrc_streamio/tus'; -import Log from 'core/log'; - -const options = { - endpoint: 'https://streamio.com/api/v1/videos/tus', - metadata: {}, - onError: Log.debug, - onProgress: function(bytesUploaded, bytesTotal) { - document.querySelectorAll('.progress').forEach(indicator => { - indicator.style.width = (bytesUploaded / bytesTotal * 100) + '%'; - }); - }, - onSuccess: function() { - document.getElementById('upload_resource_form').submit(); - Log.debug(upload.url); - } -}; - -export default { - init: function(token) { - options.metadata.uploadtoken = token; - document.body.removeEventListener('click', this.handleClick); - document.body.addEventListener('click', this.handleClick); - }, - - handleClick: function(e) { - const button = e.target.closest('button[name="upload"]'); - if (button) { - const file = document.querySelector('input[name="streamiofile"]').files[0]; - e.preventDefault(); - options.metadata.filename = file.name; - options.metadata.filetype = file.type; - Log.debug(options); - Log.debug(tus); - - upload = new tus.Upload(file, options); - upload.start(); +/* + * Upload video file to Streamio + * + * @package tool_mediatime + * @subpackage mediatimesrc_streamio + * @module mediatimesrc_streamio/file_upload + * @copyright 2024 bdecent gmbh + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +define(['core/log', 'mediatimesrc_streamio/tus'], function(Log, tus) { + + /** + * Initialises FileUpload + * + * @class + * @param {string} token + */ + var FileUpload = function(token) { + this.upload = {}; + this.options = { + endpoint: 'https://streamio.com/api/v1/videos/tus', + metadata: {uploadtoken: token}, + onError: Log.debug, + onProgress: function(bytesUploaded, bytesTotal) { + document.querySelectorAll('.progress').forEach((indicator) => { + indicator.style.width = (bytesUploaded / bytesTotal * 100) + '%'; + }); + }, + onSuccess: function() { + document.getElementById('upload_resource_form').submit(); + Log.debug(this.upload.url); + } + }; + + this.addEvents(); + }; + + FileUpload.prototype = { + /** @type {Object} */ + options: {}, + /** @type {Object} */ + upload: {}, + + /** + * Adds events to the current FileUpload + */ + addEvents: function() { + document.body.removeEventListener('click', this.handleClick.bind(this)); + document.body.addEventListener('click', this.handleClick.bind(this)); + }, + + handleClick: function(e) { + const button = e.target.closest('button[name="upload"]'); + if (button) { + const file = document.querySelector('input[name="streamiofile"]').files[0]; + e.preventDefault(); + + if (file) { + this.options.metadata.filename = file.name; + this.options.metadata.filetype = file.type; + Log.debug(this.options); + Log.debug(tus); + + this.upload = new tus.Upload(file, this.options); + this.upload.start(); + } + } + } + }; + + return { + /** + * Initialises the component + * + * @param {string} token + * @returns {Promise} resolved once complete + */ + init: function(token) { + var fileupload = new FileUpload(token); + + return Promise.resolve(fileupload); } - } -}; + }; +}); diff --git a/source/streamio/classes/event/resource_created.php b/source/streamio/classes/event/resource_created.php index 96482ac..5ac230f 100644 --- a/source/streamio/classes/event/resource_created.php +++ b/source/streamio/classes/event/resource_created.php @@ -24,7 +24,17 @@ * @copyright 2024 bdecent gmbh * @license https://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class resource_created extends core_event\base { +class resource_created extends \core\event\base { // For more information about the Events API please visit {@link https://docs.moodle.org/dev/Events_API}. + + /** + * Init method. + * + * @return void + */ + protected function init() { + $this->data['crud'] = 'c'; + $this->data['edulevel'] = self::LEVEL_OTHER; + } } diff --git a/source/streamio/templates/file_upload.mustache b/source/streamio/templates/file_upload.mustache index b71bdb3..80310ce 100644 --- a/source/streamio/templates/file_upload.mustache +++ b/source/streamio/templates/file_upload.mustache @@ -47,8 +47,8 @@ -{{# js }} - require(['mediatimesrc_streamio/file_upload'], function(FileUpload) { +{{#js}} + require(['mediatimesrc_streamio/file_upload', 'mediatimesrc_streamio/tus'], function(FileUpload) { FileUpload.init('{{ token }}'); }); -{{/ js }} +{{/js}} diff --git a/subplugins.php b/subplugins.php index 818bdd0..d63ca81 100644 --- a/subplugins.php +++ b/subplugins.php @@ -33,7 +33,8 @@ $PAGE->set_url('/admin/tool/mediatime/subplugins.php'); $PAGE->set_context($syscontext); -require_admin(); +require_login(null, false); +require_capability('moodle/site:config', context_system::instance()); require_sesskey(); if ($type == 'mediatimesrc') { diff --git a/templates/media_manager.mustache b/templates/media_manager.mustache index 44ba420..95a7be7 100644 --- a/templates/media_manager.mustache +++ b/templates/media_manager.mustache @@ -38,23 +38,23 @@ -
+
{{# media }}
-
-
+
+
{{# content.name }} {{ content.name }} {{/ content.name }} {{^ content.name }} {{ content.title }} {{/ content.name }} -
- + -
+
+

{{ content.description }}

{{{ tags }}}