{"mappings":"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","names":["_typeof","o","_defineProperties","target","props","i","descriptor","_toPropertyKey","_createClass","Constructor","protoProps","staticProps","_toPrimitive","r","e","_classCallCheck","instance","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","self","call","_assertThisInitialized","_inherits","subClass","superClass","_setPrototypeOf","_wrapNativeSuper","Class","_cache","_isNativeFunction","Wrapper","_construct","p","fn","DetailedError","_Error","message","_this","causingErr","req","res","requestId","method","url","status","body","error_default","isEnabled","enableDebugLog","log","msg","_typeof","o","_classCallCheck","instance","Constructor","_defineProperties","target","props","i","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_toPrimitive","r","e","NoopUrlStorage","_fingerprint","_urlStorageKey","_upload","Base64","URL","uuid","c","r","v","_regeneratorRuntime","o","t","e","r","i","a","c","u","define","wrap","n","Generator","Context","makeInvokeMethod","tryCatch","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","v","values","g","defineIteratorMethods","AsyncIterator","invoke","_typeof","callInvokeWithMethodAndArg","maybeInvokeDelegate","pushTryEntry","resetTryEntry","next","handle","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","_asyncToGenerator","fn","self","args","err","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_createForOfIteratorHelper","allowArrayLike","it","F","_e","normalCompletion","didErr","step","_e2","minLen","_arrayLikeToArray","len","arr2","ownKeys","_objectSpread","_defineProperty","obj","_toPropertyKey","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_createClass","protoProps","staticProps","_toPrimitive","PROTOCOL_TUS_V1","PROTOCOL_IETF_DRAFT_03","defaultOptions","defaultOnShouldRetry","BaseUpload","file","options","_this","fingerprint","previousUpload","_this2","retryDelays","_i","_arr","optionName","log","source","_this$options$paralle","_this3","totalSize","totalProgress","partCount","parts","splitSizeIntoParts","part","index","uploads","lastPartProgress","_ref","newPartProgress","upload","req","metadata","encodeMetadata","res","inStatusCategory","location","resolveUrl","shouldTerminate","_this4","_iterator","_step","message","causingErr","error_default","_this5","shouldResetDelays","shouldRetry","delay","lastResponse","bytesSent","bytesTotal","chunkSize","bytesAccepted","_this6","promise","_this7","status","offset","length","_this8","_this9","start","end","_ref2","done","valueSize","newSize","method","url","openRequest","_this10","_this11","storedUpload","urlStorageKey","body","sendRequest","remainingDelays","newOptions","_ref3","_ref4","Base64","category","headers","_i2","_Object$entries","_Object$entries$_i","name","requestId","uuid","_x","_x2","_x3","_sendRequest2","_callee","_context","isOnline","online","retryAttempt","origin","link","URL","partSize","upload_default","isReactNative","isReactNative_default","uriToBlob","uri","resolve","reject","xhr","blob","err","isCordova","isCordova_default","readAsByteArray","chunk","resolve","reject","reader","value","err","_typeof","o","_classCallCheck","instance","Constructor","_defineProperties","target","props","i","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_toPrimitive","r","e","FileSource","file","start","end","isCordova_default","readAsByteArray","value","done","_typeof","o","_classCallCheck","instance","Constructor","_defineProperties","target","props","i","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_toPrimitive","r","e","len","blobOrArray","concat","a","b","c","StreamSource","reader","start","end","_this","hasEnoughData","value","done","_ref","hasAllDataBeenRead","_typeof","o","_regeneratorRuntime","t","e","r","i","a","c","u","define","wrap","n","Generator","Context","makeInvokeMethod","tryCatch","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","v","values","g","defineIteratorMethods","AsyncIterator","invoke","callInvokeWithMethodAndArg","maybeInvokeDelegate","pushTryEntry","resetTryEntry","next","handle","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","_asyncToGenerator","fn","self","args","err","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_toPrimitive","FileReader","_openFile","_callee","input","chunkSize","blob","_context","isReactNative_default","uriToBlob","FileSource","StreamSource","openFile","_x","_x2","fingerprint","file","options","isReactNative_default","reactNativeFingerprint","exifHash","hashCode","str","hash","i","_char","_typeof","o","_classCallCheck","instance","Constructor","_defineProperties","target","props","i","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_toPrimitive","r","e","XHRHttpStack","method","url","Request","Request","method","url","_classCallCheck","_createClass","header","value","progressHandler","e","_this","body","resolve","reject","Response","err","xhr","_typeof","o","_classCallCheck","instance","Constructor","_defineProperties","target","props","i","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_toPrimitive","r","e","hasStorage","key","originalValue","canStoreURLs","WebStorageUrlStorage","results","fingerprint","urlStorageKey","upload","id","prefix","_key","_typeof","o","_classCallCheck","instance","Constructor","_defineProperties","target","props","i","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_callSuper","e","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","self","call","_assertThisInitialized","_inherits","subClass","superClass","_setPrototypeOf","p","ownKeys","r","t","_objectSpread","_defineProperty","obj","key","value","_toPrimitive","defaultOptions","upload_default","XHRHttpStack","FileReader","canStoreURLs","WebStorageUrlStorage","NoopUrlStorage","fingerprint","Upload","_BaseUpload","file","options","url","isSupported"],"sources":["../esm/npm/tus-js-client@4.2.3/node_modules/tus-js-client/lib.esm/error.js","../esm/npm/tus-js-client@4.2.3/node_modules/tus-js-client/lib.esm/logger.js","../esm/npm/tus-js-client@4.2.3/node_modules/tus-js-client/lib.esm/noopUrlStorage.js","../esm/npm/tus-js-client@4.2.3/node_modules/tus-js-client/lib.esm/upload.js","../esm/npm/tus-js-client@4.2.3/node_modules/tus-js-client/lib.esm/uuid.js","../esm/npm/tus-js-client@4.2.3/node_modules/tus-js-client/lib.esm/browser/isReactNative.js","../esm/npm/tus-js-client@4.2.3/node_modules/tus-js-client/lib.esm/browser/uriToBlob.js","../esm/npm/tus-js-client@4.2.3/node_modules/tus-js-client/lib.esm/browser/sources/isCordova.js","../esm/npm/tus-js-client@4.2.3/node_modules/tus-js-client/lib.esm/browser/sources/readAsByteArray.js","../esm/npm/tus-js-client@4.2.3/node_modules/tus-js-client/lib.esm/browser/sources/FileSource.js","../esm/npm/tus-js-client@4.2.3/node_modules/tus-js-client/lib.esm/browser/sources/StreamSource.js","../esm/npm/tus-js-client@4.2.3/node_modules/tus-js-client/lib.esm/browser/fileReader.js","../esm/npm/tus-js-client@4.2.3/node_modules/tus-js-client/lib.esm/browser/fileSignature.js","../esm/npm/tus-js-client@4.2.3/node_modules/tus-js-client/lib.esm/browser/httpStack.js","../esm/npm/tus-js-client@4.2.3/node_modules/tus-js-client/lib.esm/browser/urlStorage.js","../esm/npm/tus-js-client@4.2.3/node_modules/tus-js-client/lib.esm/browser/index.js"],"sourcesContent":["function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol \u0026\u0026 \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o \u0026\u0026 \"function\" == typeof Symbol \u0026\u0026 o.constructor === Symbol \u0026\u0026 o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperties(target, props) { for (var i = 0; i \u003c 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(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call \u0026\u0026 (_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 _inherits(subClass, superClass) { if (typeof superClass !== \"function\" \u0026\u0026 superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass \u0026\u0026 superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\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(t, e, r) { if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments); var o = [null]; o.push.apply(o, e); var p = new (t.bind.apply(t, o))(); return r \u0026\u0026 _setPrototypeOf(p, r.prototype), p; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\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  function DetailedError(message) {\n    var _this;\n    var causingErr = arguments.length \u003e 1 \u0026\u0026 arguments[1] !== undefined ? arguments[1] : null;\n    var req = arguments.length \u003e 2 \u0026\u0026 arguments[2] !== undefined ? arguments[2] : null;\n    var res = arguments.length \u003e 3 \u0026\u0026 arguments[3] !== undefined ? arguments[3] : null;\n    _classCallCheck(this, DetailedError);\n    _this = _callSuper(this, DetailedError, [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  _inherits(DetailedError, _Error);\n  return _createClass(DetailedError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\nexport default DetailedError;","var isEnabled = false;\nexport function enableDebugLog() {\n  isEnabled = true;\n}\nexport function log(msg) {\n  if (!isEnabled) return;\n  console.log(msg);\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol \u0026\u0026 \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o \u0026\u0026 \"function\" == typeof Symbol \u0026\u0026 o.constructor === Symbol \u0026\u0026 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 \u003c 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(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar NoopUrlStorage = /*#__PURE__*/function () {\n  function NoopUrlStorage() {\n    _classCallCheck(this, NoopUrlStorage);\n  }\n  return _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}();\nexport { NoopUrlStorage as default };","function _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 \u0026\u0026 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 \u0026\u0026 d(d(values([]))); v \u0026\u0026 v !== r \u0026\u0026 n.call(v, a) \u0026\u0026 (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 \u0026\u0026 \"object\" == _typeof(h) \u0026\u0026 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 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 \u0026\u0026 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 \u0026\u0026 (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 \u0026\u0026 e.iterator[\"return\"] \u0026\u0026 (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n \u0026\u0026 (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 \u0026\u0026 (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 \u0026\u0026 (e.catchLoc = t[1]), 2 in t \u0026\u0026 (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 \u003c 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 \u0026\u0026 t.constructor; return !!e \u0026\u0026 (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 \u0026\u0026 (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) \u0026\u0026 n.call(this, r) \u0026\u0026 !isNaN(+r.slice(1)) \u0026\u0026 (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 \u0026\u0026 (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o \u003e= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc \u003c= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c \u0026\u0026 u) { if (this.prev \u003c i.catchLoc) return handle(i.catchLoc, !0); if (this.prev \u003c i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev \u003c i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev \u003c i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r \u003e= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc \u003c= this.prev \u0026\u0026 n.call(o, \"finallyLoc\") \u0026\u0026 this.prev \u003c o.finallyLoc) { var i = o; break; } } i \u0026\u0026 (\"break\" === t || \"continue\" === t) \u0026\u0026 i.tryLoc \u003c= e \u0026\u0026 e \u003c= i.finallyLoc \u0026\u0026 (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 \u0026\u0026 e \u0026\u0026 (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e \u003e= 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 \u003e= 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 Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method \u0026\u0026 (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 _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol \u0026\u0026 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) \u0026\u0026 (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f \u0026\u0026 null != t[\"return\"] \u0026\u0026 (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 \u0026\u0026 \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o \u0026\u0026 \"function\" == typeof Symbol \u0026\u0026 o.constructor === Symbol \u0026\u0026 o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" \u0026\u0026 o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike \u0026\u0026 o \u0026\u0026 typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i \u003e= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion \u0026\u0026 it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\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\" \u0026\u0026 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 \u003e arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i \u003c len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r \u0026\u0026 (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 \u003c 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 \u003c 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(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { Base64 } from 'js-base64';\nimport URL from 'url-parse';\nimport DetailedError from './error.js';\nimport { log } from './logger.js';\nimport uuid from './uuid.js';\nvar PROTOCOL_TUS_V1 = 'tus-v1';\nvar PROTOCOL_IETF_DRAFT_03 = 'ietf-draft-03';\nvar defaultOptions = {\n  endpoint: null,\n  uploadUrl: null,\n  metadata: {},\n  metadataForPartialUploads: {},\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: Number.POSITIVE_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  protocol: PROTOCOL_TUS_V1\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      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  return _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 (![PROTOCOL_TUS_V1, PROTOCOL_IETF_DRAFT_03].includes(this.options.protocol)) {\n        this._emitError(new Error(\"tus: unsupported protocol \".concat(this.options.protocol)));\n        return;\n      }\n      if (!this.options.endpoint \u0026\u0026 !this.options.uploadUrl \u0026\u0026 !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 \u0026\u0026 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 \u003e 1) {\n        // Test which options are incompatible with parallel uploads.\n        for (var _i = 0, _arr = ['uploadUrl', 'uploadSize', 'uploadLengthDeferred']; _i \u003c _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 \u003c= 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          log('No fingerprint was calculated meaning that the upload cannot be stored in the URL storage.');\n        } else {\n          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 \u003e 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 \u0026\u0026 _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: _this3.options.metadataForPartialUploads,\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        log(\"Created upload at \".concat(_this3.url));\n        _this3._emitSuccess(res);\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        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        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      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        var _iterator = _createForOfIteratorHelper(this._parallelUploads),\n          _step;\n        try {\n          for (_iterator.s(); !(_step = _iterator.n()).done;) {\n            var upload = _step.value;\n            upload.abort(shouldTerminate);\n          }\n        } catch (err) {\n          _iterator.e(err);\n        } finally {\n          _iterator.f();\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 DetailedError(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 \u0026\u0026 this._offset \u003e 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     * @param {object} lastResponse Last HTTP response.\n     * @api private\n     */\n  }, {\n    key: \"_emitSuccess\",\n    value: function _emitSuccess(lastResponse) {\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          lastResponse: lastResponse\n        });\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', \"\".concat(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 \u0026\u0026 !this.options.uploadLengthDeferred) {\n        this._offset = 0;\n        promise = this._addChunkToRequest(req);\n      } else {\n        if (this.options.protocol === PROTOCOL_IETF_DRAFT_03) {\n          req.setHeader('Upload-Complete', '?0');\n        }\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        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(res);\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 = Number.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 = Number.parseInt(res.getHeader('Upload-Length'), 10);\n        if (Number.isNaN(length) \u0026\u0026 !_this7.options.uploadLengthDeferred \u0026\u0026 _this7.options.protocol === PROTOCOL_TUS_V1) {\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(res);\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', \"\".concat(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 === Number.POSITIVE_INFINITY || end \u003e this._size) \u0026\u0026 !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 !== null \u0026\u0026 value !== void 0 \u0026\u0026 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 \u0026\u0026 done) {\n          _this9._size = _this9._offset + valueSize;\n          req.setHeader('Upload-Length', \"\".concat(_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 \u0026\u0026 done \u0026\u0026 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        if (_this9.options.protocol === PROTOCOL_IETF_DRAFT_03) {\n          req.setHeader('Upload-Complete', done ? '?1' : '?0');\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 = Number.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(res);\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 \u003e 1 \u0026\u0026 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 \u003e 1 \u0026\u0026 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 DetailedError('tus: unexpected response while terminating upload', null, req, res);\n      })[\"catch\"](function (err) {\n        if (!(err instanceof DetailedError)) {\n          err = new DetailedError('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}();\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(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 \u003e= category \u0026\u0026 status \u003c 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  if (options.protocol === PROTOCOL_IETF_DRAFT_03) {\n    req.setHeader('Upload-Draft-Interop-Version', '5');\n  } else {\n    req.setHeader('Tus-Resumable', '1.0.0');\n  }\n  var headers = options.headers || {};\n  for (var _i2 = 0, _Object$entries = Object.entries(headers); _i2 \u003c _Object$entries.length; _i2++) {\n    var _Object$entries$_i = _slicedToArray(_Object$entries[_i2], 2),\n      name = _Object$entries$_i[0],\n      value = _Object$entries$_i[1];\n    req.setHeader(name, value);\n  }\n  if (options.addRequestId) {\n    var requestId = uuid();\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  if (typeof navigator !== 'undefined' \u0026\u0026 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 \u003e= options.retryDelays.length || err.originalRequest == null) {\n    return false;\n  }\n  if (options \u0026\u0026 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) \u0026\u0026 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 URL(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 \u003c 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;\nexport default BaseUpload;","/**\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 */\nexport default function uuid() {\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 \u0026 0x3 | 0x8;\n    return v.toString(16);\n  });\n}","var isReactNative = function isReactNative() {\n  return typeof navigator !== 'undefined' \u0026\u0026 typeof navigator.product === 'string' \u0026\u0026 navigator.product.toLowerCase() === 'reactnative';\n};\nexport default isReactNative;","/**\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 */\nexport default function 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}","var isCordova = function isCordova() {\n  return typeof window !== 'undefined' \u0026\u0026 (typeof window.PhoneGap !== 'undefined' || typeof window.Cordova !== 'undefined' || typeof window.cordova !== 'undefined');\n};\nexport default isCordova;","/**\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 */\nexport default function 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}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol \u0026\u0026 \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o \u0026\u0026 \"function\" == typeof Symbol \u0026\u0026 o.constructor === Symbol \u0026\u0026 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 \u003c 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(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport isCordova from './isCordova.js';\nimport readAsByteArray from './readAsByteArray.js';\nvar FileSource = /*#__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  return _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 (isCordova()) {\n        return readAsByteArray(this._file.slice(start, end));\n      }\n      var value = this._file.slice(start, end);\n      var done = end \u003e= 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}();\nexport { FileSource as default };","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol \u0026\u0026 \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o \u0026\u0026 \"function\" == typeof Symbol \u0026\u0026 o.constructor === Symbol \u0026\u0026 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 \u003c 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(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\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 = /*#__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  return _createClass(StreamSource, [{\n    key: \"slice\",\n    value: function slice(start, end) {\n      if (start \u003c 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 \u003c= 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 \u003e 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 \u0026\u0026 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}();\nexport { StreamSource as default };","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol \u0026\u0026 \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o \u0026\u0026 \"function\" == typeof Symbol \u0026\u0026 o.constructor === Symbol \u0026\u0026 o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\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 \u0026\u0026 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 \u0026\u0026 d(d(values([]))); v \u0026\u0026 v !== r \u0026\u0026 n.call(v, a) \u0026\u0026 (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 \u0026\u0026 \"object\" == _typeof(h) \u0026\u0026 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 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 \u0026\u0026 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 \u0026\u0026 (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 \u0026\u0026 e.iterator[\"return\"] \u0026\u0026 (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n \u0026\u0026 (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 \u0026\u0026 (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 \u0026\u0026 (e.catchLoc = t[1]), 2 in t \u0026\u0026 (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 \u003c 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 \u0026\u0026 t.constructor; return !!e \u0026\u0026 (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 \u0026\u0026 (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) \u0026\u0026 n.call(this, r) \u0026\u0026 !isNaN(+r.slice(1)) \u0026\u0026 (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 \u0026\u0026 (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o \u003e= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc \u003c= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c \u0026\u0026 u) { if (this.prev \u003c i.catchLoc) return handle(i.catchLoc, !0); if (this.prev \u003c i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev \u003c i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev \u003c i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r \u003e= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc \u003c= this.prev \u0026\u0026 n.call(o, \"finallyLoc\") \u0026\u0026 this.prev \u003c o.finallyLoc) { var i = o; break; } } i \u0026\u0026 (\"break\" === t || \"continue\" === t) \u0026\u0026 i.tryLoc \u003c= e \u0026\u0026 e \u003c= i.finallyLoc \u0026\u0026 (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 \u0026\u0026 e \u0026\u0026 (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e \u003e= 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 \u003e= 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 Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method \u0026\u0026 (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 \u003c 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(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport isReactNative from './isReactNative.js';\nimport uriToBlob from './uriToBlob.js';\nimport FileSource from './sources/FileSource.js';\nimport StreamSource from './sources/StreamSource.js';\nvar FileReader = /*#__PURE__*/function () {\n  function FileReader() {\n    _classCallCheck(this, FileReader);\n  }\n  return _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 (!(isReactNative() \u0026\u0026 input \u0026\u0026 typeof input.uri !== 'undefined')) {\n                _context.next = 11;\n                break;\n              }\n              _context.prev = 1;\n              _context.next = 4;\n              return uriToBlob(input.uri);\n            case 4:\n              blob = _context.sent;\n              return _context.abrupt(\"return\", new FileSource(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' \u0026\u0026 typeof input.size !== 'undefined')) {\n                _context.next = 13;\n                break;\n              }\n              return _context.abrupt(\"return\", Promise.resolve(new FileSource(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(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}();\nexport { FileReader as default };","import isReactNative from './isReactNative.js';\n\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 */\nexport default function fingerprint(file, options) {\n  if (isReactNative()) {\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  // 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 \u003c str.length; i++) {\n    var _char = str.charCodeAt(i);\n    hash = (hash \u003c\u003c 5) - hash + _char;\n    hash \u0026= hash; // Convert to 32bit integer\n  }\n  return hash;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol \u0026\u0026 \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o \u0026\u0026 \"function\" == typeof Symbol \u0026\u0026 o.constructor === Symbol \u0026\u0026 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 \u003c 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(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar XHRHttpStack = /*#__PURE__*/function () {\n  function XHRHttpStack() {\n    _classCallCheck(this, XHRHttpStack);\n  }\n  return _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}();\nexport { XHRHttpStack as default };\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  return _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 \u003e 0 \u0026\u0026 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}();\nvar Response = /*#__PURE__*/function () {\n  function Response(xhr) {\n    _classCallCheck(this, Response);\n    this._xhr = xhr;\n  }\n  return _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}();","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol \u0026\u0026 \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o \u0026\u0026 \"function\" == typeof Symbol \u0026\u0026 o.constructor === Symbol \u0026\u0026 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 \u003c 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(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\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}\nexport var canStoreURLs = hasStorage;\nexport var WebStorageUrlStorage = /*#__PURE__*/function () {\n  function WebStorageUrlStorage() {\n    _classCallCheck(this, WebStorageUrlStorage);\n  }\n  return _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 \u003c 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}();","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol \u0026\u0026 \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o \u0026\u0026 \"function\" == typeof Symbol \u0026\u0026 o.constructor === Symbol \u0026\u0026 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 \u003c 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 _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call \u0026\u0026 (_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() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" \u0026\u0026 superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass \u0026\u0026 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 ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r \u0026\u0026 (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 \u003c 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(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport DetailedError from '../error.js';\nimport { enableDebugLog } from '../logger.js';\nimport NoopUrlStorage from '../noopUrlStorage.js';\nimport BaseUpload from '../upload.js';\nimport FileReader from './fileReader.js';\nimport fingerprint from './fileSignature.js';\nimport DefaultHttpStack from './httpStack.js';\nimport { WebStorageUrlStorage, canStoreURLs } from './urlStorage.js';\nvar defaultOptions = _objectSpread(_objectSpread({}, BaseUpload.defaultOptions), {}, {\n  httpStack: new DefaultHttpStack(),\n  fileReader: new FileReader(),\n  urlStorage: canStoreURLs ? new WebStorageUrlStorage() : new NoopUrlStorage(),\n  fingerprint: fingerprint\n});\nvar Upload = /*#__PURE__*/function (_BaseUpload) {\n  function Upload() {\n    var file = arguments.length \u003e 0 \u0026\u0026 arguments[0] !== undefined ? arguments[0] : null;\n    var options = arguments.length \u003e 1 \u0026\u0026 arguments[1] !== undefined ? arguments[1] : {};\n    _classCallCheck(this, Upload);\n    options = _objectSpread(_objectSpread({}, defaultOptions), options);\n    return _callSuper(this, Upload, [file, options]);\n  }\n  _inherits(Upload, _BaseUpload);\n  return _createClass(Upload, null, [{\n    key: \"terminate\",\n    value: function terminate(url) {\n      var options = arguments.length \u003e 1 \u0026\u0026 arguments[1] !== undefined ? arguments[1] : {};\n      options = _objectSpread(_objectSpread({}, defaultOptions), options);\n      return BaseUpload.terminate(url, options);\n    }\n  }]);\n}(BaseUpload); // Note: We don't reference `window` here because these classes also exist in a Web Worker's context.\nvar isSupported = typeof XMLHttpRequest === 'function' \u0026\u0026 typeof Blob === 'function' \u0026\u0026 typeof Blob.prototype.slice === 'function';\nexport { Upload, canStoreURLs, defaultOptions, isSupported, enableDebugLog, DefaultHttpStack, DetailedError };"],"version":3}
