This commit is contained in:
parent
fa2be029a2
commit
724d70e58b
3339 changed files with 1075535 additions and 0 deletions
22
frontend/node_modules/tus-js-client/LICENSE
generated
vendored
Normal file
22
frontend/node_modules/tus-js-client/LICENSE
generated
vendored
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015 tus - Resumable File Uploads
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
72
frontend/node_modules/tus-js-client/README.md
generated
vendored
Normal file
72
frontend/node_modules/tus-js-client/README.md
generated
vendored
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
# tus-js-client
|
||||
|
||||
<img alt="Tus logo" src="https://raw.githubusercontent.com/tus/tus.io/main/public/images/tus1.png?raw=true" width="30%" align="right" />
|
||||
|
||||
> **tus** is a protocol based on HTTP for _resumable file uploads_. Resumable
|
||||
> means that an upload can be interrupted at any moment and can be resumed without
|
||||
> re-uploading the previous data again. An interruption may happen willingly, if
|
||||
> the user wants to pause, or by accident in case of an network issue or server
|
||||
> outage.
|
||||
|
||||
tus-js-client is a pure **JavaScript** client for the [tus resumable upload protocol](http://tus.io) and can be used inside **browsers**, **Node.js**,
|
||||
**React Native** and **Apache Cordova** applications.
|
||||
|
||||
**Protocol version:** 1.0.0
|
||||
|
||||
This branch contains tus-js-client v4. If you are looking for the previous major release, after which [breaking changes](https://github.com/tus/tus-js-client/releases/tag/v4.0.0) have been introduced, please look at the [v3.1.3 tag](https://github.com/tus/tus-js-client/tree/v3.1.3).
|
||||
|
||||
## Example
|
||||
|
||||
```js
|
||||
input.addEventListener('change', function (e) {
|
||||
// Get the selected file from the input element
|
||||
var file = e.target.files[0]
|
||||
|
||||
// Create a new tus upload
|
||||
var upload = new tus.Upload(file, {
|
||||
endpoint: 'http://localhost:1080/files/',
|
||||
retryDelays: [0, 3000, 5000, 10000, 20000],
|
||||
metadata: {
|
||||
filename: file.name,
|
||||
filetype: file.type,
|
||||
},
|
||||
onError: function (error) {
|
||||
console.log('Failed because: ' + error)
|
||||
},
|
||||
onProgress: function (bytesUploaded, bytesTotal) {
|
||||
var percentage = ((bytesUploaded / bytesTotal) * 100).toFixed(2)
|
||||
console.log(bytesUploaded, bytesTotal, percentage + '%')
|
||||
},
|
||||
onSuccess: function () {
|
||||
console.log('Download %s from %s', upload.file.name, upload.url)
|
||||
},
|
||||
})
|
||||
|
||||
// Check if there are any previous uploads to continue.
|
||||
upload.findPreviousUploads().then(function (previousUploads) {
|
||||
// Found previous uploads so we select the first one.
|
||||
if (previousUploads.length) {
|
||||
upload.resumeFromPreviousUpload(previousUploads[0])
|
||||
}
|
||||
|
||||
// Start the upload
|
||||
upload.start()
|
||||
})
|
||||
})
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
- [Installation & Requirements](/docs/installation.md)
|
||||
- [Usage & Examples](/docs/usage.md)
|
||||
- [API Reference](/docs/api.md)
|
||||
- [Contribution Guidelines](/docs/contributing.md)
|
||||
- [FAQ & Common issues](/docs/faq.md)
|
||||
|
||||
## Build status
|
||||
|
||||
[](https://github.com/tus/tus-js-client/actions)
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under the MIT license, see `LICENSE`.
|
||||
450
frontend/node_modules/tus-js-client/lib.es5/browser/fileReader.js
generated
vendored
Normal file
450
frontend/node_modules/tus-js-client/lib.es5/browser/fileReader.js
generated
vendored
Normal file
|
|
@ -0,0 +1,450 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _isReactNative = _interopRequireDefault(require("./isReactNative.js"));
|
||||
var _uriToBlob = _interopRequireDefault(require("./uriToBlob.js"));
|
||||
var _FileSource = _interopRequireDefault(require("./sources/FileSource.js"));
|
||||
var _StreamSource = _interopRequireDefault(require("./sources/StreamSource.js"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
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);
|
||||
}
|
||||
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;
|
||||
}
|
||||
function 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);
|
||||
}
|
||||
}
|
||||
function _asyncToGenerator(fn) {
|
||||
return function () {
|
||||
var self = this,
|
||||
args = arguments;
|
||||
return new Promise(function (resolve, reject) {
|
||||
var gen = fn.apply(self, args);
|
||||
function _next(value) {
|
||||
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
||||
}
|
||||
function _throw(err) {
|
||||
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
||||
}
|
||||
_next(undefined);
|
||||
});
|
||||
};
|
||||
}
|
||||
function _classCallCheck(instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
}
|
||||
}
|
||||
function _defineProperties(target, props) {
|
||||
for (var i = 0; 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);
|
||||
}
|
||||
}
|
||||
function _createClass(Constructor, protoProps, staticProps) {
|
||||
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
||||
if (staticProps) _defineProperties(Constructor, staticProps);
|
||||
Object.defineProperty(Constructor, "prototype", {
|
||||
writable: false
|
||||
});
|
||||
return Constructor;
|
||||
}
|
||||
function _toPropertyKey(t) {
|
||||
var i = _toPrimitive(t, "string");
|
||||
return "symbol" == _typeof(i) ? i : i + "";
|
||||
}
|
||||
function _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);
|
||||
}
|
||||
var FileReader = exports.default = /*#__PURE__*/function () {
|
||||
function FileReader() {
|
||||
_classCallCheck(this, FileReader);
|
||||
}
|
||||
return _createClass(FileReader, [{
|
||||
key: "openFile",
|
||||
value: function () {
|
||||
var _openFile = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(input, chunkSize) {
|
||||
var blob;
|
||||
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
||||
while (1) switch (_context.prev = _context.next) {
|
||||
case 0:
|
||||
if (!((0, _isReactNative.default)() && input && typeof input.uri !== 'undefined')) {
|
||||
_context.next = 11;
|
||||
break;
|
||||
}
|
||||
_context.prev = 1;
|
||||
_context.next = 4;
|
||||
return (0, _uriToBlob.default)(input.uri);
|
||||
case 4:
|
||||
blob = _context.sent;
|
||||
return _context.abrupt("return", new _FileSource.default(blob));
|
||||
case 8:
|
||||
_context.prev = 8;
|
||||
_context.t0 = _context["catch"](1);
|
||||
throw new Error("tus: cannot fetch `file.uri` as Blob, make sure the uri is correct and accessible. ".concat(_context.t0));
|
||||
case 11:
|
||||
if (!(typeof input.slice === 'function' && typeof input.size !== 'undefined')) {
|
||||
_context.next = 13;
|
||||
break;
|
||||
}
|
||||
return _context.abrupt("return", Promise.resolve(new _FileSource.default(input)));
|
||||
case 13:
|
||||
if (!(typeof input.read === 'function')) {
|
||||
_context.next = 18;
|
||||
break;
|
||||
}
|
||||
chunkSize = Number(chunkSize);
|
||||
if (Number.isFinite(chunkSize)) {
|
||||
_context.next = 17;
|
||||
break;
|
||||
}
|
||||
return _context.abrupt("return", Promise.reject(new Error('cannot create source for stream without a finite value for the `chunkSize` option')));
|
||||
case 17:
|
||||
return _context.abrupt("return", Promise.resolve(new _StreamSource.default(input, chunkSize)));
|
||||
case 18:
|
||||
return _context.abrupt("return", Promise.reject(new Error('source object may only be an instance of File, Blob, or Reader in this environment')));
|
||||
case 19:
|
||||
case "end":
|
||||
return _context.stop();
|
||||
}
|
||||
}, _callee, null, [[1, 8]]);
|
||||
}));
|
||||
function openFile(_x, _x2) {
|
||||
return _openFile.apply(this, arguments);
|
||||
}
|
||||
return openFile;
|
||||
}()
|
||||
}]);
|
||||
}();
|
||||
40
frontend/node_modules/tus-js-client/lib.es5/browser/fileSignature.js
generated
vendored
Normal file
40
frontend/node_modules/tus-js-client/lib.es5/browser/fileSignature.js
generated
vendored
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = fingerprint;
|
||||
var _isReactNative = _interopRequireDefault(require("./isReactNative.js"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
// TODO: Differenciate between input types
|
||||
|
||||
/**
|
||||
* Generate a fingerprint for a file which will be used the store the endpoint
|
||||
*
|
||||
* @param {File} file
|
||||
* @param {Object} options
|
||||
* @param {Function} callback
|
||||
*/
|
||||
function fingerprint(file, options) {
|
||||
if ((0, _isReactNative.default)()) {
|
||||
return Promise.resolve(reactNativeFingerprint(file, options));
|
||||
}
|
||||
return Promise.resolve(['tus-br', file.name, file.type, file.size, file.lastModified, options.endpoint].join('-'));
|
||||
}
|
||||
function reactNativeFingerprint(file, options) {
|
||||
var exifHash = file.exif ? hashCode(JSON.stringify(file.exif)) : 'noexif';
|
||||
return ['tus-rn', file.name || 'noname', file.size || 'nosize', exifHash, options.endpoint].join('/');
|
||||
}
|
||||
function hashCode(str) {
|
||||
// from https://stackoverflow.com/a/8831937/151666
|
||||
var hash = 0;
|
||||
if (str.length === 0) {
|
||||
return hash;
|
||||
}
|
||||
for (var i = 0; i < str.length; i++) {
|
||||
var _char = str.charCodeAt(i);
|
||||
hash = (hash << 5) - hash + _char;
|
||||
hash &= hash; // Convert to 32bit integer
|
||||
}
|
||||
return hash;
|
||||
}
|
||||
166
frontend/node_modules/tus-js-client/lib.es5/browser/httpStack.js
generated
vendored
Normal file
166
frontend/node_modules/tus-js-client/lib.es5/browser/httpStack.js
generated
vendored
Normal file
|
|
@ -0,0 +1,166 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
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);
|
||||
}
|
||||
function _classCallCheck(instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
}
|
||||
}
|
||||
function _defineProperties(target, props) {
|
||||
for (var i = 0; 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);
|
||||
}
|
||||
}
|
||||
function _createClass(Constructor, protoProps, staticProps) {
|
||||
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
||||
if (staticProps) _defineProperties(Constructor, staticProps);
|
||||
Object.defineProperty(Constructor, "prototype", {
|
||||
writable: false
|
||||
});
|
||||
return Constructor;
|
||||
}
|
||||
function _toPropertyKey(t) {
|
||||
var i = _toPrimitive(t, "string");
|
||||
return "symbol" == _typeof(i) ? i : i + "";
|
||||
}
|
||||
function _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);
|
||||
}
|
||||
var XHRHttpStack = exports.default = /*#__PURE__*/function () {
|
||||
function XHRHttpStack() {
|
||||
_classCallCheck(this, XHRHttpStack);
|
||||
}
|
||||
return _createClass(XHRHttpStack, [{
|
||||
key: "createRequest",
|
||||
value: function createRequest(method, url) {
|
||||
return new Request(method, url);
|
||||
}
|
||||
}, {
|
||||
key: "getName",
|
||||
value: function getName() {
|
||||
return 'XHRHttpStack';
|
||||
}
|
||||
}]);
|
||||
}();
|
||||
var Request = /*#__PURE__*/function () {
|
||||
function Request(method, url) {
|
||||
_classCallCheck(this, Request);
|
||||
this._xhr = new XMLHttpRequest();
|
||||
this._xhr.open(method, url, true);
|
||||
this._method = method;
|
||||
this._url = url;
|
||||
this._headers = {};
|
||||
}
|
||||
return _createClass(Request, [{
|
||||
key: "getMethod",
|
||||
value: function getMethod() {
|
||||
return this._method;
|
||||
}
|
||||
}, {
|
||||
key: "getURL",
|
||||
value: function getURL() {
|
||||
return this._url;
|
||||
}
|
||||
}, {
|
||||
key: "setHeader",
|
||||
value: function setHeader(header, value) {
|
||||
this._xhr.setRequestHeader(header, value);
|
||||
this._headers[header] = value;
|
||||
}
|
||||
}, {
|
||||
key: "getHeader",
|
||||
value: function getHeader(header) {
|
||||
return this._headers[header];
|
||||
}
|
||||
}, {
|
||||
key: "setProgressHandler",
|
||||
value: function setProgressHandler(progressHandler) {
|
||||
// Test support for progress events before attaching an event listener
|
||||
if (!('upload' in this._xhr)) {
|
||||
return;
|
||||
}
|
||||
this._xhr.upload.onprogress = function (e) {
|
||||
if (!e.lengthComputable) {
|
||||
return;
|
||||
}
|
||||
progressHandler(e.loaded);
|
||||
};
|
||||
}
|
||||
}, {
|
||||
key: "send",
|
||||
value: function send() {
|
||||
var _this = this;
|
||||
var body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
||||
return new Promise(function (resolve, reject) {
|
||||
_this._xhr.onload = function () {
|
||||
resolve(new Response(_this._xhr));
|
||||
};
|
||||
_this._xhr.onerror = function (err) {
|
||||
reject(err);
|
||||
};
|
||||
_this._xhr.send(body);
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "abort",
|
||||
value: function abort() {
|
||||
this._xhr.abort();
|
||||
return Promise.resolve();
|
||||
}
|
||||
}, {
|
||||
key: "getUnderlyingObject",
|
||||
value: function getUnderlyingObject() {
|
||||
return this._xhr;
|
||||
}
|
||||
}]);
|
||||
}();
|
||||
var Response = /*#__PURE__*/function () {
|
||||
function Response(xhr) {
|
||||
_classCallCheck(this, Response);
|
||||
this._xhr = xhr;
|
||||
}
|
||||
return _createClass(Response, [{
|
||||
key: "getStatus",
|
||||
value: function getStatus() {
|
||||
return this._xhr.status;
|
||||
}
|
||||
}, {
|
||||
key: "getHeader",
|
||||
value: function getHeader(header) {
|
||||
return this._xhr.getResponseHeader(header);
|
||||
}
|
||||
}, {
|
||||
key: "getBody",
|
||||
value: function getBody() {
|
||||
return this._xhr.responseText;
|
||||
}
|
||||
}, {
|
||||
key: "getUnderlyingObject",
|
||||
value: function getUnderlyingObject() {
|
||||
return this._xhr;
|
||||
}
|
||||
}]);
|
||||
}();
|
||||
200
frontend/node_modules/tus-js-client/lib.es5/browser/index.js
generated
vendored
Normal file
200
frontend/node_modules/tus-js-client/lib.es5/browser/index.js
generated
vendored
Normal file
|
|
@ -0,0 +1,200 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
Object.defineProperty(exports, "DefaultHttpStack", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _httpStack.default;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "DetailedError", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _error.default;
|
||||
}
|
||||
});
|
||||
exports.Upload = void 0;
|
||||
Object.defineProperty(exports, "canStoreURLs", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _urlStorage.canStoreURLs;
|
||||
}
|
||||
});
|
||||
exports.defaultOptions = void 0;
|
||||
Object.defineProperty(exports, "enableDebugLog", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _logger.enableDebugLog;
|
||||
}
|
||||
});
|
||||
exports.isSupported = void 0;
|
||||
var _error = _interopRequireDefault(require("../error.js"));
|
||||
var _logger = require("../logger.js");
|
||||
var _noopUrlStorage = _interopRequireDefault(require("../noopUrlStorage.js"));
|
||||
var _upload = _interopRequireDefault(require("../upload.js"));
|
||||
var _fileReader = _interopRequireDefault(require("./fileReader.js"));
|
||||
var _fileSignature = _interopRequireDefault(require("./fileSignature.js"));
|
||||
var _httpStack = _interopRequireDefault(require("./httpStack.js"));
|
||||
var _urlStorage = require("./urlStorage.js");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
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);
|
||||
}
|
||||
function _classCallCheck(instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
}
|
||||
}
|
||||
function _defineProperties(target, props) {
|
||||
for (var i = 0; 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);
|
||||
}
|
||||
}
|
||||
function _createClass(Constructor, protoProps, staticProps) {
|
||||
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
||||
if (staticProps) _defineProperties(Constructor, staticProps);
|
||||
Object.defineProperty(Constructor, "prototype", {
|
||||
writable: false
|
||||
});
|
||||
return Constructor;
|
||||
}
|
||||
function _callSuper(t, o, e) {
|
||||
return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
|
||||
}
|
||||
function _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);
|
||||
}
|
||||
function _assertThisInitialized(self) {
|
||||
if (self === void 0) {
|
||||
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
||||
}
|
||||
return self;
|
||||
}
|
||||
function _isNativeReflectConstruct() {
|
||||
try {
|
||||
var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
|
||||
} catch (t) {}
|
||||
return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {
|
||||
return !!t;
|
||||
})();
|
||||
}
|
||||
function _getPrototypeOf(o) {
|
||||
_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {
|
||||
return o.__proto__ || Object.getPrototypeOf(o);
|
||||
};
|
||||
return _getPrototypeOf(o);
|
||||
}
|
||||
function _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);
|
||||
}
|
||||
function _setPrototypeOf(o, p) {
|
||||
_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
|
||||
o.__proto__ = p;
|
||||
return o;
|
||||
};
|
||||
return _setPrototypeOf(o, p);
|
||||
}
|
||||
function 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;
|
||||
}
|
||||
function _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;
|
||||
}
|
||||
function _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;
|
||||
}
|
||||
function _toPropertyKey(t) {
|
||||
var i = _toPrimitive(t, "string");
|
||||
return "symbol" == _typeof(i) ? i : i + "";
|
||||
}
|
||||
function _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);
|
||||
}
|
||||
var defaultOptions = exports.defaultOptions = _objectSpread(_objectSpread({}, _upload.default.defaultOptions), {}, {
|
||||
httpStack: new _httpStack.default(),
|
||||
fileReader: new _fileReader.default(),
|
||||
urlStorage: _urlStorage.canStoreURLs ? new _urlStorage.WebStorageUrlStorage() : new _noopUrlStorage.default(),
|
||||
fingerprint: _fileSignature.default
|
||||
});
|
||||
var Upload = exports.Upload = /*#__PURE__*/function (_BaseUpload) {
|
||||
function Upload() {
|
||||
var file = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
||||
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||||
_classCallCheck(this, Upload);
|
||||
options = _objectSpread(_objectSpread({}, defaultOptions), options);
|
||||
return _callSuper(this, Upload, [file, options]);
|
||||
}
|
||||
_inherits(Upload, _BaseUpload);
|
||||
return _createClass(Upload, null, [{
|
||||
key: "terminate",
|
||||
value: function terminate(url) {
|
||||
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||||
options = _objectSpread(_objectSpread({}, defaultOptions), options);
|
||||
return _upload.default.terminate(url, options);
|
||||
}
|
||||
}]);
|
||||
}(_upload.default); // Note: We don't reference `window` here because these classes also exist in a Web Worker's context.
|
||||
var isSupported = exports.isSupported = typeof XMLHttpRequest === 'function' && typeof Blob === 'function' && typeof Blob.prototype.slice === 'function';
|
||||
10
frontend/node_modules/tus-js-client/lib.es5/browser/isReactNative.js
generated
vendored
Normal file
10
frontend/node_modules/tus-js-client/lib.es5/browser/isReactNative.js
generated
vendored
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var isReactNative = function isReactNative() {
|
||||
return typeof navigator !== 'undefined' && typeof navigator.product === 'string' && navigator.product.toLowerCase() === 'reactnative';
|
||||
};
|
||||
var _default = exports.default = isReactNative;
|
||||
84
frontend/node_modules/tus-js-client/lib.es5/browser/sources/FileSource.js
generated
vendored
Normal file
84
frontend/node_modules/tus-js-client/lib.es5/browser/sources/FileSource.js
generated
vendored
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _isCordova = _interopRequireDefault(require("./isCordova.js"));
|
||||
var _readAsByteArray = _interopRequireDefault(require("./readAsByteArray.js"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
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);
|
||||
}
|
||||
function _classCallCheck(instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
}
|
||||
}
|
||||
function _defineProperties(target, props) {
|
||||
for (var i = 0; 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);
|
||||
}
|
||||
}
|
||||
function _createClass(Constructor, protoProps, staticProps) {
|
||||
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
||||
if (staticProps) _defineProperties(Constructor, staticProps);
|
||||
Object.defineProperty(Constructor, "prototype", {
|
||||
writable: false
|
||||
});
|
||||
return Constructor;
|
||||
}
|
||||
function _toPropertyKey(t) {
|
||||
var i = _toPrimitive(t, "string");
|
||||
return "symbol" == _typeof(i) ? i : i + "";
|
||||
}
|
||||
function _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);
|
||||
}
|
||||
var FileSource = exports.default = /*#__PURE__*/function () {
|
||||
// Make this.size a method
|
||||
function FileSource(file) {
|
||||
_classCallCheck(this, FileSource);
|
||||
this._file = file;
|
||||
this.size = file.size;
|
||||
}
|
||||
return _createClass(FileSource, [{
|
||||
key: "slice",
|
||||
value: function slice(start, end) {
|
||||
// In Apache Cordova applications, a File must be resolved using
|
||||
// FileReader instances, see
|
||||
// https://cordova.apache.org/docs/en/8.x/reference/cordova-plugin-file/index.html#read-a-file
|
||||
if ((0, _isCordova.default)()) {
|
||||
return (0, _readAsByteArray.default)(this._file.slice(start, end));
|
||||
}
|
||||
var value = this._file.slice(start, end);
|
||||
var done = end >= this.size;
|
||||
return Promise.resolve({
|
||||
value: value,
|
||||
done: done
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "close",
|
||||
value: function close() {
|
||||
// Nothing to do here since we don't need to release any resources.
|
||||
}
|
||||
}]);
|
||||
}();
|
||||
150
frontend/node_modules/tus-js-client/lib.es5/browser/sources/StreamSource.js
generated
vendored
Normal file
150
frontend/node_modules/tus-js-client/lib.es5/browser/sources/StreamSource.js
generated
vendored
Normal file
|
|
@ -0,0 +1,150 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
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);
|
||||
}
|
||||
function _classCallCheck(instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
}
|
||||
}
|
||||
function _defineProperties(target, props) {
|
||||
for (var i = 0; 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);
|
||||
}
|
||||
}
|
||||
function _createClass(Constructor, protoProps, staticProps) {
|
||||
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
||||
if (staticProps) _defineProperties(Constructor, staticProps);
|
||||
Object.defineProperty(Constructor, "prototype", {
|
||||
writable: false
|
||||
});
|
||||
return Constructor;
|
||||
}
|
||||
function _toPropertyKey(t) {
|
||||
var i = _toPrimitive(t, "string");
|
||||
return "symbol" == _typeof(i) ? i : i + "";
|
||||
}
|
||||
function _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);
|
||||
}
|
||||
function len(blobOrArray) {
|
||||
if (blobOrArray === undefined) return 0;
|
||||
if (blobOrArray.size !== undefined) return blobOrArray.size;
|
||||
return blobOrArray.length;
|
||||
}
|
||||
|
||||
/*
|
||||
Typed arrays and blobs don't have a concat method.
|
||||
This function helps StreamSource accumulate data to reach chunkSize.
|
||||
*/
|
||||
function concat(a, b) {
|
||||
if (a.concat) {
|
||||
// Is `a` an Array?
|
||||
return a.concat(b);
|
||||
}
|
||||
if (a instanceof Blob) {
|
||||
return new Blob([a, b], {
|
||||
type: a.type
|
||||
});
|
||||
}
|
||||
if (a.set) {
|
||||
// Is `a` a typed array?
|
||||
var c = new a.constructor(a.length + b.length);
|
||||
c.set(a);
|
||||
c.set(b, a.length);
|
||||
return c;
|
||||
}
|
||||
throw new Error('Unknown data type');
|
||||
}
|
||||
var StreamSource = exports.default = /*#__PURE__*/function () {
|
||||
function StreamSource(reader) {
|
||||
_classCallCheck(this, StreamSource);
|
||||
this._buffer = undefined;
|
||||
this._bufferOffset = 0;
|
||||
this._reader = reader;
|
||||
this._done = false;
|
||||
}
|
||||
return _createClass(StreamSource, [{
|
||||
key: "slice",
|
||||
value: function slice(start, end) {
|
||||
if (start < this._bufferOffset) {
|
||||
return Promise.reject(new Error("Requested data is before the reader's current offset"));
|
||||
}
|
||||
return this._readUntilEnoughDataOrDone(start, end);
|
||||
}
|
||||
}, {
|
||||
key: "_readUntilEnoughDataOrDone",
|
||||
value: function _readUntilEnoughDataOrDone(start, end) {
|
||||
var _this = this;
|
||||
var hasEnoughData = end <= this._bufferOffset + len(this._buffer);
|
||||
if (this._done || hasEnoughData) {
|
||||
var value = this._getDataFromBuffer(start, end);
|
||||
var done = value == null ? this._done : false;
|
||||
return Promise.resolve({
|
||||
value: value,
|
||||
done: done
|
||||
});
|
||||
}
|
||||
return this._reader.read().then(function (_ref) {
|
||||
var value = _ref.value,
|
||||
done = _ref.done;
|
||||
if (done) {
|
||||
_this._done = true;
|
||||
} else if (_this._buffer === undefined) {
|
||||
_this._buffer = value;
|
||||
} else {
|
||||
_this._buffer = concat(_this._buffer, value);
|
||||
}
|
||||
return _this._readUntilEnoughDataOrDone(start, end);
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "_getDataFromBuffer",
|
||||
value: function _getDataFromBuffer(start, end) {
|
||||
// Remove data from buffer before `start`.
|
||||
// Data might be reread from the buffer if an upload fails, so we can only
|
||||
// safely delete data when it comes *before* what is currently being read.
|
||||
if (start > this._bufferOffset) {
|
||||
this._buffer = this._buffer.slice(start - this._bufferOffset);
|
||||
this._bufferOffset = start;
|
||||
}
|
||||
// If the buffer is empty after removing old data, all data has been read.
|
||||
var hasAllDataBeenRead = len(this._buffer) === 0;
|
||||
if (this._done && hasAllDataBeenRead) {
|
||||
return null;
|
||||
}
|
||||
// We already removed data before `start`, so we just return the first
|
||||
// chunk from the buffer.
|
||||
return this._buffer.slice(0, end - start);
|
||||
}
|
||||
}, {
|
||||
key: "close",
|
||||
value: function close() {
|
||||
if (this._reader.cancel) {
|
||||
this._reader.cancel();
|
||||
}
|
||||
}
|
||||
}]);
|
||||
}();
|
||||
10
frontend/node_modules/tus-js-client/lib.es5/browser/sources/isCordova.js
generated
vendored
Normal file
10
frontend/node_modules/tus-js-client/lib.es5/browser/sources/isCordova.js
generated
vendored
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var isCordova = function isCordova() {
|
||||
return typeof window !== 'undefined' && (typeof window.PhoneGap !== 'undefined' || typeof window.Cordova !== 'undefined' || typeof window.cordova !== 'undefined');
|
||||
};
|
||||
var _default = exports.default = isCordova;
|
||||
26
frontend/node_modules/tus-js-client/lib.es5/browser/sources/readAsByteArray.js
generated
vendored
Normal file
26
frontend/node_modules/tus-js-client/lib.es5/browser/sources/readAsByteArray.js
generated
vendored
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = readAsByteArray;
|
||||
/**
|
||||
* readAsByteArray converts a File object to a Uint8Array.
|
||||
* This function is only used on the Apache Cordova platform.
|
||||
* See https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/index.html#read-a-file
|
||||
*/
|
||||
function readAsByteArray(chunk) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
var reader = new FileReader();
|
||||
reader.onload = function () {
|
||||
var value = new Uint8Array(reader.result);
|
||||
resolve({
|
||||
value: value
|
||||
});
|
||||
};
|
||||
reader.onerror = function (err) {
|
||||
reject(err);
|
||||
};
|
||||
reader.readAsArrayBuffer(chunk);
|
||||
});
|
||||
}
|
||||
26
frontend/node_modules/tus-js-client/lib.es5/browser/uriToBlob.js
generated
vendored
Normal file
26
frontend/node_modules/tus-js-client/lib.es5/browser/uriToBlob.js
generated
vendored
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = uriToBlob;
|
||||
/**
|
||||
* uriToBlob resolves a URI to a Blob object. This is used for
|
||||
* React Native to retrieve a file (identified by a file://
|
||||
* URI) as a blob.
|
||||
*/
|
||||
function uriToBlob(uri) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.responseType = 'blob';
|
||||
xhr.onload = function () {
|
||||
var blob = xhr.response;
|
||||
resolve(blob);
|
||||
};
|
||||
xhr.onerror = function (err) {
|
||||
reject(err);
|
||||
};
|
||||
xhr.open('GET', uri);
|
||||
xhr.send();
|
||||
});
|
||||
}
|
||||
125
frontend/node_modules/tus-js-client/lib.es5/browser/urlStorage.js
generated
vendored
Normal file
125
frontend/node_modules/tus-js-client/lib.es5/browser/urlStorage.js
generated
vendored
Normal file
|
|
@ -0,0 +1,125 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.canStoreURLs = exports.WebStorageUrlStorage = void 0;
|
||||
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);
|
||||
}
|
||||
function _classCallCheck(instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
}
|
||||
}
|
||||
function _defineProperties(target, props) {
|
||||
for (var i = 0; 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);
|
||||
}
|
||||
}
|
||||
function _createClass(Constructor, protoProps, staticProps) {
|
||||
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
||||
if (staticProps) _defineProperties(Constructor, staticProps);
|
||||
Object.defineProperty(Constructor, "prototype", {
|
||||
writable: false
|
||||
});
|
||||
return Constructor;
|
||||
}
|
||||
function _toPropertyKey(t) {
|
||||
var i = _toPrimitive(t, "string");
|
||||
return "symbol" == _typeof(i) ? i : i + "";
|
||||
}
|
||||
function _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);
|
||||
}
|
||||
var hasStorage = false;
|
||||
try {
|
||||
// Note: localStorage does not exist in the Web Worker's context, so we must use window here.
|
||||
hasStorage = 'localStorage' in window;
|
||||
|
||||
// Attempt to store and read entries from the local storage to detect Private
|
||||
// Mode on Safari on iOS (see #49)
|
||||
// If the key was not used before, we remove it from local storage again to
|
||||
// not cause confusion where the entry came from.
|
||||
var key = 'tusSupport';
|
||||
var originalValue = localStorage.getItem(key);
|
||||
localStorage.setItem(key, originalValue);
|
||||
if (originalValue === null) localStorage.removeItem(key);
|
||||
} catch (e) {
|
||||
// If we try to access localStorage inside a sandboxed iframe, a SecurityError
|
||||
// is thrown. When in private mode on iOS Safari, a QuotaExceededError is
|
||||
// thrown (see #49)
|
||||
if (e.code === e.SECURITY_ERR || e.code === e.QUOTA_EXCEEDED_ERR) {
|
||||
hasStorage = false;
|
||||
} else {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
var canStoreURLs = exports.canStoreURLs = hasStorage;
|
||||
var WebStorageUrlStorage = exports.WebStorageUrlStorage = /*#__PURE__*/function () {
|
||||
function WebStorageUrlStorage() {
|
||||
_classCallCheck(this, WebStorageUrlStorage);
|
||||
}
|
||||
return _createClass(WebStorageUrlStorage, [{
|
||||
key: "findAllUploads",
|
||||
value: function findAllUploads() {
|
||||
var results = this._findEntries('tus::');
|
||||
return Promise.resolve(results);
|
||||
}
|
||||
}, {
|
||||
key: "findUploadsByFingerprint",
|
||||
value: function findUploadsByFingerprint(fingerprint) {
|
||||
var results = this._findEntries("tus::".concat(fingerprint, "::"));
|
||||
return Promise.resolve(results);
|
||||
}
|
||||
}, {
|
||||
key: "removeUpload",
|
||||
value: function removeUpload(urlStorageKey) {
|
||||
localStorage.removeItem(urlStorageKey);
|
||||
return Promise.resolve();
|
||||
}
|
||||
}, {
|
||||
key: "addUpload",
|
||||
value: function addUpload(fingerprint, upload) {
|
||||
var id = Math.round(Math.random() * 1e12);
|
||||
var key = "tus::".concat(fingerprint, "::").concat(id);
|
||||
localStorage.setItem(key, JSON.stringify(upload));
|
||||
return Promise.resolve(key);
|
||||
}
|
||||
}, {
|
||||
key: "_findEntries",
|
||||
value: function _findEntries(prefix) {
|
||||
var results = [];
|
||||
for (var i = 0; i < localStorage.length; i++) {
|
||||
var _key = localStorage.key(i);
|
||||
if (_key.indexOf(prefix) !== 0) continue;
|
||||
try {
|
||||
var upload = JSON.parse(localStorage.getItem(_key));
|
||||
upload.urlStorageKey = _key;
|
||||
results.push(upload);
|
||||
} catch (_e) {
|
||||
// The JSON parse error is intentionally ignored here, so a malformed
|
||||
// entry in the storage cannot prevent an upload.
|
||||
}
|
||||
}
|
||||
return results;
|
||||
}
|
||||
}]);
|
||||
}();
|
||||
174
frontend/node_modules/tus-js-client/lib.es5/error.js
generated
vendored
Normal file
174
frontend/node_modules/tus-js-client/lib.es5/error.js
generated
vendored
Normal file
|
|
@ -0,0 +1,174 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
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);
|
||||
}
|
||||
function _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);
|
||||
}
|
||||
}
|
||||
function _createClass(Constructor, protoProps, staticProps) {
|
||||
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
||||
if (staticProps) _defineProperties(Constructor, staticProps);
|
||||
Object.defineProperty(Constructor, "prototype", {
|
||||
writable: false
|
||||
});
|
||||
return Constructor;
|
||||
}
|
||||
function _toPropertyKey(t) {
|
||||
var i = _toPrimitive(t, "string");
|
||||
return "symbol" == _typeof(i) ? i : i + "";
|
||||
}
|
||||
function _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);
|
||||
}
|
||||
function _classCallCheck(instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
}
|
||||
}
|
||||
function _callSuper(t, o, e) {
|
||||
return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
|
||||
}
|
||||
function _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);
|
||||
}
|
||||
function _assertThisInitialized(self) {
|
||||
if (self === void 0) {
|
||||
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
||||
}
|
||||
return self;
|
||||
}
|
||||
function _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);
|
||||
}
|
||||
function _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);
|
||||
}
|
||||
function _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;
|
||||
}
|
||||
function _isNativeReflectConstruct() {
|
||||
try {
|
||||
var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
|
||||
} catch (t) {}
|
||||
return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {
|
||||
return !!t;
|
||||
})();
|
||||
}
|
||||
function _isNativeFunction(fn) {
|
||||
try {
|
||||
return Function.toString.call(fn).indexOf("[native code]") !== -1;
|
||||
} catch (e) {
|
||||
return typeof fn === "function";
|
||||
}
|
||||
}
|
||||
function _setPrototypeOf(o, p) {
|
||||
_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
|
||||
o.__proto__ = p;
|
||||
return o;
|
||||
};
|
||||
return _setPrototypeOf(o, p);
|
||||
}
|
||||
function _getPrototypeOf(o) {
|
||||
_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {
|
||||
return o.__proto__ || Object.getPrototypeOf(o);
|
||||
};
|
||||
return _getPrototypeOf(o);
|
||||
}
|
||||
var DetailedError = /*#__PURE__*/function (_Error) {
|
||||
function DetailedError(message) {
|
||||
var _this;
|
||||
var causingErr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
||||
var req = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
||||
var res = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
||||
_classCallCheck(this, DetailedError);
|
||||
_this = _callSuper(this, DetailedError, [message]);
|
||||
_this.originalRequest = req;
|
||||
_this.originalResponse = res;
|
||||
_this.causingError = causingErr;
|
||||
if (causingErr != null) {
|
||||
message += ", caused by ".concat(causingErr.toString());
|
||||
}
|
||||
if (req != null) {
|
||||
var requestId = req.getHeader('X-Request-ID') || 'n/a';
|
||||
var method = req.getMethod();
|
||||
var url = req.getURL();
|
||||
var status = res ? res.getStatus() : 'n/a';
|
||||
var body = res ? res.getBody() || '' : 'n/a';
|
||||
message += ", originated from request (method: ".concat(method, ", url: ").concat(url, ", response code: ").concat(status, ", response text: ").concat(body, ", request id: ").concat(requestId, ")");
|
||||
}
|
||||
_this.message = message;
|
||||
return _this;
|
||||
}
|
||||
_inherits(DetailedError, _Error);
|
||||
return _createClass(DetailedError);
|
||||
}( /*#__PURE__*/_wrapNativeSuper(Error));
|
||||
var _default = exports.default = DetailedError;
|
||||
15
frontend/node_modules/tus-js-client/lib.es5/logger.js
generated
vendored
Normal file
15
frontend/node_modules/tus-js-client/lib.es5/logger.js
generated
vendored
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.enableDebugLog = enableDebugLog;
|
||||
exports.log = log;
|
||||
var isEnabled = false;
|
||||
function enableDebugLog() {
|
||||
isEnabled = true;
|
||||
}
|
||||
function log(msg) {
|
||||
if (!isEnabled) return;
|
||||
console.log(msg);
|
||||
}
|
||||
81
frontend/node_modules/tus-js-client/lib.es5/node/fileReader.js
generated
vendored
Normal file
81
frontend/node_modules/tus-js-client/lib.es5/node/fileReader.js
generated
vendored
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _fs = require("fs");
|
||||
var _isStream = _interopRequireDefault(require("is-stream"));
|
||||
var _BufferSource = _interopRequireDefault(require("./sources/BufferSource.js"));
|
||||
var _FileSource = _interopRequireDefault(require("./sources/FileSource.js"));
|
||||
var _StreamSource = _interopRequireDefault(require("./sources/StreamSource.js"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
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);
|
||||
}
|
||||
function _classCallCheck(instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
}
|
||||
}
|
||||
function _defineProperties(target, props) {
|
||||
for (var i = 0; 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);
|
||||
}
|
||||
}
|
||||
function _createClass(Constructor, protoProps, staticProps) {
|
||||
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
||||
if (staticProps) _defineProperties(Constructor, staticProps);
|
||||
Object.defineProperty(Constructor, "prototype", {
|
||||
writable: false
|
||||
});
|
||||
return Constructor;
|
||||
}
|
||||
function _toPropertyKey(t) {
|
||||
var i = _toPrimitive(t, "string");
|
||||
return "symbol" == _typeof(i) ? i : i + "";
|
||||
}
|
||||
function _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);
|
||||
}
|
||||
var FileReader = exports.default = /*#__PURE__*/function () {
|
||||
function FileReader() {
|
||||
_classCallCheck(this, FileReader);
|
||||
}
|
||||
return _createClass(FileReader, [{
|
||||
key: "openFile",
|
||||
value: function openFile(input, chunkSize) {
|
||||
if (Buffer.isBuffer(input)) {
|
||||
return Promise.resolve(new _BufferSource.default(input));
|
||||
}
|
||||
if (input instanceof _fs.ReadStream && input.path != null) {
|
||||
return (0, _FileSource.default)(input);
|
||||
}
|
||||
if (_isStream.default.readable(input)) {
|
||||
chunkSize = Number(chunkSize);
|
||||
if (!Number.isFinite(chunkSize)) {
|
||||
return Promise.reject(new Error('cannot create source for stream without a finite value for the `chunkSize` option; specify a chunkSize to control the memory consumption'));
|
||||
}
|
||||
return Promise.resolve(new _StreamSource.default(input));
|
||||
}
|
||||
return Promise.reject(new Error('source object may only be an instance of Buffer or Readable in this environment'));
|
||||
}
|
||||
}]);
|
||||
}();
|
||||
43
frontend/node_modules/tus-js-client/lib.es5/node/fileSignature.js
generated
vendored
Normal file
43
frontend/node_modules/tus-js-client/lib.es5/node/fileSignature.js
generated
vendored
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = fingerprint;
|
||||
var _crypto = require("crypto");
|
||||
var fs = _interopRequireWildcard(require("fs"));
|
||||
var path = _interopRequireWildcard(require("path"));
|
||||
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
||||
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
||||
/**
|
||||
* Generate a fingerprint for a file which will be used the store the endpoint
|
||||
*
|
||||
* @param {File} file
|
||||
* @param {Object} options
|
||||
*/
|
||||
function fingerprint(file, options) {
|
||||
if (Buffer.isBuffer(file)) {
|
||||
// create MD5 hash for buffer type
|
||||
var blockSize = 64 * 1024; // 64kb
|
||||
var content = file.slice(0, Math.min(blockSize, file.length));
|
||||
var hash = (0, _crypto.createHash)('md5').update(content).digest('hex');
|
||||
var ret = ['node-buffer', hash, file.length, options.endpoint].join('-');
|
||||
return Promise.resolve(ret);
|
||||
}
|
||||
if (file instanceof fs.ReadStream && file.path != null) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
var name = path.resolve(file.path);
|
||||
fs.stat(file.path, function (err, info) {
|
||||
if (err) {
|
||||
reject(err);
|
||||
return;
|
||||
}
|
||||
var ret = ['node-file', name, info.size, info.mtime.getTime(), options.endpoint].join('-');
|
||||
resolve(ret);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// fingerprint cannot be computed for file input type
|
||||
return Promise.resolve(null);
|
||||
}
|
||||
364
frontend/node_modules/tus-js-client/lib.es5/node/httpStack.js
generated
vendored
Normal file
364
frontend/node_modules/tus-js-client/lib.es5/node/httpStack.js
generated
vendored
Normal file
|
|
@ -0,0 +1,364 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var http = _interopRequireWildcard(require("http"));
|
||||
var https = _interopRequireWildcard(require("https"));
|
||||
var _stream = require("stream");
|
||||
var _url = require("url");
|
||||
var _lodash = _interopRequireDefault(require("lodash.throttle"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
||||
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
||||
function _callSuper(t, o, e) {
|
||||
return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
|
||||
}
|
||||
function _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);
|
||||
}
|
||||
function _assertThisInitialized(self) {
|
||||
if (self === void 0) {
|
||||
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
||||
}
|
||||
return self;
|
||||
}
|
||||
function _isNativeReflectConstruct() {
|
||||
try {
|
||||
var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
|
||||
} catch (t) {}
|
||||
return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {
|
||||
return !!t;
|
||||
})();
|
||||
}
|
||||
function _getPrototypeOf(o) {
|
||||
_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {
|
||||
return o.__proto__ || Object.getPrototypeOf(o);
|
||||
};
|
||||
return _getPrototypeOf(o);
|
||||
}
|
||||
function _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);
|
||||
}
|
||||
function _setPrototypeOf(o, p) {
|
||||
_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
|
||||
o.__proto__ = p;
|
||||
return o;
|
||||
};
|
||||
return _setPrototypeOf(o, p);
|
||||
}
|
||||
function 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;
|
||||
}
|
||||
function _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;
|
||||
}
|
||||
function _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;
|
||||
}
|
||||
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);
|
||||
}
|
||||
function _classCallCheck(instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
}
|
||||
}
|
||||
function _defineProperties(target, props) {
|
||||
for (var i = 0; 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);
|
||||
}
|
||||
}
|
||||
function _createClass(Constructor, protoProps, staticProps) {
|
||||
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
||||
if (staticProps) _defineProperties(Constructor, staticProps);
|
||||
Object.defineProperty(Constructor, "prototype", {
|
||||
writable: false
|
||||
});
|
||||
return Constructor;
|
||||
}
|
||||
function _toPropertyKey(t) {
|
||||
var i = _toPrimitive(t, "string");
|
||||
return "symbol" == _typeof(i) ? i : i + "";
|
||||
}
|
||||
function _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);
|
||||
}
|
||||
// The url.parse method is superseeded by the url.URL constructor,
|
||||
// but it is still included in Node.js
|
||||
|
||||
var NodeHttpStack = exports.default = /*#__PURE__*/function () {
|
||||
function NodeHttpStack() {
|
||||
var requestOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||
_classCallCheck(this, NodeHttpStack);
|
||||
this._requestOptions = requestOptions;
|
||||
}
|
||||
return _createClass(NodeHttpStack, [{
|
||||
key: "createRequest",
|
||||
value: function createRequest(method, url) {
|
||||
return new Request(method, url, this._requestOptions);
|
||||
}
|
||||
}, {
|
||||
key: "getName",
|
||||
value: function getName() {
|
||||
return 'NodeHttpStack';
|
||||
}
|
||||
}]);
|
||||
}();
|
||||
var Request = /*#__PURE__*/function () {
|
||||
function Request(method, url, options) {
|
||||
_classCallCheck(this, Request);
|
||||
this._method = method;
|
||||
this._url = url;
|
||||
this._headers = {};
|
||||
this._request = null;
|
||||
this._progressHandler = function () {};
|
||||
this._requestOptions = options || {};
|
||||
}
|
||||
return _createClass(Request, [{
|
||||
key: "getMethod",
|
||||
value: function getMethod() {
|
||||
return this._method;
|
||||
}
|
||||
}, {
|
||||
key: "getURL",
|
||||
value: function getURL() {
|
||||
return this._url;
|
||||
}
|
||||
}, {
|
||||
key: "setHeader",
|
||||
value: function setHeader(header, value) {
|
||||
this._headers[header] = value;
|
||||
}
|
||||
}, {
|
||||
key: "getHeader",
|
||||
value: function getHeader(header) {
|
||||
return this._headers[header];
|
||||
}
|
||||
}, {
|
||||
key: "setProgressHandler",
|
||||
value: function setProgressHandler(progressHandler) {
|
||||
this._progressHandler = progressHandler;
|
||||
}
|
||||
}, {
|
||||
key: "send",
|
||||
value: function send() {
|
||||
var _this = this;
|
||||
var body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
||||
return new Promise(function (resolve, reject) {
|
||||
var options = _objectSpread(_objectSpread(_objectSpread({}, (0, _url.parse)(_this._url)), _this._requestOptions), {}, {
|
||||
method: _this._method,
|
||||
headers: _objectSpread(_objectSpread({}, _this._requestOptions.headers || {}), _this._headers)
|
||||
});
|
||||
if (body !== null && body !== void 0 && body.size) {
|
||||
options.headers['Content-Length'] = body.size;
|
||||
}
|
||||
var httpModule = options.protocol === 'https:' ? https : http;
|
||||
_this._request = httpModule.request(options);
|
||||
var req = _this._request;
|
||||
req.on('response', function (res) {
|
||||
var resChunks = [];
|
||||
res.on('data', function (data) {
|
||||
resChunks.push(data);
|
||||
});
|
||||
res.on('end', function () {
|
||||
var responseText = Buffer.concat(resChunks).toString('utf8');
|
||||
resolve(new Response(res, responseText));
|
||||
});
|
||||
});
|
||||
req.on('error', function (err) {
|
||||
reject(err);
|
||||
});
|
||||
if (body instanceof _stream.Readable) {
|
||||
// Readable stream are piped through a PassThrough instance, which
|
||||
// counts the number of bytes passed through. This is used, for example,
|
||||
// when an fs.ReadStream is provided to tus-js-client.
|
||||
body.pipe(new ProgressEmitter(_this._progressHandler)).pipe(req);
|
||||
} else if (body instanceof Uint8Array) {
|
||||
// For Buffers and Uint8Arrays (in Node.js all buffers are instances of Uint8Array),
|
||||
// we write chunks of the buffer to the stream and use that to track the progress.
|
||||
// This is used when either a Buffer or a normal readable stream is provided
|
||||
// to tus-js-client.
|
||||
writeBufferToStreamWithProgress(req, body, _this._progressHandler);
|
||||
} else {
|
||||
req.end(body);
|
||||
}
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "abort",
|
||||
value: function abort() {
|
||||
if (this._request !== null) this._request.abort();
|
||||
return Promise.resolve();
|
||||
}
|
||||
}, {
|
||||
key: "getUnderlyingObject",
|
||||
value: function getUnderlyingObject() {
|
||||
return this._request;
|
||||
}
|
||||
}]);
|
||||
}();
|
||||
var Response = /*#__PURE__*/function () {
|
||||
function Response(res, body) {
|
||||
_classCallCheck(this, Response);
|
||||
this._response = res;
|
||||
this._body = body;
|
||||
}
|
||||
return _createClass(Response, [{
|
||||
key: "getStatus",
|
||||
value: function getStatus() {
|
||||
return this._response.statusCode;
|
||||
}
|
||||
}, {
|
||||
key: "getHeader",
|
||||
value: function getHeader(header) {
|
||||
return this._response.headers[header.toLowerCase()];
|
||||
}
|
||||
}, {
|
||||
key: "getBody",
|
||||
value: function getBody() {
|
||||
return this._body;
|
||||
}
|
||||
}, {
|
||||
key: "getUnderlyingObject",
|
||||
value: function getUnderlyingObject() {
|
||||
return this._response;
|
||||
}
|
||||
}]);
|
||||
}(); // ProgressEmitter is a simple PassThrough-style transform stream which keeps
|
||||
// track of the number of bytes which have been piped through it and will
|
||||
// invoke the `onprogress` function whenever new number are available.
|
||||
var ProgressEmitter = /*#__PURE__*/function (_Transform) {
|
||||
function ProgressEmitter(onprogress) {
|
||||
var _this2;
|
||||
_classCallCheck(this, ProgressEmitter);
|
||||
_this2 = _callSuper(this, ProgressEmitter);
|
||||
|
||||
// The _onprogress property will be invoked, whenever a chunk is piped
|
||||
// through this transformer. Since chunks are usually quite small (64kb),
|
||||
// these calls can occur frequently, especially when you have a good
|
||||
// connection to the remote server. Therefore, we are throtteling them to
|
||||
// prevent accessive function calls.
|
||||
_this2._onprogress = (0, _lodash.default)(onprogress, 100, {
|
||||
leading: true,
|
||||
trailing: false
|
||||
});
|
||||
_this2._position = 0;
|
||||
return _this2;
|
||||
}
|
||||
_inherits(ProgressEmitter, _Transform);
|
||||
return _createClass(ProgressEmitter, [{
|
||||
key: "_transform",
|
||||
value: function _transform(chunk, _encoding, callback) {
|
||||
this._position += chunk.length;
|
||||
this._onprogress(this._position);
|
||||
callback(null, chunk);
|
||||
}
|
||||
}]);
|
||||
}(_stream.Transform); // writeBufferToStreamWithProgress writes chunks from `source` (either a
|
||||
// Buffer or Uint8Array) to the readable stream `stream`.
|
||||
// The size of the chunk depends on the stream's highWaterMark to fill the
|
||||
// stream's internal buffer as best as possible.
|
||||
// If the internal buffer is full, the callback `onprogress` will be invoked
|
||||
// to notify about the write progress. Writing will be resumed once the internal
|
||||
// buffer is empty, as indicated by the emitted `drain` event.
|
||||
// See https://nodejs.org/docs/latest/api/stream.html#buffering for more details
|
||||
// on the buffering behavior of streams.
|
||||
var writeBufferToStreamWithProgress = function writeBufferToStreamWithProgress(stream, source, onprogress) {
|
||||
onprogress = (0, _lodash.default)(onprogress, 100, {
|
||||
leading: true,
|
||||
trailing: false
|
||||
});
|
||||
var offset = 0;
|
||||
function writeNextChunk() {
|
||||
// Take at most the amount of bytes from highWaterMark. This should fill the streams
|
||||
// internal buffer already.
|
||||
var chunkSize = Math.min(stream.writableHighWaterMark, source.length - offset);
|
||||
|
||||
// Note: We use subarray instead of slice because it works without copying data for
|
||||
// Buffers and Uint8Arrays.
|
||||
var chunk = source.subarray(offset, offset + chunkSize);
|
||||
offset += chunk.length;
|
||||
|
||||
// `write` returns true if the internal buffer is not full and we should write more.
|
||||
// If the stream is destroyed because the request is aborted, it will return false
|
||||
// and no 'drain' event is emitted, so won't continue writing data.
|
||||
var canContinue = stream.write(chunk);
|
||||
if (!canContinue) {
|
||||
// If the buffer is full, wait for the 'drain' event to write more data.
|
||||
stream.once('drain', writeNextChunk);
|
||||
onprogress(offset);
|
||||
} else if (offset < source.length) {
|
||||
// If there's still data to write and the buffer is not full, write next chunk.
|
||||
writeNextChunk();
|
||||
} else {
|
||||
// If all data has been written, close the stream if needed, and emit a 'finish' event.
|
||||
stream.end();
|
||||
}
|
||||
}
|
||||
|
||||
// Start writing the first chunk.
|
||||
writeNextChunk();
|
||||
};
|
||||
214
frontend/node_modules/tus-js-client/lib.es5/node/index.js
generated
vendored
Normal file
214
frontend/node_modules/tus-js-client/lib.es5/node/index.js
generated
vendored
Normal file
|
|
@ -0,0 +1,214 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
Object.defineProperty(exports, "DefaultHttpStack", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _httpStack.default;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "DetailedError", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _error.default;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "FileUrlStorage", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _urlStorage.FileUrlStorage;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "StreamSource", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _StreamSource.default;
|
||||
}
|
||||
});
|
||||
exports.Upload = void 0;
|
||||
Object.defineProperty(exports, "canStoreURLs", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _urlStorage.canStoreURLs;
|
||||
}
|
||||
});
|
||||
exports.defaultOptions = void 0;
|
||||
Object.defineProperty(exports, "enableDebugLog", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _logger.enableDebugLog;
|
||||
}
|
||||
});
|
||||
exports.isSupported = void 0;
|
||||
var _error = _interopRequireDefault(require("../error.js"));
|
||||
var _logger = require("../logger.js");
|
||||
var _noopUrlStorage = _interopRequireDefault(require("../noopUrlStorage.js"));
|
||||
var _upload = _interopRequireDefault(require("../upload.js"));
|
||||
var _fileReader = _interopRequireDefault(require("./fileReader.js"));
|
||||
var _fileSignature = _interopRequireDefault(require("./fileSignature.js"));
|
||||
var _httpStack = _interopRequireDefault(require("./httpStack.js"));
|
||||
var _StreamSource = _interopRequireDefault(require("./sources/StreamSource.js"));
|
||||
var _urlStorage = require("./urlStorage.js");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
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);
|
||||
}
|
||||
function _classCallCheck(instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
}
|
||||
}
|
||||
function _defineProperties(target, props) {
|
||||
for (var i = 0; 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);
|
||||
}
|
||||
}
|
||||
function _createClass(Constructor, protoProps, staticProps) {
|
||||
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
||||
if (staticProps) _defineProperties(Constructor, staticProps);
|
||||
Object.defineProperty(Constructor, "prototype", {
|
||||
writable: false
|
||||
});
|
||||
return Constructor;
|
||||
}
|
||||
function _callSuper(t, o, e) {
|
||||
return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
|
||||
}
|
||||
function _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);
|
||||
}
|
||||
function _assertThisInitialized(self) {
|
||||
if (self === void 0) {
|
||||
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
||||
}
|
||||
return self;
|
||||
}
|
||||
function _isNativeReflectConstruct() {
|
||||
try {
|
||||
var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
|
||||
} catch (t) {}
|
||||
return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {
|
||||
return !!t;
|
||||
})();
|
||||
}
|
||||
function _getPrototypeOf(o) {
|
||||
_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {
|
||||
return o.__proto__ || Object.getPrototypeOf(o);
|
||||
};
|
||||
return _getPrototypeOf(o);
|
||||
}
|
||||
function _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);
|
||||
}
|
||||
function _setPrototypeOf(o, p) {
|
||||
_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
|
||||
o.__proto__ = p;
|
||||
return o;
|
||||
};
|
||||
return _setPrototypeOf(o, p);
|
||||
}
|
||||
function 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;
|
||||
}
|
||||
function _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;
|
||||
}
|
||||
function _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;
|
||||
}
|
||||
function _toPropertyKey(t) {
|
||||
var i = _toPrimitive(t, "string");
|
||||
return "symbol" == _typeof(i) ? i : i + "";
|
||||
}
|
||||
function _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);
|
||||
}
|
||||
var defaultOptions = exports.defaultOptions = _objectSpread(_objectSpread({}, _upload.default.defaultOptions), {}, {
|
||||
httpStack: new _httpStack.default(),
|
||||
fileReader: new _fileReader.default(),
|
||||
urlStorage: new _noopUrlStorage.default(),
|
||||
fingerprint: _fileSignature.default
|
||||
});
|
||||
var Upload = exports.Upload = /*#__PURE__*/function (_BaseUpload) {
|
||||
function Upload() {
|
||||
var file = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
||||
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||||
_classCallCheck(this, Upload);
|
||||
options = _objectSpread(_objectSpread({}, defaultOptions), options);
|
||||
return _callSuper(this, Upload, [file, options]);
|
||||
}
|
||||
_inherits(Upload, _BaseUpload);
|
||||
return _createClass(Upload, null, [{
|
||||
key: "terminate",
|
||||
value: function terminate(url) {
|
||||
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||||
options = _objectSpread(_objectSpread({}, defaultOptions), options);
|
||||
return _upload.default.terminate(url, options);
|
||||
}
|
||||
}]);
|
||||
}(_upload.default); // The Node.js environment does not have restrictions which may cause
|
||||
// tus-js-client not to function.
|
||||
var isSupported = exports.isSupported = true;
|
||||
73
frontend/node_modules/tus-js-client/lib.es5/node/sources/BufferSource.js
generated
vendored
Normal file
73
frontend/node_modules/tus-js-client/lib.es5/node/sources/BufferSource.js
generated
vendored
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
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);
|
||||
}
|
||||
function _classCallCheck(instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
}
|
||||
}
|
||||
function _defineProperties(target, props) {
|
||||
for (var i = 0; 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);
|
||||
}
|
||||
}
|
||||
function _createClass(Constructor, protoProps, staticProps) {
|
||||
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
||||
if (staticProps) _defineProperties(Constructor, staticProps);
|
||||
Object.defineProperty(Constructor, "prototype", {
|
||||
writable: false
|
||||
});
|
||||
return Constructor;
|
||||
}
|
||||
function _toPropertyKey(t) {
|
||||
var i = _toPrimitive(t, "string");
|
||||
return "symbol" == _typeof(i) ? i : i + "";
|
||||
}
|
||||
function _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);
|
||||
}
|
||||
var BufferSource = exports.default = /*#__PURE__*/function () {
|
||||
function BufferSource(buffer) {
|
||||
_classCallCheck(this, BufferSource);
|
||||
this._buffer = buffer;
|
||||
this.size = buffer.length;
|
||||
}
|
||||
return _createClass(BufferSource, [{
|
||||
key: "slice",
|
||||
value: function slice(start, end) {
|
||||
var value = this._buffer.slice(start, end);
|
||||
value.size = value.length;
|
||||
var done = end >= this.size;
|
||||
return Promise.resolve({
|
||||
value: value,
|
||||
done: done
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "close",
|
||||
value: function close() {}
|
||||
}]);
|
||||
}();
|
||||
465
frontend/node_modules/tus-js-client/lib.es5/node/sources/FileSource.js
generated
vendored
Normal file
465
frontend/node_modules/tus-js-client/lib.es5/node/sources/FileSource.js
generated
vendored
Normal file
|
|
@ -0,0 +1,465 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = getFileSource;
|
||||
var _fs = require("fs");
|
||||
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);
|
||||
}
|
||||
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;
|
||||
}
|
||||
function _classCallCheck(instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
}
|
||||
}
|
||||
function _defineProperties(target, props) {
|
||||
for (var i = 0; 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);
|
||||
}
|
||||
}
|
||||
function _createClass(Constructor, protoProps, staticProps) {
|
||||
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
||||
if (staticProps) _defineProperties(Constructor, staticProps);
|
||||
Object.defineProperty(Constructor, "prototype", {
|
||||
writable: false
|
||||
});
|
||||
return Constructor;
|
||||
}
|
||||
function _toPropertyKey(t) {
|
||||
var i = _toPrimitive(t, "string");
|
||||
return "symbol" == _typeof(i) ? i : i + "";
|
||||
}
|
||||
function _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);
|
||||
}
|
||||
function 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);
|
||||
}
|
||||
}
|
||||
function _asyncToGenerator(fn) {
|
||||
return function () {
|
||||
var self = this,
|
||||
args = arguments;
|
||||
return new Promise(function (resolve, reject) {
|
||||
var gen = fn.apply(self, args);
|
||||
function _next(value) {
|
||||
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
||||
}
|
||||
function _throw(err) {
|
||||
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
||||
}
|
||||
_next(undefined);
|
||||
});
|
||||
};
|
||||
}
|
||||
function getFileSource(_x) {
|
||||
return _getFileSource.apply(this, arguments);
|
||||
}
|
||||
function _getFileSource() {
|
||||
_getFileSource = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(stream) {
|
||||
var _stream$start;
|
||||
var path, _yield$fsPromises$sta, size, start, end, actualSize;
|
||||
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
||||
while (1) switch (_context.prev = _context.next) {
|
||||
case 0:
|
||||
path = stream.path.toString();
|
||||
_context.next = 3;
|
||||
return _fs.promises.stat(path);
|
||||
case 3:
|
||||
_yield$fsPromises$sta = _context.sent;
|
||||
size = _yield$fsPromises$sta.size;
|
||||
// The fs.ReadStream might be configured to not read from the beginning
|
||||
// to the end, but instead from a slice in between. In this case, we consider
|
||||
// that range to indicate the actual uploadable size.
|
||||
// This happens, for example, if a fs.ReadStream is used with the `parallelUploads`
|
||||
// option. There, the ReadStream is sliced into multiple ReadStreams to fit the number
|
||||
// of number of `parallelUploads`. Each ReadStream has `start` and `end` set.
|
||||
// Note: `stream.end` is Infinity by default, so we need the check `isFinite`.
|
||||
// Note: `stream.end` is treated inclusively, so we need to add 1 here.
|
||||
// See the comment in slice() for more context.
|
||||
start = (_stream$start = stream.start) !== null && _stream$start !== void 0 ? _stream$start : 0;
|
||||
end = Number.isFinite(stream.end) ? stream.end + 1 : size;
|
||||
actualSize = end - start;
|
||||
return _context.abrupt("return", new FileSource(stream, path, actualSize));
|
||||
case 9:
|
||||
case "end":
|
||||
return _context.stop();
|
||||
}
|
||||
}, _callee);
|
||||
}));
|
||||
return _getFileSource.apply(this, arguments);
|
||||
}
|
||||
var FileSource = /*#__PURE__*/function () {
|
||||
function FileSource(stream, path, size) {
|
||||
_classCallCheck(this, FileSource);
|
||||
this._stream = stream;
|
||||
this._path = path;
|
||||
this.size = size;
|
||||
}
|
||||
return _createClass(FileSource, [{
|
||||
key: "slice",
|
||||
value: function slice(start, end) {
|
||||
var _this$_stream$start;
|
||||
// The fs.ReadStream might be configured to not read from the beginning,
|
||||
// but instead start at a different offset. The start value from the caller
|
||||
// does not include the offset, so we need to add this offset to our range later.
|
||||
// This happens, for example, if a fs.ReadStream is used with the `parallelUploads`
|
||||
// option. First, the ReadStream is sliced into multiple ReadStreams to fit the number
|
||||
// of number of `parallelUploads`. Each ReadStream has `start` set.
|
||||
var offset = (_this$_stream$start = this._stream.start) !== null && _this$_stream$start !== void 0 ? _this$_stream$start : 0;
|
||||
var stream = (0, _fs.createReadStream)(this._path, {
|
||||
start: offset + start,
|
||||
// The `end` option for createReadStream is treated inclusively
|
||||
// (see https://nodejs.org/api/fs.html#fs_fs_createreadstream_path_options).
|
||||
// However, the Buffer#slice(start, end) and also our Source#slice(start, end)
|
||||
// method treat the end range exclusively, so we have to subtract 1.
|
||||
// This prevents an off-by-one error when reporting upload progress.
|
||||
end: offset + end - 1,
|
||||
autoClose: true
|
||||
});
|
||||
stream.size = Math.min(end - start, this.size);
|
||||
var done = stream.size >= this.size;
|
||||
return Promise.resolve({
|
||||
value: stream,
|
||||
done: done
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "close",
|
||||
value: function close() {
|
||||
this._stream.destroy();
|
||||
}
|
||||
}]);
|
||||
}();
|
||||
546
frontend/node_modules/tus-js-client/lib.es5/node/sources/StreamSource.js
generated
vendored
Normal file
546
frontend/node_modules/tus-js-client/lib.es5/node/sources/StreamSource.js
generated
vendored
Normal file
|
|
@ -0,0 +1,546 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
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);
|
||||
}
|
||||
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;
|
||||
}
|
||||
function _classCallCheck(instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
}
|
||||
}
|
||||
function _defineProperties(target, props) {
|
||||
for (var i = 0; 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);
|
||||
}
|
||||
}
|
||||
function _createClass(Constructor, protoProps, staticProps) {
|
||||
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
||||
if (staticProps) _defineProperties(Constructor, staticProps);
|
||||
Object.defineProperty(Constructor, "prototype", {
|
||||
writable: false
|
||||
});
|
||||
return Constructor;
|
||||
}
|
||||
function _toPropertyKey(t) {
|
||||
var i = _toPrimitive(t, "string");
|
||||
return "symbol" == _typeof(i) ? i : i + "";
|
||||
}
|
||||
function _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);
|
||||
}
|
||||
function 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);
|
||||
}
|
||||
}
|
||||
function _asyncToGenerator(fn) {
|
||||
return function () {
|
||||
var self = this,
|
||||
args = arguments;
|
||||
return new Promise(function (resolve, reject) {
|
||||
var gen = fn.apply(self, args);
|
||||
function _next(value) {
|
||||
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
||||
}
|
||||
function _throw(err) {
|
||||
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
||||
}
|
||||
_next(undefined);
|
||||
});
|
||||
};
|
||||
}
|
||||
/**
|
||||
* readChunk reads a chunk with the given size from the given
|
||||
* stream. It will wait until enough data is available to satisfy
|
||||
* the size requirement before resolving.
|
||||
* Only if the stream ends, the function may resolve with a buffer
|
||||
* smaller than the size argument.
|
||||
* Note that we rely on the stream behaving as Node.js documents:
|
||||
* https://nodejs.org/api/stream.html#readablereadsize
|
||||
*/
|
||||
function readChunk(_x, _x2) {
|
||||
return _readChunk.apply(this, arguments);
|
||||
}
|
||||
/**
|
||||
* StreamSource provides an interface to obtain slices of a Readable stream for
|
||||
* various ranges.
|
||||
* It will buffer read data, to allow for following pattern:
|
||||
* - Call slice(startA, endA) will buffer the data of the requested range
|
||||
* - Call slice(startB, endB) will return data from the buffer if startA <= startB <= endA.
|
||||
* If endB > endA, it will also consume new data from the stream.
|
||||
* Note that it is forbidden to call with startB < startA or startB > endA. In other words,
|
||||
* the slice calls cannot seek back and must not skip data from the stream.
|
||||
*/
|
||||
function _readChunk() {
|
||||
_readChunk = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(stream, size) {
|
||||
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
||||
while (1) switch (_context2.prev = _context2.next) {
|
||||
case 0:
|
||||
return _context2.abrupt("return", new Promise(function (resolve, reject) {
|
||||
var onError = function onError(err) {
|
||||
stream.off('readable', onReadable);
|
||||
reject(err);
|
||||
};
|
||||
var onReadable = function onReadable() {
|
||||
// TODO: Node requires size to be less than 1GB. Add a validation for that
|
||||
var chunk = stream.read(size);
|
||||
if (chunk !== null) {
|
||||
stream.off('error', onError);
|
||||
stream.off('readable', onReadable);
|
||||
resolve(chunk);
|
||||
}
|
||||
};
|
||||
stream.once('error', onError);
|
||||
stream.on('readable', onReadable);
|
||||
}));
|
||||
case 1:
|
||||
case "end":
|
||||
return _context2.stop();
|
||||
}
|
||||
}, _callee2);
|
||||
}));
|
||||
return _readChunk.apply(this, arguments);
|
||||
}
|
||||
var StreamSource = exports.default = /*#__PURE__*/function () {
|
||||
function StreamSource(stream) {
|
||||
var _this = this;
|
||||
_classCallCheck(this, StreamSource);
|
||||
this._stream = stream;
|
||||
|
||||
// Setting the size to null indicates that we have no calculation available
|
||||
// for how much data this stream will emit requiring the user to specify
|
||||
// it manually (see the `uploadSize` option).
|
||||
this.size = null;
|
||||
this._buf = Buffer.alloc(0);
|
||||
this._bufPos = 0;
|
||||
this._ended = false;
|
||||
this._error = null;
|
||||
stream.pause();
|
||||
stream.on('end', function () {
|
||||
_this._ended = true;
|
||||
});
|
||||
stream.on('error', function (err) {
|
||||
_this._error = err;
|
||||
});
|
||||
}
|
||||
return _createClass(StreamSource, [{
|
||||
key: "slice",
|
||||
value: function () {
|
||||
var _slice = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(start, end) {
|
||||
var returnBuffer, bufStart, bufEnd, requestedSize, newChunk;
|
||||
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
||||
while (1) switch (_context.prev = _context.next) {
|
||||
case 0:
|
||||
if (!(start < this._bufPos)) {
|
||||
_context.next = 2;
|
||||
break;
|
||||
}
|
||||
throw new Error('cannot slice from position which we already seeked away');
|
||||
case 2:
|
||||
if (!(start > this._bufPos + this._buf.length)) {
|
||||
_context.next = 4;
|
||||
break;
|
||||
}
|
||||
throw new Error('slice start is outside of buffer (currently not implemented)');
|
||||
case 4:
|
||||
if (!this._error) {
|
||||
_context.next = 6;
|
||||
break;
|
||||
}
|
||||
throw this._error;
|
||||
case 6:
|
||||
// Always attempt to drain the buffer first, even if this means that we
|
||||
// return less data than the caller requested.
|
||||
if (start < this._bufPos + this._buf.length) {
|
||||
bufStart = start - this._bufPos;
|
||||
bufEnd = Math.min(this._buf.length, end - this._bufPos);
|
||||
returnBuffer = this._buf.slice(bufStart, bufEnd);
|
||||
} else {
|
||||
returnBuffer = Buffer.alloc(0);
|
||||
}
|
||||
|
||||
// If the stream has ended already, read calls would not finish, so return early here.
|
||||
if (!this._ended) {
|
||||
_context.next = 10;
|
||||
break;
|
||||
}
|
||||
returnBuffer.size = returnBuffer.length;
|
||||
return _context.abrupt("return", {
|
||||
value: returnBuffer,
|
||||
done: true
|
||||
});
|
||||
case 10:
|
||||
// If we could not satisfy the slice request from the buffer only, read more data from
|
||||
// the stream and add it to the buffer.
|
||||
requestedSize = end - start;
|
||||
if (!(requestedSize > returnBuffer.length)) {
|
||||
_context.next = 16;
|
||||
break;
|
||||
}
|
||||
_context.next = 14;
|
||||
return readChunk(this._stream, requestedSize - returnBuffer.length);
|
||||
case 14:
|
||||
newChunk = _context.sent;
|
||||
// Append the new chunk to the buffer
|
||||
returnBuffer = Buffer.concat([returnBuffer, newChunk]);
|
||||
case 16:
|
||||
// Important: Store the read data, so consecutive slice calls can access the same data.
|
||||
this._buf = returnBuffer;
|
||||
this._bufPos = start;
|
||||
returnBuffer.size = returnBuffer.length;
|
||||
return _context.abrupt("return", {
|
||||
value: returnBuffer,
|
||||
done: this._ended
|
||||
});
|
||||
case 20:
|
||||
case "end":
|
||||
return _context.stop();
|
||||
}
|
||||
}, _callee, this);
|
||||
}));
|
||||
function slice(_x3, _x4) {
|
||||
return _slice.apply(this, arguments);
|
||||
}
|
||||
return slice;
|
||||
}()
|
||||
}, {
|
||||
key: "close",
|
||||
value: function close() {
|
||||
this._stream.destroy();
|
||||
}
|
||||
}]);
|
||||
}();
|
||||
217
frontend/node_modules/tus-js-client/lib.es5/node/urlStorage.js
generated
vendored
Normal file
217
frontend/node_modules/tus-js-client/lib.es5/node/urlStorage.js
generated
vendored
Normal file
|
|
@ -0,0 +1,217 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.canStoreURLs = exports.FileUrlStorage = void 0;
|
||||
var _fs = require("fs");
|
||||
var _combineErrors = _interopRequireDefault(require("combine-errors"));
|
||||
var lockfile = _interopRequireWildcard(require("proper-lockfile"));
|
||||
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
||||
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
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);
|
||||
}
|
||||
function _classCallCheck(instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
}
|
||||
}
|
||||
function _defineProperties(target, props) {
|
||||
for (var i = 0; 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);
|
||||
}
|
||||
}
|
||||
function _createClass(Constructor, protoProps, staticProps) {
|
||||
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
||||
if (staticProps) _defineProperties(Constructor, staticProps);
|
||||
Object.defineProperty(Constructor, "prototype", {
|
||||
writable: false
|
||||
});
|
||||
return Constructor;
|
||||
}
|
||||
function _toPropertyKey(t) {
|
||||
var i = _toPrimitive(t, "string");
|
||||
return "symbol" == _typeof(i) ? i : i + "";
|
||||
}
|
||||
function _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);
|
||||
}
|
||||
var canStoreURLs = exports.canStoreURLs = true;
|
||||
var FileUrlStorage = exports.FileUrlStorage = /*#__PURE__*/function () {
|
||||
function FileUrlStorage(filePath) {
|
||||
_classCallCheck(this, FileUrlStorage);
|
||||
this.path = filePath;
|
||||
}
|
||||
return _createClass(FileUrlStorage, [{
|
||||
key: "findAllUploads",
|
||||
value: function findAllUploads() {
|
||||
var _this = this;
|
||||
return new Promise(function (resolve, reject) {
|
||||
_this._getItems('tus::', function (err, results) {
|
||||
if (err) reject(err);else resolve(results);
|
||||
});
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "findUploadsByFingerprint",
|
||||
value: function findUploadsByFingerprint(fingerprint) {
|
||||
var _this2 = this;
|
||||
return new Promise(function (resolve, reject) {
|
||||
_this2._getItems("tus::".concat(fingerprint), function (err, results) {
|
||||
if (err) reject(err);else resolve(results);
|
||||
});
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "removeUpload",
|
||||
value: function removeUpload(urlStorageKey) {
|
||||
var _this3 = this;
|
||||
return new Promise(function (resolve, reject) {
|
||||
_this3._removeItem(urlStorageKey, function (err) {
|
||||
if (err) reject(err);else resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "addUpload",
|
||||
value: function addUpload(fingerprint, upload) {
|
||||
var _this4 = this;
|
||||
var id = Math.round(Math.random() * 1e12);
|
||||
var key = "tus::".concat(fingerprint, "::").concat(id);
|
||||
return new Promise(function (resolve, reject) {
|
||||
_this4._setItem(key, upload, function (err) {
|
||||
if (err) reject(err);else resolve(key);
|
||||
});
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "_setItem",
|
||||
value: function _setItem(key, value, cb) {
|
||||
var _this5 = this;
|
||||
lockfile.lock(this.path, this._lockfileOptions()).then(function (release) {
|
||||
cb = _this5._releaseAndCb(release, cb);
|
||||
_this5._getData(function (err, data) {
|
||||
if (err) {
|
||||
cb(err);
|
||||
return;
|
||||
}
|
||||
data[key] = value;
|
||||
_this5._writeData(data, function (err2) {
|
||||
return cb(err2);
|
||||
});
|
||||
});
|
||||
})["catch"](cb);
|
||||
}
|
||||
}, {
|
||||
key: "_getItems",
|
||||
value: function _getItems(prefix, cb) {
|
||||
this._getData(function (err, data) {
|
||||
if (err) {
|
||||
cb(err);
|
||||
return;
|
||||
}
|
||||
var results = Object.keys(data).filter(function (key) {
|
||||
return key.startsWith(prefix);
|
||||
}).map(function (key) {
|
||||
var obj = data[key];
|
||||
obj.urlStorageKey = key;
|
||||
return obj;
|
||||
});
|
||||
cb(null, results);
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "_removeItem",
|
||||
value: function _removeItem(key, cb) {
|
||||
var _this6 = this;
|
||||
lockfile.lock(this.path, this._lockfileOptions()).then(function (release) {
|
||||
cb = _this6._releaseAndCb(release, cb);
|
||||
_this6._getData(function (err, data) {
|
||||
if (err) {
|
||||
cb(err);
|
||||
return;
|
||||
}
|
||||
delete data[key];
|
||||
_this6._writeData(data, function (err2) {
|
||||
return cb(err2);
|
||||
});
|
||||
});
|
||||
})["catch"](cb);
|
||||
}
|
||||
}, {
|
||||
key: "_lockfileOptions",
|
||||
value: function _lockfileOptions() {
|
||||
return {
|
||||
realpath: false,
|
||||
retries: {
|
||||
retries: 5,
|
||||
minTimeout: 20
|
||||
}
|
||||
};
|
||||
}
|
||||
}, {
|
||||
key: "_releaseAndCb",
|
||||
value: function _releaseAndCb(release, cb) {
|
||||
return function (err) {
|
||||
if (err) {
|
||||
release().then(function () {
|
||||
return cb(err);
|
||||
})["catch"](function (releaseErr) {
|
||||
return cb((0, _combineErrors.default)([err, releaseErr]));
|
||||
});
|
||||
return;
|
||||
}
|
||||
release().then(cb)["catch"](cb);
|
||||
};
|
||||
}
|
||||
}, {
|
||||
key: "_writeData",
|
||||
value: function _writeData(data, cb) {
|
||||
var opts = {
|
||||
encoding: 'utf8',
|
||||
mode: 432,
|
||||
flag: 'w'
|
||||
};
|
||||
(0, _fs.writeFile)(this.path, JSON.stringify(data), opts, function (err) {
|
||||
return cb(err);
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "_getData",
|
||||
value: function _getData(cb) {
|
||||
(0, _fs.readFile)(this.path, 'utf8', function (err, data) {
|
||||
if (err) {
|
||||
// return empty data if file does not exist
|
||||
if (err.code === 'ENOENT') cb(null, {});else cb(err);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
data = !data.trim().length ? {} : JSON.parse(data);
|
||||
} catch (error) {
|
||||
cb(error);
|
||||
return;
|
||||
}
|
||||
cb(null, data);
|
||||
});
|
||||
}
|
||||
}]);
|
||||
}();
|
||||
77
frontend/node_modules/tus-js-client/lib.es5/noopUrlStorage.js
generated
vendored
Normal file
77
frontend/node_modules/tus-js-client/lib.es5/noopUrlStorage.js
generated
vendored
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
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);
|
||||
}
|
||||
function _classCallCheck(instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
}
|
||||
}
|
||||
function _defineProperties(target, props) {
|
||||
for (var i = 0; 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);
|
||||
}
|
||||
}
|
||||
function _createClass(Constructor, protoProps, staticProps) {
|
||||
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
||||
if (staticProps) _defineProperties(Constructor, staticProps);
|
||||
Object.defineProperty(Constructor, "prototype", {
|
||||
writable: false
|
||||
});
|
||||
return Constructor;
|
||||
}
|
||||
function _toPropertyKey(t) {
|
||||
var i = _toPrimitive(t, "string");
|
||||
return "symbol" == _typeof(i) ? i : i + "";
|
||||
}
|
||||
function _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);
|
||||
}
|
||||
var NoopUrlStorage = exports.default = /*#__PURE__*/function () {
|
||||
function NoopUrlStorage() {
|
||||
_classCallCheck(this, NoopUrlStorage);
|
||||
}
|
||||
return _createClass(NoopUrlStorage, [{
|
||||
key: "listAllUploads",
|
||||
value: function listAllUploads() {
|
||||
return Promise.resolve([]);
|
||||
}
|
||||
}, {
|
||||
key: "findUploadsByFingerprint",
|
||||
value: function findUploadsByFingerprint(_fingerprint) {
|
||||
return Promise.resolve([]);
|
||||
}
|
||||
}, {
|
||||
key: "removeUpload",
|
||||
value: function removeUpload(_urlStorageKey) {
|
||||
return Promise.resolve();
|
||||
}
|
||||
}, {
|
||||
key: "addUpload",
|
||||
value: function addUpload(_fingerprint, _upload) {
|
||||
return Promise.resolve(null);
|
||||
}
|
||||
}]);
|
||||
}();
|
||||
1583
frontend/node_modules/tus-js-client/lib.es5/upload.js
generated
vendored
Normal file
1583
frontend/node_modules/tus-js-client/lib.es5/upload.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
25
frontend/node_modules/tus-js-client/lib.es5/uuid.js
generated
vendored
Normal file
25
frontend/node_modules/tus-js-client/lib.es5/uuid.js
generated
vendored
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = uuid;
|
||||
/**
|
||||
* Generate a UUID v4 based on random numbers. We intentioanlly use the less
|
||||
* secure Math.random function here since the more secure crypto.getRandomNumbers
|
||||
* is not available on all platforms.
|
||||
* This is not a problem for us since we use the UUID only for generating a
|
||||
* request ID, so we can correlate server logs to client errors.
|
||||
*
|
||||
* This function is taken from following site:
|
||||
* https://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript
|
||||
*
|
||||
* @return {string} The generate UUID
|
||||
*/
|
||||
function uuid() {
|
||||
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
|
||||
var r = Math.random() * 16 | 0;
|
||||
var v = c === 'x' ? r : r & 0x3 | 0x8;
|
||||
return v.toString(16);
|
||||
});
|
||||
}
|
||||
74
frontend/node_modules/tus-js-client/lib.esm/browser/fileReader.js
generated
vendored
Normal file
74
frontend/node_modules/tus-js-client/lib.esm/browser/fileReader.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
34
frontend/node_modules/tus-js-client/lib.esm/browser/fileSignature.js
generated
vendored
Normal file
34
frontend/node_modules/tus-js-client/lib.esm/browser/fileSignature.js
generated
vendored
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
import isReactNative from './isReactNative.js';
|
||||
|
||||
// TODO: Differenciate between input types
|
||||
|
||||
/**
|
||||
* Generate a fingerprint for a file which will be used the store the endpoint
|
||||
*
|
||||
* @param {File} file
|
||||
* @param {Object} options
|
||||
* @param {Function} callback
|
||||
*/
|
||||
export default function fingerprint(file, options) {
|
||||
if (isReactNative()) {
|
||||
return Promise.resolve(reactNativeFingerprint(file, options));
|
||||
}
|
||||
return Promise.resolve(['tus-br', file.name, file.type, file.size, file.lastModified, options.endpoint].join('-'));
|
||||
}
|
||||
function reactNativeFingerprint(file, options) {
|
||||
var exifHash = file.exif ? hashCode(JSON.stringify(file.exif)) : 'noexif';
|
||||
return ['tus-rn', file.name || 'noname', file.size || 'nosize', exifHash, options.endpoint].join('/');
|
||||
}
|
||||
function hashCode(str) {
|
||||
// from https://stackoverflow.com/a/8831937/151666
|
||||
var hash = 0;
|
||||
if (str.length === 0) {
|
||||
return hash;
|
||||
}
|
||||
for (var i = 0; i < str.length; i++) {
|
||||
var _char = str.charCodeAt(i);
|
||||
hash = (hash << 5) - hash + _char;
|
||||
hash &= hash; // Convert to 32bit integer
|
||||
}
|
||||
return hash;
|
||||
}
|
||||
122
frontend/node_modules/tus-js-client/lib.esm/browser/httpStack.js
generated
vendored
Normal file
122
frontend/node_modules/tus-js-client/lib.esm/browser/httpStack.js
generated
vendored
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
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); }
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
function _defineProperties(target, props) { for (var i = 0; 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); } }
|
||||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
||||
function _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); }
|
||||
var XHRHttpStack = /*#__PURE__*/function () {
|
||||
function XHRHttpStack() {
|
||||
_classCallCheck(this, XHRHttpStack);
|
||||
}
|
||||
return _createClass(XHRHttpStack, [{
|
||||
key: "createRequest",
|
||||
value: function createRequest(method, url) {
|
||||
return new Request(method, url);
|
||||
}
|
||||
}, {
|
||||
key: "getName",
|
||||
value: function getName() {
|
||||
return 'XHRHttpStack';
|
||||
}
|
||||
}]);
|
||||
}();
|
||||
export { XHRHttpStack as default };
|
||||
var Request = /*#__PURE__*/function () {
|
||||
function Request(method, url) {
|
||||
_classCallCheck(this, Request);
|
||||
this._xhr = new XMLHttpRequest();
|
||||
this._xhr.open(method, url, true);
|
||||
this._method = method;
|
||||
this._url = url;
|
||||
this._headers = {};
|
||||
}
|
||||
return _createClass(Request, [{
|
||||
key: "getMethod",
|
||||
value: function getMethod() {
|
||||
return this._method;
|
||||
}
|
||||
}, {
|
||||
key: "getURL",
|
||||
value: function getURL() {
|
||||
return this._url;
|
||||
}
|
||||
}, {
|
||||
key: "setHeader",
|
||||
value: function setHeader(header, value) {
|
||||
this._xhr.setRequestHeader(header, value);
|
||||
this._headers[header] = value;
|
||||
}
|
||||
}, {
|
||||
key: "getHeader",
|
||||
value: function getHeader(header) {
|
||||
return this._headers[header];
|
||||
}
|
||||
}, {
|
||||
key: "setProgressHandler",
|
||||
value: function setProgressHandler(progressHandler) {
|
||||
// Test support for progress events before attaching an event listener
|
||||
if (!('upload' in this._xhr)) {
|
||||
return;
|
||||
}
|
||||
this._xhr.upload.onprogress = function (e) {
|
||||
if (!e.lengthComputable) {
|
||||
return;
|
||||
}
|
||||
progressHandler(e.loaded);
|
||||
};
|
||||
}
|
||||
}, {
|
||||
key: "send",
|
||||
value: function send() {
|
||||
var _this = this;
|
||||
var body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
||||
return new Promise(function (resolve, reject) {
|
||||
_this._xhr.onload = function () {
|
||||
resolve(new Response(_this._xhr));
|
||||
};
|
||||
_this._xhr.onerror = function (err) {
|
||||
reject(err);
|
||||
};
|
||||
_this._xhr.send(body);
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "abort",
|
||||
value: function abort() {
|
||||
this._xhr.abort();
|
||||
return Promise.resolve();
|
||||
}
|
||||
}, {
|
||||
key: "getUnderlyingObject",
|
||||
value: function getUnderlyingObject() {
|
||||
return this._xhr;
|
||||
}
|
||||
}]);
|
||||
}();
|
||||
var Response = /*#__PURE__*/function () {
|
||||
function Response(xhr) {
|
||||
_classCallCheck(this, Response);
|
||||
this._xhr = xhr;
|
||||
}
|
||||
return _createClass(Response, [{
|
||||
key: "getStatus",
|
||||
value: function getStatus() {
|
||||
return this._xhr.status;
|
||||
}
|
||||
}, {
|
||||
key: "getHeader",
|
||||
value: function getHeader(header) {
|
||||
return this._xhr.getResponseHeader(header);
|
||||
}
|
||||
}, {
|
||||
key: "getBody",
|
||||
value: function getBody() {
|
||||
return this._xhr.responseText;
|
||||
}
|
||||
}, {
|
||||
key: "getUnderlyingObject",
|
||||
value: function getUnderlyingObject() {
|
||||
return this._xhr;
|
||||
}
|
||||
}]);
|
||||
}();
|
||||
50
frontend/node_modules/tus-js-client/lib.esm/browser/index.js
generated
vendored
Normal file
50
frontend/node_modules/tus-js-client/lib.esm/browser/index.js
generated
vendored
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
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); }
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
function _defineProperties(target, props) { for (var i = 0; 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); } }
|
||||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
||||
function _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); }
|
||||
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
||||
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
||||
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
||||
function _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); }
|
||||
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
||||
function 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; }
|
||||
function _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; }
|
||||
function _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; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
||||
function _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); }
|
||||
import DetailedError from '../error.js';
|
||||
import { enableDebugLog } from '../logger.js';
|
||||
import NoopUrlStorage from '../noopUrlStorage.js';
|
||||
import BaseUpload from '../upload.js';
|
||||
import FileReader from './fileReader.js';
|
||||
import fingerprint from './fileSignature.js';
|
||||
import DefaultHttpStack from './httpStack.js';
|
||||
import { WebStorageUrlStorage, canStoreURLs } from './urlStorage.js';
|
||||
var defaultOptions = _objectSpread(_objectSpread({}, BaseUpload.defaultOptions), {}, {
|
||||
httpStack: new DefaultHttpStack(),
|
||||
fileReader: new FileReader(),
|
||||
urlStorage: canStoreURLs ? new WebStorageUrlStorage() : new NoopUrlStorage(),
|
||||
fingerprint: fingerprint
|
||||
});
|
||||
var Upload = /*#__PURE__*/function (_BaseUpload) {
|
||||
function Upload() {
|
||||
var file = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
||||
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||||
_classCallCheck(this, Upload);
|
||||
options = _objectSpread(_objectSpread({}, defaultOptions), options);
|
||||
return _callSuper(this, Upload, [file, options]);
|
||||
}
|
||||
_inherits(Upload, _BaseUpload);
|
||||
return _createClass(Upload, null, [{
|
||||
key: "terminate",
|
||||
value: function terminate(url) {
|
||||
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||||
options = _objectSpread(_objectSpread({}, defaultOptions), options);
|
||||
return BaseUpload.terminate(url, options);
|
||||
}
|
||||
}]);
|
||||
}(BaseUpload); // Note: We don't reference `window` here because these classes also exist in a Web Worker's context.
|
||||
var isSupported = typeof XMLHttpRequest === 'function' && typeof Blob === 'function' && typeof Blob.prototype.slice === 'function';
|
||||
export { Upload, canStoreURLs, defaultOptions, isSupported, enableDebugLog, DefaultHttpStack, DetailedError };
|
||||
4
frontend/node_modules/tus-js-client/lib.esm/browser/isReactNative.js
generated
vendored
Normal file
4
frontend/node_modules/tus-js-client/lib.esm/browser/isReactNative.js
generated
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
var isReactNative = function isReactNative() {
|
||||
return typeof navigator !== 'undefined' && typeof navigator.product === 'string' && navigator.product.toLowerCase() === 'reactnative';
|
||||
};
|
||||
export default isReactNative;
|
||||
39
frontend/node_modules/tus-js-client/lib.esm/browser/sources/FileSource.js
generated
vendored
Normal file
39
frontend/node_modules/tus-js-client/lib.esm/browser/sources/FileSource.js
generated
vendored
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
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); }
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
function _defineProperties(target, props) { for (var i = 0; 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); } }
|
||||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
||||
function _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); }
|
||||
import isCordova from './isCordova.js';
|
||||
import readAsByteArray from './readAsByteArray.js';
|
||||
var FileSource = /*#__PURE__*/function () {
|
||||
// Make this.size a method
|
||||
function FileSource(file) {
|
||||
_classCallCheck(this, FileSource);
|
||||
this._file = file;
|
||||
this.size = file.size;
|
||||
}
|
||||
return _createClass(FileSource, [{
|
||||
key: "slice",
|
||||
value: function slice(start, end) {
|
||||
// In Apache Cordova applications, a File must be resolved using
|
||||
// FileReader instances, see
|
||||
// https://cordova.apache.org/docs/en/8.x/reference/cordova-plugin-file/index.html#read-a-file
|
||||
if (isCordova()) {
|
||||
return readAsByteArray(this._file.slice(start, end));
|
||||
}
|
||||
var value = this._file.slice(start, end);
|
||||
var done = end >= this.size;
|
||||
return Promise.resolve({
|
||||
value: value,
|
||||
done: done
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "close",
|
||||
value: function close() {
|
||||
// Nothing to do here since we don't need to release any resources.
|
||||
}
|
||||
}]);
|
||||
}();
|
||||
export { FileSource as default };
|
||||
106
frontend/node_modules/tus-js-client/lib.esm/browser/sources/StreamSource.js
generated
vendored
Normal file
106
frontend/node_modules/tus-js-client/lib.esm/browser/sources/StreamSource.js
generated
vendored
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
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); }
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
function _defineProperties(target, props) { for (var i = 0; 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); } }
|
||||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
||||
function _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); }
|
||||
function len(blobOrArray) {
|
||||
if (blobOrArray === undefined) return 0;
|
||||
if (blobOrArray.size !== undefined) return blobOrArray.size;
|
||||
return blobOrArray.length;
|
||||
}
|
||||
|
||||
/*
|
||||
Typed arrays and blobs don't have a concat method.
|
||||
This function helps StreamSource accumulate data to reach chunkSize.
|
||||
*/
|
||||
function concat(a, b) {
|
||||
if (a.concat) {
|
||||
// Is `a` an Array?
|
||||
return a.concat(b);
|
||||
}
|
||||
if (a instanceof Blob) {
|
||||
return new Blob([a, b], {
|
||||
type: a.type
|
||||
});
|
||||
}
|
||||
if (a.set) {
|
||||
// Is `a` a typed array?
|
||||
var c = new a.constructor(a.length + b.length);
|
||||
c.set(a);
|
||||
c.set(b, a.length);
|
||||
return c;
|
||||
}
|
||||
throw new Error('Unknown data type');
|
||||
}
|
||||
var StreamSource = /*#__PURE__*/function () {
|
||||
function StreamSource(reader) {
|
||||
_classCallCheck(this, StreamSource);
|
||||
this._buffer = undefined;
|
||||
this._bufferOffset = 0;
|
||||
this._reader = reader;
|
||||
this._done = false;
|
||||
}
|
||||
return _createClass(StreamSource, [{
|
||||
key: "slice",
|
||||
value: function slice(start, end) {
|
||||
if (start < this._bufferOffset) {
|
||||
return Promise.reject(new Error("Requested data is before the reader's current offset"));
|
||||
}
|
||||
return this._readUntilEnoughDataOrDone(start, end);
|
||||
}
|
||||
}, {
|
||||
key: "_readUntilEnoughDataOrDone",
|
||||
value: function _readUntilEnoughDataOrDone(start, end) {
|
||||
var _this = this;
|
||||
var hasEnoughData = end <= this._bufferOffset + len(this._buffer);
|
||||
if (this._done || hasEnoughData) {
|
||||
var value = this._getDataFromBuffer(start, end);
|
||||
var done = value == null ? this._done : false;
|
||||
return Promise.resolve({
|
||||
value: value,
|
||||
done: done
|
||||
});
|
||||
}
|
||||
return this._reader.read().then(function (_ref) {
|
||||
var value = _ref.value,
|
||||
done = _ref.done;
|
||||
if (done) {
|
||||
_this._done = true;
|
||||
} else if (_this._buffer === undefined) {
|
||||
_this._buffer = value;
|
||||
} else {
|
||||
_this._buffer = concat(_this._buffer, value);
|
||||
}
|
||||
return _this._readUntilEnoughDataOrDone(start, end);
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "_getDataFromBuffer",
|
||||
value: function _getDataFromBuffer(start, end) {
|
||||
// Remove data from buffer before `start`.
|
||||
// Data might be reread from the buffer if an upload fails, so we can only
|
||||
// safely delete data when it comes *before* what is currently being read.
|
||||
if (start > this._bufferOffset) {
|
||||
this._buffer = this._buffer.slice(start - this._bufferOffset);
|
||||
this._bufferOffset = start;
|
||||
}
|
||||
// If the buffer is empty after removing old data, all data has been read.
|
||||
var hasAllDataBeenRead = len(this._buffer) === 0;
|
||||
if (this._done && hasAllDataBeenRead) {
|
||||
return null;
|
||||
}
|
||||
// We already removed data before `start`, so we just return the first
|
||||
// chunk from the buffer.
|
||||
return this._buffer.slice(0, end - start);
|
||||
}
|
||||
}, {
|
||||
key: "close",
|
||||
value: function close() {
|
||||
if (this._reader.cancel) {
|
||||
this._reader.cancel();
|
||||
}
|
||||
}
|
||||
}]);
|
||||
}();
|
||||
export { StreamSource as default };
|
||||
4
frontend/node_modules/tus-js-client/lib.esm/browser/sources/isCordova.js
generated
vendored
Normal file
4
frontend/node_modules/tus-js-client/lib.esm/browser/sources/isCordova.js
generated
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
var isCordova = function isCordova() {
|
||||
return typeof window !== 'undefined' && (typeof window.PhoneGap !== 'undefined' || typeof window.Cordova !== 'undefined' || typeof window.cordova !== 'undefined');
|
||||
};
|
||||
export default isCordova;
|
||||
20
frontend/node_modules/tus-js-client/lib.esm/browser/sources/readAsByteArray.js
generated
vendored
Normal file
20
frontend/node_modules/tus-js-client/lib.esm/browser/sources/readAsByteArray.js
generated
vendored
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
/**
|
||||
* readAsByteArray converts a File object to a Uint8Array.
|
||||
* This function is only used on the Apache Cordova platform.
|
||||
* See https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/index.html#read-a-file
|
||||
*/
|
||||
export default function readAsByteArray(chunk) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
var reader = new FileReader();
|
||||
reader.onload = function () {
|
||||
var value = new Uint8Array(reader.result);
|
||||
resolve({
|
||||
value: value
|
||||
});
|
||||
};
|
||||
reader.onerror = function (err) {
|
||||
reject(err);
|
||||
};
|
||||
reader.readAsArrayBuffer(chunk);
|
||||
});
|
||||
}
|
||||
20
frontend/node_modules/tus-js-client/lib.esm/browser/uriToBlob.js
generated
vendored
Normal file
20
frontend/node_modules/tus-js-client/lib.esm/browser/uriToBlob.js
generated
vendored
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
/**
|
||||
* uriToBlob resolves a URI to a Blob object. This is used for
|
||||
* React Native to retrieve a file (identified by a file://
|
||||
* URI) as a blob.
|
||||
*/
|
||||
export default function uriToBlob(uri) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.responseType = 'blob';
|
||||
xhr.onload = function () {
|
||||
var blob = xhr.response;
|
||||
resolve(blob);
|
||||
};
|
||||
xhr.onerror = function (err) {
|
||||
reject(err);
|
||||
};
|
||||
xhr.open('GET', uri);
|
||||
xhr.send();
|
||||
});
|
||||
}
|
||||
80
frontend/node_modules/tus-js-client/lib.esm/browser/urlStorage.js
generated
vendored
Normal file
80
frontend/node_modules/tus-js-client/lib.esm/browser/urlStorage.js
generated
vendored
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
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); }
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
function _defineProperties(target, props) { for (var i = 0; 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); } }
|
||||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
||||
function _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); }
|
||||
var hasStorage = false;
|
||||
try {
|
||||
// Note: localStorage does not exist in the Web Worker's context, so we must use window here.
|
||||
hasStorage = 'localStorage' in window;
|
||||
|
||||
// Attempt to store and read entries from the local storage to detect Private
|
||||
// Mode on Safari on iOS (see #49)
|
||||
// If the key was not used before, we remove it from local storage again to
|
||||
// not cause confusion where the entry came from.
|
||||
var key = 'tusSupport';
|
||||
var originalValue = localStorage.getItem(key);
|
||||
localStorage.setItem(key, originalValue);
|
||||
if (originalValue === null) localStorage.removeItem(key);
|
||||
} catch (e) {
|
||||
// If we try to access localStorage inside a sandboxed iframe, a SecurityError
|
||||
// is thrown. When in private mode on iOS Safari, a QuotaExceededError is
|
||||
// thrown (see #49)
|
||||
if (e.code === e.SECURITY_ERR || e.code === e.QUOTA_EXCEEDED_ERR) {
|
||||
hasStorage = false;
|
||||
} else {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
export var canStoreURLs = hasStorage;
|
||||
export var WebStorageUrlStorage = /*#__PURE__*/function () {
|
||||
function WebStorageUrlStorage() {
|
||||
_classCallCheck(this, WebStorageUrlStorage);
|
||||
}
|
||||
return _createClass(WebStorageUrlStorage, [{
|
||||
key: "findAllUploads",
|
||||
value: function findAllUploads() {
|
||||
var results = this._findEntries('tus::');
|
||||
return Promise.resolve(results);
|
||||
}
|
||||
}, {
|
||||
key: "findUploadsByFingerprint",
|
||||
value: function findUploadsByFingerprint(fingerprint) {
|
||||
var results = this._findEntries("tus::".concat(fingerprint, "::"));
|
||||
return Promise.resolve(results);
|
||||
}
|
||||
}, {
|
||||
key: "removeUpload",
|
||||
value: function removeUpload(urlStorageKey) {
|
||||
localStorage.removeItem(urlStorageKey);
|
||||
return Promise.resolve();
|
||||
}
|
||||
}, {
|
||||
key: "addUpload",
|
||||
value: function addUpload(fingerprint, upload) {
|
||||
var id = Math.round(Math.random() * 1e12);
|
||||
var key = "tus::".concat(fingerprint, "::").concat(id);
|
||||
localStorage.setItem(key, JSON.stringify(upload));
|
||||
return Promise.resolve(key);
|
||||
}
|
||||
}, {
|
||||
key: "_findEntries",
|
||||
value: function _findEntries(prefix) {
|
||||
var results = [];
|
||||
for (var i = 0; i < localStorage.length; i++) {
|
||||
var _key = localStorage.key(i);
|
||||
if (_key.indexOf(prefix) !== 0) continue;
|
||||
try {
|
||||
var upload = JSON.parse(localStorage.getItem(_key));
|
||||
upload.urlStorageKey = _key;
|
||||
results.push(upload);
|
||||
} catch (_e) {
|
||||
// The JSON parse error is intentionally ignored here, so a malformed
|
||||
// entry in the storage cannot prevent an upload.
|
||||
}
|
||||
}
|
||||
return results;
|
||||
}
|
||||
}]);
|
||||
}();
|
||||
45
frontend/node_modules/tus-js-client/lib.esm/error.js
generated
vendored
Normal file
45
frontend/node_modules/tus-js-client/lib.esm/error.js
generated
vendored
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
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); }
|
||||
function _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); } }
|
||||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
||||
function _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); }
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
||||
function _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); }
|
||||
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
||||
function _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); }
|
||||
function _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); }
|
||||
function _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; }
|
||||
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
||||
function _isNativeFunction(fn) { try { return Function.toString.call(fn).indexOf("[native code]") !== -1; } catch (e) { return typeof fn === "function"; } }
|
||||
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
||||
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
||||
var DetailedError = /*#__PURE__*/function (_Error) {
|
||||
function DetailedError(message) {
|
||||
var _this;
|
||||
var causingErr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
||||
var req = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
||||
var res = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
||||
_classCallCheck(this, DetailedError);
|
||||
_this = _callSuper(this, DetailedError, [message]);
|
||||
_this.originalRequest = req;
|
||||
_this.originalResponse = res;
|
||||
_this.causingError = causingErr;
|
||||
if (causingErr != null) {
|
||||
message += ", caused by ".concat(causingErr.toString());
|
||||
}
|
||||
if (req != null) {
|
||||
var requestId = req.getHeader('X-Request-ID') || 'n/a';
|
||||
var method = req.getMethod();
|
||||
var url = req.getURL();
|
||||
var status = res ? res.getStatus() : 'n/a';
|
||||
var body = res ? res.getBody() || '' : 'n/a';
|
||||
message += ", originated from request (method: ".concat(method, ", url: ").concat(url, ", response code: ").concat(status, ", response text: ").concat(body, ", request id: ").concat(requestId, ")");
|
||||
}
|
||||
_this.message = message;
|
||||
return _this;
|
||||
}
|
||||
_inherits(DetailedError, _Error);
|
||||
return _createClass(DetailedError);
|
||||
}( /*#__PURE__*/_wrapNativeSuper(Error));
|
||||
export default DetailedError;
|
||||
8
frontend/node_modules/tus-js-client/lib.esm/logger.js
generated
vendored
Normal file
8
frontend/node_modules/tus-js-client/lib.esm/logger.js
generated
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
var isEnabled = false;
|
||||
export function enableDebugLog() {
|
||||
isEnabled = true;
|
||||
}
|
||||
export function log(msg) {
|
||||
if (!isEnabled) return;
|
||||
console.log(msg);
|
||||
}
|
||||
36
frontend/node_modules/tus-js-client/lib.esm/node/fileReader.js
generated
vendored
Normal file
36
frontend/node_modules/tus-js-client/lib.esm/node/fileReader.js
generated
vendored
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
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); }
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
function _defineProperties(target, props) { for (var i = 0; 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); } }
|
||||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
||||
function _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); }
|
||||
import { ReadStream } from 'fs';
|
||||
import isStream from 'is-stream';
|
||||
import BufferSource from './sources/BufferSource.js';
|
||||
import getFileSource from './sources/FileSource.js';
|
||||
import StreamSource from './sources/StreamSource.js';
|
||||
var FileReader = /*#__PURE__*/function () {
|
||||
function FileReader() {
|
||||
_classCallCheck(this, FileReader);
|
||||
}
|
||||
return _createClass(FileReader, [{
|
||||
key: "openFile",
|
||||
value: function openFile(input, chunkSize) {
|
||||
if (Buffer.isBuffer(input)) {
|
||||
return Promise.resolve(new BufferSource(input));
|
||||
}
|
||||
if (input instanceof ReadStream && input.path != null) {
|
||||
return getFileSource(input);
|
||||
}
|
||||
if (isStream.readable(input)) {
|
||||
chunkSize = Number(chunkSize);
|
||||
if (!Number.isFinite(chunkSize)) {
|
||||
return Promise.reject(new Error('cannot create source for stream without a finite value for the `chunkSize` option; specify a chunkSize to control the memory consumption'));
|
||||
}
|
||||
return Promise.resolve(new StreamSource(input));
|
||||
}
|
||||
return Promise.reject(new Error('source object may only be an instance of Buffer or Readable in this environment'));
|
||||
}
|
||||
}]);
|
||||
}();
|
||||
export { FileReader as default };
|
||||
36
frontend/node_modules/tus-js-client/lib.esm/node/fileSignature.js
generated
vendored
Normal file
36
frontend/node_modules/tus-js-client/lib.esm/node/fileSignature.js
generated
vendored
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
import { createHash } from 'crypto';
|
||||
import * as fs from 'fs';
|
||||
import * as path from 'path';
|
||||
|
||||
/**
|
||||
* Generate a fingerprint for a file which will be used the store the endpoint
|
||||
*
|
||||
* @param {File} file
|
||||
* @param {Object} options
|
||||
*/
|
||||
export default function fingerprint(file, options) {
|
||||
if (Buffer.isBuffer(file)) {
|
||||
// create MD5 hash for buffer type
|
||||
var blockSize = 64 * 1024; // 64kb
|
||||
var content = file.slice(0, Math.min(blockSize, file.length));
|
||||
var hash = createHash('md5').update(content).digest('hex');
|
||||
var ret = ['node-buffer', hash, file.length, options.endpoint].join('-');
|
||||
return Promise.resolve(ret);
|
||||
}
|
||||
if (file instanceof fs.ReadStream && file.path != null) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
var name = path.resolve(file.path);
|
||||
fs.stat(file.path, function (err, info) {
|
||||
if (err) {
|
||||
reject(err);
|
||||
return;
|
||||
}
|
||||
var ret = ['node-file', name, info.size, info.mtime.getTime(), options.endpoint].join('-');
|
||||
resolve(ret);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// fingerprint cannot be computed for file input type
|
||||
return Promise.resolve(null);
|
||||
}
|
||||
237
frontend/node_modules/tus-js-client/lib.esm/node/httpStack.js
generated
vendored
Normal file
237
frontend/node_modules/tus-js-client/lib.esm/node/httpStack.js
generated
vendored
Normal file
|
|
@ -0,0 +1,237 @@
|
|||
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
||||
function _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); }
|
||||
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
||||
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
||||
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
||||
function _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); }
|
||||
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
||||
function 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; }
|
||||
function _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; }
|
||||
function _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; }
|
||||
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); }
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
function _defineProperties(target, props) { for (var i = 0; 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); } }
|
||||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
||||
function _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); }
|
||||
// The url.parse method is superseeded by the url.URL constructor,
|
||||
// but it is still included in Node.js
|
||||
import * as http from 'http';
|
||||
import * as https from 'https';
|
||||
import { Readable, Transform } from 'stream';
|
||||
import { parse } from 'url';
|
||||
import throttle from 'lodash.throttle';
|
||||
var NodeHttpStack = /*#__PURE__*/function () {
|
||||
function NodeHttpStack() {
|
||||
var requestOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||
_classCallCheck(this, NodeHttpStack);
|
||||
this._requestOptions = requestOptions;
|
||||
}
|
||||
return _createClass(NodeHttpStack, [{
|
||||
key: "createRequest",
|
||||
value: function createRequest(method, url) {
|
||||
return new Request(method, url, this._requestOptions);
|
||||
}
|
||||
}, {
|
||||
key: "getName",
|
||||
value: function getName() {
|
||||
return 'NodeHttpStack';
|
||||
}
|
||||
}]);
|
||||
}();
|
||||
export { NodeHttpStack as default };
|
||||
var Request = /*#__PURE__*/function () {
|
||||
function Request(method, url, options) {
|
||||
_classCallCheck(this, Request);
|
||||
this._method = method;
|
||||
this._url = url;
|
||||
this._headers = {};
|
||||
this._request = null;
|
||||
this._progressHandler = function () {};
|
||||
this._requestOptions = options || {};
|
||||
}
|
||||
return _createClass(Request, [{
|
||||
key: "getMethod",
|
||||
value: function getMethod() {
|
||||
return this._method;
|
||||
}
|
||||
}, {
|
||||
key: "getURL",
|
||||
value: function getURL() {
|
||||
return this._url;
|
||||
}
|
||||
}, {
|
||||
key: "setHeader",
|
||||
value: function setHeader(header, value) {
|
||||
this._headers[header] = value;
|
||||
}
|
||||
}, {
|
||||
key: "getHeader",
|
||||
value: function getHeader(header) {
|
||||
return this._headers[header];
|
||||
}
|
||||
}, {
|
||||
key: "setProgressHandler",
|
||||
value: function setProgressHandler(progressHandler) {
|
||||
this._progressHandler = progressHandler;
|
||||
}
|
||||
}, {
|
||||
key: "send",
|
||||
value: function send() {
|
||||
var _this = this;
|
||||
var body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
||||
return new Promise(function (resolve, reject) {
|
||||
var options = _objectSpread(_objectSpread(_objectSpread({}, parse(_this._url)), _this._requestOptions), {}, {
|
||||
method: _this._method,
|
||||
headers: _objectSpread(_objectSpread({}, _this._requestOptions.headers || {}), _this._headers)
|
||||
});
|
||||
if (body !== null && body !== void 0 && body.size) {
|
||||
options.headers['Content-Length'] = body.size;
|
||||
}
|
||||
var httpModule = options.protocol === 'https:' ? https : http;
|
||||
_this._request = httpModule.request(options);
|
||||
var req = _this._request;
|
||||
req.on('response', function (res) {
|
||||
var resChunks = [];
|
||||
res.on('data', function (data) {
|
||||
resChunks.push(data);
|
||||
});
|
||||
res.on('end', function () {
|
||||
var responseText = Buffer.concat(resChunks).toString('utf8');
|
||||
resolve(new Response(res, responseText));
|
||||
});
|
||||
});
|
||||
req.on('error', function (err) {
|
||||
reject(err);
|
||||
});
|
||||
if (body instanceof Readable) {
|
||||
// Readable stream are piped through a PassThrough instance, which
|
||||
// counts the number of bytes passed through. This is used, for example,
|
||||
// when an fs.ReadStream is provided to tus-js-client.
|
||||
body.pipe(new ProgressEmitter(_this._progressHandler)).pipe(req);
|
||||
} else if (body instanceof Uint8Array) {
|
||||
// For Buffers and Uint8Arrays (in Node.js all buffers are instances of Uint8Array),
|
||||
// we write chunks of the buffer to the stream and use that to track the progress.
|
||||
// This is used when either a Buffer or a normal readable stream is provided
|
||||
// to tus-js-client.
|
||||
writeBufferToStreamWithProgress(req, body, _this._progressHandler);
|
||||
} else {
|
||||
req.end(body);
|
||||
}
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "abort",
|
||||
value: function abort() {
|
||||
if (this._request !== null) this._request.abort();
|
||||
return Promise.resolve();
|
||||
}
|
||||
}, {
|
||||
key: "getUnderlyingObject",
|
||||
value: function getUnderlyingObject() {
|
||||
return this._request;
|
||||
}
|
||||
}]);
|
||||
}();
|
||||
var Response = /*#__PURE__*/function () {
|
||||
function Response(res, body) {
|
||||
_classCallCheck(this, Response);
|
||||
this._response = res;
|
||||
this._body = body;
|
||||
}
|
||||
return _createClass(Response, [{
|
||||
key: "getStatus",
|
||||
value: function getStatus() {
|
||||
return this._response.statusCode;
|
||||
}
|
||||
}, {
|
||||
key: "getHeader",
|
||||
value: function getHeader(header) {
|
||||
return this._response.headers[header.toLowerCase()];
|
||||
}
|
||||
}, {
|
||||
key: "getBody",
|
||||
value: function getBody() {
|
||||
return this._body;
|
||||
}
|
||||
}, {
|
||||
key: "getUnderlyingObject",
|
||||
value: function getUnderlyingObject() {
|
||||
return this._response;
|
||||
}
|
||||
}]);
|
||||
}(); // ProgressEmitter is a simple PassThrough-style transform stream which keeps
|
||||
// track of the number of bytes which have been piped through it and will
|
||||
// invoke the `onprogress` function whenever new number are available.
|
||||
var ProgressEmitter = /*#__PURE__*/function (_Transform) {
|
||||
function ProgressEmitter(onprogress) {
|
||||
var _this2;
|
||||
_classCallCheck(this, ProgressEmitter);
|
||||
_this2 = _callSuper(this, ProgressEmitter);
|
||||
|
||||
// The _onprogress property will be invoked, whenever a chunk is piped
|
||||
// through this transformer. Since chunks are usually quite small (64kb),
|
||||
// these calls can occur frequently, especially when you have a good
|
||||
// connection to the remote server. Therefore, we are throtteling them to
|
||||
// prevent accessive function calls.
|
||||
_this2._onprogress = throttle(onprogress, 100, {
|
||||
leading: true,
|
||||
trailing: false
|
||||
});
|
||||
_this2._position = 0;
|
||||
return _this2;
|
||||
}
|
||||
_inherits(ProgressEmitter, _Transform);
|
||||
return _createClass(ProgressEmitter, [{
|
||||
key: "_transform",
|
||||
value: function _transform(chunk, _encoding, callback) {
|
||||
this._position += chunk.length;
|
||||
this._onprogress(this._position);
|
||||
callback(null, chunk);
|
||||
}
|
||||
}]);
|
||||
}(Transform); // writeBufferToStreamWithProgress writes chunks from `source` (either a
|
||||
// Buffer or Uint8Array) to the readable stream `stream`.
|
||||
// The size of the chunk depends on the stream's highWaterMark to fill the
|
||||
// stream's internal buffer as best as possible.
|
||||
// If the internal buffer is full, the callback `onprogress` will be invoked
|
||||
// to notify about the write progress. Writing will be resumed once the internal
|
||||
// buffer is empty, as indicated by the emitted `drain` event.
|
||||
// See https://nodejs.org/docs/latest/api/stream.html#buffering for more details
|
||||
// on the buffering behavior of streams.
|
||||
var writeBufferToStreamWithProgress = function writeBufferToStreamWithProgress(stream, source, onprogress) {
|
||||
onprogress = throttle(onprogress, 100, {
|
||||
leading: true,
|
||||
trailing: false
|
||||
});
|
||||
var offset = 0;
|
||||
function writeNextChunk() {
|
||||
// Take at most the amount of bytes from highWaterMark. This should fill the streams
|
||||
// internal buffer already.
|
||||
var chunkSize = Math.min(stream.writableHighWaterMark, source.length - offset);
|
||||
|
||||
// Note: We use subarray instead of slice because it works without copying data for
|
||||
// Buffers and Uint8Arrays.
|
||||
var chunk = source.subarray(offset, offset + chunkSize);
|
||||
offset += chunk.length;
|
||||
|
||||
// `write` returns true if the internal buffer is not full and we should write more.
|
||||
// If the stream is destroyed because the request is aborted, it will return false
|
||||
// and no 'drain' event is emitted, so won't continue writing data.
|
||||
var canContinue = stream.write(chunk);
|
||||
if (!canContinue) {
|
||||
// If the buffer is full, wait for the 'drain' event to write more data.
|
||||
stream.once('drain', writeNextChunk);
|
||||
onprogress(offset);
|
||||
} else if (offset < source.length) {
|
||||
// If there's still data to write and the buffer is not full, write next chunk.
|
||||
writeNextChunk();
|
||||
} else {
|
||||
// If all data has been written, close the stream if needed, and emit a 'finish' event.
|
||||
stream.end();
|
||||
}
|
||||
}
|
||||
|
||||
// Start writing the first chunk.
|
||||
writeNextChunk();
|
||||
};
|
||||
54
frontend/node_modules/tus-js-client/lib.esm/node/index.js
generated
vendored
Normal file
54
frontend/node_modules/tus-js-client/lib.esm/node/index.js
generated
vendored
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
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); }
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
function _defineProperties(target, props) { for (var i = 0; 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); } }
|
||||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
||||
function _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); }
|
||||
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
||||
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
||||
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
||||
function _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); }
|
||||
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
||||
function 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; }
|
||||
function _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; }
|
||||
function _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; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
||||
function _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); }
|
||||
import DetailedError from '../error.js';
|
||||
import { enableDebugLog } from '../logger.js';
|
||||
import NoopUrlStorage from '../noopUrlStorage.js';
|
||||
import BaseUpload from '../upload.js';
|
||||
import FileReader from './fileReader.js';
|
||||
import fingerprint from './fileSignature.js';
|
||||
import DefaultHttpStack from './httpStack.js';
|
||||
import StreamSource from './sources/StreamSource.js';
|
||||
import { FileUrlStorage, canStoreURLs } from './urlStorage.js';
|
||||
var defaultOptions = _objectSpread(_objectSpread({}, BaseUpload.defaultOptions), {}, {
|
||||
httpStack: new DefaultHttpStack(),
|
||||
fileReader: new FileReader(),
|
||||
urlStorage: new NoopUrlStorage(),
|
||||
fingerprint: fingerprint
|
||||
});
|
||||
var Upload = /*#__PURE__*/function (_BaseUpload) {
|
||||
function Upload() {
|
||||
var file = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
||||
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||||
_classCallCheck(this, Upload);
|
||||
options = _objectSpread(_objectSpread({}, defaultOptions), options);
|
||||
return _callSuper(this, Upload, [file, options]);
|
||||
}
|
||||
_inherits(Upload, _BaseUpload);
|
||||
return _createClass(Upload, null, [{
|
||||
key: "terminate",
|
||||
value: function terminate(url) {
|
||||
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||||
options = _objectSpread(_objectSpread({}, defaultOptions), options);
|
||||
return BaseUpload.terminate(url, options);
|
||||
}
|
||||
}]);
|
||||
}(BaseUpload); // The Node.js environment does not have restrictions which may cause
|
||||
// tus-js-client not to function.
|
||||
var isSupported = true;
|
||||
export { Upload, defaultOptions, isSupported,
|
||||
// Make FileUrlStorage module available as it will not be set by default.
|
||||
FileUrlStorage, canStoreURLs, enableDebugLog, DefaultHttpStack, DetailedError, StreamSource };
|
||||
29
frontend/node_modules/tus-js-client/lib.esm/node/sources/BufferSource.js
generated
vendored
Normal file
29
frontend/node_modules/tus-js-client/lib.esm/node/sources/BufferSource.js
generated
vendored
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
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); }
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
function _defineProperties(target, props) { for (var i = 0; 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); } }
|
||||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
||||
function _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); }
|
||||
var BufferSource = /*#__PURE__*/function () {
|
||||
function BufferSource(buffer) {
|
||||
_classCallCheck(this, BufferSource);
|
||||
this._buffer = buffer;
|
||||
this.size = buffer.length;
|
||||
}
|
||||
return _createClass(BufferSource, [{
|
||||
key: "slice",
|
||||
value: function slice(start, end) {
|
||||
var value = this._buffer.slice(start, end);
|
||||
value.size = value.length;
|
||||
var done = end >= this.size;
|
||||
return Promise.resolve({
|
||||
value: value,
|
||||
done: done
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "close",
|
||||
value: function close() {}
|
||||
}]);
|
||||
}();
|
||||
export { BufferSource as default };
|
||||
89
frontend/node_modules/tus-js-client/lib.esm/node/sources/FileSource.js
generated
vendored
Normal file
89
frontend/node_modules/tus-js-client/lib.esm/node/sources/FileSource.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
171
frontend/node_modules/tus-js-client/lib.esm/node/sources/StreamSource.js
generated
vendored
Normal file
171
frontend/node_modules/tus-js-client/lib.esm/node/sources/StreamSource.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
169
frontend/node_modules/tus-js-client/lib.esm/node/urlStorage.js
generated
vendored
Normal file
169
frontend/node_modules/tus-js-client/lib.esm/node/urlStorage.js
generated
vendored
Normal file
|
|
@ -0,0 +1,169 @@
|
|||
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); }
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
function _defineProperties(target, props) { for (var i = 0; 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); } }
|
||||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
||||
function _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); }
|
||||
import { readFile, writeFile } from 'fs';
|
||||
import combineErrors from 'combine-errors';
|
||||
import * as lockfile from 'proper-lockfile';
|
||||
export var canStoreURLs = true;
|
||||
export var FileUrlStorage = /*#__PURE__*/function () {
|
||||
function FileUrlStorage(filePath) {
|
||||
_classCallCheck(this, FileUrlStorage);
|
||||
this.path = filePath;
|
||||
}
|
||||
return _createClass(FileUrlStorage, [{
|
||||
key: "findAllUploads",
|
||||
value: function findAllUploads() {
|
||||
var _this = this;
|
||||
return new Promise(function (resolve, reject) {
|
||||
_this._getItems('tus::', function (err, results) {
|
||||
if (err) reject(err);else resolve(results);
|
||||
});
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "findUploadsByFingerprint",
|
||||
value: function findUploadsByFingerprint(fingerprint) {
|
||||
var _this2 = this;
|
||||
return new Promise(function (resolve, reject) {
|
||||
_this2._getItems("tus::".concat(fingerprint), function (err, results) {
|
||||
if (err) reject(err);else resolve(results);
|
||||
});
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "removeUpload",
|
||||
value: function removeUpload(urlStorageKey) {
|
||||
var _this3 = this;
|
||||
return new Promise(function (resolve, reject) {
|
||||
_this3._removeItem(urlStorageKey, function (err) {
|
||||
if (err) reject(err);else resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "addUpload",
|
||||
value: function addUpload(fingerprint, upload) {
|
||||
var _this4 = this;
|
||||
var id = Math.round(Math.random() * 1e12);
|
||||
var key = "tus::".concat(fingerprint, "::").concat(id);
|
||||
return new Promise(function (resolve, reject) {
|
||||
_this4._setItem(key, upload, function (err) {
|
||||
if (err) reject(err);else resolve(key);
|
||||
});
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "_setItem",
|
||||
value: function _setItem(key, value, cb) {
|
||||
var _this5 = this;
|
||||
lockfile.lock(this.path, this._lockfileOptions()).then(function (release) {
|
||||
cb = _this5._releaseAndCb(release, cb);
|
||||
_this5._getData(function (err, data) {
|
||||
if (err) {
|
||||
cb(err);
|
||||
return;
|
||||
}
|
||||
data[key] = value;
|
||||
_this5._writeData(data, function (err2) {
|
||||
return cb(err2);
|
||||
});
|
||||
});
|
||||
})["catch"](cb);
|
||||
}
|
||||
}, {
|
||||
key: "_getItems",
|
||||
value: function _getItems(prefix, cb) {
|
||||
this._getData(function (err, data) {
|
||||
if (err) {
|
||||
cb(err);
|
||||
return;
|
||||
}
|
||||
var results = Object.keys(data).filter(function (key) {
|
||||
return key.startsWith(prefix);
|
||||
}).map(function (key) {
|
||||
var obj = data[key];
|
||||
obj.urlStorageKey = key;
|
||||
return obj;
|
||||
});
|
||||
cb(null, results);
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "_removeItem",
|
||||
value: function _removeItem(key, cb) {
|
||||
var _this6 = this;
|
||||
lockfile.lock(this.path, this._lockfileOptions()).then(function (release) {
|
||||
cb = _this6._releaseAndCb(release, cb);
|
||||
_this6._getData(function (err, data) {
|
||||
if (err) {
|
||||
cb(err);
|
||||
return;
|
||||
}
|
||||
delete data[key];
|
||||
_this6._writeData(data, function (err2) {
|
||||
return cb(err2);
|
||||
});
|
||||
});
|
||||
})["catch"](cb);
|
||||
}
|
||||
}, {
|
||||
key: "_lockfileOptions",
|
||||
value: function _lockfileOptions() {
|
||||
return {
|
||||
realpath: false,
|
||||
retries: {
|
||||
retries: 5,
|
||||
minTimeout: 20
|
||||
}
|
||||
};
|
||||
}
|
||||
}, {
|
||||
key: "_releaseAndCb",
|
||||
value: function _releaseAndCb(release, cb) {
|
||||
return function (err) {
|
||||
if (err) {
|
||||
release().then(function () {
|
||||
return cb(err);
|
||||
})["catch"](function (releaseErr) {
|
||||
return cb(combineErrors([err, releaseErr]));
|
||||
});
|
||||
return;
|
||||
}
|
||||
release().then(cb)["catch"](cb);
|
||||
};
|
||||
}
|
||||
}, {
|
||||
key: "_writeData",
|
||||
value: function _writeData(data, cb) {
|
||||
var opts = {
|
||||
encoding: 'utf8',
|
||||
mode: 432,
|
||||
flag: 'w'
|
||||
};
|
||||
writeFile(this.path, JSON.stringify(data), opts, function (err) {
|
||||
return cb(err);
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "_getData",
|
||||
value: function _getData(cb) {
|
||||
readFile(this.path, 'utf8', function (err, data) {
|
||||
if (err) {
|
||||
// return empty data if file does not exist
|
||||
if (err.code === 'ENOENT') cb(null, {});else cb(err);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
data = !data.trim().length ? {} : JSON.parse(data);
|
||||
} catch (error) {
|
||||
cb(error);
|
||||
return;
|
||||
}
|
||||
cb(null, data);
|
||||
});
|
||||
}
|
||||
}]);
|
||||
}();
|
||||
33
frontend/node_modules/tus-js-client/lib.esm/noopUrlStorage.js
generated
vendored
Normal file
33
frontend/node_modules/tus-js-client/lib.esm/noopUrlStorage.js
generated
vendored
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
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); }
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
function _defineProperties(target, props) { for (var i = 0; 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); } }
|
||||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
||||
function _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); }
|
||||
var NoopUrlStorage = /*#__PURE__*/function () {
|
||||
function NoopUrlStorage() {
|
||||
_classCallCheck(this, NoopUrlStorage);
|
||||
}
|
||||
return _createClass(NoopUrlStorage, [{
|
||||
key: "listAllUploads",
|
||||
value: function listAllUploads() {
|
||||
return Promise.resolve([]);
|
||||
}
|
||||
}, {
|
||||
key: "findUploadsByFingerprint",
|
||||
value: function findUploadsByFingerprint(_fingerprint) {
|
||||
return Promise.resolve([]);
|
||||
}
|
||||
}, {
|
||||
key: "removeUpload",
|
||||
value: function removeUpload(_urlStorageKey) {
|
||||
return Promise.resolve();
|
||||
}
|
||||
}, {
|
||||
key: "addUpload",
|
||||
value: function addUpload(_fingerprint, _upload) {
|
||||
return Promise.resolve(null);
|
||||
}
|
||||
}]);
|
||||
}();
|
||||
export { NoopUrlStorage as default };
|
||||
1081
frontend/node_modules/tus-js-client/lib.esm/upload.js
generated
vendored
Normal file
1081
frontend/node_modules/tus-js-client/lib.esm/upload.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
19
frontend/node_modules/tus-js-client/lib.esm/uuid.js
generated
vendored
Normal file
19
frontend/node_modules/tus-js-client/lib.esm/uuid.js
generated
vendored
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
/**
|
||||
* Generate a UUID v4 based on random numbers. We intentioanlly use the less
|
||||
* secure Math.random function here since the more secure crypto.getRandomNumbers
|
||||
* is not available on all platforms.
|
||||
* This is not a problem for us since we use the UUID only for generating a
|
||||
* request ID, so we can correlate server logs to client errors.
|
||||
*
|
||||
* This function is taken from following site:
|
||||
* https://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript
|
||||
*
|
||||
* @return {string} The generate UUID
|
||||
*/
|
||||
export default function uuid() {
|
||||
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
|
||||
var r = Math.random() * 16 | 0;
|
||||
var v = c === 'x' ? r : r & 0x3 | 0x8;
|
||||
return v.toString(16);
|
||||
});
|
||||
}
|
||||
51
frontend/node_modules/tus-js-client/lib/browser/fileReader.js
generated
vendored
Normal file
51
frontend/node_modules/tus-js-client/lib/browser/fileReader.js
generated
vendored
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
import isReactNative from './isReactNative.js'
|
||||
import uriToBlob from './uriToBlob.js'
|
||||
|
||||
import FileSource from './sources/FileSource.js'
|
||||
import StreamSource from './sources/StreamSource.js'
|
||||
|
||||
export default class FileReader {
|
||||
async openFile(input, chunkSize) {
|
||||
// In React Native, when user selects a file, instead of a File or Blob,
|
||||
// you usually get a file object {} with a uri property that contains
|
||||
// a local path to the file. We use XMLHttpRequest to fetch
|
||||
// the file blob, before uploading with tus.
|
||||
if (isReactNative() && input && typeof input.uri !== 'undefined') {
|
||||
try {
|
||||
const blob = await uriToBlob(input.uri)
|
||||
return new FileSource(blob)
|
||||
} catch (err) {
|
||||
throw new Error(
|
||||
`tus: cannot fetch \`file.uri\` as Blob, make sure the uri is correct and accessible. ${err}`,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// Since we emulate the Blob type in our tests (not all target browsers
|
||||
// support it), we cannot use `instanceof` for testing whether the input value
|
||||
// can be handled. Instead, we simply check is the slice() function and the
|
||||
// size property are available.
|
||||
if (typeof input.slice === 'function' && typeof input.size !== 'undefined') {
|
||||
return Promise.resolve(new FileSource(input))
|
||||
}
|
||||
|
||||
if (typeof input.read === 'function') {
|
||||
chunkSize = Number(chunkSize)
|
||||
if (!Number.isFinite(chunkSize)) {
|
||||
return Promise.reject(
|
||||
new Error(
|
||||
'cannot create source for stream without a finite value for the `chunkSize` option',
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
return Promise.resolve(new StreamSource(input, chunkSize))
|
||||
}
|
||||
|
||||
return Promise.reject(
|
||||
new Error(
|
||||
'source object may only be an instance of File, Blob, or Reader in this environment',
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
41
frontend/node_modules/tus-js-client/lib/browser/fileSignature.js
generated
vendored
Normal file
41
frontend/node_modules/tus-js-client/lib/browser/fileSignature.js
generated
vendored
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
import isReactNative from './isReactNative.js'
|
||||
|
||||
// TODO: Differenciate between input types
|
||||
|
||||
/**
|
||||
* Generate a fingerprint for a file which will be used the store the endpoint
|
||||
*
|
||||
* @param {File} file
|
||||
* @param {Object} options
|
||||
* @param {Function} callback
|
||||
*/
|
||||
export default function fingerprint(file, options) {
|
||||
if (isReactNative()) {
|
||||
return Promise.resolve(reactNativeFingerprint(file, options))
|
||||
}
|
||||
|
||||
return Promise.resolve(
|
||||
['tus-br', file.name, file.type, file.size, file.lastModified, options.endpoint].join('-'),
|
||||
)
|
||||
}
|
||||
|
||||
function reactNativeFingerprint(file, options) {
|
||||
const exifHash = file.exif ? hashCode(JSON.stringify(file.exif)) : 'noexif'
|
||||
return ['tus-rn', file.name || 'noname', file.size || 'nosize', exifHash, options.endpoint].join(
|
||||
'/',
|
||||
)
|
||||
}
|
||||
|
||||
function hashCode(str) {
|
||||
// from https://stackoverflow.com/a/8831937/151666
|
||||
let hash = 0
|
||||
if (str.length === 0) {
|
||||
return hash
|
||||
}
|
||||
for (let i = 0; i < str.length; i++) {
|
||||
const char = str.charCodeAt(i)
|
||||
hash = (hash << 5) - hash + char
|
||||
hash &= hash // Convert to 32bit integer
|
||||
}
|
||||
return hash
|
||||
}
|
||||
97
frontend/node_modules/tus-js-client/lib/browser/httpStack.js
generated
vendored
Normal file
97
frontend/node_modules/tus-js-client/lib/browser/httpStack.js
generated
vendored
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
export default class XHRHttpStack {
|
||||
createRequest(method, url) {
|
||||
return new Request(method, url)
|
||||
}
|
||||
|
||||
getName() {
|
||||
return 'XHRHttpStack'
|
||||
}
|
||||
}
|
||||
|
||||
class Request {
|
||||
constructor(method, url) {
|
||||
this._xhr = new XMLHttpRequest()
|
||||
this._xhr.open(method, url, true)
|
||||
|
||||
this._method = method
|
||||
this._url = url
|
||||
this._headers = {}
|
||||
}
|
||||
|
||||
getMethod() {
|
||||
return this._method
|
||||
}
|
||||
|
||||
getURL() {
|
||||
return this._url
|
||||
}
|
||||
|
||||
setHeader(header, value) {
|
||||
this._xhr.setRequestHeader(header, value)
|
||||
this._headers[header] = value
|
||||
}
|
||||
|
||||
getHeader(header) {
|
||||
return this._headers[header]
|
||||
}
|
||||
|
||||
setProgressHandler(progressHandler) {
|
||||
// Test support for progress events before attaching an event listener
|
||||
if (!('upload' in this._xhr)) {
|
||||
return
|
||||
}
|
||||
|
||||
this._xhr.upload.onprogress = (e) => {
|
||||
if (!e.lengthComputable) {
|
||||
return
|
||||
}
|
||||
|
||||
progressHandler(e.loaded)
|
||||
}
|
||||
}
|
||||
|
||||
send(body = null) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this._xhr.onload = () => {
|
||||
resolve(new Response(this._xhr))
|
||||
}
|
||||
|
||||
this._xhr.onerror = (err) => {
|
||||
reject(err)
|
||||
}
|
||||
|
||||
this._xhr.send(body)
|
||||
})
|
||||
}
|
||||
|
||||
abort() {
|
||||
this._xhr.abort()
|
||||
return Promise.resolve()
|
||||
}
|
||||
|
||||
getUnderlyingObject() {
|
||||
return this._xhr
|
||||
}
|
||||
}
|
||||
|
||||
class Response {
|
||||
constructor(xhr) {
|
||||
this._xhr = xhr
|
||||
}
|
||||
|
||||
getStatus() {
|
||||
return this._xhr.status
|
||||
}
|
||||
|
||||
getHeader(header) {
|
||||
return this._xhr.getResponseHeader(header)
|
||||
}
|
||||
|
||||
getBody() {
|
||||
return this._xhr.responseText
|
||||
}
|
||||
|
||||
getUnderlyingObject() {
|
||||
return this._xhr
|
||||
}
|
||||
}
|
||||
45
frontend/node_modules/tus-js-client/lib/browser/index.js
generated
vendored
Normal file
45
frontend/node_modules/tus-js-client/lib/browser/index.js
generated
vendored
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
import DetailedError from '../error.js'
|
||||
import { enableDebugLog } from '../logger.js'
|
||||
import NoopUrlStorage from '../noopUrlStorage.js'
|
||||
import BaseUpload from '../upload.js'
|
||||
|
||||
import FileReader from './fileReader.js'
|
||||
import fingerprint from './fileSignature.js'
|
||||
import DefaultHttpStack from './httpStack.js'
|
||||
import { WebStorageUrlStorage, canStoreURLs } from './urlStorage.js'
|
||||
|
||||
const defaultOptions = {
|
||||
...BaseUpload.defaultOptions,
|
||||
httpStack: new DefaultHttpStack(),
|
||||
fileReader: new FileReader(),
|
||||
urlStorage: canStoreURLs ? new WebStorageUrlStorage() : new NoopUrlStorage(),
|
||||
fingerprint,
|
||||
}
|
||||
|
||||
class Upload extends BaseUpload {
|
||||
constructor(file = null, options = {}) {
|
||||
options = { ...defaultOptions, ...options }
|
||||
super(file, options)
|
||||
}
|
||||
|
||||
static terminate(url, options = {}) {
|
||||
options = { ...defaultOptions, ...options }
|
||||
return BaseUpload.terminate(url, options)
|
||||
}
|
||||
}
|
||||
|
||||
// Note: We don't reference `window` here because these classes also exist in a Web Worker's context.
|
||||
const isSupported =
|
||||
typeof XMLHttpRequest === 'function' &&
|
||||
typeof Blob === 'function' &&
|
||||
typeof Blob.prototype.slice === 'function'
|
||||
|
||||
export {
|
||||
Upload,
|
||||
canStoreURLs,
|
||||
defaultOptions,
|
||||
isSupported,
|
||||
enableDebugLog,
|
||||
DefaultHttpStack,
|
||||
DetailedError,
|
||||
}
|
||||
6
frontend/node_modules/tus-js-client/lib/browser/isReactNative.js
generated
vendored
Normal file
6
frontend/node_modules/tus-js-client/lib/browser/isReactNative.js
generated
vendored
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
const isReactNative = () =>
|
||||
typeof navigator !== 'undefined' &&
|
||||
typeof navigator.product === 'string' &&
|
||||
navigator.product.toLowerCase() === 'reactnative'
|
||||
|
||||
export default isReactNative
|
||||
27
frontend/node_modules/tus-js-client/lib/browser/sources/FileSource.js
generated
vendored
Normal file
27
frontend/node_modules/tus-js-client/lib/browser/sources/FileSource.js
generated
vendored
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
import isCordova from './isCordova.js'
|
||||
import readAsByteArray from './readAsByteArray.js'
|
||||
|
||||
export default class FileSource {
|
||||
// Make this.size a method
|
||||
constructor(file) {
|
||||
this._file = file
|
||||
this.size = file.size
|
||||
}
|
||||
|
||||
slice(start, end) {
|
||||
// In Apache Cordova applications, a File must be resolved using
|
||||
// FileReader instances, see
|
||||
// https://cordova.apache.org/docs/en/8.x/reference/cordova-plugin-file/index.html#read-a-file
|
||||
if (isCordova()) {
|
||||
return readAsByteArray(this._file.slice(start, end))
|
||||
}
|
||||
|
||||
const value = this._file.slice(start, end)
|
||||
const done = end >= this.size
|
||||
return Promise.resolve({ value, done })
|
||||
}
|
||||
|
||||
close() {
|
||||
// Nothing to do here since we don't need to release any resources.
|
||||
}
|
||||
}
|
||||
89
frontend/node_modules/tus-js-client/lib/browser/sources/StreamSource.js
generated
vendored
Normal file
89
frontend/node_modules/tus-js-client/lib/browser/sources/StreamSource.js
generated
vendored
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
function len(blobOrArray) {
|
||||
if (blobOrArray === undefined) return 0
|
||||
if (blobOrArray.size !== undefined) return blobOrArray.size
|
||||
return blobOrArray.length
|
||||
}
|
||||
|
||||
/*
|
||||
Typed arrays and blobs don't have a concat method.
|
||||
This function helps StreamSource accumulate data to reach chunkSize.
|
||||
*/
|
||||
function concat(a, b) {
|
||||
if (a.concat) {
|
||||
// Is `a` an Array?
|
||||
return a.concat(b)
|
||||
}
|
||||
if (a instanceof Blob) {
|
||||
return new Blob([a, b], { type: a.type })
|
||||
}
|
||||
if (a.set) {
|
||||
// Is `a` a typed array?
|
||||
const c = new a.constructor(a.length + b.length)
|
||||
c.set(a)
|
||||
c.set(b, a.length)
|
||||
return c
|
||||
}
|
||||
throw new Error('Unknown data type')
|
||||
}
|
||||
|
||||
export default class StreamSource {
|
||||
constructor(reader) {
|
||||
this._buffer = undefined
|
||||
this._bufferOffset = 0
|
||||
this._reader = reader
|
||||
this._done = false
|
||||
}
|
||||
|
||||
slice(start, end) {
|
||||
if (start < this._bufferOffset) {
|
||||
return Promise.reject(new Error("Requested data is before the reader's current offset"))
|
||||
}
|
||||
|
||||
return this._readUntilEnoughDataOrDone(start, end)
|
||||
}
|
||||
|
||||
_readUntilEnoughDataOrDone(start, end) {
|
||||
const hasEnoughData = end <= this._bufferOffset + len(this._buffer)
|
||||
if (this._done || hasEnoughData) {
|
||||
const value = this._getDataFromBuffer(start, end)
|
||||
const done = value == null ? this._done : false
|
||||
return Promise.resolve({ value, done })
|
||||
}
|
||||
|
||||
return this._reader.read().then(({ value, done }) => {
|
||||
if (done) {
|
||||
this._done = true
|
||||
} else if (this._buffer === undefined) {
|
||||
this._buffer = value
|
||||
} else {
|
||||
this._buffer = concat(this._buffer, value)
|
||||
}
|
||||
|
||||
return this._readUntilEnoughDataOrDone(start, end)
|
||||
})
|
||||
}
|
||||
|
||||
_getDataFromBuffer(start, end) {
|
||||
// Remove data from buffer before `start`.
|
||||
// Data might be reread from the buffer if an upload fails, so we can only
|
||||
// safely delete data when it comes *before* what is currently being read.
|
||||
if (start > this._bufferOffset) {
|
||||
this._buffer = this._buffer.slice(start - this._bufferOffset)
|
||||
this._bufferOffset = start
|
||||
}
|
||||
// If the buffer is empty after removing old data, all data has been read.
|
||||
const hasAllDataBeenRead = len(this._buffer) === 0
|
||||
if (this._done && hasAllDataBeenRead) {
|
||||
return null
|
||||
}
|
||||
// We already removed data before `start`, so we just return the first
|
||||
// chunk from the buffer.
|
||||
return this._buffer.slice(0, end - start)
|
||||
}
|
||||
|
||||
close() {
|
||||
if (this._reader.cancel) {
|
||||
this._reader.cancel()
|
||||
}
|
||||
}
|
||||
}
|
||||
7
frontend/node_modules/tus-js-client/lib/browser/sources/isCordova.js
generated
vendored
Normal file
7
frontend/node_modules/tus-js-client/lib/browser/sources/isCordova.js
generated
vendored
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
const isCordova = () =>
|
||||
typeof window !== 'undefined' &&
|
||||
(typeof window.PhoneGap !== 'undefined' ||
|
||||
typeof window.Cordova !== 'undefined' ||
|
||||
typeof window.cordova !== 'undefined')
|
||||
|
||||
export default isCordova
|
||||
18
frontend/node_modules/tus-js-client/lib/browser/sources/readAsByteArray.js
generated
vendored
Normal file
18
frontend/node_modules/tus-js-client/lib/browser/sources/readAsByteArray.js
generated
vendored
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
/**
|
||||
* readAsByteArray converts a File object to a Uint8Array.
|
||||
* This function is only used on the Apache Cordova platform.
|
||||
* See https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/index.html#read-a-file
|
||||
*/
|
||||
export default function readAsByteArray(chunk) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const reader = new FileReader()
|
||||
reader.onload = () => {
|
||||
const value = new Uint8Array(reader.result)
|
||||
resolve({ value })
|
||||
}
|
||||
reader.onerror = (err) => {
|
||||
reject(err)
|
||||
}
|
||||
reader.readAsArrayBuffer(chunk)
|
||||
})
|
||||
}
|
||||
20
frontend/node_modules/tus-js-client/lib/browser/uriToBlob.js
generated
vendored
Normal file
20
frontend/node_modules/tus-js-client/lib/browser/uriToBlob.js
generated
vendored
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
/**
|
||||
* uriToBlob resolves a URI to a Blob object. This is used for
|
||||
* React Native to retrieve a file (identified by a file://
|
||||
* URI) as a blob.
|
||||
*/
|
||||
export default function uriToBlob(uri) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const xhr = new XMLHttpRequest()
|
||||
xhr.responseType = 'blob'
|
||||
xhr.onload = () => {
|
||||
const blob = xhr.response
|
||||
resolve(blob)
|
||||
}
|
||||
xhr.onerror = (err) => {
|
||||
reject(err)
|
||||
}
|
||||
xhr.open('GET', uri)
|
||||
xhr.send()
|
||||
})
|
||||
}
|
||||
71
frontend/node_modules/tus-js-client/lib/browser/urlStorage.js
generated
vendored
Normal file
71
frontend/node_modules/tus-js-client/lib/browser/urlStorage.js
generated
vendored
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
let hasStorage = false
|
||||
try {
|
||||
// Note: localStorage does not exist in the Web Worker's context, so we must use window here.
|
||||
hasStorage = 'localStorage' in window
|
||||
|
||||
// Attempt to store and read entries from the local storage to detect Private
|
||||
// Mode on Safari on iOS (see #49)
|
||||
// If the key was not used before, we remove it from local storage again to
|
||||
// not cause confusion where the entry came from.
|
||||
const key = 'tusSupport'
|
||||
const originalValue = localStorage.getItem(key)
|
||||
localStorage.setItem(key, originalValue)
|
||||
if (originalValue === null) localStorage.removeItem(key)
|
||||
} catch (e) {
|
||||
// If we try to access localStorage inside a sandboxed iframe, a SecurityError
|
||||
// is thrown. When in private mode on iOS Safari, a QuotaExceededError is
|
||||
// thrown (see #49)
|
||||
if (e.code === e.SECURITY_ERR || e.code === e.QUOTA_EXCEEDED_ERR) {
|
||||
hasStorage = false
|
||||
} else {
|
||||
throw e
|
||||
}
|
||||
}
|
||||
|
||||
export const canStoreURLs = hasStorage
|
||||
|
||||
export class WebStorageUrlStorage {
|
||||
findAllUploads() {
|
||||
const results = this._findEntries('tus::')
|
||||
return Promise.resolve(results)
|
||||
}
|
||||
|
||||
findUploadsByFingerprint(fingerprint) {
|
||||
const results = this._findEntries(`tus::${fingerprint}::`)
|
||||
return Promise.resolve(results)
|
||||
}
|
||||
|
||||
removeUpload(urlStorageKey) {
|
||||
localStorage.removeItem(urlStorageKey)
|
||||
return Promise.resolve()
|
||||
}
|
||||
|
||||
addUpload(fingerprint, upload) {
|
||||
const id = Math.round(Math.random() * 1e12)
|
||||
const key = `tus::${fingerprint}::${id}`
|
||||
|
||||
localStorage.setItem(key, JSON.stringify(upload))
|
||||
return Promise.resolve(key)
|
||||
}
|
||||
|
||||
_findEntries(prefix) {
|
||||
const results = []
|
||||
|
||||
for (let i = 0; i < localStorage.length; i++) {
|
||||
const key = localStorage.key(i)
|
||||
if (key.indexOf(prefix) !== 0) continue
|
||||
|
||||
try {
|
||||
const upload = JSON.parse(localStorage.getItem(key))
|
||||
upload.urlStorageKey = key
|
||||
|
||||
results.push(upload)
|
||||
} catch (_e) {
|
||||
// The JSON parse error is intentionally ignored here, so a malformed
|
||||
// entry in the storage cannot prevent an upload.
|
||||
}
|
||||
}
|
||||
|
||||
return results
|
||||
}
|
||||
}
|
||||
25
frontend/node_modules/tus-js-client/lib/error.js
generated
vendored
Normal file
25
frontend/node_modules/tus-js-client/lib/error.js
generated
vendored
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
class DetailedError extends Error {
|
||||
constructor(message, causingErr = null, req = null, res = null) {
|
||||
super(message)
|
||||
|
||||
this.originalRequest = req
|
||||
this.originalResponse = res
|
||||
this.causingError = causingErr
|
||||
|
||||
if (causingErr != null) {
|
||||
message += `, caused by ${causingErr.toString()}`
|
||||
}
|
||||
|
||||
if (req != null) {
|
||||
const requestId = req.getHeader('X-Request-ID') || 'n/a'
|
||||
const method = req.getMethod()
|
||||
const url = req.getURL()
|
||||
const status = res ? res.getStatus() : 'n/a'
|
||||
const body = res ? res.getBody() || '' : 'n/a'
|
||||
message += `, originated from request (method: ${method}, url: ${url}, response code: ${status}, response text: ${body}, request id: ${requestId})`
|
||||
}
|
||||
this.message = message
|
||||
}
|
||||
}
|
||||
|
||||
export default DetailedError
|
||||
143
frontend/node_modules/tus-js-client/lib/index.d.ts
generated
vendored
Normal file
143
frontend/node_modules/tus-js-client/lib/index.d.ts
generated
vendored
Normal file
|
|
@ -0,0 +1,143 @@
|
|||
// Type definitions for tus-js-client
|
||||
|
||||
export const isSupported: boolean
|
||||
export const canStoreURLs: boolean
|
||||
export const defaultOptions: UploadOptions &
|
||||
Required<Pick<UploadOptions, 'httpStack' | 'fileReader' | 'urlStorage' | 'fingerprint'>>
|
||||
|
||||
// TODO: Consider using { read: () => Promise<{ done: boolean; value?: any; }>; } as type
|
||||
export class Upload {
|
||||
constructor(
|
||||
file: File | Blob | Buffer | Pick<ReadableStreamDefaultReader, 'read'>,
|
||||
options: UploadOptions,
|
||||
)
|
||||
|
||||
file: File | Blob | Buffer | Pick<ReadableStreamDefaultReader, 'read'>
|
||||
options: UploadOptions
|
||||
url: string | null
|
||||
|
||||
static terminate(url: string, options?: UploadOptions): Promise<void>
|
||||
start(): void
|
||||
abort(shouldTerminate?: boolean): Promise<void>
|
||||
findPreviousUploads(): Promise<PreviousUpload[]>
|
||||
|
||||
resumeFromPreviousUpload(previousUpload: PreviousUpload): void
|
||||
}
|
||||
|
||||
interface UploadOptions {
|
||||
endpoint?: string | null
|
||||
|
||||
uploadUrl?: string | null
|
||||
metadata?: { [key: string]: string }
|
||||
metadataForPartialUploads?: { [key: string]: string }
|
||||
fingerprint?: (file: File, options: UploadOptions) => Promise<string>
|
||||
uploadSize?: number | null
|
||||
|
||||
onProgress?: ((bytesSent: number, bytesTotal: number) => void) | null
|
||||
onChunkComplete?: ((chunkSize: number, bytesAccepted: number, bytesTotal: number) => void) | null
|
||||
onSuccess?: ((payload: OnSuccessPayload) => void) | null
|
||||
onError?: ((error: Error | DetailedError) => void) | null
|
||||
onShouldRetry?:
|
||||
| ((error: DetailedError, retryAttempt: number, options: UploadOptions) => boolean)
|
||||
| null
|
||||
onUploadUrlAvailable?: (() => void) | null
|
||||
|
||||
overridePatchMethod?: boolean
|
||||
headers?: { [key: string]: string }
|
||||
addRequestId?: boolean
|
||||
onBeforeRequest?: (req: HttpRequest) => void | Promise<void>
|
||||
onAfterResponse?: (req: HttpRequest, res: HttpResponse) => void | Promise<void>
|
||||
|
||||
chunkSize?: number
|
||||
retryDelays?: number[] | null
|
||||
parallelUploads?: number
|
||||
parallelUploadBoundaries?: { start: number; end: number }[] | null
|
||||
storeFingerprintForResuming?: boolean
|
||||
removeFingerprintOnSuccess?: boolean
|
||||
uploadLengthDeferred?: boolean
|
||||
uploadDataDuringCreation?: boolean
|
||||
|
||||
urlStorage?: UrlStorage
|
||||
fileReader?: FileReader
|
||||
httpStack?: HttpStack
|
||||
}
|
||||
|
||||
interface OnSuccessPayload {
|
||||
lastResponse: HttpResponse
|
||||
}
|
||||
|
||||
interface UrlStorage {
|
||||
findAllUploads(): Promise<PreviousUpload[]>
|
||||
findUploadsByFingerprint(fingerprint: string): Promise<PreviousUpload[]>
|
||||
|
||||
removeUpload(urlStorageKey: string): Promise<void>
|
||||
|
||||
// Returns the URL storage key, which can be used for removing the upload.
|
||||
addUpload(fingerprint: string, upload: PreviousUpload): Promise<string>
|
||||
}
|
||||
|
||||
interface PreviousUpload {
|
||||
size: number | null
|
||||
metadata: { [key: string]: string }
|
||||
creationTime: string
|
||||
urlStorageKey: string
|
||||
uploadUrl: string | null
|
||||
parallelUploadUrls: string[] | null
|
||||
}
|
||||
|
||||
interface FileReader {
|
||||
openFile(input: any, chunkSize: number): Promise<FileSource>
|
||||
}
|
||||
|
||||
interface FileSource {
|
||||
size: number
|
||||
slice(start: number, end: number): Promise<SliceResult>
|
||||
close(): void
|
||||
}
|
||||
|
||||
interface SliceResult {
|
||||
// Platform-specific data type which must be usable by the HTTP stack as a body.
|
||||
value: any
|
||||
done: boolean
|
||||
}
|
||||
|
||||
export class DefaultHttpStack implements HttpStack {
|
||||
constructor(options: any)
|
||||
createRequest(method: string, url: string): HttpRequest
|
||||
getName(): string
|
||||
}
|
||||
|
||||
export interface HttpStack {
|
||||
createRequest(method: string, url: string): HttpRequest
|
||||
getName(): string
|
||||
}
|
||||
|
||||
export interface HttpRequest {
|
||||
getMethod(): string
|
||||
getURL(): string
|
||||
|
||||
setHeader(header: string, value: string): void
|
||||
getHeader(header: string): string | undefined
|
||||
|
||||
setProgressHandler(handler: (bytesSent: number) => void): void
|
||||
send(body: any): Promise<HttpResponse>
|
||||
abort(): Promise<void>
|
||||
|
||||
// Return an environment specific object, e.g. the XMLHttpRequest object in browsers.
|
||||
getUnderlyingObject(): any
|
||||
}
|
||||
|
||||
export interface HttpResponse {
|
||||
getStatus(): number
|
||||
getHeader(header: string): string | undefined
|
||||
getBody(): string
|
||||
|
||||
// Return an environment specific object, e.g. the XMLHttpRequest object in browsers.
|
||||
getUnderlyingObject(): any
|
||||
}
|
||||
|
||||
export class DetailedError extends Error {
|
||||
originalRequest: HttpRequest
|
||||
originalResponse: HttpResponse | null
|
||||
causingError: Error | null
|
||||
}
|
||||
93
frontend/node_modules/tus-js-client/lib/index.test-d.ts
generated
vendored
Normal file
93
frontend/node_modules/tus-js-client/lib/index.test-d.ts
generated
vendored
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
// This is a test file for ensuring that the type definitions in index.d.ts are
|
||||
// working correctly. For more details see:
|
||||
// https://github.com/SamVerschueren/tsd
|
||||
|
||||
import { expectType } from 'tsd'
|
||||
import * as tus from '../'
|
||||
import type { DetailedError } from '../'
|
||||
|
||||
expectType<boolean>(tus.isSupported)
|
||||
expectType<boolean>(tus.canStoreURLs)
|
||||
|
||||
const file = new File(['foo'], 'foo.txt', {
|
||||
type: 'text/plain',
|
||||
})
|
||||
|
||||
const upload = new tus.Upload(file, {
|
||||
endpoint: '',
|
||||
fingerprint: (file: File) => Promise.resolve(file.name),
|
||||
metadata: {
|
||||
filename: 'foo.txt',
|
||||
},
|
||||
metadataForPartialUploads: {
|
||||
userId: 'foo123bar',
|
||||
},
|
||||
onProgress: (bytesSent: number, bytesTotal: number) => {
|
||||
const percentage = ((bytesSent / bytesTotal) * 100).toFixed(2)
|
||||
console.log(bytesSent, bytesTotal, `${percentage}%`)
|
||||
},
|
||||
onChunkComplete: (_chunkSize: number, _bytesAccepted: number) => {},
|
||||
onSuccess: (payload: tus.OnSuccessPayload) => {
|
||||
console.log('Download from %s complete', upload.url)
|
||||
console.log('Response header', payload.lastResponse.getHeader('X-Info'))
|
||||
},
|
||||
onError: (error: Error | DetailedError) => {
|
||||
console.error(`Failed because: ${error}`)
|
||||
},
|
||||
headers: { TestHeader: 'TestValue' },
|
||||
chunkSize: 100,
|
||||
uploadUrl: '',
|
||||
uploadSize: 50,
|
||||
overridePatchMethod: true,
|
||||
retryDelays: [10, 20, 50],
|
||||
removeFingerprintOnSuccess: true,
|
||||
parallelUploads: 42,
|
||||
parallelUploadBoundaries: [
|
||||
{ start: 0, end: 1 },
|
||||
{ start: 1, end: 11 },
|
||||
],
|
||||
onAfterResponse: (req: tus.HttpRequest, res: tus.HttpResponse) => {
|
||||
const url = req.getURL()
|
||||
const value = res.getHeader('X-My-Header')
|
||||
console.log(`Request for ${url} responded with ${value}`)
|
||||
},
|
||||
})
|
||||
|
||||
upload.start()
|
||||
|
||||
upload.findPreviousUploads().then((uploads: tus.PreviousUpload[]) => {
|
||||
upload.resumeFromPreviousUpload(uploads[0])
|
||||
})
|
||||
|
||||
upload.abort()
|
||||
upload.abort(true).then(() => {})
|
||||
|
||||
const _upload2 = new tus.Upload(file, {
|
||||
endpoint: '',
|
||||
})
|
||||
|
||||
// const reader = {
|
||||
// read: () => Promise.resolve({ done: true, value: '' }),
|
||||
// };
|
||||
// const upload3 = new tus.Upload(reader, {
|
||||
// endpoint: '',
|
||||
// uploadLengthDeferred: true,
|
||||
// });
|
||||
|
||||
fetch('https://www.example.org')
|
||||
.then((response) => response.body)
|
||||
.then((rb) => {
|
||||
if (rb == null) {
|
||||
return
|
||||
}
|
||||
|
||||
const reader = rb.getReader()
|
||||
return new tus.Upload(reader, {
|
||||
endpoint: '',
|
||||
uploadLengthDeferred: true,
|
||||
})
|
||||
})
|
||||
|
||||
tus.Upload.terminate('https://myurl.com', {
|
||||
endpoint: '',
|
||||
})
|
||||
10
frontend/node_modules/tus-js-client/lib/logger.js
generated
vendored
Normal file
10
frontend/node_modules/tus-js-client/lib/logger.js
generated
vendored
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
let isEnabled = false
|
||||
|
||||
export function enableDebugLog() {
|
||||
isEnabled = true
|
||||
}
|
||||
|
||||
export function log(msg) {
|
||||
if (!isEnabled) return
|
||||
console.log(msg)
|
||||
}
|
||||
34
frontend/node_modules/tus-js-client/lib/node/fileReader.js
generated
vendored
Normal file
34
frontend/node_modules/tus-js-client/lib/node/fileReader.js
generated
vendored
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
import { ReadStream } from 'fs'
|
||||
import isStream from 'is-stream'
|
||||
|
||||
import BufferSource from './sources/BufferSource.js'
|
||||
import getFileSource from './sources/FileSource.js'
|
||||
import StreamSource from './sources/StreamSource.js'
|
||||
|
||||
export default class FileReader {
|
||||
openFile(input, chunkSize) {
|
||||
if (Buffer.isBuffer(input)) {
|
||||
return Promise.resolve(new BufferSource(input))
|
||||
}
|
||||
|
||||
if (input instanceof ReadStream && input.path != null) {
|
||||
return getFileSource(input)
|
||||
}
|
||||
|
||||
if (isStream.readable(input)) {
|
||||
chunkSize = Number(chunkSize)
|
||||
if (!Number.isFinite(chunkSize)) {
|
||||
return Promise.reject(
|
||||
new Error(
|
||||
'cannot create source for stream without a finite value for the `chunkSize` option; specify a chunkSize to control the memory consumption',
|
||||
),
|
||||
)
|
||||
}
|
||||
return Promise.resolve(new StreamSource(input))
|
||||
}
|
||||
|
||||
return Promise.reject(
|
||||
new Error('source object may only be an instance of Buffer or Readable in this environment'),
|
||||
)
|
||||
}
|
||||
}
|
||||
39
frontend/node_modules/tus-js-client/lib/node/fileSignature.js
generated
vendored
Normal file
39
frontend/node_modules/tus-js-client/lib/node/fileSignature.js
generated
vendored
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
import { createHash } from 'crypto'
|
||||
import * as fs from 'fs'
|
||||
import * as path from 'path'
|
||||
|
||||
/**
|
||||
* Generate a fingerprint for a file which will be used the store the endpoint
|
||||
*
|
||||
* @param {File} file
|
||||
* @param {Object} options
|
||||
*/
|
||||
export default function fingerprint(file, options) {
|
||||
if (Buffer.isBuffer(file)) {
|
||||
// create MD5 hash for buffer type
|
||||
const blockSize = 64 * 1024 // 64kb
|
||||
const content = file.slice(0, Math.min(blockSize, file.length))
|
||||
const hash = createHash('md5').update(content).digest('hex')
|
||||
const ret = ['node-buffer', hash, file.length, options.endpoint].join('-')
|
||||
return Promise.resolve(ret)
|
||||
}
|
||||
|
||||
if (file instanceof fs.ReadStream && file.path != null) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const name = path.resolve(file.path)
|
||||
fs.stat(file.path, (err, info) => {
|
||||
if (err) {
|
||||
reject(err)
|
||||
return
|
||||
}
|
||||
|
||||
const ret = ['node-file', name, info.size, info.mtime.getTime(), options.endpoint].join('-')
|
||||
|
||||
resolve(ret)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
// fingerprint cannot be computed for file input type
|
||||
return Promise.resolve(null)
|
||||
}
|
||||
212
frontend/node_modules/tus-js-client/lib/node/httpStack.js
generated
vendored
Normal file
212
frontend/node_modules/tus-js-client/lib/node/httpStack.js
generated
vendored
Normal file
|
|
@ -0,0 +1,212 @@
|
|||
// The url.parse method is superseeded by the url.URL constructor,
|
||||
// but it is still included in Node.js
|
||||
import * as http from 'http'
|
||||
import * as https from 'https'
|
||||
import { Readable, Transform } from 'stream'
|
||||
import { parse } from 'url'
|
||||
import throttle from 'lodash.throttle'
|
||||
|
||||
export default class NodeHttpStack {
|
||||
constructor(requestOptions = {}) {
|
||||
this._requestOptions = requestOptions
|
||||
}
|
||||
|
||||
createRequest(method, url) {
|
||||
return new Request(method, url, this._requestOptions)
|
||||
}
|
||||
|
||||
getName() {
|
||||
return 'NodeHttpStack'
|
||||
}
|
||||
}
|
||||
|
||||
class Request {
|
||||
constructor(method, url, options) {
|
||||
this._method = method
|
||||
this._url = url
|
||||
this._headers = {}
|
||||
this._request = null
|
||||
this._progressHandler = () => {}
|
||||
this._requestOptions = options || {}
|
||||
}
|
||||
|
||||
getMethod() {
|
||||
return this._method
|
||||
}
|
||||
|
||||
getURL() {
|
||||
return this._url
|
||||
}
|
||||
|
||||
setHeader(header, value) {
|
||||
this._headers[header] = value
|
||||
}
|
||||
|
||||
getHeader(header) {
|
||||
return this._headers[header]
|
||||
}
|
||||
|
||||
setProgressHandler(progressHandler) {
|
||||
this._progressHandler = progressHandler
|
||||
}
|
||||
|
||||
send(body = null) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const options = {
|
||||
...parse(this._url),
|
||||
...this._requestOptions,
|
||||
|
||||
method: this._method,
|
||||
headers: {
|
||||
...(this._requestOptions.headers || {}),
|
||||
...this._headers,
|
||||
},
|
||||
}
|
||||
|
||||
if (body?.size) {
|
||||
options.headers['Content-Length'] = body.size
|
||||
}
|
||||
|
||||
const httpModule = options.protocol === 'https:' ? https : http
|
||||
this._request = httpModule.request(options)
|
||||
const req = this._request
|
||||
req.on('response', (res) => {
|
||||
const resChunks = []
|
||||
res.on('data', (data) => {
|
||||
resChunks.push(data)
|
||||
})
|
||||
|
||||
res.on('end', () => {
|
||||
const responseText = Buffer.concat(resChunks).toString('utf8')
|
||||
resolve(new Response(res, responseText))
|
||||
})
|
||||
})
|
||||
|
||||
req.on('error', (err) => {
|
||||
reject(err)
|
||||
})
|
||||
|
||||
if (body instanceof Readable) {
|
||||
// Readable stream are piped through a PassThrough instance, which
|
||||
// counts the number of bytes passed through. This is used, for example,
|
||||
// when an fs.ReadStream is provided to tus-js-client.
|
||||
body.pipe(new ProgressEmitter(this._progressHandler)).pipe(req)
|
||||
} else if (body instanceof Uint8Array) {
|
||||
// For Buffers and Uint8Arrays (in Node.js all buffers are instances of Uint8Array),
|
||||
// we write chunks of the buffer to the stream and use that to track the progress.
|
||||
// This is used when either a Buffer or a normal readable stream is provided
|
||||
// to tus-js-client.
|
||||
writeBufferToStreamWithProgress(req, body, this._progressHandler)
|
||||
} else {
|
||||
req.end(body)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
abort() {
|
||||
if (this._request !== null) this._request.abort()
|
||||
return Promise.resolve()
|
||||
}
|
||||
|
||||
getUnderlyingObject() {
|
||||
return this._request
|
||||
}
|
||||
}
|
||||
|
||||
class Response {
|
||||
constructor(res, body) {
|
||||
this._response = res
|
||||
this._body = body
|
||||
}
|
||||
|
||||
getStatus() {
|
||||
return this._response.statusCode
|
||||
}
|
||||
|
||||
getHeader(header) {
|
||||
return this._response.headers[header.toLowerCase()]
|
||||
}
|
||||
|
||||
getBody() {
|
||||
return this._body
|
||||
}
|
||||
|
||||
getUnderlyingObject() {
|
||||
return this._response
|
||||
}
|
||||
}
|
||||
|
||||
// ProgressEmitter is a simple PassThrough-style transform stream which keeps
|
||||
// track of the number of bytes which have been piped through it and will
|
||||
// invoke the `onprogress` function whenever new number are available.
|
||||
class ProgressEmitter extends Transform {
|
||||
constructor(onprogress) {
|
||||
super()
|
||||
|
||||
// The _onprogress property will be invoked, whenever a chunk is piped
|
||||
// through this transformer. Since chunks are usually quite small (64kb),
|
||||
// these calls can occur frequently, especially when you have a good
|
||||
// connection to the remote server. Therefore, we are throtteling them to
|
||||
// prevent accessive function calls.
|
||||
this._onprogress = throttle(onprogress, 100, {
|
||||
leading: true,
|
||||
trailing: false,
|
||||
})
|
||||
this._position = 0
|
||||
}
|
||||
|
||||
_transform(chunk, _encoding, callback) {
|
||||
this._position += chunk.length
|
||||
this._onprogress(this._position)
|
||||
callback(null, chunk)
|
||||
}
|
||||
}
|
||||
|
||||
// writeBufferToStreamWithProgress writes chunks from `source` (either a
|
||||
// Buffer or Uint8Array) to the readable stream `stream`.
|
||||
// The size of the chunk depends on the stream's highWaterMark to fill the
|
||||
// stream's internal buffer as best as possible.
|
||||
// If the internal buffer is full, the callback `onprogress` will be invoked
|
||||
// to notify about the write progress. Writing will be resumed once the internal
|
||||
// buffer is empty, as indicated by the emitted `drain` event.
|
||||
// See https://nodejs.org/docs/latest/api/stream.html#buffering for more details
|
||||
// on the buffering behavior of streams.
|
||||
const writeBufferToStreamWithProgress = (stream, source, onprogress) => {
|
||||
onprogress = throttle(onprogress, 100, {
|
||||
leading: true,
|
||||
trailing: false,
|
||||
})
|
||||
|
||||
let offset = 0
|
||||
|
||||
function writeNextChunk() {
|
||||
// Take at most the amount of bytes from highWaterMark. This should fill the streams
|
||||
// internal buffer already.
|
||||
const chunkSize = Math.min(stream.writableHighWaterMark, source.length - offset)
|
||||
|
||||
// Note: We use subarray instead of slice because it works without copying data for
|
||||
// Buffers and Uint8Arrays.
|
||||
const chunk = source.subarray(offset, offset + chunkSize)
|
||||
offset += chunk.length
|
||||
|
||||
// `write` returns true if the internal buffer is not full and we should write more.
|
||||
// If the stream is destroyed because the request is aborted, it will return false
|
||||
// and no 'drain' event is emitted, so won't continue writing data.
|
||||
const canContinue = stream.write(chunk)
|
||||
|
||||
if (!canContinue) {
|
||||
// If the buffer is full, wait for the 'drain' event to write more data.
|
||||
stream.once('drain', writeNextChunk)
|
||||
onprogress(offset)
|
||||
} else if (offset < source.length) {
|
||||
// If there's still data to write and the buffer is not full, write next chunk.
|
||||
writeNextChunk()
|
||||
} else {
|
||||
// If all data has been written, close the stream if needed, and emit a 'finish' event.
|
||||
stream.end()
|
||||
}
|
||||
}
|
||||
|
||||
// Start writing the first chunk.
|
||||
writeNextChunk()
|
||||
}
|
||||
47
frontend/node_modules/tus-js-client/lib/node/index.js
generated
vendored
Normal file
47
frontend/node_modules/tus-js-client/lib/node/index.js
generated
vendored
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
import DetailedError from '../error.js'
|
||||
import { enableDebugLog } from '../logger.js'
|
||||
import NoopUrlStorage from '../noopUrlStorage.js'
|
||||
import BaseUpload from '../upload.js'
|
||||
|
||||
import FileReader from './fileReader.js'
|
||||
import fingerprint from './fileSignature.js'
|
||||
import DefaultHttpStack from './httpStack.js'
|
||||
import StreamSource from './sources/StreamSource.js'
|
||||
import { FileUrlStorage, canStoreURLs } from './urlStorage.js'
|
||||
|
||||
const defaultOptions = {
|
||||
...BaseUpload.defaultOptions,
|
||||
httpStack: new DefaultHttpStack(),
|
||||
fileReader: new FileReader(),
|
||||
urlStorage: new NoopUrlStorage(),
|
||||
fingerprint,
|
||||
}
|
||||
|
||||
class Upload extends BaseUpload {
|
||||
constructor(file = null, options = {}) {
|
||||
options = { ...defaultOptions, ...options }
|
||||
super(file, options)
|
||||
}
|
||||
|
||||
static terminate(url, options = {}) {
|
||||
options = { ...defaultOptions, ...options }
|
||||
return BaseUpload.terminate(url, options)
|
||||
}
|
||||
}
|
||||
|
||||
// The Node.js environment does not have restrictions which may cause
|
||||
// tus-js-client not to function.
|
||||
const isSupported = true
|
||||
|
||||
export {
|
||||
Upload,
|
||||
defaultOptions,
|
||||
isSupported,
|
||||
// Make FileUrlStorage module available as it will not be set by default.
|
||||
FileUrlStorage,
|
||||
canStoreURLs,
|
||||
enableDebugLog,
|
||||
DefaultHttpStack,
|
||||
DetailedError,
|
||||
StreamSource,
|
||||
}
|
||||
15
frontend/node_modules/tus-js-client/lib/node/sources/BufferSource.js
generated
vendored
Normal file
15
frontend/node_modules/tus-js-client/lib/node/sources/BufferSource.js
generated
vendored
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
export default class BufferSource {
|
||||
constructor(buffer) {
|
||||
this._buffer = buffer
|
||||
this.size = buffer.length
|
||||
}
|
||||
|
||||
slice(start, end) {
|
||||
const value = this._buffer.slice(start, end)
|
||||
value.size = value.length
|
||||
const done = end >= this.size
|
||||
return Promise.resolve({ value, done })
|
||||
}
|
||||
|
||||
close() {}
|
||||
}
|
||||
57
frontend/node_modules/tus-js-client/lib/node/sources/FileSource.js
generated
vendored
Normal file
57
frontend/node_modules/tus-js-client/lib/node/sources/FileSource.js
generated
vendored
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
import { createReadStream, promises as fsPromises } from 'fs'
|
||||
|
||||
export default async function getFileSource(stream) {
|
||||
const path = stream.path.toString()
|
||||
const { size } = await fsPromises.stat(path)
|
||||
|
||||
// The fs.ReadStream might be configured to not read from the beginning
|
||||
// to the end, but instead from a slice in between. In this case, we consider
|
||||
// that range to indicate the actual uploadable size.
|
||||
// This happens, for example, if a fs.ReadStream is used with the `parallelUploads`
|
||||
// option. There, the ReadStream is sliced into multiple ReadStreams to fit the number
|
||||
// of number of `parallelUploads`. Each ReadStream has `start` and `end` set.
|
||||
// Note: `stream.end` is Infinity by default, so we need the check `isFinite`.
|
||||
// Note: `stream.end` is treated inclusively, so we need to add 1 here.
|
||||
// See the comment in slice() for more context.
|
||||
const start = stream.start ?? 0
|
||||
const end = Number.isFinite(stream.end) ? stream.end + 1 : size
|
||||
const actualSize = end - start
|
||||
|
||||
return new FileSource(stream, path, actualSize)
|
||||
}
|
||||
|
||||
class FileSource {
|
||||
constructor(stream, path, size) {
|
||||
this._stream = stream
|
||||
this._path = path
|
||||
this.size = size
|
||||
}
|
||||
|
||||
slice(start, end) {
|
||||
// The fs.ReadStream might be configured to not read from the beginning,
|
||||
// but instead start at a different offset. The start value from the caller
|
||||
// does not include the offset, so we need to add this offset to our range later.
|
||||
// This happens, for example, if a fs.ReadStream is used with the `parallelUploads`
|
||||
// option. First, the ReadStream is sliced into multiple ReadStreams to fit the number
|
||||
// of number of `parallelUploads`. Each ReadStream has `start` set.
|
||||
const offset = this._stream.start ?? 0
|
||||
|
||||
const stream = createReadStream(this._path, {
|
||||
start: offset + start,
|
||||
// The `end` option for createReadStream is treated inclusively
|
||||
// (see https://nodejs.org/api/fs.html#fs_fs_createreadstream_path_options).
|
||||
// However, the Buffer#slice(start, end) and also our Source#slice(start, end)
|
||||
// method treat the end range exclusively, so we have to subtract 1.
|
||||
// This prevents an off-by-one error when reporting upload progress.
|
||||
end: offset + end - 1,
|
||||
autoClose: true,
|
||||
})
|
||||
stream.size = Math.min(end - start, this.size)
|
||||
const done = stream.size >= this.size
|
||||
return Promise.resolve({ value: stream, done })
|
||||
}
|
||||
|
||||
close() {
|
||||
this._stream.destroy()
|
||||
}
|
||||
}
|
||||
123
frontend/node_modules/tus-js-client/lib/node/sources/StreamSource.js
generated
vendored
Normal file
123
frontend/node_modules/tus-js-client/lib/node/sources/StreamSource.js
generated
vendored
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
/**
|
||||
* readChunk reads a chunk with the given size from the given
|
||||
* stream. It will wait until enough data is available to satisfy
|
||||
* the size requirement before resolving.
|
||||
* Only if the stream ends, the function may resolve with a buffer
|
||||
* smaller than the size argument.
|
||||
* Note that we rely on the stream behaving as Node.js documents:
|
||||
* https://nodejs.org/api/stream.html#readablereadsize
|
||||
*/
|
||||
async function readChunk(stream, size) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const onError = (err) => {
|
||||
stream.off('readable', onReadable)
|
||||
reject(err)
|
||||
}
|
||||
|
||||
const onReadable = () => {
|
||||
// TODO: Node requires size to be less than 1GB. Add a validation for that
|
||||
const chunk = stream.read(size)
|
||||
|
||||
if (chunk !== null) {
|
||||
stream.off('error', onError)
|
||||
stream.off('readable', onReadable)
|
||||
|
||||
resolve(chunk)
|
||||
}
|
||||
}
|
||||
|
||||
stream.once('error', onError)
|
||||
stream.on('readable', onReadable)
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* StreamSource provides an interface to obtain slices of a Readable stream for
|
||||
* various ranges.
|
||||
* It will buffer read data, to allow for following pattern:
|
||||
* - Call slice(startA, endA) will buffer the data of the requested range
|
||||
* - Call slice(startB, endB) will return data from the buffer if startA <= startB <= endA.
|
||||
* If endB > endA, it will also consume new data from the stream.
|
||||
* Note that it is forbidden to call with startB < startA or startB > endA. In other words,
|
||||
* the slice calls cannot seek back and must not skip data from the stream.
|
||||
*/
|
||||
export default class StreamSource {
|
||||
constructor(stream) {
|
||||
this._stream = stream
|
||||
|
||||
// Setting the size to null indicates that we have no calculation available
|
||||
// for how much data this stream will emit requiring the user to specify
|
||||
// it manually (see the `uploadSize` option).
|
||||
this.size = null
|
||||
|
||||
this._buf = Buffer.alloc(0)
|
||||
this._bufPos = 0
|
||||
|
||||
this._ended = false
|
||||
this._error = null
|
||||
|
||||
stream.pause()
|
||||
stream.on('end', () => {
|
||||
this._ended = true
|
||||
})
|
||||
stream.on('error', (err) => {
|
||||
this._error = err
|
||||
})
|
||||
}
|
||||
|
||||
async slice(start, end) {
|
||||
// Fail fast if the caller requests a proportion of the data which is not
|
||||
// available any more.
|
||||
if (start < this._bufPos) {
|
||||
throw new Error('cannot slice from position which we already seeked away')
|
||||
}
|
||||
|
||||
if (start > this._bufPos + this._buf.length) {
|
||||
throw new Error('slice start is outside of buffer (currently not implemented)')
|
||||
}
|
||||
|
||||
if (this._error) {
|
||||
throw this._error
|
||||
}
|
||||
|
||||
let returnBuffer
|
||||
// Always attempt to drain the buffer first, even if this means that we
|
||||
// return less data than the caller requested.
|
||||
if (start < this._bufPos + this._buf.length) {
|
||||
const bufStart = start - this._bufPos
|
||||
const bufEnd = Math.min(this._buf.length, end - this._bufPos)
|
||||
|
||||
returnBuffer = this._buf.slice(bufStart, bufEnd)
|
||||
} else {
|
||||
returnBuffer = Buffer.alloc(0)
|
||||
}
|
||||
|
||||
// If the stream has ended already, read calls would not finish, so return early here.
|
||||
if (this._ended) {
|
||||
returnBuffer.size = returnBuffer.length
|
||||
return { value: returnBuffer, done: true }
|
||||
}
|
||||
|
||||
// If we could not satisfy the slice request from the buffer only, read more data from
|
||||
// the stream and add it to the buffer.
|
||||
const requestedSize = end - start
|
||||
if (requestedSize > returnBuffer.length) {
|
||||
// Note: We assume that the stream returns not more than the requested size.
|
||||
const newChunk = await readChunk(this._stream, requestedSize - returnBuffer.length)
|
||||
|
||||
// Append the new chunk to the buffer
|
||||
returnBuffer = Buffer.concat([returnBuffer, newChunk])
|
||||
}
|
||||
|
||||
// Important: Store the read data, so consecutive slice calls can access the same data.
|
||||
this._buf = returnBuffer
|
||||
this._bufPos = start
|
||||
|
||||
returnBuffer.size = returnBuffer.length
|
||||
return { value: returnBuffer, done: this._ended }
|
||||
}
|
||||
|
||||
close() {
|
||||
this._stream.destroy()
|
||||
}
|
||||
}
|
||||
156
frontend/node_modules/tus-js-client/lib/node/urlStorage.js
generated
vendored
Normal file
156
frontend/node_modules/tus-js-client/lib/node/urlStorage.js
generated
vendored
Normal file
|
|
@ -0,0 +1,156 @@
|
|||
import { readFile, writeFile } from 'fs'
|
||||
import combineErrors from 'combine-errors'
|
||||
import * as lockfile from 'proper-lockfile'
|
||||
|
||||
export const canStoreURLs = true
|
||||
|
||||
export class FileUrlStorage {
|
||||
constructor(filePath) {
|
||||
this.path = filePath
|
||||
}
|
||||
|
||||
findAllUploads() {
|
||||
return new Promise((resolve, reject) => {
|
||||
this._getItems('tus::', (err, results) => {
|
||||
if (err) reject(err)
|
||||
else resolve(results)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
findUploadsByFingerprint(fingerprint) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this._getItems(`tus::${fingerprint}`, (err, results) => {
|
||||
if (err) reject(err)
|
||||
else resolve(results)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
removeUpload(urlStorageKey) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this._removeItem(urlStorageKey, (err) => {
|
||||
if (err) reject(err)
|
||||
else resolve()
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
addUpload(fingerprint, upload) {
|
||||
const id = Math.round(Math.random() * 1e12)
|
||||
const key = `tus::${fingerprint}::${id}`
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
this._setItem(key, upload, (err) => {
|
||||
if (err) reject(err)
|
||||
else resolve(key)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
_setItem(key, value, cb) {
|
||||
lockfile
|
||||
.lock(this.path, this._lockfileOptions())
|
||||
.then((release) => {
|
||||
cb = this._releaseAndCb(release, cb)
|
||||
this._getData((err, data) => {
|
||||
if (err) {
|
||||
cb(err)
|
||||
return
|
||||
}
|
||||
|
||||
data[key] = value
|
||||
this._writeData(data, (err2) => cb(err2))
|
||||
})
|
||||
})
|
||||
.catch(cb)
|
||||
}
|
||||
|
||||
_getItems(prefix, cb) {
|
||||
this._getData((err, data) => {
|
||||
if (err) {
|
||||
cb(err)
|
||||
return
|
||||
}
|
||||
|
||||
const results = Object.keys(data)
|
||||
.filter((key) => key.startsWith(prefix))
|
||||
.map((key) => {
|
||||
const obj = data[key]
|
||||
obj.urlStorageKey = key
|
||||
return obj
|
||||
})
|
||||
|
||||
cb(null, results)
|
||||
})
|
||||
}
|
||||
|
||||
_removeItem(key, cb) {
|
||||
lockfile
|
||||
.lock(this.path, this._lockfileOptions())
|
||||
.then((release) => {
|
||||
cb = this._releaseAndCb(release, cb)
|
||||
this._getData((err, data) => {
|
||||
if (err) {
|
||||
cb(err)
|
||||
return
|
||||
}
|
||||
|
||||
delete data[key]
|
||||
this._writeData(data, (err2) => cb(err2))
|
||||
})
|
||||
})
|
||||
.catch(cb)
|
||||
}
|
||||
|
||||
_lockfileOptions() {
|
||||
return {
|
||||
realpath: false,
|
||||
retries: {
|
||||
retries: 5,
|
||||
minTimeout: 20,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
_releaseAndCb(release, cb) {
|
||||
return (err) => {
|
||||
if (err) {
|
||||
release()
|
||||
.then(() => cb(err))
|
||||
.catch((releaseErr) => cb(combineErrors([err, releaseErr])))
|
||||
return
|
||||
}
|
||||
|
||||
release().then(cb).catch(cb)
|
||||
}
|
||||
}
|
||||
|
||||
_writeData(data, cb) {
|
||||
const opts = {
|
||||
encoding: 'utf8',
|
||||
mode: 0o660,
|
||||
flag: 'w',
|
||||
}
|
||||
writeFile(this.path, JSON.stringify(data), opts, (err) => cb(err))
|
||||
}
|
||||
|
||||
_getData(cb) {
|
||||
readFile(this.path, 'utf8', (err, data) => {
|
||||
if (err) {
|
||||
// return empty data if file does not exist
|
||||
if (err.code === 'ENOENT') cb(null, {})
|
||||
else cb(err)
|
||||
return
|
||||
}
|
||||
|
||||
try {
|
||||
data = !data.trim().length ? {} : JSON.parse(data)
|
||||
} catch (error) {
|
||||
cb(error)
|
||||
return
|
||||
}
|
||||
cb(null, data)
|
||||
})
|
||||
}
|
||||
}
|
||||
17
frontend/node_modules/tus-js-client/lib/noopUrlStorage.js
generated
vendored
Normal file
17
frontend/node_modules/tus-js-client/lib/noopUrlStorage.js
generated
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
export default class NoopUrlStorage {
|
||||
listAllUploads() {
|
||||
return Promise.resolve([])
|
||||
}
|
||||
|
||||
findUploadsByFingerprint(_fingerprint) {
|
||||
return Promise.resolve([])
|
||||
}
|
||||
|
||||
removeUpload(_urlStorageKey) {
|
||||
return Promise.resolve()
|
||||
}
|
||||
|
||||
addUpload(_fingerprint, _upload) {
|
||||
return Promise.resolve(null)
|
||||
}
|
||||
}
|
||||
1120
frontend/node_modules/tus-js-client/lib/upload.js
generated
vendored
Normal file
1120
frontend/node_modules/tus-js-client/lib/upload.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
19
frontend/node_modules/tus-js-client/lib/uuid.js
generated
vendored
Normal file
19
frontend/node_modules/tus-js-client/lib/uuid.js
generated
vendored
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
/**
|
||||
* Generate a UUID v4 based on random numbers. We intentioanlly use the less
|
||||
* secure Math.random function here since the more secure crypto.getRandomNumbers
|
||||
* is not available on all platforms.
|
||||
* This is not a problem for us since we use the UUID only for generating a
|
||||
* request ID, so we can correlate server logs to client errors.
|
||||
*
|
||||
* This function is taken from following site:
|
||||
* https://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript
|
||||
*
|
||||
* @return {string} The generate UUID
|
||||
*/
|
||||
export default function uuid() {
|
||||
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
|
||||
const r = (Math.random() * 16) | 0
|
||||
const v = c === 'x' ? r : (r & 0x3) | 0x8
|
||||
return v.toString(16)
|
||||
})
|
||||
}
|
||||
85
frontend/node_modules/tus-js-client/package.json
generated
vendored
Normal file
85
frontend/node_modules/tus-js-client/package.json
generated
vendored
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
{
|
||||
"name": "tus-js-client",
|
||||
"version": "4.3.1",
|
||||
"description": "A pure JavaScript client for the tus resumable upload protocol",
|
||||
"main": "lib.es5/node/index.js",
|
||||
"module": "lib.esm/node/index.js",
|
||||
"files": ["lib/**/*", "lib.es5/**/*", "lib.esm/**/*", "dist/**/*", "lib/index.d.ts"],
|
||||
"browser": {
|
||||
"./lib.es5/node/index.js": "./lib.es5/browser/index.js",
|
||||
"./lib.esm/node/index.js": "./lib.esm/browser/index.js",
|
||||
"./lib/node/index.js": "./lib/browser/index.js"
|
||||
},
|
||||
"types": "./lib/index.d.ts",
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/tus/tus-js-client.git"
|
||||
},
|
||||
"keywords": ["tus", "resumable", "upload", "protocol", "progress", "file", "browser"],
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/tus/tus-js-client/issues"
|
||||
},
|
||||
"homepage": "https://github.com/tus/tus-js-client",
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.0.0",
|
||||
"@babel/core": "^7.13.10",
|
||||
"@babel/helper-get-function-arity": "^7.16.7",
|
||||
"@babel/plugin-syntax-jsx": "^7.12.13",
|
||||
"@babel/plugin-transform-modules-commonjs": "^7.9.6",
|
||||
"@babel/preset-env": "^7.0.0",
|
||||
"@biomejs/biome": "^1.7.3",
|
||||
"axios": "^0.28.0",
|
||||
"babelify": "^10.0.0",
|
||||
"browserify": "^17.0.0",
|
||||
"chokidar-cli": "^3.0.0",
|
||||
"exorcist": "^2.0.0",
|
||||
"into-stream": "^6.0.0",
|
||||
"jasmine": "^5.1.0",
|
||||
"jasmine-ajax": "^4.0.0",
|
||||
"jasmine-core": "^5.1.1",
|
||||
"karma": "^6.4.0",
|
||||
"karma-browserstack-launcher": "^1.6.0",
|
||||
"karma-chrome-launcher": "^3.1.1",
|
||||
"karma-jasmine": "^5.1.0",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"puppeteer": "^22.3.0",
|
||||
"regenerator-runtime": "^0.14.0",
|
||||
"temp": "^0.9.4",
|
||||
"throttle": "^1.0.3",
|
||||
"tsd": "0.31.0",
|
||||
"uglify-js": "^3.9.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"buffer-from": "^1.1.2",
|
||||
"combine-errors": "^3.0.3",
|
||||
"is-stream": "^2.0.0",
|
||||
"js-base64": "^3.7.2",
|
||||
"lodash.throttle": "^4.1.1",
|
||||
"proper-lockfile": "^4.1.2",
|
||||
"url-parse": "^1.5.7"
|
||||
},
|
||||
"scripts": {
|
||||
"clean": "rm -rf dist lib.es5 lib.esm",
|
||||
"build-test-bundle": "mkdir -p dist && browserify test/spec/browser-index.js -t [ babelify --plugins [ @babel/transform-modules-commonjs ] ] -d -o dist/browser-test-bundle.js",
|
||||
"build-bundle": "mkdir -p dist && browserify lib/browser/index.js -t [ babelify --plugins [ @babel/transform-modules-commonjs ] ] -s tus -d | exorcist ./dist/tus.js.map > dist/tus.js",
|
||||
"build-minify": "uglifyjs ./dist/tus.js -o ./dist/tus.min.js --compress --mangle --source-map \"content='./dist/tus.js.map',url='tus.min.js.map'\"",
|
||||
"build-transpile-esm": "babel -d lib.esm/ lib/",
|
||||
"build-transpile-cjs": "babel --no-babelrc --plugins @babel/transform-modules-commonjs -d lib.es5/ lib.esm/",
|
||||
"build-transpile": "npm-run-all build-transpile-esm build-transpile-cjs",
|
||||
"build": "npm-run-all clean build-bundle build-minify build-transpile build-test-bundle",
|
||||
"watch-bundle": "chokidar --initial \"lib/**/*\" -c \"npm run build-bundle\"",
|
||||
"watch-test-bundle": "chokidar --initial \"test/spec/**/*\" -c \"npm run build-test-bundle\"",
|
||||
"watch-transpile": "chokidar --initial \"lib/**/*\" -c \"npm run build-transpile\"",
|
||||
"watch": "npm-run-all --parallel watch-*",
|
||||
"test-puppeteer": "karma start test/karma/puppeteer.conf.js",
|
||||
"test-browserstack": "karma start test/karma/browserstack.conf.js",
|
||||
"test-node": "jasmine test/spec/node-index.js",
|
||||
"test-types": "tsd",
|
||||
"lint": "biome check .",
|
||||
"fix": "biome check --apply ."
|
||||
}
|
||||
}
|
||||
Reference in a new issue