Socket
Socket
Sign inDemoInstall

oas-resolver

Package Overview
Dependencies
65
Maintainers
1
Versions
39
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.6 to 1.0.7

116

index.js

@@ -271,65 +271,65 @@ 'use strict';

scanExternalRefs(options)
.then(function (refs) {
for (let ref in refs) {
.then(function (refs) {
for (let ref in refs) {
if (!refs[ref].resolved) {
let depth = options.resolver.depth;
if (depth>0) depth++;
options.resolver.actions[depth].push(function () {
return resolveExternal(options.openapi, ref, options, function (data, source, options) {
if (!refs[ref].resolved) {
let external = {};
external.context = refs[ref];
external.$ref = ref;
external.original = clone(data);
external.updated = data;
external.source = source;
options.externals.push(external);
refs[ref].resolved = true;
}
if (!refs[ref].resolved) {
let depth = options.resolver.depth;
if (depth>0) depth++;
options.resolver.actions[depth].push(function () {
return resolveExternal(options.openapi, ref, options, function (data, source, options) {
if (!refs[ref].resolved) {
let external = {};
external.context = refs[ref];
external.$ref = ref;
external.original = clone(data);
external.updated = data;
external.source = source;
options.externals.push(external);
refs[ref].resolved = true;
}
let localOptions = Object.assign({}, options, { source: '',
resolver: {actions: options.resolver.actions,
depth: options.resolver.actions.length-1, base: options.resolver.base } });
if (options.patch && refs[ref].description && !data.description &&
(typeof data === 'object')) {
data.description = refs[ref].description;
let localOptions = Object.assign({}, options, { source: '',
resolver: {actions: options.resolver.actions,
depth: options.resolver.actions.length-1, base: options.resolver.base } });
if (options.patch && refs[ref].description && !data.description &&
(typeof data === 'object')) {
data.description = refs[ref].description;
}
refs[ref].data = data;
let pointers = unique(refs[ref].paths).sort(function(a,b){
if (a.length < b.length) return -1;
if (a.length > b.length) return +1;
return 0;
});
for (let ptr of pointers) {
// shared x-ms-examples $refs confuse the fixupRefs heuristic in index.js
if (refs[ref].resolvedAt && (ptr !== refs[ref].resolvedAt) && (ptr.indexOf('x-ms-examples/')<0)) {
if (options.verbose>1) console.log('Creating pointer to data at', ptr);
jptr(options.openapi, ptr, { $ref: refs[ref].resolvedAt, 'x-miro': ref }); // resolutionCase:E (new object)
}
refs[ref].data = data;
let pointers = unique(refs[ref].paths).sort(function(a,b){
if (a.length < b.length) return -1;
if (a.length > b.length) return +1;
return 0;
});
for (let ptr of pointers) {
// shared x-ms-examples $refs confuse the fixupRefs heuristic in index.js
if (refs[ref].resolvedAt && (ptr !== refs[ref].resolvedAt) && (ptr.indexOf('x-ms-examples/')<0)) {
if (options.verbose>1) console.log('Creating pointer to data at', ptr);
jptr(options.openapi, ptr, { $ref: refs[ref].resolvedAt, 'x-miro': ref }); // resolutionCase:E (new object)
else {
if (refs[ref].resolvedAt) {
if (options.verbose>1) console.log('Avoiding circular reference');
}
else {
if (refs[ref].resolvedAt) {
if (options.verbose>1) console.log('Avoiding circular reference');
}
else {
refs[ref].resolvedAt = ptr;
if (options.verbose>1) console.log('Creating initial clone of data at', ptr);
}
let cdata = clone(data);
jptr(options.openapi, ptr, cdata); // resolutionCase:F (cloned:yes)
refs[ref].resolvedAt = ptr;
if (options.verbose>1) console.log('Creating initial clone of data at', ptr);
}
let cdata = clone(data);
jptr(options.openapi, ptr, cdata); // resolutionCase:F (cloned:yes)
}
if (options.resolver.actions[localOptions.resolver.depth].length === 0) {
//options.resolver.actions[localOptions.resolver.depth].push(function () { return scanExternalRefs(localOptions) });
options.resolver.actions[localOptions.resolver.depth].push(function () { return findExternalRefs(localOptions) }); // findExternalRefs calls scanExternalRefs
}
});
}
if (options.resolver.actions[localOptions.resolver.depth].length === 0) {
//options.resolver.actions[localOptions.resolver.depth].push(function () { return scanExternalRefs(localOptions) });
options.resolver.actions[localOptions.resolver.depth].push(function () { return findExternalRefs(localOptions) }); // findExternalRefs calls scanExternalRefs
}
});
}
});
}
})
.catch(function(ex){
if (options.verbose) console.warn(ex);
rej(ex);
});
}
})
.catch(function(ex){
if (options.verbose) console.warn(ex);
rej(ex);
});

@@ -382,3 +382,9 @@ let result = {options:options};

options.cache[options.source] = { '$ref': '#/' };
if (options.source) {
let srcUrl = url.parse(options.source);
if (!srcUrl.protocol) {
options.source = path.resolve(options.source);
}
options.cache[options.source] = { '$ref': '#/' };
}

@@ -385,0 +391,0 @@ if (!options.externals) options.externals = [];

{
"name": "oas-resolver",
"version": "1.0.6",
"version": "1.0.7",
"description": "Resolve external $refs in OpenAPI (swagger) 2.0 / 3.x definitions",

@@ -25,6 +25,6 @@ "main": "index.js",

"oas-kit-common": "^1.0.3",
"reftools": "^1.0.0",
"reftools": "^1.0.1",
"yargs": "^11.0.0"
},
"gitHead": "edd795d56e986195d552d8000735ed6e75977772"
"gitHead": "f4c3f9df9ff1e8b2e8b7ce4c961c6fa3b9c18196"
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc