@bytescale/sdk 3.0.0-alpha.12 → 3.0.0-alpha.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -91,6 +91,8 @@ uploadManager
91
91
  .upload({
92
92
  // Supported types:
93
93
  // - String
94
+ // - Blob
95
+ // - ArrayBuffer
94
96
  // - Buffer
95
97
  // - ReadableStream (Node.js), e.g. fs.createReadStream("file.txt")
96
98
  data: "Hello World",
@@ -169,6 +171,7 @@ uploadManager
169
171
  // Supported types:
170
172
  // - String
171
173
  // - Blob
174
+ // - ArrayBuffer
172
175
  // - File (i.e. from a DOM file input element)
173
176
  data: file
174
177
 
@@ -2044,10 +2044,13 @@ var UploadManagerBase = /*#__PURE__*/function () {
2044
2044
  _this2.assertNotCancelled(request);
2045
2045
  var source = _this2.processUploadSource(request.data);
2046
2046
  var preUploadInfo = _this2.getPreUploadInfo(request, source);
2047
- var onProgress = _this2.makeProgressCallback(request, preUploadInfo.size);
2047
+ var bytesTotal = preUploadInfo.size;
2048
+ var makeOnProgressForPart = _this2.makeOnProgressForPartFactory(request, bytesTotal);
2048
2049
  var init = _this2.preUpload(source);
2049
2050
  // Raise initial progress event SYNCHRONOUSLY.
2050
- onProgress(0);
2051
+ if (request.onProgress !== undefined) {
2052
+ request.onProgress(_this2.makeProgressEvent(0, bytesTotal));
2053
+ }
2051
2054
  return UploadManagerBase_await(_this2.beginUpload(request, preUploadInfo), function (uploadInfo) {
2052
2055
  var partCount = uploadInfo.uploadParts.count;
2053
2056
  var parts = UploadManagerBase_toConsumableArray(Array(partCount).keys());
@@ -2057,7 +2060,7 @@ var UploadManagerBase = /*#__PURE__*/function () {
2057
2060
  var intervalHandle = setInterval(_this2.onIntervalTick(request, cancel), _this2.intervalMs);
2058
2061
  return UploadManagerBase_continue(UploadManagerBase_finallyRethrows(function () {
2059
2062
  return UploadManagerBase_await(_this2.mapAsync(parts, preUploadInfo.maxConcurrentUploadParts, _async(function (part) {
2060
- return _this2.uploadPart(request, source, part, uploadInfo, onProgress, addCancellationHandler);
2063
+ return _this2.uploadPart(request, source, part, uploadInfo, makeOnProgressForPart(), addCancellationHandler);
2061
2064
  })), function () {
2062
2065
  return UploadManagerBase_awaitIgnored(_this2.postUpload(init));
2063
2066
  });
@@ -2113,21 +2116,37 @@ var UploadManagerBase = /*#__PURE__*/function () {
2113
2116
  addCancellationHandler: addCancellationHandler
2114
2117
  };
2115
2118
  }
2119
+ /**
2120
+ * Returns a callback, which when called, returns a callback that can be used by ONE specific part to report its progress.
2121
+ */
2116
2122
  }, {
2117
- key: "makeProgressCallback",
2118
- value: function makeProgressCallback(request, bytesTotal) {
2123
+ key: "makeOnProgressForPartFactory",
2124
+ value: function makeOnProgressForPartFactory(request, bytesTotal) {
2125
+ var _this4 = this;
2119
2126
  var onProgress = request.onProgress;
2120
2127
  if (onProgress === undefined) {
2121
- return function () {};
2128
+ return function () {
2129
+ return function () {};
2130
+ };
2122
2131
  }
2123
2132
  var bytesSent = 0;
2124
- return function (bytesSentDelta) {
2125
- bytesSent += bytesSentDelta;
2126
- onProgress({
2127
- bytesTotal: bytesTotal,
2128
- bytesSent: bytesSent,
2129
- progress: Math.round(bytesSent / bytesTotal * 100)
2130
- });
2133
+ return function () {
2134
+ var bytesSentForPart = 0;
2135
+ return function (bytesSentTotalForPart) {
2136
+ var delta = bytesSentTotalForPart - bytesSentForPart;
2137
+ bytesSentForPart += delta;
2138
+ bytesSent += delta;
2139
+ onProgress(_this4.makeProgressEvent(bytesSent, bytesTotal));
2140
+ };
2141
+ };
2142
+ }
2143
+ }, {
2144
+ key: "makeProgressEvent",
2145
+ value: function makeProgressEvent(bytesSent, bytesTotal) {
2146
+ return {
2147
+ bytesTotal: bytesTotal,
2148
+ bytesSent: bytesSent,
2149
+ progress: Math.round(bytesSent / bytesTotal * 100)
2131
2150
  };
2132
2151
  }
2133
2152
  }, {
@@ -2150,9 +2169,9 @@ var UploadManagerBase = /*#__PURE__*/function () {
2150
2169
  mime = _ref2.mime,
2151
2170
  originalFileName = _ref2.originalFileName;
2152
2171
  try {
2153
- var _this5 = this;
2154
- return UploadManagerBase_await(_this5.uploadApi.beginMultipartUpload({
2155
- accountId: _this5.accountId,
2172
+ var _this6 = this;
2173
+ return UploadManagerBase_await(_this6.uploadApi.beginMultipartUpload({
2174
+ accountId: _this6.accountId,
2156
2175
  beginMultipartUploadRequest: {
2157
2176
  metadata: request.metadata,
2158
2177
  mime: mime,
@@ -2171,14 +2190,14 @@ var UploadManagerBase = /*#__PURE__*/function () {
2171
2190
  key: "uploadPart",
2172
2191
  value: function uploadPart(request, source, partIndex, uploadInfo, onProgress, addCancellationHandler) {
2173
2192
  try {
2174
- var _this7 = this;
2175
- _this7.assertNotCancelled(request);
2176
- return UploadManagerBase_await(_this7.getUploadPart(partIndex, uploadInfo), function (part) {
2177
- _this7.assertNotCancelled(request);
2178
- return UploadManagerBase_await(_this7.putUploadPart(part, source, onProgress, addCancellationHandler), function (etag) {
2179
- _this7.assertNotCancelled(request);
2180
- return UploadManagerBase_awaitIgnored(_this7.uploadApi.completeUploadPart({
2181
- accountId: _this7.accountId,
2193
+ var _this8 = this;
2194
+ _this8.assertNotCancelled(request);
2195
+ return UploadManagerBase_await(_this8.getUploadPart(partIndex, uploadInfo), function (part) {
2196
+ _this8.assertNotCancelled(request);
2197
+ return UploadManagerBase_await(_this8.putUploadPart(part, source, onProgress, addCancellationHandler), function (etag) {
2198
+ _this8.assertNotCancelled(request);
2199
+ return UploadManagerBase_awaitIgnored(_this8.uploadApi.completeUploadPart({
2200
+ accountId: _this8.accountId,
2182
2201
  uploadId: uploadInfo.uploadId,
2183
2202
  uploadPartIndex: partIndex,
2184
2203
  completeUploadPartRequest: {
@@ -2198,9 +2217,9 @@ var UploadManagerBase = /*#__PURE__*/function () {
2198
2217
  key: "putUploadPart",
2199
2218
  value: function putUploadPart(part, source, onProgress, addCancellationHandler) {
2200
2219
  try {
2201
- var _this9 = this;
2220
+ var _this10 = this;
2202
2221
  var contentLength = part.range.inclusiveEnd + 1 - part.range.inclusiveStart;
2203
- return UploadManagerBase_await(_this9.doPutUploadPart(part, contentLength, source, onProgress, addCancellationHandler), function (_ref3) {
2222
+ return UploadManagerBase_await(_this10.doPutUploadPart(part, contentLength, source, onProgress, addCancellationHandler), function (_ref3) {
2204
2223
  var status = _ref3.status,
2205
2224
  etag = _ref3.etag;
2206
2225
  if (Math.floor(status / 100) !== 2) {
@@ -2209,6 +2228,8 @@ var UploadManagerBase = /*#__PURE__*/function () {
2209
2228
  if (etag === undefined) {
2210
2229
  throw new Error("No 'etag' response header found in upload part response.");
2211
2230
  }
2231
+ // Always send 100% for part, as some UploadManager implementations either don't report progress, or may not report the last chunk uploaded.
2232
+ onProgress(contentLength);
2212
2233
  return etag;
2213
2234
  });
2214
2235
  } catch (e) {
@@ -2219,13 +2240,13 @@ var UploadManagerBase = /*#__PURE__*/function () {
2219
2240
  key: "getUploadPart",
2220
2241
  value: function getUploadPart(partIndex, uploadInfo) {
2221
2242
  try {
2222
- var _this11 = this;
2243
+ var _this12 = this;
2223
2244
  if (partIndex === 0) {
2224
2245
  return uploadInfo.uploadParts.first;
2225
2246
  }
2226
- return UploadManagerBase_await(_this11.uploadApi.getUploadPart({
2247
+ return UploadManagerBase_await(_this12.uploadApi.getUploadPart({
2227
2248
  uploadId: uploadInfo.uploadId,
2228
- accountId: _this11.accountId,
2249
+ accountId: _this12.accountId,
2229
2250
  uploadPartIndex: partIndex
2230
2251
  }));
2231
2252
  } catch (e) {
@@ -2268,9 +2289,9 @@ var UploadManagerBase = /*#__PURE__*/function () {
2268
2289
  }]);
2269
2290
  return UploadManagerBase;
2270
2291
  }();
2271
- ;// CONCATENATED MODULE: ./src/public/browser/UploadManagerBrowser.ts
2272
- function UploadManagerBrowser_typeof(obj) { "@babel/helpers - typeof"; return UploadManagerBrowser_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, UploadManagerBrowser_typeof(obj); }
2273
- function UploadManagerBrowser_await(value, then, direct) {
2292
+ ;// CONCATENATED MODULE: ./src/private/UploadManagerBrowserWorkerBase.ts
2293
+ function UploadManagerBrowserWorkerBase_typeof(obj) { "@babel/helpers - typeof"; return UploadManagerBrowserWorkerBase_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, UploadManagerBrowserWorkerBase_typeof(obj); }
2294
+ function UploadManagerBrowserWorkerBase_await(value, then, direct) {
2274
2295
  if (direct) {
2275
2296
  return then ? then(value) : value;
2276
2297
  }
@@ -2279,44 +2300,31 @@ function UploadManagerBrowser_await(value, then, direct) {
2279
2300
  }
2280
2301
  return then ? value.then(then) : value;
2281
2302
  }
2282
- function UploadManagerBrowser_rethrow(thrown, value) {
2283
- if (thrown) throw value;
2284
- return value;
2285
- }
2286
- function UploadManagerBrowser_finallyRethrows(body, finalizer) {
2287
- try {
2288
- var result = body();
2289
- } catch (e) {
2290
- return finalizer(true, e);
2291
- }
2292
- if (result && result.then) {
2293
- return result.then(finalizer.bind(null, false), finalizer.bind(null, true));
2294
- }
2295
- return finalizer(false, result);
2296
- }
2297
- function UploadManagerBrowser_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
2298
- function UploadManagerBrowser_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, UploadManagerBrowser_toPropertyKey(descriptor.key), descriptor); } }
2299
- function UploadManagerBrowser_createClass(Constructor, protoProps, staticProps) { if (protoProps) UploadManagerBrowser_defineProperties(Constructor.prototype, protoProps); if (staticProps) UploadManagerBrowser_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
2300
- function UploadManagerBrowser_toPropertyKey(arg) { var key = UploadManagerBrowser_toPrimitive(arg, "string"); return UploadManagerBrowser_typeof(key) === "symbol" ? key : String(key); }
2301
- function UploadManagerBrowser_toPrimitive(input, hint) { if (UploadManagerBrowser_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (UploadManagerBrowser_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
2302
- function UploadManagerBrowser_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) UploadManagerBrowser_setPrototypeOf(subClass, superClass); }
2303
- function UploadManagerBrowser_setPrototypeOf(o, p) { UploadManagerBrowser_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return UploadManagerBrowser_setPrototypeOf(o, p); }
2304
- function UploadManagerBrowser_createSuper(Derived) { var hasNativeReflectConstruct = UploadManagerBrowser_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = UploadManagerBrowser_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = UploadManagerBrowser_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return UploadManagerBrowser_possibleConstructorReturn(this, result); }; }
2305
- function UploadManagerBrowser_possibleConstructorReturn(self, call) { if (call && (UploadManagerBrowser_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 UploadManagerBrowser_assertThisInitialized(self); }
2306
- function UploadManagerBrowser_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
2307
- function UploadManagerBrowser_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
2308
- function UploadManagerBrowser_getPrototypeOf(o) { UploadManagerBrowser_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return UploadManagerBrowser_getPrototypeOf(o); }
2303
+ function UploadManagerBrowserWorkerBase_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
2304
+ function UploadManagerBrowserWorkerBase_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, UploadManagerBrowserWorkerBase_toPropertyKey(descriptor.key), descriptor); } }
2305
+ function UploadManagerBrowserWorkerBase_createClass(Constructor, protoProps, staticProps) { if (protoProps) UploadManagerBrowserWorkerBase_defineProperties(Constructor.prototype, protoProps); if (staticProps) UploadManagerBrowserWorkerBase_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
2306
+ function UploadManagerBrowserWorkerBase_toPropertyKey(arg) { var key = UploadManagerBrowserWorkerBase_toPrimitive(arg, "string"); return UploadManagerBrowserWorkerBase_typeof(key) === "symbol" ? key : String(key); }
2307
+ function UploadManagerBrowserWorkerBase_toPrimitive(input, hint) { if (UploadManagerBrowserWorkerBase_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (UploadManagerBrowserWorkerBase_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
2308
+ function UploadManagerBrowserWorkerBase_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) UploadManagerBrowserWorkerBase_setPrototypeOf(subClass, superClass); }
2309
+ function UploadManagerBrowserWorkerBase_setPrototypeOf(o, p) { UploadManagerBrowserWorkerBase_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return UploadManagerBrowserWorkerBase_setPrototypeOf(o, p); }
2310
+ function UploadManagerBrowserWorkerBase_createSuper(Derived) { var hasNativeReflectConstruct = UploadManagerBrowserWorkerBase_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = UploadManagerBrowserWorkerBase_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = UploadManagerBrowserWorkerBase_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return UploadManagerBrowserWorkerBase_possibleConstructorReturn(this, result); }; }
2311
+ function UploadManagerBrowserWorkerBase_possibleConstructorReturn(self, call) { if (call && (UploadManagerBrowserWorkerBase_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 UploadManagerBrowserWorkerBase_assertThisInitialized(self); }
2312
+ function UploadManagerBrowserWorkerBase_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
2313
+ function UploadManagerBrowserWorkerBase_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
2314
+ function UploadManagerBrowserWorkerBase_getPrototypeOf(o) { UploadManagerBrowserWorkerBase_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return UploadManagerBrowserWorkerBase_getPrototypeOf(o); }
2309
2315
 
2310
2316
 
2311
-
2312
- var UploadManager = /*#__PURE__*/function (_UploadManagerBase) {
2313
- UploadManagerBrowser_inherits(UploadManager, _UploadManagerBase);
2314
- var _super = UploadManagerBrowser_createSuper(UploadManager);
2315
- function UploadManager() {
2316
- UploadManagerBrowser_classCallCheck(this, UploadManager);
2317
+ /**
2318
+ * The "browser" and "worker" runtimes support the same input types, but the former uses XHR and the latter uses Fetch.
2319
+ */
2320
+ var UploadManagerBrowserWorkerBase = /*#__PURE__*/function (_UploadManagerBase) {
2321
+ UploadManagerBrowserWorkerBase_inherits(UploadManagerBrowserWorkerBase, _UploadManagerBase);
2322
+ var _super = UploadManagerBrowserWorkerBase_createSuper(UploadManagerBrowserWorkerBase);
2323
+ function UploadManagerBrowserWorkerBase() {
2324
+ UploadManagerBrowserWorkerBase_classCallCheck(this, UploadManagerBrowserWorkerBase);
2317
2325
  return _super.apply(this, arguments);
2318
2326
  }
2319
- UploadManagerBrowser_createClass(UploadManager, [{
2327
+ UploadManagerBrowserWorkerBase_createClass(UploadManagerBrowserWorkerBase, [{
2320
2328
  key: "processUploadSource",
2321
2329
  value: function processUploadSource(data) {
2322
2330
  if (typeof data === "string") {
@@ -2328,13 +2336,19 @@ var UploadManager = /*#__PURE__*/function (_UploadManagerBase) {
2328
2336
  })
2329
2337
  };
2330
2338
  }
2339
+ if (data.byteLength !== undefined) {
2340
+ return {
2341
+ type: "ArrayBuffer",
2342
+ value: data
2343
+ };
2344
+ }
2331
2345
  if (data.size !== undefined) {
2332
2346
  return {
2333
2347
  type: "Blob",
2334
2348
  value: data
2335
2349
  };
2336
2350
  }
2337
- throw new Error("Unsupported type for 'data' parameter. Please provide a String, Blob, or File object (from a file input element).");
2351
+ throw new Error("Unsupported type for 'data' parameter. Please provide a String, Blob, ArrayBuffer, or File object (from a file input element).");
2338
2352
  }
2339
2353
  }, {
2340
2354
  key: "getPreUploadInfoPartial",
@@ -2342,8 +2356,15 @@ var UploadManager = /*#__PURE__*/function (_UploadManagerBase) {
2342
2356
  switch (data.type) {
2343
2357
  case "Blob":
2344
2358
  return this.getBlobInfo(data);
2359
+ case "ArrayBuffer":
2360
+ return {
2361
+ mime: undefined,
2362
+ size: data.value.byteLength,
2363
+ originalFileName: undefined,
2364
+ maxConcurrentUploadParts: undefined
2365
+ };
2345
2366
  default:
2346
- assertUnreachable(data.type);
2367
+ assertUnreachable(data);
2347
2368
  }
2348
2369
  }
2349
2370
  }, {
@@ -2354,11 +2375,66 @@ var UploadManager = /*#__PURE__*/function (_UploadManagerBase) {
2354
2375
  }, {
2355
2376
  key: "postUpload",
2356
2377
  value: function postUpload(_init) {
2357
- return UploadManagerBrowser_await();
2378
+ return UploadManagerBrowserWorkerBase_await();
2358
2379
  } // NO-OP.
2359
2380
  }, {
2381
+ key: "getRequestBody",
2382
+ value: function getRequestBody(part, blob) {
2383
+ return part.range.inclusiveEnd === -1 ? new Blob() : blob.value.slice(part.range.inclusiveStart, part.range.inclusiveEnd + 1);
2384
+ }
2385
+ }]);
2386
+ return UploadManagerBrowserWorkerBase;
2387
+ }(UploadManagerBase);
2388
+ ;// CONCATENATED MODULE: ./src/public/browser/UploadManagerBrowser.ts
2389
+ function UploadManagerBrowser_typeof(obj) { "@babel/helpers - typeof"; return UploadManagerBrowser_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, UploadManagerBrowser_typeof(obj); }
2390
+ function UploadManagerBrowser_await(value, then, direct) {
2391
+ if (direct) {
2392
+ return then ? then(value) : value;
2393
+ }
2394
+ if (!value || !value.then) {
2395
+ value = Promise.resolve(value);
2396
+ }
2397
+ return then ? value.then(then) : value;
2398
+ }
2399
+ function UploadManagerBrowser_rethrow(thrown, value) {
2400
+ if (thrown) throw value;
2401
+ return value;
2402
+ }
2403
+ function UploadManagerBrowser_finallyRethrows(body, finalizer) {
2404
+ try {
2405
+ var result = body();
2406
+ } catch (e) {
2407
+ return finalizer(true, e);
2408
+ }
2409
+ if (result && result.then) {
2410
+ return result.then(finalizer.bind(null, false), finalizer.bind(null, true));
2411
+ }
2412
+ return finalizer(false, result);
2413
+ }
2414
+ function UploadManagerBrowser_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
2415
+ function UploadManagerBrowser_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, UploadManagerBrowser_toPropertyKey(descriptor.key), descriptor); } }
2416
+ function UploadManagerBrowser_createClass(Constructor, protoProps, staticProps) { if (protoProps) UploadManagerBrowser_defineProperties(Constructor.prototype, protoProps); if (staticProps) UploadManagerBrowser_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
2417
+ function UploadManagerBrowser_toPropertyKey(arg) { var key = UploadManagerBrowser_toPrimitive(arg, "string"); return UploadManagerBrowser_typeof(key) === "symbol" ? key : String(key); }
2418
+ function UploadManagerBrowser_toPrimitive(input, hint) { if (UploadManagerBrowser_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (UploadManagerBrowser_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
2419
+ function UploadManagerBrowser_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) UploadManagerBrowser_setPrototypeOf(subClass, superClass); }
2420
+ function UploadManagerBrowser_setPrototypeOf(o, p) { UploadManagerBrowser_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return UploadManagerBrowser_setPrototypeOf(o, p); }
2421
+ function UploadManagerBrowser_createSuper(Derived) { var hasNativeReflectConstruct = UploadManagerBrowser_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = UploadManagerBrowser_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = UploadManagerBrowser_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return UploadManagerBrowser_possibleConstructorReturn(this, result); }; }
2422
+ function UploadManagerBrowser_possibleConstructorReturn(self, call) { if (call && (UploadManagerBrowser_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 UploadManagerBrowser_assertThisInitialized(self); }
2423
+ function UploadManagerBrowser_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
2424
+ function UploadManagerBrowser_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
2425
+ function UploadManagerBrowser_getPrototypeOf(o) { UploadManagerBrowser_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return UploadManagerBrowser_getPrototypeOf(o); }
2426
+
2427
+
2428
+ var UploadManager = /*#__PURE__*/function (_UploadManagerBrowser) {
2429
+ UploadManagerBrowser_inherits(UploadManager, _UploadManagerBrowser);
2430
+ var _super = UploadManagerBrowser_createSuper(UploadManager);
2431
+ function UploadManager() {
2432
+ UploadManagerBrowser_classCallCheck(this, UploadManager);
2433
+ return _super.apply(this, arguments);
2434
+ }
2435
+ UploadManagerBrowser_createClass(UploadManager, [{
2360
2436
  key: "doPutUploadPart",
2361
- value: function doPutUploadPart(part, contentLength, source, onProgress, addCancellationHandler) {
2437
+ value: function doPutUploadPart(part, _contentLength, source, onProgress, addCancellationHandler) {
2362
2438
  try {
2363
2439
  var _this2 = this;
2364
2440
  var xhr = new XMLHttpRequest();
@@ -2368,23 +2444,15 @@ var UploadManager = /*#__PURE__*/function (_UploadManagerBase) {
2368
2444
  xhr.abort();
2369
2445
  }
2370
2446
  });
2371
- var lastBytesSent = 0;
2372
- var setBytesSent = function setBytesSent(newBytesSent) {
2373
- var delta = newBytesSent - lastBytesSent;
2374
- lastBytesSent = newBytesSent;
2375
- onProgress(delta);
2376
- };
2377
2447
  return UploadManagerBrowser_finallyRethrows(function () {
2378
2448
  return UploadManagerBrowser_await(new Promise(function (resolve, reject) {
2379
2449
  xhr.upload.addEventListener("progress", function (evt) {
2380
2450
  if (evt.lengthComputable) {
2381
- setBytesSent(evt.loaded);
2451
+ onProgress(evt.loaded);
2382
2452
  }
2383
2453
  }, false);
2384
2454
  xhr.addEventListener("load", function () {
2385
2455
  var _a;
2386
- // Ensure we always report the progress of a finished upload as 100%.
2387
- setBytesSent(contentLength);
2388
2456
  var etag = (_a = xhr.getResponseHeader("etag")) !== null && _a !== void 0 ? _a : undefined;
2389
2457
  resolve({
2390
2458
  etag: etag,
@@ -2411,14 +2479,9 @@ var UploadManager = /*#__PURE__*/function (_UploadManagerBase) {
2411
2479
  return Promise.reject(e);
2412
2480
  }
2413
2481
  }
2414
- }, {
2415
- key: "getRequestBody",
2416
- value: function getRequestBody(part, blob) {
2417
- return part.range.inclusiveEnd === -1 ? new Blob() : blob.value.slice(part.range.inclusiveStart, part.range.inclusiveEnd + 1);
2418
- }
2419
2482
  }]);
2420
2483
  return UploadManager;
2421
- }(UploadManagerBase);
2484
+ }(UploadManagerBrowserWorkerBase);
2422
2485
  ;// CONCATENATED MODULE: ./src/private/ConsoleUtils.ts
2423
2486
  function ConsoleUtils_typeof(obj) { "@babel/helpers - typeof"; return ConsoleUtils_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, ConsoleUtils_typeof(obj); }
2424
2487
  function ConsoleUtils_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }