wcz-test 6.24.2 → 6.24.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/ApprovalStatus-BtAVFn5p.js.map +1 -0
- package/dist/chunks/DialogsContext-DoU_8Eeu.js +6 -0
- package/dist/chunks/DialogsContext-DoU_8Eeu.js.map +1 -0
- package/dist/{DialogsHooks-BQVpqCq9.js → chunks/DialogsHooks-DOT0O_b4.js} +17 -16
- package/dist/chunks/DialogsHooks-DOT0O_b4.js.map +1 -0
- package/dist/chunks/FileHooks-CF1bPDoe.js +493 -0
- package/dist/chunks/FileHooks-CF1bPDoe.js.map +1 -0
- package/dist/chunks/FileMeta-G1oT3mYK.js.map +1 -0
- package/dist/chunks/RouterListItemButton-DTYXk1kh.js +35 -0
- package/dist/chunks/RouterListItemButton-DTYXk1kh.js.map +1 -0
- package/dist/chunks/env-gsqZ6zZD.js.map +1 -0
- package/dist/chunks/queryClient-CNvC95mU.js.map +1 -0
- package/dist/chunks/session-vW7WZadj.js.map +1 -0
- package/dist/chunks/utils-MD9YwOtu.js.map +1 -0
- package/dist/client.js +1 -1
- package/dist/components.js +99 -99
- package/dist/components.js.map +1 -1
- package/dist/hooks.js +47 -47
- package/dist/hooks.js.map +1 -1
- package/dist/index.js +1680 -105
- package/dist/index.js.map +1 -1
- package/dist/models.js +2 -2
- package/dist/queries.js +27 -27
- package/dist/queries.js.map +1 -1
- package/dist/server.js +2 -2
- package/dist/utils.js +1 -1
- package/package.json +5 -6
- package/dist/ApprovalStatus-BtAVFn5p.js.map +0 -1
- package/dist/DialogsContext-BKtkEAfL.js +0 -306
- package/dist/DialogsContext-BKtkEAfL.js.map +0 -1
- package/dist/DialogsHooks-BQVpqCq9.js.map +0 -1
- package/dist/FileHooks-Cg9ver7z.js +0 -3478
- package/dist/FileHooks-Cg9ver7z.js.map +0 -1
- package/dist/FileMeta-G1oT3mYK.js.map +0 -1
- package/dist/RouterListItemButton-IUVgwnz3.js +0 -35
- package/dist/RouterListItemButton-IUVgwnz3.js.map +0 -1
- package/dist/compiler-runtime-BGHur82y.js +0 -46
- package/dist/compiler-runtime-BGHur82y.js.map +0 -1
- package/dist/env-gsqZ6zZD.js.map +0 -1
- package/dist/queryClient-CNvC95mU.js.map +0 -1
- package/dist/session-vW7WZadj.js.map +0 -1
- package/dist/utils-MD9YwOtu.js.map +0 -1
- /package/dist/{ApprovalStatus-BtAVFn5p.js → chunks/ApprovalStatus-BtAVFn5p.js} +0 -0
- /package/dist/{FileMeta-G1oT3mYK.js → chunks/FileMeta-G1oT3mYK.js} +0 -0
- /package/dist/{env-gsqZ6zZD.js → chunks/env-gsqZ6zZD.js} +0 -0
- /package/dist/{queryClient-CNvC95mU.js → chunks/queryClient-CNvC95mU.js} +0 -0
- /package/dist/{session-vW7WZadj.js → chunks/session-vW7WZadj.js} +0 -0
- /package/dist/{utils-MD9YwOtu.js → chunks/utils-MD9YwOtu.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FileHooks-Cg9ver7z.js","sources":["../node_modules/tus-js-client/lib.esm/error.js","../node_modules/tus-js-client/lib.esm/logger.js","../node_modules/tus-js-client/lib.esm/noopUrlStorage.js","../node_modules/js-base64/base64.mjs","../node_modules/requires-port/index.js","../node_modules/querystringify/index.js","../node_modules/url-parse/index.js","../node_modules/tus-js-client/lib.esm/uuid.js","../node_modules/tus-js-client/lib.esm/upload.js","../node_modules/tus-js-client/lib.esm/browser/isReactNative.js","../node_modules/tus-js-client/lib.esm/browser/uriToBlob.js","../node_modules/tus-js-client/lib.esm/browser/sources/isCordova.js","../node_modules/tus-js-client/lib.esm/browser/sources/readAsByteArray.js","../node_modules/tus-js-client/lib.esm/browser/sources/FileSource.js","../node_modules/tus-js-client/lib.esm/browser/sources/StreamSource.js","../node_modules/tus-js-client/lib.esm/browser/fileReader.js","../node_modules/tus-js-client/lib.esm/browser/fileSignature.js","../node_modules/tus-js-client/lib.esm/browser/httpStack.js","../node_modules/tus-js-client/lib.esm/browser/urlStorage.js","../node_modules/tus-js-client/lib.esm/browser/index.js","../src/queries/FileHooks.ts"],"sourcesContent":["function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(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 && (_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\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _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 && _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 > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var req = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var res = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n _classCallCheck(this, DetailedError);\n _this = _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 && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(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 };","/**\n * base64.ts\n *\n * Licensed under the BSD 3-Clause License.\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * References:\n * http://en.wikipedia.org/wiki/Base64\n *\n * @author Dan Kogai (https://github.com/dankogai)\n */\nconst version = '3.7.8';\n/**\n * @deprecated use lowercase `version`.\n */\nconst VERSION = version;\nconst _hasBuffer = typeof Buffer === 'function';\nconst _TD = typeof TextDecoder === 'function' ? new TextDecoder() : undefined;\nconst _TE = typeof TextEncoder === 'function' ? new TextEncoder() : undefined;\nconst b64ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nconst b64chs = Array.prototype.slice.call(b64ch);\nconst b64tab = ((a) => {\n let tab = {};\n a.forEach((c, i) => tab[c] = i);\n return tab;\n})(b64chs);\nconst b64re = /^(?:[A-Za-z\\d+\\/]{4})*?(?:[A-Za-z\\d+\\/]{2}(?:==)?|[A-Za-z\\d+\\/]{3}=?)?$/;\nconst _fromCC = String.fromCharCode.bind(String);\nconst _U8Afrom = typeof Uint8Array.from === 'function'\n ? Uint8Array.from.bind(Uint8Array)\n : (it) => new Uint8Array(Array.prototype.slice.call(it, 0));\nconst _mkUriSafe = (src) => src\n .replace(/=/g, '').replace(/[+\\/]/g, (m0) => m0 == '+' ? '-' : '_');\nconst _tidyB64 = (s) => s.replace(/[^A-Za-z0-9\\+\\/]/g, '');\n/**\n * polyfill version of `btoa`\n */\nconst btoaPolyfill = (bin) => {\n // console.log('polyfilled');\n let u32, c0, c1, c2, asc = '';\n const pad = bin.length % 3;\n for (let i = 0; i < bin.length;) {\n if ((c0 = bin.charCodeAt(i++)) > 255 ||\n (c1 = bin.charCodeAt(i++)) > 255 ||\n (c2 = bin.charCodeAt(i++)) > 255)\n throw new TypeError('invalid character found');\n u32 = (c0 << 16) | (c1 << 8) | c2;\n asc += b64chs[u32 >> 18 & 63]\n + b64chs[u32 >> 12 & 63]\n + b64chs[u32 >> 6 & 63]\n + b64chs[u32 & 63];\n }\n return pad ? asc.slice(0, pad - 3) + \"===\".substring(pad) : asc;\n};\n/**\n * does what `window.btoa` of web browsers do.\n * @param {String} bin binary string\n * @returns {string} Base64-encoded string\n */\nconst _btoa = typeof btoa === 'function' ? (bin) => btoa(bin)\n : _hasBuffer ? (bin) => Buffer.from(bin, 'binary').toString('base64')\n : btoaPolyfill;\nconst _fromUint8Array = _hasBuffer\n ? (u8a) => Buffer.from(u8a).toString('base64')\n : (u8a) => {\n // cf. https://stackoverflow.com/questions/12710001/how-to-convert-uint8-array-to-base64-encoded-string/12713326#12713326\n const maxargs = 0x1000;\n let strs = [];\n for (let i = 0, l = u8a.length; i < l; i += maxargs) {\n strs.push(_fromCC.apply(null, u8a.subarray(i, i + maxargs)));\n }\n return _btoa(strs.join(''));\n };\n/**\n * converts a Uint8Array to a Base64 string.\n * @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 §5\n * @returns {string} Base64 string\n */\nconst fromUint8Array = (u8a, urlsafe = false) => urlsafe ? _mkUriSafe(_fromUint8Array(u8a)) : _fromUint8Array(u8a);\n// This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const utob = (src: string) => unescape(encodeURIComponent(src));\n// reverting good old fationed regexp\nconst cb_utob = (c) => {\n if (c.length < 2) {\n var cc = c.charCodeAt(0);\n return cc < 0x80 ? c\n : cc < 0x800 ? (_fromCC(0xc0 | (cc >>> 6))\n + _fromCC(0x80 | (cc & 0x3f)))\n : (_fromCC(0xe0 | ((cc >>> 12) & 0x0f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n else {\n var cc = 0x10000\n + (c.charCodeAt(0) - 0xD800) * 0x400\n + (c.charCodeAt(1) - 0xDC00);\n return (_fromCC(0xf0 | ((cc >>> 18) & 0x07))\n + _fromCC(0x80 | ((cc >>> 12) & 0x3f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n};\nconst re_utob = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFFF]|[^\\x00-\\x7F]/g;\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-8 string\n * @returns {string} UTF-16 string\n */\nconst utob = (u) => u.replace(re_utob, cb_utob);\n//\nconst _encode = _hasBuffer\n ? (s) => Buffer.from(s, 'utf8').toString('base64')\n : _TE\n ? (s) => _fromUint8Array(_TE.encode(s))\n : (s) => _btoa(utob(s));\n/**\n * converts a UTF-8-encoded string to a Base64 string.\n * @param {boolean} [urlsafe] if `true` make the result URL-safe\n * @returns {string} Base64 string\n */\nconst encode = (src, urlsafe = false) => urlsafe\n ? _mkUriSafe(_encode(src))\n : _encode(src);\n/**\n * converts a UTF-8-encoded string to URL-safe Base64 RFC4648 §5.\n * @returns {string} Base64 string\n */\nconst encodeURI = (src) => encode(src, true);\n// This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const btou = (src: string) => decodeURIComponent(escape(src));\n// reverting good old fationed regexp\nconst re_btou = /[\\xC0-\\xDF][\\x80-\\xBF]|[\\xE0-\\xEF][\\x80-\\xBF]{2}|[\\xF0-\\xF7][\\x80-\\xBF]{3}/g;\nconst cb_btou = (cccc) => {\n switch (cccc.length) {\n case 4:\n var cp = ((0x07 & cccc.charCodeAt(0)) << 18)\n | ((0x3f & cccc.charCodeAt(1)) << 12)\n | ((0x3f & cccc.charCodeAt(2)) << 6)\n | (0x3f & cccc.charCodeAt(3)), offset = cp - 0x10000;\n return (_fromCC((offset >>> 10) + 0xD800)\n + _fromCC((offset & 0x3FF) + 0xDC00));\n case 3:\n return _fromCC(((0x0f & cccc.charCodeAt(0)) << 12)\n | ((0x3f & cccc.charCodeAt(1)) << 6)\n | (0x3f & cccc.charCodeAt(2)));\n default:\n return _fromCC(((0x1f & cccc.charCodeAt(0)) << 6)\n | (0x3f & cccc.charCodeAt(1)));\n }\n};\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-16 string\n * @returns {string} UTF-8 string\n */\nconst btou = (b) => b.replace(re_btou, cb_btou);\n/**\n * polyfill version of `atob`\n */\nconst atobPolyfill = (asc) => {\n // console.log('polyfilled');\n asc = asc.replace(/\\s+/g, '');\n if (!b64re.test(asc))\n throw new TypeError('malformed base64.');\n asc += '=='.slice(2 - (asc.length & 3));\n let u24, r1, r2;\n let binArray = []; // use array to avoid minor gc in loop\n for (let i = 0; i < asc.length;) {\n u24 = b64tab[asc.charAt(i++)] << 18\n | b64tab[asc.charAt(i++)] << 12\n | (r1 = b64tab[asc.charAt(i++)]) << 6\n | (r2 = b64tab[asc.charAt(i++)]);\n if (r1 === 64) {\n binArray.push(_fromCC(u24 >> 16 & 255));\n }\n else if (r2 === 64) {\n binArray.push(_fromCC(u24 >> 16 & 255, u24 >> 8 & 255));\n }\n else {\n binArray.push(_fromCC(u24 >> 16 & 255, u24 >> 8 & 255, u24 & 255));\n }\n }\n return binArray.join('');\n};\n/**\n * does what `window.atob` of web browsers do.\n * @param {String} asc Base64-encoded string\n * @returns {string} binary string\n */\nconst _atob = typeof atob === 'function' ? (asc) => atob(_tidyB64(asc))\n : _hasBuffer ? (asc) => Buffer.from(asc, 'base64').toString('binary')\n : atobPolyfill;\n//\nconst _toUint8Array = _hasBuffer\n ? (a) => _U8Afrom(Buffer.from(a, 'base64'))\n : (a) => _U8Afrom(_atob(a).split('').map(c => c.charCodeAt(0)));\n/**\n * converts a Base64 string to a Uint8Array.\n */\nconst toUint8Array = (a) => _toUint8Array(_unURI(a));\n//\nconst _decode = _hasBuffer\n ? (a) => Buffer.from(a, 'base64').toString('utf8')\n : _TD\n ? (a) => _TD.decode(_toUint8Array(a))\n : (a) => btou(_atob(a));\nconst _unURI = (a) => _tidyB64(a.replace(/[-_]/g, (m0) => m0 == '-' ? '+' : '/'));\n/**\n * converts a Base64 string to a UTF-8 string.\n * @param {String} src Base64 string. Both normal and URL-safe are supported\n * @returns {string} UTF-8 string\n */\nconst decode = (src) => _decode(_unURI(src));\n/**\n * check if a value is a valid Base64 string\n * @param {String} src a value to check\n */\nconst isValid = (src) => {\n if (typeof src !== 'string')\n return false;\n const s = src.replace(/\\s+/g, '').replace(/={0,2}$/, '');\n return !/[^\\s0-9a-zA-Z\\+/]/.test(s) || !/[^\\s0-9a-zA-Z\\-_]/.test(s);\n};\n//\nconst _noEnum = (v) => {\n return {\n value: v, enumerable: false, writable: true, configurable: true\n };\n};\n/**\n * extend String.prototype with relevant methods\n */\nconst extendString = function () {\n const _add = (name, body) => Object.defineProperty(String.prototype, name, _noEnum(body));\n _add('fromBase64', function () { return decode(this); });\n _add('toBase64', function (urlsafe) { return encode(this, urlsafe); });\n _add('toBase64URI', function () { return encode(this, true); });\n _add('toBase64URL', function () { return encode(this, true); });\n _add('toUint8Array', function () { return toUint8Array(this); });\n};\n/**\n * extend Uint8Array.prototype with relevant methods\n */\nconst extendUint8Array = function () {\n const _add = (name, body) => Object.defineProperty(Uint8Array.prototype, name, _noEnum(body));\n _add('toBase64', function (urlsafe) { return fromUint8Array(this, urlsafe); });\n _add('toBase64URI', function () { return fromUint8Array(this, true); });\n _add('toBase64URL', function () { return fromUint8Array(this, true); });\n};\n/**\n * extend Builtin prototypes with relevant methods\n */\nconst extendBuiltins = () => {\n extendString();\n extendUint8Array();\n};\nconst gBase64 = {\n version: version,\n VERSION: VERSION,\n atob: _atob,\n atobPolyfill: atobPolyfill,\n btoa: _btoa,\n btoaPolyfill: btoaPolyfill,\n fromBase64: decode,\n toBase64: encode,\n encode: encode,\n encodeURI: encodeURI,\n encodeURL: encodeURI,\n utob: utob,\n btou: btou,\n decode: decode,\n isValid: isValid,\n fromUint8Array: fromUint8Array,\n toUint8Array: toUint8Array,\n extendString: extendString,\n extendUint8Array: extendUint8Array,\n extendBuiltins: extendBuiltins\n};\n// makecjs:CUT //\nexport { version };\nexport { VERSION };\nexport { _atob as atob };\nexport { atobPolyfill };\nexport { _btoa as btoa };\nexport { btoaPolyfill };\nexport { decode as fromBase64 };\nexport { encode as toBase64 };\nexport { utob };\nexport { encode };\nexport { encodeURI };\nexport { encodeURI as encodeURL };\nexport { btou };\nexport { decode };\nexport { isValid };\nexport { fromUint8Array };\nexport { toUint8Array };\nexport { extendString };\nexport { extendUint8Array };\nexport { extendBuiltins };\n// and finally,\nexport { gBase64 as Base64 };\n","'use strict';\n\n/**\n * Check if we're required to add a port number.\n *\n * @see https://url.spec.whatwg.org/#default-port\n * @param {Number|String} port Port number we need to check\n * @param {String} protocol Protocol we need to check against.\n * @returns {Boolean} Is it a default port for the given protocol\n * @api private\n */\nmodule.exports = function required(port, protocol) {\n protocol = protocol.split(':')[0];\n port = +port;\n\n if (!port) return false;\n\n switch (protocol) {\n case 'http':\n case 'ws':\n return port !== 80;\n\n case 'https':\n case 'wss':\n return port !== 443;\n\n case 'ftp':\n return port !== 21;\n\n case 'gopher':\n return port !== 70;\n\n case 'file':\n return false;\n }\n\n return port !== 0;\n};\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , undef;\n\n/**\n * Decode a URI encoded string.\n *\n * @param {String} input The URI encoded string.\n * @returns {String|Null} The decoded string.\n * @api private\n */\nfunction decode(input) {\n try {\n return decodeURIComponent(input.replace(/\\+/g, ' '));\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Attempts to encode a given input.\n *\n * @param {String} input The string that needs to be encoded.\n * @returns {String|Null} The encoded string.\n * @api private\n */\nfunction encode(input) {\n try {\n return encodeURIComponent(input);\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\nfunction querystring(query) {\n var parser = /([^=?#&]+)=?([^&]*)/g\n , result = {}\n , part;\n\n while (part = parser.exec(query)) {\n var key = decode(part[1])\n , value = decode(part[2]);\n\n //\n // Prevent overriding of existing properties. This ensures that build-in\n // methods like `toString` or __proto__ are not overriden by malicious\n // querystrings.\n //\n // In the case if failed decoding, we want to omit the key/value pairs\n // from the result.\n //\n if (key === null || value === null || key in result) continue;\n result[key] = value;\n }\n\n return result;\n}\n\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\nfunction querystringify(obj, prefix) {\n prefix = prefix || '';\n\n var pairs = []\n , value\n , key;\n\n //\n // Optionally prefix with a '?' if needed\n //\n if ('string' !== typeof prefix) prefix = '?';\n\n for (key in obj) {\n if (has.call(obj, key)) {\n value = obj[key];\n\n //\n // Edge cases where we actually want to encode the value to an empty\n // string instead of the stringified value.\n //\n if (!value && (value === null || value === undef || isNaN(value))) {\n value = '';\n }\n\n key = encode(key);\n value = encode(value);\n\n //\n // If we failed to encode the strings, we should bail out as we don't\n // want to add invalid strings to the query.\n //\n if (key === null || value === null) continue;\n pairs.push(key +'='+ value);\n }\n }\n\n return pairs.length ? prefix + pairs.join('&') : '';\n}\n\n//\n// Expose the module.\n//\nexports.stringify = querystringify;\nexports.parse = querystring;\n","'use strict';\n\nvar required = require('requires-port')\n , qs = require('querystringify')\n , controlOrWhitespace = /^[\\x00-\\x20\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]+/\n , CRHTLF = /[\\n\\r\\t]/g\n , slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//\n , port = /:\\d+$/\n , protocolre = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\\\/]+)?([\\S\\s]*)/i\n , windowsDriveLetter = /^[a-zA-Z]:/;\n\n/**\n * Remove control characters and whitespace from the beginning of a string.\n *\n * @param {Object|String} str String to trim.\n * @returns {String} A new string representing `str` stripped of control\n * characters and whitespace from its beginning.\n * @public\n */\nfunction trimLeft(str) {\n return (str ? str : '').toString().replace(controlOrWhitespace, '');\n}\n\n/**\n * These are the parse rules for the URL parser, it informs the parser\n * about:\n *\n * 0. The char it Needs to parse, if it's a string it should be done using\n * indexOf, RegExp using exec and NaN means set as current value.\n * 1. The property we should set when parsing this value.\n * 2. Indication if it's backwards or forward parsing, when set as number it's\n * the value of extra chars that should be split off.\n * 3. Inherit from location if non existing in the parser.\n * 4. `toLowerCase` the resulting value.\n */\nvar rules = [\n ['#', 'hash'], // Extract from the back.\n ['?', 'query'], // Extract from the back.\n function sanitize(address, url) { // Sanitize what is left of the address\n return isSpecial(url.protocol) ? address.replace(/\\\\/g, '/') : address;\n },\n ['/', 'pathname'], // Extract from the back.\n ['@', 'auth', 1], // Extract from the front.\n [NaN, 'host', undefined, 1, 1], // Set left over value.\n [/:(\\d*)$/, 'port', undefined, 1], // RegExp the back.\n [NaN, 'hostname', undefined, 1, 1] // Set left over.\n];\n\n/**\n * These properties should not be copied or inherited from. This is only needed\n * for all non blob URL's as a blob URL does not include a hash, only the\n * origin.\n *\n * @type {Object}\n * @private\n */\nvar ignore = { hash: 1, query: 1 };\n\n/**\n * The location object differs when your code is loaded through a normal page,\n * Worker or through a worker using a blob. And with the blobble begins the\n * trouble as the location object will contain the URL of the blob, not the\n * location of the page where our code is loaded in. The actual origin is\n * encoded in the `pathname` so we can thankfully generate a good \"default\"\n * location from it so we can generate proper relative URL's again.\n *\n * @param {Object|String} loc Optional default location object.\n * @returns {Object} lolcation object.\n * @public\n */\nfunction lolcation(loc) {\n var globalVar;\n\n if (typeof window !== 'undefined') globalVar = window;\n else if (typeof global !== 'undefined') globalVar = global;\n else if (typeof self !== 'undefined') globalVar = self;\n else globalVar = {};\n\n var location = globalVar.location || {};\n loc = loc || location;\n\n var finaldestination = {}\n , type = typeof loc\n , key;\n\n if ('blob:' === loc.protocol) {\n finaldestination = new Url(unescape(loc.pathname), {});\n } else if ('string' === type) {\n finaldestination = new Url(loc, {});\n for (key in ignore) delete finaldestination[key];\n } else if ('object' === type) {\n for (key in loc) {\n if (key in ignore) continue;\n finaldestination[key] = loc[key];\n }\n\n if (finaldestination.slashes === undefined) {\n finaldestination.slashes = slashes.test(loc.href);\n }\n }\n\n return finaldestination;\n}\n\n/**\n * Check whether a protocol scheme is special.\n *\n * @param {String} The protocol scheme of the URL\n * @return {Boolean} `true` if the protocol scheme is special, else `false`\n * @private\n */\nfunction isSpecial(scheme) {\n return (\n scheme === 'file:' ||\n scheme === 'ftp:' ||\n scheme === 'http:' ||\n scheme === 'https:' ||\n scheme === 'ws:' ||\n scheme === 'wss:'\n );\n}\n\n/**\n * @typedef ProtocolExtract\n * @type Object\n * @property {String} protocol Protocol matched in the URL, in lowercase.\n * @property {Boolean} slashes `true` if protocol is followed by \"//\", else `false`.\n * @property {String} rest Rest of the URL that is not part of the protocol.\n */\n\n/**\n * Extract protocol information from a URL with/without double slash (\"//\").\n *\n * @param {String} address URL we want to extract from.\n * @param {Object} location\n * @return {ProtocolExtract} Extracted information.\n * @private\n */\nfunction extractProtocol(address, location) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, '');\n location = location || {};\n\n var match = protocolre.exec(address);\n var protocol = match[1] ? match[1].toLowerCase() : '';\n var forwardSlashes = !!match[2];\n var otherSlashes = !!match[3];\n var slashesCount = 0;\n var rest;\n\n if (forwardSlashes) {\n if (otherSlashes) {\n rest = match[2] + match[3] + match[4];\n slashesCount = match[2].length + match[3].length;\n } else {\n rest = match[2] + match[4];\n slashesCount = match[2].length;\n }\n } else {\n if (otherSlashes) {\n rest = match[3] + match[4];\n slashesCount = match[3].length;\n } else {\n rest = match[4]\n }\n }\n\n if (protocol === 'file:') {\n if (slashesCount >= 2) {\n rest = rest.slice(2);\n }\n } else if (isSpecial(protocol)) {\n rest = match[4];\n } else if (protocol) {\n if (forwardSlashes) {\n rest = rest.slice(2);\n }\n } else if (slashesCount >= 2 && isSpecial(location.protocol)) {\n rest = match[4];\n }\n\n return {\n protocol: protocol,\n slashes: forwardSlashes || isSpecial(protocol),\n slashesCount: slashesCount,\n rest: rest\n };\n}\n\n/**\n * Resolve a relative URL pathname against a base URL pathname.\n *\n * @param {String} relative Pathname of the relative URL.\n * @param {String} base Pathname of the base URL.\n * @return {String} Resolved pathname.\n * @private\n */\nfunction resolve(relative, base) {\n if (relative === '') return base;\n\n var path = (base || '/').split('/').slice(0, -1).concat(relative.split('/'))\n , i = path.length\n , last = path[i - 1]\n , unshift = false\n , up = 0;\n\n while (i--) {\n if (path[i] === '.') {\n path.splice(i, 1);\n } else if (path[i] === '..') {\n path.splice(i, 1);\n up++;\n } else if (up) {\n if (i === 0) unshift = true;\n path.splice(i, 1);\n up--;\n }\n }\n\n if (unshift) path.unshift('');\n if (last === '.' || last === '..') path.push('');\n\n return path.join('/');\n}\n\n/**\n * The actual URL instance. Instead of returning an object we've opted-in to\n * create an actual constructor as it's much more memory efficient and\n * faster and it pleases my OCD.\n *\n * It is worth noting that we should not use `URL` as class name to prevent\n * clashes with the global URL instance that got introduced in browsers.\n *\n * @constructor\n * @param {String} address URL we want to parse.\n * @param {Object|String} [location] Location defaults for relative paths.\n * @param {Boolean|Function} [parser] Parser for the query string.\n * @private\n */\nfunction Url(address, location, parser) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, '');\n\n if (!(this instanceof Url)) {\n return new Url(address, location, parser);\n }\n\n var relative, extracted, parse, instruction, index, key\n , instructions = rules.slice()\n , type = typeof location\n , url = this\n , i = 0;\n\n //\n // The following if statements allows this module two have compatibility with\n // 2 different API:\n //\n // 1. Node.js's `url.parse` api which accepts a URL, boolean as arguments\n // where the boolean indicates that the query string should also be parsed.\n //\n // 2. The `URL` interface of the browser which accepts a URL, object as\n // arguments. The supplied object will be used as default values / fall-back\n // for relative paths.\n //\n if ('object' !== type && 'string' !== type) {\n parser = location;\n location = null;\n }\n\n if (parser && 'function' !== typeof parser) parser = qs.parse;\n\n location = lolcation(location);\n\n //\n // Extract protocol information before running the instructions.\n //\n extracted = extractProtocol(address || '', location);\n relative = !extracted.protocol && !extracted.slashes;\n url.slashes = extracted.slashes || relative && location.slashes;\n url.protocol = extracted.protocol || location.protocol || '';\n address = extracted.rest;\n\n //\n // When the authority component is absent the URL starts with a path\n // component.\n //\n if (\n extracted.protocol === 'file:' && (\n extracted.slashesCount !== 2 || windowsDriveLetter.test(address)) ||\n (!extracted.slashes &&\n (extracted.protocol ||\n extracted.slashesCount < 2 ||\n !isSpecial(url.protocol)))\n ) {\n instructions[3] = [/(.*)/, 'pathname'];\n }\n\n for (; i < instructions.length; i++) {\n instruction = instructions[i];\n\n if (typeof instruction === 'function') {\n address = instruction(address, url);\n continue;\n }\n\n parse = instruction[0];\n key = instruction[1];\n\n if (parse !== parse) {\n url[key] = address;\n } else if ('string' === typeof parse) {\n index = parse === '@'\n ? address.lastIndexOf(parse)\n : address.indexOf(parse);\n\n if (~index) {\n if ('number' === typeof instruction[2]) {\n url[key] = address.slice(0, index);\n address = address.slice(index + instruction[2]);\n } else {\n url[key] = address.slice(index);\n address = address.slice(0, index);\n }\n }\n } else if ((index = parse.exec(address))) {\n url[key] = index[1];\n address = address.slice(0, index.index);\n }\n\n url[key] = url[key] || (\n relative && instruction[3] ? location[key] || '' : ''\n );\n\n //\n // Hostname, host and protocol should be lowercased so they can be used to\n // create a proper `origin`.\n //\n if (instruction[4]) url[key] = url[key].toLowerCase();\n }\n\n //\n // Also parse the supplied query string in to an object. If we're supplied\n // with a custom parser as function use that instead of the default build-in\n // parser.\n //\n if (parser) url.query = parser(url.query);\n\n //\n // If the URL is relative, resolve the pathname against the base URL.\n //\n if (\n relative\n && location.slashes\n && url.pathname.charAt(0) !== '/'\n && (url.pathname !== '' || location.pathname !== '')\n ) {\n url.pathname = resolve(url.pathname, location.pathname);\n }\n\n //\n // Default to a / for pathname if none exists. This normalizes the URL\n // to always have a /\n //\n if (url.pathname.charAt(0) !== '/' && isSpecial(url.protocol)) {\n url.pathname = '/' + url.pathname;\n }\n\n //\n // We should not add port numbers if they are already the default port number\n // for a given protocol. As the host also contains the port number we're going\n // override it with the hostname which contains no port number.\n //\n if (!required(url.port, url.protocol)) {\n url.host = url.hostname;\n url.port = '';\n }\n\n //\n // Parse down the `auth` for the username and password.\n //\n url.username = url.password = '';\n\n if (url.auth) {\n index = url.auth.indexOf(':');\n\n if (~index) {\n url.username = url.auth.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n url.password = url.auth.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password))\n } else {\n url.username = encodeURIComponent(decodeURIComponent(url.auth));\n }\n\n url.auth = url.password ? url.username +':'+ url.password : url.username;\n }\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n //\n // The href is just the compiled result.\n //\n url.href = url.toString();\n}\n\n/**\n * This is convenience method for changing properties in the URL instance to\n * insure that they all propagate correctly.\n *\n * @param {String} part Property we need to adjust.\n * @param {Mixed} value The newly assigned value.\n * @param {Boolean|Function} fn When setting the query, it will be the function\n * used to parse the query.\n * When setting the protocol, double slash will be\n * removed from the final url if it is true.\n * @returns {URL} URL instance for chaining.\n * @public\n */\nfunction set(part, value, fn) {\n var url = this;\n\n switch (part) {\n case 'query':\n if ('string' === typeof value && value.length) {\n value = (fn || qs.parse)(value);\n }\n\n url[part] = value;\n break;\n\n case 'port':\n url[part] = value;\n\n if (!required(value, url.protocol)) {\n url.host = url.hostname;\n url[part] = '';\n } else if (value) {\n url.host = url.hostname +':'+ value;\n }\n\n break;\n\n case 'hostname':\n url[part] = value;\n\n if (url.port) value += ':'+ url.port;\n url.host = value;\n break;\n\n case 'host':\n url[part] = value;\n\n if (port.test(value)) {\n value = value.split(':');\n url.port = value.pop();\n url.hostname = value.join(':');\n } else {\n url.hostname = value;\n url.port = '';\n }\n\n break;\n\n case 'protocol':\n url.protocol = value.toLowerCase();\n url.slashes = !fn;\n break;\n\n case 'pathname':\n case 'hash':\n if (value) {\n var char = part === 'pathname' ? '/' : '#';\n url[part] = value.charAt(0) !== char ? char + value : value;\n } else {\n url[part] = value;\n }\n break;\n\n case 'username':\n case 'password':\n url[part] = encodeURIComponent(value);\n break;\n\n case 'auth':\n var index = value.indexOf(':');\n\n if (~index) {\n url.username = value.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n url.password = value.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password));\n } else {\n url.username = encodeURIComponent(decodeURIComponent(value));\n }\n }\n\n for (var i = 0; i < rules.length; i++) {\n var ins = rules[i];\n\n if (ins[4]) url[ins[1]] = url[ins[1]].toLowerCase();\n }\n\n url.auth = url.password ? url.username +':'+ url.password : url.username;\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n url.href = url.toString();\n\n return url;\n}\n\n/**\n * Transform the properties back in to a valid and full URL string.\n *\n * @param {Function} stringify Optional query stringify function.\n * @returns {String} Compiled version of the URL.\n * @public\n */\nfunction toString(stringify) {\n if (!stringify || 'function' !== typeof stringify) stringify = qs.stringify;\n\n var query\n , url = this\n , host = url.host\n , protocol = url.protocol;\n\n if (protocol && protocol.charAt(protocol.length - 1) !== ':') protocol += ':';\n\n var result =\n protocol +\n ((url.protocol && url.slashes) || isSpecial(url.protocol) ? '//' : '');\n\n if (url.username) {\n result += url.username;\n if (url.password) result += ':'+ url.password;\n result += '@';\n } else if (url.password) {\n result += ':'+ url.password;\n result += '@';\n } else if (\n url.protocol !== 'file:' &&\n isSpecial(url.protocol) &&\n !host &&\n url.pathname !== '/'\n ) {\n //\n // Add back the empty userinfo, otherwise the original invalid URL\n // might be transformed into a valid one with `url.pathname` as host.\n //\n result += '@';\n }\n\n //\n // Trailing colon is removed from `url.host` when it is parsed. If it still\n // ends with a colon, then add back the trailing colon that was removed. This\n // prevents an invalid URL from being transformed into a valid one.\n //\n if (host[host.length - 1] === ':' || (port.test(url.hostname) && !url.port)) {\n host += ':';\n }\n\n result += host + url.pathname;\n\n query = 'object' === typeof url.query ? stringify(url.query) : url.query;\n if (query) result += '?' !== query.charAt(0) ? '?'+ query : query;\n\n if (url.hash) result += url.hash;\n\n return result;\n}\n\nUrl.prototype = { set: set, toString: toString };\n\n//\n// Expose the URL parser and some additional properties that might be useful for\n// others or testing.\n//\nUrl.extractProtocol = extractProtocol;\nUrl.location = lolcation;\nUrl.trimLeft = trimLeft;\nUrl.qs = qs;\n\nmodule.exports = Url;\n","/**\n * 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 & 0x3 | 0x8;\n return v.toString(16);\n });\n}","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 && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = 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 && 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\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(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 PROTOCOL_IETF_DRAFT_05 = 'ietf-draft-05';\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, PROTOCOL_IETF_DRAFT_05].includes(this.options.protocol)) {\n this._emitError(new Error(\"tus: unsupported protocol \".concat(this.options.protocol)));\n return;\n }\n if (!this.options.endpoint && !this.options.uploadUrl && !this.url) {\n this._emitError(new Error('tus: neither an endpoint or an upload URL is provided'));\n return;\n }\n var retryDelays = this.options.retryDelays;\n if (retryDelays != null && Object.prototype.toString.call(retryDelays) !== '[object Array]') {\n this._emitError(new Error('tus: the `retryDelays` option must either be an array or null'));\n return;\n }\n if (this.options.parallelUploads > 1) {\n // Test which options are incompatible with parallel uploads.\n for (var _i = 0, _arr = ['uploadUrl', 'uploadSize', 'uploadLengthDeferred']; _i < _arr.length; _i++) {\n var optionName = _arr[_i];\n if (this.options[optionName]) {\n this._emitError(new Error(\"tus: cannot use the \".concat(optionName, \" option when parallelUploads is enabled\")));\n return;\n }\n }\n }\n if (this.options.parallelUploadBoundaries) {\n if (this.options.parallelUploads <= 1) {\n this._emitError(new Error('tus: cannot use the `parallelUploadBoundaries` option when `parallelUploads` is disabled'));\n return;\n }\n if (this.options.parallelUploads !== this.options.parallelUploadBoundaries.length) {\n this._emitError(new Error('tus: the `parallelUploadBoundaries` must have the same length as the value of `parallelUploads`'));\n return;\n }\n }\n this.options.fingerprint(file, this.options).then(function (fingerprint) {\n if (fingerprint == null) {\n 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 > 1 || _this2._parallelUploadUrls != null) {\n _this2._startParallelUpload();\n } else {\n _this2._startSingleUpload();\n }\n })[\"catch\"](function (err) {\n _this2._emitError(err);\n });\n }\n\n /**\n * Initiate the uploading procedure for a parallelized upload, where one file is split into\n * multiple request which are run in parallel.\n *\n * @api private\n */\n }, {\n key: \"_startParallelUpload\",\n value: function _startParallelUpload() {\n var _this$options$paralle,\n _this3 = this;\n var totalSize = this._size;\n var totalProgress = 0;\n this._parallelUploads = [];\n var partCount = this._parallelUploadUrls != null ? this._parallelUploadUrls.length : this.options.parallelUploads;\n\n // The input file will be split into multiple slices which are uploaded in separate\n // requests. Here we get the start and end position for the slices.\n var parts = (_this$options$paralle = this.options.parallelUploadBoundaries) !== null && _this$options$paralle !== void 0 ? _this$options$paralle : splitSizeIntoParts(this._source.size, partCount);\n\n // Attach URLs from previous uploads, if available.\n if (this._parallelUploadUrls) {\n parts.forEach(function (part, index) {\n part.uploadUrl = _this3._parallelUploadUrls[index] || null;\n });\n }\n\n // Create an empty list for storing the upload URLs\n this._parallelUploadUrls = new Array(parts.length);\n\n // Generate a promise for each slice that will be resolve if the respective\n // upload is completed.\n var uploads = parts.map(function (part, index) {\n var lastPartProgress = 0;\n return _this3._source.slice(part.start, part.end).then(function (_ref) {\n var value = _ref.value;\n return new Promise(function (resolve, reject) {\n // Merge with the user supplied options but overwrite some values.\n var options = _objectSpread(_objectSpread({}, _this3.options), {}, {\n // If available, the partial upload should be resumed from a previous URL.\n uploadUrl: part.uploadUrl || null,\n // We take manually care of resuming for partial uploads, so they should\n // not be stored in the URL storage.\n storeFingerprintForResuming: false,\n removeFingerprintOnSuccess: false,\n // Reset the parallelUploads option to not cause recursion.\n parallelUploads: 1,\n // Reset this option as we are not doing a parallel upload.\n parallelUploadBoundaries: null,\n metadata: _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 && this._offset > this._offsetBeforeRetry;\n if (shouldResetDelays) {\n this._retryAttempt = 0;\n }\n if (shouldRetry(err, this._retryAttempt, this.options)) {\n var delay = this.options.retryDelays[this._retryAttempt++];\n this._offsetBeforeRetry = this._offset;\n this._retryTimeout = setTimeout(function () {\n _this5.start();\n }, delay);\n return;\n }\n }\n if (typeof this.options.onError === 'function') {\n this.options.onError(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Publishes notification if the upload has been successfully completed.\n *\n * @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 && !this.options.uploadLengthDeferred) {\n this._offset = 0;\n promise = this._addChunkToRequest(req);\n } else {\n if (this.options.protocol === PROTOCOL_IETF_DRAFT_03 || this.options.protocol === PROTOCOL_IETF_DRAFT_05) {\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) && !_this7.options.uploadLengthDeferred && _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 if (this.options.protocol === PROTOCOL_TUS_V1) {\n req.setHeader('Content-Type', 'application/offset+octet-stream');\n } else if (this.options.protocol === PROTOCOL_IETF_DRAFT_05) {\n req.setHeader('Content-Type', 'application/partial-upload');\n }\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 > this._size) && !this.options.uploadLengthDeferred) {\n end = this._size;\n }\n return this._source.slice(start, end).then(function (_ref2) {\n var value = _ref2.value,\n done = _ref2.done;\n var valueSize = value !== null && value !== void 0 && value.size ? value.size : 0;\n\n // If the upload length is deferred, the upload size was not specified during\n // upload creation. So, if the file reader is done reading, we know the total\n // upload size and can tell the tus server.\n if (_this9.options.uploadLengthDeferred && done) {\n _this9._size = _this9._offset + valueSize;\n req.setHeader('Upload-Length', \"\".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 && done && newSize !== _this9._size) {\n return Promise.reject(new Error(\"upload was configured with a size of \".concat(_this9._size, \" bytes, but the source is done after \").concat(newSize, \" bytes\")));\n }\n if (value === null) {\n return _this9._sendRequest(req);\n }\n if (_this9.options.protocol === PROTOCOL_IETF_DRAFT_03 || _this9.options.protocol === PROTOCOL_IETF_DRAFT_05) {\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 > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return sendRequest(req, body, this.options);\n }\n }], [{\n key: \"terminate\",\n value: function terminate(url) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var req = openRequest('DELETE', url, options);\n return sendRequest(req, null, options).then(function (res) {\n // A 204 response indicates a successfull request\n if (res.getStatus() === 204) {\n return;\n }\n throw new 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 >= category && status < category + 100;\n}\n\n/**\n * Create a new HTTP request with the specified method and URL.\n * The necessary headers that are included in every request\n * will be added, including the request ID.\n *\n * @api private\n */\nfunction openRequest(method, url, options) {\n var req = options.httpStack.createRequest(method, url);\n if (options.protocol === PROTOCOL_IETF_DRAFT_03) {\n req.setHeader('Upload-Draft-Interop-Version', '5');\n } else if (options.protocol === PROTOCOL_IETF_DRAFT_05) {\n req.setHeader('Upload-Draft-Interop-Version', '6');\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 < _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' && navigator.onLine === false) {\n online = false;\n }\n return online;\n}\n\n/**\n * Checks whether or not it is ok to retry a request.\n * @param {Error|DetailedError} err the error returned from the last request\n * @param {number} retryAttempt the number of times the request has already been retried\n * @param {object} options tus Upload options\n *\n * @api private\n */\nfunction shouldRetry(err, retryAttempt, options) {\n // We only attempt a retry if\n // - retryDelays option is set\n // - we didn't exceed the maxium number of retries, yet, and\n // - this error was caused by a request or it's response and\n // - the error is server error (i.e. not a status 4xx except a 409 or 423) or\n // a onShouldRetry is specified and returns true\n // - the browser does not indicate that we are offline\n if (options.retryDelays == null || retryAttempt >= options.retryDelays.length || err.originalRequest == null) {\n return false;\n }\n if (options && typeof options.onShouldRetry === 'function') {\n return options.onShouldRetry(err, retryAttempt, options);\n }\n return defaultOnShouldRetry(err);\n}\n\n/**\n * determines if the request should be retried. Will only retry if not a status 4xx except a 409 or 423\n * @param {DetailedError} err\n * @returns {boolean}\n */\nfunction defaultOnShouldRetry(err) {\n var status = err.originalResponse ? err.originalResponse.getStatus() : 0;\n return (!inStatusCategory(status, 400) || status === 409 || status === 423) && isOnline();\n}\n\n/**\n * Resolve a relative link given the origin as source. For example,\n * if a HTTP request to http://example.com/files/ returns a Location\n * header with the value /upload/abc, the resolved URL will be:\n * http://example.com/upload/abc\n */\nfunction resolveUrl(origin, link) {\n return new 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 < 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;","var isReactNative = function isReactNative() {\n return typeof navigator !== 'undefined' && typeof navigator.product === 'string' && 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' && (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 && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(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 >= 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 && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(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 < this._bufferOffset) {\n return Promise.reject(new Error(\"Requested data is before the reader's current offset\"));\n }\n return this._readUntilEnoughDataOrDone(start, end);\n }\n }, {\n key: \"_readUntilEnoughDataOrDone\",\n value: function _readUntilEnoughDataOrDone(start, end) {\n var _this = this;\n var hasEnoughData = end <= this._bufferOffset + len(this._buffer);\n if (this._done || hasEnoughData) {\n var value = this._getDataFromBuffer(start, end);\n var done = value == null ? this._done : false;\n return Promise.resolve({\n value: value,\n done: done\n });\n }\n return this._reader.read().then(function (_ref) {\n var value = _ref.value,\n done = _ref.done;\n if (done) {\n _this._done = true;\n } else if (_this._buffer === undefined) {\n _this._buffer = value;\n } else {\n _this._buffer = concat(_this._buffer, value);\n }\n return _this._readUntilEnoughDataOrDone(start, end);\n });\n }\n }, {\n key: \"_getDataFromBuffer\",\n value: function _getDataFromBuffer(start, end) {\n // Remove data from buffer before `start`.\n // Data might be reread from the buffer if an upload fails, so we can only\n // safely delete data when it comes *before* what is currently being read.\n if (start > this._bufferOffset) {\n this._buffer = this._buffer.slice(start - this._bufferOffset);\n this._bufferOffset = start;\n }\n // If the buffer is empty after removing old data, all data has been read.\n var hasAllDataBeenRead = len(this._buffer) === 0;\n if (this._done && hasAllDataBeenRead) {\n return null;\n }\n // We already removed data before `start`, so we just return the first\n // chunk from the buffer.\n return this._buffer.slice(0, end - start);\n }\n }, {\n key: \"close\",\n value: function close() {\n if (this._reader.cancel) {\n this._reader.cancel();\n }\n }\n }]);\n}();\nexport { StreamSource as default };","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(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() && input && 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' && 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 < str.length; i++) {\n var _char = str.charCodeAt(i);\n hash = (hash << 5) - hash + _char;\n hash &= hash; // Convert to 32bit integer\n }\n return hash;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(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 > 0 && arguments[0] !== undefined ? arguments[0] : null;\n return new Promise(function (resolve, reject) {\n _this._xhr.onload = function () {\n resolve(new Response(_this._xhr));\n };\n _this._xhr.onerror = function (err) {\n reject(err);\n };\n _this._xhr.send(body);\n });\n }\n }, {\n key: \"abort\",\n value: function abort() {\n this._xhr.abort();\n return Promise.resolve();\n }\n }, {\n key: \"getUnderlyingObject\",\n value: function getUnderlyingObject() {\n return this._xhr;\n }\n }]);\n}();\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 && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(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 < 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 && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _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 && (_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\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(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 > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Upload);\n options = _objectSpread(_objectSpread({}, defaultOptions), options);\n return _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 > 1 && 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' && typeof Blob === 'function' && typeof Blob.prototype.slice === 'function';\nexport { Upload, canStoreURLs, defaultOptions, isSupported, enableDebugLog, DefaultHttpStack, DetailedError };","import { useMutation, useQuery, useQueryClient } from \"@tanstack/react-query\";\r\nimport saveAs from \"file-saver\";\r\nimport { useState } from \"react\";\r\nimport { Upload as TusUpload } from \"tus-js-client\";\r\nimport { uuidv7 } from \"uuidv7\";\r\nimport z from \"zod\";\r\nimport type { DetailedError } from \"tus-js-client\";\r\nimport type { DefinedInitialDataOptions, UseMutationOptions } from \"@tanstack/react-query\";\r\nimport type { FileMeta } from \"~/models/file/FileMeta\";\r\nimport { FileMetaSchema } from \"~/models/file/FileMeta\";\r\nimport { httpClient, toKebabCase } from \"~/lib/utils\";\r\nimport { clientEnv } from \"~/env\";\r\n\r\nconst QUERY_KEY = \"file\";\r\nconst HOUR = 1000 * 60 * 60;\r\nconst APP_NAME = toKebabCase(clientEnv.VITE_APP_TITLE);\r\n\r\ntype OptionalId = string | undefined | null;\r\n\r\ntype BaseFileMetaArrayQueryOptions = Omit<DefinedInitialDataOptions<Array<FileMeta>>, \"queryKey\" | \"queryFn\" | \"staleTime\" | \"gcTime\" | \"refetchOnWindowFocus\" | \"initialData\">;\r\ntype BaseBlobQueryOptions = Omit<DefinedInitialDataOptions<Blob, Error, string>, \"queryKey\" | \"queryFn\" | \"select\" | \"staleTime\" | \"gcTime\" | \"refetchOnWindowFocus\" | \"initialData\">;\r\ntype BaseFileMetaMutationOptions = Omit<UseMutationOptions<FileMeta, Error, FileMeta>, \"mutationFn\" | \"onSettled\">;\r\ntype BaseBlobMutationOptions = Omit<UseMutationOptions<Blob, Error, FileMeta>, \"mutationFn\" | \"onSuccess\">;\r\ntype BaseStringMutationOptions = Omit<UseMutationOptions<string, Error, string>, \"mutationFn\" | \"onSettled\">;\r\n\r\nexport const GetFileMetasParamsSchema = z.object({\r\n appName: z.string().min(1).max(255).default(APP_NAME).optional(),\r\n subId: z.uuid(),\r\n});\r\n\r\nexport type GetFileMetasParams = z.infer<typeof GetFileMetasParamsSchema>;\r\n\r\nexport const useGetFileMetas = (params: GetFileMetasParams, options?: BaseFileMetaArrayQueryOptions) => {\r\n const queryParams = new URLSearchParams();\r\n queryParams.append(\"appName\", params.appName ?? APP_NAME);\r\n queryParams.append(\"subId\", params.subId);\r\n\r\n return useQuery<Array<FileMeta>>({\r\n ...options,\r\n queryKey: [QUERY_KEY, \"meta\", params.appName ?? APP_NAME, params.subId],\r\n queryFn: ({ signal }) => httpClient.request<Array<FileMeta>>({\r\n url: `/${QUERY_KEY}/v1/meta?${queryParams.toString()}`,\r\n method: \"GET\",\r\n signal,\r\n }).then(request => request.data),\r\n staleTime: HOUR,\r\n gcTime: HOUR,\r\n refetchOnWindowFocus: false,\r\n });\r\n};\r\n\r\nexport const GetFileThumbnailParamsSchema = z.object({\r\n appName: z.string().min(1).max(255).default(APP_NAME).optional(),\r\n meta: FileMetaSchema.nullish(),\r\n});\r\n\r\nexport type GetFileThumbnailParams = z.infer<typeof GetFileThumbnailParamsSchema>;\r\n\r\nexport const useGetFileThumbnail = (params: GetFileThumbnailParams, options?: BaseBlobQueryOptions) => {\r\n const queryParams = new URLSearchParams();\r\n queryParams.append(\"appName\", params.appName ?? APP_NAME);\r\n queryParams.append(\"id\", params.meta?.id ?? \"\");\r\n\r\n return useQuery<Blob, Error, string>({\r\n ...options,\r\n queryKey: [QUERY_KEY, \"thumbnail\", params.appName ?? APP_NAME, params.meta?.id],\r\n queryFn: ({ signal }) => httpClient.request<Blob>({\r\n url: `/${QUERY_KEY}/v1/thumbnail?${queryParams.toString()}`,\r\n method: \"GET\",\r\n signal,\r\n responseType: \"blob\"\r\n }).then(request => request.data),\r\n select: data => URL.createObjectURL(data),\r\n staleTime: HOUR,\r\n gcTime: HOUR,\r\n refetchOnWindowFocus: false,\r\n enabled: !!params.meta && options?.enabled !== false,\r\n });\r\n};\r\n\r\nexport const GetFileParamsSchema = z.object({\r\n appName: z.string().min(1).max(255).default(APP_NAME).optional(),\r\n meta: FileMetaSchema.nullish(),\r\n});\r\n\r\nexport type GetFileParams = z.infer<typeof GetFileParamsSchema>;\r\n\r\nexport const useGetFile = (params: GetFileParams, options?: BaseBlobQueryOptions) => {\r\n const queryParams = new URLSearchParams();\r\n queryParams.append(\"appName\", params.appName ?? APP_NAME);\r\n queryParams.append(\"id\", params.meta?.id ?? \"\");\r\n\r\n return useQuery<Blob, Error, string>({\r\n ...options,\r\n queryKey: [QUERY_KEY, params.appName ?? APP_NAME, params.meta?.id],\r\n queryFn: ({ signal }) => httpClient.request<Blob>({\r\n url: `/${QUERY_KEY}/v1?${queryParams.toString()}`,\r\n method: \"GET\",\r\n signal,\r\n responseType: \"blob\"\r\n }).then(request => request.data),\r\n select: data => URL.createObjectURL(data),\r\n staleTime: HOUR,\r\n gcTime: HOUR,\r\n refetchOnWindowFocus: false,\r\n enabled: !!params.meta && options?.enabled !== false,\r\n });\r\n};\r\n\r\nexport const useDownloadFile = (options?: BaseBlobMutationOptions) => {\r\n return useMutation<Blob, Error, FileMeta>({\r\n ...options,\r\n mutationFn: meta => httpClient.request<Blob>({\r\n url: `/${QUERY_KEY}/v1/download?appName=${APP_NAME}&id=${meta.id}`,\r\n method: \"GET\",\r\n responseType: \"blob\"\r\n }).then(request => request.data),\r\n onSuccess: (data, variables) => saveAs(data, `${variables.fileName}.${variables.fileExtension}`)\r\n });\r\n};\r\n\r\nexport const useOpenFile = (options?: BaseBlobMutationOptions) => {\r\n return useMutation<Blob, Error, FileMeta>({\r\n ...options,\r\n mutationFn: meta => httpClient.request<Blob>({\r\n url: `/${QUERY_KEY}/v1?appName=${APP_NAME}&id=${meta.id}`,\r\n method: \"GET\",\r\n responseType: \"blob\"\r\n }).then(request => request.data),\r\n onSuccess: data => { window.open(URL.createObjectURL(data)); }\r\n });\r\n};\r\n\r\nexport const useUpdateFileMeta = (options?: BaseFileMetaMutationOptions) => {\r\n const queryClient = useQueryClient();\r\n\r\n return useMutation<FileMeta, Error, FileMeta>({\r\n ...options,\r\n mutationFn: meta => httpClient.request<FileMeta>({\r\n url: `/${QUERY_KEY}/v1/meta?appName=${APP_NAME}&id=${meta.id}`,\r\n method: \"PUT\",\r\n data: meta\r\n }).then(request => request.data),\r\n onSettled: () => queryClient.invalidateQueries({ queryKey: [QUERY_KEY, \"meta\"], exact: false })\r\n });\r\n};\r\n\r\nexport const useDeleteFile = (options?: BaseFileMetaMutationOptions) => {\r\n const queryClient = useQueryClient();\r\n\r\n return useMutation<FileMeta, Error, FileMeta>({\r\n ...options,\r\n mutationFn: meta => httpClient.request<FileMeta>({\r\n url: `/${QUERY_KEY}/v1?appName=${APP_NAME}&id=${meta.id}`,\r\n method: \"DELETE\"\r\n }).then(request => request.data),\r\n onSettled: () => queryClient.invalidateQueries({ queryKey: [QUERY_KEY, \"meta\"], exact: false }),\r\n });\r\n};\r\n\r\nexport const useDeleteFiles = (options?: BaseStringMutationOptions) => {\r\n const queryClient = useQueryClient();\r\n\r\n return useMutation<string, Error, string>({\r\n ...options,\r\n mutationFn: subId => httpClient.request<string>({\r\n url: `/${QUERY_KEY}/v1?appName=${APP_NAME}&subId=${subId}`,\r\n method: \"DELETE\"\r\n }).then(request => request.data),\r\n onSettled: () => queryClient.invalidateQueries({ queryKey: [QUERY_KEY, \"meta\"], exact: false })\r\n });\r\n};\r\n\r\ninterface UseUploadFileProps {\r\n subId: OptionalId;\r\n onSuccess?: (meta: Pick<FileMeta, \"id\" | \"appName\" | \"subId\" | \"fileName\">) => void;\r\n onError?: (error: Error | DetailedError) => void;\r\n}\r\n\r\nexport const useUploadFile = ({ subId, onSuccess, onError }: UseUploadFileProps) => {\r\n const [progress, setProgress] = useState<number>(0);\r\n const queryClient = useQueryClient();\r\n\r\n const mutate = async (file: File) => {\r\n if (!subId) throw new Error(\"subId is required for file upload\");\r\n\r\n const metadata: Pick<FileMeta, \"id\" | \"appName\" | \"subId\" | \"fileName\"> = {\r\n id: uuidv7(),\r\n appName: APP_NAME,\r\n subId: subId,\r\n fileName: file.name,\r\n };\r\n\r\n const accessToken = \"YOUR_ACCESS_TOKEN_HERE\"; // Replace with actual token retrieval logic\r\n\r\n const upload = new TusUpload(file, {\r\n endpoint: `${clientEnv.VITE_API_URL}/${QUERY_KEY}/v1/upload`,\r\n chunkSize: 1_048_576, // 1 MB\r\n metadata: {\r\n id: metadata.id,\r\n appName: metadata.appName,\r\n subId: metadata.subId,\r\n fileName: metadata.fileName,\r\n fileExtension: file.type\r\n },\r\n headers: { \"Authorization\": `Bearer ${accessToken}` },\r\n onError: (error) => {\r\n setProgress(0);\r\n onError?.(error);\r\n },\r\n onProgress: (bytesUploaded, bytesTotal) => {\r\n setProgress((bytesUploaded / bytesTotal) * 100);\r\n },\r\n onSuccess: () => {\r\n setProgress(0);\r\n queryClient.invalidateQueries({ queryKey: [QUERY_KEY, \"meta\", subId], exact: false });\r\n onSuccess?.(metadata);\r\n },\r\n });\r\n\r\n const previousUploads = await upload.findPreviousUploads();\r\n if (previousUploads.length > 0) {\r\n upload.resumeFromPreviousUpload(previousUploads[0]);\r\n }\r\n\r\n upload.start();\r\n };\r\n\r\n return { mutate, progress };\r\n};\r\n"],"names":["_typeof","o","_createClass","_classCallCheck","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","self","_assertThisInitialized","_inherits","_setPrototypeOf","_wrapNativeSuper","Class","t","p","DetailedError","_defineProperties","_toPropertyKey","_toPrimitive","NoopUrlStorage","decode","encode","querystringify","querystringify_1","require$$0","require$$1","global","_regeneratorRuntime","e","r","define","n","i","a","c","u","h","asyncGeneratorStep","_asyncToGenerator","F","len","ownKeys","_objectSpread","_defineProperty","defaultOptions","BaseUpload","fingerprint","Base64","URL","isReactNative","isCordova","FileSource","StreamSource","value","done","FileReader","XHRHttpStack","Request","Response","WebStorageUrlStorage","DefaultHttpStack","Upload","QUERY_KEY","HOUR","APP_NAME","toKebabCase","clientEnv","VITE_APP_TITLE","z","object","appName","string","min","max","default","optional","subId","uuid","useGetFileMetas","params","options","$","_c","queryParams","URLSearchParams","append","t0","t1","t2","t3","signal","httpClient","request","url","toString","method","then","_temp","queryKey","queryFn","staleTime","gcTime","refetchOnWindowFocus","useQuery","meta","FileMetaSchema","nullish","useGetFileThumbnail","id","t4","responseType","_temp2","enabled","t5","select","_temp3","useGetFile","_temp4","_temp5","useDownloadFile","mutationFn","_temp7","onSuccess","_temp8","useMutation","useOpenFile","_temp0","_temp1","useUpdateFileMeta","queryClient","useQueryClient","invalidateQueries","exact","_temp11","onSettled","useDeleteFile","_temp13","useDeleteFiles","_temp15","useUploadFile","onError","progress","setProgress","useState","file","Error","metadata","uuidv7","fileName","name","upload","TusUpload","endpoint","VITE_API_URL","chunkSize","fileExtension","type","headers","error","onProgress","bytesUploaded","bytesTotal","previousUploads","findPreviousUploads","length","resumeFromPreviousUpload","start","mutate","data","createObjectURL","_temp6","variables","saveAs","_temp9","window","open","_temp10","_temp12","_temp14"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]}
|