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 14.9 kB
function a(b){"@babel/helpers - typeof";return a="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},a(b)}function b(a,b){return g(a)||f(a,b)||d(a,b)||c()}function c(){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 d(b,c){if(b){if("string"==typeof b)return e(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)?e(b,c):void 0}}function e(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 f(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 g(a){if(Array.isArray(a))return a}function h(b,a){if(!(b instanceof a))throw new TypeError("Cannot call a class as a function")}function i(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,k(c.key),c)}function j(a,b,c){return b&&i(a.prototype,b),c&&i(a,c),Object.defineProperty(a,"prototype",{writable:!1}),a}function k(b){var c=l(b,"string");return"symbol"==a(c)?c:c+""}function l(b,c){if("object"!=a(b)||!b)return b;var d=b[Symbol.toPrimitive];if(void 0!==d){var e=d.call(b,c||"default");if("object"!=a(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===c?String:Number)(b)}import m from"jsonpointer";import{isEmpty as n,get as o,uniq as p}from"lodash";import q from"lodash/has";import r from"./api-factory.ts";import{getAPIType as s,APITypes as t}from"./APITypes.ts";import u from"./MarkupTypes.ts";var v="$(catalog.url)",w=function(){function a(b){h(this,a),this.api=b,this.version=this.isSupported(b)?this.getVersion(b):null}return j(a,[{key:"getSecurity",value:function(a){var b,c,d,e=null!==(b=null!==(c=null===a||void 0===a?void 0:a.security)&&void 0!==c?c:null===(d=this.api)||void 0===d?void 0:d.security)&&void 0!==b?b:[];return Array.isArray(e)&&(e=e.filter(function(a){return 0!==Object.keys(a).length})),e}},{key:"assertHandler",value:function(a){return this.version===this.getVersion(a)?this:r(a)}},{key:"getVersion",value:function(a){return a.swagger?a.swagger:a.openapi?a.openapi:a.asyncapi?a.asyncapi:"2.0"}},{key:"getSpecLabel",value:function(a){var b=this.getType(a);return"REST"===b?a.openapi?a.openapi.startsWith("3.1")?"OAS3.1":"OAS3":"OAS2":null}},{key:"getType",value:function(a){return s(a)}},{key:"getMarkupType",value:function(){var a=this.getType(this.api),b=this.getVersion(this.api);return a===t.rest||a===t.wsdl?b.startsWith("1.")||b.startsWith("2.")?u.markdown:u.commonmark:u.commonmark}},{key:"isSOAP",value:function(a){return!!(a["x-ibm-configuration"]&&"wsdl"===a["x-ibm-configuration"].type)}},{key:"isGraphQL",value:function(a){return!!(a["x-ibm-configuration"]&&"graphql"===a["x-ibm-configuration"].type)}},{key:"isAsync",value:function(a){var b=this.getType(a);return!(b!==t.asyncapi)}},{key:"isTestable",value:function(a){return!(a["x-ibm-configuration"]&&q(a["x-ibm-configuration"],"testable")&&!a["x-ibm-configuration"].testable||a.info&&q(a.info,"x-try-it-out-enabled")&&!a.info["x-try-it-out-enabled"])}},{key:"getEndpointTypes",value:function(a){if(a&&!(1>a.length)){var b=a.map(function(a){var b=a.split("");return b[0]=b[0].toUpperCase(),b.join("")}),c=b.join(", ");return c}}},{key:"getOperationPath",value:function(a,b){if(b&&a){var c="";return c=this.isSOAP(a)?"":b,c}}},{key:"getParameters",value:function(a,b,c,d){if(a&&d&&this.isSupported(d)){var e=[],f={};a.parameters&&(e=e.concat(a.parameters)),d.paths&&d.paths[b]&&d.paths[b].parameters&&(e=e.concat(d.paths[b].parameters));var g=this;a.requestBody&&((c.startsWith("multipart/")||"application/x-www-form-urlencoded"===c)&&0<this.getFormDataParameters(a,b,c,d).length?e=e.concat(this.getFormDataParameters(a,b,c,d)):(f.body=this.getBodyParameter(a,b,c,d),a.requestBody["x-ibm-languages"]&&(f.body["x-ibm-languages"]=a.requestBody["x-ibm-languages"])));for(var h=0;h<e.length;h+=1)e[h]=JSON.parse(JSON.stringify(e[h]));return e.forEach(function(a){for(;a.$ref||a.schema&&a.schema.$ref;){var b=!1;if(a.$ref){var c=a.$ref.split("/").pop(),e=g.getLocalReference(a.$ref,d);e&&!e.error?(delete a.$ref,a=Object.assign(a,e)):(console.warn("Missing reference: ".concat(a.$ref)),b=!0,a={name:c,description:"missing",schema:{type:"unknown"}})}else if(a.schema&&a.schema.$ref){var h=a.schema.$ref.split("/").pop(),i=g.getLocalReference(a.schema.$ref,d);if(i&&!i.error){var j=JSON.parse(JSON.stringify(a));j.schema=i,a=j}else b=!0,console.warn("Missing reference: ".concat(a.schema.$ref)),a={name:h,description:"missing",schema:{type:"unknown"}}}if(b)break}f[a.name]=a}),f}}},{key:"containsReservedParameters",value:function(a){var b=this,c=!1;return a&&void 0!==Object.keys(a)&&0<Object.keys(a).length&&Object.keys(a).forEach(function(d){a[d]["in"]&&"header"===a[d]["in"]&&b.reservedHeaders().includes(a[d].name.toLowerCase())&&(c=!0)}),c}},{key:"removeReservedParameters",value:function(a){var b=this;return a&&void 0!==Object.keys(a)&&0<Object.keys(a).length&&Object.keys(a).forEach(function(c){a[c]["in"]&&"header"===a[c]["in"]&&b.reservedHeaders().includes(a[c].name.toLowerCase())&&delete a[c]}),a}},{key:"removeReservedParameterNames",value:function(a){var b=this;return a&&0<a.length&&(a=a.filter(function(a){var c=b.reservedHeaders().includes(a.toLowerCase());return!c})),a}},{key:"reservedHeaders",value:function(){return["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","cookie","cookie2","date","dnt","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","via"]}},{key:"getQueryParameters",value:function(a,b,c,d){return this.getParametersByType("query",a,b,c,d)}},{key:"getPathParameters",value:function(a,b,c,d){return this.getParametersByType("path",a,b,c,d)}},{key:"getHeaderParameters",value:function(a,b,c,d){return this.getParametersByType("header",a,b,c,d)}},{key:"getCookieParameters",value:function(a,b,c,d){return this.getParametersByType("cookie",a,b,c,d)}},{key:"getParametersByType",value:function(a,b,c,d,e){var f=this.getParameters(b,c,d,e);return f&&0!==f.length?Object.keys(f).filter(function(b){return f[b]["in"]===a}):[]}},{key:"resolveRelativeUrl",value:function(a){return a&&!/(wss?|https?):\/\//.test(a)&&(a=this.buildFullUrl("".concat(window.location.host,"/"),a)),a}},{key:"findSelectedEndpoint",value:function(a,b){var c=this,d=b.find(function(b){return a===c.resolveRelativeUrl(b.url)});return d||null}},{key:"getServerVariables",value:function(a,b,c){if(a&&this.isSupported(a)){var d,e=c.path,f=c.method;if(o(a,"paths[".concat(e,"][").concat(f,"].servers"))?d=this.findSelectedEndpoint(b,a.paths[e][f].servers):o(a,"paths[".concat(e,"].servers"))?d=this.findSelectedEndpoint(b,a.paths[e].servers):a.endpoint?a.endpoint.servers&&(d=this.findSelectedEndpoint(b,a.endpoint.servers)):0<o(a,"[x-ibm-configuration][servers]",[]).length?d=this.findSelectedEndpoint(b,a["x-ibm-configuration"].servers):0<o(a,"[x-ibm-endpoints]",[]).length?d=this.findSelectedEndpoint(b,a["x-ibm-endpoints"]):a.servers&&0<a.servers.length&&(d=this.findSelectedEndpoint(b,a.servers)),d)var g=d,h=g.variables;return h}}},{key:"getFullOauthUrls",value:function(a,b){var c={authorizationUrl:"",type:"",flow:"",tokenUrl:"",refreshUrl:""};return a.authorizationUrl&&0<a.authorizationUrl.length&&(c.authorizationUrl=this.substituteHost(a.authorizationUrl,b),b&&!/(wss?|https?):\/\//.test(c.authorizationUrl)&&(c.authorizationUrl="".concat(b,"/").concat(c.authorizationUrl),c.authorizationUrl=c.authorizationUrl.replace(/([^:])(\/\/+)/g,"$1/"))),a.tokenUrl&&0<a.tokenUrl.length&&(c.tokenUrl=this.substituteHost(a.tokenUrl,b),b&&!/(wss?|https?):\/\//.test(c.tokenUrl)&&(c.tokenUrl="".concat(b,"/").concat(c.tokenUrl),c.tokenUrl=c.tokenUrl.replace(/([^:])(\/\/+)/g,"$1/"))),a.refreshUrl&&0<a.refreshUrl.length&&(c.refreshUrl=this.substituteHost(a.refreshUrl,b),b&&!/(wss?|https?):\/\//.test(c.refreshUrl)&&(c.refreshUrl="".concat(b,"/").concat(c.refreshUrl),c.refreshUrl=c.refreshUrl.replace(/([^:])(\/\/+)/g,"$1/"))),c}},{key:"resolveOauthUrls",value:function(a,c){var d=this,e=JSON.parse(JSON.stringify(a));return Object.keys(e).forEach(function(a){if("oauth2"===e[a].type)if("string"==typeof e[a].flow)for(var f=d.getFullOauthUrls(e[a],c),g=0,h=Object.entries(f);g<h.length;g++){var i=b(h[g],2),j=i[0],k=i[1];e[a][j]=k}else e[a].flows&&Object.keys(e[a].flows).forEach(function(f){for(var g=d.getFullOauthUrls(e[a].flows[f],c),h=0,i=Object.entries(g);h<i.length;h++){var j=b(i[h],2),k=j[0],l=j[1];e[a].flows[f][k]=l}})}),e}},{key:"getSecurityConfig",value:function(a,b,c,d){var e=this;if(a&&this.isSupported(a)){var f={securityDefinitions:this.getSecurityDefinitions()},g=b.security||a.security;if(g){var h={};g.forEach(function(a){var b=Object.keys(a).filter(function(a){return 0!==a.indexOf("$$")}).join(", "),g={};n(a)||(g.flow=a,g.config=e.getSecurityFlowConfig(a,f.securityDefinitions,c,d),h[b]=g)}),f.securityFlows=h;var i=Object.keys(f.securityFlows);f.flags=1>i.length?null:f.securityFlows[i[0]].config}return f}}},{key:"securityDefinitionFound",value:function(a,b){if(!a)return console.warn("".concat(b," specified but no security definitions found.")),!1;var c=a[b];return!!c||(console.warn("no security definition found: ".concat(c)),!1)}},{key:"getSecurityFlowConfigDefaults",value:function(){return{clientSecretLocation:null,clientSecretName:null,clientIdLocation:null,clientIdName:null,httpScheme:null,oauthFlow:null,oauthFlows:null,oauthFlowsConfig:null,oauthAuthUrl:null,oauthTokenUrl:null,oauthScopes:null,oauthRefreshUrl:null,requiresClientId:!1,requiresClientSecret:!1,requiresBasicAuth:!1,requiresDigestAuth:!1,requiresHobaAuth:!1,requiresScramShaAuth:!1,requiresVapidAuth:!1,requiresNegotiateAuth:!1,requiresMutualAuth:!1,requiresHttpAuth:!1,requiresOauth:!1,requiresSecuritySection:!1,requiresIdentificationSection:!1,requiresAuthorizationSection:!1,requiresRefreshToken:!1,requiresUserCredentials:!1,requiresRedirectUri:!1,externalApiKeys:[]}}},{key:"setApikeySecurityTypeConfig",value:function(a,b){return"apiKey"===b.type&&("client_id"===b.name||"X-IBM-Client-Id"===b.name||b["x-key-type"]&&("clientId"===b["x-key-type"]||"client_id"===b["x-key-type"])?(a.requiresClientId=!0,a.clientIdLocation=b["in"],a.clientIdName=b.name):"client_secret"===b.name||"X-IBM-Client-Secret"===b.name||b["x-key-type"]&&("clientSecret"===b["x-key-type"]||"client_secret"===b["x-key-type"])?(a.requiresClientSecret=!0,a.clientSecretLocation=b["in"],a.clientSecretName=b.name):a.externalApiKeys[b.name]=b),a}},{key:"setRemainingConfig",value:function(a,b){return(a.requiresClientId&&(!b||!b.clientId)||a.requiresClientSecret&&(!b||!b.clientSecret||"SECRET"===b.clientSecret)||a.requiresBasicAuth||a.requiresOauth||a.requiresDigestAuth||a.requiresHobaAuth||a.requiresScramShaAuth||a.requiresVapidAuth||a.requiresNegotiateAuth||a.requiresMutualAuth||0<Object.keys(a.externalApiKeys).length)&&(a.requiresSecuritySection=!0),(a.requiresClientId||a.requiresClientSecret)&&(a.requiresIdentificationSection=!0),0<Object.keys(a.externalApiKeys).length&&(a.requiresIdentificationSection=!0),(a.requiresBasicAuth||"password"===a.oauthFlow||a.requiresDigestAuth||a.requiresHobaAuth||a.requiresScramShaAuth||a.requiresVapidAuth||a.requiresNegotiateAuth||a.requiresOauth||a.requiresMutualAuth)&&(a.requiresAuthorizationSection=!0),(a.requiresBasicAuth||"password"===a.oauthFlow)&&(a.requiresUserCredentials=!0),("accessCode"===a.oauthFlow||"authorizationCode"===a.oauthFlow||"password"===a.oauthFlow)&&(a.requiresRefreshToken=!0),a}},{key:"substituteHost",value:function(a,b){if(!a||0>a.indexOf(v)||!b)return a;var c=a.replace(v,b);return /((wss?|https?):\/\/){2}/.test(c)&&(/wss?:\/\//.test(c)?c=c.replace(/wss?:\/\//,""):c=c.replace(/https?:\/\//,"")),c}},{key:"getDefaultAcceptHeader",value:function(a,b){var c=this.getAccepts(a,b);return-1===c.indexOf("application/json")?0<c.length?c[0]:"application/json":"application/json"}},{key:"getDefaultContentTypeHeader",value:function(a,b){var c=this.getContentTypes(a,b);return-1===c.indexOf("application/json")?0<c.length?c[0]:"application/json":"application/json"}},{key:"getLocalReference",value:function(a,b){if(a&&b){0===a.indexOf("#")&&(a=a.substring(1));var c=m.get(b,a);return c?c:{error:"missing reference",$ref:a}}}},{key:"getCustomExtensions",value:function(a){var b={};if(a){var c=["x-pathalias","x-embedded-doc","x-example","x-try-it-out-enabled","x-codegen-config","x-sdk-operations","x-sdk-global-param","x-scopeValidate","x-postman-workspace-id","x-postman-collection-id"],d=Object.keys(a).filter(function(a){return!(!a.startsWith("x-")||a.startsWith("x-ibm-")||c.includes(a))});d.map(function(c){return b[c]=a[c],null})}return 0<Object.keys(b).length?b:null}},{key:"getApiTags",value:function(a){if(a&&this.isSupported(a)){var b={tags:{},operations:[]};return a.tags&&a.tags.forEach(function(a){b.tags[a.name]={tags:{},operations:[]},a.description&&(b.tags[a.name].description=a.description),a.externalDocs&&a.externalDocs.url&&(b.tags[a.name].externalDocs=a.externalDocs)}),b}}},{key:"getProtocols",value:function(a){var b=this,c=[];return a&&a.forEach(function(a){var d=b.resolveRelativeUrl(a.url),e=d.substring(0,d.indexOf("://"));""!==e&&c.push(e)}),c}},{key:"getSchemes",value:function(a){var b=this;if(!a||!this.isSupported(a))return null;var c=[];return a.schemes?c=a.schemes:(c=c.concat(this.getProtocols(a.servers)),a.paths&&Object.keys(a.paths).forEach(function(d){c=c.concat(b.getProtocols(a.paths[d].servers)),Object.keys(a.paths[d]).forEach(function(e){c=c.concat(b.getProtocols(a.paths[d][e].servers))})}),0===c.length&&(c=[window.location.protocol.replace(":","")])),c=p(c),c}},{key:"getDataTableRows",value:function(a){var c=[];return Object.entries(a).forEach(function(a){var d=b(a,2),e=d[0],f=d[1];return c.push({id:e,data:f})}),c}},{key:"buildFullUrl",value:function(a,b){return a.endsWith("/")&&b.startsWith("/")&&(a=a.substr(0,a.length-1)),a+b}},{key:"mapProtocol",value:function(a){var b={kafka:"Kafka","kafka-secure":"Kafka"}[a];return b?b:a}},{key:"isEnforced",value:function(){return o(this.api,"x-ibm-configuration.enforced",!1)}}])}();export{w as default};