UNPKG

apiconnect-explorer

Version:

- [Getting Started](#getting-started) - [Configuration](#configuration) * [Required](#required) * [Optional](#optional) - [Usage in React](#usage-in-react) - [Usage outside of React](#usage-outside-of-react) - [Detailed description of options](#detail

1 lines 11.5 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=void 0;var a=d(require("semver-compare")),b=require("lodash"),c=d(require("./api-common.ts"));function d(a){return a&&a.__esModule?a:{default:a}}function f(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function g(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?f(Object(b),!0).forEach(function(c){h(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):f(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function h(a,b,c){return(b=u(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function i(a,b){return n(a)||m(a,b)||k(a,b)||j()}function j(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function k(b,c){if(b){if("string"==typeof b)return l(b,c);var a={}.toString.call(b).slice(8,-1);return"Object"===a&&b.constructor&&(a=b.constructor.name),"Map"===a||"Set"===a?Array.from(b):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?l(b,c):void 0}}function l(b,c){(null==c||c>b.length)&&(c=b.length);for(var d=0,f=Array(c);d<c;d++)f[d]=b[d];return f}function m(b,c){var d=null==b?null:"undefined"!=typeof Symbol&&b[Symbol.iterator]||b["@@iterator"];if(null!=d){var g,h,j,k,l=[],a=!0,m=!1;try{if(j=(d=d.call(b)).next,0===c){if(Object(d)!==d)return;a=!1}else for(;!(a=(g=j.call(d)).done)&&(l.push(g.value),l.length!==c);a=!0);}catch(a){m=!0,h=a}finally{try{if(!a&&null!=d["return"]&&(k=d["return"](),Object(k)!==k))return}finally{if(m)throw h}}return l}}function n(a){if(Array.isArray(a))return a}function p(a){"@babel/helpers - typeof";return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},p(a)}function q(b,a){if(!(b instanceof a))throw new TypeError("Cannot call a class as a function")}function s(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,u(c.key),c)}function t(a,b,c){return b&&s(a.prototype,b),c&&s(a,c),Object.defineProperty(a,"prototype",{writable:!1}),a}function u(a){var b=v(a,"string");return"symbol"==p(b)?b:b+""}function v(a,b){if("object"!=p(a)||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=p(d))return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}function w(a,b,c){return b=A(b),x(a,z()?Reflect.construct(b,c||[],A(a).constructor):b.apply(a,c))}function x(a,b){if(b&&("object"==p(b)||"function"==typeof b))return b;if(void 0!==b)throw new TypeError("Derived constructors may only return object or undefined");return y(a)}function y(a){if(void 0===a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return a}function z(){try{var a=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(a){}return(z=function(){return!!a})()}function A(a){return A=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(a){return a.__proto__||Object.getPrototypeOf(a)},A(a)}function B(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function");a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,writable:!0,configurable:!0}}),Object.defineProperty(a,"prototype",{writable:!1}),b&&C(a,b)}function C(a,b){return C=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(a,b){return a.__proto__=b,a},C(a,b)}var D="3.0",E=exports["default"]=function(c){function d(){return q(this,d),w(this,d,arguments)}return B(d,c),t(d,[{key:"isSupported",value:function(b){return!!(b&&"object"===p(b))&&!!b.openapi&&0<=(0,a["default"])(b.openapi,D)}},{key:"cleanEndpoints",value:function b(a){var c=this,d=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},b=[];return a.forEach(function(a){var e=a.url?a.url:a.endpointUrl;d.basePath&&(e+=d.basePath),b=b.concat({url:e,variables:a.variables,types:c.getEndpointTypes(a.type)})}),b}},{key:"getEndpoints",value:function(a){var c=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};if(a&&this.isSupported(a)){var d=c.path,e=c.method,f=[];for(var g in(0,b.get)(a,"paths[".concat(d,"][").concat(e,"].servers"))?f=this.cleanEndpoints(a.paths[d][e].servers):(0,b.get)(a,"paths[".concat(d,"].servers"))?f=this.cleanEndpoints(a.paths[d].servers):a.endpoint?f=f.concat({url:a.endpoint}):0<(0,b.get)(a,"[x-ibm-configuration][servers]",[]).length?f=this.cleanEndpoints(a["x-ibm-configuration"].servers):0<(0,b.get)(a,"[x-ibm-endpoints]",[]).length?f=this.cleanEndpoints(a["x-ibm-endpoints"],{basePath:a.basePath}):a.servers&&0<a.servers.length&&(f=this.cleanEndpoints(a.servers)),f)Object.prototype.hasOwnProperty.call(f,g)&&(f[g].url=this.resolveRelativeUrl(f[g].url));return f}}},{key:"getBodyParameter",value:function(a,b,c,d){if(a&&d&&this.isSupported(d)&&d.openapi){var e;if(a.requestBody){if(a.requestBody.$ref&&(a.requestBody=this.getLocalReference(a.requestBody.$ref,d)),a.requestBody.content){if(a.requestBody.content[c])e=JSON.parse(JSON.stringify(a.requestBody.content[c]));else{var f=a.requestBody.content?Object.keys(a.requestBody.content)[0]:null;if(!f||!a.requestBody.content[f])return a.requestBody;e=JSON.parse(JSON.stringify(a.requestBody.content[f]))}return e.description=a.requestBody.description,e.required=a.requestBody.required,e.name="body",e["in"]="body",e}return a.requestBody}}}},{key:"getFormDataParameters",value:function(a,b,c,d){if(a&&d&&this.isSupported(d)&&d.openapi){var e=[];if(a.requestBody.content&&a.requestBody.content[c]&&a.requestBody.content[c].schema&&a.requestBody.content[c].schema.$ref&&(a.requestBody.content[c].schema=this.getLocalReference(a.requestBody.content[c].schema.$ref,d)),a.requestBody.content&&a.requestBody.content[c]&&a.requestBody.content[c].schema&&a.requestBody.content[c].schema.properties)for(var f in a.requestBody.content[c].schema.properties){var g,h=JSON.parse(JSON.stringify(a.requestBody.content[c].schema.properties[f]));h.name=f,h["in"]="formData",h.required=null===(g=a.requestBody.content[c].schema.required)||void 0===g?void 0:g.includes(h.name),e.push(h)}return e}}},{key:"getSecurityFlowConfig",value:function(a,b,c,d){var e=this;if(a){var f=this.getSecurityFlowConfigDefaults();return Object.keys(a).forEach(function(g){if(e.securityDefinitionFound(b,g)){var h=b[g],i=a[g];f=e.setApikeySecurityTypeConfig(f,h),f=e.setHttpSecurityTypeConfig(f,h),f=e.setOauthSecurityTypeConfig(f,h,i,c,d),f=e.setOpenIdConnectTypeConfig(f,h)}}),f=this.setRemainingConfig(f,c),f}}},{key:"setOpenIdConnectTypeConfig",value:function(a,b){return"openIdConnect"===b.type&&(a.openIdConnectUrl=b.openIdConnectUrl,a.requiresAuthorizationSection=!0),a}},{key:"setHttpSecurityTypeConfig",value:function(a,b,c,d,e){if("http"===b.type){if(a.requiresHttpAuth=!0,a.httpScheme=b.scheme,"basic"===b.scheme&&(a.requiresBasicAuth=!0),"bearer"===b.scheme&&(a.requiresHttpBearerToken=!0,a.requiresAuthorizationSection=!0),"digest"===b.scheme&&(a.requiresDigestAuth=!0),"hoba"===b.scheme&&(a.requiresHobaAuth=!0),"scramSha256"===b.scheme&&(a.requiresScramShaAuth=!0),"vapid"===b.scheme&&(a.requiresVapidAuth=!0),"negotiate"===b.scheme&&(a.requiresNegotiateAuth=!0),"oauth"===b.scheme){var f={};for(var g in b.flows)f[g]=this.setOauthFlowConfig(a,g,b,c,d,e);a=f[Object.keys(f)[0]],a.oauthFlowsConfig=f,a.requiresOauth=!0}"mutual"===b.scheme&&(a.requiresMutualAuth=!0)}return a}},{key:"getSchemas",value:function(a){return a&&this.isSupported(a)?a.components&&a.components.schemas?a.components.schemas:void 0:void 0}},{key:"getSchemasFullPath",value:function(a){return a&&this.isSupported(a)?a.components?{components:a.components}:void 0:void 0}},{key:"getSchemasRoot",value:function(a){var b=null;return a.components&&a.components.schemas&&(b=a.components.schemas),b}},{key:"getExamples",value:function(a){return a&&this.isSupported(a)?a.components&&a.components.examples?a.components.examples:void 0:void 0}},{key:"getExamplesFullPath",value:function(a){return a&&this.isSupported(a)?a.components&&a.components.examples?{components:{examples:a.components.examples}}:void 0:void 0}},{key:"getExamplesRoot",value:function(a){var b=null;return a.components&&a.components.examples&&(b=a.components.examples),b}},{key:"getSecurityDefinitions",value:function(a){var c=(0,b.get)(this.api,"components.securitySchemes");if(c){var d=(0,b.get)(this.api,"x-ibm-configuration.oauth-servers");return d&&(c=JSON.parse(JSON.stringify(c)),Object.entries(d).forEach(function(a){var d=i(a,2),e=d[0],f=d[1];Object.entries(f).forEach(function(a){var d=i(a,2),f=d[0],g=d[1];(0,b.get)(c,"".concat(e,".flows.").concat(f))&&(c[e].flows[f].tokenUrl=g.tokenUrls,c[e].flows[f].authorizationUrl=g.authorizationUrls,c[e].flows[f].refreshUrl=g.refreshUrls)})})),a&&(c=this.resolveOauthUrls(c,a)),c}}},{key:"setOauthSecurityTypeConfig",value:function(a,b,c,d,e){if("oauth2"===b.type){var f={};for(var g in b.flows)f[g]=this.setOauthFlowConfig(a,g,b,c,d,e);f[Object.keys(f)[0]]&&(a=f[Object.keys(f)[0]],a.oauthFlowsConfig=f)}return a}},{key:"setOauthFlowConfig",value:function(a,b,c,d,e,f){var h=g({},a);h.requiresOauth=!0,h.requiresClientId=!0,h.oauthFlow=b,("clientCredentials"===b||"authorizationCode"===b||"password"===b)&&(h.requiresClientSecret=!0),("implicit"===b||"authorizationCode"===b)&&(h.requiresRedirectUri=!0);var i=this.getFullOauthUrls(c.flows[b],f);if(c.flows[b].authorizationUrl&&(h.oauthAuthUrl=i.authorizationUrl,h.requiresAuthorizationSection=!0),c.flows[b].tokenUrl&&(h.oauthTokenUrl=i.tokenUrl,h.requiresAuthorizationSection=!0),c.flows[b].refreshUrl&&(h.oauthRefreshUrl=i.refreshUrl,h.requiresAuthorizationSection=!0),c.flows[b].scopes&&0<Object.keys(c.flows[b].scopes).length)for(var j in h.oauthScopes=[],c.flows[b].scopes)0!==j.indexOf("x-")&&d&&-1<d.indexOf(j)&&h.oauthScopes.push(j);return h=this.setRemainingConfig(h,e),h}},{key:"getContentTypes",value:function(a,b){if(!a||!b||!this.isSupported(b))return[];var c=[];if(a.requestBody&&a.requestBody.content&&(c=c.concat(Object.keys(a.requestBody.content))),c=JSON.parse(JSON.stringify(c)),0===c.length&&b["x-ibm-configuration"]){if(!a.parameters)return c;a.parameters.forEach(function(a){"formData"===a["in"]&&c.push("application/x-www-form-urlencoded"),"body"===a["in"]&&(b["x-ibm-configuration"].enforced?(c.push("application/json"),c.push("application/xml")):c.push("application/json"))})}return c}},{key:"getAccepts",value:function(a,b){var c=this;if(!a||!b||!this.isSupported(b))return[];var d=[];return a.responses&&(Object.keys(a.responses).forEach(function(e){var f=a.responses[e];f&&f.$ref&&(f=c.getLocalReference(f.$ref,b)),f&&("default"===e||e.startsWith("2"))&&f.content&&(d=d.concat(Object.keys(f.content)))}),d=d.filter(function(a,b,c){return c.indexOf(a)===b})),d=JSON.parse(JSON.stringify(d)),0===d.length&&(b["x-ibm-configuration"]&&b["x-ibm-configuration"].enforced?(d.push("application/json"),d.push("application/xml")):d.push("application/json")),d}}])}(c["default"]);