@webex/http-core 3.0.0-beta.301 → 3.0.0-beta.303

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.
@@ -128,7 +128,7 @@ function _request(options) {
128
128
  var user = o.auth.user || o.auth.username;
129
129
  var pass = o.auth.pass || o.auth.password;
130
130
  var token = btoa("".concat(user, ":").concat(pass));
131
- params.headers.authorization = "Basic ".concat(token);
131
+ params.headers.Authorization = "Basic ".concat(token);
132
132
  }
133
133
  }
134
134
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_request","options","resolve","params","response","setXhr","bindProgressEvents","setAuth","setCookies","setDefaults","setResponseType","setContentType","setPayload","setQs","logger","debug","method","uri","x","xhr","error","warn","statusCode","processResponseJson","headers","url","body","onprogress","download","emit","bind","catch","o","includes","toUpperCase","XMLHttpRequest","upload","auth","bearer","authorization","user","username","pass","password","token","btoa","jar","withCredentials","defs","cors","timeout","responseType","Blob","ArrayBuffer","json","detect","qs","stringify","ensureBlob","file","ret","type","filename","name","append","form","key","value","v","formData","reduce","fd","FormData","JSON","parse","e"],"sources":["request.shim.js"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\n/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* eslint-env browser */\n\n// Note: several code paths are ignored in this file. As far as I can tell, any\n// error conditions that would provoke those paths are otherwise prevented and\n// reported.\n\nimport {defaults, isArray, pick} from 'lodash';\nimport qs from 'qs';\n\nimport xhr from '../lib/xhr';\nimport detect from '../lib/detect';\n\n/**\n * @name request\n * @param {Object} options\n * @returns {Promise}\n */\nexport default function _request(options) {\n return new Promise((resolve) => {\n const params = pick(\n options,\n 'method',\n 'uri',\n 'withCredentials',\n 'headers',\n 'timeout',\n 'responseType'\n );\n\n // Set `response` to `true` to approximate an `HttpResponse` object\n params.response = true;\n\n setXhr(params);\n bindProgressEvents(params, options);\n setAuth(params, options);\n setCookies(params, options);\n setDefaults(params, options);\n setResponseType(params, options);\n setContentType(params, options);\n setPayload(params, options);\n setQs(params, options);\n\n options.logger.debug(\n `start http ${options.method ? options.method : 'request'} to ${options.uri}`\n );\n\n const x = xhr(params, (error, response) => {\n /* istanbul ignore next */\n if (error) {\n options.logger.warn(\n `XHR error for ${options.method || 'request'} to ${options.uri} :`,\n error\n );\n }\n\n /* istanbul ignore else */\n if (response) {\n if (response.statusCode >= 400) {\n options.logger.warn(\n `http ${options.method ? options.method : 'request'} to ${options.uri} result: ${\n response.statusCode\n }`\n );\n } else {\n options.logger.debug(\n `http ${options.method ? options.method : 'request'} to ${options.uri} result: ${\n response.statusCode\n }`\n );\n }\n response.options = options;\n processResponseJson(response, params);\n resolve(response);\n } else {\n resolve({\n statusCode: 0,\n options,\n headers: options.headers,\n method: options.method,\n url: options.uri,\n body: error,\n });\n }\n });\n\n x.onprogress = options.download.emit.bind(options.download, 'progress');\n }).catch((error) => {\n options.logger.warn(error);\n\n /* eslint arrow-body-style: [0] */\n /* istanbul ignore next */\n return {\n statusCode: 0,\n options,\n headers: options.headers,\n method: options.method,\n url: options.uri,\n body: error,\n };\n });\n\n /**\n * @param {Object} params\n * @param {Object} o\n * @private\n * @returns {undefined}\n */\n function bindProgressEvents(params, o) {\n if (params.method && ['PATCH', 'POST', 'PUT'].includes(params.method.toUpperCase())) {\n if (!params.xhr) {\n params.xhr = new XMLHttpRequest();\n }\n params.xhr.upload.onprogress = o.upload.emit.bind(o.upload, 'progress');\n }\n }\n\n /**\n * @param {Object} params\n * @param {Object} o\n * @private\n * @returns {undefined}\n */\n function setXhr(params) {\n params.xhr = new XMLHttpRequest();\n }\n\n /**\n * @param {Object} params\n * @param {Object} o\n * @private\n * @returns {undefined}\n */\n function setAuth(params, o) {\n if (o.auth) {\n if (o.auth.bearer) {\n params.headers.authorization = `Bearer ${o.auth.bearer}`;\n } else {\n const user = o.auth.user || o.auth.username;\n const pass = o.auth.pass || o.auth.password;\n\n const token = btoa(`${user}:${pass}`);\n\n params.headers.authorization = `Basic ${token}`;\n }\n }\n }\n\n /**\n * @param {Object} params\n * @param {Object} o\n * @private\n * @returns {undefined}\n */\n function setCookies(params, o) {\n if (o.jar) {\n params.withCredentials = true;\n }\n }\n\n /**\n * @param {Object} params\n * @param {Object} o\n * @private\n * @returns {undefined}\n */\n function setDefaults(params, o) {\n const defs = {\n cors: true,\n // raynos/xhr defaults withCredentials to true if cors is true, so we need\n // to make it explicitly false by default\n withCredentials: false,\n timeout: 0,\n };\n\n defaults(params, pick(o, Object.keys(defs)), defs);\n }\n\n /**\n * @param {Object} params\n * @param {Object} o\n * @private\n * @returns {undefined}\n */\n function setResponseType(params, o) {\n if (o.responseType === 'buffer') {\n params.responseType = 'arraybuffer';\n }\n }\n\n /**\n * @param {Object} params\n * @param {Object} o\n * @private\n * @returns {undefined}\n */\n async function setContentType(params, o) {\n if (o.body instanceof Blob || o.body instanceof ArrayBuffer) {\n o.json = params.json = false;\n params.headers['content-type'] = params.headers['content-type'] || (await detect(o.body));\n }\n }\n\n /**\n * @param {Object} params\n * @param {Object} o\n * @private\n * @returns {undefined}\n */\n function setQs(params, o) {\n if (o.qs) {\n params.uri += `?${qs.stringify(o.qs)}`;\n }\n }\n\n /**\n * Converts arraybuffers to blobs before uploading them\n * @param {mixed} file\n * @private\n * @returns {mixed}\n */\n function ensureBlob(file) {\n if (file instanceof ArrayBuffer) {\n const ret = file.type ? new Blob([file], {type: file.type}) : new Blob([file]);\n\n ret.filename = file.filename || file.name || 'untitled';\n\n return ret;\n }\n\n return file;\n }\n\n /**\n * Appends an item to a form\n * @param {FormData} form\n * @param {string} key\n * @param {mixed} value\n * @returns {undefined}\n */\n function append(form, key, value) {\n if (isArray(value)) {\n for (const v of value) {\n append(form, key, v);\n }\n\n return;\n }\n\n value = ensureBlob(value);\n if (value.name) {\n value.filename = value.name;\n form.append(key, value, value.name);\n } else {\n form.append(key, value);\n }\n }\n\n /**\n * @param {Object} params\n * @param {Object} o\n * @private\n * @returns {undefined}\n */\n function setPayload(params, o) {\n if ((!('json' in o) || o.json === true) && o.body) {\n params.json = o.body;\n } else if (o.form) {\n params.headers['Content-Type'] = 'application/x-www-form-urlencoded';\n params.body = qs.stringify(o.form);\n Reflect.deleteProperty(params, 'json');\n } else if (o.formData) {\n params.body = Object.keys(o.formData).reduce((fd, key) => {\n const value = o.formData[key];\n\n append(fd, key, value);\n\n return fd;\n }, new FormData());\n } else {\n params.body = o.body;\n Reflect.deleteProperty(params, 'json');\n }\n }\n\n /**\n * @param {Object} response\n * @param {Object} params\n * @private\n * @returns {undefined}\n */\n function processResponseJson(response, params) {\n // If params.json is not defined, xhr won't deserialize the response\n // so we should give it a shot just in case.\n if (!params.json && typeof response.body !== 'object') {\n try {\n response.body = JSON.parse(response.body);\n } catch (e) {\n /* eslint no-empty: [0] */\n }\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_request","options","resolve","params","response","setXhr","bindProgressEvents","setAuth","setCookies","setDefaults","setResponseType","setContentType","setPayload","setQs","logger","debug","method","uri","x","xhr","error","warn","statusCode","processResponseJson","headers","url","body","onprogress","download","emit","bind","catch","o","includes","toUpperCase","XMLHttpRequest","upload","auth","bearer","authorization","user","username","pass","password","token","btoa","Authorization","jar","withCredentials","defs","cors","timeout","responseType","Blob","ArrayBuffer","json","detect","qs","stringify","ensureBlob","file","ret","type","filename","name","append","form","key","value","v","formData","reduce","fd","FormData","JSON","parse","e"],"sources":["request.shim.js"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\n/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* eslint-env browser */\n\n// Note: several code paths are ignored in this file. As far as I can tell, any\n// error conditions that would provoke those paths are otherwise prevented and\n// reported.\n\nimport {defaults, isArray, pick} from 'lodash';\nimport qs from 'qs';\n\nimport xhr from '../lib/xhr';\nimport detect from '../lib/detect';\n\n/**\n * @name request\n * @param {Object} options\n * @returns {Promise}\n */\nexport default function _request(options) {\n return new Promise((resolve) => {\n const params = pick(\n options,\n 'method',\n 'uri',\n 'withCredentials',\n 'headers',\n 'timeout',\n 'responseType'\n );\n\n // Set `response` to `true` to approximate an `HttpResponse` object\n params.response = true;\n\n setXhr(params);\n bindProgressEvents(params, options);\n setAuth(params, options);\n setCookies(params, options);\n setDefaults(params, options);\n setResponseType(params, options);\n setContentType(params, options);\n setPayload(params, options);\n setQs(params, options);\n\n options.logger.debug(\n `start http ${options.method ? options.method : 'request'} to ${options.uri}`\n );\n\n const x = xhr(params, (error, response) => {\n /* istanbul ignore next */\n if (error) {\n options.logger.warn(\n `XHR error for ${options.method || 'request'} to ${options.uri} :`,\n error\n );\n }\n\n /* istanbul ignore else */\n if (response) {\n if (response.statusCode >= 400) {\n options.logger.warn(\n `http ${options.method ? options.method : 'request'} to ${options.uri} result: ${\n response.statusCode\n }`\n );\n } else {\n options.logger.debug(\n `http ${options.method ? options.method : 'request'} to ${options.uri} result: ${\n response.statusCode\n }`\n );\n }\n response.options = options;\n processResponseJson(response, params);\n resolve(response);\n } else {\n resolve({\n statusCode: 0,\n options,\n headers: options.headers,\n method: options.method,\n url: options.uri,\n body: error,\n });\n }\n });\n\n x.onprogress = options.download.emit.bind(options.download, 'progress');\n }).catch((error) => {\n options.logger.warn(error);\n\n /* eslint arrow-body-style: [0] */\n /* istanbul ignore next */\n return {\n statusCode: 0,\n options,\n headers: options.headers,\n method: options.method,\n url: options.uri,\n body: error,\n };\n });\n\n /**\n * @param {Object} params\n * @param {Object} o\n * @private\n * @returns {undefined}\n */\n function bindProgressEvents(params, o) {\n if (params.method && ['PATCH', 'POST', 'PUT'].includes(params.method.toUpperCase())) {\n if (!params.xhr) {\n params.xhr = new XMLHttpRequest();\n }\n params.xhr.upload.onprogress = o.upload.emit.bind(o.upload, 'progress');\n }\n }\n\n /**\n * @param {Object} params\n * @param {Object} o\n * @private\n * @returns {undefined}\n */\n function setXhr(params) {\n params.xhr = new XMLHttpRequest();\n }\n\n /**\n * @param {Object} params\n * @param {Object} o\n * @private\n * @returns {undefined}\n */\n function setAuth(params, o) {\n if (o.auth) {\n if (o.auth.bearer) {\n params.headers.authorization = `Bearer ${o.auth.bearer}`;\n } else {\n const user = o.auth.user || o.auth.username;\n const pass = o.auth.pass || o.auth.password;\n\n const token = btoa(`${user}:${pass}`);\n\n params.headers.Authorization = `Basic ${token}`;\n }\n }\n }\n\n /**\n * @param {Object} params\n * @param {Object} o\n * @private\n * @returns {undefined}\n */\n function setCookies(params, o) {\n if (o.jar) {\n params.withCredentials = true;\n }\n }\n\n /**\n * @param {Object} params\n * @param {Object} o\n * @private\n * @returns {undefined}\n */\n function setDefaults(params, o) {\n const defs = {\n cors: true,\n // raynos/xhr defaults withCredentials to true if cors is true, so we need\n // to make it explicitly false by default\n withCredentials: false,\n timeout: 0,\n };\n\n defaults(params, pick(o, Object.keys(defs)), defs);\n }\n\n /**\n * @param {Object} params\n * @param {Object} o\n * @private\n * @returns {undefined}\n */\n function setResponseType(params, o) {\n if (o.responseType === 'buffer') {\n params.responseType = 'arraybuffer';\n }\n }\n\n /**\n * @param {Object} params\n * @param {Object} o\n * @private\n * @returns {undefined}\n */\n async function setContentType(params, o) {\n if (o.body instanceof Blob || o.body instanceof ArrayBuffer) {\n o.json = params.json = false;\n params.headers['content-type'] = params.headers['content-type'] || (await detect(o.body));\n }\n }\n\n /**\n * @param {Object} params\n * @param {Object} o\n * @private\n * @returns {undefined}\n */\n function setQs(params, o) {\n if (o.qs) {\n params.uri += `?${qs.stringify(o.qs)}`;\n }\n }\n\n /**\n * Converts arraybuffers to blobs before uploading them\n * @param {mixed} file\n * @private\n * @returns {mixed}\n */\n function ensureBlob(file) {\n if (file instanceof ArrayBuffer) {\n const ret = file.type ? new Blob([file], {type: file.type}) : new Blob([file]);\n\n ret.filename = file.filename || file.name || 'untitled';\n\n return ret;\n }\n\n return file;\n }\n\n /**\n * Appends an item to a form\n * @param {FormData} form\n * @param {string} key\n * @param {mixed} value\n * @returns {undefined}\n */\n function append(form, key, value) {\n if (isArray(value)) {\n for (const v of value) {\n append(form, key, v);\n }\n\n return;\n }\n\n value = ensureBlob(value);\n if (value.name) {\n value.filename = value.name;\n form.append(key, value, value.name);\n } else {\n form.append(key, value);\n }\n }\n\n /**\n * @param {Object} params\n * @param {Object} o\n * @private\n * @returns {undefined}\n */\n function setPayload(params, o) {\n if ((!('json' in o) || o.json === true) && o.body) {\n params.json = o.body;\n } else if (o.form) {\n params.headers['Content-Type'] = 'application/x-www-form-urlencoded';\n params.body = qs.stringify(o.form);\n Reflect.deleteProperty(params, 'json');\n } else if (o.formData) {\n params.body = Object.keys(o.formData).reduce((fd, key) => {\n const value = o.formData[key];\n\n append(fd, key, value);\n\n return fd;\n }, new FormData());\n } else {\n params.body = o.body;\n Reflect.deleteProperty(params, 'json');\n }\n }\n\n /**\n * @param {Object} response\n * @param {Object} params\n * @private\n * @returns {undefined}\n */\n function processResponseJson(response, params) {\n // If params.json is not defined, xhr won't deserialize the response\n // so we should give it a shot just in case.\n if (!params.json && typeof response.body !== 'object') {\n try {\n response.body = JSON.parse(response.body);\n } catch (e) {\n /* eslint no-empty: [0] */\n }\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAYA;AAEA;AACA;AAAmC;AAAA;AAAA;AAEnC;AACA;AACA;AACA;AACA;AACe,SAASA,QAAQ,CAACC,OAAO,EAAE;EACxC,OAAO,qBAAY,UAACC,OAAO,EAAK;IAC9B,IAAMC,MAAM,GAAG,oBACbF,OAAO,EACP,QAAQ,EACR,KAAK,EACL,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,cAAc,CACf;;IAED;IACAE,MAAM,CAACC,QAAQ,GAAG,IAAI;IAEtBC,MAAM,CAACF,MAAM,CAAC;IACdG,kBAAkB,CAACH,MAAM,EAAEF,OAAO,CAAC;IACnCM,OAAO,CAACJ,MAAM,EAAEF,OAAO,CAAC;IACxBO,UAAU,CAACL,MAAM,EAAEF,OAAO,CAAC;IAC3BQ,WAAW,CAACN,MAAM,EAAEF,OAAO,CAAC;IAC5BS,eAAe,CAACP,MAAM,EAAEF,OAAO,CAAC;IAChCU,cAAc,CAACR,MAAM,EAAEF,OAAO,CAAC;IAC/BW,UAAU,CAACT,MAAM,EAAEF,OAAO,CAAC;IAC3BY,KAAK,CAACV,MAAM,EAAEF,OAAO,CAAC;IAEtBA,OAAO,CAACa,MAAM,CAACC,KAAK,sBACJd,OAAO,CAACe,MAAM,GAAGf,OAAO,CAACe,MAAM,GAAG,SAAS,iBAAOf,OAAO,CAACgB,GAAG,EAC5E;IAED,IAAMC,CAAC,GAAG,IAAAC,YAAG,EAAChB,MAAM,EAAE,UAACiB,KAAK,EAAEhB,QAAQ,EAAK;MACzC;MACA,IAAIgB,KAAK,EAAE;QACTnB,OAAO,CAACa,MAAM,CAACO,IAAI,yBACApB,OAAO,CAACe,MAAM,IAAI,SAAS,iBAAOf,OAAO,CAACgB,GAAG,SAC9DG,KAAK,CACN;MACH;;MAEA;MACA,IAAIhB,QAAQ,EAAE;QACZ,IAAIA,QAAQ,CAACkB,UAAU,IAAI,GAAG,EAAE;UAC9BrB,OAAO,CAACa,MAAM,CAACO,IAAI,gBACTpB,OAAO,CAACe,MAAM,GAAGf,OAAO,CAACe,MAAM,GAAG,SAAS,iBAAOf,OAAO,CAACgB,GAAG,sBACnEb,QAAQ,CAACkB,UAAU,EAEtB;QACH,CAAC,MAAM;UACLrB,OAAO,CAACa,MAAM,CAACC,KAAK,gBACVd,OAAO,CAACe,MAAM,GAAGf,OAAO,CAACe,MAAM,GAAG,SAAS,iBAAOf,OAAO,CAACgB,GAAG,sBACnEb,QAAQ,CAACkB,UAAU,EAEtB;QACH;QACAlB,QAAQ,CAACH,OAAO,GAAGA,OAAO;QAC1BsB,mBAAmB,CAACnB,QAAQ,EAAED,MAAM,CAAC;QACrCD,OAAO,CAACE,QAAQ,CAAC;MACnB,CAAC,MAAM;QACLF,OAAO,CAAC;UACNoB,UAAU,EAAE,CAAC;UACbrB,OAAO,EAAPA,OAAO;UACPuB,OAAO,EAAEvB,OAAO,CAACuB,OAAO;UACxBR,MAAM,EAAEf,OAAO,CAACe,MAAM;UACtBS,GAAG,EAAExB,OAAO,CAACgB,GAAG;UAChBS,IAAI,EAAEN;QACR,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;IAEFF,CAAC,CAACS,UAAU,GAAG1B,OAAO,CAAC2B,QAAQ,CAACC,IAAI,CAACC,IAAI,CAAC7B,OAAO,CAAC2B,QAAQ,EAAE,UAAU,CAAC;EACzE,CAAC,CAAC,CAACG,KAAK,CAAC,UAACX,KAAK,EAAK;IAClBnB,OAAO,CAACa,MAAM,CAACO,IAAI,CAACD,KAAK,CAAC;;IAE1B;IACA;IACA,OAAO;MACLE,UAAU,EAAE,CAAC;MACbrB,OAAO,EAAPA,OAAO;MACPuB,OAAO,EAAEvB,OAAO,CAACuB,OAAO;MACxBR,MAAM,EAAEf,OAAO,CAACe,MAAM;MACtBS,GAAG,EAAExB,OAAO,CAACgB,GAAG;MAChBS,IAAI,EAAEN;IACR,CAAC;EACH,CAAC,CAAC;;EAEF;AACF;AACA;AACA;AACA;AACA;EACE,SAASd,kBAAkB,CAACH,MAAM,EAAE6B,CAAC,EAAE;IACrC,IAAI7B,MAAM,CAACa,MAAM,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAACiB,QAAQ,CAAC9B,MAAM,CAACa,MAAM,CAACkB,WAAW,EAAE,CAAC,EAAE;MACnF,IAAI,CAAC/B,MAAM,CAACgB,GAAG,EAAE;QACfhB,MAAM,CAACgB,GAAG,GAAG,IAAIgB,cAAc,EAAE;MACnC;MACAhC,MAAM,CAACgB,GAAG,CAACiB,MAAM,CAACT,UAAU,GAAGK,CAAC,CAACI,MAAM,CAACP,IAAI,CAACC,IAAI,CAACE,CAAC,CAACI,MAAM,EAAE,UAAU,CAAC;IACzE;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,SAAS/B,MAAM,CAACF,MAAM,EAAE;IACtBA,MAAM,CAACgB,GAAG,GAAG,IAAIgB,cAAc,EAAE;EACnC;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,SAAS5B,OAAO,CAACJ,MAAM,EAAE6B,CAAC,EAAE;IAC1B,IAAIA,CAAC,CAACK,IAAI,EAAE;MACV,IAAIL,CAAC,CAACK,IAAI,CAACC,MAAM,EAAE;QACjBnC,MAAM,CAACqB,OAAO,CAACe,aAAa,oBAAaP,CAAC,CAACK,IAAI,CAACC,MAAM,CAAE;MAC1D,CAAC,MAAM;QACL,IAAME,IAAI,GAAGR,CAAC,CAACK,IAAI,CAACG,IAAI,IAAIR,CAAC,CAACK,IAAI,CAACI,QAAQ;QAC3C,IAAMC,IAAI,GAAGV,CAAC,CAACK,IAAI,CAACK,IAAI,IAAIV,CAAC,CAACK,IAAI,CAACM,QAAQ;QAE3C,IAAMC,KAAK,GAAGC,IAAI,WAAIL,IAAI,cAAIE,IAAI,EAAG;QAErCvC,MAAM,CAACqB,OAAO,CAACsB,aAAa,mBAAYF,KAAK,CAAE;MACjD;IACF;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,SAASpC,UAAU,CAACL,MAAM,EAAE6B,CAAC,EAAE;IAC7B,IAAIA,CAAC,CAACe,GAAG,EAAE;MACT5C,MAAM,CAAC6C,eAAe,GAAG,IAAI;IAC/B;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,SAASvC,WAAW,CAACN,MAAM,EAAE6B,CAAC,EAAE;IAC9B,IAAMiB,IAAI,GAAG;MACXC,IAAI,EAAE,IAAI;MACV;MACA;MACAF,eAAe,EAAE,KAAK;MACtBG,OAAO,EAAE;IACX,CAAC;IAED,wBAAShD,MAAM,EAAE,oBAAK6B,CAAC,EAAE,mBAAYiB,IAAI,CAAC,CAAC,EAAEA,IAAI,CAAC;EACpD;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,SAASvC,eAAe,CAACP,MAAM,EAAE6B,CAAC,EAAE;IAClC,IAAIA,CAAC,CAACoB,YAAY,KAAK,QAAQ,EAAE;MAC/BjD,MAAM,CAACiD,YAAY,GAAG,aAAa;IACrC;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;EALE,SAMezC,cAAc;IAAA;EAAA;EAO7B;AACF;AACA;AACA;AACA;AACA;EALE;IAAA,0FAPA,iBAA8BR,MAAM,EAAE6B,CAAC;MAAA;QAAA;UAAA;YAAA,MACjCA,CAAC,CAACN,IAAI,YAAY2B,IAAI,IAAIrB,CAAC,CAACN,IAAI,YAAY4B,WAAW;cAAA;cAAA;YAAA;YACzDtB,CAAC,CAACuB,IAAI,GAAGpD,MAAM,CAACoD,IAAI,GAAG,KAAK;YAAC,cACIpD,MAAM,CAACqB,OAAO,CAAC,cAAc,CAAC;YAAA;cAAA;cAAA;YAAA;YAAA;YAAA,OAAW,IAAAgC,eAAM,EAACxB,CAAC,CAACN,IAAI,CAAC;UAAA;YAAA;UAAA;YAAxFvB,MAAM,CAACqB,OAAO,CAAC,cAAc,CAAC;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA,CAEjC;IAAA;EAAA;EAQD,SAASX,KAAK,CAACV,MAAM,EAAE6B,CAAC,EAAE;IACxB,IAAIA,CAAC,CAACyB,EAAE,EAAE;MACRtD,MAAM,CAACc,GAAG,eAAQwC,WAAE,CAACC,SAAS,CAAC1B,CAAC,CAACyB,EAAE,CAAC,CAAE;IACxC;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,SAASE,UAAU,CAACC,IAAI,EAAE;IACxB,IAAIA,IAAI,YAAYN,WAAW,EAAE;MAC/B,IAAMO,GAAG,GAAGD,IAAI,CAACE,IAAI,GAAG,IAAIT,IAAI,CAAC,CAACO,IAAI,CAAC,EAAE;QAACE,IAAI,EAAEF,IAAI,CAACE;MAAI,CAAC,CAAC,GAAG,IAAIT,IAAI,CAAC,CAACO,IAAI,CAAC,CAAC;MAE9EC,GAAG,CAACE,QAAQ,GAAGH,IAAI,CAACG,QAAQ,IAAIH,IAAI,CAACI,IAAI,IAAI,UAAU;MAEvD,OAAOH,GAAG;IACZ;IAEA,OAAOD,IAAI;EACb;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,SAASK,MAAM,CAACC,IAAI,EAAEC,GAAG,EAAEC,KAAK,EAAE;IAChC,IAAI,uBAAQA,KAAK,CAAC,EAAE;MAAA,2CACFA,KAAK;QAAA;MAAA;QAArB,oDAAuB;UAAA,IAAZC,CAAC;UACVJ,MAAM,CAACC,IAAI,EAAEC,GAAG,EAAEE,CAAC,CAAC;QACtB;MAAC;QAAA;MAAA;QAAA;MAAA;MAED;IACF;IAEAD,KAAK,GAAGT,UAAU,CAACS,KAAK,CAAC;IACzB,IAAIA,KAAK,CAACJ,IAAI,EAAE;MACdI,KAAK,CAACL,QAAQ,GAAGK,KAAK,CAACJ,IAAI;MAC3BE,IAAI,CAACD,MAAM,CAACE,GAAG,EAAEC,KAAK,EAAEA,KAAK,CAACJ,IAAI,CAAC;IACrC,CAAC,MAAM;MACLE,IAAI,CAACD,MAAM,CAACE,GAAG,EAAEC,KAAK,CAAC;IACzB;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,SAASxD,UAAU,CAACT,MAAM,EAAE6B,CAAC,EAAE;IAC7B,IAAI,CAAC,EAAE,MAAM,IAAIA,CAAC,CAAC,IAAIA,CAAC,CAACuB,IAAI,KAAK,IAAI,KAAKvB,CAAC,CAACN,IAAI,EAAE;MACjDvB,MAAM,CAACoD,IAAI,GAAGvB,CAAC,CAACN,IAAI;IACtB,CAAC,MAAM,IAAIM,CAAC,CAACkC,IAAI,EAAE;MACjB/D,MAAM,CAACqB,OAAO,CAAC,cAAc,CAAC,GAAG,mCAAmC;MACpErB,MAAM,CAACuB,IAAI,GAAG+B,WAAE,CAACC,SAAS,CAAC1B,CAAC,CAACkC,IAAI,CAAC;MAClC,6BAAuB/D,MAAM,EAAE,MAAM,CAAC;IACxC,CAAC,MAAM,IAAI6B,CAAC,CAACsC,QAAQ,EAAE;MACrBnE,MAAM,CAACuB,IAAI,GAAG,mBAAYM,CAAC,CAACsC,QAAQ,CAAC,CAACC,MAAM,CAAC,UAACC,EAAE,EAAEL,GAAG,EAAK;QACxD,IAAMC,KAAK,GAAGpC,CAAC,CAACsC,QAAQ,CAACH,GAAG,CAAC;QAE7BF,MAAM,CAACO,EAAE,EAAEL,GAAG,EAAEC,KAAK,CAAC;QAEtB,OAAOI,EAAE;MACX,CAAC,EAAE,IAAIC,QAAQ,EAAE,CAAC;IACpB,CAAC,MAAM;MACLtE,MAAM,CAACuB,IAAI,GAAGM,CAAC,CAACN,IAAI;MACpB,6BAAuBvB,MAAM,EAAE,MAAM,CAAC;IACxC;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,SAASoB,mBAAmB,CAACnB,QAAQ,EAAED,MAAM,EAAE;IAC7C;IACA;IACA,IAAI,CAACA,MAAM,CAACoD,IAAI,IAAI,sBAAOnD,QAAQ,CAACsB,IAAI,MAAK,QAAQ,EAAE;MACrD,IAAI;QACFtB,QAAQ,CAACsB,IAAI,GAAGgD,IAAI,CAACC,KAAK,CAACvE,QAAQ,CAACsB,IAAI,CAAC;MAC3C,CAAC,CAAC,OAAOkD,CAAC,EAAE;QACV;MAAA;IAEJ;EACF;AACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webex/http-core",
3
- "version": "3.0.0-beta.301",
3
+ "version": "3.0.0-beta.303",
4
4
  "description": "Core HTTP library for the Cisco Webex",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -24,18 +24,18 @@
24
24
  ]
25
25
  },
26
26
  "devDependencies": {
27
- "@webex/test-helper-chai": "3.0.0-beta.301",
28
- "@webex/test-helper-file": "3.0.0-beta.301",
29
- "@webex/test-helper-make-local-url": "3.0.0-beta.301",
30
- "@webex/test-helper-mocha": "3.0.0-beta.301",
27
+ "@webex/test-helper-chai": "3.0.0-beta.303",
28
+ "@webex/test-helper-file": "3.0.0-beta.303",
29
+ "@webex/test-helper-make-local-url": "3.0.0-beta.303",
30
+ "@webex/test-helper-mocha": "3.0.0-beta.303",
31
31
  "sinon": "^9.2.4"
32
32
  },
33
33
  "dependencies": {
34
- "@webex/common": "3.0.0-beta.301",
35
- "@webex/http-core": "3.0.0-beta.301",
36
- "@webex/internal-plugin-device": "3.0.0-beta.301",
37
- "@webex/test-helper-test-users": "3.0.0-beta.301",
38
- "@webex/webex-core": "3.0.0-beta.301",
34
+ "@webex/common": "3.0.0-beta.303",
35
+ "@webex/http-core": "3.0.0-beta.303",
36
+ "@webex/internal-plugin-device": "3.0.0-beta.303",
37
+ "@webex/test-helper-test-users": "3.0.0-beta.303",
38
+ "@webex/webex-core": "3.0.0-beta.303",
39
39
  "file-type": "^16.0.1",
40
40
  "global": "^4.4.0",
41
41
  "is-function": "^1.0.1",
@@ -145,7 +145,7 @@ export default function _request(options) {
145
145
 
146
146
  const token = btoa(`${user}:${pass}`);
147
147
 
148
- params.headers.authorization = `Basic ${token}`;
148
+ params.headers.Authorization = `Basic ${token}`;
149
149
  }
150
150
  }
151
151
  }
@@ -0,0 +1,23 @@
1
+ import {assert} from '@webex/test-helper-chai';
2
+ import window from 'global/window';
3
+ import request from '@webex/http-core/src/request/request.shim';
4
+ import {EventEmitter} from 'events';
5
+
6
+ describe('Request shim', () => {
7
+ describe('#setAuth()', () => {
8
+ it('sets auth header', () => {
9
+
10
+ class DummyXMLHttpRequest {
11
+ upload = new EventEmitter();
12
+ }
13
+
14
+ window.XMLHttpRequest = DummyXMLHttpRequest;
15
+
16
+ const options = {upload: new EventEmitter(), headers: [], method: 'post', ...options, auth: {user: 'test', pass: 'pw'}};
17
+
18
+ request(options);
19
+
20
+ assert.equal(options.headers.Authorization, 'Basic dGVzdDpwdw==');
21
+ });
22
+ });
23
+ });