swagger-client 3.20.1 → 3.21.0

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 (91) hide show
  1. package/README.md +19 -2
  2. package/dist/swagger-client.browser.js +13796 -16135
  3. package/dist/swagger-client.browser.min.js +1 -1
  4. package/dist/swagger-client.browser.min.js.map +1 -1
  5. package/es/execute/index.js +53 -27
  6. package/es/execute/oas3/build-request.js +7 -5
  7. package/es/execute/swagger2/build-request.js +3 -2
  8. package/es/helpers/fetch-polyfill.browser.js +13 -0
  9. package/es/helpers/fetch-polyfill.node.js +14 -0
  10. package/es/helpers/fetch-ponyfill-node-fetch.node.js +3 -0
  11. package/es/helpers/fetch-ponyfill-undici.node.js +2 -0
  12. package/es/helpers/fetch-ponyfill.browser.js +8 -0
  13. package/es/http/index.js +10 -9
  14. package/es/index.js +9 -9
  15. package/es/interfaces.js +4 -4
  16. package/es/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/index.js +2 -1
  17. package/es/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/visitors/all-of.js +4 -2
  18. package/es/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/visitors/dereference.js +26 -18
  19. package/es/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/visitors/parameters.js +2 -1
  20. package/es/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/visitors/properties.js +2 -1
  21. package/es/resolver/apidom/reference/resolve/resolvers/http-swagger-client/index.js +12 -10
  22. package/es/resolver/index.js +7 -4
  23. package/es/resolver/strategies/openapi-3-1-apidom/normalize.js +1 -1
  24. package/es/specmap/helpers.js +2 -2
  25. package/es/specmap/index.js +6 -4
  26. package/es/specmap/lib/all-of.js +3 -2
  27. package/es/specmap/lib/context-tree.js +4 -2
  28. package/es/specmap/lib/index.js +11 -5
  29. package/es/specmap/lib/parameters.js +3 -2
  30. package/es/specmap/lib/properties.js +3 -2
  31. package/es/specmap/lib/refs.js +2 -2
  32. package/es/subtree-resolver/index.js +8 -6
  33. package/lib/execute/index.js +77 -49
  34. package/lib/execute/oas3/build-request.js +22 -18
  35. package/lib/execute/oas3/parameter-builders.js +26 -23
  36. package/lib/execute/oas3/style-serializer.js +27 -23
  37. package/lib/execute/swagger2/build-request.js +11 -13
  38. package/lib/execute/swagger2/parameter-builders.js +29 -24
  39. package/lib/helpers/fetch-polyfill.browser.js +15 -0
  40. package/lib/helpers/fetch-polyfill.node.js +16 -0
  41. package/lib/helpers/fetch-ponyfill-node-fetch.node.js +9 -0
  42. package/lib/helpers/fetch-ponyfill-undici.node.js +8 -0
  43. package/lib/helpers/fetch-ponyfill.browser.js +15 -0
  44. package/lib/helpers/find-operation.js +1 -1
  45. package/lib/helpers/get-operation-raw.js +7 -6
  46. package/lib/helpers/id-from-path-method/index.js +5 -4
  47. package/lib/helpers/index.js +2 -2
  48. package/lib/helpers/op-id.js +8 -4
  49. package/lib/http/index.js +52 -22
  50. package/lib/index.js +21 -18
  51. package/lib/interfaces.js +49 -36
  52. package/lib/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/errors/index.js +1 -1
  53. package/lib/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/index.js +12 -12
  54. package/lib/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/utils/compose.js +1 -1
  55. package/lib/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/visitors/all-of.js +9 -8
  56. package/lib/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/visitors/dereference.js +29 -28
  57. package/lib/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/visitors/parameters.js +8 -7
  58. package/lib/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/visitors/properties.js +8 -7
  59. package/lib/resolver/apidom/reference/parse/parsers/openapi-yaml-3-1/index.js +1 -2
  60. package/lib/resolver/apidom/reference/parse/parsers/yaml-1-2/index.js +1 -2
  61. package/lib/resolver/apidom/reference/resolve/resolvers/http-swagger-client/index.js +18 -19
  62. package/lib/resolver/index.js +9 -11
  63. package/lib/resolver/strategies/generic/index.js +5 -4
  64. package/lib/resolver/strategies/generic/normalize.js +1 -1
  65. package/lib/resolver/strategies/generic/resolve.js +2 -3
  66. package/lib/resolver/strategies/openapi-2/index.js +9 -7
  67. package/lib/resolver/strategies/openapi-2/normalize.js +2 -2
  68. package/lib/resolver/strategies/openapi-2/resolve.js +1 -1
  69. package/lib/resolver/strategies/openapi-3-0/index.js +9 -7
  70. package/lib/resolver/strategies/openapi-3-0/normalize.js +2 -2
  71. package/lib/resolver/strategies/openapi-3-0/resolve.js +1 -1
  72. package/lib/resolver/strategies/openapi-3-1-apidom/index.js +10 -9
  73. package/lib/resolver/strategies/openapi-3-1-apidom/normalize.js +2 -2
  74. package/lib/resolver/strategies/openapi-3-1-apidom/resolve.js +2 -3
  75. package/lib/resolver/utils/index.js +4 -1
  76. package/lib/resolver/utils/options.js +1 -1
  77. package/lib/specmap/helpers.js +9 -8
  78. package/lib/specmap/index.js +15 -11
  79. package/lib/specmap/lib/all-of.js +3 -6
  80. package/lib/specmap/lib/context-tree.js +4 -6
  81. package/lib/specmap/lib/create-error.js +4 -1
  82. package/lib/specmap/lib/index.js +13 -12
  83. package/lib/specmap/lib/parameters.js +4 -7
  84. package/lib/specmap/lib/properties.js +4 -7
  85. package/lib/specmap/lib/refs.js +4 -4
  86. package/lib/subtree-resolver/index.js +19 -13
  87. package/package.json +17 -26
  88. package/es/http/fold-formdata-to-request.browser.js +0 -4
  89. package/es/http/fold-formdata-to-request.node.js +0 -29
  90. package/lib/http/fold-formdata-to-request.browser.js +0 -9
  91. package/lib/http/fold-formdata-to-request.node.js +0 -37
@@ -7,9 +7,10 @@ const isRfc3986Reserved = char => ":/?#[]@!$&'()*+,;=".indexOf(char) > -1;
7
7
  const isRrc3986Unreserved = char => /^[a-z0-9\-._~]+$/i.test(char);
8
8
 
9
9
  // eslint-disable-next-line default-param-last
10
- function encodeDisallowedCharacters(str, {
11
- escape
12
- } = {}, parse) {
10
+ function encodeDisallowedCharacters(str, _temp, parse) {
11
+ let {
12
+ escape
13
+ } = _temp === void 0 ? {} : _temp;
13
14
  if (typeof str === 'number') {
14
15
  str = str.toString();
15
16
  }
@@ -51,13 +52,14 @@ function stylize(config) {
51
52
  }
52
53
  return encodePrimitive(config);
53
54
  }
54
- function encodeArray({
55
- key,
56
- value,
57
- style,
58
- explode,
59
- escape
60
- }) {
55
+ function encodeArray(_ref) {
56
+ let {
57
+ key,
58
+ value,
59
+ style,
60
+ explode,
61
+ escape
62
+ } = _ref;
61
63
  const valueEncoder = str => encodeDisallowedCharacters(str, {
62
64
  escape
63
65
  });
@@ -89,13 +91,14 @@ function encodeArray({
89
91
  }
90
92
  return undefined;
91
93
  }
92
- function encodeObject({
93
- key,
94
- value,
95
- style,
96
- explode,
97
- escape
98
- }) {
94
+ function encodeObject(_ref2) {
95
+ let {
96
+ key,
97
+ value,
98
+ style,
99
+ explode,
100
+ escape
101
+ } = _ref2;
99
102
  const valueEncoder = str => encodeDisallowedCharacters(str, {
100
103
  escape
101
104
  });
@@ -141,12 +144,13 @@ function encodeObject({
141
144
  }
142
145
  return undefined;
143
146
  }
144
- function encodePrimitive({
145
- key,
146
- value,
147
- style,
148
- escape
149
- }) {
147
+ function encodePrimitive(_ref3) {
148
+ let {
149
+ key,
150
+ value,
151
+ style,
152
+ escape
153
+ } = _ref3;
150
154
  const valueEncoder = str => encodeDisallowedCharacters(str, {
151
155
  escape
152
156
  });
@@ -1,15 +1,10 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
3
4
  exports.__esModule = true;
4
5
  exports.applySecurities = applySecurities;
5
6
  exports.default = buildRequest;
6
7
  var _btoaNode = _interopRequireDefault(require("../../helpers/btoa.node.js"));
7
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
12
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
13
8
  // This function runs after the common function,
14
9
  // `src/execute/index.js#buildRequest`
15
10
  function buildRequest(options, req) {
@@ -55,13 +50,16 @@ function buildRequest(options, req) {
55
50
  }
56
51
 
57
52
  // Add security values, to operations - that declare their need on them
58
- function applySecurities({
59
- request,
60
- securities = {},
61
- operation = {},
62
- spec
63
- }) {
64
- const result = _objectSpread({}, request);
53
+ function applySecurities(_ref) {
54
+ let {
55
+ request,
56
+ securities = {},
57
+ operation = {},
58
+ spec
59
+ } = _ref;
60
+ const result = {
61
+ ...request
62
+ };
65
63
  const {
66
64
  authorized = {},
67
65
  specSecurity = []
@@ -12,19 +12,21 @@ var _default = {
12
12
  formData: formDataBuilder
13
13
  }; // Add the body to the request
14
14
  exports.default = _default;
15
- function bodyBuilder({
16
- req,
17
- value
18
- }) {
15
+ function bodyBuilder(_ref) {
16
+ let {
17
+ req,
18
+ value
19
+ } = _ref;
19
20
  req.body = value;
20
21
  }
21
22
 
22
23
  // Add a form data object.
23
- function formDataBuilder({
24
- req,
25
- value,
26
- parameter
27
- }) {
24
+ function formDataBuilder(_ref2) {
25
+ let {
26
+ req,
27
+ value,
28
+ parameter
29
+ } = _ref2;
28
30
  if (value || parameter.allowEmptyValue) {
29
31
  req.form = req.form || {};
30
32
  req.form[parameter.name] = {
@@ -36,11 +38,12 @@ function formDataBuilder({
36
38
  }
37
39
 
38
40
  // Add a header to the request
39
- function headerBuilder({
40
- req,
41
- parameter,
42
- value
43
- }) {
41
+ function headerBuilder(_ref3) {
42
+ let {
43
+ req,
44
+ parameter,
45
+ value
46
+ } = _ref3;
44
47
  req.headers = req.headers || {};
45
48
  if (typeof value !== 'undefined') {
46
49
  req.headers[parameter.name] = value;
@@ -48,20 +51,22 @@ function headerBuilder({
48
51
  }
49
52
 
50
53
  // Replace path paramters, with values ( ie: the URL )
51
- function pathBuilder({
52
- req,
53
- value,
54
- parameter
55
- }) {
54
+ function pathBuilder(_ref4) {
55
+ let {
56
+ req,
57
+ value,
58
+ parameter
59
+ } = _ref4;
56
60
  req.url = req.url.split(`{${parameter.name}}`).join(encodeURIComponent(value));
57
61
  }
58
62
 
59
63
  // Add a query to the `query` object, which will later be stringified into the URL's search
60
- function queryBuilder({
61
- req,
62
- value,
63
- parameter
64
- }) {
64
+ function queryBuilder(_ref5) {
65
+ let {
66
+ req,
67
+ value,
68
+ parameter
69
+ } = _ref5;
65
70
  req.query = req.query || {};
66
71
  if (value === false && parameter.type === 'boolean') {
67
72
  value = 'false';
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ var _fetchPonyfillBrowser = require("./fetch-ponyfill.browser.js");
4
+ if (typeof globalThis.fetch === 'undefined') {
5
+ globalThis.fetch = _fetchPonyfillBrowser.fetch;
6
+ }
7
+ if (typeof globalThis.Headers === 'undefined') {
8
+ globalThis.Headers = _fetchPonyfillBrowser.Headers;
9
+ }
10
+ if (typeof globalThis.Request === 'undefined') {
11
+ globalThis.Request = _fetchPonyfillBrowser.Request;
12
+ }
13
+ if (typeof globalThis.Response === 'undefined') {
14
+ globalThis.Response = _fetchPonyfillBrowser.Response;
15
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ var _fetchPonyfillUndiciNode = require("./fetch-ponyfill-undici.node.js");
4
+ var _fetchPonyfillNodeFetchNode = require("./fetch-ponyfill-node-fetch.node.js");
5
+ if (typeof globalThis.fetch === 'undefined') {
6
+ globalThis.fetch = _fetchPonyfillUndiciNode.fetch || _fetchPonyfillNodeFetchNode.fetch;
7
+ }
8
+ if (typeof globalThis.Headers === 'undefined') {
9
+ globalThis.Headers = _fetchPonyfillUndiciNode.Headers || _fetchPonyfillNodeFetchNode.Headers;
10
+ }
11
+ if (typeof globalThis.Request === 'undefined') {
12
+ globalThis.Request = _fetchPonyfillUndiciNode.Request || _fetchPonyfillNodeFetchNode.Request;
13
+ }
14
+ if (typeof globalThis.Response === 'undefined') {
15
+ globalThis.Response = _fetchPonyfillUndiciNode.Response || _fetchPonyfillNodeFetchNode.Response;
16
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard").default;
4
+ exports.__esModule = true;
5
+ var _nodeFetchCommonjs = _interopRequireWildcard(require("node-fetch-commonjs"));
6
+ exports.fetch = _nodeFetchCommonjs.default;
7
+ exports.Response = _nodeFetchCommonjs.Response;
8
+ exports.Headers = _nodeFetchCommonjs.Headers;
9
+ exports.Request = _nodeFetchCommonjs.Request;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ var _undici = require("undici");
5
+ exports.fetch = _undici.fetch;
6
+ exports.Response = _undici.Response;
7
+ exports.Headers = _undici.Headers;
8
+ exports.Request = _undici.Request;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.fetch = exports.Response = exports.Request = exports.Headers = void 0;
5
+ // we're targeting browsers that already support fetch API
6
+ const {
7
+ fetch,
8
+ Response,
9
+ Headers,
10
+ Request
11
+ } = globalThis;
12
+ exports.Request = Request;
13
+ exports.Headers = Headers;
14
+ exports.Response = Response;
15
+ exports.fetch = fetch;
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
3
4
  exports.__esModule = true;
4
5
  exports.default = findOperation;
5
6
  var _eachOperation = _interopRequireDefault(require("./each-operation.js"));
6
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7
7
  // Will stop iterating over the operations and return the operationObj
8
8
  // as soon as predicate returns true
9
9
  function findOperation(spec, predicate) {
@@ -1,20 +1,21 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
3
4
  exports.__esModule = true;
4
5
  exports.default = getOperationRaw;
5
6
  var _findOperation = _interopRequireDefault(require("./find-operation.js"));
6
7
  var _opId = _interopRequireDefault(require("./op-id.js"));
7
8
  var _legacy = _interopRequireDefault(require("./id-from-path-method/legacy.js"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
9
  function getOperationRaw(spec, id) {
10
10
  if (!spec || !spec.paths) {
11
11
  return null;
12
12
  }
13
- return (0, _findOperation.default)(spec, ({
14
- pathName,
15
- method,
16
- operation
17
- }) => {
13
+ return (0, _findOperation.default)(spec, _ref => {
14
+ let {
15
+ pathName,
16
+ method,
17
+ operation
18
+ } = _ref;
18
19
  if (!operation || typeof operation !== 'object') {
19
20
  return false;
20
21
  }
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
3
4
  exports.__esModule = true;
4
5
  exports.default = idFromPathMethod;
5
6
  var _replaceSpecialCharsWithUnderscore = _interopRequireDefault(require("../replace-special-chars-with-underscore.js"));
6
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7
- function idFromPathMethod(pathName, method, {
8
- v2OperationIdCompatibilityMode
9
- } = {}) {
7
+ function idFromPathMethod(pathName, method, _temp) {
8
+ let {
9
+ v2OperationIdCompatibilityMode
10
+ } = _temp === void 0 ? {} : _temp;
10
11
  if (v2OperationIdCompatibilityMode) {
11
12
  let res = `${method.toLowerCase()}_${pathName}`.replace(/[\s!@#$%^&*()_+=[{\]};:<>|./?,\\'""-]/g, '_');
12
13
  res = res || `${pathName.substring(1)}_${method}`;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
3
4
  exports.__esModule = true;
4
5
  exports.opId = exports.idFromPathMethodLegacy = exports.idFromPathMethod = exports.getOperationRaw = exports.findOperation = exports.eachOperation = void 0;
5
6
  var _eachOperation = _interopRequireDefault(require("./each-operation.js"));
@@ -13,5 +14,4 @@ exports.opId = _opId.default;
13
14
  var _index = _interopRequireDefault(require("./id-from-path-method/index.js"));
14
15
  exports.idFromPathMethod = _index.default;
15
16
  var _legacy = _interopRequireDefault(require("./id-from-path-method/legacy.js"));
16
- exports.idFromPathMethodLegacy = _legacy.default;
17
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+ exports.idFromPathMethodLegacy = _legacy.default;
@@ -1,13 +1,17 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
3
4
  exports.__esModule = true;
4
5
  exports.default = opId;
5
6
  var _index = _interopRequireDefault(require("./id-from-path-method/index.js"));
6
7
  var _replaceSpecialCharsWithUnderscore = _interopRequireDefault(require("./replace-special-chars-with-underscore.js"));
7
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
- function opId(operation, pathName, method = '', {
9
- v2OperationIdCompatibilityMode
10
- } = {}) {
8
+ function opId(operation, pathName, method, _temp) {
9
+ if (method === void 0) {
10
+ method = '';
11
+ }
12
+ let {
13
+ v2OperationIdCompatibilityMode
14
+ } = _temp === void 0 ? {} : _temp;
11
15
  if (!operation || typeof operation !== 'object') {
12
16
  return null;
13
17
  }
package/lib/http/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
3
4
  exports.__esModule = true;
4
5
  exports.default = http;
5
6
  exports.encodeFormOrQuery = encodeFormOrQuery;
@@ -10,13 +11,11 @@ exports.self = void 0;
10
11
  exports.serializeHeaders = serializeHeaders;
11
12
  exports.serializeRes = serializeRes;
12
13
  exports.shouldDownloadAsText = void 0;
13
- require("cross-fetch/polyfill");
14
14
  var _qs = _interopRequireDefault(require("qs"));
15
15
  var _jsYaml = _interopRequireDefault(require("js-yaml"));
16
16
  var _formdataNode = require("formdata-node");
17
+ require("../helpers/fetch-polyfill.node.js");
17
18
  var _styleSerializer = require("../execute/oas3/style-serializer.js");
18
- var _foldFormdataToRequestNode = _interopRequireDefault(require("./fold-formdata-to-request.node.js"));
19
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
19
  // For testing
21
20
  const self = {
22
21
  serializeRes,
@@ -24,9 +23,12 @@ const self = {
24
23
  };
25
24
 
26
25
  // Handles fetch-like syntax and the case where there is only one object passed-in
27
- // (which will have the URL as a property). Also serilizes the response.
26
+ // (which will have the URL as a property). Also serializes the response.
28
27
  exports.self = self;
29
- async function http(url, request = {}) {
28
+ async function http(url, request) {
29
+ if (request === void 0) {
30
+ request = {};
31
+ }
30
32
  if (typeof url === 'object') {
31
33
  request = url;
32
34
  url = request.url;
@@ -39,7 +41,7 @@ async function http(url, request = {}) {
39
41
  self.mergeInQueryOrForm(request);
40
42
 
41
43
  // Newlines in header values cause weird error messages from `window.fetch`,
42
- // so let's massage them out.
44
+ // so let's message them out.
43
45
  // Context: https://stackoverflow.com/a/50709178
44
46
  if (request.headers) {
45
47
  Object.keys(request.headers).forEach(headerName => {
@@ -57,11 +59,12 @@ async function http(url, request = {}) {
57
59
  request = (await request.requestInterceptor(request)) || request;
58
60
  }
59
61
 
60
- // for content-type=multipart\/form-data remove content-type from request before fetch
61
- // so that correct one with `boundary` is set when request body is different than boundary encoded string
62
+ /**
63
+ * For content-type=multipart/form-data remove content-type from request before fetch,
64
+ * so that correct one with `boundary` is set when request body is different from boundary encoded string.
65
+ */
62
66
  const contentType = request.headers['content-type'] || request.headers['Content-Type'];
63
- // TODO(vladimir.gorej@gmail.com): assertion of FormData instance can be removed when migrated to node-fetch@2.x
64
- if (/multipart\/form-data/i.test(contentType) && request.body instanceof _formdataNode.FormData) {
67
+ if (/multipart\/form-data/i.test(contentType)) {
65
68
  delete request.headers['content-type'];
66
69
  delete request.headers['Content-Type'];
67
70
  }
@@ -97,7 +100,12 @@ async function http(url, request = {}) {
97
100
  }
98
101
 
99
102
  // exported for testing
100
- const shouldDownloadAsText = (contentType = '') => /(json|xml|yaml|text)\b/.test(contentType);
103
+ const shouldDownloadAsText = function (contentType) {
104
+ if (contentType === void 0) {
105
+ contentType = '';
106
+ }
107
+ return /(json|xml|yaml|text)\b/.test(contentType);
108
+ };
101
109
  exports.shouldDownloadAsText = shouldDownloadAsText;
102
110
  function parseBody(body, contentType) {
103
111
  if (contentType && (contentType.indexOf('application/json') === 0 || contentType.indexOf('+json') > 0)) {
@@ -107,9 +115,10 @@ function parseBody(body, contentType) {
107
115
  }
108
116
 
109
117
  // Serialize the response, returns a promise with headers and the body part of the hash
110
- function serializeRes(oriRes, url, {
111
- loadSpec = false
112
- } = {}) {
118
+ function serializeRes(oriRes, url, _temp) {
119
+ let {
120
+ loadSpec = false
121
+ } = _temp === void 0 ? {} : _temp;
113
122
  const res = {
114
123
  ok: oriRes.ok,
115
124
  url: oriRes.url || url,
@@ -145,9 +154,13 @@ function serializeHeaderValue(value) {
145
154
  // eg: Cookie: one
146
155
  // Cookie: two
147
156
  // = { Cookie: [ "one", "two" ]
148
- function serializeHeaders(headers = {}) {
157
+ function serializeHeaders(headers) {
158
+ if (headers === void 0) {
159
+ headers = {};
160
+ }
149
161
  if (typeof headers.entries !== 'function') return {};
150
- return Array.from(headers.entries()).reduce((acc, [header, value]) => {
162
+ return Array.from(headers.entries()).reduce((acc, _ref) => {
163
+ let [header, value] = _ref;
151
164
  acc[header] = serializeHeaderValue(value);
152
165
  return acc;
153
166
  }, {});
@@ -198,7 +211,13 @@ const SEPARATORS = {
198
211
  * is defined within the Media Type Object (OpenAPI 3.x.y).
199
212
  */
200
213
  class FileWithData extends _formdataNode.File {
201
- constructor(data, name = '', options = {}) {
214
+ constructor(data, name, options) {
215
+ if (name === void 0) {
216
+ name = '';
217
+ }
218
+ if (options === void 0) {
219
+ options = {};
220
+ }
202
221
  super([data], name, options);
203
222
  this.data = data;
204
223
  }
@@ -218,7 +237,10 @@ class FileWithData extends _formdataNode.File {
218
237
  // Return value example 4: [['color', 'R,100,G,200,B,150']]
219
238
  // Return value example 5: [['R', '100'], ['G', '200'], ['B', '150']]
220
239
  // Return value example 6: [['color[R]', '100'], ['color[G]', '200'], ['color[B]', '150']]
221
- function formatKeyValue(key, input, skipEncoding = false) {
240
+ function formatKeyValue(key, input, skipEncoding) {
241
+ if (skipEncoding === void 0) {
242
+ skipEncoding = false;
243
+ }
222
244
  const {
223
245
  collectionFormat,
224
246
  allowEmptyValue,
@@ -356,7 +378,8 @@ function buildFormData(reqForm) {
356
378
  * @param {Object} reqForm - ori req.form
357
379
  * @return {FormData} - new FormData instance
358
380
  */
359
- return Object.entries(reqForm).reduce((formData, [name, input]) => {
381
+ return Object.entries(reqForm).reduce((formData, _ref2) => {
382
+ let [name, input] = _ref2;
360
383
  // eslint-disable-next-line no-restricted-syntax
361
384
  for (const [key, value] of formatKeyValue(name, input, true)) {
362
385
  if (Array.isArray(value)) {
@@ -407,13 +430,19 @@ function encodeFormOrQuery(data) {
407
430
 
408
431
  // If the request has a `query` object, merge it into the request.url, and delete the object
409
432
  // If file and/or multipart, also create FormData instance
410
- function mergeInQueryOrForm(req = {}) {
433
+ function mergeInQueryOrForm(req) {
434
+ if (req === void 0) {
435
+ req = {};
436
+ }
411
437
  const {
412
438
  url = '',
413
439
  query,
414
440
  form
415
441
  } = req;
416
- const joinSearch = (...strs) => {
442
+ const joinSearch = function () {
443
+ for (var _len = arguments.length, strs = new Array(_len), _key = 0; _key < _len; _key++) {
444
+ strs[_key] = arguments[_key];
445
+ }
417
446
  const search = strs.filter(a => a).join('&'); // Only truthy value
418
447
  return search ? `?${search}` : ''; // Only add '?' if there is a str
419
448
  };
@@ -428,7 +457,8 @@ function mergeInQueryOrForm(req = {}) {
428
457
  const contentType = req.headers['content-type'] || req.headers['Content-Type'];
429
458
  if (hasFile || /multipart\/form-data/i.test(contentType)) {
430
459
  const formdata = buildFormData(req.form);
431
- (0, _foldFormdataToRequestNode.default)(formdata, req);
460
+ req.formdata = formdata;
461
+ req.body = formdata;
432
462
  } else {
433
463
  req.body = encodeFormOrQuery(form);
434
464
  }
package/lib/index.js CHANGED
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard").default;
3
5
  exports.__esModule = true;
4
6
  exports.helpers = exports.default = void 0;
5
- var _url = _interopRequireDefault(require("url"));
6
7
  var _index = _interopRequireWildcard(require("./http/index.js"));
7
8
  var _index2 = require("./resolver/index.js");
8
9
  var _index3 = require("./subtree-resolver/index.js");
@@ -19,14 +20,8 @@ var _index12 = _interopRequireDefault(require("./resolver/apidom/reference/parse
19
20
  var _index13 = _interopRequireDefault(require("./resolver/apidom/reference/parse/parsers/openapi-json-3-1/index.js"));
20
21
  var _index14 = _interopRequireDefault(require("./resolver/apidom/reference/parse/parsers/openapi-yaml-3-1/index.js"));
21
22
  var _index15 = _interopRequireDefault(require("./resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/index.js"));
22
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
24
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
26
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
27
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
28
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
29
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } /* eslint-disable camelcase */
23
+ /* eslint-disable camelcase */
24
+
30
25
  Swagger.http = _index.default;
31
26
  Swagger.makeHttp = _index.makeHttp.bind(null, Swagger.http);
32
27
  Swagger.resolveStrategies = {
@@ -71,7 +66,10 @@ Swagger.apidom = {
71
66
  }
72
67
  }
73
68
  };
74
- function Swagger(url, opts = {}) {
69
+ function Swagger(url, opts) {
70
+ if (opts === void 0) {
71
+ opts = {};
72
+ }
75
73
  // Allow url as a separate argument
76
74
  if (typeof url === 'string') {
77
75
  opts.url = url;
@@ -97,7 +95,7 @@ Swagger.prototype = {
97
95
  http: _index.default,
98
96
  execute(options) {
99
97
  this.applyDefaults();
100
- return Swagger.execute(_objectSpread({
98
+ return Swagger.execute({
101
99
  spec: this.spec,
102
100
  http: this.http,
103
101
  securities: {
@@ -105,11 +103,15 @@ Swagger.prototype = {
105
103
  },
106
104
  contextUrl: typeof this.url === 'string' ? this.url : undefined,
107
105
  requestInterceptor: this.requestInterceptor || null,
108
- responseInterceptor: this.responseInterceptor || null
109
- }, options));
106
+ responseInterceptor: this.responseInterceptor || null,
107
+ ...options
108
+ });
110
109
  },
111
- resolve(options = {}) {
112
- return Swagger.resolve(_objectSpread({
110
+ resolve(options) {
111
+ if (options === void 0) {
112
+ options = {};
113
+ }
114
+ return Swagger.resolve({
113
115
  spec: this.spec,
114
116
  url: this.url,
115
117
  http: this.http || this.fetch,
@@ -117,8 +119,9 @@ Swagger.prototype = {
117
119
  useCircularStructures: this.useCircularStructures,
118
120
  requestInterceptor: this.requestInterceptor || null,
119
121
  responseInterceptor: this.responseInterceptor || null,
120
- skipNormalization: this.skipNormalization || false
121
- }, options)).then(obj => {
122
+ skipNormalization: this.skipNormalization || false,
123
+ ...options
124
+ }).then(obj => {
122
125
  this.originalSpec = this.spec;
123
126
  this.spec = obj.spec;
124
127
  this.errors = obj.errors;
@@ -133,7 +136,7 @@ Swagger.prototype.applyDefaults = function applyDefaults() {
133
136
  const specUrl = this.url;
134
137
  // TODO: OAS3: support servers here
135
138
  if (specUrl && specUrl.startsWith('http')) {
136
- const parsed = _url.default.parse(specUrl);
139
+ const parsed = new URL(specUrl);
137
140
  if (!spec.host) {
138
141
  spec.host = parsed.host;
139
142
  }