swagger-client 2.1.32 → 2.2.21

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.
package/lib/helpers.js CHANGED
@@ -22,7 +22,7 @@ module.exports.fail = function (message) {
22
22
  log(message);
23
23
  };
24
24
 
25
- module.exports.optionHtml = function (label, value) {
25
+ var optionHtml = module.exports.optionHtml = function (label, value) {
26
26
  return '<tr><td class="optionName">' + label + ':</td><td>' + value + '</td></tr>';
27
27
  };
28
28
 
@@ -34,7 +34,7 @@ var resolveSchema = module.exports.resolveSchema = function (schema) {
34
34
  return schema;
35
35
  };
36
36
 
37
- module.exports.simpleRef = function (name) {
37
+ var simpleRef = module.exports.simpleRef = function (name) {
38
38
  if (typeof name === 'undefined') {
39
39
  return null;
40
40
  }
@@ -46,24 +46,3 @@ module.exports.simpleRef = function (name) {
46
46
  }
47
47
  };
48
48
 
49
- /**
50
- * helper to remove extensions and add them to an object
51
- *
52
- * @param keyname
53
- * @param obj
54
- */
55
- module.exports.extractExtensions = function (keyname, obj, value) {
56
- if(!keyname || !obj) {
57
- return;
58
- }
59
-
60
- if (typeof keyname === 'string' && keyname.indexOf('x-') === 0) {
61
- obj.vendorExtensions = obj.vendorExtensions || {};
62
- if(value) {
63
- obj.vendorExtensions[keyname] = value;
64
- }
65
- else {
66
- obj.vendorExtensions[keyname] = obj[keyname];
67
- }
68
- }
69
- };
package/lib/http.js CHANGED
@@ -38,10 +38,6 @@ SwaggerHttp.prototype.execute = function (obj, opts) {
38
38
  }
39
39
  client.opts = opts || {};
40
40
 
41
- if (opts && opts.requestAgent) {
42
- request = opts.requestAgent;
43
- }
44
-
45
41
  // legacy support
46
42
  var hasJQuery = false;
47
43
  if(typeof window !== 'undefined') {
@@ -73,14 +69,14 @@ SwaggerHttp.prototype.execute = function (obj, opts) {
73
69
 
74
70
  var responseInterceptor = function(data) {
75
71
  if(opts && opts.responseInterceptor) {
76
- data = opts.responseInterceptor.apply(data, [obj]);
72
+ data = opts.responseInterceptor.apply(data);
77
73
  }
78
74
  return success(data);
79
75
  };
80
76
 
81
77
  var errorInterceptor = function(data) {
82
78
  if(opts && opts.responseInterceptor) {
83
- data = opts.responseInterceptor.apply(data, [obj]);
79
+ data = opts.responseInterceptor.apply(data);
84
80
  }
85
81
  error(data);
86
82
  };
@@ -90,12 +86,7 @@ SwaggerHttp.prototype.execute = function (obj, opts) {
90
86
  };
91
87
 
92
88
  obj.on.response = function(data) {
93
- if(data && data.status >= 400) {
94
- errorInterceptor(data);
95
- }
96
- else {
97
- responseInterceptor(data);
98
- }
89
+ responseInterceptor(data);
99
90
  };
100
91
 
101
92
  if (_.isObject(obj) && _.isObject(obj.body)) {
@@ -223,13 +214,8 @@ SuperagentHttpClient.prototype.execute = function (obj) {
223
214
  method = 'del';
224
215
  }
225
216
  var headers = obj.headers || {};
226
-
227
217
  var r = request[method](obj.url);
228
218
 
229
- if (obj.connectionAgent) {
230
- r.agent(obj.connectionAgent);
231
- }
232
-
233
219
  if (timeout) {
234
220
  r.timeout(timeout);
235
221
  }
@@ -254,7 +240,33 @@ SuperagentHttpClient.prototype.execute = function (obj) {
254
240
  if (contentType.indexOf('multipart/form-data') === 0) {
255
241
  delete headers['Content-Type'];
256
242
  if({}.toString.apply(obj.body) === '[object FormData]') {
257
- r.send(obj.body);
243
+ var itr = obj.body.keys();
244
+ var p = [];
245
+ while(true) {
246
+ var v = itr.next();
247
+ if(v.done) {
248
+ break;
249
+ }
250
+ var key = v.value;
251
+ // only once
252
+ if(p.indexOf(key) === -1) {
253
+ p.push(key);
254
+ var value = obj.body.getAll(key);
255
+ if({}.toString.apply(value) === '[object File]') {
256
+ r.attach(key, value);
257
+ }
258
+ else {
259
+ if (Array.isArray(value)) {
260
+ for (var t in value) {
261
+ r.field(key, value[t]);
262
+ }
263
+ }
264
+ else {
265
+ r.field(key, value);
266
+ }
267
+ }
268
+ }
269
+ }
258
270
  }
259
271
  else {
260
272
  var keyname, value, v;
@@ -272,7 +284,6 @@ SuperagentHttpClient.prototype.execute = function (obj) {
272
284
  }
273
285
  }
274
286
  else if (_.isObject(obj.body)) {
275
- // non multipart/form-data
276
287
  obj.body = JSON.stringify(obj.body);
277
288
  r.send(obj.body);
278
289
  }
@@ -367,7 +378,5 @@ SuperagentHttpClient.prototype. binaryRequest = function (accept) {
367
378
  if(!accept) {
368
379
  return false;
369
380
  }
370
- return (/^image/i).test(accept)
371
- || (/^application\/pdf/).test(accept)
372
- || (/^application\/octet-stream/).test(accept);
381
+ return (/^image/i).test(accept) || (/^application\/pdf/).test(accept);
373
382
  };
package/lib/resolver.js CHANGED
@@ -44,7 +44,7 @@ Resolver.prototype.resolve = function (spec, arg1, arg2, arg3) {
44
44
  callback = arg1;
45
45
  scope = arg2;
46
46
  }
47
- var _root = root, modelName;
47
+ var _root = root;
48
48
  this.scope = (scope || this);
49
49
  this.iteration = this.iteration || 0;
50
50
 
@@ -56,7 +56,7 @@ Resolver.prototype.resolve = function (spec, arg1, arg2, arg3) {
56
56
  opts.responseInterceptor = this.scope.options.responseInterceptor;
57
57
  }
58
58
 
59
- var name, path, property, propertyName, parameter, done, counter;
59
+ var name, path, property, propertyName;
60
60
  var processedCalls = 0, resolvedRefs = {}, unresolvedRefs = {};
61
61
  var resolutionTable = []; // store objects for dereferencing
62
62
 
@@ -64,7 +64,7 @@ Resolver.prototype.resolve = function (spec, arg1, arg2, arg3) {
64
64
  // definitions
65
65
  for (name in spec.definitions) {
66
66
  var definition = spec.definitions[name];
67
- if(definition.$ref) {
67
+ if(definition['$ref']) {
68
68
  this.resolveInline(root, spec, definition, resolutionTable, unresolvedRefs, definition);
69
69
  }
70
70
  else {
@@ -87,25 +87,25 @@ Resolver.prototype.resolve = function (spec, arg1, arg2, arg3) {
87
87
  // shared parameters
88
88
  spec.parameters = spec.parameters || {};
89
89
  for(name in spec.parameters) {
90
- parameter = spec.parameters[name];
90
+ var parameter = spec.parameters[name];
91
91
  if (parameter.in === 'body' && parameter.schema) {
92
92
  if(_.isArray(parameter.schema.allOf)) {
93
93
  // move to a definition
94
- modelName = 'inline_model';
95
- var _name = modelName;
96
- done = false; counter = 0;
94
+ var modelName = 'inline_model';
95
+ var name = modelName;
96
+ var done = false; var counter = 0;
97
97
  while(!done) {
98
- if(typeof spec.definitions[_name] === 'undefined') {
98
+ if(typeof spec.definitions[name] === 'undefined') {
99
99
  done = true;
100
100
  break;
101
101
  }
102
- _name = modelName + '_' + counter;
102
+ name = modelName + '_' + counter;
103
103
  counter ++;
104
104
  }
105
- spec.definitions[_name] = { allOf: parameter.schema.allOf };
105
+ spec.definitions[name] = { allOf: parameter.schema.allOf };
106
106
  delete parameter.schema.allOf;
107
- parameter.schema.$ref = '#/definitions/' + _name;
108
- this.processAllOf(root, _name, spec.definitions[_name], resolutionTable, unresolvedRefs, spec);
107
+ parameter.schema.$ref = '#/definitions/' + name;
108
+ this.processAllOf(root, name, spec.definitions[name], resolutionTable, unresolvedRefs, spec);
109
109
  }
110
110
  else {
111
111
  this.resolveTo(root, parameter.schema, resolutionTable, location);
@@ -123,110 +123,106 @@ Resolver.prototype.resolve = function (spec, arg1, arg2, arg3) {
123
123
  var method, operation, responseCode;
124
124
  path = spec.paths[name];
125
125
 
126
- if(typeof path === 'object') {
127
- for (method in path) {
128
- // operation reference
129
- if (method === '$ref') {
130
- // location = path[method];
131
- location = '/paths' + name;
132
- this.resolveInline(root, spec, path, resolutionTable, unresolvedRefs, location);
126
+ for (method in path) {
127
+ // operation reference
128
+ if(method === '$ref') {
129
+ // location = path[method];
130
+ location = '/paths' + name;
131
+ this.resolveInline(root, spec, path, resolutionTable, unresolvedRefs, location);
132
+ }
133
+ else {
134
+ operation = path[method];
135
+ var sharedParameters = path.parameters || [];
136
+ var parameters = operation.parameters || [];
137
+
138
+ for (i in sharedParameters) {
139
+ var parameter = sharedParameters[i];
140
+ parameters.unshift(parameter);
141
+ }
142
+ if(method !== 'parameters' && _.isObject(operation)) {
143
+ operation.parameters = operation.parameters || parameters;
133
144
  }
134
- else {
135
- operation = path[method];
136
- var sharedParameters = path.parameters || [];
137
- var parameters = operation.parameters || [];
138
145
 
139
- sharedParameters.forEach(function(parameter) {
140
- parameters.unshift(parameter);
141
- });
146
+ for (i in parameters) {
147
+ var parameter = parameters[i];
148
+ location = '/paths' + name + '/' + method + '/parameters';
149
+
150
+ if (parameter.in === 'body' && parameter.schema) {
151
+ if(_.isArray(parameter.schema.allOf)) {
152
+ // move to a definition
153
+ var modelName = 'inline_model';
154
+ var name = modelName;
155
+ var done = false; var counter = 0;
156
+ while(!done) {
157
+ if(typeof spec.definitions[name] === 'undefined') {
158
+ done = true;
159
+ break;
160
+ }
161
+ name = modelName + '_' + counter;
162
+ counter ++;
163
+ }
164
+ spec.definitions[name] = { allOf: parameter.schema.allOf };
165
+ delete parameter.schema.allOf;
166
+ parameter.schema.$ref = '#/definitions/' + name;
167
+ this.processAllOf(root, name, spec.definitions[name], resolutionTable, unresolvedRefs, spec);
168
+ }
169
+ else {
170
+ this.resolveTo(root, parameter.schema, resolutionTable, location);
171
+ }
172
+ }
142
173
 
143
- if (method !== 'parameters' && _.isObject(operation)) {
144
- operation.parameters = operation.parameters || parameters;
174
+ if (parameter.$ref) {
175
+ // parameter reference
176
+ this.resolveInline(root, spec, parameter, resolutionTable, unresolvedRefs, parameter.$ref);
145
177
  }
178
+ }
146
179
 
147
- for (i in parameters) {
148
- parameter = parameters[i];
149
- location = '/paths' + name + '/' + method + '/parameters';
180
+ for (responseCode in operation.responses) {
181
+ var response = operation.responses[responseCode];
182
+ location = '/paths' + name + '/' + method + '/responses/' + responseCode;
150
183
 
151
- if (parameter.in === 'body' && parameter.schema) {
152
- if (_.isArray(parameter.schema.allOf)) {
184
+ if(_.isObject(response)) {
185
+ if(response.$ref) {
186
+ // response reference
187
+ this.resolveInline(root, spec, response, resolutionTable, unresolvedRefs, location);
188
+ }
189
+ if (response.schema) {
190
+ var responseObj = response;
191
+ if(_.isArray(responseObj.schema.allOf)) {
153
192
  // move to a definition
154
- modelName = 'inline_model';
155
- name = modelName;
156
- done = false;
157
- counter = 0;
158
- while (!done) {
159
- if (typeof spec.definitions[name] === 'undefined') {
193
+ var modelName = 'inline_model';
194
+ var name = modelName;
195
+ var done = false; var counter = 0;
196
+ while(!done) {
197
+ if(typeof spec.definitions[name] === 'undefined') {
160
198
  done = true;
161
199
  break;
162
200
  }
163
201
  name = modelName + '_' + counter;
164
- counter++;
202
+ counter ++;
165
203
  }
166
- spec.definitions[name] = {allOf: parameter.schema.allOf};
167
- delete parameter.schema.allOf;
168
- parameter.schema.$ref = '#/definitions/' + name;
204
+ spec.definitions[name] = { allOf: responseObj.schema.allOf };
205
+ delete responseObj.schema.allOf;
206
+ delete responseObj.schema.type;
207
+ responseObj.schema.$ref = '#/definitions/' + name;
169
208
  this.processAllOf(root, name, spec.definitions[name], resolutionTable, unresolvedRefs, spec);
170
209
  }
171
- else {
172
- this.resolveTo(root, parameter.schema, resolutionTable, location);
173
- }
174
- }
175
-
176
- if (parameter.$ref) {
177
- // parameter reference
178
- this.resolveInline(root, spec, parameter, resolutionTable, unresolvedRefs, parameter.$ref);
179
- }
180
- }
181
-
182
- for (responseCode in operation.responses) {
183
- var response = operation.responses[responseCode];
184
- location = '/paths' + name + '/' + method + '/responses/' + responseCode;
185
-
186
- if (_.isObject(response)) {
187
- if (response.$ref) {
188
- // response reference
189
- this.resolveInline(root, spec, response, resolutionTable, unresolvedRefs, location);
190
- }
191
- if (response.schema) {
192
- var responseObj = response;
193
- if (_.isArray(responseObj.schema.allOf)) {
194
- // move to a definition
195
- modelName = 'inline_model';
196
- name = modelName;
197
- done = false;
198
- counter = 0;
199
- while (!done) {
200
- if (typeof spec.definitions[name] === 'undefined') {
201
- done = true;
202
- break;
203
- }
204
- name = modelName + '_' + counter;
205
- counter++;
206
- }
207
- spec.definitions[name] = {allOf: responseObj.schema.allOf};
208
- delete responseObj.schema.allOf;
209
- delete responseObj.schema.type;
210
- responseObj.schema.$ref = '#/definitions/' + name;
211
- this.processAllOf(root, name, spec.definitions[name], resolutionTable, unresolvedRefs, spec);
212
- }
213
- else if ('array' === responseObj.schema.type) {
214
- if (responseObj.schema.items && responseObj.schema.items.$ref) {
215
- // response reference
216
- this.resolveInline(root, spec, responseObj.schema.items, resolutionTable, unresolvedRefs, location);
217
- }
218
- }
219
- else {
220
- this.resolveTo(root, response.schema, resolutionTable, location);
210
+ else if('array' === responseObj.schema.type) {
211
+ if(responseObj.schema.items && responseObj.schema.items.$ref) {
212
+ // response reference
213
+ this.resolveInline(root, spec, responseObj.schema.items, resolutionTable, unresolvedRefs, location);
221
214
  }
222
215
  }
216
+ else {
217
+ this.resolveTo(root, response.schema, resolutionTable, location);
218
+ }
223
219
  }
224
220
  }
225
221
  }
226
222
  }
227
- // clear them out to avoid multiple resolutions
228
- path.parameters = [];
229
223
  }
224
+ // clear them out to avoid multiple resolutions
225
+ path.parameters = [];
230
226
  }
231
227
 
232
228
  var expectedCalls = 0, toResolve = [];
@@ -389,7 +385,7 @@ Resolver.prototype.resolve = function (spec, arg1, arg2, arg3) {
389
385
  else {
390
386
  var cached = self.resolverCache[obj.url];
391
387
  if (_.isObject(cached)) {
392
- obj.on.response({obj: cached});
388
+ obj.on.response({obj: cached}), 1;
393
389
  }
394
390
  else {
395
391
  lock[obj.url] = true;
@@ -467,7 +463,7 @@ Resolver.prototype.resolveItem = function(spec, root, resolutionTable, resolvedR
467
463
 
468
464
  Resolver.prototype.finish = function (spec, root, resolutionTable, resolvedRefs, unresolvedRefs, callback, localResolve) {
469
465
  // walk resolution table and replace with resolved refs
470
- var ref, abs;
466
+ var ref;
471
467
  for (ref in resolutionTable) {
472
468
  var item = resolutionTable[ref];
473
469
 
@@ -479,7 +475,7 @@ Resolver.prototype.finish = function (spec, root, resolutionTable, resolvedRefs,
479
475
  if (localResolve !== true) {
480
476
  // don't retain root for local definitions
481
477
  for (key in resolvedTo.obj) {
482
- abs = this.retainRoot(key, resolvedTo.obj[key], item.root);
478
+ var abs = this.retainRoot(key, resolvedTo.obj[key], item.root);
483
479
  resolvedTo.obj[key] = abs;
484
480
  }
485
481
  }
@@ -491,7 +487,7 @@ Resolver.prototype.finish = function (spec, root, resolutionTable, resolvedRefs,
491
487
  delete targetObj.$ref;
492
488
 
493
489
  for (key in resolvedTo.obj) {
494
- abs = resolvedTo.obj[key];
490
+ var abs = resolvedTo.obj[key];
495
491
 
496
492
  if (localResolve !== true) {
497
493
  // don't retain root for local definitions
@@ -670,7 +666,7 @@ Resolver.prototype.resolveInline = function (root, spec, property, resolutionTab
670
666
  var key = property.$ref, ref = property.$ref, i, p, p2, rs;
671
667
  var rootTrimmed = false;
672
668
 
673
- root = root || ''; // Guard against .split. @fehguy, you'll need to check if this logic fits
669
+ root = root || '' // Guard against .split. @fehguy, you'll need to check if this logic fits
674
670
  // More imporantly is how do we gracefully handle relative urls, when provided just a 'spec', not a 'url' ?
675
671
 
676
672
  if (ref) {
@@ -810,7 +806,7 @@ Resolver.prototype.resolveTo = function (root, property, resolutionTable, locati
810
806
  }
811
807
  delete property.title;
812
808
  this.spec.definitions[name] = _.cloneDeep(property);
813
- property.$ref = '#/definitions/' + name;
809
+ property['$ref'] = '#/definitions/' + name;
814
810
  delete property.type;
815
811
  delete property.properties;
816
812
  }
@@ -15,11 +15,17 @@ var _ = {
15
15
  forEach: require('lodash-compat/collection/forEach')
16
16
  };
17
17
 
18
- var optionHtml = module.exports.optionHtml = function (label, value) {
18
+ module.exports.optionHtml = optionHtml;
19
+ module.exports.typeFromJsonSchema = typeFromJsonSchema;
20
+ module.exports.getStringSignature = getStringSignature;
21
+ module.exports.schemaToHTML = schemaToHTML;
22
+ module.exports.schemaToJSON = schemaToJSON;
23
+
24
+ function optionHtml(label, value) {
19
25
  return '<tr><td class="optionName">' + label + ':</td><td>' + value + '</td></tr>';
20
- };
26
+ }
21
27
 
22
- module.exports.typeFromJsonSchema = function (type, format) {
28
+ function typeFromJsonSchema(type, format) {
23
29
  var str;
24
30
 
25
31
  if (type === 'integer' && format === 'int32') {
@@ -45,9 +51,9 @@ module.exports.typeFromJsonSchema = function (type, format) {
45
51
  }
46
52
 
47
53
  return str;
48
- };
54
+ }
49
55
 
50
- var getStringSignature = module.exports.getStringSignature = function (obj, baseComponent) {
56
+ function getStringSignature(obj, baseComponent) {
51
57
  var str = '';
52
58
 
53
59
  if (typeof obj.$ref !== 'undefined') {
@@ -89,9 +95,9 @@ var getStringSignature = module.exports.getStringSignature = function (obj, base
89
95
  }
90
96
 
91
97
  return str;
92
- };
98
+ }
93
99
 
94
- var schemaToJSON = module.exports.schemaToJSON = function (schema, models, modelsToIgnore, modelPropertyMacro) {
100
+ function schemaToJSON(schema, models, modelsToIgnore, modelPropertyMacro) {
95
101
  // Resolve the schema (Handle nested schemas)
96
102
  schema = Helpers.resolveSchema(schema);
97
103
 
@@ -176,9 +182,10 @@ var schemaToJSON = module.exports.schemaToJSON = function (schema, models, model
176
182
  }
177
183
 
178
184
  return output;
179
- };
185
+ }
186
+
187
+ function schemaToHTML(name, schema, models, modelPropertyMacro) {
180
188
 
181
- module.exports.schemaToHTML =function (name, schema, models, modelPropertyMacro) {
182
189
  var strongOpen = '<span class="strong">';
183
190
  var strongClose = '</span>';
184
191
 
@@ -523,4 +530,4 @@ module.exports.schemaToHTML =function (name, schema, models, modelPropertyMacro)
523
530
 
524
531
  return html + strongOpen + (isArray ? ']' : '}') + strongClose;
525
532
  }
526
- };
533
+ }
@@ -557,9 +557,7 @@ SwaggerSpecConverter.prototype.securityDefinitions = function(obj, swagger) {
557
557
  var name;
558
558
  for(name in obj.authorizations) {
559
559
  var isValid = false;
560
- var securityDefinition = {
561
- vendorExtensions: {}
562
- };
560
+ var securityDefinition = {};
563
561
  var definition = obj.authorizations[name];
564
562
  if(definition.type === 'apiKey') {
565
563
  securityDefinition.type = 'apiKey';