@redocly/reference-docs 2.43.7 → 2.44.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.
- package/bin/cli/commands/redocly-docs-cli.min.js +4 -4
- package/bin/cli/commands/redocly-docs-cli.min.js.LICENSE.txt +1 -1
- package/dist/console.redocly-reference-docs.min.js +61 -61
- package/dist/oauth2-redirect.js +1 -1
- package/dist/redocly-reference-docs.min.js +185 -185
- package/lib/components/console/AuthPanel.js +1 -1
- package/lib/components/console/Console.js +1 -1
- package/lib/redoc-lib/src/components/SecurityRequirement/SecurityRequirement.js +1 -1
- package/lib/redoc-lib/src/services/models/Operation.js +1 -1
- package/lib/redoc-lib/src/services/models/SecurityRequirement.js +1 -1
- package/lib/redoc-lib/src/types/open-api.d.ts +2 -2
- package/lib-browser/components/console/AuthPanel.js +1 -1
- package/lib-browser/components/console/Console.js +1 -1
- package/lib-browser/redoc-lib/src/components/SecurityRequirement/SecurityRequirement.js +1 -1
- package/lib-browser/redoc-lib/src/services/models/Operation.js +1 -1
- package/lib-browser/redoc-lib/src/services/models/SecurityRequirement.js +1 -1
- package/lib-browser/redoc-lib/src/types/open-api.d.ts +2 -2
- package/lib-esm/components/console/AuthPanel.js +1 -1
- package/lib-esm/components/console/Console.js +1 -1
- package/lib-esm/redoc-lib/src/components/SecurityRequirement/SecurityRequirement.js +1 -1
- package/lib-esm/redoc-lib/src/services/models/Operation.js +1 -1
- package/lib-esm/redoc-lib/src/services/models/SecurityRequirement.js +1 -1
- package/lib-esm/redoc-lib/src/types/open-api.d.ts +2 -2
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.AuthPanel=exports.requiredValidator=void 0;var tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),utils_1=require("../../utils"),TextField_1=require("../common/TextField"),form_1=require("../common/form"),Labels_1=require("../../redoc-lib/src/services/Labels"),Dropdown_1=require("../common/Dropdown"),OpenIDConnect_1=require("./OpenIDConnect"),OAuth2Flow_1=require("./OAuth2Flow"),OAuth2TokenInput_1=(0,tslib_1.__importDefault)(require("./OAuth2TokenInput"));function requiredValidator(e){if(!e)return"Field is required"}exports.requiredValidator=requiredValidator;var getCookie=function(e){var r=document.cookie.match("\\b"+e+"=([^;]*)\\b");return r?r[1]:void 0};function fromCookie(e){if("cookie"===e.in)return getCookie(e.name)}var AuthPanel=function(e){function r(){var r=null!==e&&e.apply(this,arguments)||this;return Object.defineProperty(r,"state",{enumerable:!0,configurable:!0,writable:!0,value:{activeScheme:0}}),Object.defineProperty(r,"handleSchemeChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.setState({activeScheme:e.idx}),(0,utils_1.toSessionStorage)("securityRequirementName",e.value)}}),r}return(0,tslib_1.__extends)(r,e),Object.defineProperty(r,"getDerivedStateFromProps",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var r=e.operation.security.map((function(e){return e.schemes.map((function(e){return e.id})).join(" and ")})),i=(0,utils_1.fromSessionStorage)("securityRequirementName"),t=r.findIndex((function(e){return e===i}));return{activeScheme:t<0?0:t}}}),Object.defineProperty(r.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this,r=this.props.securityDefaults,i=this.state.activeScheme,t=this.props.operation.security,o=t.map((function(e){return e.schemes.map((function(e){return e.id})).join(" and ")})).filter(Boolean).map((function(e,r){return{value:e,idx:r}}));return 0===o.length?(0,jsx_runtime_1.jsx)(OpenIDConnect_1.Error,{message:"Cannot find security schema in the definition"},void 0):(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsxs)(form_1.FormWrapper,{children:[o.length>1&&(0,jsx_runtime_1.jsxs)(form_1.FormControl,{children:[(0,jsx_runtime_1.jsx)(form_1.FormLabel,{children:" Security scheme: "},void 0),(0,jsx_runtime_1.jsx)(Dropdown_1.Dropdown,{variant:"dark",fullWidth:!0,options:o,value:o[i].value,onChange:this.handleSchemeChange},void 0)]},void 0)||null,t[i].schemes.map((function(i){var t,o,n,s,l,a,u,d=(0,utils_1.escapeFormId)(i.id);if("apiKey"===i.type){var m=(0,utils_1.getSecurityDetailsOptions)(d,""),_={field:"auth."+d,fullWidth:!0,initialValue:fromCookie(i)||(0,utils_1.fromSessionStorage)("auth."+d)||(null==r?void 0:r[d]),initValue:fromCookie(i)||(0,utils_1.fromSessionStorage)("auth."+d)||(null==r?void 0:r[d]),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return(0,jsx_runtime_1.jsxs)(form_1.FormControl,{children:[(0,jsx_runtime_1.jsxs)(form_1.FormLabel,{children:[" ",i.name,": "]},void 0),m?(0,jsx_runtime_1.jsx)(TextField_1.FormDropdown,(0,tslib_1.__assign)({},_,{options:m}),void 0):(0,jsx_runtime_1.jsx)(TextField_1.FormTextField,(0,tslib_1.__assign)({},_,{type:"password","data-cy":"apiKey-auth-password"}),void 0)]},d)}if("http"===i.type){if("basic"===i.scheme){var c=(0,utils_1.getSecurityDetailsOptions)(d,"username");_={field:"auth."+d+".username",fullWidth:!0,initialValue:(0,utils_1.fromSessionStorage)("auth."+d+".username")||(null===(t=null==r?void 0:r[d])||void 0===t?void 0:t.username),initValue:(0,utils_1.fromSessionStorage)("auth."+d+".username")||(null===(o=null==r?void 0:r[d])||void 0===o?void 0:o.username),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return(0,jsx_runtime_1.jsxs)(react_1.Fragment,{children:[(0,jsx_runtime_1.jsxs)(form_1.FormControl,{children:[(0,jsx_runtime_1.jsxs)(form_1.FormLabel,{children:[" ",(0,Labels_1.l)("tryItAuthBasicUsername"),": "]},void 0),c?(0,jsx_runtime_1.jsx)(TextField_1.FormDropdown,(0,tslib_1.__assign)({},_,{options:c}),void 0):(0,jsx_runtime_1.jsx)(TextField_1.FormTextField,(0,tslib_1.__assign)({},_),void 0)]},void 0),(0,jsx_runtime_1.jsxs)(form_1.FormControl,{children:[(0,jsx_runtime_1.jsxs)(form_1.FormLabel,{children:[" ",(0,Labels_1.l)("tryItAuthBasicPassword"),": "]},void 0),(0,jsx_runtime_1.jsx)(TextField_1.FormTextField,{type:"password","data-cy":"http-auth-password",fullWidth:!0,field:"auth."+d+".password",initialValue:(0,utils_1.fromSessionStorage)("auth."+d+".password")||(null===(n=null==r?void 0:r[d])||void 0===n?void 0:n.password)||"",validateOnBlur:!0,validateOnChange:!0},void 0)]},void 0)]},d)}if("bearer"===i.scheme){var p=(0,utils_1.getSecurityDetailsOptions)(d,"");_={field:"auth."+d,fullWidth:!0,initialValue:(0,utils_1.fromSessionStorage)("auth."+d)||(null==r?void 0:r[d]),initValue:(0,utils_1.fromSessionStorage)("auth."+d)||(null==r?void 0:r[d]),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return(0,jsx_runtime_1.jsx)(react_1.Fragment,{children:(0,jsx_runtime_1.jsxs)(form_1.FormControl,{children:[(0,jsx_runtime_1.jsx)(form_1.FormLabel,{children:" Bearer Token: "},void 0),p?(0,jsx_runtime_1.jsx)(TextField_1.FormDropdown,(0,tslib_1.__assign)({},_,{options:p}),void 0):(0,jsx_runtime_1.jsx)(TextField_1.FormTextField,(0,tslib_1.__assign)({},_,{type:"password",placeholder:"(without 'Bearer')"}),void 0)]},void 0)},d)}}else{if("oauth2"===i.type&&i.flows&&i.flows.clientCredentials)return(0,jsx_runtime_1.jsx)(OAuth2TokenInput_1.default,{flow:i.flows.clientCredentials,server:e.props.activeServer,authCorsProxyUrl:e.props.authCorsProxyUrl,id:d,form:e.props.form,formApi:e.props.formApi,clientId:i.flows.clientCredentials["x-defaultClientId"]||i["x-defaultClientId"],defaultValues:null==r?void 0:r[d]},d);if("oauth2"===i.type&&i.flows&&i.flows.implicit)return(0,jsx_runtime_1.jsx)(OAuth2Flow_1.OAuth2Flow,{authorizationUrl:i.flows.implicit.authorizationUrl,authCorsProxyUrl:e.props.authCorsProxyUrl,scopes:Object.keys((null===(l=null===(s=null==i?void 0:i.flows)||void 0===s?void 0:s.implicit)||void 0===l?void 0:l.scopes)||{}),server:e.props.activeServer,id:d,form:e.props.form,formApi:e.props.formApi,clientId:i.flows.implicit["x-defaultClientId"]||i["x-defaultClientId"],flow:"implicit",defaultValues:null==r?void 0:r[d]},d);if("oauth2"===i.type&&i.flows&&i.flows.authorizationCode)return(0,jsx_runtime_1.jsx)(OAuth2Flow_1.OAuth2Flow,{authorizationUrl:i.flows.authorizationCode.authorizationUrl,tokenUrl:i.flows.authorizationCode.tokenUrl,authCorsProxyUrl:e.props.authCorsProxyUrl,scopes:Object.keys((null===(a=i.flows.authorizationCode)||void 0===a?void 0:a.scopes)||{}),server:e.props.activeServer,id:d,form:e.props.form,formApi:e.props.formApi,clientId:i.flows.authorizationCode["x-defaultClientId"]||i["x-defaultClientId"],flow:"authorizationCode",tokenEndpointAuthMethod:i.flows.authorizationCode["x-tokenEndpointAuthMethod"],usePkce:i.flows.authorizationCode["x-usePkce"],defaultValues:null==r?void 0:r[d]},d);if("oauth2"===i.type){var f=(0,utils_1.fromSessionStorage)("auth."+d+".token")||JSON.stringify(null===(u=null==r?void 0:r[d])||void 0===u?void 0:u.token);return f=f?JSON.parse(f):{},(0,jsx_runtime_1.jsxs)(react_1.Fragment,{children:[(0,jsx_runtime_1.jsxs)(form_1.FormControl,{children:[(0,jsx_runtime_1.jsx)(form_1.FormLabel,{children:" Access Token Type: "},void 0),(0,jsx_runtime_1.jsx)(TextField_1.FormTextField,{fullWidth:!0,field:"auth."+d+".token.token_type",initialValue:f.token_type||"Bearer"},void 0)]},void 0),(0,jsx_runtime_1.jsxs)(form_1.FormControl,{children:[(0,jsx_runtime_1.jsx)(form_1.FormLabel,{children:" Access Token: "},void 0),(0,jsx_runtime_1.jsx)(TextField_1.FormTextField,{type:"password",fullWidth:!0,field:"auth."+d+".token.access_token",validate:requiredValidator,initialValue:f.access_token,validateOnBlur:!0,validateOnChange:!0},void 0)]},void 0)]},d)}if("openIdConnect"===i.type)return(0,jsx_runtime_1.jsx)(OpenIDConnect_1.OpenIDConnect,{server:e.props.activeServer,authCorsProxyUrl:e.props.authCorsProxyUrl,id:d,form:e.props.form,formApi:e.props.formApi,scheme:i,clientId:i["x-defaultClientId"],defaultValues:null==r?void 0:r[d]},d)}}))]},void 0),(0,jsx_runtime_1.jsxs)("small",{children:[(0,jsx_runtime_1.jsx)("strong",{children:"Note"},void 0),": Your credentials will be saved until the end of the browser session"]},void 0)]},void 0)}}),r}(react_1.Component);exports.AuthPanel=AuthPanel;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.AuthPanel=exports.requiredValidator=void 0;var tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),utils_1=require("../../utils"),TextField_1=require("../common/TextField"),form_1=require("../common/form"),Labels_1=require("../../redoc-lib/src/services/Labels"),Dropdown_1=require("../common/Dropdown"),OpenIDConnect_1=require("./OpenIDConnect"),OAuth2Flow_1=require("./OAuth2Flow"),OAuth2TokenInput_1=(0,tslib_1.__importDefault)(require("./OAuth2TokenInput"));function requiredValidator(e){if(!e)return"Field is required"}exports.requiredValidator=requiredValidator;var getCookie=function(e){var r=document.cookie.match("\\b"+e+"=([^;]*)\\b");return r?r[1]:void 0};function fromCookie(e){if("cookie"===e.in)return getCookie(e.name)}var AuthPanel=function(e){function r(){var r=null!==e&&e.apply(this,arguments)||this;return Object.defineProperty(r,"state",{enumerable:!0,configurable:!0,writable:!0,value:{activeScheme:0}}),Object.defineProperty(r,"handleSchemeChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.setState({activeScheme:e.idx}),(0,utils_1.toSessionStorage)("securityRequirementName",e.value)}}),r}return(0,tslib_1.__extends)(r,e),Object.defineProperty(r,"getDerivedStateFromProps",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var r=e.operation.security.map((function(e){return e.schemes.map((function(e){return e.id})).join(" and ")})),i=(0,utils_1.fromSessionStorage)("securityRequirementName"),t=r.findIndex((function(e){return e===i}));return{activeScheme:t<0?0:t}}}),Object.defineProperty(r.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this,r=this.props.securityDefaults,i=this.state.activeScheme,t=this.props.operation.security,o=t.map((function(e){return e.schemes.map((function(e){return e.id})).join(" and ")})).filter(Boolean).map((function(e,r){return{value:e,idx:r}}));return 0===o.length?(0,jsx_runtime_1.jsx)(OpenIDConnect_1.Error,{message:"Cannot find security schema in the definition"},void 0):(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsxs)(form_1.FormWrapper,{children:[o.length>1&&(0,jsx_runtime_1.jsxs)(form_1.FormControl,{children:[(0,jsx_runtime_1.jsx)(form_1.FormLabel,{children:" Security scheme: "},void 0),(0,jsx_runtime_1.jsx)(Dropdown_1.Dropdown,{variant:"dark",fullWidth:!0,options:o,value:o[i].value,onChange:this.handleSchemeChange},void 0)]},void 0)||null,t[i].schemes.map((function(i){var t,o,n,s,l,a,u,d=(0,utils_1.escapeFormId)(i.id);if("apiKey"===i.type){var m=(0,utils_1.getSecurityDetailsOptions)(d,""),_={field:"auth."+d,fullWidth:!0,initialValue:fromCookie(i)||(0,utils_1.fromSessionStorage)("auth."+d)||(null==r?void 0:r[d]),initValue:fromCookie(i)||(0,utils_1.fromSessionStorage)("auth."+d)||(null==r?void 0:r[d]),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return(0,jsx_runtime_1.jsxs)(form_1.FormControl,{children:[(0,jsx_runtime_1.jsxs)(form_1.FormLabel,{children:[" ",i.name,": "]},void 0),m?(0,jsx_runtime_1.jsx)(TextField_1.FormDropdown,(0,tslib_1.__assign)({},_,{options:m}),void 0):(0,jsx_runtime_1.jsx)(TextField_1.FormTextField,(0,tslib_1.__assign)({},_,{type:"password","data-cy":"apiKey-auth-password"}),void 0)]},d)}if("http"===i.type){if("basic"===i.scheme){var c=(0,utils_1.getSecurityDetailsOptions)(d,"username");_={field:"auth."+d+".username",fullWidth:!0,initialValue:(0,utils_1.fromSessionStorage)("auth."+d+".username")||(null===(t=null==r?void 0:r[d])||void 0===t?void 0:t.username),initValue:(0,utils_1.fromSessionStorage)("auth."+d+".username")||(null===(o=null==r?void 0:r[d])||void 0===o?void 0:o.username),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return(0,jsx_runtime_1.jsxs)(react_1.Fragment,{children:[(0,jsx_runtime_1.jsxs)(form_1.FormControl,{children:[(0,jsx_runtime_1.jsxs)(form_1.FormLabel,{children:[" ",(0,Labels_1.l)("tryItAuthBasicUsername"),": "]},void 0),c?(0,jsx_runtime_1.jsx)(TextField_1.FormDropdown,(0,tslib_1.__assign)({},_,{options:c}),void 0):(0,jsx_runtime_1.jsx)(TextField_1.FormTextField,(0,tslib_1.__assign)({},_),void 0)]},void 0),(0,jsx_runtime_1.jsxs)(form_1.FormControl,{children:[(0,jsx_runtime_1.jsxs)(form_1.FormLabel,{children:[" ",(0,Labels_1.l)("tryItAuthBasicPassword"),": "]},void 0),(0,jsx_runtime_1.jsx)(TextField_1.FormTextField,{type:"password","data-cy":"http-auth-password",fullWidth:!0,field:"auth."+d+".password",initialValue:(0,utils_1.fromSessionStorage)("auth."+d+".password")||(null===(n=null==r?void 0:r[d])||void 0===n?void 0:n.password)||"",validateOnBlur:!0,validateOnChange:!0},void 0)]},void 0)]},d)}if("bearer"===i.scheme){var p=(0,utils_1.getSecurityDetailsOptions)(d,"");_={field:"auth."+d,fullWidth:!0,initialValue:(0,utils_1.fromSessionStorage)("auth."+d)||(null==r?void 0:r[d]),initValue:(0,utils_1.fromSessionStorage)("auth."+d)||(null==r?void 0:r[d]),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return(0,jsx_runtime_1.jsx)(react_1.Fragment,{children:(0,jsx_runtime_1.jsxs)(form_1.FormControl,{children:[(0,jsx_runtime_1.jsx)(form_1.FormLabel,{children:" Bearer Token: "},void 0),p?(0,jsx_runtime_1.jsx)(TextField_1.FormDropdown,(0,tslib_1.__assign)({},_,{options:p}),void 0):(0,jsx_runtime_1.jsx)(TextField_1.FormTextField,(0,tslib_1.__assign)({},_,{type:"password",placeholder:"(without 'Bearer')"}),void 0)]},void 0)},d)}}else{if("oauth2"===i.type&&i.flows&&i.flows.clientCredentials)return(0,jsx_runtime_1.jsx)(OAuth2TokenInput_1.default,{flow:i.flows.clientCredentials,server:e.props.activeServer,authCorsProxyUrl:e.props.authCorsProxyUrl,id:d,form:e.props.form,formApi:e.props.formApi,clientId:i.flows.clientCredentials["x-defaultClientId"]||i["x-defaultClientId"],defaultValues:null==r?void 0:r[d]},d);if("oauth2"===i.type&&i.flows&&i.flows.implicit)return(0,jsx_runtime_1.jsx)(OAuth2Flow_1.OAuth2Flow,{authorizationUrl:i.flows.implicit.authorizationUrl,authCorsProxyUrl:e.props.authCorsProxyUrl,scopes:Object.keys((null===(l=null===(s=null==i?void 0:i.flows)||void 0===s?void 0:s.implicit)||void 0===l?void 0:l.scopes)||{}),server:e.props.activeServer,id:d,form:e.props.form,formApi:e.props.formApi,clientId:i.flows.implicit["x-defaultClientId"]||i["x-defaultClientId"],flow:"implicit",defaultValues:null==r?void 0:r[d]},d);if("oauth2"===i.type&&i.flows&&i.flows.authorizationCode)return(0,jsx_runtime_1.jsx)(OAuth2Flow_1.OAuth2Flow,{authorizationUrl:i.flows.authorizationCode.authorizationUrl,tokenUrl:i.flows.authorizationCode.tokenUrl,authCorsProxyUrl:e.props.authCorsProxyUrl,scopes:Object.keys((null===(a=i.flows.authorizationCode)||void 0===a?void 0:a.scopes)||{}),server:e.props.activeServer,id:d,form:e.props.form,formApi:e.props.formApi,clientId:i.flows.authorizationCode["x-defaultClientId"]||i["x-defaultClientId"],flow:"authorizationCode",tokenEndpointAuthMethod:i.flows.authorizationCode["x-tokenEndpointAuthMethod"],usePkce:i.flows.authorizationCode["x-usePkce"],defaultValues:null==r?void 0:r[d]},d);if("oauth2"===i.type){var f=(0,utils_1.fromSessionStorage)("auth."+d+".token")||JSON.stringify(null===(u=null==r?void 0:r[d])||void 0===u?void 0:u.token);return f=f?JSON.parse(f):{},(0,jsx_runtime_1.jsxs)(react_1.Fragment,{children:[(0,jsx_runtime_1.jsxs)(form_1.FormControl,{children:[(0,jsx_runtime_1.jsx)(form_1.FormLabel,{children:" Access Token Type: "},void 0),(0,jsx_runtime_1.jsx)(TextField_1.FormTextField,{fullWidth:!0,field:"auth."+d+".token.token_type",initialValue:f.token_type||"Bearer"},void 0)]},void 0),(0,jsx_runtime_1.jsxs)(form_1.FormControl,{children:[(0,jsx_runtime_1.jsx)(form_1.FormLabel,{children:" Access Token: "},void 0),(0,jsx_runtime_1.jsx)(TextField_1.FormTextField,{type:"password",fullWidth:!0,field:"auth."+d+".token.access_token",validate:requiredValidator,initialValue:f.access_token,validateOnBlur:!0,validateOnChange:!0},void 0)]},void 0)]},d)}if("openIdConnect"===i.type)return(0,jsx_runtime_1.jsx)(OpenIDConnect_1.OpenIDConnect,{server:e.props.activeServer,authCorsProxyUrl:e.props.authCorsProxyUrl,id:d,form:e.props.form,formApi:e.props.formApi,scheme:i,clientId:i["x-defaultClientId"],defaultValues:null==r?void 0:r[d]},d);if("none"===i.type)return(0,jsx_runtime_1.jsx)("span",{children:"None"},d)}}))]},void 0),(0,jsx_runtime_1.jsxs)("small",{children:[(0,jsx_runtime_1.jsx)("strong",{children:"Note"},void 0),": Your credentials will be saved until the end of the browser session"]},void 0)]},void 0)}}),r}(react_1.Component);exports.AuthPanel=AuthPanel;
|
|
2
2
|
//# sourceMappingURL=AuthPanel.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Console=void 0;var tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),informed_1=require("informed"),mobx_react_1=require("mobx-react"),swagger_client_1=(0,tslib_1.__importDefault)(require("swagger-client")),react_1=require("react"),utils_1=require("../../utils"),redoc_lib_1=require("../../redoc-lib"),RenderHook_1=require("../../redoc-lib/src/components/RenderHook"),Labels_1=require("../../redoc-lib/src/services/Labels"),Panel_1=require("../Panel"),OAuth2_1=require("../../services/OAuth2"),helper_1=require("../common/FileUpload/helper"),OperationParameters_1=require("../OperationParameters"),hooks_1=require("../../hooks"),events_1=require("../../events"),utils_2=require("./utils"),AuthPanel_1=require("./AuthPanel"),ConsoleBadges_1=require("./ConsoleBadges"),RequestBody_1=require("./RequestBody"),ResponsePanel_1=require("./ResponsePanel"),ActionPanel_1=require("./ActionPanel"),ServersDropdown_1=require("./ServersDropdown"),TryItPanel_1=require("./TryItPanel"),styled_1=require("./styled");function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}var flexColumn={flex:1,display:"flex",flexDirection:"column"},Console=function(e){function t(t){var r=e.call(this,t)||this;return Object.defineProperty(r,"formApi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"setFormApi",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.formApi=e;var t=e.getState(),s=t.values,i=(0,tslib_1.__rest)(t,["values"]);setTimeout((function(){var e=(0,tslib_1.__assign)((0,tslib_1.__assign)({},i),{values:(0,tslib_1.__assign)((0,tslib_1.__assign)({},s),{query:(0,utils_2.unescapeQueryParams)(s.query||{}),path:(0,utils_2.unescapeQueryParams)(s.path||{})})});r.setState({form:e})}),0)}}),Object.defineProperty(r,"handleValueChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=(0,tslib_1.__assign)((0,tslib_1.__assign)({},e),{query:(0,utils_2.unescapeQueryParams)(e.query||{}),path:(0,utils_2.unescapeQueryParams)(e.path||{})});r.setState((function(e){return{form:(0,tslib_1.__assign)((0,tslib_1.__assign)({},e.form),{values:t})}}),(function(){(0,utils_2.updateStorage)(r.state.form),r.props.operation.setRequestValues(e)}))}}),Object.defineProperty(r,"handleTabChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.setState({activeTab:e})}}),Object.defineProperty(r,"handleServerChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.setState({server:e}),r.props.operation.setActiveServer(e)}}),Object.defineProperty(r,"handleExecute",{enumerable:!0,configurable:!0,writable:!0,value:function(){return(0,tslib_1.__awaiter)(r,void 0,void 0,(function(){var e,t,r,s,i,o,n,a,l,u,_,d,c,p,h,v,m,b,y,g,f,x,P,j,q,S,A,C,k,w,I,O,T,R,B,H,F,V,D,E,U,N,L,W=this;return(0,tslib_1.__generator)(this,(function(z){switch(z.label){case 0:if(e=this.props,t=e.store,r=e.operation,s=e.onResponse,null===(R=this.formApi)||void 0===R||R.submitForm(),(this.state.form||(null===(B=this.formApi)||void 0===B?void 0:B.getState())).invalid)return this.setState({shaking:!0}),setTimeout((function(){return W.setState({shaking:!1})}),1e3),null===(F=null===(H=null==t?void 0:t.options.events)||void 0===H?void 0:H.tryItSent)||void 0===F||F.call(H,{eventType:events_1.AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"ValidationFailed",operationId:r.operationId,operationPath:r.path,operationHttpVerb:r.httpVerb,operationSummary:r.description}),[2];if(i=(this.state.form||(null===(V=this.formApi)||void 0===V?void 0:V.getState())).values,o=this.props.operation,n=o.servers,a=o.requestBody,l=a&&a.content&&a.content.active&&a.content.active.name||"",u=i.body,/json/.test(l))try{u=JSON.parse(u)}catch(e){console.error(e)}if(this.setState({loading:!0}),_=this.state.resolvedRawSpec,d=(r.httpVerb||"").toLowerCase(),!n)throw console.error("Servers are not specified in your OpenAPI file. You can't use Try It Out console without specifying servers. If you use OpenAPI 2, make sure you configured host and basepath"),new Error("Servers are not specified");c=n.find((function(e){return W.state.server.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url)})),p=Date.now(),v=i.auth,i.auth?(m=Object.keys(i.auth)[0],b=(0,utils_1.unescapeFormId)(m),h=(0,tslib_1.__assign)((0,tslib_1.__assign)({},_),{components:(0,tslib_1.__assign)((0,tslib_1.__assign)({},null==_?void 0:_.components),{securitySchemes:(0,tslib_1.__assign)((0,tslib_1.__assign)({},null==_?void 0:_.components.securitySchemes),(w={},w[b]=(0,tslib_1.__assign)((0,tslib_1.__assign)({},null==_?void 0:_.components.securitySchemes[b]),{type:"openIdConnect"===(null==_?void 0:_.components.securitySchemes[b].type)?"oauth2":null==_?void 0:_.components.securitySchemes[b].type}),w))})}),y="cookie"===(null==_?void 0:_.components.securitySchemes[b].in)?"Cookie":b,g="cookie"===(null==_?void 0:_.components.securitySchemes[b].in)?(null==_?void 0:_.components.securitySchemes[b].name)+"="+v[m]:v[m],v=(0,tslib_1.__assign)((0,tslib_1.__assign)({},v),((I={})[y]=g,I))):h=(0,tslib_1.__assign)({},_),h.servers=n,(f=t.options.corsProxyUrl)&&n.length&&(h.servers=n.map((function(e){return(0,tslib_1.__assign)((0,tslib_1.__assign)({},e),{url:f+normalizeUrlProtocol(e.url)})})),h.paths=(0,tslib_1.__assign)((0,tslib_1.__assign)({},h.paths),((O={})[r.path]=(0,tslib_1.__assign)((0,tslib_1.__assign)({},h.paths[r.path]),((T={})[d]=(0,tslib_1.__assign)((0,tslib_1.__assign)({},h.paths[r.path][d]),{servers:void 0}),T.servers=void 0,T)),O))),(x=(null===(E=null===(D=null==a?void 0:a.content)||void 0===D?void 0:D.active)||void 0===E?void 0:E.name)||null)&&u&&(0,helper_1.isFileUploadMime)(x)&&(P=Object.values(u),u=P.length>1?P:P[0]),j={server:f?f+normalizeUrlProtocol(c.url):c.url,serverVariables:this.state.server.variables,spec:h,pathName:r.path,method:r.httpVerb,parameters:(0,tslib_1.__assign)((0,tslib_1.__assign)((0,tslib_1.__assign)((0,tslib_1.__assign)({},i.path),i.query),i.header),i.cookie),securities:{authorized:v},requestBody:u,requestContentType:x,responseContentType:(null===(U=i.header)||void 0===U?void 0:U.Accept)||null,requestInterceptor:(0,utils_2.makeRequestInterceptor)(t.options,r,v)},z.label=1;case 1:return z.trys.push([1,5,8,9]),[4,swagger_client_1.default.execute(j)];case 2:return q=z.sent(),(S=null==q?void 0:q.data)instanceof Blob?((0,helper_1.isFileUploadMime)(S.type)&&(q.fileInfo={rawData:S,fileName:(0,utils_2.getFileNameFromHeaders)(q.headers)}),A=q,[4,S.text()]):[3,4];case 3:A.data=z.sent(),z.label=4;case 4:return null==s||s({request:j,response:q}),this.setState({response:q,error:void 0}),[3,9];case 5:return(C=z.sent())&&C.response&&C.response.data instanceof Blob?(k=C.response,[4,C.response.data.text()]):[3,7];case 6:k.data=z.sent(),null==s||s({request:j,response:C.response}),z.label=7;case 7:return this.setState({response:void 0,error:C}),[3,9];case 8:return this.setState({loading:!1,activeTab:1,time:Date.now()-p}),null===(L=null===(N=null==t?void 0:t.options.events)||void 0===N?void 0:N.tryItSent)||void 0===L||L.call(N,{eventType:events_1.AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"Sent",operationId:r.operationId,operationPath:r.path,operationHttpVerb:r.httpVerb,operationSummary:r.description}),[7];case 9:return[2]}}))}))}}),r.state={form:{values:{path:(0,utils_2.getParameters)(t.operation.parameters,"path"),cookie:(0,utils_2.getParameters)(t.operation.parameters,"cookie"),header:(0,utils_2.getParameters)(t.operation.parameters,"header"),query:(0,utils_2.getParameters)(t.operation.parameters,"query")}},shaking:!1,loading:!1,activeTab:0,server:{}},r}return(0,tslib_1.__extends)(t,e),Object.defineProperty(t.prototype,"componentDidMount",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e;return(0,tslib_1.__awaiter)(this,void 0,void 0,(function(){var t,r,s,i;return(0,tslib_1.__generator)(this,(function(o){switch(o.label){case 0:return t=this.props,r=t.store,s=t.operation,[4,r.dereferenceSpecForTryIt(s)];case 1:return i=o.sent(),this.setState({resolvedRawSpec:i}),null===(e=this.formApi)||void 0===e||e.setValues({}),[2]}}))}))}}),Object.defineProperty(t.prototype,"componentDidUpdate",{enumerable:!1,configurable:!0,writable:!0,value:function(e){e.operation!==this.props.operation&&this.setState({response:void 0,error:void 0,activeTab:0})}}),Object.defineProperty(t.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.props,t=e.operation,r=e.className,s=e.rootElement,i=this.state,o=i.shaking,n=i.activeTab,a=i.form,l=i.response,u=i.loading,_=i.error,d=!(!l&&!_);return(0,jsx_runtime_1.jsxs)(ConsoleWrapHook,(0,tslib_1.__assign)({shaking:o,className:r,rootElement:s},{children:[(0,jsx_runtime_1.jsxs)(Panel_1.CodeHeader,{children:[(0,jsx_runtime_1.jsx)(ConsoleBadges_1.ConsoleBadges,{active:n,hasResponse:d,onChange:this.handleTabChange},void 0),this.props.onClose&&(0,jsx_runtime_1.jsx)(styled_1.CloseButton,(0,tslib_1.__assign)({onClick:this.props.onClose},{children:" ✕ "}),void 0)]},void 0),(0,jsx_runtime_1.jsx)(styled_1.ConsoleBody,(0,tslib_1.__assign)({hidden:0!==n,"data-cy":"console-request-body"},{children:this.renderRequest()}),void 0),(0,jsx_runtime_1.jsx)(styled_1.ConsoleBody,(0,tslib_1.__assign)({hidden:1!==n,"data-cy":"console-response-body"},{children:this.renderResponse()}),void 0),(0,jsx_runtime_1.jsx)(ActionPanel_1.ActionPanel,{hasResponse:d,params:a.values,operation:t,loading:u,execute:this.handleExecute},void 0)]}),void 0)}}),Object.defineProperty(t.prototype,"renderRequest",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e,t=this.props,r=t.operation,s=t.store,i=t.properties,o=t.securityDefaults,n=this.state,a=n.form,l=n.resolvedRawSpec,u=n.server,_=a.errors||{},d=_.path||_.cookie||_.header||_.query,c=l&&redoc_lib_1.JsonPointer.get(l,r.pointer),p=a.values&&a.values.auth&&Object.keys(a.values.auth)[0];p&&a.values.auth[p]||(p=void 0),!p||void 0===a.values.auth[p].token&&void 0===a.values.auth[p].client_id&&void 0===a.values.auth[p].client_secret||a.values.auth[p].token&&a.values.auth[p].token.access_token||(p=void 0),p&&null!=a.values.auth[p].username&&(a.values.auth[p].username&&a.values.auth[p].password||(p=void 0));var h=r.parameters||[],v=null===(e=null==s?void 0:s.options.hooks)||void 0===e?void 0:e.ReplaceTryItSecurityPanel;return!l&&(0,jsx_runtime_1.jsx)(jsx_runtime_1.Fragment,{children:"Loading..."},void 0)||(0,jsx_runtime_1.jsxs)(informed_1.Form,(0,tslib_1.__assign)({onValueChange:this.handleValueChange,getApi:this.setFormApi,style:(0,tslib_1.__assign)((0,tslib_1.__assign)({},flexColumn),{margin:0})},{children:[(0,jsx_runtime_1.jsx)(ServersDropdown_1.ServersDropdown,{operation:r,onChange:this.handleServerChange},void 0),(0,jsx_runtime_1.jsxs)(Panel_1.Accordion,(0,tslib_1.__assign)({initialActiveIdx:r.security.length&&p?1:0},{children:[r.security.length&&this.formApi&&(0,jsx_runtime_1.jsx)(TryItPanel_1.TryItPanel,(0,tslib_1.__assign)({header:(0,Labels_1.l)("tryItAuth"),"data-cy":"security-trigger",renderChildrenHidden:!0,error:!p&&!!_.auth,success:!!p},{children:v?(0,jsx_runtime_1.jsx)(AuthPanelHook,(0,tslib_1.__assign)({field:"auth",validate:AuthPanel_1.requiredValidator},{children:function(e){return(0,jsx_runtime_1.jsx)(RenderHook_1.RenderHook,{Hook:v,props:{server:u,operation:r,onChange:e,OAuth2:OAuth2_1.OAuth2}},void 0)}}),void 0):(0,jsx_runtime_1.jsx)(AuthPanel_1.AuthPanel,{formApi:this.formApi,form:a,operation:r,activeServer:u.url,authCorsProxyUrl:s.options.authCorsProxyUrl,securityDefaults:o},void 0)}),void 0)||null,r.requestBody&&this.formApi&&(0,jsx_runtime_1.jsx)(TryItPanel_1.TryItPanel,(0,tslib_1.__assign)({header:(0,Labels_1.l)("tryItBody"),"data-cy":"body-trigger",renderChildrenHidden:!0,error:!!_.body},{children:(0,jsx_runtime_1.jsx)(RequestBody_1.RequestBody,{validate:allowBodyErrors,formApi:this.formApi,body:r.requestBody,id:r.id,resolvedBody:null==c?void 0:c.requestBody,properties:i},void 0)}),void 0)||null,h.length&&(0,jsx_runtime_1.jsx)(TryItPanel_1.TryItPanel,(0,tslib_1.__assign)({header:(0,Labels_1.l)("tryItParameters"),"data-cy":"parameters-trigger",error:d,renderChildrenHidden:!0},{children:(0,jsx_runtime_1.jsx)(OperationParameters_1.OperationParameters,{operation:r,values:a.values,errors:a.errors||{}},void 0)}),void 0)||null]}),void 0)]}),void 0)}}),Object.defineProperty(t.prototype,"renderResponse",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.state,t=e.response,r=e.error,s=e.time;return(0,jsx_runtime_1.jsx)(ResponsePanel_1.ResponsePanel,{response:t,error:r,time:s},void 0)}}),t=(0,tslib_1.__decorate)([mobx_react_1.observer],t)}(react_1.Component);function allowBodyErrors(){}function ConsoleWrapHook(e){var t=e.shaking,r=e.className,s=e.children,i=e.rootElement,o=(0,hooks_1.useDimensions)(i)[0];return(0,jsx_runtime_1.jsx)(styled_1.ConsoleWrap,(0,tslib_1.__assign)({shaking:t,className:r,"data-cy":"console",fullWidth:null==o?void 0:o.width},{children:s}),void 0)}function AuthPanelHook(e){var t=(0,informed_1.useField)((0,tslib_1.__assign)({},e)),r=t.fieldApi,s=t.render,i=t.userProps,o=r.setValue,n=i.children;return s((0,jsx_runtime_1.jsx)(jsx_runtime_1.Fragment,{children:n(o)},void 0))}exports.Console=Console;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Console=void 0;var tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),informed_1=require("informed"),mobx_react_1=require("mobx-react"),swagger_client_1=(0,tslib_1.__importDefault)(require("swagger-client")),react_1=require("react"),utils_1=require("../../utils"),redoc_lib_1=require("../../redoc-lib"),RenderHook_1=require("../../redoc-lib/src/components/RenderHook"),Labels_1=require("../../redoc-lib/src/services/Labels"),Panel_1=require("../Panel"),OAuth2_1=require("../../services/OAuth2"),helper_1=require("../common/FileUpload/helper"),OperationParameters_1=require("../OperationParameters"),hooks_1=require("../../hooks"),events_1=require("../../events"),utils_2=require("../../services/utils"),utils_3=require("./utils"),AuthPanel_1=require("./AuthPanel"),ConsoleBadges_1=require("./ConsoleBadges"),RequestBody_1=require("./RequestBody"),ResponsePanel_1=require("./ResponsePanel"),ActionPanel_1=require("./ActionPanel"),ServersDropdown_1=require("./ServersDropdown"),TryItPanel_1=require("./TryItPanel"),styled_1=require("./styled");function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}var flexColumn={flex:1,display:"flex",flexDirection:"column"},Console=function(e){function t(t){var r=e.call(this,t)||this;return Object.defineProperty(r,"formApi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"setFormApi",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.formApi=e;var t=e.getState(),s=t.values,i=(0,tslib_1.__rest)(t,["values"]);setTimeout((function(){var e=(0,tslib_1.__assign)((0,tslib_1.__assign)({},i),{values:(0,tslib_1.__assign)((0,tslib_1.__assign)({},s),{query:(0,utils_3.unescapeQueryParams)(s.query||{}),path:(0,utils_3.unescapeQueryParams)(s.path||{})})});r.setState({form:e})}),0)}}),Object.defineProperty(r,"handleValueChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=(0,tslib_1.__assign)((0,tslib_1.__assign)({},e),{query:(0,utils_3.unescapeQueryParams)(e.query||{}),path:(0,utils_3.unescapeQueryParams)(e.path||{})});r.setState((function(e){return{form:(0,tslib_1.__assign)((0,tslib_1.__assign)({},e.form),{values:t})}}),(function(){(0,utils_3.updateStorage)(r.state.form),r.props.operation.setRequestValues(e)}))}}),Object.defineProperty(r,"handleTabChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.setState({activeTab:e})}}),Object.defineProperty(r,"handleServerChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.setState({server:e}),r.props.operation.setActiveServer(e)}}),Object.defineProperty(r,"handleExecute",{enumerable:!0,configurable:!0,writable:!0,value:function(){return(0,tslib_1.__awaiter)(r,void 0,void 0,(function(){var e,t,r,s,i,o,n,a,l,u,_,d,c,p,h,v,m,b,y,g,f,x,j,P,q,S,A,C,k,w,I,O,T,R,B,H,F,V,D,E,U,N,L,W=this;return(0,tslib_1.__generator)(this,(function(z){switch(z.label){case 0:if(e=this.props,t=e.store,r=e.operation,s=e.onResponse,null===(R=this.formApi)||void 0===R||R.submitForm(),((null===(B=this.formApi)||void 0===B?void 0:B.getState())||this.state.form).invalid)return this.setState({shaking:!0}),setTimeout((function(){return W.setState({shaking:!1})}),1e3),null===(F=null===(H=null==t?void 0:t.options.events)||void 0===H?void 0:H.tryItSent)||void 0===F||F.call(H,{eventType:events_1.AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"ValidationFailed",operationId:r.operationId,operationPath:r.path,operationHttpVerb:r.httpVerb,operationSummary:r.description}),[2];if(i=((null===(V=this.formApi)||void 0===V?void 0:V.getState())||this.state.form).values,o=this.props.operation,n=o.servers,a=o.requestBody,l=a&&a.content&&a.content.active&&a.content.active.name||"",u=i.body,/json/.test(l))try{u=JSON.parse(u)}catch(e){console.error(e)}if(this.setState({loading:!0}),_=this.state.resolvedRawSpec,d=(r.httpVerb||"").toLowerCase(),!n)throw console.error("Servers are not specified in your OpenAPI file. You can't use Try It Out console without specifying servers. If you use OpenAPI 2, make sure you configured host and basepath"),new Error("Servers are not specified");c=n.find((function(e){return W.state.server.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url)})),p=Date.now(),v=i.auth,!(0,utils_2.isEmptyObject)(i.auth)&&i.auth?(m=Object.keys(i.auth)[0],b=(0,utils_1.unescapeFormId)(m),h=(0,tslib_1.__assign)((0,tslib_1.__assign)({},_),{components:(0,tslib_1.__assign)((0,tslib_1.__assign)({},null==_?void 0:_.components),{securitySchemes:(0,tslib_1.__assign)((0,tslib_1.__assign)({},null==_?void 0:_.components.securitySchemes),(w={},w[b]=(0,tslib_1.__assign)((0,tslib_1.__assign)({},null==_?void 0:_.components.securitySchemes[b]),{type:"openIdConnect"===(null==_?void 0:_.components.securitySchemes[b].type)?"oauth2":null==_?void 0:_.components.securitySchemes[b].type}),w))})}),y="cookie"===(null==_?void 0:_.components.securitySchemes[b].in)?"Cookie":b,g="cookie"===(null==_?void 0:_.components.securitySchemes[b].in)?(null==_?void 0:_.components.securitySchemes[b].name)+"="+v[m]:v[m],v=(0,tslib_1.__assign)((0,tslib_1.__assign)({},v),((I={})[y]=g,I))):h=(0,tslib_1.__assign)({},_),h.servers=n,(f=t.options.corsProxyUrl)&&n.length&&(h.servers=n.map((function(e){return(0,tslib_1.__assign)((0,tslib_1.__assign)({},e),{url:f+normalizeUrlProtocol(e.url)})})),h.paths=(0,tslib_1.__assign)((0,tslib_1.__assign)({},h.paths),((O={})[r.path]=(0,tslib_1.__assign)((0,tslib_1.__assign)({},h.paths[r.path]),((T={})[d]=(0,tslib_1.__assign)((0,tslib_1.__assign)({},h.paths[r.path][d]),{servers:void 0}),T.servers=void 0,T)),O))),(x=(null===(E=null===(D=null==a?void 0:a.content)||void 0===D?void 0:D.active)||void 0===E?void 0:E.name)||null)&&u&&(0,helper_1.isFileUploadMime)(x)&&(j=Object.values(u),u=j.length>1?j:j[0]),P={server:f?f+normalizeUrlProtocol(c.url):c.url,serverVariables:this.state.server.variables,spec:h,pathName:r.path,method:r.httpVerb,parameters:(0,tslib_1.__assign)((0,tslib_1.__assign)((0,tslib_1.__assign)((0,tslib_1.__assign)({},i.path),i.query),i.header),i.cookie),securities:{authorized:v},requestBody:u,requestContentType:x,responseContentType:(null===(U=i.header)||void 0===U?void 0:U.Accept)||null,requestInterceptor:(0,utils_3.makeRequestInterceptor)(t.options,r,v)},z.label=1;case 1:return z.trys.push([1,5,8,9]),[4,swagger_client_1.default.execute(P)];case 2:return q=z.sent(),(S=null==q?void 0:q.data)instanceof Blob?((0,helper_1.isFileUploadMime)(S.type)&&(q.fileInfo={rawData:S,fileName:(0,utils_3.getFileNameFromHeaders)(q.headers)}),A=q,[4,S.text()]):[3,4];case 3:A.data=z.sent(),z.label=4;case 4:return null==s||s({request:P,response:q}),this.setState({response:q,error:void 0}),[3,9];case 5:return(C=z.sent())&&C.response&&C.response.data instanceof Blob?(k=C.response,[4,C.response.data.text()]):[3,7];case 6:k.data=z.sent(),null==s||s({request:P,response:C.response}),z.label=7;case 7:return this.setState({response:void 0,error:C}),[3,9];case 8:return this.setState({loading:!1,activeTab:1,time:Date.now()-p}),null===(L=null===(N=null==t?void 0:t.options.events)||void 0===N?void 0:N.tryItSent)||void 0===L||L.call(N,{eventType:events_1.AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"Sent",operationId:r.operationId,operationPath:r.path,operationHttpVerb:r.httpVerb,operationSummary:r.description}),[7];case 9:return[2]}}))}))}}),r.state={form:{values:{path:(0,utils_3.getParameters)(t.operation.parameters,"path"),cookie:(0,utils_3.getParameters)(t.operation.parameters,"cookie"),header:(0,utils_3.getParameters)(t.operation.parameters,"header"),query:(0,utils_3.getParameters)(t.operation.parameters,"query")}},shaking:!1,loading:!1,activeTab:0,server:{}},r}return(0,tslib_1.__extends)(t,e),Object.defineProperty(t.prototype,"componentDidMount",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e;return(0,tslib_1.__awaiter)(this,void 0,void 0,(function(){var t,r,s,i;return(0,tslib_1.__generator)(this,(function(o){switch(o.label){case 0:return t=this.props,r=t.store,s=t.operation,[4,r.dereferenceSpecForTryIt(s)];case 1:return i=o.sent(),this.setState({resolvedRawSpec:i}),null===(e=this.formApi)||void 0===e||e.setValues({}),[2]}}))}))}}),Object.defineProperty(t.prototype,"componentDidUpdate",{enumerable:!1,configurable:!0,writable:!0,value:function(e){e.operation!==this.props.operation&&this.setState({response:void 0,error:void 0,activeTab:0})}}),Object.defineProperty(t.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.props,t=e.operation,r=e.className,s=e.rootElement,i=this.state,o=i.shaking,n=i.activeTab,a=i.form,l=i.response,u=i.loading,_=i.error,d=!(!l&&!_);return(0,jsx_runtime_1.jsxs)(ConsoleWrapHook,(0,tslib_1.__assign)({shaking:o,className:r,rootElement:s},{children:[(0,jsx_runtime_1.jsxs)(Panel_1.CodeHeader,{children:[(0,jsx_runtime_1.jsx)(ConsoleBadges_1.ConsoleBadges,{active:n,hasResponse:d,onChange:this.handleTabChange},void 0),this.props.onClose&&(0,jsx_runtime_1.jsx)(styled_1.CloseButton,(0,tslib_1.__assign)({onClick:this.props.onClose},{children:" ✕ "}),void 0)]},void 0),(0,jsx_runtime_1.jsx)(styled_1.ConsoleBody,(0,tslib_1.__assign)({hidden:0!==n,"data-cy":"console-request-body"},{children:this.renderRequest()}),void 0),(0,jsx_runtime_1.jsx)(styled_1.ConsoleBody,(0,tslib_1.__assign)({hidden:1!==n,"data-cy":"console-response-body"},{children:this.renderResponse()}),void 0),(0,jsx_runtime_1.jsx)(ActionPanel_1.ActionPanel,{hasResponse:d,params:a.values,operation:t,loading:u,execute:this.handleExecute},void 0)]}),void 0)}}),Object.defineProperty(t.prototype,"renderRequest",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e,t=this.props,r=t.operation,s=t.store,i=t.properties,o=t.securityDefaults,n=this.state,a=n.form,l=n.resolvedRawSpec,u=n.server,_=a.errors||{},d=_.path||_.cookie||_.header||_.query,c=l&&redoc_lib_1.JsonPointer.get(l,r.pointer),p=a.values&&a.values.auth&&Object.keys(a.values.auth)[0];p&&a.values.auth[p]||(p=void 0),!p||void 0===a.values.auth[p].token&&void 0===a.values.auth[p].client_id&&void 0===a.values.auth[p].client_secret||a.values.auth[p].token&&a.values.auth[p].token.access_token||(p=void 0),p&&null!=a.values.auth[p].username&&(a.values.auth[p].username&&a.values.auth[p].password||(p=void 0));var h=r.parameters||[],v=null===(e=null==s?void 0:s.options.hooks)||void 0===e?void 0:e.ReplaceTryItSecurityPanel;return!l&&(0,jsx_runtime_1.jsx)(jsx_runtime_1.Fragment,{children:"Loading..."},void 0)||(0,jsx_runtime_1.jsxs)(informed_1.Form,(0,tslib_1.__assign)({onValueChange:this.handleValueChange,getApi:this.setFormApi,style:(0,tslib_1.__assign)((0,tslib_1.__assign)({},flexColumn),{margin:0})},{children:[(0,jsx_runtime_1.jsx)(ServersDropdown_1.ServersDropdown,{operation:r,onChange:this.handleServerChange},void 0),(0,jsx_runtime_1.jsxs)(Panel_1.Accordion,(0,tslib_1.__assign)({initialActiveIdx:r.security.length&&p?1:0},{children:[r.security.length&&this.formApi&&(0,jsx_runtime_1.jsx)(TryItPanel_1.TryItPanel,(0,tslib_1.__assign)({header:(0,Labels_1.l)("tryItAuth"),"data-cy":"security-trigger",renderChildrenHidden:!0,error:!p&&!!_.auth,success:!!p},{children:v?(0,jsx_runtime_1.jsx)(AuthPanelHook,(0,tslib_1.__assign)({field:"auth",validate:AuthPanel_1.requiredValidator},{children:function(e){return(0,jsx_runtime_1.jsx)(RenderHook_1.RenderHook,{Hook:v,props:{server:u,operation:r,onChange:e,OAuth2:OAuth2_1.OAuth2}},void 0)}}),void 0):(0,jsx_runtime_1.jsx)(AuthPanel_1.AuthPanel,{formApi:this.formApi,form:a,operation:r,activeServer:u.url,authCorsProxyUrl:s.options.authCorsProxyUrl,securityDefaults:o},void 0)}),void 0)||null,r.requestBody&&this.formApi&&(0,jsx_runtime_1.jsx)(TryItPanel_1.TryItPanel,(0,tslib_1.__assign)({header:(0,Labels_1.l)("tryItBody"),"data-cy":"body-trigger",renderChildrenHidden:!0,error:!!_.body},{children:(0,jsx_runtime_1.jsx)(RequestBody_1.RequestBody,{validate:allowBodyErrors,formApi:this.formApi,body:r.requestBody,id:r.id,resolvedBody:null==c?void 0:c.requestBody,properties:i},void 0)}),void 0)||null,h.length&&(0,jsx_runtime_1.jsx)(TryItPanel_1.TryItPanel,(0,tslib_1.__assign)({header:(0,Labels_1.l)("tryItParameters"),"data-cy":"parameters-trigger",error:d,renderChildrenHidden:!0},{children:(0,jsx_runtime_1.jsx)(OperationParameters_1.OperationParameters,{operation:r,values:a.values,errors:a.errors||{}},void 0)}),void 0)||null]}),void 0)]}),void 0)}}),Object.defineProperty(t.prototype,"renderResponse",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.state,t=e.response,r=e.error,s=e.time;return(0,jsx_runtime_1.jsx)(ResponsePanel_1.ResponsePanel,{response:t,error:r,time:s},void 0)}}),t=(0,tslib_1.__decorate)([mobx_react_1.observer],t)}(react_1.Component);function allowBodyErrors(){}function ConsoleWrapHook(e){var t=e.shaking,r=e.className,s=e.children,i=e.rootElement,o=(0,hooks_1.useDimensions)(i)[0];return(0,jsx_runtime_1.jsx)(styled_1.ConsoleWrap,(0,tslib_1.__assign)({shaking:t,className:r,"data-cy":"console",fullWidth:null==o?void 0:o.width},{children:s}),void 0)}function AuthPanelHook(e){var t=(0,informed_1.useField)((0,tslib_1.__assign)({},e)),r=t.fieldApi,s=t.render,i=t.userProps,o=r.setValue,n=i.children;return s((0,jsx_runtime_1.jsx)(jsx_runtime_1.Fragment,{children:n(o)},void 0))}exports.Console=Console;
|
|
2
2
|
//# sourceMappingURL=Console.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SecurityRow=exports.SecurityRequirements=exports.AUTH_TYPES=void 0;var tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),styled_components_1=(0,tslib_1.__importDefault)(require("../../styled-components")),StoreBuilder_1=require("../StoreBuilder"),Markdown_1=require("../Markdown"),utils_1=require("../../utils"),SecuritySchemes_1=require("../SecuritySchemes/SecuritySchemes"),Labels_1=require("../../services/Labels"),Panel_1=require("../../../../components/Panel"),SecurityRequirementPanelDescription_1=require("./SecurityRequirementPanelDescription"),SecurityRequirementElement_1=require("./SecurityRequirementElement"),RequiredScopesRow_1=require("./RequiredScopesRow");function getRequiredScopes(e,t){for(var r=[],n=t.length;n--;)for(var i=t[n],o=i.schemes.length;o--;){var s=i.schemes[o];s.id===e&&r.push.apply(r,s.scopes)}return Array.from(new Set(r))}exports.AUTH_TYPES={oauth2:"OAuth2",apiKey:"API Key",http:"HTTP",openIdConnect:"OpenID Connect"};var SecurityRequirements=function(e){var t=e.securities,r=(0,StoreBuilder_1.useStore)(),n=null==r?void 0:r.options.showSecuritySchemeType,i=(0,react_1.useState)(!1),o=i[0],s=i[1];if(!t.length||(null==r?void 0:r.options.hideSecuritySection))return null;var u=null==r?void 0:r.definition.securitySchemes.schemes,c=null==u?void 0:u.filter((function(e){var r=e.id;return t.find((function(e){return e.schemes.find((function(e){return e.id===r}))}))}));return(0,jsx_runtime_1.jsxs)(Panel_1.ContentPanel,(0,tslib_1.__assign)({header:(0,Labels_1.l)("authorizations"),onToggle:function(e){return s(e)},description:!o&&(0,jsx_runtime_1.jsx)(SecurityRequirementPanelDescription_1.SecurityRequirementPanelDescription,{securities:t,showSecuritySchemeType:n},void 0),expanded:o},{children:[o&&c
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SecurityRow=exports.SecurityRequirements=exports.AUTH_TYPES=void 0;var tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),styled_components_1=(0,tslib_1.__importDefault)(require("../../styled-components")),StoreBuilder_1=require("../StoreBuilder"),Markdown_1=require("../Markdown"),utils_1=require("../../utils"),SecuritySchemes_1=require("../SecuritySchemes/SecuritySchemes"),Labels_1=require("../../services/Labels"),Panel_1=require("../../../../components/Panel"),SecurityRequirementPanelDescription_1=require("./SecurityRequirementPanelDescription"),SecurityRequirementElement_1=require("./SecurityRequirementElement"),RequiredScopesRow_1=require("./RequiredScopesRow");function getRequiredScopes(e,t){for(var r=[],n=t.length;n--;)for(var i=t[n],o=i.schemes.length;o--;){var s=i.schemes[o];s.id===e&&r.push.apply(r,s.scopes)}return Array.from(new Set(r))}exports.AUTH_TYPES={oauth2:"OAuth2",apiKey:"API Key",http:"HTTP",openIdConnect:"OpenID Connect"};var SecurityRequirements=function(e){var t=e.securities,r=(0,StoreBuilder_1.useStore)(),n=null==r?void 0:r.options.showSecuritySchemeType,i=(0,react_1.useState)(!1),o=i[0],s=i[1];if(!t.length||(null==r?void 0:r.options.hideSecuritySection))return null;var u=null==r?void 0:r.definition.securitySchemes.schemes,c=null==u?void 0:u.filter((function(e){var r=e.id;return t.find((function(e){return e.schemes.find((function(e){return e.id===r}))}))}));return(0,jsx_runtime_1.jsxs)(Panel_1.ContentPanel,(0,tslib_1.__assign)({header:(0,Labels_1.l)("authorizations"),onToggle:function(e){return s(e)},description:!o&&(0,jsx_runtime_1.jsx)(SecurityRequirementPanelDescription_1.SecurityRequirementPanelDescription,{securities:t,showSecuritySchemeType:n},void 0),expanded:o},{children:[o&&c?(0,jsx_runtime_1.jsx)(SecurityRequirementBlock,{children:t.map((function(e,r){var i,o,s="";return t.length>1&&e.schemes.length>1&&(o=0===r?"(":"",s=")"),r!==t.length-1&&(s+=" or",i=(0,jsx_runtime_1.jsx)("br",{},void 0)),(0,jsx_runtime_1.jsxs)(react_1.Fragment,{children:[o,(0,jsx_runtime_1.jsx)(SecurityRequirementElement_1.SecurityRequirementElement,{security:e,showSecuritySchemeType:n},void 0),s,i]},e.schemes.map((function(e){return e.id})).join(""))}))},void 0):null,o&&c?c.map((function(e){var r=getRequiredScopes(e.id,t),n=(0,jsx_runtime_1.jsx)(RequiredScopesRow_1.RequiredScopesRow,{scopes:r},void 0);return(0,jsx_runtime_1.jsxs)(SecurityDetails,{children:[(0,jsx_runtime_1.jsxs)("h5",{children:[(0,jsx_runtime_1.jsx)(LockIcon,{},void 0)," ",exports.AUTH_TYPES[e.type]||e.type,": ",e.id]},void 0),(0,jsx_runtime_1.jsx)(Markdown_1.Markdown,{source:e.description||""},void 0),(0,jsx_runtime_1.jsx)(Markdown_1.StyledMarkdownBlock,{children:e.apiKey?(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsxs)(exports.SecurityRow,{children:[(0,jsx_runtime_1.jsxs)("b",{children:[(0,utils_1.titleize)(e.apiKey.in||"")," parameter name: "]},void 0),(0,jsx_runtime_1.jsx)("code",{children:e.apiKey.name},void 0)]},void 0),n]},void 0):e.http?(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsxs)(exports.SecurityRow,{children:[(0,jsx_runtime_1.jsx)("b",{children:"HTTP Authorization Scheme: "},void 0),(0,jsx_runtime_1.jsx)("code",{children:e.http.scheme},void 0)]},void 0),(0,jsx_runtime_1.jsx)(exports.SecurityRow,{children:"bearer"===e.http.scheme&&e.http.bearerFormat&&(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsx)("b",{children:"Bearer format: "},void 0),(0,jsx_runtime_1.jsx)("code",{children:e.http.bearerFormat},void 0)]},void 0)},void 0),n]},void 0):e.openId?(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsxs)(exports.SecurityRow,{children:[(0,jsx_runtime_1.jsx)("b",{children:"Connect URL: "},void 0),(0,jsx_runtime_1.jsx)("code",{children:(0,jsx_runtime_1.jsx)("a",(0,tslib_1.__assign)({target:"_blank",rel:"noopener noreferrer",href:e.openId.connectUrl},{children:e.openId.connectUrl}),void 0)},void 0)]},void 0),n]},void 0):e.flows?Object.keys(e.flows).map((function(t){return(0,jsx_runtime_1.jsx)(SecuritySchemes_1.OAuthFlow,{type:t,RequiredScopes:n,flow:e.flows[t]},t)})):null},e.id)]},e.id)})):null]}),void 0)};exports.SecurityRequirements=SecurityRequirements;var templateObject_1,templateObject_2,templateObject_3,SecurityDetails=styled_components_1.default.div(templateObject_1||(templateObject_1=(0,tslib_1.__makeTemplateObject)(["\n border-bottom: 1px solid ",";\n margin-bottom: 1.5em;\n padding-bottom: 0.7em;\n &:last-child {\n border-bottom: none;\n margin-bottom: 0;\n padding-bottom: 0;\n }\n h5 {\n line-height: 1em;\n margin: 0 0 0.6em;\n font-size: ",";\n }\n .redoc-markdown p:first-child {\n display: inline;\n }\n"],["\n border-bottom: 1px solid ",";\n margin-bottom: 1.5em;\n padding-bottom: 0.7em;\n &:last-child {\n border-bottom: none;\n margin-bottom: 0;\n padding-bottom: 0;\n }\n h5 {\n line-height: 1em;\n margin: 0 0 0.6em;\n font-size: ",";\n }\n .redoc-markdown p:first-child {\n display: inline;\n }\n"])),(function(e){return e.theme.colors.border.light}),(function(e){return e.theme.typography.fontSize})),SecurityRequirementBlock=styled_components_1.default.div(templateObject_2||(templateObject_2=(0,tslib_1.__makeTemplateObject)(["\n margin-bottom: 20px;\n background-color: ",";\n border-radius: ",";\n padding: ",";\n"],["\n margin-bottom: 20px;\n background-color: ",";\n border-radius: ",";\n padding: ",";\n"])),(function(e){return e.theme.colors.secondary.main}),(function(e){return e.theme.shape.borderRadius}),(function(e){var t=e.theme;return t.sidebar.spacing.unit+"px "+1.2*t.sidebar.spacing.unit+"px"})),LockIcon=function(){return(0,jsx_runtime_1.jsx)("svg",(0,tslib_1.__assign)({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"11",height:"11"},{children:(0,jsx_runtime_1.jsx)("path",{fill:"currentColor",d:"M18 10V6A6 6 0 0 0 6 6v4H3v14h18V10h-3zM8 6c0-2.206 1.794-4 4-4s4 1.794 4 4v4H8V6zm11 16H5V12h14v10z"},void 0)}),void 0)};exports.SecurityRow=styled_components_1.default.div(templateObject_3||(templateObject_3=(0,tslib_1.__makeTemplateObject)(["\n margin: 0.5em 0;\n"],["\n margin: 0.5em 0;\n"])));
|
|
2
2
|
//# sourceMappingURL=SecurityRequirement.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.OperationModel=exports.isPayloadSample=void 0;var tslib_1=require("tslib"),mobx_1=require("mobx"),utils_1=require("../../utils"),generator_1=require("../../../../services/code-samples/generator"),utils_2=require("../../../../components/console/utils"),Callback_1=require("./Callback"),Field_1=require("./Field"),RequestBody_1=require("./RequestBody"),Response_1=require("./Response"),SecurityRequirement_1=require("./SecurityRequirement");function isPayloadSample(e){return"payload"===e.lang&&"requestBodyContent"in e}exports.isPayloadSample=isPayloadSample;var isCodeSamplesWarningPrinted=!1,OperationModel=function(){function e(e,t,i,r,o){var a,n;void 0===o&&(o=!1),Object.defineProperty(this,"parser",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"operationDefinition",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:r}),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"absoluteIdx",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"description",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"href",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"type",{enumerable:!0,configurable:!0,writable:!0,value:"operation"}),Object.defineProperty(this,"parent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"externalDocs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"items",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"depth",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"ready",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"active",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"expanded",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"activeMimeName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"activeExampleName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"activeServer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"requestValues",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"defaultExampleName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"defaultMimeType",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"pointer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"operationId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"httpVerb",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"deprecated",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"path",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"servers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"security",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"extensions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"isCallback",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"isWebhook",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"isEvent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),(0,mobx_1.makeObservable)(this),this.pointer=t.pointer,this.description=t.description,this.parent=i,this.externalDocs=t.externalDocs,this.deprecated=!!t.deprecated,this.httpVerb=t.httpVerb,this.deprecated=!!t.deprecated,this.operationId=t.operationId,this.path=t.pathName,this.isCallback=o,this.isWebhook=t.isWebhook,this.isEvent=this.isCallback||this.isWebhook,this.name=(0,utils_1.getOperationSummary)(t),this.defaultExampleName=t.defaultSampleName;var l=null===(n=null===(a=this.requestBody)||void 0===a?void 0:a.content)||void 0===n?void 0:n.mediaTypes,s=(l||[])[0],u=Object.keys((null==s?void 0:s.examples)||[])[0];this.activeExampleName=!1!==t.defaultSampleName&&(t.defaultSampleName||u),this.defaultMimeType=t.defaultMimeType;var p=null==l?void 0:l.find((function(e){return e.name===t.defaultMimeType}));if(this.activeMimeName=(null==p?void 0:p.name)||(null==s?void 0:s.name),this.isCallback)this.security=(t.security||[]).filter((function(e){return Object.keys(e).length})).map((function(t){return new SecurityRequirement_1.SecurityRequirementModel(t,e)})),this.servers=(0,utils_1.normalizeServers)("",t.servers||t.pathServers||[]);else{this.id=(0,utils_1.sanitizeItemId)(void 0!==t.operationId?"operation/"+t.operationId:void 0!==i?i.id+this.pointer:this.pointer),this.security=(t.security||e.definition.security||[]).filter((function(e){return Object.keys(e).length})).map((function(t){return new SecurityRequirement_1.SecurityRequirementModel(t,e)}));var b=this.mergeInMockServer(t.servers||t.pathServers||e.definition.servers||[],r.mockServer);this.servers=(0,utils_1.normalizeServers)(e.definitionUrl,b)}r.showExtensions&&(this.extensions=(0,utils_1.extractExtensions)(t,r.showExtensions)),this.activeServer=(0,utils_2.getInitialServerWithVariables)(this.servers)}return Object.defineProperty(e.prototype,"activate",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.active=!0}}),Object.defineProperty(e.prototype,"deactivate",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.active=!1}}),Object.defineProperty(e.prototype,"toggle",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.expanded=!this.expanded}}),Object.defineProperty(e.prototype,"activateMimeName",{enumerable:!1,configurable:!0,writable:!0,value:function(e){this.activeMimeName=e}}),Object.defineProperty(e.prototype,"activateExampleName",{enumerable:!1,configurable:!0,writable:!0,value:function(e){this.activeExampleName=e}}),Object.defineProperty(e.prototype,"expand",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.parent&&this.parent.expand()}}),Object.defineProperty(e.prototype,"collapse",{enumerable:!1,configurable:!0,writable:!0,value:function(){}}),Object.defineProperty(e.prototype,"requestBody",{get:function(){return this.operationDefinition.requestBody&&new RequestBody_1.RequestBodyModel({parser:this.parser,infoOrRef:this.operationDefinition.requestBody,options:this.options,operation:this,isEvent:this.isEvent})},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"payload",{get:function(){var e,t=null===(e=this.requestBody)||void 0===e?void 0:e.content;return(null==t?void 0:t.hasSample)?{lang:"payload",label:"Payload",source:"",requestBodyContent:t}:void 0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"hasSamples",{get:function(){var e,t;return(null===(t=null===(e=this.requestBody)||void 0===e?void 0:e.content)||void 0===t?void 0:t.hasSample)||this.definitionSamples.length>0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"definitionSamples",{get:function(){var e=this.operationDefinition["x-codeSamples"]||this.operationDefinition["x-code-samples"]||[];return this.operationDefinition["x-code-samples"]&&!isCodeSamplesWarningPrinted&&(isCodeSamplesWarningPrinted=!0,console.warn('"x-code-samples" is deprecated. Use "x-codeSamples" instead')),e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"allCodeSamples",{get:function(){var e,t=this.options,i=t.payloadSampleIdx,r=t.hideRequestPayloadSample,o=[];if(!this.isWebhook){var a=this.options.generateCodeSamples||{},n=new Set(this.definitionSamples.map((function(e){return e.lang.toLowerCase()}))),l=(null===(e=a.languages)||void 0===e?void 0:e.filter((function(e){var t=e.lang;return!n.has(t.toLowerCase())})))||[];o=this.generateCodeSamples(l,a)}var s=this.definitionSamples.concat(o),u=Math.min(s.length,i);return this.payload&&!r&&s.splice(u,0,this.payload),s},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parameters",{get:function(){var e=this,t=(0,utils_1.mergeParams)(this.parser,this.operationDefinition.pathParameters,this.operationDefinition.parameters).map((function(t){return new Field_1.FieldModel(e.parser,t,e.pointer,e.options,void 0,{operation:e,type:"request"})}));return this.options.sortPropsAlphabetically?(0,utils_1.sortByField)(t,"name"):this.options.requiredPropsFirst?(0,utils_1.sortByRequired)(t):t},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"responses",{get:function(){var e=this,t=!1;return Object.keys(this.operationDefinition.responses||[]).filter((function(e){return"default"===e||("success"===(0,utils_1.getStatusCodeType)(e)&&(t=!0),(0,utils_1.isStatusCode)(e))})).map((function(i){return new Response_1.ResponseModel({parser:e.parser,code:i,defaultAsError:t,infoOrRef:e.operationDefinition.responses[i],options:e.options,isEvent:e.isEvent,operation:e})}))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"callbacks",{get:function(){var e=this;return Object.keys(this.operationDefinition.callbacks||[]).map((function(t){var i;return new Callback_1.CallbackModel(e.parser,t,null===(i=e.operationDefinition.callbacks)||void 0===i?void 0:i[t],e.pointer,e.options)}))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"hideTryItPanel",{get:function(){return!0===this.operationDefinition["x-hideTryItPanel"]},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"setActiveServer",{enumerable:!1,configurable:!0,writable:!0,value:function(e){this.activeServer=e}}),Object.defineProperty(e.prototype,"setRequestValues",{enumerable:!1,configurable:!0,writable:!0,value:function(e){this.requestValues=e}}),Object.defineProperty(e.prototype,"mergeInMockServer",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){if(!t)return e;var i={url:t.url,description:t.description};switch(t.position){case"first":return(0,tslib_1.__spreadArray)([i],e,!0);case"last":return(0,tslib_1.__spreadArray)((0,tslib_1.__spreadArray)([],e,!0),[i],!1);case"replace":return[i];default:return e}}}),Object.defineProperty(e.prototype,"generateCodeSamples",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){var i=this,r=t.skipOptionalParameters,o=t.withOAuth2Call;return e.map((function(e){var t=e.lang,a=e.label,n=e.options;return{lang:t,label:a,get:function(e){return(0,generator_1.getCodeSample)((0,tslib_1.__assign)((0,tslib_1.__assign)({},e),{lang:t,options:(0,tslib_1.__assign)((0,tslib_1.__assign)({},n),{skipOptionalParameters:r,withOAuth2Call:o,spec:i.parser.definition,generatedPayloadSamplesMaxDepth:i.options.generatedPayloadSamplesMaxDepth})}))}}}))}}),(0,tslib_1.__decorate)([mobx_1.observable],e.prototype,"ready",void 0),(0,tslib_1.__decorate)([mobx_1.observable],e.prototype,"active",void 0),(0,tslib_1.__decorate)([mobx_1.observable],e.prototype,"expanded",void 0),(0,tslib_1.__decorate)([mobx_1.observable],e.prototype,"activeMimeName",void 0),(0,tslib_1.__decorate)([mobx_1.observable],e.prototype,"activeExampleName",void 0),(0,tslib_1.__decorate)([mobx_1.observable.ref],e.prototype,"activeServer",void 0),(0,tslib_1.__decorate)([mobx_1.observable],e.prototype,"requestValues",void 0),(0,tslib_1.__decorate)([mobx_1.action],e.prototype,"activate",null),(0,tslib_1.__decorate)([mobx_1.action],e.prototype,"deactivate",null),(0,tslib_1.__decorate)([mobx_1.action],e.prototype,"toggle",null),(0,tslib_1.__decorate)([mobx_1.action],e.prototype,"activateMimeName",null),(0,tslib_1.__decorate)([mobx_1.action],e.prototype,"activateExampleName",null),(0,tslib_1.__decorate)([utils_1.memoize],e.prototype,"requestBody",null),(0,tslib_1.__decorate)([utils_1.memoize],e.prototype,"payload",null),(0,tslib_1.__decorate)([utils_1.memoize],e.prototype,"hasSamples",null),(0,tslib_1.__decorate)([utils_1.memoize],e.prototype,"definitionSamples",null),(0,tslib_1.__decorate)([utils_1.memoize],e.prototype,"allCodeSamples",null),(0,tslib_1.__decorate)([utils_1.memoize],e.prototype,"parameters",null),(0,tslib_1.__decorate)([utils_1.memoize],e.prototype,"responses",null),(0,tslib_1.__decorate)([utils_1.memoize],e.prototype,"callbacks",null),(0,tslib_1.__decorate)([utils_1.memoize],e.prototype,"hideTryItPanel",null),(0,tslib_1.__decorate)([mobx_1.action],e.prototype,"setActiveServer",null),(0,tslib_1.__decorate)([mobx_1.action],e.prototype,"setRequestValues",null),e}();exports.OperationModel=OperationModel;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.OperationModel=exports.isPayloadSample=void 0;var tslib_1=require("tslib"),mobx_1=require("mobx"),utils_1=require("../../utils"),generator_1=require("../../../../services/code-samples/generator"),utils_2=require("../../../../components/console/utils"),Callback_1=require("./Callback"),Field_1=require("./Field"),RequestBody_1=require("./RequestBody"),Response_1=require("./Response"),SecurityRequirement_1=require("./SecurityRequirement");function isPayloadSample(e){return"payload"===e.lang&&"requestBodyContent"in e}exports.isPayloadSample=isPayloadSample;var isCodeSamplesWarningPrinted=!1,OperationModel=function(){function e(e,t,i,r,o){var a,n;void 0===o&&(o=!1),Object.defineProperty(this,"parser",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"operationDefinition",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:r}),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"absoluteIdx",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"description",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"href",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"type",{enumerable:!0,configurable:!0,writable:!0,value:"operation"}),Object.defineProperty(this,"parent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"externalDocs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"items",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"depth",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"ready",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"active",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"expanded",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"activeMimeName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"activeExampleName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"activeServer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"requestValues",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"defaultExampleName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"defaultMimeType",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"pointer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"operationId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"httpVerb",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"deprecated",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"path",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"servers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"security",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"extensions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"isCallback",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"isWebhook",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"isEvent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),(0,mobx_1.makeObservable)(this),this.pointer=t.pointer,this.description=t.description,this.parent=i,this.externalDocs=t.externalDocs,this.deprecated=!!t.deprecated,this.httpVerb=t.httpVerb,this.deprecated=!!t.deprecated,this.operationId=t.operationId,this.path=t.pathName,this.isCallback=o,this.isWebhook=t.isWebhook,this.isEvent=this.isCallback||this.isWebhook,this.name=(0,utils_1.getOperationSummary)(t),this.defaultExampleName=t.defaultSampleName;var l=null===(n=null===(a=this.requestBody)||void 0===a?void 0:a.content)||void 0===n?void 0:n.mediaTypes,s=(l||[])[0],u=Object.keys((null==s?void 0:s.examples)||[])[0];this.activeExampleName=!1!==t.defaultSampleName&&(t.defaultSampleName||u),this.defaultMimeType=t.defaultMimeType;var p=null==l?void 0:l.find((function(e){return e.name===t.defaultMimeType}));if(this.activeMimeName=(null==p?void 0:p.name)||(null==s?void 0:s.name),this.isCallback)this.security=(t.security||[]).map((function(t){return new SecurityRequirement_1.SecurityRequirementModel(t,e)})),this.servers=(0,utils_1.normalizeServers)("",t.servers||t.pathServers||[]);else{this.id=(0,utils_1.sanitizeItemId)(void 0!==t.operationId?"operation/"+t.operationId:void 0!==i?i.id+this.pointer:this.pointer),this.security=(t.security||e.definition.security||[]).map((function(t){return new SecurityRequirement_1.SecurityRequirementModel(t,e)}));var b=this.mergeInMockServer(t.servers||t.pathServers||e.definition.servers||[],r.mockServer);this.servers=(0,utils_1.normalizeServers)(e.definitionUrl,b)}r.showExtensions&&(this.extensions=(0,utils_1.extractExtensions)(t,r.showExtensions)),this.activeServer=(0,utils_2.getInitialServerWithVariables)(this.servers)}return Object.defineProperty(e.prototype,"activate",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.active=!0}}),Object.defineProperty(e.prototype,"deactivate",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.active=!1}}),Object.defineProperty(e.prototype,"toggle",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.expanded=!this.expanded}}),Object.defineProperty(e.prototype,"activateMimeName",{enumerable:!1,configurable:!0,writable:!0,value:function(e){this.activeMimeName=e}}),Object.defineProperty(e.prototype,"activateExampleName",{enumerable:!1,configurable:!0,writable:!0,value:function(e){this.activeExampleName=e}}),Object.defineProperty(e.prototype,"expand",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.parent&&this.parent.expand()}}),Object.defineProperty(e.prototype,"collapse",{enumerable:!1,configurable:!0,writable:!0,value:function(){}}),Object.defineProperty(e.prototype,"requestBody",{get:function(){return this.operationDefinition.requestBody&&new RequestBody_1.RequestBodyModel({parser:this.parser,infoOrRef:this.operationDefinition.requestBody,options:this.options,operation:this,isEvent:this.isEvent})},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"payload",{get:function(){var e,t=null===(e=this.requestBody)||void 0===e?void 0:e.content;return(null==t?void 0:t.hasSample)?{lang:"payload",label:"Payload",source:"",requestBodyContent:t}:void 0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"hasSamples",{get:function(){var e,t;return(null===(t=null===(e=this.requestBody)||void 0===e?void 0:e.content)||void 0===t?void 0:t.hasSample)||this.definitionSamples.length>0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"definitionSamples",{get:function(){var e,t,i,r,o=this.operationDefinition["x-codeSamples"]||this.operationDefinition["x-code-samples"];if(this.operationDefinition["x-code-samples"]&&!isCodeSamplesWarningPrinted&&(isCodeSamplesWarningPrinted=!0,console.warn('"x-code-samples" is deprecated. Use "x-codeSamples" instead')),!o&&this.operationDefinition.requestBody){var a=this.parser.deref(this.operationDefinition.requestBody).resolved,n=Object.keys((null==a?void 0:a.content)||{})[0],l=(null===(e=a["x-examples"])||void 0===e?void 0:e[n])||(null===(i=null===(t=null==a?void 0:a.content)||void 0===t?void 0:t[n])||void 0===i?void 0:i.examples)||{},s=Object.keys(l)[0];if(null===(r=l[s])||void 0===r?void 0:r["x-codeSamples"])return l[s]["x-codeSamples"].map((function(e,t){return(0,tslib_1.__assign)((0,tslib_1.__assign)({},e),{source:void 0,get:function(e){var i,r,o,a=e.exampleName;return null!==(r=null===(i=l[a])||void 0===i?void 0:i["x-codeSamples"][t].source)&&void 0!==r?r:null===(o=l[s])||void 0===o?void 0:o["x-codeSamples"][t].source}})}))}return o||[]},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"allCodeSamples",{get:function(){var e,t=this.options,i=t.payloadSampleIdx,r=t.hideRequestPayloadSample,o=[];if(!this.isWebhook){var a=this.options.generateCodeSamples||{},n=new Set(this.definitionSamples.map((function(e){return e.lang.toLowerCase()}))),l=(null===(e=a.languages)||void 0===e?void 0:e.filter((function(e){var t=e.lang;return!n.has(t.toLowerCase())})))||[];o=this.generateCodeSamples(l,a)}var s=this.definitionSamples.concat(o),u=Math.min(s.length,i);return this.payload&&!r&&s.splice(u,0,this.payload),s},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parameters",{get:function(){var e=this,t=(0,utils_1.mergeParams)(this.parser,this.operationDefinition.pathParameters,this.operationDefinition.parameters).map((function(t){return new Field_1.FieldModel(e.parser,t,e.pointer,e.options,void 0,{operation:e,type:"request"})}));return this.options.sortPropsAlphabetically?(0,utils_1.sortByField)(t,"name"):this.options.requiredPropsFirst?(0,utils_1.sortByRequired)(t):t},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"responses",{get:function(){var e=this,t=!1;return Object.keys(this.operationDefinition.responses||[]).filter((function(e){return"default"===e||("success"===(0,utils_1.getStatusCodeType)(e)&&(t=!0),(0,utils_1.isStatusCode)(e))})).map((function(i){return new Response_1.ResponseModel({parser:e.parser,code:i,defaultAsError:t,infoOrRef:e.operationDefinition.responses[i],options:e.options,isEvent:e.isEvent,operation:e})}))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"callbacks",{get:function(){var e=this;return Object.keys(this.operationDefinition.callbacks||[]).map((function(t){var i;return new Callback_1.CallbackModel(e.parser,t,null===(i=e.operationDefinition.callbacks)||void 0===i?void 0:i[t],e.pointer,e.options)}))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"hideTryItPanel",{get:function(){return!0===this.operationDefinition["x-hideTryItPanel"]},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"setActiveServer",{enumerable:!1,configurable:!0,writable:!0,value:function(e){this.activeServer=e}}),Object.defineProperty(e.prototype,"setRequestValues",{enumerable:!1,configurable:!0,writable:!0,value:function(e){this.requestValues=e}}),Object.defineProperty(e.prototype,"mergeInMockServer",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){if(!t)return e;var i={url:t.url,description:t.description};switch(t.position){case"first":return(0,tslib_1.__spreadArray)([i],e,!0);case"last":return(0,tslib_1.__spreadArray)((0,tslib_1.__spreadArray)([],e,!0),[i],!1);case"replace":return[i];default:return e}}}),Object.defineProperty(e.prototype,"generateCodeSamples",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){var i=this,r=t.skipOptionalParameters,o=t.withOAuth2Call;return e.map((function(e){var t=e.lang,a=e.label,n=e.options;return{lang:t,label:a,get:function(e){return(0,generator_1.getCodeSample)((0,tslib_1.__assign)((0,tslib_1.__assign)({},e),{lang:t,options:(0,tslib_1.__assign)((0,tslib_1.__assign)({},n),{skipOptionalParameters:r,withOAuth2Call:o,spec:i.parser.definition,generatedPayloadSamplesMaxDepth:i.options.generatedPayloadSamplesMaxDepth})}))}}}))}}),(0,tslib_1.__decorate)([mobx_1.observable],e.prototype,"ready",void 0),(0,tslib_1.__decorate)([mobx_1.observable],e.prototype,"active",void 0),(0,tslib_1.__decorate)([mobx_1.observable],e.prototype,"expanded",void 0),(0,tslib_1.__decorate)([mobx_1.observable],e.prototype,"activeMimeName",void 0),(0,tslib_1.__decorate)([mobx_1.observable],e.prototype,"activeExampleName",void 0),(0,tslib_1.__decorate)([mobx_1.observable.ref],e.prototype,"activeServer",void 0),(0,tslib_1.__decorate)([mobx_1.observable],e.prototype,"requestValues",void 0),(0,tslib_1.__decorate)([mobx_1.action],e.prototype,"activate",null),(0,tslib_1.__decorate)([mobx_1.action],e.prototype,"deactivate",null),(0,tslib_1.__decorate)([mobx_1.action],e.prototype,"toggle",null),(0,tslib_1.__decorate)([mobx_1.action],e.prototype,"activateMimeName",null),(0,tslib_1.__decorate)([mobx_1.action],e.prototype,"activateExampleName",null),(0,tslib_1.__decorate)([utils_1.memoize],e.prototype,"requestBody",null),(0,tslib_1.__decorate)([utils_1.memoize],e.prototype,"payload",null),(0,tslib_1.__decorate)([utils_1.memoize],e.prototype,"hasSamples",null),(0,tslib_1.__decorate)([utils_1.memoize],e.prototype,"definitionSamples",null),(0,tslib_1.__decorate)([utils_1.memoize],e.prototype,"allCodeSamples",null),(0,tslib_1.__decorate)([utils_1.memoize],e.prototype,"parameters",null),(0,tslib_1.__decorate)([utils_1.memoize],e.prototype,"responses",null),(0,tslib_1.__decorate)([utils_1.memoize],e.prototype,"callbacks",null),(0,tslib_1.__decorate)([utils_1.memoize],e.prototype,"hideTryItPanel",null),(0,tslib_1.__decorate)([mobx_1.action],e.prototype,"setActiveServer",null),(0,tslib_1.__decorate)([mobx_1.action],e.prototype,"setRequestValues",null),e}();exports.OperationModel=OperationModel;
|
|
2
2
|
//# sourceMappingURL=Operation.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SecurityRequirementModel=void 0;var tslib_1=require("tslib"),SecurityRequirementModel=function(e,i){Object.defineProperty(this,"schemes",{enumerable:!0,configurable:!0,writable:!0,value:void 0});var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SecurityRequirementModel=void 0;var tslib_1=require("tslib"),utils_1=require("../../../../services/utils"),SecurityRequirementModel=function(e,i){Object.defineProperty(this,"schemes",{enumerable:!0,configurable:!0,writable:!0,value:void 0});var s=i.definition.components&&i.definition.components.securitySchemes||{};(0,utils_1.isEmptyObject)(e)?this.schemes=[{id:"None",scheme:"none",sectionId:"None",type:"none",scopes:[],flows:{}}]:this.schemes=Object.keys(e).map((function(t){var n=i.deref(s[t]).resolved,r=e[t]||[];if(n)return(0,tslib_1.__assign)((0,tslib_1.__assign)({},n),{id:t,sectionId:t,scopes:r});console.warn("Non existing security scheme referenced: "+t+". Skipping")})).filter((function(e){return void 0!==e}))};exports.SecurityRequirementModel=SecurityRequirementModel;
|
|
2
2
|
//# sourceMappingURL=SecurityRequirement.js.map
|
|
@@ -267,12 +267,12 @@ export interface OpenAPISecurityRequirement {
|
|
|
267
267
|
[name: string]: string[];
|
|
268
268
|
}
|
|
269
269
|
export interface OpenAPISecurityScheme {
|
|
270
|
-
type: 'apiKey' | 'http' | 'oauth2' | 'openIdConnect';
|
|
270
|
+
type: 'apiKey' | 'http' | 'oauth2' | 'openIdConnect' | 'none';
|
|
271
271
|
description?: string;
|
|
272
272
|
name?: string;
|
|
273
273
|
in?: 'query' | 'header' | 'cookie';
|
|
274
274
|
scheme?: string;
|
|
275
|
-
bearerFormat
|
|
275
|
+
bearerFormat?: string;
|
|
276
276
|
'x-defaultClientId'?: string;
|
|
277
277
|
flows: {
|
|
278
278
|
implicit?: {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{Component,Fragment}from"react";import{fromSessionStorage,getSecurityDetailsOptions,toSessionStorage,escapeFormId}from"../../utils";import{FormDropdown,FormTextField}from"../common/TextField";import{FormControl,FormLabel,FormWrapper}from"../common/form";import{l}from"../../redoc-lib/src/services/Labels";import{Dropdown}from"../common/Dropdown";import{OpenIDConnect,Error}from"./OpenIDConnect";import{OAuth2Flow}from"./OAuth2Flow";import OAuth2TokenInput from"./OAuth2TokenInput";export function requiredValidator(e){if(!e)return"Field is required"}const getCookie=function(e){const o=document.cookie.match("\\b"+e+"=([^;]*)\\b");return o?o[1]:void 0};function fromCookie(e){if("cookie"===e.in)return getCookie(e.name)}export class AuthPanel extends Component{constructor(){super(...arguments),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:{activeScheme:0}}),Object.defineProperty(this,"handleSchemeChange",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.setState({activeScheme:e.idx}),toSessionStorage("securityRequirementName",e.value)}})}static getDerivedStateFromProps(e){const o=e.operation.security.map((e=>e.schemes.map((e=>e.id)).join(" and "))),t=fromSessionStorage("securityRequirementName"),i=o.findIndex((e=>e===t));return{activeScheme:i<0?0:i}}render(){const{securityDefaults:e}=this.props,{activeScheme:o}=this.state,t=this.props.operation.security,i=t.map((e=>e.schemes.map((e=>e.id)).join(" and "))).filter(Boolean).map(((e,o)=>({value:e,idx:o})));return 0===i.length?_jsx(Error,{message:"Cannot find security schema in the definition"},void 0):_jsxs(_Fragment,{children:[_jsxs(FormWrapper,{children:[i.length>1&&_jsxs(FormControl,{children:[_jsx(FormLabel,{children:" Security scheme: "},void 0),_jsx(Dropdown,{variant:"dark",fullWidth:!0,options:i,value:i[o].value,onChange:this.handleSchemeChange},void 0)]},void 0)||null,t[o].schemes.map((o=>{var t,i,r,s,a,
|
|
1
|
+
import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{Component,Fragment}from"react";import{fromSessionStorage,getSecurityDetailsOptions,toSessionStorage,escapeFormId}from"../../utils";import{FormDropdown,FormTextField}from"../common/TextField";import{FormControl,FormLabel,FormWrapper}from"../common/form";import{l}from"../../redoc-lib/src/services/Labels";import{Dropdown}from"../common/Dropdown";import{OpenIDConnect,Error}from"./OpenIDConnect";import{OAuth2Flow}from"./OAuth2Flow";import OAuth2TokenInput from"./OAuth2TokenInput";export function requiredValidator(e){if(!e)return"Field is required"}const getCookie=function(e){const o=document.cookie.match("\\b"+e+"=([^;]*)\\b");return o?o[1]:void 0};function fromCookie(e){if("cookie"===e.in)return getCookie(e.name)}export class AuthPanel extends Component{constructor(){super(...arguments),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:{activeScheme:0}}),Object.defineProperty(this,"handleSchemeChange",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.setState({activeScheme:e.idx}),toSessionStorage("securityRequirementName",e.value)}})}static getDerivedStateFromProps(e){const o=e.operation.security.map((e=>e.schemes.map((e=>e.id)).join(" and "))),t=fromSessionStorage("securityRequirementName"),i=o.findIndex((e=>e===t));return{activeScheme:i<0?0:i}}render(){const{securityDefaults:e}=this.props,{activeScheme:o}=this.state,t=this.props.operation.security,i=t.map((e=>e.schemes.map((e=>e.id)).join(" and "))).filter(Boolean).map(((e,o)=>({value:e,idx:o})));return 0===i.length?_jsx(Error,{message:"Cannot find security schema in the definition"},void 0):_jsxs(_Fragment,{children:[_jsxs(FormWrapper,{children:[i.length>1&&_jsxs(FormControl,{children:[_jsx(FormLabel,{children:" Security scheme: "},void 0),_jsx(Dropdown,{variant:"dark",fullWidth:!0,options:i,value:i[o].value,onChange:this.handleSchemeChange},void 0)]},void 0)||null,t[o].schemes.map((o=>{var t,i,r,s,n,a,d;const u=escapeFormId(o.id);if("apiKey"===o.type){const t=getSecurityDetailsOptions(u,""),i={field:`auth.${u}`,fullWidth:!0,initialValue:fromCookie(o)||fromSessionStorage(`auth.${u}`)||(null==e?void 0:e[u]),initValue:fromCookie(o)||fromSessionStorage(`auth.${u}`)||(null==e?void 0:e[u]),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return _jsxs(FormControl,{children:[_jsxs(FormLabel,{children:[" ",o.name,": "]},void 0),t?_jsx(FormDropdown,Object.assign({},i,{options:t}),void 0):_jsx(FormTextField,Object.assign({},i,{type:"password","data-cy":"apiKey-auth-password"}),void 0)]},u)}if("http"===o.type){if("basic"===o.scheme){const o=getSecurityDetailsOptions(u,"username"),s={field:`auth.${u}.username`,fullWidth:!0,initialValue:fromSessionStorage(`auth.${u}.username`)||(null===(t=null==e?void 0:e[u])||void 0===t?void 0:t.username),initValue:fromSessionStorage(`auth.${u}.username`)||(null===(i=null==e?void 0:e[u])||void 0===i?void 0:i.username),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return _jsxs(Fragment,{children:[_jsxs(FormControl,{children:[_jsxs(FormLabel,{children:[" ",l("tryItAuthBasicUsername"),": "]},void 0),o?_jsx(FormDropdown,Object.assign({},s,{options:o}),void 0):_jsx(FormTextField,Object.assign({},s),void 0)]},void 0),_jsxs(FormControl,{children:[_jsxs(FormLabel,{children:[" ",l("tryItAuthBasicPassword"),": "]},void 0),_jsx(FormTextField,{type:"password","data-cy":"http-auth-password",fullWidth:!0,field:`auth.${u}.password`,initialValue:fromSessionStorage(`auth.${u}.password`)||(null===(r=null==e?void 0:e[u])||void 0===r?void 0:r.password)||"",validateOnBlur:!0,validateOnChange:!0},void 0)]},void 0)]},u)}if("bearer"===o.scheme){const o=getSecurityDetailsOptions(u,""),t={field:`auth.${u}`,fullWidth:!0,initialValue:fromSessionStorage(`auth.${u}`)||(null==e?void 0:e[u]),initValue:fromSessionStorage(`auth.${u}`)||(null==e?void 0:e[u]),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return _jsx(Fragment,{children:_jsxs(FormControl,{children:[_jsx(FormLabel,{children:" Bearer Token: "},void 0),o?_jsx(FormDropdown,Object.assign({},t,{options:o}),void 0):_jsx(FormTextField,Object.assign({},t,{type:"password",placeholder:"(without 'Bearer')"}),void 0)]},void 0)},u)}}else{if("oauth2"===o.type&&o.flows&&o.flows.clientCredentials)return _jsx(OAuth2TokenInput,{flow:o.flows.clientCredentials,server:this.props.activeServer,authCorsProxyUrl:this.props.authCorsProxyUrl,id:u,form:this.props.form,formApi:this.props.formApi,clientId:o.flows.clientCredentials["x-defaultClientId"]||o["x-defaultClientId"],defaultValues:null==e?void 0:e[u]},u);if("oauth2"===o.type&&o.flows&&o.flows.implicit)return _jsx(OAuth2Flow,{authorizationUrl:o.flows.implicit.authorizationUrl,authCorsProxyUrl:this.props.authCorsProxyUrl,scopes:Object.keys((null===(n=null===(s=null==o?void 0:o.flows)||void 0===s?void 0:s.implicit)||void 0===n?void 0:n.scopes)||{}),server:this.props.activeServer,id:u,form:this.props.form,formApi:this.props.formApi,clientId:o.flows.implicit["x-defaultClientId"]||o["x-defaultClientId"],flow:"implicit",defaultValues:null==e?void 0:e[u]},u);if("oauth2"===o.type&&o.flows&&o.flows.authorizationCode)return _jsx(OAuth2Flow,{authorizationUrl:o.flows.authorizationCode.authorizationUrl,tokenUrl:o.flows.authorizationCode.tokenUrl,authCorsProxyUrl:this.props.authCorsProxyUrl,scopes:Object.keys((null===(a=o.flows.authorizationCode)||void 0===a?void 0:a.scopes)||{}),server:this.props.activeServer,id:u,form:this.props.form,formApi:this.props.formApi,clientId:o.flows.authorizationCode["x-defaultClientId"]||o["x-defaultClientId"],flow:"authorizationCode",tokenEndpointAuthMethod:o.flows.authorizationCode["x-tokenEndpointAuthMethod"],usePkce:o.flows.authorizationCode["x-usePkce"],defaultValues:null==e?void 0:e[u]},u);if("oauth2"===o.type){let o=fromSessionStorage(`auth.${u}.token`)||JSON.stringify(null===(d=null==e?void 0:e[u])||void 0===d?void 0:d.token);return o=o?JSON.parse(o):{},_jsxs(Fragment,{children:[_jsxs(FormControl,{children:[_jsx(FormLabel,{children:" Access Token Type: "},void 0),_jsx(FormTextField,{fullWidth:!0,field:`auth.${u}.token.token_type`,initialValue:o.token_type||"Bearer"},void 0)]},void 0),_jsxs(FormControl,{children:[_jsx(FormLabel,{children:" Access Token: "},void 0),_jsx(FormTextField,{type:"password",fullWidth:!0,field:`auth.${u}.token.access_token`,validate:requiredValidator,initialValue:o.access_token,validateOnBlur:!0,validateOnChange:!0},void 0)]},void 0)]},u)}if("openIdConnect"===o.type)return _jsx(OpenIDConnect,{server:this.props.activeServer,authCorsProxyUrl:this.props.authCorsProxyUrl,id:u,form:this.props.form,formApi:this.props.formApi,scheme:o,clientId:o["x-defaultClientId"],defaultValues:null==e?void 0:e[u]},u);if("none"===o.type)return _jsx("span",{children:"None"},u)}}))]},void 0),_jsxs("small",{children:[_jsx("strong",{children:"Note"},void 0),": Your credentials will be saved until the end of the browser session"]},void 0)]},void 0)}}
|
|
2
2
|
//# sourceMappingURL=AuthPanel.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__decorate,__rest}from"tslib";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{Form,useField}from"informed";import{observer}from"mobx-react";import Swagger from"swagger-client";import{Component}from"react";import{unescapeFormId}from"../../utils";import{JsonPointer}from"../../redoc-lib";import{RenderHook}from"../../redoc-lib/src/components/RenderHook";import{l}from"../../redoc-lib/src/services/Labels";import{CodeHeader,Accordion}from"../Panel";import{OAuth2}from"../../services/OAuth2";import{isFileUploadMime}from"../common/FileUpload/helper";import{OperationParameters}from"../OperationParameters";import{useDimensions}from"../../hooks";import{AnalyticsEventType}from"../../events";import{getFileNameFromHeaders,getParameters,makeRequestInterceptor,unescapeQueryParams,updateStorage}from"./utils";import{AuthPanel,requiredValidator}from"./AuthPanel";import{ConsoleBadges}from"./ConsoleBadges";import{RequestBody}from"./RequestBody";import{ResponsePanel}from"./ResponsePanel";import{ActionPanel}from"./ActionPanel";import{ServersDropdown}from"./ServersDropdown";import{TryItPanel}from"./TryItPanel";import{CloseButton,ConsoleBody,ConsoleWrap}from"./styled";function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}const flexColumn={flex:1,display:"flex",flexDirection:"column"};let Console=class extends Component{constructor(e){super(e),Object.defineProperty(this,"formApi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"setFormApi",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.formApi=e;const t=e.getState(),{values:o}=t,s=__rest(t,["values"]);setTimeout((()=>{const e=Object.assign(Object.assign({},s),{values:Object.assign(Object.assign({},o),{query:unescapeQueryParams(o.query||{}),path:unescapeQueryParams(o.path||{})})});this.setState({form:e})}),0)}}),Object.defineProperty(this,"handleValueChange",{enumerable:!0,configurable:!0,writable:!0,value:e=>{const t=Object.assign(Object.assign({},e),{query:unescapeQueryParams(e.query||{}),path:unescapeQueryParams(e.path||{})});this.setState((e=>({form:Object.assign(Object.assign({},e.form),{values:t})})),(()=>{updateStorage(this.state.form),this.props.operation.setRequestValues(e)}))}}),Object.defineProperty(this,"handleTabChange",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.setState({activeTab:e})}}),Object.defineProperty(this,"handleServerChange",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.setState({server:e}),this.props.operation.setActiveServer(e)}}),Object.defineProperty(this,"handleExecute",{enumerable:!0,configurable:!0,writable:!0,value:async()=>{var e,t,o,s,r,a,n,i,l,c;const{store:d,operation:p,onResponse:u}=this.props;null===(e=this.formApi)||void 0===e||e.submitForm();const{invalid:h}=this.state.form||(null===(t=this.formApi)||void 0===t?void 0:t.getState());if(h)return this.setState({shaking:!0}),setTimeout((()=>this.setState({shaking:!1})),1e3),void(null===(s=null===(o=null==d?void 0:d.options.events)||void 0===o?void 0:o.tryItSent)||void 0===s||s.call(o,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"ValidationFailed",operationId:p.operationId,operationPath:p.path,operationHttpVerb:p.httpVerb,operationSummary:p.description}));const{values:m}=this.state.form||(null===(r=this.formApi)||void 0===r?void 0:r.getState()),{servers:v,requestBody:g}=this.props.operation,y=g&&g.content&&g.content.active&&g.content.active.name||"";let b=m.body;if(/json/.test(y))try{b=JSON.parse(b)}catch(e){console.error(e)}this.setState({loading:!0});const f=this.state.resolvedRawSpec,j=(p.httpVerb||"").toLowerCase();if(!v)throw console.error("Servers are not specified in your OpenAPI file. You can't use Try It Out console without specifying servers. If you use OpenAPI 2, make sure you configured host and basepath"),new Error("Servers are not specified");const O=v.find((e=>this.state.server.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url))),P=Date.now();let S,x=m.auth;if(m.auth){const e=Object.keys(m.auth)[0],t=unescapeFormId(e);S=Object.assign(Object.assign({},f),{components:Object.assign(Object.assign({},null==f?void 0:f.components),{securitySchemes:Object.assign(Object.assign({},null==f?void 0:f.components.securitySchemes),{[t]:Object.assign(Object.assign({},null==f?void 0:f.components.securitySchemes[t]),{type:"openIdConnect"===(null==f?void 0:f.components.securitySchemes[t].type)?"oauth2":null==f?void 0:f.components.securitySchemes[t].type})})})});const o="cookie"===(null==f?void 0:f.components.securitySchemes[t].in)?"Cookie":t,s="cookie"===(null==f?void 0:f.components.securitySchemes[t].in)?`${null==f?void 0:f.components.securitySchemes[t].name}=${x[e]}`:x[e];x=Object.assign(Object.assign({},x),{[o]:s})}else S=Object.assign({},f);S.servers=v;const C=d.options.corsProxyUrl;C&&v.length&&(S.servers=v.map((e=>Object.assign(Object.assign({},e),{url:C+normalizeUrlProtocol(e.url)}))),S.paths=Object.assign(Object.assign({},S.paths),{[p.path]:Object.assign(Object.assign({},S.paths[p.path]),{[j]:Object.assign(Object.assign({},S.paths[p.path][j]),{servers:void 0}),servers:void 0})}));const _=(null===(n=null===(a=null==g?void 0:g.content)||void 0===a?void 0:a.active)||void 0===n?void 0:n.name)||null;if(_&&b&&isFileUploadMime(_)){const e=Object.values(b);b=e.length>1?e:e[0]}const A={server:C?C+normalizeUrlProtocol(O.url):O.url,serverVariables:this.state.server.variables,spec:S,pathName:p.path,method:p.httpVerb,parameters:Object.assign(Object.assign(Object.assign(Object.assign({},m.path),m.query),m.header),m.cookie),securities:{authorized:x},requestBody:b,requestContentType:_,responseContentType:(null===(i=m.header)||void 0===i?void 0:i.Accept)||null,requestInterceptor:makeRequestInterceptor(d.options,p,x)};try{const e=await Swagger.execute(A),t=null==e?void 0:e.data;t instanceof Blob&&(isFileUploadMime(t.type)&&(e.fileInfo={rawData:t,fileName:getFileNameFromHeaders(e.headers)}),e.data=await t.text()),null==u||u({request:A,response:e}),this.setState({response:e,error:void 0})}catch(e){e&&e.response&&e.response.data instanceof Blob&&(e.response.data=await e.response.data.text(),null==u||u({request:A,response:e.response})),this.setState({response:void 0,error:e})}finally{this.setState({loading:!1,activeTab:1,time:Date.now()-P}),null===(c=null===(l=null==d?void 0:d.options.events)||void 0===l?void 0:l.tryItSent)||void 0===c||c.call(l,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"Sent",operationId:p.operationId,operationPath:p.path,operationHttpVerb:p.httpVerb,operationSummary:p.description})}}}),this.state={form:{values:{path:getParameters(e.operation.parameters,"path"),cookie:getParameters(e.operation.parameters,"cookie"),header:getParameters(e.operation.parameters,"header"),query:getParameters(e.operation.parameters,"query")}},shaking:!1,loading:!1,activeTab:0,server:{}}}async componentDidMount(){var e;const{store:t,operation:o}=this.props,s=await t.dereferenceSpecForTryIt(o);this.setState({resolvedRawSpec:s}),null===(e=this.formApi)||void 0===e||e.setValues({})}componentDidUpdate(e){e.operation!==this.props.operation&&this.setState({response:void 0,error:void 0,activeTab:0})}render(){const{operation:e,className:t,rootElement:o}=this.props,{shaking:s,activeTab:r,form:a,response:n,loading:i,error:l}=this.state,c=!(!n&&!l);return _jsxs(ConsoleWrapHook,Object.assign({shaking:s,className:t,rootElement:o},{children:[_jsxs(CodeHeader,{children:[_jsx(ConsoleBadges,{active:r,hasResponse:c,onChange:this.handleTabChange},void 0),this.props.onClose&&_jsx(CloseButton,Object.assign({onClick:this.props.onClose},{children:" ✕ "}),void 0)]},void 0),_jsx(ConsoleBody,Object.assign({hidden:0!==r,"data-cy":"console-request-body"},{children:this.renderRequest()}),void 0),_jsx(ConsoleBody,Object.assign({hidden:1!==r,"data-cy":"console-response-body"},{children:this.renderResponse()}),void 0),_jsx(ActionPanel,{hasResponse:c,params:a.values,operation:e,loading:i,execute:this.handleExecute},void 0)]}),void 0)}renderRequest(){var e;const{operation:t,store:o,properties:s,securityDefaults:r}=this.props,{form:a,resolvedRawSpec:n,server:i}=this.state,c=a.errors||{},d=c.path||c.cookie||c.header||c.query,p=n&&JsonPointer.get(n,t.pointer);let u=a.values&&a.values.auth&&Object.keys(a.values.auth)[0];u&&a.values.auth[u]||(u=void 0),!u||void 0===a.values.auth[u].token&&void 0===a.values.auth[u].client_id&&void 0===a.values.auth[u].client_secret||a.values.auth[u].token&&a.values.auth[u].token.access_token||(u=void 0),u&&null!=a.values.auth[u].username&&(a.values.auth[u].username&&a.values.auth[u].password||(u=void 0));const h=t.parameters||[],m=null===(e=null==o?void 0:o.options.hooks)||void 0===e?void 0:e.ReplaceTryItSecurityPanel;return!n&&_jsx(_Fragment,{children:"Loading..."},void 0)||_jsxs(Form,Object.assign({onValueChange:this.handleValueChange,getApi:this.setFormApi,style:Object.assign(Object.assign({},flexColumn),{margin:0})},{children:[_jsx(ServersDropdown,{operation:t,onChange:this.handleServerChange},void 0),_jsxs(Accordion,Object.assign({initialActiveIdx:t.security.length&&u?1:0},{children:[t.security.length&&this.formApi&&_jsx(TryItPanel,Object.assign({header:l("tryItAuth"),"data-cy":"security-trigger",renderChildrenHidden:!0,error:!u&&!!c.auth,success:!!u},{children:m?_jsx(AuthPanelHook,Object.assign({field:"auth",validate:requiredValidator},{children:e=>_jsx(RenderHook,{Hook:m,props:{server:i,operation:t,onChange:e,OAuth2:OAuth2}},void 0)}),void 0):_jsx(AuthPanel,{formApi:this.formApi,form:a,operation:t,activeServer:i.url,authCorsProxyUrl:o.options.authCorsProxyUrl,securityDefaults:r},void 0)}),void 0)||null,t.requestBody&&this.formApi&&_jsx(TryItPanel,Object.assign({header:l("tryItBody"),"data-cy":"body-trigger",renderChildrenHidden:!0,error:!!c.body},{children:_jsx(RequestBody,{validate:allowBodyErrors,formApi:this.formApi,body:t.requestBody,id:t.id,resolvedBody:null==p?void 0:p.requestBody,properties:s},void 0)}),void 0)||null,h.length&&_jsx(TryItPanel,Object.assign({header:l("tryItParameters"),"data-cy":"parameters-trigger",error:d,renderChildrenHidden:!0},{children:_jsx(OperationParameters,{operation:t,values:a.values,errors:a.errors||{}},void 0)}),void 0)||null]}),void 0)]}),void 0)}renderResponse(){const{response:e,error:t,time:o}=this.state;return _jsx(ResponsePanel,{response:e,error:t,time:o},void 0)}};Console=__decorate([observer],Console);export{Console};function allowBodyErrors(){}function ConsoleWrapHook(e){const{shaking:t,className:o,children:s,rootElement:r}=e,[a]=useDimensions(r);return _jsx(ConsoleWrap,Object.assign({shaking:t,className:o,"data-cy":"console",fullWidth:null==a?void 0:a.width},{children:s}),void 0)}function AuthPanelHook(e){const{fieldApi:t,render:o,userProps:s}=useField(Object.assign({},e)),{setValue:r}=t,{children:a}=s;return o(_jsx(_Fragment,{children:a(r)},void 0))}
|
|
1
|
+
import{__decorate,__rest}from"tslib";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{Form,useField}from"informed";import{observer}from"mobx-react";import Swagger from"swagger-client";import{Component}from"react";import{unescapeFormId}from"../../utils";import{JsonPointer}from"../../redoc-lib";import{RenderHook}from"../../redoc-lib/src/components/RenderHook";import{l}from"../../redoc-lib/src/services/Labels";import{CodeHeader,Accordion}from"../Panel";import{OAuth2}from"../../services/OAuth2";import{isFileUploadMime}from"../common/FileUpload/helper";import{OperationParameters}from"../OperationParameters";import{useDimensions}from"../../hooks";import{AnalyticsEventType}from"../../events";import{isEmptyObject}from"../../services/utils";import{getFileNameFromHeaders,getParameters,makeRequestInterceptor,unescapeQueryParams,updateStorage}from"./utils";import{AuthPanel,requiredValidator}from"./AuthPanel";import{ConsoleBadges}from"./ConsoleBadges";import{RequestBody}from"./RequestBody";import{ResponsePanel}from"./ResponsePanel";import{ActionPanel}from"./ActionPanel";import{ServersDropdown}from"./ServersDropdown";import{TryItPanel}from"./TryItPanel";import{CloseButton,ConsoleBody,ConsoleWrap}from"./styled";function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}const flexColumn={flex:1,display:"flex",flexDirection:"column"};let Console=class extends Component{constructor(e){super(e),Object.defineProperty(this,"formApi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"setFormApi",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.formApi=e;const t=e.getState(),{values:o}=t,s=__rest(t,["values"]);setTimeout((()=>{const e=Object.assign(Object.assign({},s),{values:Object.assign(Object.assign({},o),{query:unescapeQueryParams(o.query||{}),path:unescapeQueryParams(o.path||{})})});this.setState({form:e})}),0)}}),Object.defineProperty(this,"handleValueChange",{enumerable:!0,configurable:!0,writable:!0,value:e=>{const t=Object.assign(Object.assign({},e),{query:unescapeQueryParams(e.query||{}),path:unescapeQueryParams(e.path||{})});this.setState((e=>({form:Object.assign(Object.assign({},e.form),{values:t})})),(()=>{updateStorage(this.state.form),this.props.operation.setRequestValues(e)}))}}),Object.defineProperty(this,"handleTabChange",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.setState({activeTab:e})}}),Object.defineProperty(this,"handleServerChange",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.setState({server:e}),this.props.operation.setActiveServer(e)}}),Object.defineProperty(this,"handleExecute",{enumerable:!0,configurable:!0,writable:!0,value:async()=>{var e,t,o,s,r,a,i,n,l,c;const{store:d,operation:p,onResponse:u}=this.props;null===(e=this.formApi)||void 0===e||e.submitForm();const{invalid:h}=(null===(t=this.formApi)||void 0===t?void 0:t.getState())||this.state.form;if(h)return this.setState({shaking:!0}),setTimeout((()=>this.setState({shaking:!1})),1e3),void(null===(s=null===(o=null==d?void 0:d.options.events)||void 0===o?void 0:o.tryItSent)||void 0===s||s.call(o,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"ValidationFailed",operationId:p.operationId,operationPath:p.path,operationHttpVerb:p.httpVerb,operationSummary:p.description}));const{values:m}=(null===(r=this.formApi)||void 0===r?void 0:r.getState())||this.state.form,{servers:v,requestBody:g}=this.props.operation,y=g&&g.content&&g.content.active&&g.content.active.name||"";let b=m.body;if(/json/.test(y))try{b=JSON.parse(b)}catch(e){console.error(e)}this.setState({loading:!0});const f=this.state.resolvedRawSpec,j=(p.httpVerb||"").toLowerCase();if(!v)throw console.error("Servers are not specified in your OpenAPI file. You can't use Try It Out console without specifying servers. If you use OpenAPI 2, make sure you configured host and basepath"),new Error("Servers are not specified");const O=v.find((e=>this.state.server.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url))),P=Date.now();let S,x=m.auth;if(!isEmptyObject(m.auth)&&m.auth){const e=Object.keys(m.auth)[0],t=unescapeFormId(e);S=Object.assign(Object.assign({},f),{components:Object.assign(Object.assign({},null==f?void 0:f.components),{securitySchemes:Object.assign(Object.assign({},null==f?void 0:f.components.securitySchemes),{[t]:Object.assign(Object.assign({},null==f?void 0:f.components.securitySchemes[t]),{type:"openIdConnect"===(null==f?void 0:f.components.securitySchemes[t].type)?"oauth2":null==f?void 0:f.components.securitySchemes[t].type})})})});const o="cookie"===(null==f?void 0:f.components.securitySchemes[t].in)?"Cookie":t,s="cookie"===(null==f?void 0:f.components.securitySchemes[t].in)?`${null==f?void 0:f.components.securitySchemes[t].name}=${x[e]}`:x[e];x=Object.assign(Object.assign({},x),{[o]:s})}else S=Object.assign({},f);S.servers=v;const C=d.options.corsProxyUrl;C&&v.length&&(S.servers=v.map((e=>Object.assign(Object.assign({},e),{url:C+normalizeUrlProtocol(e.url)}))),S.paths=Object.assign(Object.assign({},S.paths),{[p.path]:Object.assign(Object.assign({},S.paths[p.path]),{[j]:Object.assign(Object.assign({},S.paths[p.path][j]),{servers:void 0}),servers:void 0})}));const _=(null===(i=null===(a=null==g?void 0:g.content)||void 0===a?void 0:a.active)||void 0===i?void 0:i.name)||null;if(_&&b&&isFileUploadMime(_)){const e=Object.values(b);b=e.length>1?e:e[0]}const A={server:C?C+normalizeUrlProtocol(O.url):O.url,serverVariables:this.state.server.variables,spec:S,pathName:p.path,method:p.httpVerb,parameters:Object.assign(Object.assign(Object.assign(Object.assign({},m.path),m.query),m.header),m.cookie),securities:{authorized:x},requestBody:b,requestContentType:_,responseContentType:(null===(n=m.header)||void 0===n?void 0:n.Accept)||null,requestInterceptor:makeRequestInterceptor(d.options,p,x)};try{const e=await Swagger.execute(A),t=null==e?void 0:e.data;t instanceof Blob&&(isFileUploadMime(t.type)&&(e.fileInfo={rawData:t,fileName:getFileNameFromHeaders(e.headers)}),e.data=await t.text()),null==u||u({request:A,response:e}),this.setState({response:e,error:void 0})}catch(e){e&&e.response&&e.response.data instanceof Blob&&(e.response.data=await e.response.data.text(),null==u||u({request:A,response:e.response})),this.setState({response:void 0,error:e})}finally{this.setState({loading:!1,activeTab:1,time:Date.now()-P}),null===(c=null===(l=null==d?void 0:d.options.events)||void 0===l?void 0:l.tryItSent)||void 0===c||c.call(l,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"Sent",operationId:p.operationId,operationPath:p.path,operationHttpVerb:p.httpVerb,operationSummary:p.description})}}}),this.state={form:{values:{path:getParameters(e.operation.parameters,"path"),cookie:getParameters(e.operation.parameters,"cookie"),header:getParameters(e.operation.parameters,"header"),query:getParameters(e.operation.parameters,"query")}},shaking:!1,loading:!1,activeTab:0,server:{}}}async componentDidMount(){var e;const{store:t,operation:o}=this.props,s=await t.dereferenceSpecForTryIt(o);this.setState({resolvedRawSpec:s}),null===(e=this.formApi)||void 0===e||e.setValues({})}componentDidUpdate(e){e.operation!==this.props.operation&&this.setState({response:void 0,error:void 0,activeTab:0})}render(){const{operation:e,className:t,rootElement:o}=this.props,{shaking:s,activeTab:r,form:a,response:i,loading:n,error:l}=this.state,c=!(!i&&!l);return _jsxs(ConsoleWrapHook,Object.assign({shaking:s,className:t,rootElement:o},{children:[_jsxs(CodeHeader,{children:[_jsx(ConsoleBadges,{active:r,hasResponse:c,onChange:this.handleTabChange},void 0),this.props.onClose&&_jsx(CloseButton,Object.assign({onClick:this.props.onClose},{children:" ✕ "}),void 0)]},void 0),_jsx(ConsoleBody,Object.assign({hidden:0!==r,"data-cy":"console-request-body"},{children:this.renderRequest()}),void 0),_jsx(ConsoleBody,Object.assign({hidden:1!==r,"data-cy":"console-response-body"},{children:this.renderResponse()}),void 0),_jsx(ActionPanel,{hasResponse:c,params:a.values,operation:e,loading:n,execute:this.handleExecute},void 0)]}),void 0)}renderRequest(){var e;const{operation:t,store:o,properties:s,securityDefaults:r}=this.props,{form:a,resolvedRawSpec:i,server:n}=this.state,c=a.errors||{},d=c.path||c.cookie||c.header||c.query,p=i&&JsonPointer.get(i,t.pointer);let u=a.values&&a.values.auth&&Object.keys(a.values.auth)[0];u&&a.values.auth[u]||(u=void 0),!u||void 0===a.values.auth[u].token&&void 0===a.values.auth[u].client_id&&void 0===a.values.auth[u].client_secret||a.values.auth[u].token&&a.values.auth[u].token.access_token||(u=void 0),u&&null!=a.values.auth[u].username&&(a.values.auth[u].username&&a.values.auth[u].password||(u=void 0));const h=t.parameters||[],m=null===(e=null==o?void 0:o.options.hooks)||void 0===e?void 0:e.ReplaceTryItSecurityPanel;return!i&&_jsx(_Fragment,{children:"Loading..."},void 0)||_jsxs(Form,Object.assign({onValueChange:this.handleValueChange,getApi:this.setFormApi,style:Object.assign(Object.assign({},flexColumn),{margin:0})},{children:[_jsx(ServersDropdown,{operation:t,onChange:this.handleServerChange},void 0),_jsxs(Accordion,Object.assign({initialActiveIdx:t.security.length&&u?1:0},{children:[t.security.length&&this.formApi&&_jsx(TryItPanel,Object.assign({header:l("tryItAuth"),"data-cy":"security-trigger",renderChildrenHidden:!0,error:!u&&!!c.auth,success:!!u},{children:m?_jsx(AuthPanelHook,Object.assign({field:"auth",validate:requiredValidator},{children:e=>_jsx(RenderHook,{Hook:m,props:{server:n,operation:t,onChange:e,OAuth2:OAuth2}},void 0)}),void 0):_jsx(AuthPanel,{formApi:this.formApi,form:a,operation:t,activeServer:n.url,authCorsProxyUrl:o.options.authCorsProxyUrl,securityDefaults:r},void 0)}),void 0)||null,t.requestBody&&this.formApi&&_jsx(TryItPanel,Object.assign({header:l("tryItBody"),"data-cy":"body-trigger",renderChildrenHidden:!0,error:!!c.body},{children:_jsx(RequestBody,{validate:allowBodyErrors,formApi:this.formApi,body:t.requestBody,id:t.id,resolvedBody:null==p?void 0:p.requestBody,properties:s},void 0)}),void 0)||null,h.length&&_jsx(TryItPanel,Object.assign({header:l("tryItParameters"),"data-cy":"parameters-trigger",error:d,renderChildrenHidden:!0},{children:_jsx(OperationParameters,{operation:t,values:a.values,errors:a.errors||{}},void 0)}),void 0)||null]}),void 0)]}),void 0)}renderResponse(){const{response:e,error:t,time:o}=this.state;return _jsx(ResponsePanel,{response:e,error:t,time:o},void 0)}};Console=__decorate([observer],Console);export{Console};function allowBodyErrors(){}function ConsoleWrapHook(e){const{shaking:t,className:o,children:s,rootElement:r}=e,[a]=useDimensions(r);return _jsx(ConsoleWrap,Object.assign({shaking:t,className:o,"data-cy":"console",fullWidth:null==a?void 0:a.width},{children:s}),void 0)}function AuthPanelHook(e){const{fieldApi:t,render:o,userProps:s}=useField(Object.assign({},e)),{setValue:r}=t,{children:a}=s;return o(_jsx(_Fragment,{children:a(r)},void 0))}
|
|
2
2
|
//# sourceMappingURL=Console.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{Fragment,useState}from"react";import styled from"../../styled-components";import{useStore}from"../StoreBuilder";import{Markdown,StyledMarkdownBlock}from"../Markdown";import{titleize}from"../../utils";import{OAuthFlow}from"../SecuritySchemes/SecuritySchemes";import{l}from"../../services/Labels";import{ContentPanel}from"../../../../components/Panel";import{SecurityRequirementPanelDescription}from"./SecurityRequirementPanelDescription";import{SecurityRequirementElement}from"./SecurityRequirementElement";import{RequiredScopesRow}from"./RequiredScopesRow";export const AUTH_TYPES={oauth2:"OAuth2",apiKey:"API Key",http:"HTTP",openIdConnect:"OpenID Connect"};function getRequiredScopes(e,t){const i=[];let o=t.length;for(;o--;){const r=t[o];let n=r.schemes.length;for(;n--;){const t=r.schemes[n];t.id===e&&i.push(...t.scopes)}}return Array.from(new Set(i))}export const SecurityRequirements=({securities:e})=>{const t=useStore(),i=null==t?void 0:t.options.showSecuritySchemeType,[o,r]=useState(!1);if(!e.length||(null==t?void 0:t.options.hideSecuritySection))return null;const n=null==t?void 0:t.definition.securitySchemes.schemes,s=null==n?void 0:n.filter((({id:t})=>e.find((e=>e.schemes.find((e=>e.id===t))))));return _jsxs(ContentPanel,Object.assign({header:l("authorizations"),onToggle:e=>r(e),description:!o&&_jsx(SecurityRequirementPanelDescription,{securities:e,showSecuritySchemeType:i},void 0),expanded:o},{children:[o&&s
|
|
1
|
+
import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{Fragment,useState}from"react";import styled from"../../styled-components";import{useStore}from"../StoreBuilder";import{Markdown,StyledMarkdownBlock}from"../Markdown";import{titleize}from"../../utils";import{OAuthFlow}from"../SecuritySchemes/SecuritySchemes";import{l}from"../../services/Labels";import{ContentPanel}from"../../../../components/Panel";import{SecurityRequirementPanelDescription}from"./SecurityRequirementPanelDescription";import{SecurityRequirementElement}from"./SecurityRequirementElement";import{RequiredScopesRow}from"./RequiredScopesRow";export const AUTH_TYPES={oauth2:"OAuth2",apiKey:"API Key",http:"HTTP",openIdConnect:"OpenID Connect"};function getRequiredScopes(e,t){const i=[];let o=t.length;for(;o--;){const r=t[o];let n=r.schemes.length;for(;n--;){const t=r.schemes[n];t.id===e&&i.push(...t.scopes)}}return Array.from(new Set(i))}export const SecurityRequirements=({securities:e})=>{const t=useStore(),i=null==t?void 0:t.options.showSecuritySchemeType,[o,r]=useState(!1);if(!e.length||(null==t?void 0:t.options.hideSecuritySection))return null;const n=null==t?void 0:t.definition.securitySchemes.schemes,s=null==n?void 0:n.filter((({id:t})=>e.find((e=>e.schemes.find((e=>e.id===t))))));return _jsxs(ContentPanel,Object.assign({header:l("authorizations"),onToggle:e=>r(e),description:!o&&_jsx(SecurityRequirementPanelDescription,{securities:e,showSecuritySchemeType:i},void 0),expanded:o},{children:[o&&s?_jsx(SecurityRequirementBlock,{children:e.map(((t,o)=>{let r,n,s="";return e.length>1&&t.schemes.length>1&&(n=0===o?"(":"",s=")"),o!==e.length-1&&(s+=" or",r=_jsx("br",{},void 0)),_jsxs(Fragment,{children:[n,_jsx(SecurityRequirementElement,{security:t,showSecuritySchemeType:i},void 0),s,r]},t.schemes.map((({id:e})=>e)).join(""))}))},void 0):null,o&&s?s.map((t=>{const i=getRequiredScopes(t.id,e),o=_jsx(RequiredScopesRow,{scopes:i},void 0);return _jsxs(SecurityDetails,{children:[_jsxs("h5",{children:[_jsx(LockIcon,{},void 0)," ",AUTH_TYPES[t.type]||t.type,": ",t.id]},void 0),_jsx(Markdown,{source:t.description||""},void 0),_jsx(StyledMarkdownBlock,{children:t.apiKey?_jsxs(_Fragment,{children:[_jsxs(SecurityRow,{children:[_jsxs("b",{children:[titleize(t.apiKey.in||"")," parameter name: "]},void 0),_jsx("code",{children:t.apiKey.name},void 0)]},void 0),o]},void 0):t.http?_jsxs(_Fragment,{children:[_jsxs(SecurityRow,{children:[_jsx("b",{children:"HTTP Authorization Scheme: "},void 0),_jsx("code",{children:t.http.scheme},void 0)]},void 0),_jsx(SecurityRow,{children:"bearer"===t.http.scheme&&t.http.bearerFormat&&_jsxs(_Fragment,{children:[_jsx("b",{children:"Bearer format: "},void 0),_jsx("code",{children:t.http.bearerFormat},void 0)]},void 0)},void 0),o]},void 0):t.openId?_jsxs(_Fragment,{children:[_jsxs(SecurityRow,{children:[_jsx("b",{children:"Connect URL: "},void 0),_jsx("code",{children:_jsx("a",Object.assign({target:"_blank",rel:"noopener noreferrer",href:t.openId.connectUrl},{children:t.openId.connectUrl}),void 0)},void 0)]},void 0),o]},void 0):t.flows?Object.keys(t.flows).map((e=>_jsx(OAuthFlow,{type:e,RequiredScopes:o,flow:t.flows[e]},e))):null},t.id)]},t.id)})):null]}),void 0)};const SecurityDetails=styled.div`
|
|
2
2
|
border-bottom: 1px solid ${({theme:e})=>e.colors.border.light};
|
|
3
3
|
margin-bottom: 1.5em;
|
|
4
4
|
padding-bottom: 0.7em;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__decorate}from"tslib";import{action,makeObservable,observable}from"mobx";import{extractExtensions,getOperationSummary,getStatusCodeType,isStatusCode,memoize,mergeParams,normalizeServers,sanitizeItemId,sortByField,sortByRequired}from"../../utils";import{getCodeSample}from"../../../../services/code-samples/generator";import{getInitialServerWithVariables}from"../../../../components/console/utils";import{CallbackModel}from"./Callback";import{FieldModel}from"./Field";import{RequestBodyModel}from"./RequestBody";import{ResponseModel}from"./Response";import{SecurityRequirementModel}from"./SecurityRequirement";export function isPayloadSample(e){return"payload"===e.lang&&"requestBodyContent"in e}let isCodeSamplesWarningPrinted=!1;export class OperationModel{constructor(e,t,i,o,r=!1){var a,n;Object.defineProperty(this,"parser",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"operationDefinition",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:o}),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"absoluteIdx",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"description",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"href",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"type",{enumerable:!0,configurable:!0,writable:!0,value:"operation"}),Object.defineProperty(this,"parent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"externalDocs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"items",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"depth",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"ready",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"active",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"expanded",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"activeMimeName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"activeExampleName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"activeServer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"requestValues",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"defaultExampleName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"defaultMimeType",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"pointer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"operationId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"httpVerb",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"deprecated",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"path",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"servers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"security",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"extensions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"isCallback",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"isWebhook",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"isEvent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),makeObservable(this),this.pointer=t.pointer,this.description=t.description,this.parent=i,this.externalDocs=t.externalDocs,this.deprecated=!!t.deprecated,this.httpVerb=t.httpVerb,this.deprecated=!!t.deprecated,this.operationId=t.operationId,this.path=t.pathName,this.isCallback=r,this.isWebhook=t.isWebhook,this.isEvent=this.isCallback||this.isWebhook,this.name=getOperationSummary(t),this.defaultExampleName=t.defaultSampleName;const l=null===(n=null===(a=this.requestBody)||void 0===a?void 0:a.content)||void 0===n?void 0:n.mediaTypes,[s]=l||[],[p]=Object.keys((null==s?void 0:s.examples)||[]);this.activeExampleName=!1!==t.defaultSampleName&&(t.defaultSampleName||p),this.defaultMimeType=t.defaultMimeType;const d=null==l?void 0:l.find((e=>e.name===t.defaultMimeType));if(this.activeMimeName=(null==d?void 0:d.name)||(null==s?void 0:s.name),this.isCallback)this.security=(t.security||[]).filter((e=>Object.keys(e).length)).map((t=>new SecurityRequirementModel(t,e))),this.servers=normalizeServers("",t.servers||t.pathServers||[]);else{this.id=sanitizeItemId(void 0!==t.operationId?"operation/"+t.operationId:void 0!==i?i.id+this.pointer:this.pointer),this.security=(t.security||e.definition.security||[]).filter((e=>Object.keys(e).length)).map((t=>new SecurityRequirementModel(t,e)));const r=this.mergeInMockServer(t.servers||t.pathServers||e.definition.servers||[],o.mockServer);this.servers=normalizeServers(e.definitionUrl,r)}o.showExtensions&&(this.extensions=extractExtensions(t,o.showExtensions)),this.activeServer=getInitialServerWithVariables(this.servers)}activate(){this.active=!0}deactivate(){this.active=!1}toggle(){this.expanded=!this.expanded}activateMimeName(e){this.activeMimeName=e}activateExampleName(e){this.activeExampleName=e}expand(){this.parent&&this.parent.expand()}collapse(){}get requestBody(){return this.operationDefinition.requestBody&&new RequestBodyModel({parser:this.parser,infoOrRef:this.operationDefinition.requestBody,options:this.options,operation:this,isEvent:this.isEvent})}get payload(){var e;const t=null===(e=this.requestBody)||void 0===e?void 0:e.content;return(null==t?void 0:t.hasSample)?{lang:"payload",label:"Payload",source:"",requestBodyContent:t}:void 0}get hasSamples(){var e,t;return(null===(t=null===(e=this.requestBody)||void 0===e?void 0:e.content)||void 0===t?void 0:t.hasSample)||this.definitionSamples.length>0}get definitionSamples(){const e=this.operationDefinition["x-codeSamples"]||this.operationDefinition["x-code-samples"]||[];return this.operationDefinition["x-code-samples"]&&!isCodeSamplesWarningPrinted&&(isCodeSamplesWarningPrinted=!0,console.warn('"x-code-samples" is deprecated. Use "x-codeSamples" instead')),e}get allCodeSamples(){var e;const{payloadSampleIdx:t,hideRequestPayloadSample:i}=this.options;let o=[];if(!this.isWebhook){const t=this.options.generateCodeSamples||{},i=new Set(this.definitionSamples.map((({lang:e})=>e.toLowerCase()))),r=(null===(e=t.languages)||void 0===e?void 0:e.filter((({lang:e})=>!i.has(e.toLowerCase()))))||[];o=this.generateCodeSamples(r,t)}const r=this.definitionSamples.concat(o),a=Math.min(r.length,t);return this.payload&&!i&&r.splice(a,0,this.payload),r}get parameters(){const e=mergeParams(this.parser,this.operationDefinition.pathParameters,this.operationDefinition.parameters).map((e=>new FieldModel(this.parser,e,this.pointer,this.options,void 0,{operation:this,type:"request"})));return this.options.sortPropsAlphabetically?sortByField(e,"name"):this.options.requiredPropsFirst?sortByRequired(e):e}get responses(){let e=!1;return Object.keys(this.operationDefinition.responses||[]).filter((t=>"default"===t||("success"===getStatusCodeType(t)&&(e=!0),isStatusCode(t)))).map((t=>new ResponseModel({parser:this.parser,code:t,defaultAsError:e,infoOrRef:this.operationDefinition.responses[t],options:this.options,isEvent:this.isEvent,operation:this})))}get callbacks(){return Object.keys(this.operationDefinition.callbacks||[]).map((e=>{var t;return new CallbackModel(this.parser,e,null===(t=this.operationDefinition.callbacks)||void 0===t?void 0:t[e],this.pointer,this.options)}))}get hideTryItPanel(){return!0===this.operationDefinition["x-hideTryItPanel"]}setActiveServer(e){this.activeServer=e}setRequestValues(e){this.requestValues=e}mergeInMockServer(e,t){if(!t)return e;const i={url:t.url,description:t.description};switch(t.position){case"first":return[i,...e];case"last":return[...e,i];case"replace":return[i];default:return e}}generateCodeSamples(e,{skipOptionalParameters:t,withOAuth2Call:i}){return e.map((({lang:e,label:o,options:r})=>({lang:e,label:o,get:o=>getCodeSample(Object.assign(Object.assign({},o),{lang:e,options:Object.assign(Object.assign({},r),{skipOptionalParameters:t,withOAuth2Call:i,spec:this.parser.definition,generatedPayloadSamplesMaxDepth:this.options.generatedPayloadSamplesMaxDepth})}))})))}}__decorate([observable],OperationModel.prototype,"ready",void 0),__decorate([observable],OperationModel.prototype,"active",void 0),__decorate([observable],OperationModel.prototype,"expanded",void 0),__decorate([observable],OperationModel.prototype,"activeMimeName",void 0),__decorate([observable],OperationModel.prototype,"activeExampleName",void 0),__decorate([observable.ref],OperationModel.prototype,"activeServer",void 0),__decorate([observable],OperationModel.prototype,"requestValues",void 0),__decorate([action],OperationModel.prototype,"activate",null),__decorate([action],OperationModel.prototype,"deactivate",null),__decorate([action],OperationModel.prototype,"toggle",null),__decorate([action],OperationModel.prototype,"activateMimeName",null),__decorate([action],OperationModel.prototype,"activateExampleName",null),__decorate([memoize],OperationModel.prototype,"requestBody",null),__decorate([memoize],OperationModel.prototype,"payload",null),__decorate([memoize],OperationModel.prototype,"hasSamples",null),__decorate([memoize],OperationModel.prototype,"definitionSamples",null),__decorate([memoize],OperationModel.prototype,"allCodeSamples",null),__decorate([memoize],OperationModel.prototype,"parameters",null),__decorate([memoize],OperationModel.prototype,"responses",null),__decorate([memoize],OperationModel.prototype,"callbacks",null),__decorate([memoize],OperationModel.prototype,"hideTryItPanel",null),__decorate([action],OperationModel.prototype,"setActiveServer",null),__decorate([action],OperationModel.prototype,"setRequestValues",null);
|
|
1
|
+
import{__decorate}from"tslib";import{action,makeObservable,observable}from"mobx";import{extractExtensions,getOperationSummary,getStatusCodeType,isStatusCode,memoize,mergeParams,normalizeServers,sanitizeItemId,sortByField,sortByRequired}from"../../utils";import{getCodeSample}from"../../../../services/code-samples/generator";import{getInitialServerWithVariables}from"../../../../components/console/utils";import{CallbackModel}from"./Callback";import{FieldModel}from"./Field";import{RequestBodyModel}from"./RequestBody";import{ResponseModel}from"./Response";import{SecurityRequirementModel}from"./SecurityRequirement";export function isPayloadSample(e){return"payload"===e.lang&&"requestBodyContent"in e}let isCodeSamplesWarningPrinted=!1;export class OperationModel{constructor(e,t,i,o,r=!1){var a,n;Object.defineProperty(this,"parser",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"operationDefinition",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:o}),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"absoluteIdx",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"description",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"href",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"type",{enumerable:!0,configurable:!0,writable:!0,value:"operation"}),Object.defineProperty(this,"parent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"externalDocs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"items",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"depth",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"ready",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"active",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"expanded",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"activeMimeName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"activeExampleName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"activeServer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"requestValues",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"defaultExampleName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"defaultMimeType",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"pointer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"operationId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"httpVerb",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"deprecated",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"path",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"servers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"security",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"extensions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"isCallback",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"isWebhook",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"isEvent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),makeObservable(this),this.pointer=t.pointer,this.description=t.description,this.parent=i,this.externalDocs=t.externalDocs,this.deprecated=!!t.deprecated,this.httpVerb=t.httpVerb,this.deprecated=!!t.deprecated,this.operationId=t.operationId,this.path=t.pathName,this.isCallback=r,this.isWebhook=t.isWebhook,this.isEvent=this.isCallback||this.isWebhook,this.name=getOperationSummary(t),this.defaultExampleName=t.defaultSampleName;const l=null===(n=null===(a=this.requestBody)||void 0===a?void 0:a.content)||void 0===n?void 0:n.mediaTypes,[s]=l||[],[p]=Object.keys((null==s?void 0:s.examples)||[]);this.activeExampleName=!1!==t.defaultSampleName&&(t.defaultSampleName||p),this.defaultMimeType=t.defaultMimeType;const d=null==l?void 0:l.find((e=>e.name===t.defaultMimeType));if(this.activeMimeName=(null==d?void 0:d.name)||(null==s?void 0:s.name),this.isCallback)this.security=(t.security||[]).map((t=>new SecurityRequirementModel(t,e))),this.servers=normalizeServers("",t.servers||t.pathServers||[]);else{this.id=sanitizeItemId(void 0!==t.operationId?"operation/"+t.operationId:void 0!==i?i.id+this.pointer:this.pointer),this.security=(t.security||e.definition.security||[]).map((t=>new SecurityRequirementModel(t,e)));const r=this.mergeInMockServer(t.servers||t.pathServers||e.definition.servers||[],o.mockServer);this.servers=normalizeServers(e.definitionUrl,r)}o.showExtensions&&(this.extensions=extractExtensions(t,o.showExtensions)),this.activeServer=getInitialServerWithVariables(this.servers)}activate(){this.active=!0}deactivate(){this.active=!1}toggle(){this.expanded=!this.expanded}activateMimeName(e){this.activeMimeName=e}activateExampleName(e){this.activeExampleName=e}expand(){this.parent&&this.parent.expand()}collapse(){}get requestBody(){return this.operationDefinition.requestBody&&new RequestBodyModel({parser:this.parser,infoOrRef:this.operationDefinition.requestBody,options:this.options,operation:this,isEvent:this.isEvent})}get payload(){var e;const t=null===(e=this.requestBody)||void 0===e?void 0:e.content;return(null==t?void 0:t.hasSample)?{lang:"payload",label:"Payload",source:"",requestBodyContent:t}:void 0}get hasSamples(){var e,t;return(null===(t=null===(e=this.requestBody)||void 0===e?void 0:e.content)||void 0===t?void 0:t.hasSample)||this.definitionSamples.length>0}get definitionSamples(){var e,t,i,o;const r=this.operationDefinition["x-codeSamples"]||this.operationDefinition["x-code-samples"];if(this.operationDefinition["x-code-samples"]&&!isCodeSamplesWarningPrinted&&(isCodeSamplesWarningPrinted=!0,console.warn('"x-code-samples" is deprecated. Use "x-codeSamples" instead')),!r&&this.operationDefinition.requestBody){const r=this.parser.deref(this.operationDefinition.requestBody).resolved,a=Object.keys((null==r?void 0:r.content)||{})[0],n=(null===(e=r["x-examples"])||void 0===e?void 0:e[a])||(null===(i=null===(t=null==r?void 0:r.content)||void 0===t?void 0:t[a])||void 0===i?void 0:i.examples)||{},l=Object.keys(n)[0];if(null===(o=n[l])||void 0===o?void 0:o["x-codeSamples"])return n[l]["x-codeSamples"].map(((e,t)=>Object.assign(Object.assign({},e),{source:void 0,get:({exampleName:e})=>{var i,o,r;return null!==(o=null===(i=n[e])||void 0===i?void 0:i["x-codeSamples"][t].source)&&void 0!==o?o:null===(r=n[l])||void 0===r?void 0:r["x-codeSamples"][t].source}})))}return r||[]}get allCodeSamples(){var e;const{payloadSampleIdx:t,hideRequestPayloadSample:i}=this.options;let o=[];if(!this.isWebhook){const t=this.options.generateCodeSamples||{},i=new Set(this.definitionSamples.map((({lang:e})=>e.toLowerCase()))),r=(null===(e=t.languages)||void 0===e?void 0:e.filter((({lang:e})=>!i.has(e.toLowerCase()))))||[];o=this.generateCodeSamples(r,t)}const r=this.definitionSamples.concat(o),a=Math.min(r.length,t);return this.payload&&!i&&r.splice(a,0,this.payload),r}get parameters(){const e=mergeParams(this.parser,this.operationDefinition.pathParameters,this.operationDefinition.parameters).map((e=>new FieldModel(this.parser,e,this.pointer,this.options,void 0,{operation:this,type:"request"})));return this.options.sortPropsAlphabetically?sortByField(e,"name"):this.options.requiredPropsFirst?sortByRequired(e):e}get responses(){let e=!1;return Object.keys(this.operationDefinition.responses||[]).filter((t=>"default"===t||("success"===getStatusCodeType(t)&&(e=!0),isStatusCode(t)))).map((t=>new ResponseModel({parser:this.parser,code:t,defaultAsError:e,infoOrRef:this.operationDefinition.responses[t],options:this.options,isEvent:this.isEvent,operation:this})))}get callbacks(){return Object.keys(this.operationDefinition.callbacks||[]).map((e=>{var t;return new CallbackModel(this.parser,e,null===(t=this.operationDefinition.callbacks)||void 0===t?void 0:t[e],this.pointer,this.options)}))}get hideTryItPanel(){return!0===this.operationDefinition["x-hideTryItPanel"]}setActiveServer(e){this.activeServer=e}setRequestValues(e){this.requestValues=e}mergeInMockServer(e,t){if(!t)return e;const i={url:t.url,description:t.description};switch(t.position){case"first":return[i,...e];case"last":return[...e,i];case"replace":return[i];default:return e}}generateCodeSamples(e,{skipOptionalParameters:t,withOAuth2Call:i}){return e.map((({lang:e,label:o,options:r})=>({lang:e,label:o,get:o=>getCodeSample(Object.assign(Object.assign({},o),{lang:e,options:Object.assign(Object.assign({},r),{skipOptionalParameters:t,withOAuth2Call:i,spec:this.parser.definition,generatedPayloadSamplesMaxDepth:this.options.generatedPayloadSamplesMaxDepth})}))})))}}__decorate([observable],OperationModel.prototype,"ready",void 0),__decorate([observable],OperationModel.prototype,"active",void 0),__decorate([observable],OperationModel.prototype,"expanded",void 0),__decorate([observable],OperationModel.prototype,"activeMimeName",void 0),__decorate([observable],OperationModel.prototype,"activeExampleName",void 0),__decorate([observable.ref],OperationModel.prototype,"activeServer",void 0),__decorate([observable],OperationModel.prototype,"requestValues",void 0),__decorate([action],OperationModel.prototype,"activate",null),__decorate([action],OperationModel.prototype,"deactivate",null),__decorate([action],OperationModel.prototype,"toggle",null),__decorate([action],OperationModel.prototype,"activateMimeName",null),__decorate([action],OperationModel.prototype,"activateExampleName",null),__decorate([memoize],OperationModel.prototype,"requestBody",null),__decorate([memoize],OperationModel.prototype,"payload",null),__decorate([memoize],OperationModel.prototype,"hasSamples",null),__decorate([memoize],OperationModel.prototype,"definitionSamples",null),__decorate([memoize],OperationModel.prototype,"allCodeSamples",null),__decorate([memoize],OperationModel.prototype,"parameters",null),__decorate([memoize],OperationModel.prototype,"responses",null),__decorate([memoize],OperationModel.prototype,"callbacks",null),__decorate([memoize],OperationModel.prototype,"hideTryItPanel",null),__decorate([action],OperationModel.prototype,"setActiveServer",null),__decorate([action],OperationModel.prototype,"setRequestValues",null);
|
|
2
2
|
//# sourceMappingURL=Operation.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export class SecurityRequirementModel{constructor(e,s){Object.defineProperty(this,"schemes",{enumerable:!0,configurable:!0,writable:!0,value:void 0});const i=s.definition.components&&s.definition.components.securitySchemes||{};this.schemes=Object.keys(e
|
|
1
|
+
import{isEmptyObject}from"../../../../services/utils";export class SecurityRequirementModel{constructor(e,s){Object.defineProperty(this,"schemes",{enumerable:!0,configurable:!0,writable:!0,value:void 0});const i=s.definition.components&&s.definition.components.securitySchemes||{};if(isEmptyObject(e)){const e={id:"None",scheme:"none",sectionId:"None",type:"none",scopes:[],flows:{}};this.schemes=[e]}else this.schemes=Object.keys(e).map((t=>{const n=s.deref(i[t]).resolved,o=e[t]||[];if(n)return Object.assign(Object.assign({},n),{id:t,sectionId:t,scopes:o});console.warn(`Non existing security scheme referenced: ${t}. Skipping`)})).filter((e=>void 0!==e))}}
|
|
2
2
|
//# sourceMappingURL=SecurityRequirement.js.map
|
|
@@ -267,12 +267,12 @@ export interface OpenAPISecurityRequirement {
|
|
|
267
267
|
[name: string]: string[];
|
|
268
268
|
}
|
|
269
269
|
export interface OpenAPISecurityScheme {
|
|
270
|
-
type: 'apiKey' | 'http' | 'oauth2' | 'openIdConnect';
|
|
270
|
+
type: 'apiKey' | 'http' | 'oauth2' | 'openIdConnect' | 'none';
|
|
271
271
|
description?: string;
|
|
272
272
|
name?: string;
|
|
273
273
|
in?: 'query' | 'header' | 'cookie';
|
|
274
274
|
scheme?: string;
|
|
275
|
-
bearerFormat
|
|
275
|
+
bearerFormat?: string;
|
|
276
276
|
'x-defaultClientId'?: string;
|
|
277
277
|
flows: {
|
|
278
278
|
implicit?: {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{Component,Fragment}from"react";import{fromSessionStorage,getSecurityDetailsOptions,toSessionStorage,escapeFormId}from"../../utils";import{FormDropdown,FormTextField}from"../common/TextField";import{FormControl,FormLabel,FormWrapper}from"../common/form";import{l}from"../../redoc-lib/src/services/Labels";import{Dropdown}from"../common/Dropdown";import{OpenIDConnect,Error}from"./OpenIDConnect";import{OAuth2Flow}from"./OAuth2Flow";import OAuth2TokenInput from"./OAuth2TokenInput";export function requiredValidator(e){if(!e)return"Field is required"}const getCookie=function(e){const o=document.cookie.match("\\b"+e+"=([^;]*)\\b");return o?o[1]:void 0};function fromCookie(e){if("cookie"===e.in)return getCookie(e.name)}export class AuthPanel extends Component{constructor(){super(...arguments),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:{activeScheme:0}}),Object.defineProperty(this,"handleSchemeChange",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.setState({activeScheme:e.idx}),toSessionStorage("securityRequirementName",e.value)}})}static getDerivedStateFromProps(e){const o=e.operation.security.map((e=>e.schemes.map((e=>e.id)).join(" and "))),t=fromSessionStorage("securityRequirementName"),i=o.findIndex((e=>e===t));return{activeScheme:i<0?0:i}}render(){const{securityDefaults:e}=this.props,{activeScheme:o}=this.state,t=this.props.operation.security,i=t.map((e=>e.schemes.map((e=>e.id)).join(" and "))).filter(Boolean).map(((e,o)=>({value:e,idx:o})));return 0===i.length?_jsx(Error,{message:"Cannot find security schema in the definition"},void 0):_jsxs(_Fragment,{children:[_jsxs(FormWrapper,{children:[i.length>1&&_jsxs(FormControl,{children:[_jsx(FormLabel,{children:" Security scheme: "},void 0),_jsx(Dropdown,{variant:"dark",fullWidth:!0,options:i,value:i[o].value,onChange:this.handleSchemeChange},void 0)]},void 0)||null,t[o].schemes.map((o=>{var t,i,r,s,a,
|
|
1
|
+
import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{Component,Fragment}from"react";import{fromSessionStorage,getSecurityDetailsOptions,toSessionStorage,escapeFormId}from"../../utils";import{FormDropdown,FormTextField}from"../common/TextField";import{FormControl,FormLabel,FormWrapper}from"../common/form";import{l}from"../../redoc-lib/src/services/Labels";import{Dropdown}from"../common/Dropdown";import{OpenIDConnect,Error}from"./OpenIDConnect";import{OAuth2Flow}from"./OAuth2Flow";import OAuth2TokenInput from"./OAuth2TokenInput";export function requiredValidator(e){if(!e)return"Field is required"}const getCookie=function(e){const o=document.cookie.match("\\b"+e+"=([^;]*)\\b");return o?o[1]:void 0};function fromCookie(e){if("cookie"===e.in)return getCookie(e.name)}export class AuthPanel extends Component{constructor(){super(...arguments),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:{activeScheme:0}}),Object.defineProperty(this,"handleSchemeChange",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.setState({activeScheme:e.idx}),toSessionStorage("securityRequirementName",e.value)}})}static getDerivedStateFromProps(e){const o=e.operation.security.map((e=>e.schemes.map((e=>e.id)).join(" and "))),t=fromSessionStorage("securityRequirementName"),i=o.findIndex((e=>e===t));return{activeScheme:i<0?0:i}}render(){const{securityDefaults:e}=this.props,{activeScheme:o}=this.state,t=this.props.operation.security,i=t.map((e=>e.schemes.map((e=>e.id)).join(" and "))).filter(Boolean).map(((e,o)=>({value:e,idx:o})));return 0===i.length?_jsx(Error,{message:"Cannot find security schema in the definition"},void 0):_jsxs(_Fragment,{children:[_jsxs(FormWrapper,{children:[i.length>1&&_jsxs(FormControl,{children:[_jsx(FormLabel,{children:" Security scheme: "},void 0),_jsx(Dropdown,{variant:"dark",fullWidth:!0,options:i,value:i[o].value,onChange:this.handleSchemeChange},void 0)]},void 0)||null,t[o].schemes.map((o=>{var t,i,r,s,n,a,d;const u=escapeFormId(o.id);if("apiKey"===o.type){const t=getSecurityDetailsOptions(u,""),i={field:`auth.${u}`,fullWidth:!0,initialValue:fromCookie(o)||fromSessionStorage(`auth.${u}`)||(null==e?void 0:e[u]),initValue:fromCookie(o)||fromSessionStorage(`auth.${u}`)||(null==e?void 0:e[u]),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return _jsxs(FormControl,{children:[_jsxs(FormLabel,{children:[" ",o.name,": "]},void 0),t?_jsx(FormDropdown,Object.assign({},i,{options:t}),void 0):_jsx(FormTextField,Object.assign({},i,{type:"password","data-cy":"apiKey-auth-password"}),void 0)]},u)}if("http"===o.type){if("basic"===o.scheme){const o=getSecurityDetailsOptions(u,"username"),s={field:`auth.${u}.username`,fullWidth:!0,initialValue:fromSessionStorage(`auth.${u}.username`)||(null===(t=null==e?void 0:e[u])||void 0===t?void 0:t.username),initValue:fromSessionStorage(`auth.${u}.username`)||(null===(i=null==e?void 0:e[u])||void 0===i?void 0:i.username),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return _jsxs(Fragment,{children:[_jsxs(FormControl,{children:[_jsxs(FormLabel,{children:[" ",l("tryItAuthBasicUsername"),": "]},void 0),o?_jsx(FormDropdown,Object.assign({},s,{options:o}),void 0):_jsx(FormTextField,Object.assign({},s),void 0)]},void 0),_jsxs(FormControl,{children:[_jsxs(FormLabel,{children:[" ",l("tryItAuthBasicPassword"),": "]},void 0),_jsx(FormTextField,{type:"password","data-cy":"http-auth-password",fullWidth:!0,field:`auth.${u}.password`,initialValue:fromSessionStorage(`auth.${u}.password`)||(null===(r=null==e?void 0:e[u])||void 0===r?void 0:r.password)||"",validateOnBlur:!0,validateOnChange:!0},void 0)]},void 0)]},u)}if("bearer"===o.scheme){const o=getSecurityDetailsOptions(u,""),t={field:`auth.${u}`,fullWidth:!0,initialValue:fromSessionStorage(`auth.${u}`)||(null==e?void 0:e[u]),initValue:fromSessionStorage(`auth.${u}`)||(null==e?void 0:e[u]),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return _jsx(Fragment,{children:_jsxs(FormControl,{children:[_jsx(FormLabel,{children:" Bearer Token: "},void 0),o?_jsx(FormDropdown,Object.assign({},t,{options:o}),void 0):_jsx(FormTextField,Object.assign({},t,{type:"password",placeholder:"(without 'Bearer')"}),void 0)]},void 0)},u)}}else{if("oauth2"===o.type&&o.flows&&o.flows.clientCredentials)return _jsx(OAuth2TokenInput,{flow:o.flows.clientCredentials,server:this.props.activeServer,authCorsProxyUrl:this.props.authCorsProxyUrl,id:u,form:this.props.form,formApi:this.props.formApi,clientId:o.flows.clientCredentials["x-defaultClientId"]||o["x-defaultClientId"],defaultValues:null==e?void 0:e[u]},u);if("oauth2"===o.type&&o.flows&&o.flows.implicit)return _jsx(OAuth2Flow,{authorizationUrl:o.flows.implicit.authorizationUrl,authCorsProxyUrl:this.props.authCorsProxyUrl,scopes:Object.keys((null===(n=null===(s=null==o?void 0:o.flows)||void 0===s?void 0:s.implicit)||void 0===n?void 0:n.scopes)||{}),server:this.props.activeServer,id:u,form:this.props.form,formApi:this.props.formApi,clientId:o.flows.implicit["x-defaultClientId"]||o["x-defaultClientId"],flow:"implicit",defaultValues:null==e?void 0:e[u]},u);if("oauth2"===o.type&&o.flows&&o.flows.authorizationCode)return _jsx(OAuth2Flow,{authorizationUrl:o.flows.authorizationCode.authorizationUrl,tokenUrl:o.flows.authorizationCode.tokenUrl,authCorsProxyUrl:this.props.authCorsProxyUrl,scopes:Object.keys((null===(a=o.flows.authorizationCode)||void 0===a?void 0:a.scopes)||{}),server:this.props.activeServer,id:u,form:this.props.form,formApi:this.props.formApi,clientId:o.flows.authorizationCode["x-defaultClientId"]||o["x-defaultClientId"],flow:"authorizationCode",tokenEndpointAuthMethod:o.flows.authorizationCode["x-tokenEndpointAuthMethod"],usePkce:o.flows.authorizationCode["x-usePkce"],defaultValues:null==e?void 0:e[u]},u);if("oauth2"===o.type){let o=fromSessionStorage(`auth.${u}.token`)||JSON.stringify(null===(d=null==e?void 0:e[u])||void 0===d?void 0:d.token);return o=o?JSON.parse(o):{},_jsxs(Fragment,{children:[_jsxs(FormControl,{children:[_jsx(FormLabel,{children:" Access Token Type: "},void 0),_jsx(FormTextField,{fullWidth:!0,field:`auth.${u}.token.token_type`,initialValue:o.token_type||"Bearer"},void 0)]},void 0),_jsxs(FormControl,{children:[_jsx(FormLabel,{children:" Access Token: "},void 0),_jsx(FormTextField,{type:"password",fullWidth:!0,field:`auth.${u}.token.access_token`,validate:requiredValidator,initialValue:o.access_token,validateOnBlur:!0,validateOnChange:!0},void 0)]},void 0)]},u)}if("openIdConnect"===o.type)return _jsx(OpenIDConnect,{server:this.props.activeServer,authCorsProxyUrl:this.props.authCorsProxyUrl,id:u,form:this.props.form,formApi:this.props.formApi,scheme:o,clientId:o["x-defaultClientId"],defaultValues:null==e?void 0:e[u]},u);if("none"===o.type)return _jsx("span",{children:"None"},u)}}))]},void 0),_jsxs("small",{children:[_jsx("strong",{children:"Note"},void 0),": Your credentials will be saved until the end of the browser session"]},void 0)]},void 0)}}
|
|
2
2
|
//# sourceMappingURL=AuthPanel.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__decorate,__rest}from"tslib";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{Form,useField}from"informed";import{observer}from"mobx-react";import Swagger from"swagger-client";import{Component}from"react";import{unescapeFormId}from"../../utils";import{JsonPointer}from"../../redoc-lib";import{RenderHook}from"../../redoc-lib/src/components/RenderHook";import{l}from"../../redoc-lib/src/services/Labels";import{CodeHeader,Accordion}from"../Panel";import{OAuth2}from"../../services/OAuth2";import{isFileUploadMime}from"../common/FileUpload/helper";import{OperationParameters}from"../OperationParameters";import{useDimensions}from"../../hooks";import{AnalyticsEventType}from"../../events";import{getFileNameFromHeaders,getParameters,makeRequestInterceptor,unescapeQueryParams,updateStorage}from"./utils";import{AuthPanel,requiredValidator}from"./AuthPanel";import{ConsoleBadges}from"./ConsoleBadges";import{RequestBody}from"./RequestBody";import{ResponsePanel}from"./ResponsePanel";import{ActionPanel}from"./ActionPanel";import{ServersDropdown}from"./ServersDropdown";import{TryItPanel}from"./TryItPanel";import{CloseButton,ConsoleBody,ConsoleWrap}from"./styled";function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}const flexColumn={flex:1,display:"flex",flexDirection:"column"};let Console=class extends Component{constructor(e){super(e),Object.defineProperty(this,"formApi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"setFormApi",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.formApi=e;const t=e.getState(),{values:o}=t,s=__rest(t,["values"]);setTimeout((()=>{const e=Object.assign(Object.assign({},s),{values:Object.assign(Object.assign({},o),{query:unescapeQueryParams(o.query||{}),path:unescapeQueryParams(o.path||{})})});this.setState({form:e})}),0)}}),Object.defineProperty(this,"handleValueChange",{enumerable:!0,configurable:!0,writable:!0,value:e=>{const t=Object.assign(Object.assign({},e),{query:unescapeQueryParams(e.query||{}),path:unescapeQueryParams(e.path||{})});this.setState((e=>({form:Object.assign(Object.assign({},e.form),{values:t})})),(()=>{updateStorage(this.state.form),this.props.operation.setRequestValues(e)}))}}),Object.defineProperty(this,"handleTabChange",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.setState({activeTab:e})}}),Object.defineProperty(this,"handleServerChange",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.setState({server:e}),this.props.operation.setActiveServer(e)}}),Object.defineProperty(this,"handleExecute",{enumerable:!0,configurable:!0,writable:!0,value:async()=>{var e,t,o,s,r,a,n,i,l,c;const{store:d,operation:p,onResponse:u}=this.props;null===(e=this.formApi)||void 0===e||e.submitForm();const{invalid:h}=this.state.form||(null===(t=this.formApi)||void 0===t?void 0:t.getState());if(h)return this.setState({shaking:!0}),setTimeout((()=>this.setState({shaking:!1})),1e3),void(null===(s=null===(o=null==d?void 0:d.options.events)||void 0===o?void 0:o.tryItSent)||void 0===s||s.call(o,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"ValidationFailed",operationId:p.operationId,operationPath:p.path,operationHttpVerb:p.httpVerb,operationSummary:p.description}));const{values:m}=this.state.form||(null===(r=this.formApi)||void 0===r?void 0:r.getState()),{servers:v,requestBody:g}=this.props.operation,y=g&&g.content&&g.content.active&&g.content.active.name||"";let b=m.body;if(/json/.test(y))try{b=JSON.parse(b)}catch(e){console.error(e)}this.setState({loading:!0});const f=this.state.resolvedRawSpec,j=(p.httpVerb||"").toLowerCase();if(!v)throw console.error("Servers are not specified in your OpenAPI file. You can't use Try It Out console without specifying servers. If you use OpenAPI 2, make sure you configured host and basepath"),new Error("Servers are not specified");const O=v.find((e=>this.state.server.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url))),P=Date.now();let S,x=m.auth;if(m.auth){const e=Object.keys(m.auth)[0],t=unescapeFormId(e);S=Object.assign(Object.assign({},f),{components:Object.assign(Object.assign({},null==f?void 0:f.components),{securitySchemes:Object.assign(Object.assign({},null==f?void 0:f.components.securitySchemes),{[t]:Object.assign(Object.assign({},null==f?void 0:f.components.securitySchemes[t]),{type:"openIdConnect"===(null==f?void 0:f.components.securitySchemes[t].type)?"oauth2":null==f?void 0:f.components.securitySchemes[t].type})})})});const o="cookie"===(null==f?void 0:f.components.securitySchemes[t].in)?"Cookie":t,s="cookie"===(null==f?void 0:f.components.securitySchemes[t].in)?`${null==f?void 0:f.components.securitySchemes[t].name}=${x[e]}`:x[e];x=Object.assign(Object.assign({},x),{[o]:s})}else S=Object.assign({},f);S.servers=v;const C=d.options.corsProxyUrl;C&&v.length&&(S.servers=v.map((e=>Object.assign(Object.assign({},e),{url:C+normalizeUrlProtocol(e.url)}))),S.paths=Object.assign(Object.assign({},S.paths),{[p.path]:Object.assign(Object.assign({},S.paths[p.path]),{[j]:Object.assign(Object.assign({},S.paths[p.path][j]),{servers:void 0}),servers:void 0})}));const _=(null===(n=null===(a=null==g?void 0:g.content)||void 0===a?void 0:a.active)||void 0===n?void 0:n.name)||null;if(_&&b&&isFileUploadMime(_)){const e=Object.values(b);b=e.length>1?e:e[0]}const A={server:C?C+normalizeUrlProtocol(O.url):O.url,serverVariables:this.state.server.variables,spec:S,pathName:p.path,method:p.httpVerb,parameters:Object.assign(Object.assign(Object.assign(Object.assign({},m.path),m.query),m.header),m.cookie),securities:{authorized:x},requestBody:b,requestContentType:_,responseContentType:(null===(i=m.header)||void 0===i?void 0:i.Accept)||null,requestInterceptor:makeRequestInterceptor(d.options,p,x)};try{const e=await Swagger.execute(A),t=null==e?void 0:e.data;t instanceof Blob&&(isFileUploadMime(t.type)&&(e.fileInfo={rawData:t,fileName:getFileNameFromHeaders(e.headers)}),e.data=await t.text()),null==u||u({request:A,response:e}),this.setState({response:e,error:void 0})}catch(e){e&&e.response&&e.response.data instanceof Blob&&(e.response.data=await e.response.data.text(),null==u||u({request:A,response:e.response})),this.setState({response:void 0,error:e})}finally{this.setState({loading:!1,activeTab:1,time:Date.now()-P}),null===(c=null===(l=null==d?void 0:d.options.events)||void 0===l?void 0:l.tryItSent)||void 0===c||c.call(l,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"Sent",operationId:p.operationId,operationPath:p.path,operationHttpVerb:p.httpVerb,operationSummary:p.description})}}}),this.state={form:{values:{path:getParameters(e.operation.parameters,"path"),cookie:getParameters(e.operation.parameters,"cookie"),header:getParameters(e.operation.parameters,"header"),query:getParameters(e.operation.parameters,"query")}},shaking:!1,loading:!1,activeTab:0,server:{}}}async componentDidMount(){var e;const{store:t,operation:o}=this.props,s=await t.dereferenceSpecForTryIt(o);this.setState({resolvedRawSpec:s}),null===(e=this.formApi)||void 0===e||e.setValues({})}componentDidUpdate(e){e.operation!==this.props.operation&&this.setState({response:void 0,error:void 0,activeTab:0})}render(){const{operation:e,className:t,rootElement:o}=this.props,{shaking:s,activeTab:r,form:a,response:n,loading:i,error:l}=this.state,c=!(!n&&!l);return _jsxs(ConsoleWrapHook,Object.assign({shaking:s,className:t,rootElement:o},{children:[_jsxs(CodeHeader,{children:[_jsx(ConsoleBadges,{active:r,hasResponse:c,onChange:this.handleTabChange},void 0),this.props.onClose&&_jsx(CloseButton,Object.assign({onClick:this.props.onClose},{children:" ✕ "}),void 0)]},void 0),_jsx(ConsoleBody,Object.assign({hidden:0!==r,"data-cy":"console-request-body"},{children:this.renderRequest()}),void 0),_jsx(ConsoleBody,Object.assign({hidden:1!==r,"data-cy":"console-response-body"},{children:this.renderResponse()}),void 0),_jsx(ActionPanel,{hasResponse:c,params:a.values,operation:e,loading:i,execute:this.handleExecute},void 0)]}),void 0)}renderRequest(){var e;const{operation:t,store:o,properties:s,securityDefaults:r}=this.props,{form:a,resolvedRawSpec:n,server:i}=this.state,c=a.errors||{},d=c.path||c.cookie||c.header||c.query,p=n&&JsonPointer.get(n,t.pointer);let u=a.values&&a.values.auth&&Object.keys(a.values.auth)[0];u&&a.values.auth[u]||(u=void 0),!u||void 0===a.values.auth[u].token&&void 0===a.values.auth[u].client_id&&void 0===a.values.auth[u].client_secret||a.values.auth[u].token&&a.values.auth[u].token.access_token||(u=void 0),u&&null!=a.values.auth[u].username&&(a.values.auth[u].username&&a.values.auth[u].password||(u=void 0));const h=t.parameters||[],m=null===(e=null==o?void 0:o.options.hooks)||void 0===e?void 0:e.ReplaceTryItSecurityPanel;return!n&&_jsx(_Fragment,{children:"Loading..."},void 0)||_jsxs(Form,Object.assign({onValueChange:this.handleValueChange,getApi:this.setFormApi,style:Object.assign(Object.assign({},flexColumn),{margin:0})},{children:[_jsx(ServersDropdown,{operation:t,onChange:this.handleServerChange},void 0),_jsxs(Accordion,Object.assign({initialActiveIdx:t.security.length&&u?1:0},{children:[t.security.length&&this.formApi&&_jsx(TryItPanel,Object.assign({header:l("tryItAuth"),"data-cy":"security-trigger",renderChildrenHidden:!0,error:!u&&!!c.auth,success:!!u},{children:m?_jsx(AuthPanelHook,Object.assign({field:"auth",validate:requiredValidator},{children:e=>_jsx(RenderHook,{Hook:m,props:{server:i,operation:t,onChange:e,OAuth2:OAuth2}},void 0)}),void 0):_jsx(AuthPanel,{formApi:this.formApi,form:a,operation:t,activeServer:i.url,authCorsProxyUrl:o.options.authCorsProxyUrl,securityDefaults:r},void 0)}),void 0)||null,t.requestBody&&this.formApi&&_jsx(TryItPanel,Object.assign({header:l("tryItBody"),"data-cy":"body-trigger",renderChildrenHidden:!0,error:!!c.body},{children:_jsx(RequestBody,{validate:allowBodyErrors,formApi:this.formApi,body:t.requestBody,id:t.id,resolvedBody:null==p?void 0:p.requestBody,properties:s},void 0)}),void 0)||null,h.length&&_jsx(TryItPanel,Object.assign({header:l("tryItParameters"),"data-cy":"parameters-trigger",error:d,renderChildrenHidden:!0},{children:_jsx(OperationParameters,{operation:t,values:a.values,errors:a.errors||{}},void 0)}),void 0)||null]}),void 0)]}),void 0)}renderResponse(){const{response:e,error:t,time:o}=this.state;return _jsx(ResponsePanel,{response:e,error:t,time:o},void 0)}};Console=__decorate([observer],Console);export{Console};function allowBodyErrors(){}function ConsoleWrapHook(e){const{shaking:t,className:o,children:s,rootElement:r}=e,[a]=useDimensions(r);return _jsx(ConsoleWrap,Object.assign({shaking:t,className:o,"data-cy":"console",fullWidth:null==a?void 0:a.width},{children:s}),void 0)}function AuthPanelHook(e){const{fieldApi:t,render:o,userProps:s}=useField(Object.assign({},e)),{setValue:r}=t,{children:a}=s;return o(_jsx(_Fragment,{children:a(r)},void 0))}
|
|
1
|
+
import{__decorate,__rest}from"tslib";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{Form,useField}from"informed";import{observer}from"mobx-react";import Swagger from"swagger-client";import{Component}from"react";import{unescapeFormId}from"../../utils";import{JsonPointer}from"../../redoc-lib";import{RenderHook}from"../../redoc-lib/src/components/RenderHook";import{l}from"../../redoc-lib/src/services/Labels";import{CodeHeader,Accordion}from"../Panel";import{OAuth2}from"../../services/OAuth2";import{isFileUploadMime}from"../common/FileUpload/helper";import{OperationParameters}from"../OperationParameters";import{useDimensions}from"../../hooks";import{AnalyticsEventType}from"../../events";import{isEmptyObject}from"../../services/utils";import{getFileNameFromHeaders,getParameters,makeRequestInterceptor,unescapeQueryParams,updateStorage}from"./utils";import{AuthPanel,requiredValidator}from"./AuthPanel";import{ConsoleBadges}from"./ConsoleBadges";import{RequestBody}from"./RequestBody";import{ResponsePanel}from"./ResponsePanel";import{ActionPanel}from"./ActionPanel";import{ServersDropdown}from"./ServersDropdown";import{TryItPanel}from"./TryItPanel";import{CloseButton,ConsoleBody,ConsoleWrap}from"./styled";function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}const flexColumn={flex:1,display:"flex",flexDirection:"column"};let Console=class extends Component{constructor(e){super(e),Object.defineProperty(this,"formApi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"setFormApi",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.formApi=e;const t=e.getState(),{values:o}=t,s=__rest(t,["values"]);setTimeout((()=>{const e=Object.assign(Object.assign({},s),{values:Object.assign(Object.assign({},o),{query:unescapeQueryParams(o.query||{}),path:unescapeQueryParams(o.path||{})})});this.setState({form:e})}),0)}}),Object.defineProperty(this,"handleValueChange",{enumerable:!0,configurable:!0,writable:!0,value:e=>{const t=Object.assign(Object.assign({},e),{query:unescapeQueryParams(e.query||{}),path:unescapeQueryParams(e.path||{})});this.setState((e=>({form:Object.assign(Object.assign({},e.form),{values:t})})),(()=>{updateStorage(this.state.form),this.props.operation.setRequestValues(e)}))}}),Object.defineProperty(this,"handleTabChange",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.setState({activeTab:e})}}),Object.defineProperty(this,"handleServerChange",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.setState({server:e}),this.props.operation.setActiveServer(e)}}),Object.defineProperty(this,"handleExecute",{enumerable:!0,configurable:!0,writable:!0,value:async()=>{var e,t,o,s,r,a,i,n,l,c;const{store:d,operation:p,onResponse:u}=this.props;null===(e=this.formApi)||void 0===e||e.submitForm();const{invalid:h}=(null===(t=this.formApi)||void 0===t?void 0:t.getState())||this.state.form;if(h)return this.setState({shaking:!0}),setTimeout((()=>this.setState({shaking:!1})),1e3),void(null===(s=null===(o=null==d?void 0:d.options.events)||void 0===o?void 0:o.tryItSent)||void 0===s||s.call(o,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"ValidationFailed",operationId:p.operationId,operationPath:p.path,operationHttpVerb:p.httpVerb,operationSummary:p.description}));const{values:m}=(null===(r=this.formApi)||void 0===r?void 0:r.getState())||this.state.form,{servers:v,requestBody:g}=this.props.operation,y=g&&g.content&&g.content.active&&g.content.active.name||"";let b=m.body;if(/json/.test(y))try{b=JSON.parse(b)}catch(e){console.error(e)}this.setState({loading:!0});const f=this.state.resolvedRawSpec,j=(p.httpVerb||"").toLowerCase();if(!v)throw console.error("Servers are not specified in your OpenAPI file. You can't use Try It Out console without specifying servers. If you use OpenAPI 2, make sure you configured host and basepath"),new Error("Servers are not specified");const O=v.find((e=>this.state.server.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url))),P=Date.now();let S,x=m.auth;if(!isEmptyObject(m.auth)&&m.auth){const e=Object.keys(m.auth)[0],t=unescapeFormId(e);S=Object.assign(Object.assign({},f),{components:Object.assign(Object.assign({},null==f?void 0:f.components),{securitySchemes:Object.assign(Object.assign({},null==f?void 0:f.components.securitySchemes),{[t]:Object.assign(Object.assign({},null==f?void 0:f.components.securitySchemes[t]),{type:"openIdConnect"===(null==f?void 0:f.components.securitySchemes[t].type)?"oauth2":null==f?void 0:f.components.securitySchemes[t].type})})})});const o="cookie"===(null==f?void 0:f.components.securitySchemes[t].in)?"Cookie":t,s="cookie"===(null==f?void 0:f.components.securitySchemes[t].in)?`${null==f?void 0:f.components.securitySchemes[t].name}=${x[e]}`:x[e];x=Object.assign(Object.assign({},x),{[o]:s})}else S=Object.assign({},f);S.servers=v;const C=d.options.corsProxyUrl;C&&v.length&&(S.servers=v.map((e=>Object.assign(Object.assign({},e),{url:C+normalizeUrlProtocol(e.url)}))),S.paths=Object.assign(Object.assign({},S.paths),{[p.path]:Object.assign(Object.assign({},S.paths[p.path]),{[j]:Object.assign(Object.assign({},S.paths[p.path][j]),{servers:void 0}),servers:void 0})}));const _=(null===(i=null===(a=null==g?void 0:g.content)||void 0===a?void 0:a.active)||void 0===i?void 0:i.name)||null;if(_&&b&&isFileUploadMime(_)){const e=Object.values(b);b=e.length>1?e:e[0]}const A={server:C?C+normalizeUrlProtocol(O.url):O.url,serverVariables:this.state.server.variables,spec:S,pathName:p.path,method:p.httpVerb,parameters:Object.assign(Object.assign(Object.assign(Object.assign({},m.path),m.query),m.header),m.cookie),securities:{authorized:x},requestBody:b,requestContentType:_,responseContentType:(null===(n=m.header)||void 0===n?void 0:n.Accept)||null,requestInterceptor:makeRequestInterceptor(d.options,p,x)};try{const e=await Swagger.execute(A),t=null==e?void 0:e.data;t instanceof Blob&&(isFileUploadMime(t.type)&&(e.fileInfo={rawData:t,fileName:getFileNameFromHeaders(e.headers)}),e.data=await t.text()),null==u||u({request:A,response:e}),this.setState({response:e,error:void 0})}catch(e){e&&e.response&&e.response.data instanceof Blob&&(e.response.data=await e.response.data.text(),null==u||u({request:A,response:e.response})),this.setState({response:void 0,error:e})}finally{this.setState({loading:!1,activeTab:1,time:Date.now()-P}),null===(c=null===(l=null==d?void 0:d.options.events)||void 0===l?void 0:l.tryItSent)||void 0===c||c.call(l,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"Sent",operationId:p.operationId,operationPath:p.path,operationHttpVerb:p.httpVerb,operationSummary:p.description})}}}),this.state={form:{values:{path:getParameters(e.operation.parameters,"path"),cookie:getParameters(e.operation.parameters,"cookie"),header:getParameters(e.operation.parameters,"header"),query:getParameters(e.operation.parameters,"query")}},shaking:!1,loading:!1,activeTab:0,server:{}}}async componentDidMount(){var e;const{store:t,operation:o}=this.props,s=await t.dereferenceSpecForTryIt(o);this.setState({resolvedRawSpec:s}),null===(e=this.formApi)||void 0===e||e.setValues({})}componentDidUpdate(e){e.operation!==this.props.operation&&this.setState({response:void 0,error:void 0,activeTab:0})}render(){const{operation:e,className:t,rootElement:o}=this.props,{shaking:s,activeTab:r,form:a,response:i,loading:n,error:l}=this.state,c=!(!i&&!l);return _jsxs(ConsoleWrapHook,Object.assign({shaking:s,className:t,rootElement:o},{children:[_jsxs(CodeHeader,{children:[_jsx(ConsoleBadges,{active:r,hasResponse:c,onChange:this.handleTabChange},void 0),this.props.onClose&&_jsx(CloseButton,Object.assign({onClick:this.props.onClose},{children:" ✕ "}),void 0)]},void 0),_jsx(ConsoleBody,Object.assign({hidden:0!==r,"data-cy":"console-request-body"},{children:this.renderRequest()}),void 0),_jsx(ConsoleBody,Object.assign({hidden:1!==r,"data-cy":"console-response-body"},{children:this.renderResponse()}),void 0),_jsx(ActionPanel,{hasResponse:c,params:a.values,operation:e,loading:n,execute:this.handleExecute},void 0)]}),void 0)}renderRequest(){var e;const{operation:t,store:o,properties:s,securityDefaults:r}=this.props,{form:a,resolvedRawSpec:i,server:n}=this.state,c=a.errors||{},d=c.path||c.cookie||c.header||c.query,p=i&&JsonPointer.get(i,t.pointer);let u=a.values&&a.values.auth&&Object.keys(a.values.auth)[0];u&&a.values.auth[u]||(u=void 0),!u||void 0===a.values.auth[u].token&&void 0===a.values.auth[u].client_id&&void 0===a.values.auth[u].client_secret||a.values.auth[u].token&&a.values.auth[u].token.access_token||(u=void 0),u&&null!=a.values.auth[u].username&&(a.values.auth[u].username&&a.values.auth[u].password||(u=void 0));const h=t.parameters||[],m=null===(e=null==o?void 0:o.options.hooks)||void 0===e?void 0:e.ReplaceTryItSecurityPanel;return!i&&_jsx(_Fragment,{children:"Loading..."},void 0)||_jsxs(Form,Object.assign({onValueChange:this.handleValueChange,getApi:this.setFormApi,style:Object.assign(Object.assign({},flexColumn),{margin:0})},{children:[_jsx(ServersDropdown,{operation:t,onChange:this.handleServerChange},void 0),_jsxs(Accordion,Object.assign({initialActiveIdx:t.security.length&&u?1:0},{children:[t.security.length&&this.formApi&&_jsx(TryItPanel,Object.assign({header:l("tryItAuth"),"data-cy":"security-trigger",renderChildrenHidden:!0,error:!u&&!!c.auth,success:!!u},{children:m?_jsx(AuthPanelHook,Object.assign({field:"auth",validate:requiredValidator},{children:e=>_jsx(RenderHook,{Hook:m,props:{server:n,operation:t,onChange:e,OAuth2:OAuth2}},void 0)}),void 0):_jsx(AuthPanel,{formApi:this.formApi,form:a,operation:t,activeServer:n.url,authCorsProxyUrl:o.options.authCorsProxyUrl,securityDefaults:r},void 0)}),void 0)||null,t.requestBody&&this.formApi&&_jsx(TryItPanel,Object.assign({header:l("tryItBody"),"data-cy":"body-trigger",renderChildrenHidden:!0,error:!!c.body},{children:_jsx(RequestBody,{validate:allowBodyErrors,formApi:this.formApi,body:t.requestBody,id:t.id,resolvedBody:null==p?void 0:p.requestBody,properties:s},void 0)}),void 0)||null,h.length&&_jsx(TryItPanel,Object.assign({header:l("tryItParameters"),"data-cy":"parameters-trigger",error:d,renderChildrenHidden:!0},{children:_jsx(OperationParameters,{operation:t,values:a.values,errors:a.errors||{}},void 0)}),void 0)||null]}),void 0)]}),void 0)}renderResponse(){const{response:e,error:t,time:o}=this.state;return _jsx(ResponsePanel,{response:e,error:t,time:o},void 0)}};Console=__decorate([observer],Console);export{Console};function allowBodyErrors(){}function ConsoleWrapHook(e){const{shaking:t,className:o,children:s,rootElement:r}=e,[a]=useDimensions(r);return _jsx(ConsoleWrap,Object.assign({shaking:t,className:o,"data-cy":"console",fullWidth:null==a?void 0:a.width},{children:s}),void 0)}function AuthPanelHook(e){const{fieldApi:t,render:o,userProps:s}=useField(Object.assign({},e)),{setValue:r}=t,{children:a}=s;return o(_jsx(_Fragment,{children:a(r)},void 0))}
|
|
2
2
|
//# sourceMappingURL=Console.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{Fragment,useState}from"react";import styled from"../../styled-components";import{useStore}from"../StoreBuilder";import{Markdown,StyledMarkdownBlock}from"../Markdown";import{titleize}from"../../utils";import{OAuthFlow}from"../SecuritySchemes/SecuritySchemes";import{l}from"../../services/Labels";import{ContentPanel}from"../../../../components/Panel";import{SecurityRequirementPanelDescription}from"./SecurityRequirementPanelDescription";import{SecurityRequirementElement}from"./SecurityRequirementElement";import{RequiredScopesRow}from"./RequiredScopesRow";export const AUTH_TYPES={oauth2:"OAuth2",apiKey:"API Key",http:"HTTP",openIdConnect:"OpenID Connect"};function getRequiredScopes(e,t){const i=[];let o=t.length;for(;o--;){const r=t[o];let n=r.schemes.length;for(;n--;){const t=r.schemes[n];t.id===e&&i.push(...t.scopes)}}return Array.from(new Set(i))}export const SecurityRequirements=({securities:e})=>{const t=useStore(),i=null==t?void 0:t.options.showSecuritySchemeType,[o,r]=useState(!1);if(!e.length||(null==t?void 0:t.options.hideSecuritySection))return null;const n=null==t?void 0:t.definition.securitySchemes.schemes,s=null==n?void 0:n.filter((({id:t})=>e.find((e=>e.schemes.find((e=>e.id===t))))));return _jsxs(ContentPanel,Object.assign({header:l("authorizations"),onToggle:e=>r(e),description:!o&&_jsx(SecurityRequirementPanelDescription,{securities:e,showSecuritySchemeType:i},void 0),expanded:o},{children:[o&&s
|
|
1
|
+
import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{Fragment,useState}from"react";import styled from"../../styled-components";import{useStore}from"../StoreBuilder";import{Markdown,StyledMarkdownBlock}from"../Markdown";import{titleize}from"../../utils";import{OAuthFlow}from"../SecuritySchemes/SecuritySchemes";import{l}from"../../services/Labels";import{ContentPanel}from"../../../../components/Panel";import{SecurityRequirementPanelDescription}from"./SecurityRequirementPanelDescription";import{SecurityRequirementElement}from"./SecurityRequirementElement";import{RequiredScopesRow}from"./RequiredScopesRow";export const AUTH_TYPES={oauth2:"OAuth2",apiKey:"API Key",http:"HTTP",openIdConnect:"OpenID Connect"};function getRequiredScopes(e,t){const i=[];let o=t.length;for(;o--;){const r=t[o];let n=r.schemes.length;for(;n--;){const t=r.schemes[n];t.id===e&&i.push(...t.scopes)}}return Array.from(new Set(i))}export const SecurityRequirements=({securities:e})=>{const t=useStore(),i=null==t?void 0:t.options.showSecuritySchemeType,[o,r]=useState(!1);if(!e.length||(null==t?void 0:t.options.hideSecuritySection))return null;const n=null==t?void 0:t.definition.securitySchemes.schemes,s=null==n?void 0:n.filter((({id:t})=>e.find((e=>e.schemes.find((e=>e.id===t))))));return _jsxs(ContentPanel,Object.assign({header:l("authorizations"),onToggle:e=>r(e),description:!o&&_jsx(SecurityRequirementPanelDescription,{securities:e,showSecuritySchemeType:i},void 0),expanded:o},{children:[o&&s?_jsx(SecurityRequirementBlock,{children:e.map(((t,o)=>{let r,n,s="";return e.length>1&&t.schemes.length>1&&(n=0===o?"(":"",s=")"),o!==e.length-1&&(s+=" or",r=_jsx("br",{},void 0)),_jsxs(Fragment,{children:[n,_jsx(SecurityRequirementElement,{security:t,showSecuritySchemeType:i},void 0),s,r]},t.schemes.map((({id:e})=>e)).join(""))}))},void 0):null,o&&s?s.map((t=>{const i=getRequiredScopes(t.id,e),o=_jsx(RequiredScopesRow,{scopes:i},void 0);return _jsxs(SecurityDetails,{children:[_jsxs("h5",{children:[_jsx(LockIcon,{},void 0)," ",AUTH_TYPES[t.type]||t.type,": ",t.id]},void 0),_jsx(Markdown,{source:t.description||""},void 0),_jsx(StyledMarkdownBlock,{children:t.apiKey?_jsxs(_Fragment,{children:[_jsxs(SecurityRow,{children:[_jsxs("b",{children:[titleize(t.apiKey.in||"")," parameter name: "]},void 0),_jsx("code",{children:t.apiKey.name},void 0)]},void 0),o]},void 0):t.http?_jsxs(_Fragment,{children:[_jsxs(SecurityRow,{children:[_jsx("b",{children:"HTTP Authorization Scheme: "},void 0),_jsx("code",{children:t.http.scheme},void 0)]},void 0),_jsx(SecurityRow,{children:"bearer"===t.http.scheme&&t.http.bearerFormat&&_jsxs(_Fragment,{children:[_jsx("b",{children:"Bearer format: "},void 0),_jsx("code",{children:t.http.bearerFormat},void 0)]},void 0)},void 0),o]},void 0):t.openId?_jsxs(_Fragment,{children:[_jsxs(SecurityRow,{children:[_jsx("b",{children:"Connect URL: "},void 0),_jsx("code",{children:_jsx("a",Object.assign({target:"_blank",rel:"noopener noreferrer",href:t.openId.connectUrl},{children:t.openId.connectUrl}),void 0)},void 0)]},void 0),o]},void 0):t.flows?Object.keys(t.flows).map((e=>_jsx(OAuthFlow,{type:e,RequiredScopes:o,flow:t.flows[e]},e))):null},t.id)]},t.id)})):null]}),void 0)};const SecurityDetails=styled.div`
|
|
2
2
|
border-bottom: 1px solid ${({theme:e})=>e.colors.border.light};
|
|
3
3
|
margin-bottom: 1.5em;
|
|
4
4
|
padding-bottom: 0.7em;
|