{"version":3,"sources":["jsdelivr-header.js","/npm/@videojs/xhr@2.7.0/lib/index.js"],"names":[],"mappings":"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","file":"/npm/@videojs/xhr@2.7.0/lib/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@videojs/xhr@2.7.0/lib/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\n\nvar window = require(\"global/window\");\n\nvar _extends = require(\"@babel/runtime/helpers/extends\");\n\nvar isFunction = require('is-function');\n\nvar InterceptorsStorage = require('./interceptors.js');\n\nvar RetryManager = require(\"./retry.js\");\n\ncreateXHR.httpHandler = require('./http-handler.js');\ncreateXHR.requestInterceptorsStorage = new InterceptorsStorage();\ncreateXHR.responseInterceptorsStorage = new InterceptorsStorage();\ncreateXHR.retryManager = new RetryManager();\n/**\n * @license\n * slighly modified parse-headers 2.0.2 <https://github.com/kesla/parse-headers/>\n * Copyright (c) 2014 David Björklund\n * Available under the MIT license\n * <https://github.com/kesla/parse-headers/blob/master/LICENCE>\n */\n\nvar parseHeaders = function parseHeaders(headers) {\n  var result = {};\n\n  if (!headers) {\n    return result;\n  }\n\n  headers.trim().split('\\n').forEach(function (row) {\n    var index = row.indexOf(':');\n    var key = row.slice(0, index).trim().toLowerCase();\n    var value = row.slice(index + 1).trim();\n\n    if (typeof result[key] === 'undefined') {\n      result[key] = value;\n    } else if (Array.isArray(result[key])) {\n      result[key].push(value);\n    } else {\n      result[key] = [result[key], value];\n    }\n  });\n  return result;\n};\n\nmodule.exports = createXHR; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = createXHR;\ncreateXHR.XMLHttpRequest = window.XMLHttpRequest || noop;\ncreateXHR.XDomainRequest = \"withCredentials\" in new createXHR.XMLHttpRequest() ? createXHR.XMLHttpRequest : window.XDomainRequest;\nforEachArray([\"get\", \"put\", \"post\", \"patch\", \"head\", \"delete\"], function (method) {\n  createXHR[method === \"delete\" ? \"del\" : method] = function (uri, options, callback) {\n    options = initParams(uri, options, callback);\n    options.method = method.toUpperCase();\n    return _createXHR(options);\n  };\n});\n\nfunction forEachArray(array, iterator) {\n  for (var i = 0; i < array.length; i++) {\n    iterator(array[i]);\n  }\n}\n\nfunction isEmpty(obj) {\n  for (var i in obj) {\n    if (obj.hasOwnProperty(i)) return false;\n  }\n\n  return true;\n}\n\nfunction initParams(uri, options, callback) {\n  var params = uri;\n\n  if (isFunction(options)) {\n    callback = options;\n\n    if (typeof uri === \"string\") {\n      params = {\n        uri: uri\n      };\n    }\n  } else {\n    params = _extends({}, options, {\n      uri: uri\n    });\n  }\n\n  params.callback = callback;\n  return params;\n}\n\nfunction createXHR(uri, options, callback) {\n  options = initParams(uri, options, callback);\n  return _createXHR(options);\n}\n\nfunction _createXHR(options) {\n  if (typeof options.callback === \"undefined\") {\n    throw new Error(\"callback argument missing\");\n  } // call all registered request interceptors for a given request type:\n\n\n  if (options.requestType && createXHR.requestInterceptorsStorage.getIsEnabled()) {\n    var requestInterceptorPayload = {\n      uri: options.uri || options.url,\n      headers: options.headers || {},\n      body: options.body,\n      metadata: options.metadata || {},\n      retry: options.retry,\n      timeout: options.timeout\n    };\n    var updatedPayload = createXHR.requestInterceptorsStorage.execute(options.requestType, requestInterceptorPayload);\n    options.uri = updatedPayload.uri;\n    options.headers = updatedPayload.headers;\n    options.body = updatedPayload.body;\n    options.metadata = updatedPayload.metadata;\n    options.retry = updatedPayload.retry;\n    options.timeout = updatedPayload.timeout;\n  }\n\n  var called = false;\n\n  var callback = function cbOnce(err, response, body) {\n    if (!called) {\n      called = true;\n      options.callback(err, response, body);\n    }\n  };\n\n  function readystatechange() {\n    // do not call load 2 times when response interceptors are enabled\n    // why do we even need this 2nd load?\n    if (xhr.readyState === 4 && !createXHR.responseInterceptorsStorage.getIsEnabled()) {\n      setTimeout(loadFunc, 0);\n    }\n  }\n\n  function getBody() {\n    // Chrome with requestType=blob throws errors arround when even testing access to responseText\n    var body = undefined;\n\n    if (xhr.response) {\n      body = xhr.response;\n    } else {\n      body = xhr.responseText || getXml(xhr);\n    }\n\n    if (isJson) {\n      try {\n        body = JSON.parse(body);\n      } catch (e) {}\n    }\n\n    return body;\n  }\n\n  function errorFunc(evt) {\n    clearTimeout(timeoutTimer);\n    clearTimeout(options.retryTimeout);\n\n    if (!(evt instanceof Error)) {\n      evt = new Error(\"\" + (evt || \"Unknown XMLHttpRequest Error\"));\n    }\n\n    evt.statusCode = 0; // we would like to retry on error:\n\n    if (!aborted && createXHR.retryManager.getIsEnabled() && options.retry && options.retry.shouldRetry()) {\n      options.retryTimeout = setTimeout(function () {\n        options.retry.moveToNextAttempt(); // we want to re-use the same options and the same xhr object:\n\n        options.xhr = xhr;\n\n        _createXHR(options);\n      }, options.retry.getCurrentFuzzedDelay());\n      return;\n    } // call all registered response interceptors for a given request type:\n\n\n    if (options.requestType && createXHR.responseInterceptorsStorage.getIsEnabled()) {\n      var responseInterceptorPayload = {\n        headers: failureResponse.headers || {},\n        body: failureResponse.body,\n        responseUrl: xhr.responseURL,\n        responseType: xhr.responseType\n      };\n\n      var _updatedPayload = createXHR.responseInterceptorsStorage.execute(options.requestType, responseInterceptorPayload);\n\n      failureResponse.body = _updatedPayload.body;\n      failureResponse.headers = _updatedPayload.headers;\n    }\n\n    return callback(evt, failureResponse);\n  } // will load the data & process the response in a special response object\n\n\n  function loadFunc() {\n    if (aborted) return;\n    var status;\n    clearTimeout(timeoutTimer);\n    clearTimeout(options.retryTimeout);\n\n    if (options.useXDR && xhr.status === undefined) {\n      //IE8 CORS GET successful response doesn't have a status field, but body is fine\n      status = 200;\n    } else {\n      status = xhr.status === 1223 ? 204 : xhr.status;\n    }\n\n    var response = failureResponse;\n    var err = null;\n\n    if (status !== 0) {\n      response = {\n        body: getBody(),\n        statusCode: status,\n        method: method,\n        headers: {},\n        url: uri,\n        rawRequest: xhr\n      };\n\n      if (xhr.getAllResponseHeaders) {\n        //remember xhr can in fact be XDR for CORS in IE\n        response.headers = parseHeaders(xhr.getAllResponseHeaders());\n      }\n    } else {\n      err = new Error(\"Internal XMLHttpRequest Error\");\n    } // call all registered response interceptors for a given request type:\n\n\n    if (options.requestType && createXHR.responseInterceptorsStorage.getIsEnabled()) {\n      var responseInterceptorPayload = {\n        headers: response.headers || {},\n        body: response.body,\n        responseUrl: xhr.responseURL,\n        responseType: xhr.responseType\n      };\n\n      var _updatedPayload2 = createXHR.responseInterceptorsStorage.execute(options.requestType, responseInterceptorPayload);\n\n      response.body = _updatedPayload2.body;\n      response.headers = _updatedPayload2.headers;\n    }\n\n    return callback(err, response, response.body);\n  }\n\n  var xhr = options.xhr || null;\n\n  if (!xhr) {\n    if (options.cors || options.useXDR) {\n      xhr = new createXHR.XDomainRequest();\n    } else {\n      xhr = new createXHR.XMLHttpRequest();\n    }\n  }\n\n  var key;\n  var aborted;\n  var uri = xhr.url = options.uri || options.url;\n  var method = xhr.method = options.method || \"GET\";\n  var body = options.body || options.data;\n  var headers = xhr.headers = options.headers || {};\n  var sync = !!options.sync;\n  var isJson = false;\n  var timeoutTimer;\n  var failureResponse = {\n    body: undefined,\n    headers: {},\n    statusCode: 0,\n    method: method,\n    url: uri,\n    rawRequest: xhr\n  };\n\n  if (\"json\" in options && options.json !== false) {\n    isJson = true;\n    headers[\"accept\"] || headers[\"Accept\"] || (headers[\"Accept\"] = \"application/json\"); //Don't override existing accept header declared by user\n\n    if (method !== \"GET\" && method !== \"HEAD\") {\n      headers[\"content-type\"] || headers[\"Content-Type\"] || (headers[\"Content-Type\"] = \"application/json\"); //Don't override existing accept header declared by user\n\n      body = JSON.stringify(options.json === true ? body : options.json);\n    }\n  }\n\n  xhr.onreadystatechange = readystatechange;\n  xhr.onload = loadFunc;\n  xhr.onerror = errorFunc; // IE9 must have onprogress be set to a unique function.\n\n  xhr.onprogress = function () {// IE must die\n  };\n\n  xhr.onabort = function () {\n    aborted = true;\n    clearTimeout(options.retryTimeout);\n  };\n\n  xhr.ontimeout = errorFunc;\n  xhr.open(method, uri, !sync, options.username, options.password); //has to be after open\n\n  if (!sync) {\n    xhr.withCredentials = !!options.withCredentials;\n  } // Cannot set timeout with sync request\n  // not setting timeout on the xhr object, because of old webkits etc. not handling that correctly\n  // both npm's request and jquery 1.x use this kind of timeout, so this is being consistent\n\n\n  if (!sync && options.timeout > 0) {\n    timeoutTimer = setTimeout(function () {\n      if (aborted) return;\n      aborted = true; //IE9 may still call readystatechange\n\n      xhr.abort(\"timeout\");\n      var e = new Error(\"XMLHttpRequest timeout\");\n      e.code = \"ETIMEDOUT\";\n      errorFunc(e);\n    }, options.timeout);\n  }\n\n  if (xhr.setRequestHeader) {\n    for (key in headers) {\n      if (headers.hasOwnProperty(key)) {\n        xhr.setRequestHeader(key, headers[key]);\n      }\n    }\n  } else if (options.headers && !isEmpty(options.headers)) {\n    throw new Error(\"Headers cannot be set on an XDomainRequest object\");\n  }\n\n  if (\"responseType\" in options) {\n    xhr.responseType = options.responseType;\n  }\n\n  if (\"beforeSend\" in options && typeof options.beforeSend === \"function\") {\n    options.beforeSend(xhr);\n  } // Microsoft Edge browser sends \"undefined\" when send is called with undefined value.\n  // XMLHttpRequest spec says to pass null as body to indicate no body\n  // See https://github.com/naugtur/xhr/issues/100.\n\n\n  xhr.send(body || null);\n  return xhr;\n}\n\nfunction getXml(xhr) {\n  // xhr.responseXML will throw Exception \"InvalidStateError\" or \"DOMException\"\n  // See https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseXML.\n  try {\n    if (xhr.responseType === \"document\") {\n      return xhr.responseXML;\n    }\n\n    var firefoxBugTakenEffect = xhr.responseXML && xhr.responseXML.documentElement.nodeName === \"parsererror\";\n\n    if (xhr.responseType === \"\" && !firefoxBugTakenEffect) {\n      return xhr.responseXML;\n    }\n  } catch (e) {}\n\n  return null;\n}\n\nfunction noop() {}"]}