@redocly/reference-docs 2.12.1 → 2.12.2

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.
@@ -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"),Scope_1=(0,tslib_1.__importDefault)(require("./Scope")),shared_1=require("../shared"),OAuth2_1=require("../../services/OAuth2"),utils_1=require("../../utils"),utils_2=require("./utils"),utils_3=require("../../services/utils");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;return void 0!==this.state.codeVerifier&&this.state.codeChallenge!==this.state.validCodeChallenge?{label:"sync",onClick:function(){e.state.codeVerifier&&e.setState({codeChallenge:e.state.validCodeChallenge})}}:void 0},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,OAuth2_1.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,a=r.id,n=r.tokenUrl,o=r.authCorsProxyUrl;if((0,utils_3.isEmptyObject)(this.errors)){this.setState({loading:!0,error:null});var c=o?o+(0,utils_2.normalizeUrlProtocol)(e):e,s=o&&n?o+(0,utils_2.normalizeUrlProtocol)(n):n,u=this.props.formApi.getValue("auth."+a+".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,a=i.id,n=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."+a+".token")||JSON.stringify(null==u?void 0:u.token);d=d?JSON.parse(d):"";var p=(0,utils_1.getSecurityDetailsOptions)(a,"client_id"),h={field:"auth."+a+".client_id",fullWidth:!0,initialValue:(0,utils_1.fromSessionStorage)("auth."+a+".client_id")||this.props.clientId||(null==u?void 0:u.client_id),initValue:(0,utils_1.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(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,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."+a+".client_secret",initialValue:(0,utils_1.fromSessionStorage)("auth."+a+".client_secret")||(null==u?void 0:u.client_secret),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0,"data-cy":"client-secret-input"})),s&&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."+a+".token",type:"hidden",initialValue:d}),React.createElement(Scope_1.default,{id:a,scopes:n}),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_3.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"),Scope_1=(0,tslib_1.__importDefault)(require("./Scope")),shared_1=require("../shared"),OAuth2_1=require("../../services/OAuth2"),utils_1=require("../../utils"),utils_2=require("./utils"),utils_3=require("../../services/utils");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;return void 0!==this.state.codeVerifier&&this.state.codeChallenge!==this.state.validCodeChallenge?{label:"sync",onClick:function(){e.state.codeVerifier&&e.setState({codeChallenge:e.state.validCodeChallenge})}}:void 0},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,OAuth2_1.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,a=r.id,n=r.tokenUrl,o=r.authCorsProxyUrl;if((0,utils_3.isEmptyObject)(this.errors)){this.setState({loading:!0,error:null});var c=o?o+(0,utils_2.normalizeUrlProtocol)(e):e,s=o&&n?o+(0,utils_2.normalizeUrlProtocol)(n):n,u=this.props.formApi.getValue("auth."+a+".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,a=i.id,n=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."+a+".token")||JSON.stringify(null==u?void 0:u.token);d=d?JSON.parse(d):"";var p=(0,utils_1.getSecurityDetailsOptions)(a,"client_id"),h={field:"auth."+a+".client_id",fullWidth:!0,initialValue:(0,utils_1.fromSessionStorage)("auth."+a+".client_id")||this.props.clientId||(null==u?void 0:u.client_id),initValue:(0,utils_1.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(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,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."+a+".client_secret",initialValue:(0,utils_1.fromSessionStorage)("auth."+a+".client_secret")||(null==u?void 0:u.client_secret),validateOnBlur:!0,validateOnChange:!0,"data-cy":"client-secret-input"})),s&&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."+a+".token",type:"hidden",initialValue:d}),React.createElement(Scope_1.default,{id:a,scopes:n}),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_3.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"])));
2
2
  //# sourceMappingURL=OAuth2Flow.js.map
@@ -18,7 +18,7 @@ export declare class ServerChooser extends React.Component<ServerDropdownProps,
18
18
  };
19
19
  static getDerivedStateFromProps(props: ServerDropdownProps): ServerDropdownState;
20
20
  handleServerChange: (option: DropdownOption) => void;
21
- handleVariableChange: (name: string, value: string) => void;
21
+ handleVariableChange: (name: string, rawValue: string) => void;
22
22
  componentDidMount(): void;
23
23
  render(): JSX.Element;
24
24
  }
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ServerChooser=void 0;var tslib_1=require("tslib"),React=(0,tslib_1.__importStar)(require("react")),redoc_lib_1=require("../../redoc-lib"),mobx_react_1=require("mobx-react"),utils_1=require("../../utils"),ServerVariable_1=(0,tslib_1.__importDefault)(require("./ServerVariable")),form_1=require("../common/form"),utils_2=require("./utils"),Dropdown_1=require("../common/Dropdown"),ServerChooser=function(e){function r(){var r=null!==e&&e.apply(this,arguments)||this;return Object.defineProperty(r,"state",{enumerable:!0,configurable:!0,writable:!0,value:{activeIdx:0,variables:{}}}),Object.defineProperty(r,"handleServerChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=r.props.operation.servers.find((function(r){return r.url===e.serverUrl})),a=(0,utils_2.getDefaultOrStoredVariables)(t);r.props.onChange({url:e.serverUrl||"",variables:a}),(0,utils_1.toSessionStorage)("serverUrl",e.serverUrl||""),r.setState({variables:a})}}),Object.defineProperty(r,"handleVariableChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e,t){var a,i=r.props.operation.servers[r.state.activeIdx],l=(0,tslib_1.__assign)((0,tslib_1.__assign)({},r.state.variables),((a={})[e]=t||(0,utils_2.getDefaultOrStoredVariables)(i)[e],a));r.setState({variables:l}),(0,utils_2.updateVariablesStorage)(e,t),r.props.onChange((0,tslib_1.__assign)((0,tslib_1.__assign)({},i),{variables:l}))}}),r}return(0,tslib_1.__extends)(r,e),Object.defineProperty(r,"getDerivedStateFromProps",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var r=e.operation,t=(0,utils_1.fromSessionStorage)("serverUrl"),a=r.servers.findIndex((function(e){return e.url===t}));return{activeIdx:a<0?0:a}}}),Object.defineProperty(r.prototype,"componentDidMount",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=(0,utils_2.getServerWithVariables)(this.props.operation.servers,this.state.activeIdx);this.props.onChange(e),this.setState({variables:e.variables})}}),Object.defineProperty(r.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this,r=this.state.activeIdx,t=this.props.operation.servers.map((function(r,t){return{idx:t,serverUrl:r.url,value:"\n "+(0,utils_2.expandDefaultServerVariables)((0,utils_2.expandVariables)(r.url,e.state.variables),r.variables)+"\n - "+(r.description||"Default")+"\n "}})),a=Object.keys(this.state.variables);return React.createElement(ServerDropdownWrap,null,React.createElement(form_1.FormLabel,{htmlFor:"server"},"Target server: "),React.createElement(form_1.FormControl,null,React.createElement(Dropdown_1.Dropdown,{variant:"dark",value:t[r].value,options:t,fullWidth:!0,onChange:this.handleServerChange})),a.length?a.map((function(r){var t,a=null===(t=e.props.operation.servers[e.state.activeIdx].variables)||void 0===t?void 0:t[r];if(a)return React.createElement(ServerVariable_1.default,{key:r,name:r,value:e.state.variables[r],defaultValue:a.default,onChange:function(t){return e.handleVariableChange(r,t)},variableEnum:a.enum,description:a.description})})):null)}}),r=(0,tslib_1.__decorate)([mobx_react_1.observer],r)}(React.Component);exports.ServerChooser=ServerChooser;var templateObject_1,ServerDropdownWrap=redoc_lib_1.styled.div(templateObject_1||(templateObject_1=(0,tslib_1.__makeTemplateObject)(["\n margin-top: 20px;\n"],["\n margin-top: 20px;\n"])));
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ServerChooser=void 0;var tslib_1=require("tslib"),React=(0,tslib_1.__importStar)(require("react")),redoc_lib_1=require("../../redoc-lib"),mobx_react_1=require("mobx-react"),utils_1=require("../../utils"),ServerVariable_1=(0,tslib_1.__importDefault)(require("./ServerVariable")),form_1=require("../common/form"),utils_2=require("./utils"),Dropdown_1=require("../common/Dropdown"),ServerChooser=function(e){function r(){var r=null!==e&&e.apply(this,arguments)||this;return Object.defineProperty(r,"state",{enumerable:!0,configurable:!0,writable:!0,value:{activeIdx:0,variables:{}}}),Object.defineProperty(r,"handleServerChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=r.props.operation.servers.find((function(r){return r.url===e.serverUrl})),a=(0,utils_2.getDefaultOrStoredVariables)(t);r.props.onChange({url:e.serverUrl||"",variables:a}),(0,utils_1.toSessionStorage)("serverUrl",e.serverUrl||""),r.setState({variables:a})}}),Object.defineProperty(r,"handleVariableChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e,t){var a,i=r.props.operation.servers[r.state.activeIdx],l=t||""===t?t:(0,utils_2.getDefaultOrStoredVariables)(i)[e],n=(0,tslib_1.__assign)((0,tslib_1.__assign)({},r.state.variables),((a={})[e]=l,a));r.setState({variables:n}),(0,utils_2.updateVariablesStorage)(e,l),r.props.onChange((0,tslib_1.__assign)((0,tslib_1.__assign)({},i),{variables:n}))}}),r}return(0,tslib_1.__extends)(r,e),Object.defineProperty(r,"getDerivedStateFromProps",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var r=e.operation,t=(0,utils_1.fromSessionStorage)("serverUrl"),a=r.servers.findIndex((function(e){return e.url===t}));return{activeIdx:a<0?0:a}}}),Object.defineProperty(r.prototype,"componentDidMount",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=(0,utils_2.getServerWithVariables)(this.props.operation.servers,this.state.activeIdx);this.props.onChange(e),this.setState({variables:e.variables})}}),Object.defineProperty(r.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this,r=this.state.activeIdx,t=this.props.operation.servers.map((function(r,t){return{idx:t,serverUrl:r.url,value:"\n "+(0,utils_2.expandDefaultServerVariables)((0,utils_2.expandVariables)(r.url,e.state.variables),r.variables)+"\n - "+(r.description||"Default")+"\n "}})),a=Object.keys(this.state.variables);return React.createElement(ServerDropdownWrap,null,React.createElement(form_1.FormLabel,{htmlFor:"server"},"Target server: "),React.createElement(form_1.FormControl,null,React.createElement(Dropdown_1.Dropdown,{variant:"dark",value:t[r].value,options:t,fullWidth:!0,onChange:this.handleServerChange})),a.length?a.map((function(r){var t,a=null===(t=e.props.operation.servers[e.state.activeIdx].variables)||void 0===t?void 0:t[r];if(a)return React.createElement(ServerVariable_1.default,{key:r,name:r,value:e.state.variables[r],defaultValue:a.default,onChange:function(t){return e.handleVariableChange(r,t)},variableEnum:a.enum,description:a.description})})):null)}}),r=(0,tslib_1.__decorate)([mobx_react_1.observer],r)}(React.Component);exports.ServerChooser=ServerChooser;var templateObject_1,ServerDropdownWrap=redoc_lib_1.styled.div(templateObject_1||(templateObject_1=(0,tslib_1.__makeTemplateObject)(["\n margin-top: 20px;\n"],["\n margin-top: 20px;\n"])));
2
2
  //# sourceMappingURL=ServerDropdown.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.deriveCodeChallenge=exports.base64UrlEncode=exports.sha256=exports.encodeState=exports.randString=exports.oauth2Instance=exports.OAuth2=void 0;var tslib_1=require("tslib"),qs=(0,tslib_1.__importStar)(require("querystring")),check_1=require("./check"),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,n=t.scopes,i=t.extraParams,s=void 0===i?{}:i,o=t.routingBasePath,c=t.redirectUri,l=t.successCallback,d=t.errorCallback,u=encodeState({date:(new Date).toString()}),h=new URL(r),_="/"===o?"":o,b=""+window.location.origin+_+DEFAULT_OAUTH2_REDIRECT_PAGE;for(var p in h.searchParams.set("client_id",a),h.searchParams.set("redirect_uri",c||b),h.searchParams.set("response_type","token"),h.searchParams.set("state",u),Array.isArray(n)&&h.searchParams.set("scope",n.join(" ")),s)h.searchParams.set(p,s[p]);window.redirectOAuth2={flow:"implicit",data:{authorizationUrl:r,clientId:a,scopes:n},state:u,successCallback:function(t){l(t),e.clearRedirectData("implicit")},errorCallback:function(t){d(t),e.clearRedirectData("implicit")}},window.open(h.toString())}}),Object.defineProperty(e,"authorizeAuthorizationCode",{enumerable:!1,configurable:!0,writable:!0,value:function(t){var r=this,a=t.authorizationUrl,n=t.tokenUrl,i=t.clientId,s=t.clientSecret,o=t.codeVerifier,c=t.codeChallenge,l=t.scopes,d=t.extraParams,u=void 0===d?{}:d,h=t.routingBasePath,_=t.redirectUri,b=t.successCallback,p=t.errorCallback,f=new URL(a),g="/"===h?"":h,v=""+window.location.origin+g+DEFAULT_OAUTH2_REDIRECT_PAGE,w=encodeState({date:(new Date).toString()});for(var C in f.searchParams.set("client_id",i),f.searchParams.set("redirect_uri",_||v),f.searchParams.set("response_type","code"),f.searchParams.set("state",w),Array.isArray(l)&&f.searchParams.set("scope",l.join(" ")),c&&(f.searchParams.set("code_challenge",c),f.searchParams.set("code_challenge_method","S256")),u)f.searchParams.set(C,u[C]);window.redirectOAuth2={flow:"authorizationCode",data:{authorizationUrl:a,clientId:i,scopes:l},state:w,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(n,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"},body:qs.stringify((0,tslib_1.__assign)((0,tslib_1.__assign)((0,tslib_1.__assign)({client_id:i,client_secret:s},o&&{code_verifier:o}),{code:a,grant_type:"authorization_code",redirect_uri:_||v}),u))})];case 1:return[4,handleResponseCallback(r.sent(),b,p)];case 2:return r.sent(),[3,4];case 3:return t=r.sent(),p(t),[3,4];case 4:return e.clearRedirectData("authorizationCode"),[2]}}))}))},errorCallback:function(t){p(t),e.clearRedirectData("authorizationCode")}},window.open(f.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,n=e.scopes,i=void 0===n?[]:n,s=e.extraParams,o=void 0===s?{}:s,c=e.successCallback,l=e.errorCallback;return(0,tslib_1.__awaiter)(this,void 0,void 0,(function(){var e;return(0,tslib_1.__generator)(this,(function(n){switch(n.label){case 0:return n.trys.push([0,3,,4]),[4,fetch(t,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"},body:qs.stringify((0,tslib_1.__assign)({client_id:r,client_secret:a,grant_type:"client_credentials",scope:Array.isArray(i)?i.join(" "):void 0},o))})];case 1:return[4,handleResponseCallback(n.sent(),c,l)];case 2:return n.sent(),[3,4];case 3:return e=n.sent(),l(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,n,i,s,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 n=r,i=Error.bind,(e.headers.get("Content-Type")||"").indexOf("json")>-1?(c=(o=JSON).stringify,[4,e.json()]):[3,4];case 3:return s=c.apply(o,[l.sent()]),[3,6];case 4:return[4,e.text()];case 5:s=l.sent(),l.label=6;case 6:n.apply(void 0,[new(i.apply(Error,[void 0,s]))]),l.label=7;case 7:return[2]}}))}))}function randString(e){void 0===e&&(e=32);for(var t="";t.length<e;)t+=Math.random().toString(32).substring(2);return t.substring(0,e)}function encodeState(e){var t=(0,tslib_1.__assign)({randomStr:randString()},e);return btoa(JSON.stringify(t))}function sha256(e){return(0,tslib_1.__awaiter)(this,void 0,void 0,(function(){var t;return(0,tslib_1.__generator)(this,(function(r){return t=(new TextEncoder).encode(e),[2,null===check_1.cryptoLib||void 0===check_1.cryptoLib?void 0:check_1.cryptoLib.subtle.digest("SHA-256",t)]}))}))}function base64UrlEncode(e){if(e)return btoa(String.fromCharCode.apply(null,new Uint8Array(e))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}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=base64UrlEncode,[4,sha256(e)];case 1:return[2,t.apply(void 0,[r.sent()])]}}))}))}exports.OAuth2=OAuth2,exports.oauth2Instance=new OAuth2,exports.randString=randString,exports.encodeState=encodeState,exports.sha256=sha256,exports.base64UrlEncode=base64UrlEncode,exports.deriveCodeChallenge=deriveCodeChallenge;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.deriveCodeChallenge=exports.base64UrlEncode=exports.sha256=exports.encodeState=exports.randString=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,n=t.scopes,i=t.extraParams,s=void 0===i?{}:i,o=t.routingBasePath,c=t.redirectUri,l=t.successCallback,u=t.errorCallback,d=encodeState({date:(new Date).toString()}),h=new URL(r),_="/"===o?"":o,b=""+window.location.origin+_+DEFAULT_OAUTH2_REDIRECT_PAGE;for(var p in h.searchParams.set("client_id",a),h.searchParams.set("redirect_uri",c||b),h.searchParams.set("response_type","token"),h.searchParams.set("state",d),Array.isArray(n)&&h.searchParams.set("scope",n.join(" ")),s)h.searchParams.set(p,s[p]);window.redirectOAuth2={flow:"implicit",data:{authorizationUrl:r,clientId:a,scopes:n},state:d,successCallback:function(t){l(t),e.clearRedirectData("implicit")},errorCallback:function(t){u(t),e.clearRedirectData("implicit")}},window.open(h.toString())}}),Object.defineProperty(e,"authorizeAuthorizationCode",{enumerable:!1,configurable:!0,writable:!0,value:function(t){var r=this,a=t.authorizationUrl,n=t.tokenUrl,i=t.clientId,s=t.clientSecret,o=t.codeVerifier,c=t.codeChallenge,l=t.scopes,u=t.extraParams,d=void 0===u?{}:u,h=t.routingBasePath,_=t.redirectUri,b=t.successCallback,p=t.errorCallback,f=new URL(a),g="/"===h?"":h,v=""+window.location.origin+g+DEFAULT_OAUTH2_REDIRECT_PAGE,w=encodeState({date:(new Date).toString()});for(var C in f.searchParams.set("client_id",i),f.searchParams.set("redirect_uri",_||v),f.searchParams.set("response_type","code"),f.searchParams.set("state",w),Array.isArray(l)&&f.searchParams.set("scope",l.join(" ")),c&&(f.searchParams.set("code_challenge",c),f.searchParams.set("code_challenge_method","S256")),d)f.searchParams.set(C,d[C]);window.redirectOAuth2={flow:"authorizationCode",data:{authorizationUrl:a,clientId:i,scopes:l},state:w,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(n,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"},body:qs.stringify((0,tslib_1.__assign)((0,tslib_1.__assign)((0,tslib_1.__assign)({client_id:i,client_secret:s},o&&{code_verifier:o}),{code:a,grant_type:"authorization_code",redirect_uri:_||v}),d))})];case 1:return[4,handleResponseCallback(r.sent(),b,p)];case 2:return r.sent(),[3,4];case 3:return t=r.sent(),p(t),[3,4];case 4:return e.clearRedirectData("authorizationCode"),[2]}}))}))},errorCallback:function(t){p(t),e.clearRedirectData("authorizationCode")}},window.open(f.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,n=e.scopes,i=void 0===n?[]:n,s=e.extraParams,o=void 0===s?{}:s,c=e.successCallback,l=e.errorCallback;return(0,tslib_1.__awaiter)(this,void 0,void 0,(function(){var e;return(0,tslib_1.__generator)(this,(function(n){switch(n.label){case 0:return n.trys.push([0,3,,4]),[4,fetch(t,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"},body:qs.stringify((0,tslib_1.__assign)({client_id:r,client_secret:a,grant_type:"client_credentials",scope:Array.isArray(i)?i.join(" "):void 0},o))})];case 1:return[4,handleResponseCallback(n.sent(),c,l)];case 2:return n.sent(),[3,4];case 3:return e=n.sent(),l(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,n,i,s,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 n=r,i=Error.bind,(e.headers.get("Content-Type")||"").indexOf("json")>-1?(c=(o=JSON).stringify,[4,e.json()]):[3,4];case 3:return s=c.apply(o,[l.sent()]),[3,6];case 4:return[4,e.text()];case 5:s=l.sent(),l.label=6;case 6:n.apply(void 0,[new(i.apply(Error,[void 0,s]))]),l.label=7;case 7:return[2]}}))}))}function randString(e){void 0===e&&(e=32);for(var t="";t.length<e;)t+=Math.random().toString(32).substring(2);return t.substring(0,e)}function encodeState(e){var t=(0,tslib_1.__assign)({randomStr:randString()},e);return btoa(JSON.stringify(t))}function sha256(e){return(0,tslib_1.__awaiter)(this,void 0,void 0,(function(){var t;return(0,tslib_1.__generator)(this,(function(r){return t=(new TextEncoder).encode(e),[2,null===utils_1.cryptoLib||void 0===utils_1.cryptoLib?void 0:utils_1.cryptoLib.subtle.digest("SHA-256",t)]}))}))}function base64UrlEncode(e){if(e)return btoa(String.fromCharCode.apply(null,new Uint8Array(e))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}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=base64UrlEncode,[4,sha256(e)];case 1:return[2,t.apply(void 0,[r.sent()])]}}))}))}exports.OAuth2=OAuth2,exports.oauth2Instance=new OAuth2,exports.randString=randString,exports.encodeState=encodeState,exports.sha256=sha256,exports.base64UrlEncode=base64UrlEncode,exports.deriveCodeChallenge=deriveCodeChallenge;
2
2
  //# sourceMappingURL=OAuth2.js.map
@@ -1,4 +1,3 @@
1
- export declare const cryptoLib: Crypto | undefined;
2
1
  export declare type LicenseInfo = {
3
2
  t?: boolean;
4
3
  i?: number;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.isHostAllowed=exports.cryptoLib=void 0;var tslib_1=require("tslib");function promisifyIECryptoRes(e){return"then"in e?e:new Promise((function(t){e.oncomplete=function(e){t(e.target.result)}}))}function str2ab(e){for(var t=new ArrayBuffer(e.length),r=new Uint8Array(t),n=0,o=e.length;n<o;n++)r[n]=e.charCodeAt(n);return t}exports.cryptoLib="undefined"!=typeof window&&(window.crypto||window.msCrypto)||void 0;var getKey=function(){var e=str2ab(atob("undefined"!=typeof REDOCLY_PUBLIC_KEY?REDOCLY_PUBLIC_KEY:"MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMHjNir5fXx/ZXoaEeXQ5XyxbNJ4YJYczoCRdSkL6NLzw1FHnng5Vfcgk5+bvox9QRYRbuk84mA4f2NhywDbXKECAwEAAQ=="));return promisifyIECryptoRes(exports.cryptoLib.subtle.importKey("spki",e,{name:"RSASSA-PKCS1-v1_5",hash:"SHA-256"},!0,["verify"]))};function textEncode(e){if(window.TextEncoder)return(new TextEncoder).encode(e);for(var t=unescape(encodeURIComponent(e)),r=new Uint8Array(t.length),n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}function verify(e,t){return(0,tslib_1.__awaiter)(this,void 0,void 0,(function(){var r,n,o,i;return(0,tslib_1.__generator)(this,(function(s){switch(s.label){case 0:return r=promisifyIECryptoRes,o=(n=exports.cryptoLib.subtle).verify,i=[{name:"RSASSA-PKCS1-v1_5",hash:"SHA-256"}],[4,getKey()];case 1:return[2,r.apply(void 0,[o.apply(n,i.concat([s.sent(),str2ab(atob(t)),textEncode(e)]))])]}}))}))}function isHostAllowed(e,t){return!0===t||!(!Array.isArray(t)||"undefined"==typeof window)&&(!("localhost"!==e&&"127.0.0.1"!==e&&!e.endsWith(".localhost")&&!t.find((function(t){return t===e||e.endsWith("."+t)})))||!!t.find((function(t){if(t.indexOf("*")===t.lastIndexOf("*")){var r=t.split("*"),n=r[0],o=r[1];return o&&e.startsWith(n)&&e.endsWith(o)&&o.split(".").length>2}})))}function parse(e){return(0,tslib_1.__awaiter)(this,void 0,void 0,(function(){var t,r,n,o,i;return(0,tslib_1.__generator)(this,(function(s){switch(s.label){case 0:if("development"===process.env.NODE_ENV)return[2,{valid:!0,allowed:!0}];if(t=window.location.hostname,!e)return"localhost"===t||"127.0.0.1"===t||t.endsWith(".localhost")?[2,{local:!0}]:[2,{}];r=e.split("."),n=r[0],o=r[1],s.label=1;case 1:return s.trys.push([1,3,,4]),[4,verify(atob(n),o)];case 2:return s.sent()?(i=JSON.parse(atob(n)),[3,4]):[2,{valid:!1}];case 3:return s.sent(),[2,{valid:!1,cryptoMissing:!0}];case 4:return i.valid=!0,(!i.e||Date.now()/1e3>i.e)&&(i.expired=!0),i.allowed=isHostAllowed(t,i.h),[2,i]}}))}))}exports.isHostAllowed=isHostAllowed,exports.default=parse;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.isHostAllowed=void 0;var tslib_1=require("tslib"),utils_1=require("./utils");function promisifyIECryptoRes(e){return"then"in e?e:new Promise((function(t){e.oncomplete=function(e){t(e.target.result)}}))}function str2ab(e){for(var t=new ArrayBuffer(e.length),r=new Uint8Array(t),n=0,i=e.length;n<i;n++)r[n]=e.charCodeAt(n);return t}var getKey=function(){var e,t=str2ab(atob("undefined"!=typeof REDOCLY_PUBLIC_KEY?REDOCLY_PUBLIC_KEY:"MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMHjNir5fXx/ZXoaEeXQ5XyxbNJ4YJYczoCRdSkL6NLzw1FHnng5Vfcgk5+bvox9QRYRbuk84mA4f2NhywDbXKECAwEAAQ=="));return promisifyIECryptoRes(null===(e=utils_1.cryptoLib)||void 0===e?void 0:e.subtle.importKey("spki",t,{name:"RSASSA-PKCS1-v1_5",hash:"SHA-256"},!0,["verify"]))};function textEncode(e){if(window.TextEncoder)return(new TextEncoder).encode(e);for(var t=unescape(encodeURIComponent(e)),r=new Uint8Array(t.length),n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}function verify(e,t){var r;return(0,tslib_1.__awaiter)(this,void 0,void 0,(function(){var n,i,o,s,a;return(0,tslib_1.__generator)(this,(function(l){switch(l.label){case 0:return n=promisifyIECryptoRes,null!==(r=utils_1.cryptoLib)&&void 0!==r?[3,1]:(i=void 0,[3,3]);case 1:return s=(o=r.subtle).verify,a=[{name:"RSASSA-PKCS1-v1_5",hash:"SHA-256"}],[4,getKey()];case 2:i=s.apply(o,a.concat([l.sent(),str2ab(atob(t)),textEncode(e)])),l.label=3;case 3:return[2,n.apply(void 0,[i])]}}))}))}function isHostAllowed(e,t){return!0===t||!(!Array.isArray(t)||"undefined"==typeof window)&&(!("localhost"!==e&&"127.0.0.1"!==e&&!e.endsWith(".localhost")&&!t.find((function(t){return t===e||e.endsWith("."+t)})))||!!t.find((function(t){if(t.indexOf("*")===t.lastIndexOf("*")){var r=t.split("*"),n=r[0],i=r[1];return i&&e.startsWith(n)&&e.endsWith(i)&&i.split(".").length>2}})))}function parse(e){return(0,tslib_1.__awaiter)(this,void 0,void 0,(function(){var t,r,n,i,o;return(0,tslib_1.__generator)(this,(function(s){switch(s.label){case 0:if("development"===process.env.NODE_ENV)return[2,{valid:!0,allowed:!0}];if(t=window.location.hostname,!e)return"localhost"===t||"127.0.0.1"===t||t.endsWith(".localhost")?[2,{local:!0}]:[2,{}];r=e.split("."),n=r[0],i=r[1],s.label=1;case 1:return s.trys.push([1,3,,4]),[4,verify(atob(n),i)];case 2:return s.sent()?(o=JSON.parse(atob(n)),[3,4]):[2,{valid:!1}];case 3:return s.sent(),[2,{valid:!1,cryptoMissing:!0}];case 4:return o.valid=!0,(!o.e||Date.now()/1e3>o.e)&&(o.expired=!0),o.allowed=isHostAllowed(t,o.h),[2,o]}}))}))}exports.isHostAllowed=isHostAllowed,exports.default=parse;
2
2
  //# sourceMappingURL=check.js.map
@@ -13,3 +13,4 @@ export declare function normalizeMimeType(mimeType?: string): string | undefined
13
13
  export declare function unescapeServerVariables(str: string): string;
14
14
  export declare function arrayMerge<T>(target: T[], source: T[]): T[];
15
15
  export declare function isEmptyObject(obj: GenericObject): boolean;
16
+ export declare const cryptoLib: Crypto | undefined;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.isEmptyObject=exports.arrayMerge=exports.unescapeServerVariables=exports.normalizeMimeType=exports.isSameMime=exports.normalizePath=void 0;var tslib_1=require("tslib"),deepmerge_1=(0,tslib_1.__importDefault)(require("deepmerge"));function normalizePath(e){return e.startsWith("/")||(e="/"+e),e.endsWith("/")&&(e=e.slice(0,-1)),e}function isSameMime(e,r){return!(!e||!r)&&normalizeMimeType(e)===normalizeMimeType(r)}function normalizeMimeType(e){if(e)return e.split(";")[0].toLowerCase()}function unescapeServerVariables(e){var r=new RegExp("%7B","g"),t=new RegExp("%7D","g");return e.replace(r,"{").replace(t,"}").replace("///","//")}function arrayMerge(e,r){if(e.length){var t=e.map((function(e,t){return(0,deepmerge_1.default)(e,r[t]||{})}));return r.length>e.length?t.concat(r.slice(e.length)):t}return r}function isEmptyObject(e){return!!e&&0===Object.keys(e).length}exports.normalizePath=normalizePath,exports.isSameMime=isSameMime,exports.normalizeMimeType=normalizeMimeType,exports.unescapeServerVariables=unescapeServerVariables,exports.arrayMerge=arrayMerge,exports.isEmptyObject=isEmptyObject;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.cryptoLib=exports.isEmptyObject=exports.arrayMerge=exports.unescapeServerVariables=exports.normalizeMimeType=exports.isSameMime=exports.normalizePath=void 0;var tslib_1=require("tslib"),deepmerge_1=(0,tslib_1.__importDefault)(require("deepmerge"));function normalizePath(e){return e.startsWith("/")||(e="/"+e),e.endsWith("/")&&(e=e.slice(0,-1)),e}function isSameMime(e,r){return!(!e||!r)&&normalizeMimeType(e)===normalizeMimeType(r)}function normalizeMimeType(e){if(e)return e.split(";")[0].toLowerCase()}function unescapeServerVariables(e){var r=new RegExp("%7B","g"),t=new RegExp("%7D","g");return e.replace(r,"{").replace(t,"}").replace("///","//")}function arrayMerge(e,r){if(e.length){var t=e.map((function(e,t){return(0,deepmerge_1.default)(e,r[t]||{})}));return r.length>e.length?t.concat(r.slice(e.length)):t}return r}function isEmptyObject(e){return!!e&&0===Object.keys(e).length}exports.normalizePath=normalizePath,exports.isSameMime=isSameMime,exports.normalizeMimeType=normalizeMimeType,exports.unescapeServerVariables=unescapeServerVariables,exports.arrayMerge=arrayMerge,exports.isEmptyObject=isEmptyObject,exports.cryptoLib="undefined"!=typeof window&&(window.crypto||window.msCrypto)||void 0;
2
2
  //# sourceMappingURL=utils.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 Scope from"./Scope";import{Button}from"../shared";import{deriveCodeChallenge,OAuth2,randString}from"../../services/OAuth2";import{fromSessionStorage,getSecurityDetailsOptions}from"../../utils";import{normalizeUrlProtocol}from"./utils";import{isEmptyObject}from"../../services/utils";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;return void 0!==this.state.codeVerifier&&this.state.codeChallenge!==this.state.validCodeChallenge?{label:"sync",onClick:function(){e.state.codeVerifier&&e.setState({codeChallenge:e.state.validCodeChallenge})}}:void 0},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,o=r.flow,n=r.usePkce,a=r.id,l=r.tokenUrl,i=r.authCorsProxyUrl;if(isEmptyObject(this.errors)){this.setState({loading:!0,error:null});var c=i?i+normalizeUrlProtocol(e):e,s=i&&l?i+normalizeUrlProtocol(l):l,u=this.props.formApi.getValue("auth."+a+".scopes"),p={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"===o&&OAuth2.authorizeImplicit(p),"authorizationCode"===o&&OAuth2.authorizeAuthorizationCode(__assign(__assign(__assign({},p),{tokenUrl:(null==s?void 0:s.startsWith("http"))?s:this.props.server+s,clientSecret:this.values.client_secret}),n&&{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.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,o=t.loading,n=this.props,a=n.id,l=n.scopes,i=n.authorizationUrl,c=n.flow,s=n.usePkce,u=n.defaultValues;if(!i)return React.createElement(FormError,null,"No flow info");var p=fromSessionStorage("auth."+a+".token")||JSON.stringify(null==u?void 0:u.token);p=p?JSON.parse(p):"";var d=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: "),d?React.createElement(FormDropdown,__assign({},m,{options:d})):React.createElement(FormTextField,__assign({},m,{"data-cy":"client-id-input"}))),"authorizationCode"===c&&React.createElement(React.Fragment,null,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),validate:requiredValidator,validateOnBlur:!0,validateOnChange:!0,"data-cy":"client-secret-input"})),s&&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:p}),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"):o?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")),o||r||!this.values.token||!this.values.token.access_token&&React.createElement(FormWrapper,null,React.createElement(FormControl,null,o?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"])));
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 Scope from"./Scope";import{Button}from"../shared";import{deriveCodeChallenge,OAuth2,randString}from"../../services/OAuth2";import{fromSessionStorage,getSecurityDetailsOptions}from"../../utils";import{normalizeUrlProtocol}from"./utils";import{isEmptyObject}from"../../services/utils";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;return void 0!==this.state.codeVerifier&&this.state.codeChallenge!==this.state.validCodeChallenge?{label:"sync",onClick:function(){e.state.codeVerifier&&e.setState({codeChallenge:e.state.validCodeChallenge})}}:void 0},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 c=i?i+normalizeUrlProtocol(e):e,s=i&&l?i+normalizeUrlProtocol(l):l,u=this.props.formApi.getValue("auth."+a+".scopes"),p={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"===n&&OAuth2.authorizeImplicit(p),"authorizationCode"===n&&OAuth2.authorizeAuthorizationCode(__assign(__assign(__assign({},p),{tokenUrl:(null==s?void 0:s.startsWith("http"))?s:this.props.server+s,clientSecret:this.values.client_secret}),o&&{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.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 p=fromSessionStorage("auth."+a+".token")||JSON.stringify(null==u?void 0:u.token);p=p?JSON.parse(p):"";var d=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: "),d?React.createElement(FormDropdown,__assign({},m,{options:d})):React.createElement(FormTextField,__assign({},m,{"data-cy":"client-id-input"}))),"authorizationCode"===c&&React.createElement(React.Fragment,null,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&&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:p}),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
@@ -18,7 +18,7 @@ export declare class ServerChooser extends React.Component<ServerDropdownProps,
18
18
  };
19
19
  static getDerivedStateFromProps(props: ServerDropdownProps): ServerDropdownState;
20
20
  handleServerChange: (option: DropdownOption) => void;
21
- handleVariableChange: (name: string, value: string) => void;
21
+ handleVariableChange: (name: string, rawValue: string) => void;
22
22
  componentDidMount(): void;
23
23
  render(): JSX.Element;
24
24
  }
@@ -1,2 +1,2 @@
1
- import{__assign,__decorate,__extends,__makeTemplateObject}from"tslib";import*as React from"react";import{styled}from"../../redoc-lib";import{observer}from"mobx-react";import{fromSessionStorage,toSessionStorage}from"../../utils";import ServerVariable from"./ServerVariable";import{FormControl,FormLabel}from"../common/form";import{expandDefaultServerVariables,expandVariables,getServerWithVariables,getDefaultOrStoredVariables,updateVariablesStorage}from"./utils";import{Dropdown}from"../common/Dropdown";var ServerChooser=function(e){function r(){var r=null!==e&&e.apply(this,arguments)||this;return Object.defineProperty(r,"state",{enumerable:!0,configurable:!0,writable:!0,value:{activeIdx:0,variables:{}}}),Object.defineProperty(r,"handleServerChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var a=r.props.operation.servers.find((function(r){return r.url===e.serverUrl})),t=getDefaultOrStoredVariables(a);r.props.onChange({url:e.serverUrl||"",variables:t}),toSessionStorage("serverUrl",e.serverUrl||""),r.setState({variables:t})}}),Object.defineProperty(r,"handleVariableChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e,a){var t,o=r.props.operation.servers[r.state.activeIdx],n=__assign(__assign({},r.state.variables),((t={})[e]=a||getDefaultOrStoredVariables(o)[e],t));r.setState({variables:n}),updateVariablesStorage(e,a),r.props.onChange(__assign(__assign({},o),{variables:n}))}}),r}return __extends(r,e),Object.defineProperty(r,"getDerivedStateFromProps",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var r=e.operation,a=fromSessionStorage("serverUrl"),t=r.servers.findIndex((function(e){return e.url===a}));return{activeIdx:t<0?0:t}}}),Object.defineProperty(r.prototype,"componentDidMount",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=getServerWithVariables(this.props.operation.servers,this.state.activeIdx);this.props.onChange(e),this.setState({variables:e.variables})}}),Object.defineProperty(r.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this,r=this.state.activeIdx,a=this.props.operation.servers.map((function(r,a){return{idx:a,serverUrl:r.url,value:"\n "+expandDefaultServerVariables(expandVariables(r.url,e.state.variables),r.variables)+"\n - "+(r.description||"Default")+"\n "}})),t=Object.keys(this.state.variables);return React.createElement(ServerDropdownWrap,null,React.createElement(FormLabel,{htmlFor:"server"},"Target server: "),React.createElement(FormControl,null,React.createElement(Dropdown,{variant:"dark",value:a[r].value,options:a,fullWidth:!0,onChange:this.handleServerChange})),t.length?t.map((function(r){var a,t=null===(a=e.props.operation.servers[e.state.activeIdx].variables)||void 0===a?void 0:a[r];if(t)return React.createElement(ServerVariable,{key:r,name:r,value:e.state.variables[r],defaultValue:t.default,onChange:function(a){return e.handleVariableChange(r,a)},variableEnum:t.enum,description:t.description})})):null)}}),r=__decorate([observer],r)}(React.Component);export{ServerChooser};var templateObject_1,ServerDropdownWrap=styled.div(templateObject_1||(templateObject_1=__makeTemplateObject(["\n margin-top: 20px;\n"],["\n margin-top: 20px;\n"])));
1
+ import{__assign,__decorate,__extends,__makeTemplateObject}from"tslib";import*as React from"react";import{styled}from"../../redoc-lib";import{observer}from"mobx-react";import{fromSessionStorage,toSessionStorage}from"../../utils";import ServerVariable from"./ServerVariable";import{FormControl,FormLabel}from"../common/form";import{expandDefaultServerVariables,expandVariables,getServerWithVariables,getDefaultOrStoredVariables,updateVariablesStorage}from"./utils";import{Dropdown}from"../common/Dropdown";var ServerChooser=function(e){function r(){var r=null!==e&&e.apply(this,arguments)||this;return Object.defineProperty(r,"state",{enumerable:!0,configurable:!0,writable:!0,value:{activeIdx:0,variables:{}}}),Object.defineProperty(r,"handleServerChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var a=r.props.operation.servers.find((function(r){return r.url===e.serverUrl})),t=getDefaultOrStoredVariables(a);r.props.onChange({url:e.serverUrl||"",variables:t}),toSessionStorage("serverUrl",e.serverUrl||""),r.setState({variables:t})}}),Object.defineProperty(r,"handleVariableChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e,a){var t,o=r.props.operation.servers[r.state.activeIdx],n=a||""===a?a:getDefaultOrStoredVariables(o)[e],i=__assign(__assign({},r.state.variables),((t={})[e]=n,t));r.setState({variables:i}),updateVariablesStorage(e,n),r.props.onChange(__assign(__assign({},o),{variables:i}))}}),r}return __extends(r,e),Object.defineProperty(r,"getDerivedStateFromProps",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var r=e.operation,a=fromSessionStorage("serverUrl"),t=r.servers.findIndex((function(e){return e.url===a}));return{activeIdx:t<0?0:t}}}),Object.defineProperty(r.prototype,"componentDidMount",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=getServerWithVariables(this.props.operation.servers,this.state.activeIdx);this.props.onChange(e),this.setState({variables:e.variables})}}),Object.defineProperty(r.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this,r=this.state.activeIdx,a=this.props.operation.servers.map((function(r,a){return{idx:a,serverUrl:r.url,value:"\n "+expandDefaultServerVariables(expandVariables(r.url,e.state.variables),r.variables)+"\n - "+(r.description||"Default")+"\n "}})),t=Object.keys(this.state.variables);return React.createElement(ServerDropdownWrap,null,React.createElement(FormLabel,{htmlFor:"server"},"Target server: "),React.createElement(FormControl,null,React.createElement(Dropdown,{variant:"dark",value:a[r].value,options:a,fullWidth:!0,onChange:this.handleServerChange})),t.length?t.map((function(r){var a,t=null===(a=e.props.operation.servers[e.state.activeIdx].variables)||void 0===a?void 0:a[r];if(t)return React.createElement(ServerVariable,{key:r,name:r,value:e.state.variables[r],defaultValue:t.default,onChange:function(a){return e.handleVariableChange(r,a)},variableEnum:t.enum,description:t.description})})):null)}}),r=__decorate([observer],r)}(React.Component);export{ServerChooser};var templateObject_1,ServerDropdownWrap=styled.div(templateObject_1||(templateObject_1=__makeTemplateObject(["\n margin-top: 20px;\n"],["\n margin-top: 20px;\n"])));
2
2
  //# sourceMappingURL=ServerDropdown.js.map
@@ -1,2 +1,2 @@
1
- import{__assign,__awaiter,__generator}from"tslib";import*as qs from"querystring";import{cryptoLib}from"./check";var DEFAULT_OAUTH2_REDIRECT_PAGE="/oauth2-redirect.html",OAuth2=function(){function e(){}return Object.defineProperty(e,"authorizeImplicit",{enumerable:!1,configurable:!0,writable:!0,value:function(r){var t=r.authorizationUrl,a=r.clientId,n=r.scopes,i=r.extraParams,o=void 0===i?{}:i,s=r.routingBasePath,c=r.redirectUri,l=r.successCallback,u=r.errorCallback,d=encodeState({date:(new Date).toString()}),h=new URL(t),_="/"===s?"":s,p=""+window.location.origin+_+DEFAULT_OAUTH2_REDIRECT_PAGE;for(var f in h.searchParams.set("client_id",a),h.searchParams.set("redirect_uri",c||p),h.searchParams.set("response_type","token"),h.searchParams.set("state",d),Array.isArray(n)&&h.searchParams.set("scope",n.join(" ")),o)h.searchParams.set(f,o[f]);window.redirectOAuth2={flow:"implicit",data:{authorizationUrl:t,clientId:a,scopes:n},state:d,successCallback:function(r){l(r),e.clearRedirectData("implicit")},errorCallback:function(r){u(r),e.clearRedirectData("implicit")}},window.open(h.toString())}}),Object.defineProperty(e,"authorizeAuthorizationCode",{enumerable:!1,configurable:!0,writable:!0,value:function(r){var t=this,a=r.authorizationUrl,n=r.tokenUrl,i=r.clientId,o=r.clientSecret,s=r.codeVerifier,c=r.codeChallenge,l=r.scopes,u=r.extraParams,d=void 0===u?{}:u,h=r.routingBasePath,_=r.redirectUri,p=r.successCallback,f=r.errorCallback,b=new URL(a),g="/"===h?"":h,w=""+window.location.origin+g+DEFAULT_OAUTH2_REDIRECT_PAGE,v=encodeState({date:(new Date).toString()});for(var m in b.searchParams.set("client_id",i),b.searchParams.set("redirect_uri",_||w),b.searchParams.set("response_type","code"),b.searchParams.set("state",v),Array.isArray(l)&&b.searchParams.set("scope",l.join(" ")),c&&(b.searchParams.set("code_challenge",c),b.searchParams.set("code_challenge_method","S256")),d)b.searchParams.set(m,d[m]);window.redirectOAuth2={flow:"authorizationCode",data:{authorizationUrl:a,clientId:i,scopes:l},state:v,successCallback:function(r){var a=r.auth_code;return __awaiter(t,void 0,void 0,(function(){var r;return __generator(this,(function(t){switch(t.label){case 0:return t.trys.push([0,3,,4]),[4,fetch(n,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"},body:qs.stringify(__assign(__assign(__assign({client_id:i,client_secret:o},s&&{code_verifier:s}),{code:a,grant_type:"authorization_code",redirect_uri:_||w}),d))})];case 1:return[4,handleResponseCallback(t.sent(),p,f)];case 2:return t.sent(),[3,4];case 3:return r=t.sent(),f(r),[3,4];case 4:return e.clearRedirectData("authorizationCode"),[2]}}))}))},errorCallback:function(r){f(r),e.clearRedirectData("authorizationCode")}},window.open(b.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 r=e.tokenUrl,t=e.clientId,a=e.clientSecret,n=e.scopes,i=void 0===n?[]:n,o=e.extraParams,s=void 0===o?{}:o,c=e.successCallback,l=e.errorCallback;return __awaiter(this,void 0,void 0,(function(){var e;return __generator(this,(function(n){switch(n.label){case 0:return n.trys.push([0,3,,4]),[4,fetch(r,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"},body:qs.stringify(__assign({client_id:t,client_secret:a,grant_type:"client_credentials",scope:Array.isArray(i)?i.join(" "):void 0},s))})];case 1:return[4,handleResponseCallback(n.sent(),c,l)];case 2:return n.sent(),[3,4];case 3:return e=n.sent(),l(e),[3,4];case 4:return[2]}}))}))}}),e}();export{OAuth2};export var oauth2Instance=new OAuth2;function handleResponseCallback(e,r,t){return __awaiter(this,void 0,void 0,(function(){var a,n,i,o,s,c;return __generator(this,(function(l){switch(l.label){case 0:return e.ok?[4,e.json()]:[3,2];case 1:return a=l.sent(),r(a),[3,7];case 2:return n=t,i=Error.bind,(e.headers.get("Content-Type")||"").indexOf("json")>-1?(c=(s=JSON).stringify,[4,e.json()]):[3,4];case 3:return o=c.apply(s,[l.sent()]),[3,6];case 4:return[4,e.text()];case 5:o=l.sent(),l.label=6;case 6:n.apply(void 0,[new(i.apply(Error,[void 0,o]))]),l.label=7;case 7:return[2]}}))}))}export function randString(e){void 0===e&&(e=32);for(var r="";r.length<e;)r+=Math.random().toString(32).substring(2);return r.substring(0,e)}export function encodeState(e){var r=__assign({randomStr:randString()},e);return btoa(JSON.stringify(r))}export function sha256(e){return __awaiter(this,void 0,void 0,(function(){var r;return __generator(this,(function(t){return r=(new TextEncoder).encode(e),[2,null==cryptoLib?void 0:cryptoLib.subtle.digest("SHA-256",r)]}))}))}export function base64UrlEncode(e){if(e)return btoa(String.fromCharCode.apply(null,new Uint8Array(e))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}export function deriveCodeChallenge(e){return __awaiter(this,void 0,void 0,(function(){var r;return __generator(this,(function(t){switch(t.label){case 0:return r=base64UrlEncode,[4,sha256(e)];case 1:return[2,r.apply(void 0,[t.sent()])]}}))}))}
1
+ import{__assign,__awaiter,__generator}from"tslib";import*as qs from"querystring";import{cryptoLib}from"./utils";var DEFAULT_OAUTH2_REDIRECT_PAGE="/oauth2-redirect.html",OAuth2=function(){function e(){}return Object.defineProperty(e,"authorizeImplicit",{enumerable:!1,configurable:!0,writable:!0,value:function(r){var t=r.authorizationUrl,a=r.clientId,n=r.scopes,i=r.extraParams,o=void 0===i?{}:i,s=r.routingBasePath,c=r.redirectUri,l=r.successCallback,u=r.errorCallback,d=encodeState({date:(new Date).toString()}),h=new URL(t),_="/"===s?"":s,p=""+window.location.origin+_+DEFAULT_OAUTH2_REDIRECT_PAGE;for(var f in h.searchParams.set("client_id",a),h.searchParams.set("redirect_uri",c||p),h.searchParams.set("response_type","token"),h.searchParams.set("state",d),Array.isArray(n)&&h.searchParams.set("scope",n.join(" ")),o)h.searchParams.set(f,o[f]);window.redirectOAuth2={flow:"implicit",data:{authorizationUrl:t,clientId:a,scopes:n},state:d,successCallback:function(r){l(r),e.clearRedirectData("implicit")},errorCallback:function(r){u(r),e.clearRedirectData("implicit")}},window.open(h.toString())}}),Object.defineProperty(e,"authorizeAuthorizationCode",{enumerable:!1,configurable:!0,writable:!0,value:function(r){var t=this,a=r.authorizationUrl,n=r.tokenUrl,i=r.clientId,o=r.clientSecret,s=r.codeVerifier,c=r.codeChallenge,l=r.scopes,u=r.extraParams,d=void 0===u?{}:u,h=r.routingBasePath,_=r.redirectUri,p=r.successCallback,f=r.errorCallback,b=new URL(a),g="/"===h?"":h,w=""+window.location.origin+g+DEFAULT_OAUTH2_REDIRECT_PAGE,v=encodeState({date:(new Date).toString()});for(var m in b.searchParams.set("client_id",i),b.searchParams.set("redirect_uri",_||w),b.searchParams.set("response_type","code"),b.searchParams.set("state",v),Array.isArray(l)&&b.searchParams.set("scope",l.join(" ")),c&&(b.searchParams.set("code_challenge",c),b.searchParams.set("code_challenge_method","S256")),d)b.searchParams.set(m,d[m]);window.redirectOAuth2={flow:"authorizationCode",data:{authorizationUrl:a,clientId:i,scopes:l},state:v,successCallback:function(r){var a=r.auth_code;return __awaiter(t,void 0,void 0,(function(){var r;return __generator(this,(function(t){switch(t.label){case 0:return t.trys.push([0,3,,4]),[4,fetch(n,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"},body:qs.stringify(__assign(__assign(__assign({client_id:i,client_secret:o},s&&{code_verifier:s}),{code:a,grant_type:"authorization_code",redirect_uri:_||w}),d))})];case 1:return[4,handleResponseCallback(t.sent(),p,f)];case 2:return t.sent(),[3,4];case 3:return r=t.sent(),f(r),[3,4];case 4:return e.clearRedirectData("authorizationCode"),[2]}}))}))},errorCallback:function(r){f(r),e.clearRedirectData("authorizationCode")}},window.open(b.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 r=e.tokenUrl,t=e.clientId,a=e.clientSecret,n=e.scopes,i=void 0===n?[]:n,o=e.extraParams,s=void 0===o?{}:o,c=e.successCallback,l=e.errorCallback;return __awaiter(this,void 0,void 0,(function(){var e;return __generator(this,(function(n){switch(n.label){case 0:return n.trys.push([0,3,,4]),[4,fetch(r,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"},body:qs.stringify(__assign({client_id:t,client_secret:a,grant_type:"client_credentials",scope:Array.isArray(i)?i.join(" "):void 0},s))})];case 1:return[4,handleResponseCallback(n.sent(),c,l)];case 2:return n.sent(),[3,4];case 3:return e=n.sent(),l(e),[3,4];case 4:return[2]}}))}))}}),e}();export{OAuth2};export var oauth2Instance=new OAuth2;function handleResponseCallback(e,r,t){return __awaiter(this,void 0,void 0,(function(){var a,n,i,o,s,c;return __generator(this,(function(l){switch(l.label){case 0:return e.ok?[4,e.json()]:[3,2];case 1:return a=l.sent(),r(a),[3,7];case 2:return n=t,i=Error.bind,(e.headers.get("Content-Type")||"").indexOf("json")>-1?(c=(s=JSON).stringify,[4,e.json()]):[3,4];case 3:return o=c.apply(s,[l.sent()]),[3,6];case 4:return[4,e.text()];case 5:o=l.sent(),l.label=6;case 6:n.apply(void 0,[new(i.apply(Error,[void 0,o]))]),l.label=7;case 7:return[2]}}))}))}export function randString(e){void 0===e&&(e=32);for(var r="";r.length<e;)r+=Math.random().toString(32).substring(2);return r.substring(0,e)}export function encodeState(e){var r=__assign({randomStr:randString()},e);return btoa(JSON.stringify(r))}export function sha256(e){return __awaiter(this,void 0,void 0,(function(){var r;return __generator(this,(function(t){return r=(new TextEncoder).encode(e),[2,null==cryptoLib?void 0:cryptoLib.subtle.digest("SHA-256",r)]}))}))}export function base64UrlEncode(e){if(e)return btoa(String.fromCharCode.apply(null,new Uint8Array(e))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}export function deriveCodeChallenge(e){return __awaiter(this,void 0,void 0,(function(){var r;return __generator(this,(function(t){switch(t.label){case 0:return r=base64UrlEncode,[4,sha256(e)];case 1:return[2,r.apply(void 0,[t.sent()])]}}))}))}
2
2
  //# sourceMappingURL=OAuth2.js.map
@@ -1,4 +1,3 @@
1
- export declare const cryptoLib: Crypto | undefined;
2
1
  export declare type LicenseInfo = {
3
2
  t?: boolean;
4
3
  i?: number;
@@ -1,2 +1,2 @@
1
- import{__awaiter,__generator}from"tslib";export var cryptoLib="undefined"!=typeof window&&(window.crypto||window.msCrypto)||void 0;function promisifyIECryptoRes(e){return"then"in e?e:new Promise((function(t){e.oncomplete=function(e){t(e.target.result)}}))}function str2ab(e){for(var t=new ArrayBuffer(e.length),n=new Uint8Array(t),r=0,o=e.length;r<o;r++)n[r]=e.charCodeAt(r);return t}var getKey=function(){var e=str2ab(atob("undefined"!=typeof REDOCLY_PUBLIC_KEY?REDOCLY_PUBLIC_KEY:"MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMHjNir5fXx/ZXoaEeXQ5XyxbNJ4YJYczoCRdSkL6NLzw1FHnng5Vfcgk5+bvox9QRYRbuk84mA4f2NhywDbXKECAwEAAQ=="));return promisifyIECryptoRes(cryptoLib.subtle.importKey("spki",e,{name:"RSASSA-PKCS1-v1_5",hash:"SHA-256"},!0,["verify"]))};function textEncode(e){if(window.TextEncoder)return(new TextEncoder).encode(e);for(var t=unescape(encodeURIComponent(e)),n=new Uint8Array(t.length),r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return n}function verify(e,t){return __awaiter(this,void 0,void 0,(function(){var n,r,o,i;return __generator(this,(function(a){switch(a.label){case 0:return n=promisifyIECryptoRes,o=(r=cryptoLib.subtle).verify,i=[{name:"RSASSA-PKCS1-v1_5",hash:"SHA-256"}],[4,getKey()];case 1:return[2,n.apply(void 0,[o.apply(r,i.concat([a.sent(),str2ab(atob(t)),textEncode(e)]))])]}}))}))}export function isHostAllowed(e,t){return!0===t||!(!Array.isArray(t)||"undefined"==typeof window)&&(!("localhost"!==e&&"127.0.0.1"!==e&&!e.endsWith(".localhost")&&!t.find((function(t){return t===e||e.endsWith("."+t)})))||!!t.find((function(t){if(t.indexOf("*")===t.lastIndexOf("*")){var n=t.split("*"),r=n[0],o=n[1];return o&&e.startsWith(r)&&e.endsWith(o)&&o.split(".").length>2}})))}export default function parse(e){return __awaiter(this,void 0,void 0,(function(){var t,n,r,o,i;return __generator(this,(function(a){switch(a.label){case 0:if("development"===process.env.NODE_ENV)return[2,{valid:!0,allowed:!0}];if(t=window.location.hostname,!e)return"localhost"===t||"127.0.0.1"===t||t.endsWith(".localhost")?[2,{local:!0}]:[2,{}];n=e.split("."),r=n[0],o=n[1],a.label=1;case 1:return a.trys.push([1,3,,4]),[4,verify(atob(r),o)];case 2:return a.sent()?(i=JSON.parse(atob(r)),[3,4]):[2,{valid:!1}];case 3:return a.sent(),[2,{valid:!1,cryptoMissing:!0}];case 4:return i.valid=!0,(!i.e||Date.now()/1e3>i.e)&&(i.expired=!0),i.allowed=isHostAllowed(t,i.h),[2,i]}}))}))}
1
+ import{__awaiter,__generator}from"tslib";import{cryptoLib}from"./utils";function promisifyIECryptoRes(e){return"then"in e?e:new Promise((function(t){e.oncomplete=function(e){t(e.target.result)}}))}function str2ab(e){for(var t=new ArrayBuffer(e.length),r=new Uint8Array(t),n=0,o=e.length;n<o;n++)r[n]=e.charCodeAt(n);return t}var getKey=function(){var e,t=str2ab(atob("undefined"!=typeof REDOCLY_PUBLIC_KEY?REDOCLY_PUBLIC_KEY:"MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMHjNir5fXx/ZXoaEeXQ5XyxbNJ4YJYczoCRdSkL6NLzw1FHnng5Vfcgk5+bvox9QRYRbuk84mA4f2NhywDbXKECAwEAAQ=="));return promisifyIECryptoRes(null===(e=cryptoLib)||void 0===e?void 0:e.subtle.importKey("spki",t,{name:"RSASSA-PKCS1-v1_5",hash:"SHA-256"},!0,["verify"]))};function textEncode(e){if(window.TextEncoder)return(new TextEncoder).encode(e);for(var t=unescape(encodeURIComponent(e)),r=new Uint8Array(t.length),n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}function verify(e,t){var r;return __awaiter(this,void 0,void 0,(function(){var n,o,i,a,s;return __generator(this,(function(l){switch(l.label){case 0:return n=promisifyIECryptoRes,null!==(r=cryptoLib)&&void 0!==r?[3,1]:(o=void 0,[3,3]);case 1:return a=(i=r.subtle).verify,s=[{name:"RSASSA-PKCS1-v1_5",hash:"SHA-256"}],[4,getKey()];case 2:o=a.apply(i,s.concat([l.sent(),str2ab(atob(t)),textEncode(e)])),l.label=3;case 3:return[2,n.apply(void 0,[o])]}}))}))}export function isHostAllowed(e,t){return!0===t||!(!Array.isArray(t)||"undefined"==typeof window)&&(!("localhost"!==e&&"127.0.0.1"!==e&&!e.endsWith(".localhost")&&!t.find((function(t){return t===e||e.endsWith("."+t)})))||!!t.find((function(t){if(t.indexOf("*")===t.lastIndexOf("*")){var r=t.split("*"),n=r[0],o=r[1];return o&&e.startsWith(n)&&e.endsWith(o)&&o.split(".").length>2}})))}export default function parse(e){return __awaiter(this,void 0,void 0,(function(){var t,r,n,o,i;return __generator(this,(function(a){switch(a.label){case 0:if("development"===process.env.NODE_ENV)return[2,{valid:!0,allowed:!0}];if(t=window.location.hostname,!e)return"localhost"===t||"127.0.0.1"===t||t.endsWith(".localhost")?[2,{local:!0}]:[2,{}];r=e.split("."),n=r[0],o=r[1],a.label=1;case 1:return a.trys.push([1,3,,4]),[4,verify(atob(n),o)];case 2:return a.sent()?(i=JSON.parse(atob(n)),[3,4]):[2,{valid:!1}];case 3:return a.sent(),[2,{valid:!1,cryptoMissing:!0}];case 4:return i.valid=!0,(!i.e||Date.now()/1e3>i.e)&&(i.expired=!0),i.allowed=isHostAllowed(t,i.h),[2,i]}}))}))}
2
2
  //# sourceMappingURL=check.js.map
@@ -13,3 +13,4 @@ export declare function normalizeMimeType(mimeType?: string): string | undefined
13
13
  export declare function unescapeServerVariables(str: string): string;
14
14
  export declare function arrayMerge<T>(target: T[], source: T[]): T[];
15
15
  export declare function isEmptyObject(obj: GenericObject): boolean;
16
+ export declare const cryptoLib: Crypto | undefined;
@@ -1,2 +1,2 @@
1
- import merge from"deepmerge";export function normalizePath(e){return e.startsWith("/")||(e="/"+e),e.endsWith("/")&&(e=e.slice(0,-1)),e}export function isSameMime(e,r){return!(!e||!r)&&normalizeMimeType(e)===normalizeMimeType(r)}export function normalizeMimeType(e){if(e)return e.split(";")[0].toLowerCase()}export function unescapeServerVariables(e){var r=new RegExp("%7B","g"),t=new RegExp("%7D","g");return e.replace(r,"{").replace(t,"}").replace("///","//")}export function arrayMerge(e,r){if(e.length){var t=e.map((function(e,t){return merge(e,r[t]||{})}));return r.length>e.length?t.concat(r.slice(e.length)):t}return r}export function isEmptyObject(e){return!!e&&0===Object.keys(e).length}
1
+ import merge from"deepmerge";export function normalizePath(e){return e.startsWith("/")||(e="/"+e),e.endsWith("/")&&(e=e.slice(0,-1)),e}export function isSameMime(e,r){return!(!e||!r)&&normalizeMimeType(e)===normalizeMimeType(r)}export function normalizeMimeType(e){if(e)return e.split(";")[0].toLowerCase()}export function unescapeServerVariables(e){var r=new RegExp("%7B","g"),t=new RegExp("%7D","g");return e.replace(r,"{").replace(t,"}").replace("///","//")}export function arrayMerge(e,r){if(e.length){var t=e.map((function(e,t){return merge(e,r[t]||{})}));return r.length>e.length?t.concat(r.slice(e.length)):t}return r}export function isEmptyObject(e){return!!e&&0===Object.keys(e).length}export var cryptoLib="undefined"!=typeof window&&(window.crypto||window.msCrypto)||void 0;
2
2
  //# sourceMappingURL=utils.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/reference-docs",
3
- "version": "2.12.1",
3
+ "version": "2.12.2",
4
4
  "description": "Redocly Reference Docs",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-esm/index.js",