@webex/http-core 3.0.0-bnr.5 → 3.0.0-next.2

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.
Files changed (46) hide show
  1. package/.eslintrc.js +6 -0
  2. package/babel.config.js +3 -0
  3. package/dist/http-error-subtypes.js.map +1 -1
  4. package/dist/http-error.js +21 -22
  5. package/dist/http-error.js.map +1 -1
  6. package/dist/index.js +58 -13
  7. package/dist/index.js.map +1 -1
  8. package/dist/interceptors/http-status.js +4 -3
  9. package/dist/interceptors/http-status.js.map +1 -1
  10. package/dist/lib/detect.js.map +1 -1
  11. package/dist/lib/interceptor.js +6 -4
  12. package/dist/lib/interceptor.js.map +1 -1
  13. package/dist/lib/xhr.js +7 -3
  14. package/dist/lib/xhr.js.map +1 -1
  15. package/dist/progress-event.js +6 -2
  16. package/dist/progress-event.js.map +1 -1
  17. package/dist/request/index.js +3 -30
  18. package/dist/request/index.js.map +1 -1
  19. package/dist/request/request.js.map +1 -1
  20. package/dist/request/request.shim.js +13 -11
  21. package/dist/request/request.shim.js.map +1 -1
  22. package/dist/request/utils.js +91 -0
  23. package/dist/request/utils.js.map +1 -0
  24. package/jest.config.js +3 -0
  25. package/package.json +31 -13
  26. package/process +1 -0
  27. package/src/index.js +55 -0
  28. package/src/lib/xhr.js +5 -1
  29. package/src/request/index.js +4 -36
  30. package/src/request/request.shim.js +5 -2
  31. package/src/request/utils.ts +78 -0
  32. package/test/integration/spec/request.js +2 -1
  33. package/test/unit/spec/index.js +58 -0
  34. package/test/unit/spec/request/request.shim.js +28 -0
  35. package/test/unit/spec/request/utils.js +77 -0
  36. package/dist/types/http-error-subtypes.d.ts +0 -8
  37. package/dist/types/http-error.d.ts +0 -41
  38. package/dist/types/index.d.ts +0 -7
  39. package/dist/types/interceptors/http-status.d.ts +0 -17
  40. package/dist/types/lib/detect.d.ts +0 -6
  41. package/dist/types/lib/interceptor.d.ts +0 -51
  42. package/dist/types/lib/xhr.d.ts +0 -6
  43. package/dist/types/progress-event.d.ts +0 -18
  44. package/dist/types/request/index.d.ts +0 -5
  45. package/dist/types/request/request.d.ts +0 -6
  46. package/dist/types/request/request.shim.d.ts +0 -6
@@ -6,9 +6,9 @@ _Object$defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = request;
9
- var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
10
9
  var _events = require("events");
11
10
  var _request2 = _interopRequireDefault(require("./request"));
11
+ var _utils = require("./utils");
12
12
  /*!
13
13
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
14
14
  */
@@ -25,7 +25,7 @@ function request(options) {
25
25
  options.headers = options.headers || {};
26
26
  options.download = new _events.EventEmitter();
27
27
  options.upload = new _events.EventEmitter();
28
- return intercept(options.interceptors, 'Request').then(function () {
28
+ return (0, _utils.intercept)(options, options.interceptors, 'Request').then(function () {
29
29
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
30
30
  args[_key] = arguments[_key];
31
31
  }
@@ -34,34 +34,7 @@ function request(options) {
34
34
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
35
35
  args[_key2] = arguments[_key2];
36
36
  }
37
- return intercept.apply(void 0, [options.interceptors.slice().reverse(), 'Response'].concat(args));
37
+ return _utils.intercept.apply(void 0, [options, options.interceptors.slice().reverse(), 'Response'].concat(args));
38
38
  });
39
-
40
- /**
41
- * @param {Array} interceptors
42
- * @param {string} key
43
- * @param {Object} res
44
- * @private
45
- * @returns {Promise}
46
- */
47
- function intercept(interceptors, key, res) {
48
- var successKey = "on".concat(key);
49
- var errorKey = "on".concat(key, "Error");
50
- return interceptors.reduce(function (promise, interceptor) {
51
- return promise.then(function (result) {
52
- interceptor.logOptions(options);
53
- if (interceptor[successKey]) {
54
- return interceptor[successKey](options, result);
55
- }
56
- return _promise.default.resolve(result);
57
- }, function (reason) {
58
- interceptor.logOptions(options);
59
- if (interceptor[errorKey]) {
60
- return interceptor[errorKey](options, reason);
61
- }
62
- return _promise.default.reject(reason);
63
- });
64
- }, _promise.default.resolve(res));
65
- }
66
39
  }
67
40
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["request","options","url","uri","headers","download","EventEmitter","upload","intercept","interceptors","then","args","_request","slice","reverse","key","res","successKey","errorKey","reduce","promise","interceptor","result","logOptions","resolve","reason","reject"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {EventEmitter} from 'events';\n\nimport _request from './request';\n\n/**\n * @param {Object} options\n * @returns {Promise}\n */\nexport default function request(options) {\n if (options.url) {\n options.uri = options.url;\n options.url = null;\n }\n\n options.headers = options.headers || {};\n\n options.download = new EventEmitter();\n options.upload = new EventEmitter();\n\n return intercept(options.interceptors, 'Request')\n .then((...args) => _request(options, ...args))\n .then((...args) => intercept(options.interceptors.slice().reverse(), 'Response', ...args));\n\n /**\n * @param {Array} interceptors\n * @param {string} key\n * @param {Object} res\n * @private\n * @returns {Promise}\n */\n function intercept(interceptors, key, res) {\n const successKey = `on${key}`;\n const errorKey = `on${key}Error`;\n\n return interceptors.reduce(\n (promise, interceptor) =>\n promise.then(\n (result) => {\n interceptor.logOptions(options);\n if (interceptor[successKey]) {\n return interceptor[successKey](options, result);\n }\n\n return Promise.resolve(result);\n },\n (reason) => {\n interceptor.logOptions(options);\n if (interceptor[errorKey]) {\n return interceptor[errorKey](options, reason);\n }\n\n return Promise.reject(reason);\n }\n ),\n Promise.resolve(res)\n );\n }\n}\n"],"mappings":";;;;;;;;;AAIA;AAEA;AANA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACe,SAASA,OAAO,CAACC,OAAO,EAAE;EACvC,IAAIA,OAAO,CAACC,GAAG,EAAE;IACfD,OAAO,CAACE,GAAG,GAAGF,OAAO,CAACC,GAAG;IACzBD,OAAO,CAACC,GAAG,GAAG,IAAI;EACpB;EAEAD,OAAO,CAACG,OAAO,GAAGH,OAAO,CAACG,OAAO,IAAI,CAAC,CAAC;EAEvCH,OAAO,CAACI,QAAQ,GAAG,IAAIC,oBAAY,EAAE;EACrCL,OAAO,CAACM,MAAM,GAAG,IAAID,oBAAY,EAAE;EAEnC,OAAOE,SAAS,CAACP,OAAO,CAACQ,YAAY,EAAE,SAAS,CAAC,CAC9CC,IAAI,CAAC;IAAA,kCAAIC,IAAI;MAAJA,IAAI;IAAA;IAAA,OAAKC,iBAAQ,gBAACX,OAAO,SAAKU,IAAI,EAAC;EAAA,EAAC,CAC7CD,IAAI,CAAC;IAAA,mCAAIC,IAAI;MAAJA,IAAI;IAAA;IAAA,OAAKH,SAAS,gBAACP,OAAO,CAACQ,YAAY,CAACI,KAAK,EAAE,CAACC,OAAO,EAAE,EAAE,UAAU,SAAKH,IAAI,EAAC;EAAA,EAAC;;EAE5F;AACF;AACA;AACA;AACA;AACA;AACA;EACE,SAASH,SAAS,CAACC,YAAY,EAAEM,GAAG,EAAEC,GAAG,EAAE;IACzC,IAAMC,UAAU,eAAQF,GAAG,CAAE;IAC7B,IAAMG,QAAQ,eAAQH,GAAG,UAAO;IAEhC,OAAON,YAAY,CAACU,MAAM,CACxB,UAACC,OAAO,EAAEC,WAAW;MAAA,OACnBD,OAAO,CAACV,IAAI,CACV,UAACY,MAAM,EAAK;QACVD,WAAW,CAACE,UAAU,CAACtB,OAAO,CAAC;QAC/B,IAAIoB,WAAW,CAACJ,UAAU,CAAC,EAAE;UAC3B,OAAOI,WAAW,CAACJ,UAAU,CAAC,CAAChB,OAAO,EAAEqB,MAAM,CAAC;QACjD;QAEA,OAAO,iBAAQE,OAAO,CAACF,MAAM,CAAC;MAChC,CAAC,EACD,UAACG,MAAM,EAAK;QACVJ,WAAW,CAACE,UAAU,CAACtB,OAAO,CAAC;QAC/B,IAAIoB,WAAW,CAACH,QAAQ,CAAC,EAAE;UACzB,OAAOG,WAAW,CAACH,QAAQ,CAAC,CAACjB,OAAO,EAAEwB,MAAM,CAAC;QAC/C;QAEA,OAAO,iBAAQC,MAAM,CAACD,MAAM,CAAC;MAC/B,CAAC,CACF;IAAA,GACH,iBAAQD,OAAO,CAACR,GAAG,CAAC,CACrB;EACH;AACF"}
1
+ {"version":3,"names":["_events","require","_request2","_interopRequireDefault","_utils","request","options","url","uri","headers","download","EventEmitter","upload","intercept","interceptors","then","_len","arguments","length","args","Array","_key","_request","apply","concat","_len2","_key2","slice","reverse"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {EventEmitter} from 'events';\n\nimport _request from './request';\nimport {intercept} from './utils';\n\n/**\n * @param {Object} options\n * @returns {Promise}\n */\nexport default function request(options) {\n if (options.url) {\n options.uri = options.url;\n options.url = null;\n }\n\n options.headers = options.headers || {};\n\n options.download = new EventEmitter();\n options.upload = new EventEmitter();\n\n return intercept(options, options.interceptors, 'Request')\n .then((...args) => _request(options, ...args))\n .then((...args) =>\n intercept(options, options.interceptors.slice().reverse(), 'Response', ...args)\n );\n}\n"],"mappings":";;;;;;;;AAIA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,SAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAPA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACe,SAASI,OAAOA,CAACC,OAAO,EAAE;EACvC,IAAIA,OAAO,CAACC,GAAG,EAAE;IACfD,OAAO,CAACE,GAAG,GAAGF,OAAO,CAACC,GAAG;IACzBD,OAAO,CAACC,GAAG,GAAG,IAAI;EACpB;EAEAD,OAAO,CAACG,OAAO,GAAGH,OAAO,CAACG,OAAO,IAAI,CAAC,CAAC;EAEvCH,OAAO,CAACI,QAAQ,GAAG,IAAIC,oBAAY,CAAC,CAAC;EACrCL,OAAO,CAACM,MAAM,GAAG,IAAID,oBAAY,CAAC,CAAC;EAEnC,OAAO,IAAAE,gBAAS,EAACP,OAAO,EAAEA,OAAO,CAACQ,YAAY,EAAE,SAAS,CAAC,CACvDC,IAAI,CAAC;IAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAIC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;IAAA;IAAA,OAAKC,iBAAQ,CAAAC,KAAA,UAACjB,OAAO,EAAAkB,MAAA,CAAKL,IAAI,EAAC;EAAA,EAAC,CAC7CJ,IAAI,CAAC;IAAA,SAAAU,KAAA,GAAAR,SAAA,CAAAC,MAAA,EAAIC,IAAI,OAAAC,KAAA,CAAAK,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;MAAJP,IAAI,CAAAO,KAAA,IAAAT,SAAA,CAAAS,KAAA;IAAA;IAAA,OACZb,gBAAS,CAAAU,KAAA,UAACjB,OAAO,EAAEA,OAAO,CAACQ,YAAY,CAACa,KAAK,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,EAAE,UAAU,EAAAJ,MAAA,CAAKL,IAAI,EAAC;EAAA,CACjF,CAAC;AACL"}
@@ -1 +1 @@
1
- {"version":3,"names":["prepareOptions","options","responseType","encoding","withCredentials","jar","isBuffer","body","detect","then","type","headers","resolve","doRequest","logger","r","request","error","response","warn","Buffer","from","statusCode","method","url","on","total","loaded","data","length","download","emit","ProgressEvent","_request"],"sources":["request.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport request from 'request';\nimport {Buffer} from 'safe-buffer';\nimport {isBuffer} from '@webex/common';\n\nimport detect from '../lib/detect';\nimport ProgressEvent from '../progress-event';\n\n/**\n * @param {Object} options\n * @private\n * @returns {Promise}\n */\nfunction prepareOptions(options) {\n if (options.responseType === 'buffer' || options.responseType === 'blob') {\n options.encoding = null;\n }\n\n if (options.withCredentials) {\n options.jar = true;\n }\n\n if (isBuffer(options.body)) {\n return detect(options.body).then((type) => {\n options.headers['content-type'] = type;\n\n return options;\n });\n }\n\n return Promise.resolve(options);\n}\n\n/**\n * @param {Object} options\n * @private\n * @returns {Promise}\n */\nfunction doRequest(options) {\n return new Promise((resolve) => {\n const {logger} = options;\n\n const r = request(options, (error, response) => {\n if (error) {\n logger.warn(error);\n }\n\n if (response) {\n response.options = options;\n\n // I'm not sure why this line is necessary. request seems to be creating\n // buffers that aren't Buffers.\n if (\n options.responseType === 'buffer' &&\n response.body.type === 'Buffer' &&\n !isBuffer(response.body)\n ) {\n response.body = Buffer.from(response.body);\n }\n\n if (isBuffer(response.body) && !response.body.type) {\n resolve(\n detect(response.body).then((type) => {\n response.body.type = type;\n\n return response;\n })\n );\n\n return;\n }\n\n resolve(response);\n } else {\n // Make a network error behave like a browser network error.\n resolve({\n statusCode: 0,\n options,\n headers: options.headers,\n method: options.method,\n url: options.url,\n body: error,\n });\n }\n });\n\n r.on('response', (response) => {\n const total = parseInt(response.headers['content-length'], 10);\n let loaded = 0;\n\n response.on('data', (data) => {\n loaded += data.length;\n options.download.emit('progress', new ProgressEvent(loaded, total));\n });\n });\n });\n}\n\n/**\n * @name request\n * @param {Object} options\n * @returns {Promise}\n */\nexport default function _request(options) {\n return prepareOptions(options).then(doRequest);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_request2","_interopRequireDefault","require","_safeBuffer","_common","_detect","_progressEvent","prepareOptions","options","responseType","encoding","withCredentials","jar","isBuffer","body","detect","then","type","headers","_promise","default","resolve","doRequest","logger","r","request","error","response","warn","Buffer","from","statusCode","method","url","on","total","_parseInt2","loaded","data","length","download","emit","ProgressEvent","_request"],"sources":["request.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport request from 'request';\nimport {Buffer} from 'safe-buffer';\nimport {isBuffer} from '@webex/common';\n\nimport detect from '../lib/detect';\nimport ProgressEvent from '../progress-event';\n\n/**\n * @param {Object} options\n * @private\n * @returns {Promise}\n */\nfunction prepareOptions(options) {\n if (options.responseType === 'buffer' || options.responseType === 'blob') {\n options.encoding = null;\n }\n\n if (options.withCredentials) {\n options.jar = true;\n }\n\n if (isBuffer(options.body)) {\n return detect(options.body).then((type) => {\n options.headers['content-type'] = type;\n\n return options;\n });\n }\n\n return Promise.resolve(options);\n}\n\n/**\n * @param {Object} options\n * @private\n * @returns {Promise}\n */\nfunction doRequest(options) {\n return new Promise((resolve) => {\n const {logger} = options;\n\n const r = request(options, (error, response) => {\n if (error) {\n logger.warn(error);\n }\n\n if (response) {\n response.options = options;\n\n // I'm not sure why this line is necessary. request seems to be creating\n // buffers that aren't Buffers.\n if (\n options.responseType === 'buffer' &&\n response.body.type === 'Buffer' &&\n !isBuffer(response.body)\n ) {\n response.body = Buffer.from(response.body);\n }\n\n if (isBuffer(response.body) && !response.body.type) {\n resolve(\n detect(response.body).then((type) => {\n response.body.type = type;\n\n return response;\n })\n );\n\n return;\n }\n\n resolve(response);\n } else {\n // Make a network error behave like a browser network error.\n resolve({\n statusCode: 0,\n options,\n headers: options.headers,\n method: options.method,\n url: options.url,\n body: error,\n });\n }\n });\n\n r.on('response', (response) => {\n const total = parseInt(response.headers['content-length'], 10);\n let loaded = 0;\n\n response.on('data', (data) => {\n loaded += data.length;\n options.download.emit('progress', new ProgressEvent(loaded, total));\n });\n });\n });\n}\n\n/**\n * @name request\n * @param {Object} options\n * @returns {Promise}\n */\nexport default function _request(options) {\n return prepareOptions(options).then(doRequest);\n}\n"],"mappings":"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"}
@@ -11,20 +11,22 @@ _Object$defineProperty(exports, "__esModule", {
11
11
  });
12
12
  exports.default = _request;
13
13
  var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
14
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/typeof"));
15
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
14
16
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
15
17
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
16
18
  var _deleteProperty = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/delete-property"));
17
- var _typeof2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/typeof"));
18
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
19
- var _pick2 = _interopRequireDefault(require("lodash/pick"));
20
- var _isArray2 = _interopRequireDefault(require("lodash/isArray"));
21
- var _defaults2 = _interopRequireDefault(require("lodash/defaults"));
19
+ var _lodash = require("lodash");
22
20
  var _qs = _interopRequireDefault(require("qs"));
23
21
  var _xhr = _interopRequireDefault(require("../lib/xhr"));
24
22
  var _detect = _interopRequireDefault(require("../lib/detect"));
25
23
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && o[_Symbol$iterator] || o["@@iterator"]; if (!it) { if (_Array$isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
26
24
  function _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); }
27
- function _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; }
25
+ function _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; } /* eslint-disable no-underscore-dangle */ /*!
26
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
27
+ */ /* eslint-env browser */ // Note: several code paths are ignored in this file. As far as I can tell, any
28
+ // error conditions that would provoke those paths are otherwise prevented and
29
+ // reported.
28
30
  /**
29
31
  * @name request
30
32
  * @param {Object} options
@@ -32,7 +34,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
32
34
  */
33
35
  function _request(options) {
34
36
  return new _promise.default(function (resolve) {
35
- var params = (0, _pick2.default)(options, 'method', 'uri', 'withCredentials', 'headers', 'timeout', 'responseType');
37
+ var params = (0, _lodash.pick)(options, 'method', 'uri', 'withCredentials', 'headers', 'timeout', 'responseType');
36
38
 
37
39
  // Set `response` to `true` to approximate an `HttpResponse` object
38
40
  params.response = true;
@@ -49,7 +51,7 @@ function _request(options) {
49
51
  var x = (0, _xhr.default)(params, function (error, response) {
50
52
  /* istanbul ignore next */
51
53
  if (error) {
52
- options.logger.warn(error);
54
+ options.logger.warn("XHR error for ".concat(options.method || 'request', " to ").concat(options.uri, " :"), error);
53
55
  }
54
56
 
55
57
  /* istanbul ignore else */
@@ -128,7 +130,7 @@ function _request(options) {
128
130
  var user = o.auth.user || o.auth.username;
129
131
  var pass = o.auth.pass || o.auth.password;
130
132
  var token = btoa("".concat(user, ":").concat(pass));
131
- params.headers.authorization = "Basic ".concat(token);
133
+ params.headers.Authorization = "Basic ".concat(token);
132
134
  }
133
135
  }
134
136
  }
@@ -159,7 +161,7 @@ function _request(options) {
159
161
  withCredentials: false,
160
162
  timeout: 0
161
163
  };
162
- (0, _defaults2.default)(params, (0, _pick2.default)(o, (0, _keys.default)(defs)), defs);
164
+ (0, _lodash.defaults)(params, (0, _lodash.pick)(o, (0, _keys.default)(defs)), defs);
163
165
  }
164
166
 
165
167
  /**
@@ -249,7 +251,7 @@ function _request(options) {
249
251
  * @returns {undefined}
250
252
  */
251
253
  function append(form, key, value) {
252
- if ((0, _isArray2.default)(value)) {
254
+ if ((0, _lodash.isArray)(value)) {
253
255
  var _iterator = _createForOfIteratorHelper(value),
254
256
  _step;
255
257
  try {
@@ -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(error);\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":["_lodash","require","_qs","_interopRequireDefault","_xhr","_detect","_createForOfIteratorHelper","o","allowArrayLike","it","_Symbol","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","_Array$from","test","arr","len","arr2","Array","_request","options","_promise","default","resolve","params","pick","response","setXhr","bindProgressEvents","setAuth","setCookies","setDefaults","setResponseType","setContentType","setPayload","setQs","logger","debug","concat","method","uri","x","xhr","error","warn","statusCode","processResponseJson","headers","url","body","onprogress","download","emit","bind","catch","includes","toUpperCase","XMLHttpRequest","upload","auth","bearer","authorization","user","username","pass","password","token","btoa","Authorization","jar","withCredentials","defs","cors","timeout","defaults","_keys","responseType","_x","_x2","_setContentType","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","Blob","ArrayBuffer","json","t0","detect","sent","stop","qs","stringify","ensureBlob","file","ret","type","filename","append","form","key","isArray","_iterator","_step","v","_deleteProperty","formData","reduce","fd","FormData","_typeof2","JSON","parse"],"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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"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.intercept = intercept;
9
+ exports.prepareFetchOptions = prepareFetchOptions;
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
11
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
12
+ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
13
+ var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
14
+ var _deleteProperty = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/delete-property"));
15
+ var _events = require("events");
16
+ /* eslint-disable import/prefer-default-export */
17
+
18
+ /**
19
+ * @param {Object} options
20
+ * @param {Array<Object>} interceptors
21
+ * @param {string} key
22
+ * @param {Object | undefined} res
23
+ * @private
24
+ * @returns {Promise}
25
+ */
26
+ function intercept(options, interceptors, key) {
27
+ var res = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : undefined;
28
+ var successKey = "on".concat(key);
29
+ var errorKey = "on".concat(key, "Error");
30
+ return interceptors.reduce(function (promise, interceptor) {
31
+ return promise.then(function (result) {
32
+ interceptor.logOptions(options);
33
+ if (interceptor[successKey]) {
34
+ return interceptor[successKey](options, result);
35
+ }
36
+ return _promise.default.resolve(result);
37
+ }, function (reason) {
38
+ interceptor.logOptions(options);
39
+ if (interceptor[errorKey]) {
40
+ return interceptor[errorKey](options, reason);
41
+ }
42
+ return _promise.default.reject(reason);
43
+ });
44
+ }, _promise.default.resolve(res));
45
+ }
46
+
47
+ /**
48
+ * Prepare options for a fetch.
49
+ * @param {object} options
50
+ * @returns {Promise}
51
+ */
52
+ function prepareFetchOptions(_x) {
53
+ return _prepareFetchOptions.apply(this, arguments);
54
+ }
55
+ function _prepareFetchOptions() {
56
+ _prepareFetchOptions = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(options) {
57
+ return _regenerator.default.wrap(function _callee$(_context) {
58
+ while (1) switch (_context.prev = _context.next) {
59
+ case 0:
60
+ if (options.url) {
61
+ options.uri = options.url;
62
+ options.url = null;
63
+ }
64
+ options.headers = options.headers || {};
65
+ if (options.json) {
66
+ // don't override existing accept header declared by user
67
+ options.headers.accept = options.headers.accept || options.headers.Accept || 'application/json';
68
+
69
+ // don't override existing content-type header declared by user
70
+ if (options.method !== 'GET' && options.method !== 'HEAD') {
71
+ options.headers['content-type'] = options.headers['content-type'] || options.headers['Content-Type'] || 'application/json';
72
+ options.body = (0, _stringify.default)(options.json === true ? options.body : options.json);
73
+ }
74
+ } else if (options.json !== undefined) {
75
+ (0, _deleteProperty.default)(options, 'json');
76
+ }
77
+ options.download = new _events.EventEmitter();
78
+ options.upload = new _events.EventEmitter();
79
+ options.keepalive = true;
80
+ return _context.abrupt("return", intercept(options, options.interceptors, 'Request').then(function () {
81
+ return options;
82
+ }));
83
+ case 7:
84
+ case "end":
85
+ return _context.stop();
86
+ }
87
+ }, _callee);
88
+ }));
89
+ return _prepareFetchOptions.apply(this, arguments);
90
+ }
91
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_events","require","intercept","options","interceptors","key","res","arguments","length","undefined","successKey","concat","errorKey","reduce","promise","interceptor","then","result","logOptions","_promise","default","resolve","reason","reject","prepareFetchOptions","_x","_prepareFetchOptions","apply","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","next","url","uri","headers","json","accept","Accept","method","body","_stringify","_deleteProperty","download","EventEmitter","upload","keepalive","abrupt","stop"],"sources":["utils.ts"],"sourcesContent":["/* eslint-disable import/prefer-default-export */\nimport {EventEmitter} from 'events';\nimport Interceptor from '../lib/interceptor';\n\n/**\n * @param {Object} options\n * @param {Array<Object>} interceptors\n * @param {string} key\n * @param {Object | undefined} res\n * @private\n * @returns {Promise}\n */\nexport function intercept(\n options: object,\n interceptors: Array<Interceptor>,\n key: string,\n res: object = undefined\n): Promise<any> {\n const successKey = `on${key}`;\n const errorKey = `on${key}Error`;\n\n return interceptors.reduce(\n (promise, interceptor) =>\n promise.then(\n (result) => {\n interceptor.logOptions(options);\n if (interceptor[successKey]) {\n return interceptor[successKey](options, result);\n }\n\n return Promise.resolve(result);\n },\n (reason) => {\n interceptor.logOptions(options);\n if (interceptor[errorKey]) {\n return interceptor[errorKey](options, reason);\n }\n\n return Promise.reject(reason);\n }\n ),\n Promise.resolve(res)\n );\n}\n\n/**\n * Prepare options for a fetch.\n * @param {object} options\n * @returns {Promise}\n */\nexport async function prepareFetchOptions(options: any): Promise<any> {\n if (options.url) {\n options.uri = options.url;\n options.url = null;\n }\n\n options.headers = options.headers || {};\n\n if (options.json) {\n // don't override existing accept header declared by user\n options.headers.accept = options.headers.accept || options.headers.Accept || 'application/json';\n\n // don't override existing content-type header declared by user\n if (options.method !== 'GET' && options.method !== 'HEAD') {\n options.headers['content-type'] =\n options.headers['content-type'] || options.headers['Content-Type'] || 'application/json';\n options.body = JSON.stringify(options.json === true ? options.body : options.json);\n }\n } else if (options.json !== undefined) {\n Reflect.deleteProperty(options, 'json');\n }\n\n options.download = new EventEmitter();\n options.upload = new EventEmitter();\n options.keepalive = true;\n\n return intercept(options, options.interceptors, 'Request').then(() => options);\n}\n"],"mappings":"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"}
package/jest.config.js ADDED
@@ -0,0 +1,3 @@
1
+ const config = require('@webex/jest-config-legacy');
2
+
3
+ module.exports = config;
package/package.json CHANGED
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "name": "@webex/http-core",
3
- "version": "3.0.0-bnr.5",
4
3
  "description": "Core HTTP library for the Cisco Webex",
5
4
  "license": "MIT",
6
5
  "main": "dist/index.js",
@@ -24,26 +23,45 @@
24
23
  ]
25
24
  },
26
25
  "devDependencies": {
27
- "@webex/test-helper-chai": "3.0.0-bnr.5",
28
- "@webex/test-helper-file": "3.0.0-bnr.5",
29
- "@webex/test-helper-make-local-url": "3.0.0-bnr.5",
30
- "@webex/test-helper-mocha": "3.0.0-bnr.5",
26
+ "@babel/core": "^7.17.10",
27
+ "@webex/babel-config-legacy": "0.0.0",
28
+ "@webex/eslint-config-legacy": "0.0.0",
29
+ "@webex/jest-config-legacy": "0.0.0",
30
+ "@webex/legacy-tools": "0.0.0",
31
+ "@webex/test-helper-chai": "3.0.0-next.2",
32
+ "@webex/test-helper-file": "3.0.0-next.2",
33
+ "@webex/test-helper-make-local-url": "3.0.0-next.2",
34
+ "@webex/test-helper-mocha": "3.0.0-next.2",
35
+ "@webex/test-helper-mock-webex": "3.0.0-next.2",
36
+ "@webex/test-helper-test-users": "3.0.0-next.2",
37
+ "eslint": "^8.24.0",
38
+ "prettier": "^2.7.1",
31
39
  "sinon": "^9.2.4"
32
40
  },
33
41
  "dependencies": {
34
- "@webex/common": "3.0.0-bnr.5",
35
- "@webex/http-core": "3.0.0-bnr.5",
36
- "@webex/internal-plugin-device": "3.0.0-bnr.5",
37
- "@webex/test-helper-test-users": "3.0.0-bnr.5",
38
- "@webex/webex-core": "3.0.0-bnr.5",
42
+ "@webex/common": "3.0.0-next.2",
43
+ "@webex/internal-plugin-device": "3.0.0-next.2",
44
+ "@webex/test-helper-test-users": "3.0.0-next.2",
45
+ "@webex/webex-core": "3.0.0-next.2",
39
46
  "file-type": "^16.0.1",
40
47
  "global": "^4.4.0",
41
48
  "is-function": "^1.0.1",
42
49
  "lodash": "^4.17.21",
43
50
  "parse-headers": "^2.0.2",
44
- "qs": "^6.7.0",
51
+ "qs": "^6.7.3",
45
52
  "request": "^2.88.0",
46
53
  "safe-buffer": "^5.2.0",
47
54
  "xtend": "^4.0.2"
48
- }
49
- }
55
+ },
56
+ "scripts": {
57
+ "build": "yarn build:src",
58
+ "build:src": "webex-legacy-tools build -dest \"./dist\" -src \"./src\" -js -ts -maps",
59
+ "deploy:npm": "yarn npm publish",
60
+ "test": "yarn test:style && yarn test:unit && yarn test:integration && yarn test:browser",
61
+ "test:browser": "webex-legacy-tools test --integration --runner karma",
62
+ "test:integration": "webex-legacy-tools test --integration --runner mocha",
63
+ "test:style": "eslint ./src/**/*.*",
64
+ "test:unit": "webex-legacy-tools test --unit --runner jest"
65
+ },
66
+ "version": "3.0.0-next.2"
67
+ }
package/process ADDED
@@ -0,0 +1 @@
1
+ module.exports = {browser: true};
package/src/index.js CHANGED
@@ -6,6 +6,7 @@ import {assign, curry, defaults as lodashDefaults, isString} from 'lodash';
6
6
 
7
7
  import HttpStatusInterceptor from './interceptors/http-status';
8
8
  import _request from './request';
9
+ import {prepareFetchOptions as _prepareFetchOptions} from './request/utils';
9
10
 
10
11
  // Curry protorequest so we generate a function with default options built in.
11
12
  const protorequest = curry(function protorequest(defaultOptions, options) {
@@ -41,6 +42,60 @@ const protorequest = curry(function protorequest(defaultOptions, options) {
41
42
  return _request(options);
42
43
  });
43
44
 
45
+ export const protoprepareFetchOptions = curry(function protoprepareFetchOptions(
46
+ defaultOptions,
47
+ options
48
+ ) {
49
+ // Hide useless elements from logs
50
+ ['download', 'interceptors', 'logger', 'upload'].forEach((prop) => {
51
+ let descriptor = Reflect.getOwnPropertyDescriptor(options, prop);
52
+
53
+ descriptor = assign({}, descriptor, {
54
+ enumerable: false,
55
+ writable: true,
56
+ });
57
+ Reflect.defineProperty(options, prop, descriptor);
58
+ });
59
+
60
+ lodashDefaults(options, defaultOptions);
61
+
62
+ options.logger = options.logger || this.logger || console;
63
+
64
+ return _prepareFetchOptions(options);
65
+ });
66
+
67
+ /**
68
+ * Sets the $timings value(s) before the request/fetch.
69
+ * This function is only useful if you are about to send a request
70
+ * using prepared fetch options; normally it is done in webex.request();
71
+ *
72
+ * @param {any} options
73
+ * @returns {any} the updated options object
74
+ */
75
+ const setRequestTimings = (options) => {
76
+ const now = new Date().getTime();
77
+ options.$timings = options.$timings || {};
78
+ options.$timings.requestStart = now;
79
+ options.$timings.networkStart = now;
80
+
81
+ return options;
82
+ };
83
+
84
+ /**
85
+ * Submits a metric from pre-built request options via the fetch API. Updates
86
+ * the "$timings" values to Date.now() since the existing times were set when
87
+ * the options were built (not submitted).
88
+ *
89
+ * @param {any} options - the pre-built request options for submitting a metric
90
+ * @returns {Promise} promise that resolves to a response object
91
+ */
92
+ export const setTimingsAndFetch = (options) => {
93
+ const opts = setRequestTimings(options);
94
+
95
+ // call the fetch API
96
+ return fetch(opts.uri, opts);
97
+ };
98
+
44
99
  const defaultOptions = {
45
100
  json: true,
46
101
  interceptors: [
package/src/lib/xhr.js CHANGED
@@ -106,7 +106,11 @@ function _createXHR(options) {
106
106
  function errorFunc(evt) {
107
107
  clearTimeout(timeoutTimer);
108
108
  if (!(evt instanceof Error)) {
109
- evt = new Error('' + (evt || 'Unknown XMLHttpRequest Error'));
109
+ if (evt instanceof ProgressEvent) {
110
+ evt = new Error(`XMLHttpRequest Error: ProgressEvent: loaded=${evt.loaded}, total=${evt.total}, lengthComputable=${evt.lengthComputable}, target.readyState=${evt.target?.readyState}`)
111
+ } else {
112
+ evt = new Error('' + (evt || 'Unknown XMLHttpRequest Error'));
113
+ }
110
114
  }
111
115
  evt.statusCode = 0;
112
116
  return callback(evt, failureResponse);
@@ -5,6 +5,7 @@
5
5
  import {EventEmitter} from 'events';
6
6
 
7
7
  import _request from './request';
8
+ import {intercept} from './utils';
8
9
 
9
10
  /**
10
11
  * @param {Object} options
@@ -21,42 +22,9 @@ export default function request(options) {
21
22
  options.download = new EventEmitter();
22
23
  options.upload = new EventEmitter();
23
24
 
24
- return intercept(options.interceptors, 'Request')
25
+ return intercept(options, options.interceptors, 'Request')
25
26
  .then((...args) => _request(options, ...args))
26
- .then((...args) => intercept(options.interceptors.slice().reverse(), 'Response', ...args));
27
-
28
- /**
29
- * @param {Array} interceptors
30
- * @param {string} key
31
- * @param {Object} res
32
- * @private
33
- * @returns {Promise}
34
- */
35
- function intercept(interceptors, key, res) {
36
- const successKey = `on${key}`;
37
- const errorKey = `on${key}Error`;
38
-
39
- return interceptors.reduce(
40
- (promise, interceptor) =>
41
- promise.then(
42
- (result) => {
43
- interceptor.logOptions(options);
44
- if (interceptor[successKey]) {
45
- return interceptor[successKey](options, result);
46
- }
47
-
48
- return Promise.resolve(result);
49
- },
50
- (reason) => {
51
- interceptor.logOptions(options);
52
- if (interceptor[errorKey]) {
53
- return interceptor[errorKey](options, reason);
54
- }
55
-
56
- return Promise.reject(reason);
57
- }
58
- ),
59
- Promise.resolve(res)
27
+ .then((...args) =>
28
+ intercept(options, options.interceptors.slice().reverse(), 'Response', ...args)
60
29
  );
61
- }
62
30
  }
@@ -52,7 +52,10 @@ export default function _request(options) {
52
52
  const x = xhr(params, (error, response) => {
53
53
  /* istanbul ignore next */
54
54
  if (error) {
55
- options.logger.warn(error);
55
+ options.logger.warn(
56
+ `XHR error for ${options.method || 'request'} to ${options.uri} :`,
57
+ error
58
+ );
56
59
  }
57
60
 
58
61
  /* istanbul ignore else */
@@ -142,7 +145,7 @@ export default function _request(options) {
142
145
 
143
146
  const token = btoa(`${user}:${pass}`);
144
147
 
145
- params.headers.authorization = `Basic ${token}`;
148
+ params.headers.Authorization = `Basic ${token}`;
146
149
  }
147
150
  }
148
151
  }