@redocly/reference-docs 2.30.0 → 2.31.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 +6 -6
- package/bin/cli/commands/redocly-docs-cli.min.js.LICENSE.txt +1 -1
- package/dist/console.redocly-reference-docs.min.js +110 -110
- package/dist/oauth2-redirect.js +1 -1
- package/dist/redocly-reference-docs.min.js +382 -382
- package/lib/components/console/AuthPanel.js +1 -1
- package/lib/components/console/OAuth2Flow.d.ts +1 -0
- package/lib/components/console/OAuth2Flow.js +1 -1
- package/lib/components/console/OAuth2TokenInput.d.ts +1 -0
- package/lib/components/console/OAuth2TokenInput.js +1 -1
- package/lib/components/console/utils.d.ts +6 -0
- package/lib/components/console/utils.js +1 -1
- package/lib/redoc-lib/src/components/SecuritySchemes/helpers.d.ts +4 -0
- package/lib/redoc-lib/src/types/open-api.d.ts +3 -0
- package/lib/redoc-lib/src/utils/openapi.d.ts +3 -2
- package/lib/redoc-lib/src/utils/openapi.js +1 -1
- package/lib/services/OAuth2.d.ts +4 -2
- package/lib/services/OAuth2.js +1 -1
- package/lib-esm/components/console/AuthPanel.js +1 -1
- package/lib-esm/components/console/OAuth2Flow.d.ts +1 -0
- package/lib-esm/components/console/OAuth2Flow.js +1 -1
- package/lib-esm/components/console/OAuth2TokenInput.d.ts +1 -0
- package/lib-esm/components/console/OAuth2TokenInput.js +1 -1
- package/lib-esm/components/console/utils.d.ts +6 -0
- package/lib-esm/components/console/utils.js +1 -1
- package/lib-esm/redoc-lib/src/components/SecuritySchemes/helpers.d.ts +4 -0
- package/lib-esm/redoc-lib/src/types/open-api.d.ts +3 -0
- package/lib-esm/redoc-lib/src/utils/openapi.d.ts +3 -2
- package/lib-esm/redoc-lib/src/utils/openapi.js +1 -1
- package/lib-esm/services/OAuth2.d.ts +4 -2
- package/lib-esm/services/OAuth2.js +1 -1
- 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"),React=(0,tslib_1.__importStar)(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 t=document.cookie.match("\\b"+e+"=([^;]*)\\b");return t?t[1]:void 0};function fromCookie(e){if("cookie"===e.in)return getCookie(e.name)}var AuthPanel=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return Object.defineProperty(t,"state",{enumerable:!0,configurable:!0,writable:!0,value:{activeScheme:0}}),Object.defineProperty(t,"handleSchemeChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){t.setState({activeScheme:e.idx}),(0,utils_1.toSessionStorage)("securityRequirementName",e.value)}}),t}return(0,tslib_1.__extends)(t,e),Object.defineProperty(t,"getDerivedStateFromProps",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=e.operation.security.map((function(e){return e.schemes.map((function(e){return e.id})).join(" and ")})),r=(0,utils_1.fromSessionStorage)("securityRequirementName"),o=t.findIndex((function(e){return e===r}));return{activeScheme:o<0?0:o}}}),Object.defineProperty(t.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this,t=this.props.securityDefaults,r=this.state.activeScheme,o=this.props.operation.security,l=o.map((function(e){return e.schemes.map((function(e){return e.id})).join(" and ")})).map((function(e,t){return{value:e,idx:t}}));return 0===l.length?null:React.createElement(React.Fragment,null,React.createElement(form_1.FormWrapper,null,l.length>1&&React.createElement(form_1.FormControl,null,React.createElement(form_1.FormLabel,null," Security scheme: "),React.createElement(Dropdown_1.Dropdown,{variant:"dark",fullWidth:!0,options:l,value:l[r].value,onChange:this.handleSchemeChange}))||null,o[r].schemes.map((function(r){var o,l,a,i,n,u,s,c=(0,utils_1.escapeFormId)(r.id);if("apiKey"===r.type){var d=(0,utils_1.getSecurityDetailsOptions)(c,""),m={field:"auth."+c,fullWidth:!0,initialValue:fromCookie(r)||(0,utils_1.fromSessionStorage)("auth."+c)||(null==t?void 0:t[c]),initValue:fromCookie(r)||(0,utils_1.fromSessionStorage)("auth."+c)||(null==t?void 0:t[c]),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return React.createElement(form_1.FormControl,{key:c},React.createElement(form_1.FormLabel,null," ",r.name,": "),d?React.createElement(TextField_1.FormDropdown,(0,tslib_1.__assign)({},m,{options:d})):React.createElement(TextField_1.FormTextField,(0,tslib_1.__assign)({},m,{type:"password","data-cy":"apiKey-auth-password"})))}if("http"===r.type){if("basic"===r.scheme){var p=(0,utils_1.getSecurityDetailsOptions)(c,"username");m={field:"auth."+c+".username",fullWidth:!0,initialValue:(0,utils_1.fromSessionStorage)("auth."+c+".username")||(null===(o=null==t?void 0:t[c])||void 0===o?void 0:o.username),initValue:(0,utils_1.fromSessionStorage)("auth."+c+".username")||(null===(l=null==t?void 0:t[c])||void 0===l?void 0:l.username),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return React.createElement(React.Fragment,{key:c},React.createElement(form_1.FormControl,null,React.createElement(form_1.FormLabel,null," ",(0,Labels_1.l)("tryItAuthBasicUsername"),": "),p?React.createElement(TextField_1.FormDropdown,(0,tslib_1.__assign)({},m,{options:p})):React.createElement(TextField_1.FormTextField,(0,tslib_1.__assign)({},m))),React.createElement(form_1.FormControl,null,React.createElement(form_1.FormLabel,null," ",(0,Labels_1.l)("tryItAuthBasicPassword"),": "),React.createElement(TextField_1.FormTextField,{type:"password","data-cy":"http-auth-password",fullWidth:!0,field:"auth."+c+".password",initialValue:(0,utils_1.fromSessionStorage)("auth."+c+".password")||(null===(a=null==t?void 0:t[c])||void 0===a?void 0:a.password)||"",validateOnBlur:!0,validateOnChange:!0})))}if("bearer"===r.scheme){var f=(0,utils_1.getSecurityDetailsOptions)(c,"");m={field:"auth."+c,fullWidth:!0,initialValue:(0,utils_1.fromSessionStorage)("auth."+c)||(null==t?void 0:t[c]),initValue:(0,utils_1.fromSessionStorage)("auth."+c)||(null==t?void 0:t[c]),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return React.createElement(React.Fragment,{key:c},React.createElement(form_1.FormControl,null,React.createElement(form_1.FormLabel,null," Bearer Token: "),f?React.createElement(TextField_1.FormDropdown,(0,tslib_1.__assign)({},m,{options:f})):React.createElement(TextField_1.FormTextField,(0,tslib_1.__assign)({},m,{type:"password",placeholder:"(without 'Bearer')"}))))}}else{if("oauth2"===r.type&&r.flows&&r.flows.clientCredentials)return React.createElement(OAuth2TokenInput_1.default,{key:c,flow:r.flows.clientCredentials,server:e.props.activeServer,authCorsProxyUrl:e.props.authCorsProxyUrl,id:c,form:e.props.form,formApi:e.props.formApi,clientId:r.flows.clientCredentials["x-defaultClientId"]||r["x-defaultClientId"],defaultValues:null==t?void 0:t[c]});if("oauth2"===r.type&&r.flows&&r.flows.implicit)return React.createElement(OAuth2Flow_1.OAuth2Flow,{key:c,authorizationUrl:r.flows.implicit.authorizationUrl,authCorsProxyUrl:e.props.authCorsProxyUrl,scopes:Object.keys((null===(n=null===(i=null==r?void 0:r.flows)||void 0===i?void 0:i.implicit)||void 0===n?void 0:n.scopes)||{}),server:e.props.activeServer,id:c,form:e.props.form,formApi:e.props.formApi,clientId:r.flows.implicit["x-defaultClientId"]||r["x-defaultClientId"],flow:"implicit",defaultValues:null==t?void 0:t[c]});if("oauth2"===r.type&&r.flows&&r.flows.authorizationCode)return React.createElement(OAuth2Flow_1.OAuth2Flow,{key:c,authorizationUrl:r.flows.authorizationCode.authorizationUrl,tokenUrl:r.flows.authorizationCode.tokenUrl,authCorsProxyUrl:e.props.authCorsProxyUrl,scopes:Object.keys((null===(u=r.flows.authorizationCode)||void 0===u?void 0:u.scopes)||{}),server:e.props.activeServer,id:c,form:e.props.form,formApi:e.props.formApi,clientId:r.flows.authorizationCode["x-defaultClientId"]||r["x-defaultClientId"],flow:"authorizationCode",usePkce:r.flows.authorizationCode["x-usePkce"],defaultValues:null==t?void 0:t[c]});if("oauth2"===r.type){var h=(0,utils_1.fromSessionStorage)("auth."+c+".token")||JSON.stringify(null===(s=null==t?void 0:t[c])||void 0===s?void 0:s.token);return h=h?JSON.parse(h):{},React.createElement(React.Fragment,{key:c},React.createElement(form_1.FormControl,null,React.createElement(form_1.FormLabel,null," Access Token Type: "),React.createElement(TextField_1.FormTextField,{fullWidth:!0,field:"auth."+c+".token.token_type",initialValue:h.token_type||"Bearer"})),React.createElement(form_1.FormControl,null,React.createElement(form_1.FormLabel,null," Access Token: "),React.createElement(TextField_1.FormTextField,{type:"password",fullWidth:!0,field:"auth."+c+".token.access_token",validate:requiredValidator,initialValue:h.access_token,validateOnBlur:!0,validateOnChange:!0})))}if("openIdConnect"===r.type)return React.createElement(OpenIDConnect_1.OpenIDConnect,{key:c,server:e.props.activeServer,authCorsProxyUrl:e.props.authCorsProxyUrl,id:c,form:e.props.form,formApi:e.props.formApi,scheme:r,clientId:r["x-defaultClientId"],defaultValues:null==t?void 0:t[c]})}}))),React.createElement("small",null,React.createElement("strong",null,"Note"),": Your credentials will be saved until the end of the browser session"))}}),t}(React.Component);exports.AuthPanel=AuthPanel;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.AuthPanel=exports.requiredValidator=void 0;var tslib_1=require("tslib"),React=(0,tslib_1.__importStar)(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 t=document.cookie.match("\\b"+e+"=([^;]*)\\b");return t?t[1]:void 0};function fromCookie(e){if("cookie"===e.in)return getCookie(e.name)}var AuthPanel=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return Object.defineProperty(t,"state",{enumerable:!0,configurable:!0,writable:!0,value:{activeScheme:0}}),Object.defineProperty(t,"handleSchemeChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){t.setState({activeScheme:e.idx}),(0,utils_1.toSessionStorage)("securityRequirementName",e.value)}}),t}return(0,tslib_1.__extends)(t,e),Object.defineProperty(t,"getDerivedStateFromProps",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=e.operation.security.map((function(e){return e.schemes.map((function(e){return e.id})).join(" and ")})),r=(0,utils_1.fromSessionStorage)("securityRequirementName"),o=t.findIndex((function(e){return e===r}));return{activeScheme:o<0?0:o}}}),Object.defineProperty(t.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this,t=this.props.securityDefaults,r=this.state.activeScheme,o=this.props.operation.security,l=o.map((function(e){return e.schemes.map((function(e){return e.id})).join(" and ")})).map((function(e,t){return{value:e,idx:t}}));return 0===l.length?null:React.createElement(React.Fragment,null,React.createElement(form_1.FormWrapper,null,l.length>1&&React.createElement(form_1.FormControl,null,React.createElement(form_1.FormLabel,null," Security scheme: "),React.createElement(Dropdown_1.Dropdown,{variant:"dark",fullWidth:!0,options:l,value:l[r].value,onChange:this.handleSchemeChange}))||null,o[r].schemes.map((function(r){var o,l,a,i,n,u,s,c=(0,utils_1.escapeFormId)(r.id);if("apiKey"===r.type){var d=(0,utils_1.getSecurityDetailsOptions)(c,""),m={field:"auth."+c,fullWidth:!0,initialValue:fromCookie(r)||(0,utils_1.fromSessionStorage)("auth."+c)||(null==t?void 0:t[c]),initValue:fromCookie(r)||(0,utils_1.fromSessionStorage)("auth."+c)||(null==t?void 0:t[c]),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return React.createElement(form_1.FormControl,{key:c},React.createElement(form_1.FormLabel,null," ",r.name,": "),d?React.createElement(TextField_1.FormDropdown,(0,tslib_1.__assign)({},m,{options:d})):React.createElement(TextField_1.FormTextField,(0,tslib_1.__assign)({},m,{type:"password","data-cy":"apiKey-auth-password"})))}if("http"===r.type){if("basic"===r.scheme){var p=(0,utils_1.getSecurityDetailsOptions)(c,"username");m={field:"auth."+c+".username",fullWidth:!0,initialValue:(0,utils_1.fromSessionStorage)("auth."+c+".username")||(null===(o=null==t?void 0:t[c])||void 0===o?void 0:o.username),initValue:(0,utils_1.fromSessionStorage)("auth."+c+".username")||(null===(l=null==t?void 0:t[c])||void 0===l?void 0:l.username),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return React.createElement(React.Fragment,{key:c},React.createElement(form_1.FormControl,null,React.createElement(form_1.FormLabel,null," ",(0,Labels_1.l)("tryItAuthBasicUsername"),": "),p?React.createElement(TextField_1.FormDropdown,(0,tslib_1.__assign)({},m,{options:p})):React.createElement(TextField_1.FormTextField,(0,tslib_1.__assign)({},m))),React.createElement(form_1.FormControl,null,React.createElement(form_1.FormLabel,null," ",(0,Labels_1.l)("tryItAuthBasicPassword"),": "),React.createElement(TextField_1.FormTextField,{type:"password","data-cy":"http-auth-password",fullWidth:!0,field:"auth."+c+".password",initialValue:(0,utils_1.fromSessionStorage)("auth."+c+".password")||(null===(a=null==t?void 0:t[c])||void 0===a?void 0:a.password)||"",validateOnBlur:!0,validateOnChange:!0})))}if("bearer"===r.scheme){var f=(0,utils_1.getSecurityDetailsOptions)(c,"");m={field:"auth."+c,fullWidth:!0,initialValue:(0,utils_1.fromSessionStorage)("auth."+c)||(null==t?void 0:t[c]),initValue:(0,utils_1.fromSessionStorage)("auth."+c)||(null==t?void 0:t[c]),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return React.createElement(React.Fragment,{key:c},React.createElement(form_1.FormControl,null,React.createElement(form_1.FormLabel,null," Bearer Token: "),f?React.createElement(TextField_1.FormDropdown,(0,tslib_1.__assign)({},m,{options:f})):React.createElement(TextField_1.FormTextField,(0,tslib_1.__assign)({},m,{type:"password",placeholder:"(without 'Bearer')"}))))}}else{if("oauth2"===r.type&&r.flows&&r.flows.clientCredentials)return React.createElement(OAuth2TokenInput_1.default,{key:c,flow:r.flows.clientCredentials,server:e.props.activeServer,authCorsProxyUrl:e.props.authCorsProxyUrl,id:c,form:e.props.form,formApi:e.props.formApi,clientId:r.flows.clientCredentials["x-defaultClientId"]||r["x-defaultClientId"],defaultValues:null==t?void 0:t[c]});if("oauth2"===r.type&&r.flows&&r.flows.implicit)return React.createElement(OAuth2Flow_1.OAuth2Flow,{key:c,authorizationUrl:r.flows.implicit.authorizationUrl,authCorsProxyUrl:e.props.authCorsProxyUrl,scopes:Object.keys((null===(n=null===(i=null==r?void 0:r.flows)||void 0===i?void 0:i.implicit)||void 0===n?void 0:n.scopes)||{}),server:e.props.activeServer,id:c,form:e.props.form,formApi:e.props.formApi,clientId:r.flows.implicit["x-defaultClientId"]||r["x-defaultClientId"],flow:"implicit",defaultValues:null==t?void 0:t[c]});if("oauth2"===r.type&&r.flows&&r.flows.authorizationCode)return React.createElement(OAuth2Flow_1.OAuth2Flow,{key:c,authorizationUrl:r.flows.authorizationCode.authorizationUrl,tokenUrl:r.flows.authorizationCode.tokenUrl,authCorsProxyUrl:e.props.authCorsProxyUrl,scopes:Object.keys((null===(u=r.flows.authorizationCode)||void 0===u?void 0:u.scopes)||{}),server:e.props.activeServer,id:c,form:e.props.form,formApi:e.props.formApi,clientId:r.flows.authorizationCode["x-defaultClientId"]||r["x-defaultClientId"],flow:"authorizationCode",tokenEndpointAuthMethod:r.flows.authorizationCode["x-tokenEndpointAuthMethod"],usePkce:r.flows.authorizationCode["x-usePkce"],defaultValues:null==t?void 0:t[c]});if("oauth2"===r.type){var h=(0,utils_1.fromSessionStorage)("auth."+c+".token")||JSON.stringify(null===(s=null==t?void 0:t[c])||void 0===s?void 0:s.token);return h=h?JSON.parse(h):{},React.createElement(React.Fragment,{key:c},React.createElement(form_1.FormControl,null,React.createElement(form_1.FormLabel,null," Access Token Type: "),React.createElement(TextField_1.FormTextField,{fullWidth:!0,field:"auth."+c+".token.token_type",initialValue:h.token_type||"Bearer"})),React.createElement(form_1.FormControl,null,React.createElement(form_1.FormLabel,null," Access Token: "),React.createElement(TextField_1.FormTextField,{type:"password",fullWidth:!0,field:"auth."+c+".token.access_token",validate:requiredValidator,initialValue:h.access_token,validateOnBlur:!0,validateOnChange:!0})))}if("openIdConnect"===r.type)return React.createElement(OpenIDConnect_1.OpenIDConnect,{key:c,server:e.props.activeServer,authCorsProxyUrl:e.props.authCorsProxyUrl,id:c,form:e.props.form,formApi:e.props.formApi,scheme:r,clientId:r["x-defaultClientId"],defaultValues:null==t?void 0:t[c]})}}))),React.createElement("small",null,React.createElement("strong",null,"Note"),": Your credentials will be saved until the end of the browser session"))}}),t}(React.Component);exports.AuthPanel=AuthPanel;
|
|
2
2
|
//# sourceMappingURL=AuthPanel.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.OAuth2Flow=void 0;var tslib_1=require("tslib"),React=(0,tslib_1.__importStar)(require("react")),redoc_lib_1=require("../../redoc-lib"),LinearProgress_1=require("../common/LinearProgress"),form_1=require("../common/form"),TextField_1=require("../common/TextField"),Checkbox_1=require("../common/Checkbox"),shared_1=require("../shared"),OAuth2_1=require("../../services/OAuth2"),utils_1=require("../../utils"),utils_2=require("../../services/utils"),utils_3=require("./utils"),Scope_1=(0,tslib_1.__importDefault)(require("./Scope"));function requiredValidator(e){if(!e)return"Field is required"}var OAuth2Flow=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return Object.defineProperty(t,"state",{enumerable:!0,configurable:!0,writable:!0,value:{error:null,loading:!1,showPkceOptions:!1}}),Object.defineProperty(t,"clearToken",{enumerable:!0,configurable:!0,writable:!0,value:function(){t.props.formApi.setValue("auth."+t.props.id+".token","")}}),Object.defineProperty(t,"togglePkceOptions",{enumerable:!0,configurable:!0,writable:!0,value:function(){t.setState((function(e){return{showPkceOptions:!e.showPkceOptions}}))}}),Object.defineProperty(t,"handleCodeVerifierChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var r=e.target.value;return(0,tslib_1.__awaiter)(t,void 0,void 0,(function(){var e;return(0,tslib_1.__generator)(this,(function(t){switch(t.label){case 0:return[4,(0,OAuth2_1.deriveCodeChallenge)(r)];case 1:return e=t.sent(),this.setState({codeVerifier:r,validCodeChallenge:e}),[2]}}))}))}}),t}return(0,tslib_1.__extends)(t,e),Object.defineProperty(t.prototype,"values",{get:function(){var e,t;return(null===(t=null===(e=this.props.form.values)||void 0===e?void 0:e.auth)||void 0===t?void 0:t[this.props.id])||{}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"errors",{get:function(){var e,t;return(null===(t=null===(e=this.props.form.errors)||void 0===e?void 0:e.auth)||void 0===t?void 0:t[this.props.id])||{}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"pkceInputActionButtonProps",{get:function(){var e=this;if(void 0!==this.state.codeVerifier&&this.state.codeChallenge!==this.state.validCodeChallenge)return{label:"sync",onClick:function(){e.state.codeVerifier&&e.setState({codeChallenge:e.state.validCodeChallenge})}}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"componentDidMount",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this;if(this.props.usePkce){var t=(0,utils_2.randString)(43);(0,OAuth2_1.deriveCodeChallenge)(t).then((function(r){e.setState({codeVerifier:t,codeChallenge:r,validCodeChallenge:r})}))}}}),Object.defineProperty(t.prototype,"handleAuthorize",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=this;if(e){this.props.formApi.validate();var r=this.props,l=r.flow,i=r.usePkce,n=r.id,a=r.tokenUrl,o=r.authCorsProxyUrl;if((0,utils_2.isEmptyObject)(this.errors)){this.setState({loading:!0,error:null});var c=o?o+(0,utils_3.normalizeUrlProtocol)(e):e,s=o&&a?o+(0,utils_3.normalizeUrlProtocol)(a):a,u=this.props.formApi.getValue("auth."+n+".scopes"),d={authorizationUrl:c.startsWith("http")?c:this.props.server+c,clientId:this.values.client_id,scopes:u,redirectUri:this.context.oAuth2RedirectURI,routingBasePath:this.context.routingBasePath,successCallback:function(e){t.props.formApi.setValue("auth."+t.props.id+".token",e),t.setState({loading:!1,error:null})},errorCallback:function(e){t.setState({loading:!1,error:(null==e?void 0:e.message)||"Failed to retrieve the access token"})}};"implicit"===l&&OAuth2_1.OAuth2.authorizeImplicit(d),"authorizationCode"===l&&OAuth2_1.OAuth2.authorizeAuthorizationCode((0,tslib_1.__assign)((0,tslib_1.__assign)((0,tslib_1.__assign)({},d),{tokenUrl:(null==s?void 0:s.startsWith("http"))?s:this.props.server+s,clientSecret:this.values.client_secret}),i&&{codeVerifier:this.state.codeVerifier,codeChallenge:this.state.codeChallenge}))}}}}),Object.defineProperty(t.prototype,"handleLogout",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.clearToken(),this.setState({error:null})}}),Object.defineProperty(t.prototype,"handleCancel",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.setState({loading:!1,error:null}),OAuth2_1.OAuth2.clearRedirectData(this.props.flow)}}),Object.defineProperty(t.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this,t=this.state,r=t.error,l=t.loading,i=this.props,n=i.id,a=i.scopes,o=i.authorizationUrl,c=i.flow,s=i.usePkce,u=i.defaultValues;if(!o)return React.createElement(form_1.FormError,null,"No flow info");var d=(0,utils_1.fromSessionStorage)("auth."+n+".token")||JSON.stringify(null==u?void 0:u.token);d=d?JSON.parse(d):"";var p=(0,utils_1.getSecurityDetailsOptions)(n,"client_id"),h={field:"auth."+n+".client_id",fullWidth:!0,initialValue:(0,utils_1.fromSessionStorage)("auth."+n+".client_id")||this.props.clientId||(null==u?void 0:u.client_id),initValue:(0,utils_1.fromSessionStorage)("auth."+n+".client_id")||this.props.clientId||(null==u?void 0:u.client_id),placeholder:"Your OAuth2 app Client ID",validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return React.createElement("div",null,React.createElement(form_1.FormWrapper,null,React.createElement(form_1.FormControl,null,React.createElement(form_1.FormLabel,null," Client ID: "),p?React.createElement(TextField_1.FormDropdown,(0,tslib_1.__assign)({},h,{options:p})):React.createElement(TextField_1.FormTextField,(0,tslib_1.__assign)({},h,{"data-cy":"client-id-input"}))),"authorizationCode"===c&&React.createElement(React.Fragment,null,(!(null==s?void 0:s.hideClientSecretInput)||!s)&&React.createElement(form_1.FormControl,null,React.createElement(form_1.FormLabel,null,"Client Secret:"),React.createElement(TextField_1.FormTextField,{type:"password",fullWidth:!0,field:"auth."+n+".client_secret",initialValue:(0,utils_1.fromSessionStorage)("auth."+n+".client_secret")||(null==u?void 0:u.client_secret),validateOnBlur:!0,validateOnChange:!0,"data-cy":"client-secret-input"})),s&&!s.disableManualConfiguration&&React.createElement(PkceOptionsWrapper,null,React.createElement(Checkbox_1.Checkbox,{id:"pkce-opitons-toggle",label:"Configure PKCE manually",checked:this.state.showPkceOptions,onChange:this.togglePkceOptions,"data-cy":"pkce-options-toggle"}),this.state.showPkceOptions&&React.createElement(PkceDetails,null,React.createElement(form_1.FormControl,null,React.createElement(form_1.FormLabel,null,"Code Verifier"),React.createElement(TextField_1.TextField,{fullWidth:!0,value:this.state.codeVerifier,onChange:this.handleCodeVerifierChange,"data-cy":"code-verifier-input"})),React.createElement(form_1.FormControl,null,React.createElement(form_1.FormLabel,null,"Code Challenge"),React.createElement(TextField_1.TextField,{fullWidth:!0,value:this.state.codeChallenge,onChange:function(t){var r=t.target.value;e.setState({codeChallenge:r})},inputActionButton:this.pkceInputActionButtonProps,"data-cy":"code-challenge-input"}))))),React.createElement(TextField_1.FormTextField,{fullWidth:!0,field:"auth."+n+".token",type:"hidden",initialValue:d}),React.createElement(Scope_1.default,{id:n,scopes:a}),this.values.token&&this.values.token.access_token?React.createElement(form_1.FormControl,null,React.createElement(form_1.FormLabel,null," Access Token: "),React.createElement(TextField_1.TextField,{disabled:!0,type:"password",fullWidth:!0,value:this.values.token.access_token})):null),React.createElement(ButtonsWrapper,null,this.values.token&&this.values.token.access_token?React.createElement(shared_1.Button,{fullWidth:!0,onClick:function(){e.handleLogout()}},"Log out"):l?React.createElement(React.Fragment,null,React.createElement(shared_1.Button,{fullWidth:!0,onClick:function(){e.handleCancel()}},"Cancel"),React.createElement(LinearProgress_1.LinearProgress,null)):React.createElement(shared_1.Button,{fullWidth:!0,disabled:!(0,utils_2.isEmptyObject)(this.errors),onClick:function(){e.handleAuthorize(o)}},"Authorize")),l||r||!this.values.token||!this.values.token.access_token&&React.createElement(form_1.FormWrapper,null,React.createElement(form_1.FormControl,null,l?React.createElement(form_1.FormWarning,null,"Please, finish your authorization flow or cancel authorization."):r?React.createElement(React.Fragment,null,React.createElement(OriginalErrorMessage,null,React.createElement(form_1.FormError,null,r))):this.values.token&&this.values.token.access_token?null:React.createElement(form_1.FormWarning,null," No Access Token. Please, Authorize. "))))}}),Object.defineProperty(t,"contextType",{enumerable:!0,configurable:!0,writable:!0,value:redoc_lib_1.OptionsContext}),t}(React.Component);exports.OAuth2Flow=OAuth2Flow;var templateObject_1,templateObject_2,templateObject_3,templateObject_4,OriginalErrorMessage=redoc_lib_1.styled.div(templateObject_1||(templateObject_1=(0,tslib_1.__makeTemplateObject)(["\n font-family: monospace;\n margin-top: 10px;\n line-height: 1;\n padding-left: 10px;\n border-left: 1px solid gray;\n"],["\n font-family: monospace;\n margin-top: 10px;\n line-height: 1;\n padding-left: 10px;\n border-left: 1px solid gray;\n"]))),ButtonsWrapper=redoc_lib_1.styled.div(templateObject_2||(templateObject_2=(0,tslib_1.__makeTemplateObject)(["\n margin-bottom: 15px;\n"],["\n margin-bottom: 15px;\n"]))),PkceOptionsWrapper=redoc_lib_1.styled.div(templateObject_3||(templateObject_3=(0,tslib_1.__makeTemplateObject)(["\n padding: 8px 0 20px;\n"],["\n padding: 8px 0 20px;\n"]))),PkceDetails=redoc_lib_1.styled.div(templateObject_4||(templateObject_4=(0,tslib_1.__makeTemplateObject)(["\n padding: 4px 0;\n"],["\n padding: 4px 0;\n"])));
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.OAuth2Flow=void 0;var tslib_1=require("tslib"),React=(0,tslib_1.__importStar)(require("react")),redoc_lib_1=require("../../redoc-lib"),LinearProgress_1=require("../common/LinearProgress"),form_1=require("../common/form"),TextField_1=require("../common/TextField"),Checkbox_1=require("../common/Checkbox"),shared_1=require("../shared"),OAuth2_1=require("../../services/OAuth2"),utils_1=require("../../utils"),utils_2=require("../../services/utils"),utils_3=require("./utils"),Scope_1=(0,tslib_1.__importDefault)(require("./Scope"));function requiredValidator(e){if(!e)return"Field is required"}var OAuth2Flow=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return Object.defineProperty(t,"state",{enumerable:!0,configurable:!0,writable:!0,value:{error:null,loading:!1,showPkceOptions:!1}}),Object.defineProperty(t,"clearToken",{enumerable:!0,configurable:!0,writable:!0,value:function(){t.props.formApi.setValue("auth."+t.props.id+".token","")}}),Object.defineProperty(t,"togglePkceOptions",{enumerable:!0,configurable:!0,writable:!0,value:function(){t.setState((function(e){return{showPkceOptions:!e.showPkceOptions}}))}}),Object.defineProperty(t,"handleCodeVerifierChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var r=e.target.value;return(0,tslib_1.__awaiter)(t,void 0,void 0,(function(){var e;return(0,tslib_1.__generator)(this,(function(t){switch(t.label){case 0:return[4,(0,OAuth2_1.deriveCodeChallenge)(r)];case 1:return e=t.sent(),this.setState({codeVerifier:r,validCodeChallenge:e}),[2]}}))}))}}),t}return(0,tslib_1.__extends)(t,e),Object.defineProperty(t.prototype,"values",{get:function(){var e,t;return(null===(t=null===(e=this.props.form.values)||void 0===e?void 0:e.auth)||void 0===t?void 0:t[this.props.id])||{}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"errors",{get:function(){var e,t;return(null===(t=null===(e=this.props.form.errors)||void 0===e?void 0:e.auth)||void 0===t?void 0:t[this.props.id])||{}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"pkceInputActionButtonProps",{get:function(){var e=this;if(void 0!==this.state.codeVerifier&&this.state.codeChallenge!==this.state.validCodeChallenge)return{label:"sync",onClick:function(){e.state.codeVerifier&&e.setState({codeChallenge:e.state.validCodeChallenge})}}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"componentDidMount",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this;if(this.props.usePkce){var t=(0,utils_2.randString)(43);(0,OAuth2_1.deriveCodeChallenge)(t).then((function(r){e.setState({codeVerifier:t,codeChallenge:r,validCodeChallenge:r})}))}}}),Object.defineProperty(t.prototype,"handleAuthorize",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=this;if(e){this.props.formApi.validate();var r=this.props,l=r.flow,i=r.usePkce,n=r.id,o=r.tokenUrl,a=r.authCorsProxyUrl,c=r.tokenEndpointAuthMethod;if((0,utils_2.isEmptyObject)(this.errors)){this.setState({loading:!0,error:null});var s=a?a+(0,utils_3.normalizeUrlProtocol)(e):e,u=a&&o?a+(0,utils_3.normalizeUrlProtocol)(o):o,d=this.props.formApi.getValue("auth."+n+".scopes"),p={authorizationUrl:s.startsWith("http")?s:this.props.server+s,clientId:this.values.client_id,scopes:d,redirectUri:this.context.oAuth2RedirectURI,routingBasePath:this.context.routingBasePath,successCallback:function(e){t.props.formApi.setValue("auth."+t.props.id+".token",e),t.setState({loading:!1,error:null})},errorCallback:function(e){t.setState({loading:!1,error:(null==e?void 0:e.message)||"Failed to retrieve the access token"})}};"implicit"===l&&OAuth2_1.OAuth2.authorizeImplicit(p),(0,utils_3.validateTokenEndpointMethod)(c)?"authorizationCode"===l&&OAuth2_1.OAuth2.authorizeAuthorizationCode((0,tslib_1.__assign)((0,tslib_1.__assign)((0,tslib_1.__assign)({},p),{tokenUrl:(null==u?void 0:u.startsWith("http"))?u:this.props.server+u,clientSecret:this.values.client_secret,extraHeaders:(0,utils_3.getOAuth2TokenEndpointAuthHeader)({authMethod:c,clientId:this.values.client_id,clientSecret:this.values.client_secret})}),i&&{codeVerifier:this.state.codeVerifier,codeChallenge:this.state.codeChallenge})):console.log("Unsupported token endpoint auth method: "+c)}}}}),Object.defineProperty(t.prototype,"handleLogout",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.clearToken(),this.setState({error:null})}}),Object.defineProperty(t.prototype,"handleCancel",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.setState({loading:!1,error:null}),OAuth2_1.OAuth2.clearRedirectData(this.props.flow)}}),Object.defineProperty(t.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this,t=this.state,r=t.error,l=t.loading,i=this.props,n=i.id,o=i.scopes,a=i.authorizationUrl,c=i.flow,s=i.usePkce,u=i.defaultValues;if(!a)return React.createElement(form_1.FormError,null,"No flow info");var d=(0,utils_1.fromSessionStorage)("auth."+n+".token")||JSON.stringify(null==u?void 0:u.token);d=d?JSON.parse(d):"";var p=(0,utils_1.getSecurityDetailsOptions)(n,"client_id"),h={field:"auth."+n+".client_id",fullWidth:!0,initialValue:(0,utils_1.fromSessionStorage)("auth."+n+".client_id")||this.props.clientId||(null==u?void 0:u.client_id),initValue:(0,utils_1.fromSessionStorage)("auth."+n+".client_id")||this.props.clientId||(null==u?void 0:u.client_id),placeholder:"Your OAuth2 app Client ID",validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return React.createElement("div",null,React.createElement(form_1.FormWrapper,null,React.createElement(form_1.FormControl,null,React.createElement(form_1.FormLabel,null," Client ID: "),p?React.createElement(TextField_1.FormDropdown,(0,tslib_1.__assign)({},h,{options:p})):React.createElement(TextField_1.FormTextField,(0,tslib_1.__assign)({},h,{"data-cy":"client-id-input"}))),"authorizationCode"===c&&React.createElement(React.Fragment,null,(!(null==s?void 0:s.hideClientSecretInput)||!s)&&React.createElement(form_1.FormControl,null,React.createElement(form_1.FormLabel,null,"Client Secret:"),React.createElement(TextField_1.FormTextField,{type:"password",fullWidth:!0,field:"auth."+n+".client_secret",initialValue:(0,utils_1.fromSessionStorage)("auth."+n+".client_secret")||(null==u?void 0:u.client_secret),validateOnBlur:!0,validateOnChange:!0,"data-cy":"client-secret-input"})),s&&!s.disableManualConfiguration&&React.createElement(PkceOptionsWrapper,null,React.createElement(Checkbox_1.Checkbox,{id:"pkce-opitons-toggle",label:"Configure PKCE manually",checked:this.state.showPkceOptions,onChange:this.togglePkceOptions,"data-cy":"pkce-options-toggle"}),this.state.showPkceOptions&&React.createElement(PkceDetails,null,React.createElement(form_1.FormControl,null,React.createElement(form_1.FormLabel,null,"Code Verifier"),React.createElement(TextField_1.TextField,{fullWidth:!0,value:this.state.codeVerifier,onChange:this.handleCodeVerifierChange,"data-cy":"code-verifier-input"})),React.createElement(form_1.FormControl,null,React.createElement(form_1.FormLabel,null,"Code Challenge"),React.createElement(TextField_1.TextField,{fullWidth:!0,value:this.state.codeChallenge,onChange:function(t){var r=t.target.value;e.setState({codeChallenge:r})},inputActionButton:this.pkceInputActionButtonProps,"data-cy":"code-challenge-input"}))))),React.createElement(TextField_1.FormTextField,{fullWidth:!0,field:"auth."+n+".token",type:"hidden",initialValue:d}),React.createElement(Scope_1.default,{id:n,scopes:o}),this.values.token&&this.values.token.access_token?React.createElement(form_1.FormControl,null,React.createElement(form_1.FormLabel,null," Access Token: "),React.createElement(TextField_1.TextField,{disabled:!0,type:"password",fullWidth:!0,value:this.values.token.access_token})):null),React.createElement(ButtonsWrapper,null,this.values.token&&this.values.token.access_token?React.createElement(shared_1.Button,{fullWidth:!0,onClick:function(){e.handleLogout()}},"Log out"):l?React.createElement(React.Fragment,null,React.createElement(shared_1.Button,{fullWidth:!0,onClick:function(){e.handleCancel()}},"Cancel"),React.createElement(LinearProgress_1.LinearProgress,null)):React.createElement(shared_1.Button,{fullWidth:!0,disabled:!(0,utils_2.isEmptyObject)(this.errors),onClick:function(){e.handleAuthorize(a)}},"Authorize")),l||r||!this.values.token||!this.values.token.access_token&&React.createElement(form_1.FormWrapper,null,React.createElement(form_1.FormControl,null,l?React.createElement(form_1.FormWarning,null,"Please, finish your authorization flow or cancel authorization."):r?React.createElement(React.Fragment,null,React.createElement(OriginalErrorMessage,null,React.createElement(form_1.FormError,null,r))):this.values.token&&this.values.token.access_token?null:React.createElement(form_1.FormWarning,null," No Access Token. Please, Authorize. "))))}}),Object.defineProperty(t,"contextType",{enumerable:!0,configurable:!0,writable:!0,value:redoc_lib_1.OptionsContext}),t}(React.Component);exports.OAuth2Flow=OAuth2Flow;var templateObject_1,templateObject_2,templateObject_3,templateObject_4,OriginalErrorMessage=redoc_lib_1.styled.div(templateObject_1||(templateObject_1=(0,tslib_1.__makeTemplateObject)(["\n font-family: monospace;\n margin-top: 10px;\n line-height: 1;\n padding-left: 10px;\n border-left: 1px solid gray;\n"],["\n font-family: monospace;\n margin-top: 10px;\n line-height: 1;\n padding-left: 10px;\n border-left: 1px solid gray;\n"]))),ButtonsWrapper=redoc_lib_1.styled.div(templateObject_2||(templateObject_2=(0,tslib_1.__makeTemplateObject)(["\n margin-bottom: 15px;\n"],["\n margin-bottom: 15px;\n"]))),PkceOptionsWrapper=redoc_lib_1.styled.div(templateObject_3||(templateObject_3=(0,tslib_1.__makeTemplateObject)(["\n padding: 8px 0 20px;\n"],["\n padding: 8px 0 20px;\n"]))),PkceDetails=redoc_lib_1.styled.div(templateObject_4||(templateObject_4=(0,tslib_1.__makeTemplateObject)(["\n padding: 4px 0;\n"],["\n padding: 4px 0;\n"])));
|
|
2
2
|
//# sourceMappingURL=OAuth2Flow.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.OAuth2TokenInput=void 0;var tslib_1=require("tslib"),React=(0,tslib_1.__importStar)(require("react")),form_1=require("../common/form"),utils_1=require("../../utils"),OAuth2_1=require("../../services/OAuth2"),shared_1=require("../shared"),TextField_1=require("../common/TextField"),Scope_1=(0,tslib_1.__importDefault)(require("./Scope")),utils_2=require("./utils");function validateToken(e){if(!e)return"Token is required"}var OAuth2TokenInput=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return Object.defineProperty(t,"state",{enumerable:!0,configurable:!0,writable:!0,value:{error:"",loading:!1,tokenMasked:!0}}),Object.defineProperty(t,"clearToken",{enumerable:!0,configurable:!0,writable:!0,value:function(){t.props.formApi.setValue("auth."+t.props.id+".token",""),(0,utils_1.toSessionStorage)("auth."+t.props.id+".token","")}}),Object.defineProperty(t,"toggleTokenMask",{enumerable:!0,configurable:!0,writable:!0,value:function(){t.setState({tokenMasked:!t.state.tokenMasked})}}),Object.defineProperty(t,"requestToken",{enumerable:!0,configurable:!0,writable:!0,value:function(){return(0,tslib_1.__awaiter)(t,void 0,void 0,(function(){var e,t,r,o,i,l,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.OAuth2TokenInput=void 0;var tslib_1=require("tslib"),React=(0,tslib_1.__importStar)(require("react")),form_1=require("../common/form"),utils_1=require("../../utils"),OAuth2_1=require("../../services/OAuth2"),shared_1=require("../shared"),TextField_1=require("../common/TextField"),Scope_1=(0,tslib_1.__importDefault)(require("./Scope")),utils_2=require("./utils");function validateToken(e){if(!e)return"Token is required"}var OAuth2TokenInput=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return Object.defineProperty(t,"state",{enumerable:!0,configurable:!0,writable:!0,value:{error:"",loading:!1,tokenMasked:!0}}),Object.defineProperty(t,"clearToken",{enumerable:!0,configurable:!0,writable:!0,value:function(){t.props.formApi.setValue("auth."+t.props.id+".token",""),(0,utils_1.toSessionStorage)("auth."+t.props.id+".token","")}}),Object.defineProperty(t,"toggleTokenMask",{enumerable:!0,configurable:!0,writable:!0,value:function(){t.setState({tokenMasked:!t.state.tokenMasked})}}),Object.defineProperty(t,"requestToken",{enumerable:!0,configurable:!0,writable:!0,value:function(){return(0,tslib_1.__awaiter)(t,void 0,void 0,(function(){var e,t,r,o,i,n,l,a,s=this;return(0,tslib_1.__generator)(this,(function(u){switch(u.label){case 0:return this.state.loading?[2]:(e=this.props,t=e.server,r=e.flow,o=e.authCorsProxyUrl,i=o&&r.tokenUrl?o+(0,utils_2.normalizeUrlProtocol)(r.tokenUrl):r.tokenUrl,this.errors.client_id||this.errors.client_secret?(console.log("Provide client_id and client_secret"),[2]):(n=this.values.client_id,l=this.values.client_secret,n&&l?(this.setState({loading:!0}),a=r["x-tokenEndpointAuthMethod"],(0,utils_2.validateTokenEndpointMethod)(a)?[4,OAuth2_1.OAuth2.authorizeClientCredentials({tokenUrl:i.startsWith("http")?i:t+i,clientId:n,clientSecret:l,scopes:this.values.scopes,extraHeaders:(0,utils_2.getOAuth2TokenEndpointAuthHeader)({authMethod:a,clientId:n,clientSecret:l}),successCallback:function(e){s.props.formApi.setValue("auth."+s.props.id+".token",e),s.setState({loading:!1})},errorCallback:function(e){s.clearToken(),s.setState({error:e.message,loading:!1})}})]:(console.log("Unsupported token endpoint auth method: "+a),[2])):(console.log("Provide client_id and client_secret"),[2])));case 1:return u.sent(),[2]}}))}))}}),t}return(0,tslib_1.__extends)(t,e),Object.defineProperty(t.prototype,"values",{get:function(){var e,t,r;return(null===(r=null===(t=null===(e=this.props.form)||void 0===e?void 0:e.values)||void 0===t?void 0:t.auth)||void 0===r?void 0:r[this.props.id])||{}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"errors",{get:function(){var e,t;return(null===(t=null===(e=this.props.form.errors)||void 0===e?void 0:e.auth)||void 0===t?void 0:t[this.props.id])||{}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.state,t=e.loading,r=e.error,o=e.tokenMasked,i=this.props,n=i.id,l=i.defaultValues,a=Object.keys(this.props.flow.scopes),s=(0,utils_1.fromSessionStorage)("auth."+n+".token")||JSON.stringify(null==l?void 0:l.token);s=s?JSON.parse(s):"";var u=(0,utils_1.getSecurityDetailsOptions)(n,"client_id"),c={field:"auth."+n+".client_id",fullWidth:!0,initialValue:(0,utils_1.fromSessionStorage)("auth."+n+".client_id")||this.props.clientId||(null==l?void 0:l.client_id),initValue:(0,utils_1.fromSessionStorage)("auth."+n+".client_id")||this.props.clientId||(null==l?void 0:l.client_id),placeholder:"Your OAuth2 app Client ID"};return React.createElement(React.Fragment,null,React.createElement(form_1.FormWrapper,null,React.createElement(form_1.FormControl,null,React.createElement(form_1.FormLabel,null,"Client ID:"),u?React.createElement(TextField_1.FormDropdown,(0,tslib_1.__assign)({},c,{options:u})):React.createElement(TextField_1.FormTextField,(0,tslib_1.__assign)({},c,{type:"password"}))),React.createElement(form_1.FormControl,null,React.createElement(form_1.FormLabel,null,"Client Secret:"),React.createElement(TextField_1.FormTextField,{type:"password",fullWidth:!0,field:"auth."+n+".client_secret",initialValue:(0,utils_1.fromSessionStorage)("auth."+n+".client_secret")||(null==l?void 0:l.client_secret)})),React.createElement(TextField_1.FormTextField,{fullWidth:!0,field:"auth."+n+".token",type:"hidden",initialValue:s,validate:validateToken}),React.createElement(Scope_1.default,{id:n,scopes:a})),React.createElement(shared_1.Button,{color:"primary",onClick:this.requestToken,blinking:t},t?"Loading...":"Request Token"),React.createElement(form_1.FormHeader,null," Access Token "),r?React.createElement(form_1.FormError,{style:{marginBottom:"1em"}},"Failed to request token: ",React.createElement("pre",null,r)," "):this.values.token&&this.values.token.access_token?React.createElement(form_1.TokenField,null,React.createElement(form_1.TokenValue,{length:this.values.token.access_token.length,masked:o},this.values.token.access_token),React.createElement(form_1.TokenShowHide,{onClick:this.toggleTokenMask},o?"Show":"Hide"," "),React.createElement(form_1.TokenClear,{onClick:this.clearToken}," Clear ")):React.createElement(form_1.FormError,{style:{marginBottom:"1em"}},"No token"))}}),t}(React.Component);exports.OAuth2TokenInput=OAuth2TokenInput,exports.default=OAuth2TokenInput;
|
|
2
2
|
//# sourceMappingURL=OAuth2TokenInput.js.map
|
|
@@ -12,3 +12,9 @@ export declare function updateVariablesStorage(name: string, value: string): voi
|
|
|
12
12
|
export declare function unescapeQueryParams(params: GenericObject): GenericObject;
|
|
13
13
|
export declare function getFileNameFromHeaders(headers: Record<string, string>): string;
|
|
14
14
|
export declare const makeRequestInterceptor: ({ requestInterceptor, sendXUserAgentInTryIt, disableTryItRequestUrlEncoding, }: Pick<RedocProNormalizedOptions, 'requestInterceptor' | 'sendXUserAgentInTryIt' | 'disableTryItRequestUrlEncoding'>, operation: OperationModel, securitySchemaAuth?: string | undefined) => (req: Request) => void | Request;
|
|
15
|
+
export declare const validateTokenEndpointMethod: (token: string[] | string | undefined) => boolean;
|
|
16
|
+
export declare const getOAuth2TokenEndpointAuthHeader: ({ authMethod, clientId, clientSecret, }: {
|
|
17
|
+
authMethod?: string | string[] | undefined;
|
|
18
|
+
clientId: string;
|
|
19
|
+
clientSecret: string;
|
|
20
|
+
}) => Record<'Authorization', string> | GenericObject;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.makeRequestInterceptor=exports.getFileNameFromHeaders=exports.unescapeQueryParams=exports.updateVariablesStorage=exports.getDefaultOrStoredVariables=exports.expandDefaultServerVariables=exports.expandVariables=exports.getInitialServerWithVariables=exports.getServerWithVariables=exports.getParameters=exports.updateStorage=exports.normalizeUrlProtocol=void 0;var tslib_1=require("tslib"),utils_1=require("../../utils");function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}function updateStorage(e){if(e.values.auth)for(var r=0,t=Object.keys(e.values.auth);r<t.length;r++){var a=t[r],i=e.values.auth[a];(0,utils_1.setSecurityDetails)(a,i)}updateParameterStorage(e)}function updateParameterStorage(e){for(var r,t=0,a=["path","query","header","cookie"];t<a.length;t++){var i=a[t];if(null===(r=e.values)||void 0===r?void 0:r[i])for(var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getOAuth2TokenEndpointAuthHeader=exports.validateTokenEndpointMethod=exports.makeRequestInterceptor=exports.getFileNameFromHeaders=exports.unescapeQueryParams=exports.updateVariablesStorage=exports.getDefaultOrStoredVariables=exports.expandDefaultServerVariables=exports.expandVariables=exports.getInitialServerWithVariables=exports.getServerWithVariables=exports.getParameters=exports.updateStorage=exports.normalizeUrlProtocol=void 0;var tslib_1=require("tslib"),utils_1=require("../../utils");function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}function updateStorage(e){if(e.values.auth)for(var r=0,t=Object.keys(e.values.auth);r<t.length;r++){var a=t[r],i=e.values.auth[a];(0,utils_1.setSecurityDetails)(a,i)}updateParameterStorage(e)}function updateParameterStorage(e){for(var r,t=0,a=["path","query","header","cookie"];t<a.length;t++){var i=a[t];if(null===(r=e.values)||void 0===r?void 0:r[i])for(var n=0,s=Object.keys(e.values[i]);n<s.length;n++){var o=s[n];(0,utils_1.setParameterValue)(i,o,e.values[i][o])}}}exports.normalizeUrlProtocol=normalizeUrlProtocol,exports.updateStorage=updateStorage;var getParameters=function(e,r){return e.filter((function(e){return e.in===r})).reduce((function(e,r){var t=r.in,a=r.name;return e[a]=(0,utils_1.getParameterValue)(t||"",a),e}),{})};exports.getParameters=getParameters;var pathTemplateRegExp=/(?:{)(\w+)(?:})/g;function getServerWithVariables(e,r){void 0===r&&(r=0);var t=e[r],a=getDefaultOrStoredVariables(t);return(0,tslib_1.__assign)((0,tslib_1.__assign)({},t),{variables:a})}function getInitialServerWithVariables(e){var r=(0,utils_1.fromSessionStorage)("serverUrl"),t=e.find((function(e){return e.url===r}))||e[0],a=getDefaultOrStoredVariables(t);return(0,tslib_1.__assign)((0,tslib_1.__assign)({},t),{variables:a})}function expandVariables(e,r){return void 0===r&&(r={}),e.replace(pathTemplateRegExp,(function(e,t){return r[t]||e}))}function expandDefaultServerVariables(e,r){return void 0===r&&(r={}),e.replace(pathTemplateRegExp,(function(e,t){return r[t]&&r[t].default||e}))}function getDefaultOrStoredVariables(e){if(!(null==e?void 0:e.variables))return{};var r=(0,utils_1.fromSessionStorage)("variables"),t=r&&JSON.parse(r)||{},a={};return Object.entries(e.variables||{}).forEach((function(e){var r=e[0],i=e[1];a[r]=t[r]||i.default||""})),a}function updateVariablesStorage(e,r){var t,a=(0,utils_1.fromSessionStorage)("variables"),i=a&&JSON.parse(a)||{};(0,utils_1.toSessionStorage)("variables",JSON.stringify((0,tslib_1.__assign)((0,tslib_1.__assign)({},i),((t={})[e]=r,t))))}function unescapeQueryParams(e){return Object.entries(e).reduce((function(e,r){var t=r[0],a=r[1];return e[(0,utils_1.unescapeFormId)(t)]=a,e}),{})}function getFileNameFromHeaders(e){for(var r="filename=",t=0,a=Object.entries(e);t<a.length;t++){var i=a[t],n=i[0],s=i[1];if("content-disposition"===n.toLowerCase()){var o=s.split(";").find((function(e){return e.trim().startsWith(r)}));if(o)return o.split(r)[1]}}return""}exports.getServerWithVariables=getServerWithVariables,exports.getInitialServerWithVariables=getInitialServerWithVariables,exports.expandVariables=expandVariables,exports.expandDefaultServerVariables=expandDefaultServerVariables,exports.getDefaultOrStoredVariables=getDefaultOrStoredVariables,exports.updateVariablesStorage=updateVariablesStorage,exports.unescapeQueryParams=unescapeQueryParams,exports.getFileNameFromHeaders=getFileNameFromHeaders;var makeRequestInterceptor=function(e,r,t){var a=e.requestInterceptor,i=e.sendXUserAgentInTryIt,n=e.disableTryItRequestUrlEncoding;return function(e){var s,o,l,u;n&&(e=(0,tslib_1.__assign)((0,tslib_1.__assign)({},e),{url:decodeURIComponent(e.url)})),i&&(e.headers["X-User-Agent"]="Redocly Try it API console");var d=(null===(o=null===(s=null==r?void 0:r.requestValues)||void 0===s?void 0:s.header)||void 0===o?void 0:o.authorization)||(null===(u=null===(l=null==r?void 0:r.requestValues)||void 0===l?void 0:l.header)||void 0===u?void 0:u.Authorization);return!t&&d&&(e.headers.Authorization=d),a?a(e,r):e}};exports.makeRequestInterceptor=makeRequestInterceptor;var validateTokenEndpointMethod=function(e){if(!e)return!0;var r=Array.isArray(e)?e:[e];return!(r.length&&!r.includes("none")&&!r.includes("client_secret_basic"))};exports.validateTokenEndpointMethod=validateTokenEndpointMethod;var getOAuth2TokenEndpointAuthHeader=function(e){var r=e.authMethod,t=e.clientId,a=e.clientSecret;return"client_secret_basic"===r||Array.isArray(r)&&r.includes("client_secret_basic")?{Authorization:"Basic "+btoa(t+":"+a)}:{}};exports.getOAuth2TokenEndpointAuthHeader=getOAuth2TokenEndpointAuthHeader;
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|
|
@@ -4,12 +4,14 @@ export declare const hasAuthorizationUrl: (type: string, flow: OAuthFlowProps['f
|
|
|
4
4
|
scopes: Record<string, string>;
|
|
5
5
|
authorizationUrl: string;
|
|
6
6
|
'x-defaultClientId'?: string | undefined;
|
|
7
|
+
'x-tokenEndpointAuthMethod'?: string | undefined;
|
|
7
8
|
} | {
|
|
8
9
|
refreshUrl?: string | undefined;
|
|
9
10
|
scopes: Record<string, string>;
|
|
10
11
|
authorizationUrl: string;
|
|
11
12
|
tokenUrl: string;
|
|
12
13
|
'x-defaultClientId'?: string | undefined;
|
|
14
|
+
'x-tokenEndpointAuthMethod'?: string | undefined;
|
|
13
15
|
} | undefined;
|
|
14
16
|
export declare const hasTokenUrl: (type: string, flow: OAuthFlowProps['flow']) => flow is {
|
|
15
17
|
refreshUrl?: string | undefined;
|
|
@@ -21,10 +23,12 @@ export declare const hasTokenUrl: (type: string, flow: OAuthFlowProps['flow']) =
|
|
|
21
23
|
scopes: Record<string, string>;
|
|
22
24
|
tokenUrl: string;
|
|
23
25
|
'x-defaultClientId'?: string | undefined;
|
|
26
|
+
'x-tokenEndpointAuthMethod'?: string | undefined;
|
|
24
27
|
} | {
|
|
25
28
|
refreshUrl?: string | undefined;
|
|
26
29
|
scopes: Record<string, string>;
|
|
27
30
|
authorizationUrl: string;
|
|
28
31
|
tokenUrl: string;
|
|
29
32
|
'x-defaultClientId'?: string | undefined;
|
|
33
|
+
'x-tokenEndpointAuthMethod'?: string | undefined;
|
|
30
34
|
} | undefined;
|
|
@@ -280,6 +280,7 @@ export interface OpenAPISecurityScheme {
|
|
|
280
280
|
scopes: Record<string, string>;
|
|
281
281
|
authorizationUrl: string;
|
|
282
282
|
'x-defaultClientId'?: string;
|
|
283
|
+
'x-tokenEndpointAuthMethod'?: string;
|
|
283
284
|
};
|
|
284
285
|
password?: {
|
|
285
286
|
refreshUrl?: string;
|
|
@@ -292,6 +293,7 @@ export interface OpenAPISecurityScheme {
|
|
|
292
293
|
scopes: Record<string, string>;
|
|
293
294
|
tokenUrl: string;
|
|
294
295
|
'x-defaultClientId'?: string;
|
|
296
|
+
'x-tokenEndpointAuthMethod'?: string;
|
|
295
297
|
};
|
|
296
298
|
authorizationCode?: {
|
|
297
299
|
refreshUrl?: string;
|
|
@@ -299,6 +301,7 @@ export interface OpenAPISecurityScheme {
|
|
|
299
301
|
authorizationUrl: string;
|
|
300
302
|
tokenUrl: string;
|
|
301
303
|
'x-defaultClientId'?: string;
|
|
304
|
+
'x-tokenEndpointAuthMethod'?: string;
|
|
302
305
|
};
|
|
303
306
|
};
|
|
304
307
|
openIdConnectUrl?: string;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import type { ExtendedOpenAPIOperation } from '../services';
|
|
1
2
|
import type { FieldModel } from '../services/models';
|
|
2
3
|
import type { OpenAPIParser } from '../services/OpenAPIParser';
|
|
3
|
-
import type { OpenAPIEncoding, OpenAPIMediaType,
|
|
4
|
+
import type { OpenAPIEncoding, OpenAPIMediaType, OpenAPIParameter, OpenAPIParameterStyle, OpenAPISchema, OpenAPIServer, Referenced, OpenAPIResponse, OpenAPIRequestBody } from '../types';
|
|
4
5
|
export declare function isStatusCode(statusCode: string): boolean;
|
|
5
6
|
export declare function getStatusCodeType(statusCode: string | number, defaultAsError?: boolean): string;
|
|
6
7
|
export declare function isOperationName(key: string): boolean;
|
|
7
|
-
export declare function getOperationSummary(operation:
|
|
8
|
+
export declare function getOperationSummary(operation: ExtendedOpenAPIOperation): string;
|
|
8
9
|
export declare function detectType(schema: OpenAPISchema): string;
|
|
9
10
|
export declare function isPrimitiveType(schema: OpenAPISchema, type?: string | string[] | undefined): boolean;
|
|
10
11
|
export declare function isJsonLike(contentType: string): boolean;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getContentWithLegacyExamples=exports.pluralizeType=exports.extractExtensions=exports.isRedocExtension=exports.shortenHTTPVerb=exports.SCHEMA_DEFINITION_JSX_NAME=exports.SECURITY_DEFINITIONS_JSX_NAME=exports.SECURITY_DEFINITIONS_COMPONENT_NAME=exports.normalizeServers=exports.expandDefaultServerVariables=exports.mergeSimilarMediaTypes=exports.mergeParams=exports.sortByField=exports.sortByRequired=exports.humanizeConstraints=exports.humanizeNumberRange=exports.getDefinitionName=exports.isNamedDefinition=exports.langFromMime=exports.serializeParameterValue=exports.serializeParameterValueWithMime=exports.serializeQueryParameter=exports.urlFormEncodePayload=exports.isFormUrlEncoded=exports.isJsonLike=exports.isPrimitiveType=exports.detectType=exports.getOperationSummary=exports.isOperationName=exports.getStatusCodeType=exports.isStatusCode=void 0;var tslib_1=require("tslib"),path_1=require("path"),url_template_1=(0,tslib_1.__importDefault)(require("url-template")),types_1=require("../../../types"),dom_1=require("./dom"),helpers_1=require("./helpers");function isWildcardStatusCode(e){return"string"==typeof e&&/\dxx/i.test(e)}function isStatusCode(e){return"default"===e||(0,helpers_1.isNumeric)(e)||isWildcardStatusCode(e)}function getStatusCodeType(e,r){if(void 0===r&&(r=!1),"default"===e)return r?"error":"success";var t="string"==typeof e?parseInt(e,10):e;if(isWildcardStatusCode(e)&&(t*=100),t<100||t>599)throw new Error("invalid HTTP code");var i="success";return t>=300&&t<400?i="redirect":t>=400?i="error":t<200&&(i="info"),i}exports.isStatusCode=isStatusCode,exports.getStatusCodeType=getStatusCodeType;var operationNames={get:!0,post:!0,put:!0,head:!0,patch:!0,delete:!0,options:!0,$ref:!0};function isOperationName(e){return e in operationNames}function getOperationSummary(e){return e.summary||e.operationId||e.description&&e.description.substring(0,50)||"<no summary>"}exports.isOperationName=isOperationName,exports.getOperationSummary=getOperationSummary;var schemaKeywordTypes={multipleOf:"number",maximum:"number",exclusiveMaximum:"number",minimum:"number",exclusiveMinimum:"number",maxLength:"string",minLength:"string",pattern:"string",contentEncoding:"string",contentMediaType:"string",items:"array",maxItems:"array",minItems:"array",uniqueItems:"array",maxProperties:"object",minProperties:"object",required:"object",additionalProperties:"object",unevaluatedProperties:"object",patternProperties:"object",properties:"object"};function detectType(e){if(void 0!==e.type&&!Array.isArray(e.type))return e.type;for(var r=0,t=Object.keys(schemaKeywordTypes);r<t.length;r++){var i=t[r],a=schemaKeywordTypes[i];if(void 0!==e[i])return a}return"any"}function isPrimitiveType(e,r){if(void 0===r&&(r=e.type),e["x-circular-ref"])return!0;if(void 0!==e.oneOf||void 0!==e.anyOf)return!1;if(e.if&&e.then||e.if&&e.else)return!1;var t=!0,i=Array.isArray(r);return("object"===r||i&&(null==r?void 0:r.includes("object")))&&(t=void 0!==e.properties?0===Object.keys(e.properties).length:void 0===e.additionalProperties&&void 0===e.unevaluatedProperties&&void 0===e.patternProperties),!Array.isArray(e.items)&&!Array.isArray(e.prefixItems)&&(void 0!==e.items&&"boolean"!=typeof e.items&&("array"===r||i&&(null==r?void 0:r.includes("array")))&&(t=isPrimitiveType(e.items,e.items.type)),t)}function isJsonLike(e){return-1!==e.search(/json/i)}function isFormUrlEncoded(e){return e===types_1.MediaTypes.URL_ENCODED}function delimitedEncodeField(e,r,t){return Array.isArray(e)?e.map((function(e){return e.toString()})).join(t):"object"==typeof e?Object.keys(e).map((function(r){return""+r+t+e[r]})).join(t):r+"="+e.toString()}function deepObjectEncodeField(e,r){return Array.isArray(e)?(console.warn("deepObject style cannot be used with array value:"+e.toString()),""):"object"==typeof e?Object.keys(e).map((function(t){return e[t]?r+"["+t+"]="+e[t]:void 0})).filter(Boolean).join("&"):(console.warn("deepObject style cannot be used with non-object value:"+e.toString()),"")}function serializeFormValue(e,r,t){var i,a="__redoc_param_name__",n=r?"*":"";return url_template_1.default.parse("{?"+a+n+"}").expand((i={},i[a]=t,i)).substring(1).replace(/__redoc_param_name__/g,e)}function serializeSimpleValue(e,r){var t,i=e?"*":"",a="__redoc_param_name__",n=url_template_1.default.parse("{"+a+i+"}");return decodeURIComponent(n.expand(((t={})[a]=r,t)))}function urlFormEncodePayload(e,r){if(void 0===r&&(r={}),Array.isArray(e))throw new Error("Payload must have fields: "+e.toString());return Object.keys(e).map((function(t){var i=e[t],a=r[t]||{},n=a.style,o=void 0===n?"form":n,s=a.explode,u=void 0===s||s;switch(o){case"form":return serializeFormValue(t,u,i);case"spaceDelimited":return delimitedEncodeField(i,t,"%20");case"pipeDelimited":return delimitedEncodeField(i,t,"|");case"deepObject":return deepObjectEncodeField(i,t);default:return console.warn("Incorrect or unsupported encoding style: "+o),""}})).join("&")}function serializePathParameter(e,r,t,i){var a,n=t?"*":"",o="";"label"===r?o=".":"matrix"===r&&(o=";");var s="__redoc_param_name__";return url_template_1.default.parse("{"+o+s+n+"}").expand((a={},a[s]=i,a)).replace(/__redoc_param_name__/g,e)}function serializeQueryParameter(e,r,t,i){var a=function(a){switch(r){case"form":return serializeFormValue(e,t,a);case"spaceDelimited":return Array.isArray(a)?t?serializeFormValue(e,t,a):e+"="+a.join("%20"):(console.warn("The style spaceDelimited is only applicable to arrays"),"");case"pipeDelimited":return Array.isArray(a)?t?serializeFormValue(e,t,a):e+"="+a.join("|"):(console.warn("The style pipeDelimited is only applicable to arrays"),"");case"deepObject":return!t||Array.isArray(a)||"object"!=typeof a?(console.warn("The style deepObject is only applicable for objects with explode=true"),""):deepObjectEncodeField(a,e);case"simple":return serializeSimpleValue(t,i);default:return console.warn("Unexpected style for query: "+r),""}};return(0,helpers_1.isArrayOfObjects)(i)&&(i=(0,helpers_1.deleteEmptyArrayItem)(i).map((function(e){return a(e)}))),a(i)}function serializeHeaderParameter(e,r,t){return"simple"===e?serializeSimpleValue(r,t):(console.warn("Unexpected style for header: "+e),"")}function serializeCookieParameter(e,r,t,i){return"form"===r?serializeFormValue(e,t,i):(console.warn("Unexpected style for cookie: "+r),"")}function serializeParameterValueWithMime(e,r){return isJsonLike(r)?JSON.stringify(e):(console.warn("Parameter serialization as "+r+" is not supported"),"")}function serializeParameterValue(e,r){var t=e.name,i=e.style,a=e.explode,n=void 0!==a&&a,o=e.serializationMime;if(o)switch(e.in){case"path":case"header":return serializeParameterValueWithMime(r,o);case"cookie":case"query":return t+"="+serializeParameterValueWithMime(r,o);default:return console.warn("Unexpected parameter location: "+e.in),""}if(!i)return console.warn("Missing style attribute or content for parameter "+t),"";switch(e.in){case"path":return serializePathParameter(t,i,n,r);case"query":return serializeQueryParameter(t,i,n,r);case"header":return serializeHeaderParameter(i,n,r);case"cookie":return serializeCookieParameter(t,i,n,r);default:return console.warn("Unexpected parameter location: "+e.in),""}}function langFromMime(e){return-1!==e.search(/xml/i)?"xml":"clike"}exports.detectType=detectType,exports.isPrimitiveType=isPrimitiveType,exports.isJsonLike=isJsonLike,exports.isFormUrlEncoded=isFormUrlEncoded,exports.urlFormEncodePayload=urlFormEncodePayload,exports.serializeQueryParameter=serializeQueryParameter,exports.serializeParameterValueWithMime=serializeParameterValueWithMime,exports.serializeParameterValue=serializeParameterValue,exports.langFromMime=langFromMime;var DEFINITION_NAME_REGEX=/^#\/components\/(schemas|pathItems)\/([^/]+)$/;function isNamedDefinition(e){return DEFINITION_NAME_REGEX.test(e||"")}function getDefinitionName(e){var r;return null===(r=null==e?void 0:e.match(DEFINITION_NAME_REGEX))||void 0===r?void 0:r.pop()}function humanizeMultipleOfConstraint(e){if(void 0!==e){var r=e.toString(10);return/^0\.0*1$/.test(r)?"decimal places <= "+r.split(".")[1].length:"multiple of "+r}}function humanizeRangeConstraint(e,r,t){var i;return void 0!==r&&void 0!==t?i=r===t?"= "+r+" "+e:"[ "+r+" .. "+t+" ] "+e:void 0!==t?i="<= "+t+" "+e:void 0!==r&&(i=1===r?"non-empty":">= "+r+" "+e),i}function humanizeNumberRange(e){var r,t,i="number"==typeof e.exclusiveMinimum?Math.min(e.exclusiveMinimum,null!==(r=e.minimum)&&void 0!==r?r:1/0):e.minimum,a="number"==typeof e.exclusiveMaximum?Math.max(e.exclusiveMaximum,null!==(t=e.maximum)&&void 0!==t?t:-1/0):e.maximum,n="number"==typeof e.exclusiveMinimum||e.exclusiveMinimum,o="number"==typeof e.exclusiveMaximum||e.exclusiveMaximum;return void 0!==i&&void 0!==a?(n?"( ":"[ ")+i+" .. "+a+(o?" )":" ]"):void 0!==a?(o?"< ":"<= ")+a:void 0!==i?(n?"> ":">= ")+i:void 0}function humanizeConstraints(e){var r=[],t=humanizeRangeConstraint("characters",e.minLength,e.maxLength);void 0!==t&&r.push(t);var i=humanizeRangeConstraint("items",e.minItems,e.maxItems);void 0!==i&&r.push(i);var a=humanizeRangeConstraint("properties",e.minProperties,e.maxProperties);void 0!==a&&r.push(a);var n=humanizeMultipleOfConstraint(e.multipleOf);void 0!==n&&r.push(n);var o=humanizeNumberRange(e);return void 0!==o&&r.push(o),e.uniqueItems&&r.push("unique"),r}function sortByRequired(e,r){void 0===r&&(r=[]);var t=[],i=[],a=[];return e.forEach((function(e){e.required?r.includes(e.name)?i.push(e):a.push(e):t.push(e)})),i.sort((function(e,t){return r.indexOf(e.name)-r.indexOf(t.name)})),(0,tslib_1.__spreadArray)((0,tslib_1.__spreadArray)((0,tslib_1.__spreadArray)([],i,!0),a,!0),t,!0)}function sortByField(e,r){return(0,tslib_1.__spreadArray)([],e,!0).sort((function(e,t){return e[r].localeCompare(t[r])}))}function mergeParams(e,r,t){void 0===r&&(r=[]),void 0===t&&(t=[]);var i={};return t.forEach((function(r){r=e.deref(r).resolved,i[r.name+"_"+r.in]=!0})),(r=r.filter((function(r){return r=e.deref(r).resolved,!i[r.name+"_"+r.in]}))).concat(t)}function mergeSimilarMediaTypes(e){var r={};return Object.keys(e).forEach((function(t){var i=e[t],a=t.split(";")[0].trim();r[a]?r[a]=(0,tslib_1.__assign)((0,tslib_1.__assign)({},r[a]),i):r[a]=i})),r}function expandDefaultServerVariables(e,r){return void 0===r&&(r={}),e.replace(/(?:{)([\w-.]+)(?:})/g,(function(e,t){return r[t]&&r[t].default||e}))}function normalizeServers(e,r){var t=void 0===e?(0,helpers_1.removeQueryStringAndHash)(function(){if(!dom_1.IS_BROWSER)return"";var e=window.location.href;return e.endsWith(".html")?(0,path_1.dirname)(e):e}()):(0,path_1.dirname)(e);return 0===r.length&&(r=[{url:"/"}]),r.map((function(e){return(0,tslib_1.__assign)((0,tslib_1.__assign)({},e),{url:(r=e.url,(0,helpers_1.resolveUrl)(t,r)),description:e.description||""});var r}))}exports.isNamedDefinition=isNamedDefinition,exports.getDefinitionName=getDefinitionName,exports.humanizeNumberRange=humanizeNumberRange,exports.humanizeConstraints=humanizeConstraints,exports.sortByRequired=sortByRequired,exports.sortByField=sortByField,exports.mergeParams=mergeParams,exports.mergeSimilarMediaTypes=mergeSimilarMediaTypes,exports.expandDefaultServerVariables=expandDefaultServerVariables,exports.normalizeServers=normalizeServers,exports.SECURITY_DEFINITIONS_COMPONENT_NAME="security-definitions",exports.SECURITY_DEFINITIONS_JSX_NAME="SecurityDefinitions",exports.SCHEMA_DEFINITION_JSX_NAME="SchemaDefinition";var shortenHTTPVerb=function(e){return{delete:"del",options:"opts"}[e]||e};function isRedocExtension(e){return e in{"x-circular-ref":!0,"x-parentRefs":!0,"x-refsStack":!0,"x-code-samples":!0,"x-codeSamples":!0,"x-displayName":!0,"x-examples":!0,"x-ignoredHeaderParameters":!0,"x-logo":!0,"x-nullable":!0,"x-servers":!0,"x-tagGroups":!0,"x-traitTag":!0,"x-additionalPropertiesName":!0,"x-explicitMappingOnly":!0,"x-enumDescriptions":!0,"x-hideTryItPanel":!0}}function extractExtensions(e,r){return Object.keys(e).filter((function(e){return!0===r?e.startsWith("x-")&&!isRedocExtension(e):e.startsWith("x-")&&r.indexOf(e)>-1})).reduce((function(r,t){return r[t]=e[t],r}),{})}function pluralizeType(e){return e.split(" or ").map((function(e){return e.replace(/^(string|object|number|integer|array|boolean)s?( ?.*)/,"$1s$2")})).join(" or ")}function getContentWithLegacyExamples(e){var r=e.content,t=e["x-examples"],i=e["x-example"];if(t){r=(0,tslib_1.__assign)({},r);for(var a=0,n=Object.keys(t);a<n.length;a++){var o=t[l=n[a]];r[l]=(0,tslib_1.__assign)((0,tslib_1.__assign)({},r[l]),{examples:o})}}else if(i){r=(0,tslib_1.__assign)({},r);for(var s=0,u=Object.keys(i);s<u.length;s++){var l,m=i[l=u[s]];r[l]=(0,tslib_1.__assign)((0,tslib_1.__assign)({},r[l]),{example:m})}}return r}exports.shortenHTTPVerb=shortenHTTPVerb,exports.isRedocExtension=isRedocExtension,exports.extractExtensions=extractExtensions,exports.pluralizeType=pluralizeType,exports.getContentWithLegacyExamples=getContentWithLegacyExamples;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getContentWithLegacyExamples=exports.pluralizeType=exports.extractExtensions=exports.isRedocExtension=exports.shortenHTTPVerb=exports.SCHEMA_DEFINITION_JSX_NAME=exports.SECURITY_DEFINITIONS_JSX_NAME=exports.SECURITY_DEFINITIONS_COMPONENT_NAME=exports.normalizeServers=exports.expandDefaultServerVariables=exports.mergeSimilarMediaTypes=exports.mergeParams=exports.sortByField=exports.sortByRequired=exports.humanizeConstraints=exports.humanizeNumberRange=exports.getDefinitionName=exports.isNamedDefinition=exports.langFromMime=exports.serializeParameterValue=exports.serializeParameterValueWithMime=exports.serializeQueryParameter=exports.urlFormEncodePayload=exports.isFormUrlEncoded=exports.isJsonLike=exports.isPrimitiveType=exports.detectType=exports.getOperationSummary=exports.isOperationName=exports.getStatusCodeType=exports.isStatusCode=void 0;var tslib_1=require("tslib"),path_1=require("path"),url_template_1=(0,tslib_1.__importDefault)(require("url-template")),types_1=require("../../../types"),dom_1=require("./dom"),helpers_1=require("./helpers");function isWildcardStatusCode(e){return"string"==typeof e&&/\dxx/i.test(e)}function isStatusCode(e){return"default"===e||(0,helpers_1.isNumeric)(e)||isWildcardStatusCode(e)}function getStatusCodeType(e,r){if(void 0===r&&(r=!1),"default"===e)return r?"error":"success";var t="string"==typeof e?parseInt(e,10):e;if(isWildcardStatusCode(e)&&(t*=100),t<100||t>599)throw new Error("invalid HTTP code");var i="success";return t>=300&&t<400?i="redirect":t>=400?i="error":t<200&&(i="info"),i}exports.isStatusCode=isStatusCode,exports.getStatusCodeType=getStatusCodeType;var operationNames={get:!0,post:!0,put:!0,head:!0,patch:!0,delete:!0,options:!0,$ref:!0};function isOperationName(e){return e in operationNames}function getOperationSummary(e){return e.summary||e.operationId||e.description&&e.description.substring(0,50)||e.pathName||"<no summary>"}exports.isOperationName=isOperationName,exports.getOperationSummary=getOperationSummary;var schemaKeywordTypes={multipleOf:"number",maximum:"number",exclusiveMaximum:"number",minimum:"number",exclusiveMinimum:"number",maxLength:"string",minLength:"string",pattern:"string",contentEncoding:"string",contentMediaType:"string",items:"array",maxItems:"array",minItems:"array",uniqueItems:"array",maxProperties:"object",minProperties:"object",required:"object",additionalProperties:"object",unevaluatedProperties:"object",patternProperties:"object",properties:"object"};function detectType(e){if(void 0!==e.type&&!Array.isArray(e.type))return e.type;for(var r=0,t=Object.keys(schemaKeywordTypes);r<t.length;r++){var i=t[r],a=schemaKeywordTypes[i];if(void 0!==e[i])return a}return"any"}function isPrimitiveType(e,r){if(void 0===r&&(r=e.type),e["x-circular-ref"])return!0;if(void 0!==e.oneOf||void 0!==e.anyOf)return!1;if(e.if&&e.then||e.if&&e.else)return!1;var t=!0,i=Array.isArray(r);return("object"===r||i&&(null==r?void 0:r.includes("object")))&&(t=void 0!==e.properties?0===Object.keys(e.properties).length:void 0===e.additionalProperties&&void 0===e.unevaluatedProperties&&void 0===e.patternProperties),!Array.isArray(e.items)&&!Array.isArray(e.prefixItems)&&(void 0!==e.items&&"boolean"!=typeof e.items&&("array"===r||i&&(null==r?void 0:r.includes("array")))&&(t=isPrimitiveType(e.items,e.items.type)),t)}function isJsonLike(e){return-1!==e.search(/json/i)}function isFormUrlEncoded(e){return e===types_1.MediaTypes.URL_ENCODED}function delimitedEncodeField(e,r,t){return Array.isArray(e)?e.map((function(e){return e.toString()})).join(t):"object"==typeof e?Object.keys(e).map((function(r){return""+r+t+e[r]})).join(t):r+"="+e.toString()}function deepObjectEncodeField(e,r){return Array.isArray(e)?(console.warn("deepObject style cannot be used with array value:"+e.toString()),""):"object"==typeof e?Object.keys(e).map((function(t){return e[t]?r+"["+t+"]="+e[t]:void 0})).filter(Boolean).join("&"):(console.warn("deepObject style cannot be used with non-object value:"+e.toString()),"")}function serializeFormValue(e,r,t){var i,a="__redoc_param_name__",n=r?"*":"";return url_template_1.default.parse("{?"+a+n+"}").expand((i={},i[a]=t,i)).substring(1).replace(/__redoc_param_name__/g,e)}function serializeSimpleValue(e,r){var t,i=e?"*":"",a="__redoc_param_name__",n=url_template_1.default.parse("{"+a+i+"}");return decodeURIComponent(n.expand(((t={})[a]=r,t)))}function urlFormEncodePayload(e,r){if(void 0===r&&(r={}),Array.isArray(e))throw new Error("Payload must have fields: "+e.toString());return Object.keys(e).map((function(t){var i=e[t],a=r[t]||{},n=a.style,o=void 0===n?"form":n,s=a.explode,u=void 0===s||s;switch(o){case"form":return serializeFormValue(t,u,i);case"spaceDelimited":return delimitedEncodeField(i,t,"%20");case"pipeDelimited":return delimitedEncodeField(i,t,"|");case"deepObject":return deepObjectEncodeField(i,t);default:return console.warn("Incorrect or unsupported encoding style: "+o),""}})).join("&")}function serializePathParameter(e,r,t,i){var a,n=t?"*":"",o="";"label"===r?o=".":"matrix"===r&&(o=";");var s="__redoc_param_name__";return url_template_1.default.parse("{"+o+s+n+"}").expand((a={},a[s]=i,a)).replace(/__redoc_param_name__/g,e)}function serializeQueryParameter(e,r,t,i){var a=function(a){switch(r){case"form":return serializeFormValue(e,t,a);case"spaceDelimited":return Array.isArray(a)?t?serializeFormValue(e,t,a):e+"="+a.join("%20"):(console.warn("The style spaceDelimited is only applicable to arrays"),"");case"pipeDelimited":return Array.isArray(a)?t?serializeFormValue(e,t,a):e+"="+a.join("|"):(console.warn("The style pipeDelimited is only applicable to arrays"),"");case"deepObject":return!t||Array.isArray(a)||"object"!=typeof a?(console.warn("The style deepObject is only applicable for objects with explode=true"),""):deepObjectEncodeField(a,e);case"simple":return serializeSimpleValue(t,i);default:return console.warn("Unexpected style for query: "+r),""}};return(0,helpers_1.isArrayOfObjects)(i)&&(i=(0,helpers_1.deleteEmptyArrayItem)(i).map((function(e){return a(e)}))),a(i)}function serializeHeaderParameter(e,r,t){return"simple"===e?serializeSimpleValue(r,t):(console.warn("Unexpected style for header: "+e),"")}function serializeCookieParameter(e,r,t,i){return"form"===r?serializeFormValue(e,t,i):(console.warn("Unexpected style for cookie: "+r),"")}function serializeParameterValueWithMime(e,r){return isJsonLike(r)?JSON.stringify(e):(console.warn("Parameter serialization as "+r+" is not supported"),"")}function serializeParameterValue(e,r){var t=e.name,i=e.style,a=e.explode,n=void 0!==a&&a,o=e.serializationMime;if(o)switch(e.in){case"path":case"header":return serializeParameterValueWithMime(r,o);case"cookie":case"query":return t+"="+serializeParameterValueWithMime(r,o);default:return console.warn("Unexpected parameter location: "+e.in),""}if(!i)return console.warn("Missing style attribute or content for parameter "+t),"";switch(e.in){case"path":return serializePathParameter(t,i,n,r);case"query":return serializeQueryParameter(t,i,n,r);case"header":return serializeHeaderParameter(i,n,r);case"cookie":return serializeCookieParameter(t,i,n,r);default:return console.warn("Unexpected parameter location: "+e.in),""}}function langFromMime(e){return-1!==e.search(/xml/i)?"xml":"clike"}exports.detectType=detectType,exports.isPrimitiveType=isPrimitiveType,exports.isJsonLike=isJsonLike,exports.isFormUrlEncoded=isFormUrlEncoded,exports.urlFormEncodePayload=urlFormEncodePayload,exports.serializeQueryParameter=serializeQueryParameter,exports.serializeParameterValueWithMime=serializeParameterValueWithMime,exports.serializeParameterValue=serializeParameterValue,exports.langFromMime=langFromMime;var DEFINITION_NAME_REGEX=/^#\/components\/(schemas|pathItems)\/([^/]+)$/;function isNamedDefinition(e){return DEFINITION_NAME_REGEX.test(e||"")}function getDefinitionName(e){var r;return null===(r=null==e?void 0:e.match(DEFINITION_NAME_REGEX))||void 0===r?void 0:r.pop()}function humanizeMultipleOfConstraint(e){if(void 0!==e){var r=e.toString(10);return/^0\.0*1$/.test(r)?"decimal places <= "+r.split(".")[1].length:"multiple of "+r}}function humanizeRangeConstraint(e,r,t){var i;return void 0!==r&&void 0!==t?i=r===t?"= "+r+" "+e:"[ "+r+" .. "+t+" ] "+e:void 0!==t?i="<= "+t+" "+e:void 0!==r&&(i=1===r?"non-empty":">= "+r+" "+e),i}function humanizeNumberRange(e){var r,t,i="number"==typeof e.exclusiveMinimum?Math.min(e.exclusiveMinimum,null!==(r=e.minimum)&&void 0!==r?r:1/0):e.minimum,a="number"==typeof e.exclusiveMaximum?Math.max(e.exclusiveMaximum,null!==(t=e.maximum)&&void 0!==t?t:-1/0):e.maximum,n="number"==typeof e.exclusiveMinimum||e.exclusiveMinimum,o="number"==typeof e.exclusiveMaximum||e.exclusiveMaximum;return void 0!==i&&void 0!==a?(n?"( ":"[ ")+i+" .. "+a+(o?" )":" ]"):void 0!==a?(o?"< ":"<= ")+a:void 0!==i?(n?"> ":">= ")+i:void 0}function humanizeConstraints(e){var r=[],t=humanizeRangeConstraint("characters",e.minLength,e.maxLength);void 0!==t&&r.push(t);var i=humanizeRangeConstraint("items",e.minItems,e.maxItems);void 0!==i&&r.push(i);var a=humanizeRangeConstraint("properties",e.minProperties,e.maxProperties);void 0!==a&&r.push(a);var n=humanizeMultipleOfConstraint(e.multipleOf);void 0!==n&&r.push(n);var o=humanizeNumberRange(e);return void 0!==o&&r.push(o),e.uniqueItems&&r.push("unique"),r}function sortByRequired(e,r){void 0===r&&(r=[]);var t=[],i=[],a=[];return e.forEach((function(e){e.required?r.includes(e.name)?i.push(e):a.push(e):t.push(e)})),i.sort((function(e,t){return r.indexOf(e.name)-r.indexOf(t.name)})),(0,tslib_1.__spreadArray)((0,tslib_1.__spreadArray)((0,tslib_1.__spreadArray)([],i,!0),a,!0),t,!0)}function sortByField(e,r){return(0,tslib_1.__spreadArray)([],e,!0).sort((function(e,t){return e[r].localeCompare(t[r])}))}function mergeParams(e,r,t){void 0===r&&(r=[]),void 0===t&&(t=[]);var i={};return t.forEach((function(r){r=e.deref(r).resolved,i[r.name+"_"+r.in]=!0})),(r=r.filter((function(r){return r=e.deref(r).resolved,!i[r.name+"_"+r.in]}))).concat(t)}function mergeSimilarMediaTypes(e){var r={};return Object.keys(e).forEach((function(t){var i=e[t],a=t.split(";")[0].trim();r[a]?r[a]=(0,tslib_1.__assign)((0,tslib_1.__assign)({},r[a]),i):r[a]=i})),r}function expandDefaultServerVariables(e,r){return void 0===r&&(r={}),e.replace(/(?:{)([\w-.]+)(?:})/g,(function(e,t){return r[t]&&r[t].default||e}))}function normalizeServers(e,r){var t=void 0===e?(0,helpers_1.removeQueryStringAndHash)(function(){if(!dom_1.IS_BROWSER)return"";var e=window.location.href;return e.endsWith(".html")?(0,path_1.dirname)(e):e}()):(0,path_1.dirname)(e);return 0===r.length&&(r=[{url:"/"}]),r.map((function(e){return(0,tslib_1.__assign)((0,tslib_1.__assign)({},e),{url:(r=e.url,(0,helpers_1.resolveUrl)(t,r)),description:e.description||""});var r}))}exports.isNamedDefinition=isNamedDefinition,exports.getDefinitionName=getDefinitionName,exports.humanizeNumberRange=humanizeNumberRange,exports.humanizeConstraints=humanizeConstraints,exports.sortByRequired=sortByRequired,exports.sortByField=sortByField,exports.mergeParams=mergeParams,exports.mergeSimilarMediaTypes=mergeSimilarMediaTypes,exports.expandDefaultServerVariables=expandDefaultServerVariables,exports.normalizeServers=normalizeServers,exports.SECURITY_DEFINITIONS_COMPONENT_NAME="security-definitions",exports.SECURITY_DEFINITIONS_JSX_NAME="SecurityDefinitions",exports.SCHEMA_DEFINITION_JSX_NAME="SchemaDefinition";var shortenHTTPVerb=function(e){return{delete:"del",options:"opts"}[e]||e};function isRedocExtension(e){return e in{"x-circular-ref":!0,"x-parentRefs":!0,"x-refsStack":!0,"x-code-samples":!0,"x-codeSamples":!0,"x-displayName":!0,"x-examples":!0,"x-ignoredHeaderParameters":!0,"x-logo":!0,"x-nullable":!0,"x-servers":!0,"x-tagGroups":!0,"x-traitTag":!0,"x-additionalPropertiesName":!0,"x-explicitMappingOnly":!0,"x-enumDescriptions":!0,"x-hideTryItPanel":!0,"x-tokenEndpointAuthMethod":!0}}function extractExtensions(e,r){return Object.keys(e).filter((function(e){return!0===r?e.startsWith("x-")&&!isRedocExtension(e):e.startsWith("x-")&&r.indexOf(e)>-1})).reduce((function(r,t){return r[t]=e[t],r}),{})}function pluralizeType(e){return e.split(" or ").map((function(e){return e.replace(/^(string|object|number|integer|array|boolean)s?( ?.*)/,"$1s$2")})).join(" or ")}function getContentWithLegacyExamples(e){var r=e.content,t=e["x-examples"],i=e["x-example"];if(t){r=(0,tslib_1.__assign)({},r);for(var a=0,n=Object.keys(t);a<n.length;a++){var o=t[l=n[a]];r[l]=(0,tslib_1.__assign)((0,tslib_1.__assign)({},r[l]),{examples:o})}}else if(i){r=(0,tslib_1.__assign)({},r);for(var s=0,u=Object.keys(i);s<u.length;s++){var l,p=i[l=u[s]];r[l]=(0,tslib_1.__assign)((0,tslib_1.__assign)({},r[l]),{example:p})}}return r}exports.shortenHTTPVerb=shortenHTTPVerb,exports.isRedocExtension=isRedocExtension,exports.extractExtensions=extractExtensions,exports.pluralizeType=pluralizeType,exports.getContentWithLegacyExamples=getContentWithLegacyExamples;
|
|
2
2
|
//# sourceMappingURL=openapi.js.map
|
package/lib/services/OAuth2.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export declare class OAuth2 {
|
|
|
9
9
|
successCallback: OAuth2SuccessCallback;
|
|
10
10
|
errorCallback: OAuth2ErrorCallback;
|
|
11
11
|
}): void;
|
|
12
|
-
static authorizeAuthorizationCode({ authorizationUrl, tokenUrl, clientId, clientSecret, codeVerifier, codeChallenge, scopes, extraParams, routingBasePath, redirectUri, successCallback, errorCallback, }: {
|
|
12
|
+
static authorizeAuthorizationCode({ authorizationUrl, tokenUrl, clientId, clientSecret, codeVerifier, codeChallenge, scopes, extraParams, extraHeaders, routingBasePath, redirectUri, successCallback, errorCallback, }: {
|
|
13
13
|
authorizationUrl: string;
|
|
14
14
|
tokenUrl: string;
|
|
15
15
|
clientId: string;
|
|
@@ -20,16 +20,18 @@ export declare class OAuth2 {
|
|
|
20
20
|
redirectUri?: string | null;
|
|
21
21
|
routingBasePath?: string;
|
|
22
22
|
extraParams?: Record<string, string>;
|
|
23
|
+
extraHeaders?: Record<string, string>;
|
|
23
24
|
successCallback: OAuth2SuccessCallback;
|
|
24
25
|
errorCallback: OAuth2ErrorCallback;
|
|
25
26
|
}): void;
|
|
26
27
|
static clearRedirectData(flow: 'implicit' | 'authorizationCode'): void;
|
|
27
|
-
static authorizeClientCredentials({ tokenUrl, clientId, clientSecret, scopes, extraParams, successCallback, errorCallback, }: {
|
|
28
|
+
static authorizeClientCredentials({ tokenUrl, clientId, clientSecret, scopes, extraParams, extraHeaders, successCallback, errorCallback, }: {
|
|
28
29
|
tokenUrl: string;
|
|
29
30
|
clientId: string;
|
|
30
31
|
clientSecret: string;
|
|
31
32
|
scopes?: string[];
|
|
32
33
|
extraParams?: Record<string, string>;
|
|
34
|
+
extraHeaders?: Record<string, string>;
|
|
33
35
|
successCallback: OAuth2SuccessCallback;
|
|
34
36
|
errorCallback: OAuth2ErrorCallback;
|
|
35
37
|
}): Promise<void>;
|
package/lib/services/OAuth2.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.deriveCodeChallenge=exports.oauth2Instance=exports.OAuth2=void 0;var tslib_1=require("tslib"),qs=(0,tslib_1.__importStar)(require("querystring")),utils_1=require("./utils"),DEFAULT_OAUTH2_REDIRECT_PAGE="/oauth2-redirect.html",OAuth2=function(){function e(){}return Object.defineProperty(e,"authorizeImplicit",{enumerable:!1,configurable:!0,writable:!0,value:function(t){var r=t.authorizationUrl,a=t.clientId,i=t.scopes,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.deriveCodeChallenge=exports.oauth2Instance=exports.OAuth2=void 0;var tslib_1=require("tslib"),qs=(0,tslib_1.__importStar)(require("querystring")),utils_1=require("./utils"),DEFAULT_OAUTH2_REDIRECT_PAGE="/oauth2-redirect.html",OAuth2=function(){function e(){}return Object.defineProperty(e,"authorizeImplicit",{enumerable:!1,configurable:!0,writable:!0,value:function(t){var r=t.authorizationUrl,a=t.clientId,i=t.scopes,s=t.extraParams,n=void 0===s?{}:s,o=t.routingBasePath,c=t.redirectUri,l=t.successCallback,u=t.errorCallback,d=(0,utils_1.encodeState)({date:(new Date).toString()}),_=new URL(r),h="/"===o?"":o,b=""+window.location.origin+h+DEFAULT_OAUTH2_REDIRECT_PAGE;for(var p in _.searchParams.set("client_id",a),_.searchParams.set("redirect_uri",c||b),_.searchParams.set("response_type","token"),_.searchParams.set("state",d),Array.isArray(i)&&_.searchParams.set("scope",i.join(" ")),n)_.searchParams.set(p,n[p]);window.redirectOAuth2={flow:"implicit",data:{authorizationUrl:r,clientId:a,scopes:i},state:d,successCallback:function(t){l(t),e.clearRedirectData("implicit")},errorCallback:function(t){u(t),e.clearRedirectData("implicit")}},window.open(_.toString())}}),Object.defineProperty(e,"authorizeAuthorizationCode",{enumerable:!1,configurable:!0,writable:!0,value:function(t){var r=this,a=t.authorizationUrl,i=t.tokenUrl,s=t.clientId,n=t.clientSecret,o=t.codeVerifier,c=t.codeChallenge,l=t.scopes,u=t.extraParams,d=void 0===u?{}:u,_=t.extraHeaders,h=void 0===_?{}:_,b=t.routingBasePath,p=t.redirectUri,f=t.successCallback,w=t.errorCallback,v=new URL(a),g="/"===b?"":b,C=""+window.location.origin+g+DEFAULT_OAUTH2_REDIRECT_PAGE,m=(0,utils_1.encodeState)({date:(new Date).toString()});for(var y in v.searchParams.set("client_id",s),v.searchParams.set("redirect_uri",p||C),v.searchParams.set("response_type","code"),v.searchParams.set("state",m),Array.isArray(l)&&v.searchParams.set("scope",l.join(" ")),c&&(v.searchParams.set("code_challenge",c),v.searchParams.set("code_challenge_method","S256")),d)v.searchParams.set(y,d[y]);window.redirectOAuth2={flow:"authorizationCode",data:{authorizationUrl:a,clientId:s,scopes:l},state:m,successCallback:function(t){var a=t.auth_code;return(0,tslib_1.__awaiter)(r,void 0,void 0,(function(){var t;return(0,tslib_1.__generator)(this,(function(r){switch(r.label){case 0:return r.trys.push([0,3,,4]),[4,fetch(i,{method:"POST",headers:(0,tslib_1.__assign)({"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"},h),body:qs.stringify((0,tslib_1.__assign)((0,tslib_1.__assign)((0,tslib_1.__assign)({client_id:s,client_secret:n},o&&{code_verifier:o}),{code:a,grant_type:"authorization_code",redirect_uri:p||C}),d))})];case 1:return[4,handleResponseCallback(r.sent(),f,w)];case 2:return r.sent(),[3,4];case 3:return t=r.sent(),w(t),[3,4];case 4:return e.clearRedirectData("authorizationCode"),[2]}}))}))},errorCallback:function(t){w(t),e.clearRedirectData("authorizationCode")}},window.open(v.toString())}}),Object.defineProperty(e,"clearRedirectData",{enumerable:!1,configurable:!0,writable:!0,value:function(e){window.redirectOAuth2={flow:e,data:{authorizationUrl:"",clientId:"",scopes:[]},state:"",successCallback:function(){},errorCallback:function(){}}}}),Object.defineProperty(e,"authorizeClientCredentials",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=e.tokenUrl,r=e.clientId,a=e.clientSecret,i=e.scopes,s=void 0===i?[]:i,n=e.extraParams,o=void 0===n?{}:n,c=e.extraHeaders,l=void 0===c?{}:c,u=e.successCallback,d=e.errorCallback;return(0,tslib_1.__awaiter)(this,void 0,void 0,(function(){var e;return(0,tslib_1.__generator)(this,(function(i){switch(i.label){case 0:return i.trys.push([0,3,,4]),[4,fetch(t,{method:"POST",headers:(0,tslib_1.__assign)({"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"},l),body:qs.stringify((0,tslib_1.__assign)({client_id:r,client_secret:a,grant_type:"client_credentials",scope:Array.isArray(s)?s.join(" "):void 0},o))})];case 1:return[4,handleResponseCallback(i.sent(),u,d)];case 2:return i.sent(),[3,4];case 3:return e=i.sent(),d(e),[3,4];case 4:return[2]}}))}))}}),e}();function handleResponseCallback(e,t,r){return(0,tslib_1.__awaiter)(this,void 0,void 0,(function(){var a,i,s,n,o,c;return(0,tslib_1.__generator)(this,(function(l){switch(l.label){case 0:return e.ok?[4,e.json()]:[3,2];case 1:return a=l.sent(),t(a),[3,7];case 2:return i=r,s=Error.bind,(e.headers.get("Content-Type")||"").indexOf("json")>-1?(c=(o=JSON).stringify,[4,e.json()]):[3,4];case 3:return n=c.apply(o,[l.sent()]),[3,6];case 4:return[4,e.text()];case 5:n=l.sent(),l.label=6;case 6:i.apply(void 0,[new(s.apply(Error,[void 0,n]))]),l.label=7;case 7:return[2]}}))}))}function deriveCodeChallenge(e){return(0,tslib_1.__awaiter)(this,void 0,void 0,(function(){var t;return(0,tslib_1.__generator)(this,(function(r){switch(r.label){case 0:return t=utils_1.base64UrlEncode,[4,(0,utils_1.sha256)(e)];case 1:return[2,t.apply(void 0,[r.sent()])]}}))}))}exports.OAuth2=OAuth2,exports.oauth2Instance=new OAuth2,exports.deriveCodeChallenge=deriveCodeChallenge;
|
|
2
2
|
//# sourceMappingURL=OAuth2.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__assign,__extends}from"tslib";import*as React 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}from"./OpenIDConnect";import{OAuth2Flow}from"./OAuth2Flow";import OAuth2TokenInput from"./OAuth2TokenInput";export function requiredValidator(e){if(!e)return"Field is required"}var getCookie=function(e){var t=document.cookie.match("\\b"+e+"=([^;]*)\\b");return t?t[1]:void 0};function fromCookie(e){if("cookie"===e.in)return getCookie(e.name)}var AuthPanel=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return Object.defineProperty(t,"state",{enumerable:!0,configurable:!0,writable:!0,value:{activeScheme:0}}),Object.defineProperty(t,"handleSchemeChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){t.setState({activeScheme:e.idx}),toSessionStorage("securityRequirementName",e.value)}}),t}return __extends(t,e),Object.defineProperty(t,"getDerivedStateFromProps",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=e.operation.security.map((function(e){return e.schemes.map((function(e){return e.id})).join(" and ")})),r=fromSessionStorage("securityRequirementName"),o=t.findIndex((function(e){return e===r}));return{activeScheme:o<0?0:o}}}),Object.defineProperty(t.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this,t=this.props.securityDefaults,r=this.state.activeScheme,o=this.props.operation.security,a=o.map((function(e){return e.schemes.map((function(e){return e.id})).join(" and ")})).map((function(e,t){return{value:e,idx:t}}));return 0===a.length?null:React.createElement(React.Fragment,null,React.createElement(FormWrapper,null,a.length>1&&React.createElement(FormControl,null,React.createElement(FormLabel,null," Security scheme: "),React.createElement(Dropdown,{variant:"dark",fullWidth:!0,options:a,value:a[r].value,onChange:this.handleSchemeChange}))||null,o[r].schemes.map((function(r){var o,a,n,i,u,s,c,m=escapeFormId(r.id);if("apiKey"===r.type){var d=getSecurityDetailsOptions(m,""),p={field:"auth."+m,fullWidth:!0,initialValue:fromCookie(r)||fromSessionStorage("auth."+m)||(null==t?void 0:t[m]),initValue:fromCookie(r)||fromSessionStorage("auth."+m)||(null==t?void 0:t[m]),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return React.createElement(FormControl,{key:m},React.createElement(FormLabel,null," ",r.name,": "),d?React.createElement(FormDropdown,__assign({},p,{options:d})):React.createElement(FormTextField,__assign({},p,{type:"password","data-cy":"apiKey-auth-password"})))}if("http"===r.type){if("basic"===r.scheme){var f=getSecurityDetailsOptions(m,"username");p={field:"auth."+m+".username",fullWidth:!0,initialValue:fromSessionStorage("auth."+m+".username")||(null===(o=null==t?void 0:t[m])||void 0===o?void 0:o.username),initValue:fromSessionStorage("auth."+m+".username")||(null===(a=null==t?void 0:t[m])||void 0===a?void 0:a.username),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return React.createElement(React.Fragment,{key:m},React.createElement(FormControl,null,React.createElement(FormLabel,null," ",l("tryItAuthBasicUsername"),": "),f?React.createElement(FormDropdown,__assign({},p,{options:f})):React.createElement(FormTextField,__assign({},p))),React.createElement(FormControl,null,React.createElement(FormLabel,null," ",l("tryItAuthBasicPassword"),": "),React.createElement(FormTextField,{type:"password","data-cy":"http-auth-password",fullWidth:!0,field:"auth."+m+".password",initialValue:fromSessionStorage("auth."+m+".password")||(null===(n=null==t?void 0:t[m])||void 0===n?void 0:n.password)||"",validateOnBlur:!0,validateOnChange:!0})))}if("bearer"===r.scheme){var h=getSecurityDetailsOptions(m,"");p={field:"auth."+m,fullWidth:!0,initialValue:fromSessionStorage("auth."+m)||(null==t?void 0:t[m]),initValue:fromSessionStorage("auth."+m)||(null==t?void 0:t[m]),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return React.createElement(React.Fragment,{key:m},React.createElement(FormControl,null,React.createElement(FormLabel,null," Bearer Token: "),h?React.createElement(FormDropdown,__assign({},p,{options:h})):React.createElement(FormTextField,__assign({},p,{type:"password",placeholder:"(without 'Bearer')"}))))}}else{if("oauth2"===r.type&&r.flows&&r.flows.clientCredentials)return React.createElement(OAuth2TokenInput,{key:m,flow:r.flows.clientCredentials,server:e.props.activeServer,authCorsProxyUrl:e.props.authCorsProxyUrl,id:m,form:e.props.form,formApi:e.props.formApi,clientId:r.flows.clientCredentials["x-defaultClientId"]||r["x-defaultClientId"],defaultValues:null==t?void 0:t[m]});if("oauth2"===r.type&&r.flows&&r.flows.implicit)return React.createElement(OAuth2Flow,{key:m,authorizationUrl:r.flows.implicit.authorizationUrl,authCorsProxyUrl:e.props.authCorsProxyUrl,scopes:Object.keys((null===(u=null===(i=null==r?void 0:r.flows)||void 0===i?void 0:i.implicit)||void 0===u?void 0:u.scopes)||{}),server:e.props.activeServer,id:m,form:e.props.form,formApi:e.props.formApi,clientId:r.flows.implicit["x-defaultClientId"]||r["x-defaultClientId"],flow:"implicit",defaultValues:null==t?void 0:t[m]});if("oauth2"===r.type&&r.flows&&r.flows.authorizationCode)return React.createElement(OAuth2Flow,{key:m,authorizationUrl:r.flows.authorizationCode.authorizationUrl,tokenUrl:r.flows.authorizationCode.tokenUrl,authCorsProxyUrl:e.props.authCorsProxyUrl,scopes:Object.keys((null===(s=r.flows.authorizationCode)||void 0===s?void 0:s.scopes)||{}),server:e.props.activeServer,id:m,form:e.props.form,formApi:e.props.formApi,clientId:r.flows.authorizationCode["x-defaultClientId"]||r["x-defaultClientId"],flow:"authorizationCode",usePkce:r.flows.authorizationCode["x-usePkce"],defaultValues:null==t?void 0:t[m]});if("oauth2"===r.type){var v=fromSessionStorage("auth."+m+".token")||JSON.stringify(null===(c=null==t?void 0:t[m])||void 0===c?void 0:c.token);return v=v?JSON.parse(v):{},React.createElement(React.Fragment,{key:m},React.createElement(FormControl,null,React.createElement(FormLabel,null," Access Token Type: "),React.createElement(FormTextField,{fullWidth:!0,field:"auth."+m+".token.token_type",initialValue:v.token_type||"Bearer"})),React.createElement(FormControl,null,React.createElement(FormLabel,null," Access Token: "),React.createElement(FormTextField,{type:"password",fullWidth:!0,field:"auth."+m+".token.access_token",validate:requiredValidator,initialValue:v.access_token,validateOnBlur:!0,validateOnChange:!0})))}if("openIdConnect"===r.type)return React.createElement(OpenIDConnect,{key:m,server:e.props.activeServer,authCorsProxyUrl:e.props.authCorsProxyUrl,id:m,form:e.props.form,formApi:e.props.formApi,scheme:r,clientId:r["x-defaultClientId"],defaultValues:null==t?void 0:t[m]})}}))),React.createElement("small",null,React.createElement("strong",null,"Note"),": Your credentials will be saved until the end of the browser session"))}}),t}(React.Component);export{AuthPanel};
|
|
1
|
+
import{__assign,__extends}from"tslib";import*as React 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}from"./OpenIDConnect";import{OAuth2Flow}from"./OAuth2Flow";import OAuth2TokenInput from"./OAuth2TokenInput";export function requiredValidator(e){if(!e)return"Field is required"}var getCookie=function(e){var t=document.cookie.match("\\b"+e+"=([^;]*)\\b");return t?t[1]:void 0};function fromCookie(e){if("cookie"===e.in)return getCookie(e.name)}var AuthPanel=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return Object.defineProperty(t,"state",{enumerable:!0,configurable:!0,writable:!0,value:{activeScheme:0}}),Object.defineProperty(t,"handleSchemeChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){t.setState({activeScheme:e.idx}),toSessionStorage("securityRequirementName",e.value)}}),t}return __extends(t,e),Object.defineProperty(t,"getDerivedStateFromProps",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=e.operation.security.map((function(e){return e.schemes.map((function(e){return e.id})).join(" and ")})),r=fromSessionStorage("securityRequirementName"),o=t.findIndex((function(e){return e===r}));return{activeScheme:o<0?0:o}}}),Object.defineProperty(t.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this,t=this.props.securityDefaults,r=this.state.activeScheme,o=this.props.operation.security,a=o.map((function(e){return e.schemes.map((function(e){return e.id})).join(" and ")})).map((function(e,t){return{value:e,idx:t}}));return 0===a.length?null:React.createElement(React.Fragment,null,React.createElement(FormWrapper,null,a.length>1&&React.createElement(FormControl,null,React.createElement(FormLabel,null," Security scheme: "),React.createElement(Dropdown,{variant:"dark",fullWidth:!0,options:a,value:a[r].value,onChange:this.handleSchemeChange}))||null,o[r].schemes.map((function(r){var o,a,n,i,u,s,c,m=escapeFormId(r.id);if("apiKey"===r.type){var d=getSecurityDetailsOptions(m,""),p={field:"auth."+m,fullWidth:!0,initialValue:fromCookie(r)||fromSessionStorage("auth."+m)||(null==t?void 0:t[m]),initValue:fromCookie(r)||fromSessionStorage("auth."+m)||(null==t?void 0:t[m]),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return React.createElement(FormControl,{key:m},React.createElement(FormLabel,null," ",r.name,": "),d?React.createElement(FormDropdown,__assign({},p,{options:d})):React.createElement(FormTextField,__assign({},p,{type:"password","data-cy":"apiKey-auth-password"})))}if("http"===r.type){if("basic"===r.scheme){var f=getSecurityDetailsOptions(m,"username");p={field:"auth."+m+".username",fullWidth:!0,initialValue:fromSessionStorage("auth."+m+".username")||(null===(o=null==t?void 0:t[m])||void 0===o?void 0:o.username),initValue:fromSessionStorage("auth."+m+".username")||(null===(a=null==t?void 0:t[m])||void 0===a?void 0:a.username),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return React.createElement(React.Fragment,{key:m},React.createElement(FormControl,null,React.createElement(FormLabel,null," ",l("tryItAuthBasicUsername"),": "),f?React.createElement(FormDropdown,__assign({},p,{options:f})):React.createElement(FormTextField,__assign({},p))),React.createElement(FormControl,null,React.createElement(FormLabel,null," ",l("tryItAuthBasicPassword"),": "),React.createElement(FormTextField,{type:"password","data-cy":"http-auth-password",fullWidth:!0,field:"auth."+m+".password",initialValue:fromSessionStorage("auth."+m+".password")||(null===(n=null==t?void 0:t[m])||void 0===n?void 0:n.password)||"",validateOnBlur:!0,validateOnChange:!0})))}if("bearer"===r.scheme){var h=getSecurityDetailsOptions(m,"");p={field:"auth."+m,fullWidth:!0,initialValue:fromSessionStorage("auth."+m)||(null==t?void 0:t[m]),initValue:fromSessionStorage("auth."+m)||(null==t?void 0:t[m]),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return React.createElement(React.Fragment,{key:m},React.createElement(FormControl,null,React.createElement(FormLabel,null," Bearer Token: "),h?React.createElement(FormDropdown,__assign({},p,{options:h})):React.createElement(FormTextField,__assign({},p,{type:"password",placeholder:"(without 'Bearer')"}))))}}else{if("oauth2"===r.type&&r.flows&&r.flows.clientCredentials)return React.createElement(OAuth2TokenInput,{key:m,flow:r.flows.clientCredentials,server:e.props.activeServer,authCorsProxyUrl:e.props.authCorsProxyUrl,id:m,form:e.props.form,formApi:e.props.formApi,clientId:r.flows.clientCredentials["x-defaultClientId"]||r["x-defaultClientId"],defaultValues:null==t?void 0:t[m]});if("oauth2"===r.type&&r.flows&&r.flows.implicit)return React.createElement(OAuth2Flow,{key:m,authorizationUrl:r.flows.implicit.authorizationUrl,authCorsProxyUrl:e.props.authCorsProxyUrl,scopes:Object.keys((null===(u=null===(i=null==r?void 0:r.flows)||void 0===i?void 0:i.implicit)||void 0===u?void 0:u.scopes)||{}),server:e.props.activeServer,id:m,form:e.props.form,formApi:e.props.formApi,clientId:r.flows.implicit["x-defaultClientId"]||r["x-defaultClientId"],flow:"implicit",defaultValues:null==t?void 0:t[m]});if("oauth2"===r.type&&r.flows&&r.flows.authorizationCode)return React.createElement(OAuth2Flow,{key:m,authorizationUrl:r.flows.authorizationCode.authorizationUrl,tokenUrl:r.flows.authorizationCode.tokenUrl,authCorsProxyUrl:e.props.authCorsProxyUrl,scopes:Object.keys((null===(s=r.flows.authorizationCode)||void 0===s?void 0:s.scopes)||{}),server:e.props.activeServer,id:m,form:e.props.form,formApi:e.props.formApi,clientId:r.flows.authorizationCode["x-defaultClientId"]||r["x-defaultClientId"],flow:"authorizationCode",tokenEndpointAuthMethod:r.flows.authorizationCode["x-tokenEndpointAuthMethod"],usePkce:r.flows.authorizationCode["x-usePkce"],defaultValues:null==t?void 0:t[m]});if("oauth2"===r.type){var v=fromSessionStorage("auth."+m+".token")||JSON.stringify(null===(c=null==t?void 0:t[m])||void 0===c?void 0:c.token);return v=v?JSON.parse(v):{},React.createElement(React.Fragment,{key:m},React.createElement(FormControl,null,React.createElement(FormLabel,null," Access Token Type: "),React.createElement(FormTextField,{fullWidth:!0,field:"auth."+m+".token.token_type",initialValue:v.token_type||"Bearer"})),React.createElement(FormControl,null,React.createElement(FormLabel,null," Access Token: "),React.createElement(FormTextField,{type:"password",fullWidth:!0,field:"auth."+m+".token.access_token",validate:requiredValidator,initialValue:v.access_token,validateOnBlur:!0,validateOnChange:!0})))}if("openIdConnect"===r.type)return React.createElement(OpenIDConnect,{key:m,server:e.props.activeServer,authCorsProxyUrl:e.props.authCorsProxyUrl,id:m,form:e.props.form,formApi:e.props.formApi,scheme:r,clientId:r["x-defaultClientId"],defaultValues:null==t?void 0:t[m]})}}))),React.createElement("small",null,React.createElement("strong",null,"Note"),": Your credentials will be saved until the end of the browser session"))}}),t}(React.Component);export{AuthPanel};
|
|
2
2
|
//# sourceMappingURL=AuthPanel.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__assign,__awaiter,__extends,__generator,__makeTemplateObject}from"tslib";import*as React from"react";import{styled,OptionsContext}from"../../redoc-lib";import{LinearProgress}from"../common/LinearProgress";import{FormControl,FormLabel,FormError,FormWrapper,FormWarning}from"../common/form";import{FormDropdown,FormTextField,TextField}from"../common/TextField";import{Checkbox}from"../common/Checkbox";import{Button}from"../shared";import{OAuth2,deriveCodeChallenge}from"../../services/OAuth2";import{fromSessionStorage,getSecurityDetailsOptions}from"../../utils";import{isEmptyObject,randString}from"../../services/utils";import{normalizeUrlProtocol}from"./utils";import Scope from"./Scope";function requiredValidator(e){if(!e)return"Field is required"}var OAuth2Flow=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return Object.defineProperty(t,"state",{enumerable:!0,configurable:!0,writable:!0,value:{error:null,loading:!1,showPkceOptions:!1}}),Object.defineProperty(t,"clearToken",{enumerable:!0,configurable:!0,writable:!0,value:function(){t.props.formApi.setValue("auth."+t.props.id+".token","")}}),Object.defineProperty(t,"togglePkceOptions",{enumerable:!0,configurable:!0,writable:!0,value:function(){t.setState((function(e){return{showPkceOptions:!e.showPkceOptions}}))}}),Object.defineProperty(t,"handleCodeVerifierChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var r=e.target.value;return __awaiter(t,void 0,void 0,(function(){var e;return __generator(this,(function(t){switch(t.label){case 0:return[4,deriveCodeChallenge(r)];case 1:return e=t.sent(),this.setState({codeVerifier:r,validCodeChallenge:e}),[2]}}))}))}}),t}return __extends(t,e),Object.defineProperty(t.prototype,"values",{get:function(){var e,t;return(null===(t=null===(e=this.props.form.values)||void 0===e?void 0:e.auth)||void 0===t?void 0:t[this.props.id])||{}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"errors",{get:function(){var e,t;return(null===(t=null===(e=this.props.form.errors)||void 0===e?void 0:e.auth)||void 0===t?void 0:t[this.props.id])||{}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"pkceInputActionButtonProps",{get:function(){var e=this;if(void 0!==this.state.codeVerifier&&this.state.codeChallenge!==this.state.validCodeChallenge)return{label:"sync",onClick:function(){e.state.codeVerifier&&e.setState({codeChallenge:e.state.validCodeChallenge})}}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"componentDidMount",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this;if(this.props.usePkce){var t=randString(43);deriveCodeChallenge(t).then((function(r){e.setState({codeVerifier:t,codeChallenge:r,validCodeChallenge:r})}))}}}),Object.defineProperty(t.prototype,"handleAuthorize",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=this;if(e){this.props.formApi.validate();var r=this.props,n=r.flow,o=r.usePkce,a=r.id,l=r.tokenUrl,i=r.authCorsProxyUrl;if(isEmptyObject(this.errors)){this.setState({loading:!0,error:null});var
|
|
1
|
+
import{__assign,__awaiter,__extends,__generator,__makeTemplateObject}from"tslib";import*as React from"react";import{styled,OptionsContext}from"../../redoc-lib";import{LinearProgress}from"../common/LinearProgress";import{FormControl,FormLabel,FormError,FormWrapper,FormWarning}from"../common/form";import{FormDropdown,FormTextField,TextField}from"../common/TextField";import{Checkbox}from"../common/Checkbox";import{Button}from"../shared";import{OAuth2,deriveCodeChallenge}from"../../services/OAuth2";import{fromSessionStorage,getSecurityDetailsOptions}from"../../utils";import{isEmptyObject,randString}from"../../services/utils";import{getOAuth2TokenEndpointAuthHeader,normalizeUrlProtocol,validateTokenEndpointMethod}from"./utils";import Scope from"./Scope";function requiredValidator(e){if(!e)return"Field is required"}var OAuth2Flow=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return Object.defineProperty(t,"state",{enumerable:!0,configurable:!0,writable:!0,value:{error:null,loading:!1,showPkceOptions:!1}}),Object.defineProperty(t,"clearToken",{enumerable:!0,configurable:!0,writable:!0,value:function(){t.props.formApi.setValue("auth."+t.props.id+".token","")}}),Object.defineProperty(t,"togglePkceOptions",{enumerable:!0,configurable:!0,writable:!0,value:function(){t.setState((function(e){return{showPkceOptions:!e.showPkceOptions}}))}}),Object.defineProperty(t,"handleCodeVerifierChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var r=e.target.value;return __awaiter(t,void 0,void 0,(function(){var e;return __generator(this,(function(t){switch(t.label){case 0:return[4,deriveCodeChallenge(r)];case 1:return e=t.sent(),this.setState({codeVerifier:r,validCodeChallenge:e}),[2]}}))}))}}),t}return __extends(t,e),Object.defineProperty(t.prototype,"values",{get:function(){var e,t;return(null===(t=null===(e=this.props.form.values)||void 0===e?void 0:e.auth)||void 0===t?void 0:t[this.props.id])||{}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"errors",{get:function(){var e,t;return(null===(t=null===(e=this.props.form.errors)||void 0===e?void 0:e.auth)||void 0===t?void 0:t[this.props.id])||{}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"pkceInputActionButtonProps",{get:function(){var e=this;if(void 0!==this.state.codeVerifier&&this.state.codeChallenge!==this.state.validCodeChallenge)return{label:"sync",onClick:function(){e.state.codeVerifier&&e.setState({codeChallenge:e.state.validCodeChallenge})}}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"componentDidMount",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this;if(this.props.usePkce){var t=randString(43);deriveCodeChallenge(t).then((function(r){e.setState({codeVerifier:t,codeChallenge:r,validCodeChallenge:r})}))}}}),Object.defineProperty(t.prototype,"handleAuthorize",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=this;if(e){this.props.formApi.validate();var r=this.props,n=r.flow,o=r.usePkce,a=r.id,l=r.tokenUrl,i=r.authCorsProxyUrl,c=r.tokenEndpointAuthMethod;if(isEmptyObject(this.errors)){this.setState({loading:!0,error:null});var s=i?i+normalizeUrlProtocol(e):e,u=i&&l?i+normalizeUrlProtocol(l):l,d=this.props.formApi.getValue("auth."+a+".scopes"),p={authorizationUrl:s.startsWith("http")?s:this.props.server+s,clientId:this.values.client_id,scopes:d,redirectUri:this.context.oAuth2RedirectURI,routingBasePath:this.context.routingBasePath,successCallback:function(e){t.props.formApi.setValue("auth."+t.props.id+".token",e),t.setState({loading:!1,error:null})},errorCallback:function(e){t.setState({loading:!1,error:(null==e?void 0:e.message)||"Failed to retrieve the access token"})}};"implicit"===n&&OAuth2.authorizeImplicit(p),validateTokenEndpointMethod(c)?"authorizationCode"===n&&OAuth2.authorizeAuthorizationCode(__assign(__assign(__assign({},p),{tokenUrl:(null==u?void 0:u.startsWith("http"))?u:this.props.server+u,clientSecret:this.values.client_secret,extraHeaders:getOAuth2TokenEndpointAuthHeader({authMethod:c,clientId:this.values.client_id,clientSecret:this.values.client_secret})}),o&&{codeVerifier:this.state.codeVerifier,codeChallenge:this.state.codeChallenge})):console.log("Unsupported token endpoint auth method: "+c)}}}}),Object.defineProperty(t.prototype,"handleLogout",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.clearToken(),this.setState({error:null})}}),Object.defineProperty(t.prototype,"handleCancel",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.setState({loading:!1,error:null}),OAuth2.clearRedirectData(this.props.flow)}}),Object.defineProperty(t.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this,t=this.state,r=t.error,n=t.loading,o=this.props,a=o.id,l=o.scopes,i=o.authorizationUrl,c=o.flow,s=o.usePkce,u=o.defaultValues;if(!i)return React.createElement(FormError,null,"No flow info");var d=fromSessionStorage("auth."+a+".token")||JSON.stringify(null==u?void 0:u.token);d=d?JSON.parse(d):"";var p=getSecurityDetailsOptions(a,"client_id"),m={field:"auth."+a+".client_id",fullWidth:!0,initialValue:fromSessionStorage("auth."+a+".client_id")||this.props.clientId||(null==u?void 0:u.client_id),initValue:fromSessionStorage("auth."+a+".client_id")||this.props.clientId||(null==u?void 0:u.client_id),placeholder:"Your OAuth2 app Client ID",validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0};return React.createElement("div",null,React.createElement(FormWrapper,null,React.createElement(FormControl,null,React.createElement(FormLabel,null," Client ID: "),p?React.createElement(FormDropdown,__assign({},m,{options:p})):React.createElement(FormTextField,__assign({},m,{"data-cy":"client-id-input"}))),"authorizationCode"===c&&React.createElement(React.Fragment,null,(!(null==s?void 0:s.hideClientSecretInput)||!s)&&React.createElement(FormControl,null,React.createElement(FormLabel,null,"Client Secret:"),React.createElement(FormTextField,{type:"password",fullWidth:!0,field:"auth."+a+".client_secret",initialValue:fromSessionStorage("auth."+a+".client_secret")||(null==u?void 0:u.client_secret),validateOnBlur:!0,validateOnChange:!0,"data-cy":"client-secret-input"})),s&&!s.disableManualConfiguration&&React.createElement(PkceOptionsWrapper,null,React.createElement(Checkbox,{id:"pkce-opitons-toggle",label:"Configure PKCE manually",checked:this.state.showPkceOptions,onChange:this.togglePkceOptions,"data-cy":"pkce-options-toggle"}),this.state.showPkceOptions&&React.createElement(PkceDetails,null,React.createElement(FormControl,null,React.createElement(FormLabel,null,"Code Verifier"),React.createElement(TextField,{fullWidth:!0,value:this.state.codeVerifier,onChange:this.handleCodeVerifierChange,"data-cy":"code-verifier-input"})),React.createElement(FormControl,null,React.createElement(FormLabel,null,"Code Challenge"),React.createElement(TextField,{fullWidth:!0,value:this.state.codeChallenge,onChange:function(t){var r=t.target.value;e.setState({codeChallenge:r})},inputActionButton:this.pkceInputActionButtonProps,"data-cy":"code-challenge-input"}))))),React.createElement(FormTextField,{fullWidth:!0,field:"auth."+a+".token",type:"hidden",initialValue:d}),React.createElement(Scope,{id:a,scopes:l}),this.values.token&&this.values.token.access_token?React.createElement(FormControl,null,React.createElement(FormLabel,null," Access Token: "),React.createElement(TextField,{disabled:!0,type:"password",fullWidth:!0,value:this.values.token.access_token})):null),React.createElement(ButtonsWrapper,null,this.values.token&&this.values.token.access_token?React.createElement(Button,{fullWidth:!0,onClick:function(){e.handleLogout()}},"Log out"):n?React.createElement(React.Fragment,null,React.createElement(Button,{fullWidth:!0,onClick:function(){e.handleCancel()}},"Cancel"),React.createElement(LinearProgress,null)):React.createElement(Button,{fullWidth:!0,disabled:!isEmptyObject(this.errors),onClick:function(){e.handleAuthorize(i)}},"Authorize")),n||r||!this.values.token||!this.values.token.access_token&&React.createElement(FormWrapper,null,React.createElement(FormControl,null,n?React.createElement(FormWarning,null,"Please, finish your authorization flow or cancel authorization."):r?React.createElement(React.Fragment,null,React.createElement(OriginalErrorMessage,null,React.createElement(FormError,null,r))):this.values.token&&this.values.token.access_token?null:React.createElement(FormWarning,null," No Access Token. Please, Authorize. "))))}}),Object.defineProperty(t,"contextType",{enumerable:!0,configurable:!0,writable:!0,value:OptionsContext}),t}(React.Component);export{OAuth2Flow};var templateObject_1,templateObject_2,templateObject_3,templateObject_4,OriginalErrorMessage=styled.div(templateObject_1||(templateObject_1=__makeTemplateObject(["\n font-family: monospace;\n margin-top: 10px;\n line-height: 1;\n padding-left: 10px;\n border-left: 1px solid gray;\n"],["\n font-family: monospace;\n margin-top: 10px;\n line-height: 1;\n padding-left: 10px;\n border-left: 1px solid gray;\n"]))),ButtonsWrapper=styled.div(templateObject_2||(templateObject_2=__makeTemplateObject(["\n margin-bottom: 15px;\n"],["\n margin-bottom: 15px;\n"]))),PkceOptionsWrapper=styled.div(templateObject_3||(templateObject_3=__makeTemplateObject(["\n padding: 8px 0 20px;\n"],["\n padding: 8px 0 20px;\n"]))),PkceDetails=styled.div(templateObject_4||(templateObject_4=__makeTemplateObject(["\n padding: 4px 0;\n"],["\n padding: 4px 0;\n"])));
|
|
2
2
|
//# sourceMappingURL=OAuth2Flow.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__assign,__awaiter,__extends,__generator}from"tslib";import*as React from"react";import{FormControl,FormLabel,FormError,FormWrapper,FormHeader,TokenField,TokenValue,TokenClear,TokenShowHide}from"../common/form";import{fromSessionStorage,getSecurityDetailsOptions,toSessionStorage}from"../../utils";import{OAuth2}from"../../services/OAuth2";import{Button}from"../shared";import{FormDropdown,FormTextField}from"../common/TextField";import Scope from"./Scope";import{normalizeUrlProtocol}from"./utils";function validateToken(e){if(!e)return"Token is required"}var OAuth2TokenInput=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return Object.defineProperty(t,"state",{enumerable:!0,configurable:!0,writable:!0,value:{error:"",loading:!1,tokenMasked:!0}}),Object.defineProperty(t,"clearToken",{enumerable:!0,configurable:!0,writable:!0,value:function(){t.props.formApi.setValue("auth."+t.props.id+".token",""),toSessionStorage("auth."+t.props.id+".token","")}}),Object.defineProperty(t,"toggleTokenMask",{enumerable:!0,configurable:!0,writable:!0,value:function(){t.setState({tokenMasked:!t.state.tokenMasked})}}),Object.defineProperty(t,"requestToken",{enumerable:!0,configurable:!0,writable:!0,value:function(){return __awaiter(t,void 0,void 0,(function(){var e,t,o,r,n,i,l,a=this;return __generator(this,(function(
|
|
1
|
+
import{__assign,__awaiter,__extends,__generator}from"tslib";import*as React from"react";import{FormControl,FormLabel,FormError,FormWrapper,FormHeader,TokenField,TokenValue,TokenClear,TokenShowHide}from"../common/form";import{fromSessionStorage,getSecurityDetailsOptions,toSessionStorage}from"../../utils";import{OAuth2}from"../../services/OAuth2";import{Button}from"../shared";import{FormDropdown,FormTextField}from"../common/TextField";import Scope from"./Scope";import{getOAuth2TokenEndpointAuthHeader,normalizeUrlProtocol,validateTokenEndpointMethod}from"./utils";function validateToken(e){if(!e)return"Token is required"}var OAuth2TokenInput=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return Object.defineProperty(t,"state",{enumerable:!0,configurable:!0,writable:!0,value:{error:"",loading:!1,tokenMasked:!0}}),Object.defineProperty(t,"clearToken",{enumerable:!0,configurable:!0,writable:!0,value:function(){t.props.formApi.setValue("auth."+t.props.id+".token",""),toSessionStorage("auth."+t.props.id+".token","")}}),Object.defineProperty(t,"toggleTokenMask",{enumerable:!0,configurable:!0,writable:!0,value:function(){t.setState({tokenMasked:!t.state.tokenMasked})}}),Object.defineProperty(t,"requestToken",{enumerable:!0,configurable:!0,writable:!0,value:function(){return __awaiter(t,void 0,void 0,(function(){var e,t,o,r,n,i,l,a,s=this;return __generator(this,(function(c){switch(c.label){case 0:return this.state.loading?[2]:(e=this.props,t=e.server,o=e.flow,r=e.authCorsProxyUrl,n=r&&o.tokenUrl?r+normalizeUrlProtocol(o.tokenUrl):o.tokenUrl,this.errors.client_id||this.errors.client_secret?(console.log("Provide client_id and client_secret"),[2]):(i=this.values.client_id,l=this.values.client_secret,i&&l?(this.setState({loading:!0}),a=o["x-tokenEndpointAuthMethod"],validateTokenEndpointMethod(a)?[4,OAuth2.authorizeClientCredentials({tokenUrl:n.startsWith("http")?n:t+n,clientId:i,clientSecret:l,scopes:this.values.scopes,extraHeaders:getOAuth2TokenEndpointAuthHeader({authMethod:a,clientId:i,clientSecret:l}),successCallback:function(e){s.props.formApi.setValue("auth."+s.props.id+".token",e),s.setState({loading:!1})},errorCallback:function(e){s.clearToken(),s.setState({error:e.message,loading:!1})}})]:(console.log("Unsupported token endpoint auth method: "+a),[2])):(console.log("Provide client_id and client_secret"),[2])));case 1:return c.sent(),[2]}}))}))}}),t}return __extends(t,e),Object.defineProperty(t.prototype,"values",{get:function(){var e,t,o;return(null===(o=null===(t=null===(e=this.props.form)||void 0===e?void 0:e.values)||void 0===t?void 0:t.auth)||void 0===o?void 0:o[this.props.id])||{}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"errors",{get:function(){var e,t;return(null===(t=null===(e=this.props.form.errors)||void 0===e?void 0:e.auth)||void 0===t?void 0:t[this.props.id])||{}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.state,t=e.loading,o=e.error,r=e.tokenMasked,n=this.props,i=n.id,l=n.defaultValues,a=Object.keys(this.props.flow.scopes),s=fromSessionStorage("auth."+i+".token")||JSON.stringify(null==l?void 0:l.token);s=s?JSON.parse(s):"";var c=getSecurityDetailsOptions(i,"client_id"),u={field:"auth."+i+".client_id",fullWidth:!0,initialValue:fromSessionStorage("auth."+i+".client_id")||this.props.clientId||(null==l?void 0:l.client_id),initValue:fromSessionStorage("auth."+i+".client_id")||this.props.clientId||(null==l?void 0:l.client_id),placeholder:"Your OAuth2 app Client ID"};return React.createElement(React.Fragment,null,React.createElement(FormWrapper,null,React.createElement(FormControl,null,React.createElement(FormLabel,null,"Client ID:"),c?React.createElement(FormDropdown,__assign({},u,{options:c})):React.createElement(FormTextField,__assign({},u,{type:"password"}))),React.createElement(FormControl,null,React.createElement(FormLabel,null,"Client Secret:"),React.createElement(FormTextField,{type:"password",fullWidth:!0,field:"auth."+i+".client_secret",initialValue:fromSessionStorage("auth."+i+".client_secret")||(null==l?void 0:l.client_secret)})),React.createElement(FormTextField,{fullWidth:!0,field:"auth."+i+".token",type:"hidden",initialValue:s,validate:validateToken}),React.createElement(Scope,{id:i,scopes:a})),React.createElement(Button,{color:"primary",onClick:this.requestToken,blinking:t},t?"Loading...":"Request Token"),React.createElement(FormHeader,null," Access Token "),o?React.createElement(FormError,{style:{marginBottom:"1em"}},"Failed to request token: ",React.createElement("pre",null,o)," "):this.values.token&&this.values.token.access_token?React.createElement(TokenField,null,React.createElement(TokenValue,{length:this.values.token.access_token.length,masked:r},this.values.token.access_token),React.createElement(TokenShowHide,{onClick:this.toggleTokenMask},r?"Show":"Hide"," "),React.createElement(TokenClear,{onClick:this.clearToken}," Clear ")):React.createElement(FormError,{style:{marginBottom:"1em"}},"No token"))}}),t}(React.Component);export{OAuth2TokenInput};export default OAuth2TokenInput;
|
|
2
2
|
//# sourceMappingURL=OAuth2TokenInput.js.map
|
|
@@ -12,3 +12,9 @@ export declare function updateVariablesStorage(name: string, value: string): voi
|
|
|
12
12
|
export declare function unescapeQueryParams(params: GenericObject): GenericObject;
|
|
13
13
|
export declare function getFileNameFromHeaders(headers: Record<string, string>): string;
|
|
14
14
|
export declare const makeRequestInterceptor: ({ requestInterceptor, sendXUserAgentInTryIt, disableTryItRequestUrlEncoding, }: Pick<RedocProNormalizedOptions, 'requestInterceptor' | 'sendXUserAgentInTryIt' | 'disableTryItRequestUrlEncoding'>, operation: OperationModel, securitySchemaAuth?: string | undefined) => (req: Request) => void | Request;
|
|
15
|
+
export declare const validateTokenEndpointMethod: (token: string[] | string | undefined) => boolean;
|
|
16
|
+
export declare const getOAuth2TokenEndpointAuthHeader: ({ authMethod, clientId, clientSecret, }: {
|
|
17
|
+
authMethod?: string | string[] | undefined;
|
|
18
|
+
clientId: string;
|
|
19
|
+
clientSecret: string;
|
|
20
|
+
}) => Record<'Authorization', string> | GenericObject;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__assign}from"tslib";import{fromSessionStorage,getParameterValue,setParameterValue,setSecurityDetails,toSessionStorage,unescapeFormId}from"../../utils";export function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}export function updateStorage(e){if(e.values.auth)for(var r=0,t=Object.keys(e.values.auth);r<t.length;r++){var a=t[r],n=e.values.auth[a];setSecurityDetails(a,n)}updateParameterStorage(e)}function updateParameterStorage(e){for(var r,t=0,a=["path","query","header","cookie"];t<a.length;t++){var n=a[t];if(null===(r=e.values)||void 0===r?void 0:r[n])for(var i=0,o=Object.keys(e.values[n]);i<o.length;i++){var s=o[i];setParameterValue(n,s,e.values[n][s])}}}export var getParameters=function(e,r){return e.filter((function(e){return e.in===r})).reduce((function(e,r){var t=r.in,a=r.name;return e[a]=getParameterValue(t||"",a),e}),{})};var pathTemplateRegExp=/(?:{)(\w+)(?:})/g;export function getServerWithVariables(e,r){void 0===r&&(r=0);var t=e[r],a=getDefaultOrStoredVariables(t);return __assign(__assign({},t),{variables:a})}export function getInitialServerWithVariables(e){var r=fromSessionStorage("serverUrl"),t=e.find((function(e){return e.url===r}))||e[0],a=getDefaultOrStoredVariables(t);return __assign(__assign({},t),{variables:a})}export function expandVariables(e,r){return void 0===r&&(r={}),e.replace(pathTemplateRegExp,(function(e,t){return r[t]||e}))}export function expandDefaultServerVariables(e,r){return void 0===r&&(r={}),e.replace(pathTemplateRegExp,(function(e,t){return r[t]&&r[t].default||e}))}export function getDefaultOrStoredVariables(e){if(!(null==e?void 0:e.variables))return{};var r=fromSessionStorage("variables"),t=r&&JSON.parse(r)||{},a={};return Object.entries(e.variables||{}).forEach((function(e){var r=e[0],n=e[1];a[r]=t[r]||n.default||""})),a}export function updateVariablesStorage(e,r){var t,a=fromSessionStorage("variables"),n=a&&JSON.parse(a)||{};toSessionStorage("variables",JSON.stringify(__assign(__assign({},n),((t={})[e]=r,t))))}export function unescapeQueryParams(e){return Object.entries(e).reduce((function(e,r){var t=r[0],a=r[1];return e[unescapeFormId(t)]=a,e}),{})}export function getFileNameFromHeaders(e){for(var r="filename=",t=0,a=Object.entries(e);t<a.length;t++){var n=a[t],i=n[0],o=n[1];if("content-disposition"===i.toLowerCase()){var s=o.split(";").find((function(e){return e.trim().startsWith(r)}));if(s)return s.split(r)[1]}}return""}export var makeRequestInterceptor=function(e,r,t){var a=e.requestInterceptor,n=e.sendXUserAgentInTryIt,i=e.disableTryItRequestUrlEncoding;return function(e){var o,s,u,l;i&&(e=__assign(__assign({},e),{url:decodeURIComponent(e.url)})),n&&(e.headers["X-User-Agent"]="Redocly Try it API console");var
|
|
1
|
+
import{__assign}from"tslib";import{fromSessionStorage,getParameterValue,setParameterValue,setSecurityDetails,toSessionStorage,unescapeFormId}from"../../utils";export function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}export function updateStorage(e){if(e.values.auth)for(var r=0,t=Object.keys(e.values.auth);r<t.length;r++){var a=t[r],n=e.values.auth[a];setSecurityDetails(a,n)}updateParameterStorage(e)}function updateParameterStorage(e){for(var r,t=0,a=["path","query","header","cookie"];t<a.length;t++){var n=a[t];if(null===(r=e.values)||void 0===r?void 0:r[n])for(var i=0,o=Object.keys(e.values[n]);i<o.length;i++){var s=o[i];setParameterValue(n,s,e.values[n][s])}}}export var getParameters=function(e,r){return e.filter((function(e){return e.in===r})).reduce((function(e,r){var t=r.in,a=r.name;return e[a]=getParameterValue(t||"",a),e}),{})};var pathTemplateRegExp=/(?:{)(\w+)(?:})/g;export function getServerWithVariables(e,r){void 0===r&&(r=0);var t=e[r],a=getDefaultOrStoredVariables(t);return __assign(__assign({},t),{variables:a})}export function getInitialServerWithVariables(e){var r=fromSessionStorage("serverUrl"),t=e.find((function(e){return e.url===r}))||e[0],a=getDefaultOrStoredVariables(t);return __assign(__assign({},t),{variables:a})}export function expandVariables(e,r){return void 0===r&&(r={}),e.replace(pathTemplateRegExp,(function(e,t){return r[t]||e}))}export function expandDefaultServerVariables(e,r){return void 0===r&&(r={}),e.replace(pathTemplateRegExp,(function(e,t){return r[t]&&r[t].default||e}))}export function getDefaultOrStoredVariables(e){if(!(null==e?void 0:e.variables))return{};var r=fromSessionStorage("variables"),t=r&&JSON.parse(r)||{},a={};return Object.entries(e.variables||{}).forEach((function(e){var r=e[0],n=e[1];a[r]=t[r]||n.default||""})),a}export function updateVariablesStorage(e,r){var t,a=fromSessionStorage("variables"),n=a&&JSON.parse(a)||{};toSessionStorage("variables",JSON.stringify(__assign(__assign({},n),((t={})[e]=r,t))))}export function unescapeQueryParams(e){return Object.entries(e).reduce((function(e,r){var t=r[0],a=r[1];return e[unescapeFormId(t)]=a,e}),{})}export function getFileNameFromHeaders(e){for(var r="filename=",t=0,a=Object.entries(e);t<a.length;t++){var n=a[t],i=n[0],o=n[1];if("content-disposition"===i.toLowerCase()){var s=o.split(";").find((function(e){return e.trim().startsWith(r)}));if(s)return s.split(r)[1]}}return""}export var makeRequestInterceptor=function(e,r,t){var a=e.requestInterceptor,n=e.sendXUserAgentInTryIt,i=e.disableTryItRequestUrlEncoding;return function(e){var o,s,u,l;i&&(e=__assign(__assign({},e),{url:decodeURIComponent(e.url)})),n&&(e.headers["X-User-Agent"]="Redocly Try it API console");var c=(null===(s=null===(o=null==r?void 0:r.requestValues)||void 0===o?void 0:o.header)||void 0===s?void 0:s.authorization)||(null===(l=null===(u=null==r?void 0:r.requestValues)||void 0===u?void 0:u.header)||void 0===l?void 0:l.Authorization);return!t&&c&&(e.headers.Authorization=c),a?a(e,r):e}};export var validateTokenEndpointMethod=function(e){if(!e)return!0;var r=Array.isArray(e)?e:[e];return!(r.length&&!r.includes("none")&&!r.includes("client_secret_basic"))};export var getOAuth2TokenEndpointAuthHeader=function(e){var r=e.authMethod,t=e.clientId,a=e.clientSecret;return"client_secret_basic"===r||Array.isArray(r)&&r.includes("client_secret_basic")?{Authorization:"Basic "+btoa(t+":"+a)}:{}};
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|