{"version":3,"sources":["jsdelivr-header.js","/npm/upload-js@2.24.3/dist/main.js"],"names":[],"mappings":"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","file":"/npm/upload-js@2.24.3/dist/main.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/upload-js@2.24.3/dist/main.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","module.exports =\n/******/ (function() { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ \"./src/index.ts\":\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n  \"Upload\": function() { return /* reexport */ Upload; },\n  \"UploadApiError\": function() { return /* reexport */ UploadApiError; }\n});\n\n;// CONCATENATED MODULE: external \"@upload-io/upload-api-client-upload-js\"\nvar upload_api_client_upload_js_namespaceObject = require(\"@upload-io/upload-api-client-upload-js\");;\n;// CONCATENATED MODULE: ./src/Mutex.ts\n/**\n * A lightweight mutex. (Other libraries contain too many features and we want to keep the size upload-js down).\n *\n * Characteristics:\n * - Non-reentrant.\n * - Unfair. (Multiple callers awaiting 'acquire' will be granted the mutex in no order.)\n *   - When calling `safe` consecutively with no 'awaits' in-between, the current context will synchronously acquire\n *     the mutex every time.\n */\nfunction _call(body, then, direct) {\n  if (direct) {\n    return then ? then(body()) : body();\n  }\n\n  try {\n    var result = Promise.resolve(body());\n    return then ? result.then(then) : result;\n  } catch (e) {\n    return Promise.reject(e);\n  }\n}\n\nfunction _rethrow(thrown, value) {\n  if (thrown) throw value;\n  return value;\n}\n\nfunction _finallyRethrows(body, finalizer) {\n  try {\n    var result = body();\n  } catch (e) {\n    return finalizer(true, e);\n  }\n\n  if (result && result.then) {\n    return result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n  }\n\n  return finalizer(false, result);\n}\n\nfunction _empty() {}\n\nfunction _awaitIgnored(value, direct) {\n  if (!direct) {\n    return value && value.then ? value.then(_empty) : Promise.resolve();\n  }\n}\n\nfunction _settle(pact, state, value) {\n  if (!pact.s) {\n    if (value instanceof _Pact) {\n      if (value.s) {\n        if (state & 1) {\n          state = value.s;\n        }\n\n        value = value.v;\n      } else {\n        value.o = _settle.bind(null, pact, state);\n        return;\n      }\n    }\n\n    if (value && value.then) {\n      value.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n      return;\n    }\n\n    pact.s = state;\n    pact.v = value;\n    var observer = pact.o;\n\n    if (observer) {\n      observer(pact);\n    }\n  }\n}\n\nvar _Pact = /*#__PURE__*/function () {\n  function _Pact() {}\n\n  _Pact.prototype.then = function (onFulfilled, onRejected) {\n    var result = new _Pact();\n    var state = this.s;\n\n    if (state) {\n      var callback = state & 1 ? onFulfilled : onRejected;\n\n      if (callback) {\n        try {\n          _settle(result, 1, callback(this.v));\n        } catch (e) {\n          _settle(result, 2, e);\n        }\n\n        return result;\n      } else {\n        return this;\n      }\n    }\n\n    this.o = function (_this) {\n      try {\n        var value = _this.v;\n\n        if (_this.s & 1) {\n          _settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n        } else if (onRejected) {\n          _settle(result, 1, onRejected(value));\n        } else {\n          _settle(result, 2, value);\n        }\n      } catch (e) {\n        _settle(result, 2, e);\n      }\n    };\n\n    return result;\n  };\n\n  return _Pact;\n}();\n\nfunction _isSettledPact(thenable) {\n  return thenable instanceof _Pact && thenable.s & 1;\n}\n\nfunction _for(test, update, body) {\n  var stage;\n\n  for (;;) {\n    var shouldContinue = test();\n\n    if (_isSettledPact(shouldContinue)) {\n      shouldContinue = shouldContinue.v;\n    }\n\n    if (!shouldContinue) {\n      return result;\n    }\n\n    if (shouldContinue.then) {\n      stage = 0;\n      break;\n    }\n\n    var result = body();\n\n    if (result && result.then) {\n      if (_isSettledPact(result)) {\n        result = result.s;\n      } else {\n        stage = 1;\n        break;\n      }\n    }\n\n    if (update) {\n      var updateValue = update();\n\n      if (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n        stage = 2;\n        break;\n      }\n    }\n  }\n\n  var pact = new _Pact();\n\n  var reject = _settle.bind(null, pact, 2);\n\n  (stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n  return pact;\n\n  function _resumeAfterBody(value) {\n    result = value;\n\n    do {\n      if (update) {\n        updateValue = update();\n\n        if (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n          updateValue.then(_resumeAfterUpdate).then(void 0, reject);\n          return;\n        }\n      }\n\n      shouldContinue = test();\n\n      if (!shouldContinue || _isSettledPact(shouldContinue) && !shouldContinue.v) {\n        _settle(pact, 1, result);\n\n        return;\n      }\n\n      if (shouldContinue.then) {\n        shouldContinue.then(_resumeAfterTest).then(void 0, reject);\n        return;\n      }\n\n      result = body();\n\n      if (_isSettledPact(result)) {\n        result = result.v;\n      }\n    } while (!result || !result.then);\n\n    result.then(_resumeAfterBody).then(void 0, reject);\n  }\n\n  function _resumeAfterTest(shouldContinue) {\n    if (shouldContinue) {\n      result = body();\n\n      if (result && result.then) {\n        result.then(_resumeAfterBody).then(void 0, reject);\n      } else {\n        _resumeAfterBody(result);\n      }\n    } else {\n      _settle(pact, 1, result);\n    }\n  }\n\n  function _resumeAfterUpdate() {\n    if (shouldContinue = test()) {\n      if (shouldContinue.then) {\n        shouldContinue.then(_resumeAfterTest).then(void 0, reject);\n      } else {\n        _resumeAfterTest(shouldContinue);\n      }\n    } else {\n      _settle(pact, 1, result);\n    }\n  }\n}\n\nfunction _continue(value, then) {\n  return value && value.then ? value.then(then) : then(value);\n}\n\nfunction _async(f) {\n  return function () {\n    for (var args = [], i = 0; i < arguments.length; i++) {\n      args[i] = arguments[i];\n    }\n\n    try {\n      return Promise.resolve(f.apply(this, args));\n    } catch (e) {\n      return Promise.reject(e);\n    }\n  };\n}\n\nfunction Mutex() {\n  var mutex;\n  var resolver;\n\n  var safe = function safe(callback) {\n    return _call(acquire, function () {\n      return _finallyRethrows(callback, function (_wasThrown, _result) {\n        release();\n        return _rethrow(_wasThrown, _result);\n      });\n    });\n  };\n\n  var acquire = _async(function () {\n    // Loop necessary for when multiple calls are made to 'acquire' before a 'release' is called, else the call to\n    // 'release' will resume every caller currently waiting on 'acquire'.\n    // eslint-disable-next-line no-unmodified-loop-condition\n    return _continue(_for(function () {\n      return mutex !== undefined;\n    }, void 0, function () {\n      return _awaitIgnored(mutex);\n    }), function () {\n      mutex = new Promise(function (resolve) {\n        resolver = resolve;\n      });\n    });\n  });\n\n  var release = function release() {\n    if (resolver === undefined) {\n      throw new Error(\"Unable to release mutex: already released.\");\n    }\n\n    resolver();\n    resolver = undefined;\n    mutex = undefined;\n  };\n\n  return {\n    safe: safe\n  };\n}\n;// CONCATENATED MODULE: external \"progress-smoother\"\nvar external_progress_smoother_namespaceObject = require(\"progress-smoother\");;\n;// CONCATENATED MODULE: ./src/UploadApiError.ts\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _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; }, _typeof(obj); }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar UploadApiError = /*#__PURE__*/function (_Error) {\n  _inherits(UploadApiError, _Error);\n\n  var _super = _createSuper(UploadApiError);\n\n  function UploadApiError(response) {\n    var _this;\n\n    _classCallCheck(this, UploadApiError);\n\n    _this = _super.call(this, response.error.message);\n    _this.errorCode = response.error.code;\n    _this.details = response.error.details;\n    return _this;\n  }\n\n  return _createClass(UploadApiError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n;// CONCATENATED MODULE: ./src/Upload.ts\nfunction Upload_rethrow(thrown, value) {\n  if (thrown) throw value;\n  return value;\n}\n\nfunction Upload_finallyRethrows(body, finalizer) {\n  try {\n    var result = body();\n  } catch (e) {\n    return finalizer(true, e);\n  }\n\n  if (result && result.then) {\n    return result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n  }\n\n  return finalizer(false, result);\n}\n\nfunction _continueIgnored(value) {\n  if (value && value.then) {\n    return value.then(Upload_empty);\n  }\n}\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n\n\n\n\n\nfunction Upload_empty() {}\n\nvar accountIdLength = 7; // Sync with: upload/shared/**/AccountIdUtils\n\nfunction Upload_awaitIgnored(value, direct) {\n  if (!direct) {\n    return value && value.then ? value.then(Upload_empty) : Promise.resolve();\n  }\n}\n\nvar specialApiKeyAccountId = \"W142hJk\";\n\nfunction Upload_async(f) {\n  return function () {\n    for (var args = [], i = 0; i < arguments.length; i++) {\n      args[i] = arguments[i];\n    }\n\n    try {\n      return Promise.resolve(f.apply(this, args));\n    } catch (e) {\n      return Promise.reject(e);\n    }\n  };\n}\n\nvar specialApiKeys = [\"free\", \"demo\"];\n\nfunction _await(value, then, direct) {\n  if (direct) {\n    return then ? then(value) : value;\n  }\n\n  if (!value || !value.then) {\n    value = Promise.resolve(value);\n  }\n\n  return then ? value.then(then) : value;\n}\n\nvar apiKeyPrefix = \"public_\";\n\nfunction Upload_call(body, then, direct) {\n  if (direct) {\n    return then ? then(body()) : body();\n  }\n\n  try {\n    var result = Promise.resolve(body());\n    return then ? result.then(then) : result;\n  } catch (e) {\n    return Promise.reject(e);\n  }\n}\n\nvar maxUploadConcurrency = 5;\n\nfunction _callIgnored(body, direct) {\n  return Upload_call(body, Upload_empty, direct);\n}\n\nvar refreshBeforeExpirySeconds = 20;\n\nfunction _catch(body, recover) {\n  try {\n    var result = body();\n  } catch (e) {\n    return recover(e);\n  }\n\n  if (result && result.then) {\n    return result.then(void 0, recover);\n  }\n\n  return result;\n}\n\nvar onProgressInterval = 100;\n\nfunction _invokeIgnored(body) {\n  var result = body();\n\n  if (result && result.then) {\n    return result.then(Upload_empty);\n  }\n}\n\nvar retryAuthAfterErrorSeconds = 5;\nvar minJwtTtlSeconds = 10;\nvar maxJwtTtlSeconds = 2147483; // Max value for window.setTimeout is 2147483647ms -- if we go over this, the timeout fires immediately.\n\nvar accessTokenPathBase = \"/api/v1/access_tokens/\";\nvar logPrefix = \"[upload-js] \";\n/**\n * You should instantiate one instance of this class in your web app.\n *\n * Try using:\n *\n *    Upload({apiKey: \"free\"})\n *\n * If multiple instances exist, then all '*AuthSession' calls will be forwarded to the first instance that had an\n * '*AuthSession' call invoked on it.\n */\n\nfunction Upload(config) {\n  // ----------------\n  // READONLY MEMBERS\n  // ----------------\n  var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n\n  var accountId;\n  var authMutex = Mutex();\n  var apiUrl = (_b = (_a = config.internal) === null || _a === void 0 ? void 0 : _a.apiUrl) !== null && _b !== void 0 ? _b : \"https://api.bytescale.com\";\n  var cdnUrl = (_d = (_c = config.internal) === null || _c === void 0 ? void 0 : _c.cdnUrl) !== null && _d !== void 0 ? _d : \"https://upcdn.io\";\n  var authenticateWithApiKey = (_f = (_e = config.internal) === null || _e === void 0 ? void 0 : _e.authenticateWithApiKey) !== null && _f !== void 0 ? _f : true;\n  var headers = (_g = config.internal) === null || _g === void 0 ? void 0 : _g.headers;\n  var debugMode = config.debug === true;\n  var wasCalled = \" was called.\"; // ------------------\n  // READ/WRITE MEMBERS\n  // ------------------\n\n  var lastAuthSession; // ----------------\n  // CONSTRUCTOR\n  // ----------------\n\n  if ((config !== null && config !== void 0 ? config : undefined) === undefined) {\n    throw new Error(\"\".concat(logPrefix, \"Config parameter required.\"));\n  }\n\n  if (config.debug === true) {\n    console.log(\"\".concat(logPrefix, \"Initialized with API key '\").concat(config.apiKey, \"'\"));\n  }\n\n  if (((_h = config.apiKey) !== null && _h !== void 0 ? _h : undefined) === undefined) {\n    throw new Error(\"\".concat(logPrefix, \"Please provide an API key via the 'apiKey' config parameter.\"));\n  }\n\n  if (config.apiKey.trim() !== config.apiKey) {\n    // We do not support API keys with whitespace (by trimming ourselves) because otherwise we'd need to support this\n    // everywhere in perpetuity (since removing the trimming would be a breaking change).\n    throw new Error(\"\".concat(logPrefix, \"API key needs trimming (whitespace detected).\"));\n  } // Non-api-key authentication is required by Bytescale Dashboard, which uses bearer tokens instead of API keys because\n  // the user may not have any active API keys, but might still want to upload files via the Bytescale Dashboard.\n\n\n  if (((_j = config.internal) === null || _j === void 0 ? void 0 : _j.authenticateWithApiKey) === false) {\n    accountId = config.internal.accountId;\n  } else {\n    if (specialApiKeys.includes(config.apiKey)) {\n      accountId = specialApiKeyAccountId;\n    } else {\n      if (!config.apiKey.startsWith(apiKeyPrefix)) {\n        throw new Error(\"\".concat(logPrefix, \"API key must begin with \\\"\").concat(apiKeyPrefix, \"\\\".\"));\n      }\n\n      accountId = config.apiKey.substr(apiKeyPrefix.length, accountIdLength);\n\n      if (accountId.length !== accountIdLength) {\n        throw new Error(\"\".concat(logPrefix, \"API key is too short!\"));\n      }\n    }\n  }\n\n  var accessTokenUrl = \"\".concat(cdnUrl).concat(accessTokenPathBase).concat(accountId); // ----------------\n  // PUBLIC METHODS\n  // ----------------\n\n  var beginAuthSession = Upload_async(function (authUrl, authHeaders) {\n    return Upload_awaitIgnored(callAuthMethod(Upload_async(function (x) {\n      return x.beginAuthSession(authUrl, authHeaders);\n    }), Upload_async(function () {\n      debug(\"'beginAuthSession'\".concat(wasCalled)); // Explanation:\n      // - Prevents restarting the auth session on accidental double-calls to 'beginAuthSession': in some users' code,\n      //   this happens accidentally every second, so we want to bail-out if we detect this is occurring.\n      // - We only check 'authUrl' to determine if the 'same call' is being made, since 'authHeaders' is a function\n      //   and therefore its body can be switched-out by the user's code if they desire a change to its behaviour, so\n      //   don't need to call 'beginAuthSession' just to update it.\n\n      if ((lastAuthSession === null || lastAuthSession === void 0 ? void 0 : lastAuthSession.authUrl) === authUrl) {\n        error(\"'beginAuthSession' already called. Ignoring this call. Hint: call 'endAuthSession' and then 'beginAuthSession' if you want to restart the auth session.\");\n        return;\n      }\n\n      return Upload_call(doEndAuthSession, function () {\n        var authSession = {\n          accessToken: undefined,\n          accessTokenRefreshHandle: undefined,\n          isActive: true,\n          authUrl: authUrl\n        }; // Does not need to be inside the mutex since the environment is single-threaded, and we have not async-yielded\n        // since the mutex from 'endAuthSession' was relinquished (meaning we still have execution,\n        // so we know a) nothing can interject and b) nothing has interjected since the lock was relinquished).\n\n        lastAuthSession = authSession;\n        return Upload_awaitIgnored(refreshAccessToken(authUrl, authHeaders, authSession));\n      });\n    })));\n  });\n\n  var endAuthSession = Upload_async(function () {\n    return Upload_awaitIgnored(callAuthMethod(Upload_async(function (x) {\n      return x.endAuthSession();\n    }), Upload_async(function () {\n      debug(\"'endAuthSession'\".concat(wasCalled));\n      return _callIgnored(doEndAuthSession);\n    })));\n  });\n\n  var uploadFile = Upload_async(function (file) {\n    var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    debug(\"'uploadFile'\".concat(wasCalled)); // Initial progress (raised immediately and synchronously).\n\n    var cancellationHandlers = [];\n\n    var addCancellationHandler = function addCancellationHandler(ca) {\n      cancellationHandlers.push(ca);\n    };\n\n    var cancel = function cancel() {\n      return cancellationHandlers.forEach(function (x) {\n        return x();\n      });\n    };\n\n    if (params.onBegin !== undefined) {\n      params.onBegin({\n        cancel: cancel\n      });\n    }\n\n    return _catch(function () {\n      return _await(beginFileUpload(file, params, addCancellationHandler));\n    }, function (e) {\n      cancel();\n      throw e;\n    });\n  });\n\n  var url = function url(filePath, transformationOrParams) {\n    var _a;\n\n    var defaultSlug = \"raw\";\n    var params = typeof transformationOrParams === \"string\" ? {\n      transformation: transformationOrParams\n    } : transformationOrParams;\n    return \"\".concat(cdnUrl, \"/\").concat(accountId, \"/\").concat((_a = params === null || params === void 0 ? void 0 : params.transformation) !== null && _a !== void 0 ? _a : defaultSlug).concat(filePath).concat((params === null || params === void 0 ? void 0 : params.auth) === true ? \"?_auth=true\" : \"\");\n  };\n\n  var self = {\n    beginAuthSession: beginAuthSession,\n    endAuthSession: endAuthSession,\n    uploadFile: uploadFile,\n    url: url\n  }; // ----------------\n  // PRIVATE METHODS\n  // ----------------\n\n  var doEndAuthSession = Upload_async(function () {\n    return Upload_awaitIgnored(authMutex.safe(Upload_async(function () {\n      if (lastAuthSession === undefined) {\n        return;\n      }\n\n      var authSession = lastAuthSession;\n      lastAuthSession = undefined;\n\n      if (authSession.accessTokenRefreshHandle !== undefined) {\n        clearTimeout(authSession.accessTokenRefreshHandle);\n      }\n\n      authSession.isActive = false;\n      return _callIgnored(deleteAccessToken);\n    })));\n  });\n\n  var beginFileUpload = Upload_async(function (file, params, addCancellationHandler) {\n    var progressSmoother = (0,external_progress_smoother_namespaceObject.ProgressSmoother)({\n      maxValue: file.size,\n      teardownTime: 1000,\n      minDelayUntilFirstValue: 2000,\n      valueIncreaseDelta: 200 * 1024,\n      valueIncreaseRatePerSecond: 50 * 1024,\n      averageTimeBetweenValues: 1000 // When running, XHR should (hopefully) report at least every second, regardless of connection speed.\n\n    });\n\n    var reportProgress = function reportProgress(stopReportingProgress) {\n      if (params.onProgress === undefined) {\n        stopReportingProgress(); // Important to call this, as outer function awaits this call when the download ends.\n      } else {\n        var bytesSent = progressSmoother.smoothedValue();\n        var bytesTotal = file.size;\n\n        if (bytesSent === bytesTotal) {\n          stopReportingProgress();\n        }\n\n        params.onProgress({\n          bytesSent: bytesSent,\n          bytesTotal: bytesTotal,\n          progress: Math.round(bytesSent / bytesTotal * 100)\n        });\n      }\n    };\n\n    return withProgressReporting(onProgressInterval, reportProgress, Upload_async(function () {\n      var uploadRequest = {\n        path: params.path,\n        metadata: params.metadata,\n        mime: normalizeMimeType(file.type),\n        originalFileName: file.name,\n        protocol: \"1.1\",\n        size: file.size,\n        tags: params.tags\n      };\n      debug(\"Initiating file upload. Params = \".concat(JSON.stringify(uploadRequest)));\n      return _await((0,upload_api_client_upload_js_namespaceObject.beginMultipartUpload)(getConfig(), accountId, uploadRequest), function (_beginMultipartUpload) {\n        var uploadMetadata = handleApiResult(_beginMultipartUpload);\n        debug(\"Initiated file upload. Metadata = \".concat(JSON.stringify(uploadMetadata)));\n\n        var incUploadIndex = function () {\n          var lastUploadIndex = 0;\n          return function () {\n            if (lastUploadIndex === uploadMetadata.uploadParts.count - 1) {\n              return undefined;\n            }\n\n            return ++lastUploadIndex;\n          };\n        }();\n\n        var nextPartQueue = [uploadMetadata.uploadParts.first];\n\n        var getNextPart = Upload_async(function (workerIndex) {\n          var nextPart = nextPartQueue.pop();\n\n          if (nextPart !== undefined) {\n            debug(\"Dequeued part \".concat(nextPart.uploadPartIndex, \".\"), workerIndex);\n            return nextPart;\n          }\n\n          var uploadPartIndex = incUploadIndex();\n\n          if (uploadPartIndex === undefined) {\n            debug(\"No parts remaining.\", workerIndex);\n            return undefined;\n          }\n\n          debug(\"Fetching metadata for part \".concat(uploadPartIndex, \".\"), workerIndex);\n          return _await((0,upload_api_client_upload_js_namespaceObject.getUploadPart)(getConfig(), accountId, uploadMetadata.uploadId, uploadPartIndex), handleApiResult);\n        });\n\n        var bytesSentByEachWorker = [];\n\n        var uploadNextPart = function uploadNextPart(workerIndex) {\n          return _await(getNextPart(workerIndex), function (nextPart) {\n            return _invokeIgnored(function () {\n              if (nextPart !== undefined) {\n                var lastBytesSent = 0;\n\n                var progress = function progress(_ref) {\n                  var bytesSent = _ref.bytesSent;\n\n                  if (bytesSentByEachWorker[workerIndex] === undefined) {\n                    bytesSentByEachWorker[workerIndex] = bytesSent;\n                  } else {\n                    bytesSentByEachWorker[workerIndex] -= lastBytesSent;\n                    bytesSentByEachWorker[workerIndex] += bytesSent;\n                  }\n\n                  lastBytesSent = bytesSent;\n                  var totalBytesSent = bytesSentByEachWorker.reduce(function (a, b) {\n                    return a + b;\n                  });\n                  progressSmoother.setValue(totalBytesSent);\n                };\n\n                return _await(uploadPart(file, nextPart, progress, addCancellationHandler, workerIndex), function () {\n                  return Upload_awaitIgnored(uploadNextPart(workerIndex));\n                });\n              }\n            });\n          });\n        };\n\n        return _await(Promise.all(_toConsumableArray(Array(maxUploadConcurrency).keys()).map(function (workerIndex) {\n          return _await(uploadNextPart(workerIndex));\n        })), function () {\n          var uploadedFile = Object.assign({\n            accountId: accountId,\n            file: file\n          }, uploadMetadata.file);\n          debug(\"File upload completed.\");\n          return uploadedFile;\n        });\n      });\n    }));\n  });\n\n  var putUploadPart = Upload_async(function (url, content, progress, addCancellationHandler) {\n    var xhr = new XMLHttpRequest();\n    var pending = true;\n    addCancellationHandler(function () {\n      if (pending) {\n        xhr.abort();\n      }\n    });\n    return Upload_finallyRethrows(function () {\n      return _await(new Promise(function (resolve, reject) {\n        xhr.upload.addEventListener(\"progress\", function (evt) {\n          if (evt.lengthComputable) {\n            progress({\n              bytesSent: evt.loaded,\n              bytesTotal: evt.total\n            });\n          }\n        }, false);\n        xhr.addEventListener(\"load\", function () {\n          // Ensure we always report the progress of a finished upload as 100%.\n          progress({\n            bytesSent: content.size,\n            bytesTotal: content.size\n          });\n\n          if (Math.floor(xhr.status / 100) === 2) {\n            var etag = xhr.getResponseHeader(\"etag\");\n\n            if (etag === null || etag === undefined) {\n              reject(new Error(\"File upload error: no etag header in upload response.\"));\n            } else {\n              resolve({\n                etag: etag\n              });\n            }\n          } else {\n            reject(new Error(\"File upload error: status code \".concat(xhr.status)));\n          }\n        });\n\n        xhr.onabort = function () {\n          return reject(new Error(\"File upload cancelled.\"));\n        };\n\n        xhr.onerror = function () {\n          return reject(new Error(\"File upload error.\"));\n        };\n\n        xhr.ontimeout = function () {\n          return reject(new Error(\"File upload timeout.\"));\n        };\n\n        xhr.open(\"PUT\", url);\n        xhr.send(content);\n      }));\n    }, function (_wasThrown, _result) {\n      pending = false;\n      return Upload_rethrow(_wasThrown, _result);\n    });\n  });\n\n  var uploadPart = Upload_async(function (file, part, progress, addCancellationHandler, workerIndex) {\n    var content = part.range.inclusiveEnd === -1 ? new Blob() : file.slice(part.range.inclusiveStart, part.range.inclusiveEnd + 1);\n    debug(\"Uploading part \".concat(part.uploadPartIndex, \".\"), workerIndex);\n    return _await(putUploadPart(part.uploadUrl, content, progress, addCancellationHandler), function (_ref2) {\n      var etag = _ref2.etag;\n      return _await((0,upload_api_client_upload_js_namespaceObject.completeUploadPart)(getConfig(), accountId, part.uploadId, part.uploadPartIndex, {\n        etag: etag\n      }), function (_completeUploadPart) {\n        handleApiResult(_completeUploadPart);\n        debug(\"Uploaded part \".concat(part.uploadPartIndex, \".\"), workerIndex);\n      });\n    });\n  });\n\n  var withProgressReporting = Upload_async(function (tickInterval, tick, scope) {\n    var whileReportingResolved;\n    var whileReporting = new Promise(function (resolve) {\n      whileReportingResolved = resolve;\n    });\n    var isReporting = true;\n\n    var stopReporting = function stopReporting() {\n      if (isReporting) {\n        whileReportingResolved();\n        clearInterval(intervalHandle);\n        isReporting = false;\n      }\n    };\n\n    var intervalHandle = setInterval(function () {\n      return tick(stopReporting);\n    }, tickInterval);\n    return Upload_finallyRethrows(function () {\n      return Upload_call(scope, function (result) {\n        return _await(whileReporting, function () {\n          return result;\n        });\n      });\n    }, function (_wasThrown2, _result2) {\n      stopReporting();\n      return Upload_rethrow(_wasThrown2, _result2);\n    });\n  });\n\n  var deleteAccessToken = Upload_async(function () {\n    return Upload_awaitIgnored(deleteNoResponse(accessTokenUrl, {}, true // Required, else CDN response's `Set-Cookie` header will be silently ignored.\n    ));\n  });\n  /**\n   * Calls the given auth method on the canonical auth instance.\n   */\n\n\n  var callAuthMethod = Upload_async(function (other, me) {\n    var authInstance = getAuthInstance();\n    return _invokeIgnored(function () {\n      if (authInstance !== self) {\n        // Forward call to global auth instance.\n        return Upload_awaitIgnored(other(authInstance));\n      } else {\n        return _callIgnored(me);\n      }\n    });\n  });\n  /**\n   * Returns a single global instance of Upload.js for all auth calls.\n   * If we require multiple instances in the future, we can provide a parameter to disable this behaviour.\n   */\n\n\n  var getAuthInstance = function getAuthInstance() {\n    var globalKey = \"uploadJsAuthInstance\";\n    var globalAuthInstance = window[globalKey];\n\n    if (globalAuthInstance === undefined) {\n      globalAuthInstance = self;\n      window[globalKey] = self;\n    }\n\n    return globalAuthInstance;\n  };\n\n  var refreshAccessToken = Upload_async(function (authUrl, authHeaders, authSession) {\n    return _continueIgnored(_catch(function () {\n      return Upload_awaitIgnored(authMutex.safe(Upload_async(function () {\n        // Session may have been ended while timer was waiting.\n        if (!authSession.isActive) {\n          return;\n        }\n\n        return Upload_call(authHeaders, function (_authHeaders) {\n          return _await(getAccessToken(authUrl, _authHeaders), function (token) {\n            return _await(putJsonGetJson(accessTokenUrl, {}, {\n              accessToken: token\n            }, true // Required, else CDN response's `Set-Cookie` header will be silently ignored.\n            ), function (setTokenResult) {\n              var desiredTtlSeconds = setTokenResult.ttlSeconds - refreshBeforeExpirySeconds;\n\n              if (desiredTtlSeconds < minJwtTtlSeconds) {\n                warn(\"JWT expiration is too short: waiting for \".concat(minJwtTtlSeconds, \" seconds before refreshing.\"));\n              }\n\n              authSession.accessToken = setTokenResult.accessToken;\n              authSession.accessTokenRefreshHandle = window.setTimeout(function () {\n                refreshAccessToken(authUrl, authHeaders, authSession).then(function () {}, function (e) {\n                  return error(\"Permanent error when refreshing access token: \".concat(e));\n                });\n              }, Math.min(maxJwtTtlSeconds, Math.max(minJwtTtlSeconds, desiredTtlSeconds)) * 1000);\n            });\n          });\n        });\n      })));\n    }, function (e) {\n      // Use 'error' instead of 'debug' so that the user sees error messages.\n      error(\"Error when refreshing access token: \".concat(e)); // Perform attempts as part of same promise, rather than via a 'setTimeout' so that the 'beginAuthSession' only\n      // returns once an auth session has been successfully established.\n\n      return _await(new Promise(function (resolve) {\n        return setTimeout(resolve, retryAuthAfterErrorSeconds * 1000);\n      }), function () {\n        // Todo: is this stack safe?\n        return Upload_awaitIgnored(refreshAccessToken(authUrl, authHeaders, authSession));\n      });\n    }));\n  });\n\n  var putJsonGetJson = Upload_async(function (url, headers, requestBody, withCredentials) {\n    return _await(nonUploadApiRequest({\n      method: \"PUT\",\n      path: url,\n      headers: headers,\n      body: requestBody\n    }, withCredentials), function (_nonUploadApiRequest) {\n      return _await(handleApiResult(_nonUploadApiRequest));\n    });\n  });\n\n  var getAccessToken = Upload_async(function (authUrl, headers) {\n    var endpointName = \"Your auth API endpoint\";\n    return _await(nonUploadApiRequest({\n      method: \"GET\",\n      path: authUrl,\n      headers: headers\n    }, false), function (result) {\n      if (!result.ok) {\n        throw new Error(\"\".concat(logPrefix).concat(endpointName, \" returned a failed response. Please ensure the endpoint's status code is 200.\"));\n      }\n\n      var jwt = result.body;\n\n      if (typeof jwt !== \"string\") {\n        // We will receive 'null' if there was no content-type response header.\n        throw new Error(\"\".concat(logPrefix).concat(endpointName, \" returned an unsupported response. Please ensure: 1) 'Content-Type: text/plain' is in the HTTP response headers 2) the status code is 200.\"));\n      }\n\n      if (jwt.length === 0) {\n        throw new Error(\"\".concat(logPrefix).concat(endpointName, \" returned an empty string. Please return a valid JWT instead.\"));\n      }\n\n      if (jwt.trim().length !== jwt.length) {\n        // Whitespace can be a nightmare to spot/debug, so we fail early here.\n        throw new Error(\"\".concat(logPrefix).concat(endpointName, \" returned whitespace around the JWT, please remove it.\"));\n      }\n\n      return jwt;\n    });\n  });\n\n  var deleteNoResponse = Upload_async(function (url, headers, withCredentials) {\n    return _await(nonUploadApiRequest({\n      method: \"DELETE\",\n      path: url,\n      headers: headers\n    }, withCredentials), function (_nonUploadApiRequest2) {\n      handleApiResult(_nonUploadApiRequest2);\n    });\n  });\n\n  var handleApiResult = function handleApiResult(result) {\n    var _a;\n\n    if (result.ok) {\n      return result.body;\n    }\n\n    var errorResponseMaybe = result.body;\n\n    if (typeof ((_a = errorResponseMaybe === null || errorResponseMaybe === void 0 ? void 0 : errorResponseMaybe.error) === null || _a === void 0 ? void 0 : _a.code) === \"string\") {\n      throw new UploadApiError(errorResponseMaybe);\n    }\n\n    throw new Error(\"\".concat(logPrefix, \"Network error. If problem persists, and your network connectivity is healthy, please contact support@bytescale.com and provide: (a) time of failed request in UTC (b) screenshot of failed network response body (c) screenshot of failed network response header (d) browser + version.\"));\n  };\n\n  var nonUploadApiRequest = Upload_async(function (options, withCredentials) {\n    return (0,upload_api_client_upload_js_namespaceObject.request)({\n      BASE: options.path,\n      WITH_CREDENTIALS: withCredentials\n    }, Object.assign(Object.assign({}, options), {\n      path: \"\" // We set to \"\" because we're using \"BASE\" above instead.\n\n    }));\n  });\n\n  var getConfig = function getConfig() {\n    var apiConfig = {\n      BASE: apiUrl,\n      WITH_CREDENTIALS: true\n    };\n\n    if (authenticateWithApiKey) {\n      apiConfig.USERNAME = \"apikey\";\n      apiConfig.PASSWORD = config.apiKey;\n    }\n\n    var accessToken = lastAuthSession === null || lastAuthSession === void 0 ? void 0 : lastAuthSession.accessToken;\n\n    if (headers !== undefined || accessToken !== undefined) {\n      apiConfig.HEADERS = Upload_async(function () {\n        return _await(headers === undefined ? {} : headers(), function (headersFromConfig) {\n          var accessToken = lastAuthSession === null || lastAuthSession === void 0 ? void 0 : lastAuthSession.accessToken; // Re-fetch as there's been an async boundary so state may have changed.\n\n          return Object.assign(Object.assign({}, headersFromConfig), accessToken === undefined ? {} : {\n            \"authorization-token\": accessToken\n          });\n        }, headers === undefined);\n      });\n    }\n\n    return apiConfig;\n  };\n\n  var normalizeMimeType = function normalizeMimeType(mime) {\n    var normal = mime.toLowerCase();\n    var regex = /^[a-z0-9]+\\/[a-z0-9+\\-._]+(?:;[^=]+=[^;]+)*$/; // Sync with 'MimeTypeUnboxed' in 'upload/api'.\n\n    return regex.test(normal) ? normal : undefined;\n  };\n\n  var debug = function debug(message, workerIndex) {\n    if (debugMode) {\n      console.log(\"\".concat(logPrefix).concat(message).concat(workerIndex !== undefined ? \" (Worker \".concat(workerIndex, \")\") : \"\"));\n    }\n  };\n\n  var error = function error(message) {\n    console.error(\"\".concat(logPrefix).concat(message));\n  };\n\n  var warn = function warn(message) {\n    console.warn(\"\".concat(logPrefix).concat(message));\n  };\n\n  return self;\n}\n;// CONCATENATED MODULE: ./src/index.ts\n\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t!function() {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = function(exports) {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(\"./src/index.ts\");\n/******/ })()\n;"]}