openstack-uicore-foundation 4.0.72 → 4.0.73
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/lib/security/actions.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("openstack-uicore-foundation",[],t):"object"==typeof exports?exports["openstack-uicore-foundation"]=t():e["openstack-uicore-foundation"]=t()}(this,(()=>(()=>{"use strict";var e={4341:(e,t,r)=>{r.r(t),r.d(t,{CLEAR_SESSION_STATE:()=>S,LOGOUT_USER:()=>p,RECEIVE_USER_INFO:()=>f,REQUEST_USER_INFO:()=>_,SESSION_STATE_STATUS_CHANGED:()=>g,SESSION_STATE_STATUS_ERROR:()=>O,SESSION_STATE_STATUS_UNCHANGED:()=>R,SET_LOGGED_USER:()=>d,UPDATE_SESSION_STATE_STATUS:()=>E,UPDATE_USER_INFO:()=>w,doLogout:()=>T,getUserInfo:()=>h,onUserAuth:()=>y,updateSessionStateStatus:()=>A,updateUserInfo:()=>U});var o=r(4656),n=r.n(o),s=r(4054),a=r(6793),i=r(8576);function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function u(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){c(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const d="SET_LOGGED_USER",p="LOGOUT_USER",_="REQUEST_USER_INFO",f="RECEIVE_USER_INFO",S="CLEAR_SESSION_STATE",E="UPDATE_SESSION_STATE_STATUS",R="unchanged",g="changed",O="error",w="UPDATE_USER_INFO",y=(e,t,r,o=0,n=null)=>s=>{(0,i.storeAuthInfo)(e,o,n,t),s({type:d,payload:{sessionState:r}})},T=e=>(t,r)=>{t({type:p,payload:{backUrl:e}})},h=(e="groups",t="",r=null,o=null,l=null)=>async(u,c)=>{let d=(0,a.getAllowedUserGroups)();d=""!==d?d.split(" "):[];let{loggedUserState:p}=c(),{member:S}=p,E=await(0,i.getAccessToken)();if(null!=S)return null!=o&&null!=r&&o.push(r),Promise.resolve();null==l&&(l=s.authErrorHandler),u((0,s.startLoading)());let R={access_token:E,expand:e};return t&&(R.fields=t),(0,s.getRequest)((0,s.createAction)(_),(0,s.createAction)(f),(0,a.buildAPIBaseUrl)("/api/v1/members/me"),l)(R)(u,c).then((()=>{u((0,s.stopLoading)());let{member:e}=c().loggedUserState;if(null==e){let e={title:"ERROR",html:n().translate("errors.user_not_set"),type:"error"};u((0,s.showMessage)(e,i.initLogOut))}if(d.length>0){if(0===e.groups.filter(((e,t)=>d.includes(e.code))).length){let e={title:"ERROR",html:n().translate("errors.user_not_authz"),type:"error"};return void u((0,s.showMessage)(e,i.initLogOut))}}null!=o&&null!=r&&o.push(r)}))},U=e=>(t,r)=>{let{loggedUserState:o}=r(),{member:n}=o;if(null==n)throw Error("Member is not set.");if(e.id!=n.id)throw Error("Member is not the same.");t({type:w,payload:u({},e)})},A=e=>(t,r)=>{t({type:E,payload:{sessionStateStatus:e}})}},1593:(e,t,r)=>{r.d(t,{AUTH_ERROR_ACCESS_TOKEN_EXPIRED:()=>s,AUTH_ERROR_LOCK_ACQUIRE_ERROR:()=>a,AUTH_ERROR_MISSING_AUTH_INFO:()=>o,AUTH_ERROR_MISSING_REFRESH_TOKEN:()=>n,AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR:()=>i});const o="AUTH_ERROR_MISSING_AUTH_INFO",n="AUTH_ERROR_MISSING_REFRESH_TOKEN",s="AUTH_ERROR_ACCESS_TOKEN_EXPIRED",a="AUTH_ERROR_LOCK_ACQUIRE_ERROR",i="AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR"},8576:(e,t,r)=>{r.d(t,{doLogin:()=>A,getAccessToken:()=>b,initLogOut:()=>x,storeAuthInfo:()=>k});var o=r(6793);r(4824);const n=require("browser-tabs-lock");var s=r.n(n),i=r(6530),l=r.n(i);r(3856),r(4341);const u=require("crypto-js/sha256");var c=r.n(u);const d=require("crypto-js/enc-base64url");var p=r.n(d);const _=require("crypto-js/enc-hex");var f=r.n(_);const S=65536,E="undefined"!=typeof window?window.crypto||window.msCrypto:null;var R=r(1593);const g=new(s()),O="openstackuicore.lock.getTokenSilently",w="code",y="authInfo",T="nonce",h="pkce",U=e=>{let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",r="";for(let o=0;o<e;o++)r+=t.charAt(Math.floor(Math.random()*t.length));return r},A=(e=null,t=null,r=null)=>{let n=((e=null,t=null,r=null,n=null)=>{let s=v(),a=(0,o.getAuthCallback)(),i=j(),u=H(),c=P();null!=e&&(a+=`?BackUrl=${encodeURI(e)}`);let d=U(16);(0,o.putOnLocalStorage)(T,d);let p=l()(`${i}/oauth2/auth`),_={response_type:encodeURI(c),scope:encodeURI(u),nonce:d,response_mode:"fragment",client_id:encodeURI(s),redirect_uri:encodeURI(a)};if(c===w){const e=m();(0,o.putOnLocalStorage)(h,JSON.stringify(e)),_.code_challenge=e.codeChallenge,_.code_challenge_method="S256",_.approval_prompt="force"}return t&&(_.prompt=t),u&&u.includes("offline_access")&&(_.prompt="consent"),r&&(_.id_token_hint=r),n&&(_.provider=n),p=p.query(_),p})(e,r,null,t);(0,o.getCurrentLocation)().replace(n.toString())},m=()=>{const e=(0,o.base64URLEncode)((e=>{if(e>4294967295)throw new RangeError("requested too many random bytes");const t=Buffer.allocUnsafe(e);if(!E)return a;if(e>0)if(e>S)for(let r=0;r<e;r+=S)E.getRandomValues(t.slice(r,r+S));else E.getRandomValues(t);return t})(64));return{codeVerifier:e,codeChallenge:((e,t="hex")=>{let r=f();return"Base64url"===t&&(r=p()),c()(e).toString(r)})(e,"Base64url"),createdAt:new Date}},b=async()=>{if(await(0,o.retryPromise)((()=>g.acquireLock(O,5e3)),10))try{let e=N();if(!e)throw Error(R.AUTH_ERROR_MISSING_AUTH_INFO);let{accessToken:t,expiresIn:r,accessTokenUpdatedAt:o,refreshToken:n}=e,s=P(),a=Math.floor(Date.now()/1e3);if(r-=20,a-o>r||null==t){if(console.log("getAccessToken access token expired"),s===w&&C()){if(!n)throw L(),Error(R.AUTH_ERROR_MISSING_REFRESH_TOKEN);let e=await I(n),{access_token:t,expires_in:r,refresh_token:o}=e;return void 0===o&&(o=null),k(t,r,o),t}throw L(),Error(R.AUTH_ERROR_ACCESS_TOKEN_EXPIRED)}return t}finally{await g.releaseLock(O)}throw Error(R.AUTH_ERROR_LOCK_ACQUIRE_ERROR)},I=async e=>{let t=j(),r=v();const n={grant_type:"refresh_token",client_id:encodeURI(r),refresh_token:e};try{const e=await fetch(`${t}/oauth2/token`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(n)}).then((e=>{if(400===e.status){(0,o.getCurrentPathName)();throw(0,o.setSessionClearingState)(!0),Error(`${R.AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR}: ${e.status} - ${e.statusText}`)}return e})).catch((function(e){throw Error(`${R.AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR}: ${e.message}`)})),r=await e.json();let{access_token:s,refresh_token:a,expires_in:i}=r;return{access_token:s,refresh_token:a,expires_in:i}}catch(e){throw console.log(e),e}},k=(e,t,r=null,n=null)=>{let s=N(),a={accessToken:e,expiresIn:t,accessTokenUpdatedAt:Math.floor(Date.now()/1e3)};null===r&&s&&(r=s.refreshToken),null===n&&s&&(n=s.idToken),r&&(a.refreshToken=r),n&&(a.idToken=n),(0,o.putOnLocalStorage)(y,JSON.stringify(a))},N=()=>{try{let e=(0,o.getFromLocalStorage)(y,!1);return e?JSON.parse(e):null}catch(e){return null}},L=()=>{if("undefined"!=typeof window)return(0,o.removeFromLocalStorage)(y),(0,o.removeFromLocalStorage)(T),void(0,o.removeFromLocalStorage)(h)},v=()=>"undefined"!=typeof window?window.OAUTH2_CLIENT_ID:null,P=()=>"undefined"!=typeof window&&window.OAUTH2_FLOW||"token id_token",C=()=>"undefined"==typeof window||new Boolean(window.OAUTH2_USE_REFRESH_TOKEN||!0),j=()=>"undefined"!=typeof window?window.IDP_BASE_URL:null,H=()=>"undefined"!=typeof window?window.SCOPES:null,x=()=>{(0,o.getCurrentLocation)().replace((e=>{let t=j(),r=v(),n=l()(`${t}/oauth2/end-session`),s=U(16),a=(0,o.getOrigin)()+"/auth/logout";return(0,o.putOnLocalStorage)("post_logout_state",s),n.query({id_token_hint:e,post_logout_redirect_uri:encodeURI(a),client_id:encodeURI(r),state:s})})((()=>{if("undefined"!=typeof window){const e=N();return e?e.idToken:null}return null})()).toString())}},4054:(e,t,r)=>{r.d(t,{authErrorHandler:()=>h,createAction:()=>R,getRequest:()=>U,showMessage:()=>k,startLoading:()=>g,stopLoading:()=>O});var o=r(4824),n=r.n(o),s=r(6530),a=r.n(s),i=r(271),l=r.n(i),u=r(4656),c=r.n(u),d=r(6793),p=r(4341),_=r(8576);const f=["access_token"];function S(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},s=Object.keys(e);for(o=0;o<s.length;o++)r=s[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(o=0;o<s.length;o++)r=s[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}let E=n();const R=e=>t=>({type:e,payload:t}),g=(R("RESET_LOADING"),R("START_LOADING")),O=R("STOP_LOADING"),w={},y={},T=e=>0===Object.keys(e).length&&e.constructor===Object,h=(e,t)=>(t,r)=>{let o=e.status,n="";switch(t(O()),o){case 403:let r={title:"ERROR",html:c().translate("errors.user_not_authz"),type:"error"};t(k(r,_.initLogOut));break;case 401:let o=(0,d.getCurrentPathName)(),i=(0,d.isClearingSessionState)();t({type:p.CLEAR_SESSION_STATE,payload:{}}),i||((0,d.setSessionClearingState)(!0),console.log("authErrorHandler 401 - re login"),(0,_.doLogin)(o));break;case 404:n="",n=e.response.body&&e.response.body.message?e.response.body.message:e.response.error&&e.response.error.message?e.response.error.message:e.message,l().fire("Not Found",n,"warning");break;case 412:for(var[s,a]of Object.entries(e.response.body.errors))isNaN(s)&&(n+=s+": "),n+=a+"<br>";l().fire("Validation error",n,"warning"),t({type:"VALIDATE",payload:{errors:e.response.body.errors}});break;default:l().fire("ERROR",c().translate("errors.server_error"),"error")}},U=(e,t,r,o=A,n={},s=!1)=>(i={})=>(l,u)=>{let c=a()(r),d=c.toString();if(!T(i)){const{access_token:e}=i,t=S(i,f);d=c.query(t).toString(),c=c.query(i)}return e&&"function"==typeof e&&l(e(n)),(e=>{w[e]&&(w[e].abort(),console.log(`aborted request ${e}`),delete w[e])})(d),new Promise(((e,r)=>{let n=E.get(c.toString());if(s&&y.hasOwnProperty(d)){const{etag:e}=y[d];e&&n.set("If-None-Match",e)}n.timeout({response:6e4,deadline:6e4}).end(I(l,u,t,o,e,r,d,s)),((e,t)=>{w[e]=t})(d,n)}))},A=(e,t)=>e=>{let r=t.body,o="";r instanceof Object&&r.hasOwnProperty("message")&&(o=r.message),l().fire(t.statusText,o,"error")},m=e=>e.toLowerCase(),b=(e,t={})=>{const r=(e=>Object.keys(e))(t).find((e=>t=>m(t)===e)(e));return r?t[r]:void 0},I=(e,t,r,o,n,s,a=null,i=!1)=>(l,u)=>{if(l||!u.ok){if(304===l.status&&y.hasOwnProperty(a)&&i){const{body:t}=y[a];return"function"==typeof r?(e(r({response:t})),n({response:t})):(e(r),n({response:t}))}return o&&o(l,u)(e,t),s({err:l,res:u,dispatch:e,state:t})}let c=u.body;if(i){const e=b("etag",u.headers);e&&(y[a]={etag:e,body:c})}return"function"==typeof r?(e(r({response:c})),n({response:c})):(e(r),n({response:c}))},k=(e,t={})=>r=>{r(O()),l().fire(e).then((e=>{e.value&&"function"==typeof t&&t()}))}},6793:(e,t,r)=>{r.d(t,{base64URLEncode:()=>f,buildAPIBaseUrl:()=>l,getAllowedUserGroups:()=>i,getAuthCallback:()=>o,getCurrentLocation:()=>n,getCurrentPathName:()=>a,getFromLocalStorage:()=>c,getOrigin:()=>s,isClearingSessionState:()=>p,putOnLocalStorage:()=>u,removeFromLocalStorage:()=>d,retryPromise:()=>S,setSessionClearingState:()=>_});r(8362),r(6530);const o=()=>"undefined"!=typeof window?`${window.location.origin}/auth/callback`:null,n=()=>{let e="";return"undefined"!=typeof window&&(e=window.location,window.top&&(e=window.top.location)),e},s=()=>"undefined"!=typeof window?window.location.origin:null,a=()=>"undefined"!=typeof window?window.location.pathname:null,i=()=>"undefined"!=typeof window?window.ALLOWED_USER_GROUPS||"":null,l=e=>"undefined"!=typeof window?`${window.API_BASE_URL}${e}`:null``,u=(e,t)=>{"undefined"!=typeof window&&window.localStorage.setItem(e,t)},c=(e,t)=>{if("undefined"!=typeof window){let r=window.localStorage.getItem(e);return t&&(console.log(`getFromLocalStorage removing key ${e}`),d(e)),r}return null},d=e=>{"undefined"!=typeof window&&window.localStorage.removeItem(e)},p=()=>"undefined"!=typeof window&&window.clearing_session_state,_=e=>{"undefined"!=typeof window&&(window.clearing_session_state=e)},f=e=>e.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,""),S=async(e,t=3)=>{for(let r=0;r<t;r++)if(await e())return!0;return!1}},4656:e=>{e.exports=require("i18n-react/dist/i18n-react")},3856:e=>{e.exports=require("idtoken-verifier")},8362:e=>{e.exports=require("moment-timezone")},4824:e=>{e.exports=require("superagent")},271:e=>{e.exports=require("sweetalert2")},6530:e=>{e.exports=require("urijs")}},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var s=t[o]={exports:{}};return e[o](s,s.exports,r),s.exports}return(()=>{r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t}})(),(()=>{r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})}})(),(()=>{r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})(),r(4341)})()));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("openstack-uicore-foundation",[],t):"object"==typeof exports?exports["openstack-uicore-foundation"]=t():e["openstack-uicore-foundation"]=t()}(this,(()=>(()=>{"use strict";var e={4341:(e,t,r)=>{r.r(t),r.d(t,{CLEAR_SESSION_STATE:()=>S,LOGOUT_USER:()=>p,RECEIVE_USER_INFO:()=>f,REQUEST_USER_INFO:()=>_,SESSION_STATE_STATUS_CHANGED:()=>g,SESSION_STATE_STATUS_ERROR:()=>O,SESSION_STATE_STATUS_UNCHANGED:()=>R,SET_LOGGED_USER:()=>d,UPDATE_SESSION_STATE_STATUS:()=>E,UPDATE_USER_INFO:()=>w,doLogout:()=>T,getUserInfo:()=>h,onUserAuth:()=>y,updateSessionStateStatus:()=>A,updateUserInfo:()=>U});var o=r(4656),n=r.n(o),s=r(4054),a=r(6793),i=r(8576);function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function u(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){c(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const d="SET_LOGGED_USER",p="LOGOUT_USER",_="REQUEST_USER_INFO",f="RECEIVE_USER_INFO",S="CLEAR_SESSION_STATE",E="UPDATE_SESSION_STATE_STATUS",R="unchanged",g="changed",O="error",w="UPDATE_USER_INFO",y=(e,t,r,o=0,n=null)=>s=>{(0,i.storeAuthInfo)(e,o,n,t),s({type:d,payload:{sessionState:r}})},T=e=>(t,r)=>{t({type:p,payload:{backUrl:e}})},h=(e="groups",t="",r=null,o=null,l=null)=>async(u,c)=>{let d=(0,a.getAllowedUserGroups)();d=""!==d?d.split(" "):[];let{loggedUserState:p}=c(),{member:S}=p,E=await(0,i.getAccessToken)();if(null!=S)return null!=o&&null!=r&&o.push(r),Promise.resolve();null==l&&(l=s.authErrorHandler),u((0,s.startLoading)());let R={access_token:E,expand:e};return t&&(R.fields=t),(0,s.getRequest)((0,s.createAction)(_),(0,s.createAction)(f),(0,a.buildAPIBaseUrl)("/api/v1/members/me"),l)(R)(u,c).then((()=>{u((0,s.stopLoading)());let{member:e}=c().loggedUserState;if(null==e){let e={title:"ERROR",html:n().translate("errors.user_not_set"),type:"error"};u((0,s.showMessage)(e,i.initLogOut))}if(d.length>0){if(0===e.groups.filter(((e,t)=>d.includes(e.code))).length){let e={title:"ERROR",html:n().translate("errors.user_not_authz"),type:"error"};return void u((0,s.showMessage)(e,i.initLogOut))}}null!=o&&null!=r&&o.push(r)}))},U=e=>(t,r)=>{let{loggedUserState:o}=r(),{member:n}=o;if(null==n)throw Error("Member is not set.");if(e.id!=n.id)throw Error("Member is not the same.");t({type:w,payload:u({},e)})},A=e=>(t,r)=>{t({type:E,payload:{sessionStateStatus:e}})}},1593:(e,t,r)=>{r.d(t,{AUTH_ERROR_ACCESS_TOKEN_EXPIRED:()=>s,AUTH_ERROR_LOCK_ACQUIRE_ERROR:()=>a,AUTH_ERROR_MISSING_AUTH_INFO:()=>o,AUTH_ERROR_MISSING_REFRESH_TOKEN:()=>n,AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR:()=>i});const o="AUTH_ERROR_MISSING_AUTH_INFO",n="AUTH_ERROR_MISSING_REFRESH_TOKEN",s="AUTH_ERROR_ACCESS_TOKEN_EXPIRED",a="AUTH_ERROR_LOCK_ACQUIRE_ERROR",i="AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR"},8576:(e,t,r)=>{r.d(t,{doLogin:()=>A,getAccessToken:()=>b,initLogOut:()=>F,storeAuthInfo:()=>k});var o=r(6793);r(4824);const n=require("browser-tabs-lock");var s=r.n(n),i=r(6530),l=r.n(i);r(3856),r(4341);const u=require("crypto-js/sha256");var c=r.n(u);const d=require("crypto-js/enc-base64url");var p=r.n(d);const _=require("crypto-js/enc-hex");var f=r.n(_);const S=65536,E="undefined"!=typeof window?window.crypto||window.msCrypto:null;var R=r(1593);const g=new(s()),O="openstackuicore.lock.getTokenSilently",w="code",y="authInfo",T="nonce",h="pkce",U=e=>{let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",r="";for(let o=0;o<e;o++)r+=t.charAt(Math.floor(Math.random()*t.length));return r},A=(e=null,t=null,r=null)=>{let n=((e=null,t=null,r=null,n=null)=>{let s=P(),a=(0,o.getAuthCallback)(),i=H(),u=x(),c=C();null!=e&&(a+=`?BackUrl=${encodeURI(e)}`);let d=U(16);(0,o.putOnLocalStorage)(T,d);let p=l()(`${i}/oauth2/auth`),_={response_type:encodeURI(c),scope:encodeURI(u),nonce:d,response_mode:"fragment",client_id:encodeURI(s),redirect_uri:encodeURI(a)};if(c===w){const e=m();(0,o.putOnLocalStorage)(h,JSON.stringify(e)),_.code_challenge=e.codeChallenge,_.code_challenge_method="S256",_.approval_prompt="force"}return t&&(_.prompt=t),u&&u.includes("offline_access")&&(_.prompt="consent"),r&&(_.id_token_hint=r),n&&(_.provider=n),p=p.query(_),p})(e,r,null,t);(0,o.getCurrentLocation)().replace(n.toString())},m=()=>{const e=(0,o.base64URLEncode)((e=>{if(e>4294967295)throw new RangeError("requested too many random bytes");const t=Buffer.allocUnsafe(e);if(!E)return a;if(e>0)if(e>S)for(let r=0;r<e;r+=S)E.getRandomValues(t.slice(r,r+S));else E.getRandomValues(t);return t})(64));return{codeVerifier:e,codeChallenge:((e,t="hex")=>{let r=f();return"Base64url"===t&&(r=p()),c()(e).toString(r)})(e,"Base64url"),createdAt:new Date}},b=async()=>{if(await(0,o.retryPromise)((()=>g.acquireLock(O,5e3)),10))try{let e=N();if(!e)throw Error(R.AUTH_ERROR_MISSING_AUTH_INFO);let{accessToken:t,expiresIn:r,accessTokenUpdatedAt:o,refreshToken:n}=e,s=C(),a=Math.floor(Date.now()/1e3);if(r-=20,a-o>r||null==t){if(console.log("getAccessToken access token expired"),s===w&&j()){if(!n)throw L(),Error(R.AUTH_ERROR_MISSING_REFRESH_TOKEN);let e=await I(n),{access_token:t,expires_in:r,refresh_token:o}=e;return void 0===o&&(o=null),k(t,r,o),t}throw L(),Error(R.AUTH_ERROR_ACCESS_TOKEN_EXPIRED)}return t}finally{await g.releaseLock(O)}throw Error(R.AUTH_ERROR_LOCK_ACQUIRE_ERROR)},I=async e=>{let t=H(),r=P();const n={grant_type:"refresh_token",client_id:encodeURI(r),refresh_token:e};try{const e=await fetch(`${t}/oauth2/token`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(n)}).then((e=>{if(400===e.status){(0,o.getCurrentPathName)();throw(0,o.setSessionClearingState)(!0),Error(`${R.AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR}: ${e.status} - ${e.statusText}`)}return e})).catch((function(e){throw Error(`${R.AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR}: ${e.message}`)})),r=await e.json();let{access_token:s,refresh_token:a,expires_in:i}=r;return{access_token:s,refresh_token:a,expires_in:i}}catch(e){throw console.log(e),e}},k=(e,t,r=null,n=null)=>{let s=N(),a={accessToken:e,expiresIn:t,accessTokenUpdatedAt:Math.floor(Date.now()/1e3)};null===r&&s&&(r=s.refreshToken),null===n&&s&&(n=s.idToken),r&&(a.refreshToken=r),n&&(a.idToken=n),(0,o.putOnLocalStorage)(y,JSON.stringify(a))},N=()=>{try{let e=(0,o.getFromLocalStorage)(y,!1);return e?JSON.parse(e):null}catch(e){return null}},L=()=>{if("undefined"!=typeof window)return(0,o.removeFromLocalStorage)(y),(0,o.removeFromLocalStorage)(T),void(0,o.removeFromLocalStorage)(h)},v=()=>{if("undefined"!=typeof window){const e=N();return e?e.idToken:null}return null},P=()=>"undefined"!=typeof window?window.OAUTH2_CLIENT_ID:null,C=()=>"undefined"!=typeof window&&window.OAUTH2_FLOW||"token id_token",j=()=>"undefined"==typeof window||new Boolean(window.OAUTH2_USE_REFRESH_TOKEN||!0),H=()=>"undefined"!=typeof window?window.IDP_BASE_URL:null,x=()=>"undefined"!=typeof window?window.SCOPES:null,F=()=>{(0,o.getCurrentLocation)().replace((e=>{let t=H(),r=P(),n=l()(`${t}/oauth2/end-session`),s=U(16),a=(0,o.getOrigin)()+"/auth/logout";return(0,o.putOnLocalStorage)("post_logout_state",s),n.query({id_token_hint:e,post_logout_redirect_uri:encodeURI(a),client_id:encodeURI(r),state:s})})(v()).toString())}},4054:(e,t,r)=>{r.d(t,{authErrorHandler:()=>h,createAction:()=>R,getRequest:()=>U,showMessage:()=>k,startLoading:()=>g,stopLoading:()=>O});var o=r(4824),n=r.n(o),s=r(6530),a=r.n(s),i=r(271),l=r.n(i),u=r(4656),c=r.n(u),d=r(6793),p=r(4341),_=r(8576);const f=["access_token"];function S(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},s=Object.keys(e);for(o=0;o<s.length;o++)r=s[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(o=0;o<s.length;o++)r=s[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}let E=n();const R=e=>t=>({type:e,payload:t}),g=(R("RESET_LOADING"),R("START_LOADING")),O=R("STOP_LOADING"),w={},y={},T=e=>0===Object.keys(e).length&&e.constructor===Object,h=(e,t)=>(t,r)=>{let o=e.status,n="";switch(t(O()),o){case 403:let r={title:"ERROR",html:c().translate("errors.user_not_authz"),type:"error"};t(k(r,_.initLogOut));break;case 401:let o=(0,d.getCurrentPathName)(),i=(0,d.isClearingSessionState)();t({type:p.CLEAR_SESSION_STATE,payload:{}}),i||((0,d.setSessionClearingState)(!0),console.log("authErrorHandler 401 - re login"),(0,_.doLogin)(o));break;case 404:n="",n=e.response.body&&e.response.body.message?e.response.body.message:e.response.error&&e.response.error.message?e.response.error.message:e.message,l().fire("Not Found",n,"warning");break;case 412:for(var[s,a]of Object.entries(e.response.body.errors))isNaN(s)&&(n+=s+": "),n+=a+"<br>";l().fire("Validation error",n,"warning"),t({type:"VALIDATE",payload:{errors:e.response.body.errors}});break;default:l().fire("ERROR",c().translate("errors.server_error"),"error")}},U=(e,t,r,o=A,n={},s=!1)=>(i={})=>(l,u)=>{let c=a()(r),d=c.toString();if(!T(i)){const{access_token:e}=i,t=S(i,f);d=c.query(t).toString(),c=c.query(i)}return e&&"function"==typeof e&&l(e(n)),(e=>{w[e]&&(w[e].abort(),console.log(`aborted request ${e}`),delete w[e])})(d),new Promise(((e,r)=>{let n=E.get(c.toString());if(s&&y.hasOwnProperty(d)){const{etag:e}=y[d];e&&n.set("If-None-Match",e)}n.timeout({response:6e4,deadline:6e4}).end(I(l,u,t,o,e,r,d,s)),((e,t)=>{w[e]=t})(d,n)}))},A=(e,t)=>e=>{let r=t.body,o="";r instanceof Object&&r.hasOwnProperty("message")&&(o=r.message),l().fire(t.statusText,o,"error")},m=e=>e.toLowerCase(),b=(e,t={})=>{const r=(e=>Object.keys(e))(t).find((e=>t=>m(t)===e)(e));return r?t[r]:void 0},I=(e,t,r,o,n,s,a=null,i=!1)=>(l,u)=>{if(l||!u.ok){if(304===l.status&&y.hasOwnProperty(a)&&i){const{body:t}=y[a];return"function"==typeof r?(e(r({response:t})),n({response:t})):(e(r),n({response:t}))}return o&&o(l,u)(e,t),s({err:l,res:u,dispatch:e,state:t})}let c=u.body;if(i){const e=b("etag",u.headers);e&&(y[a]={etag:e,body:c})}return"function"==typeof r?(e(r({response:c})),n({response:c})):(e(r),n({response:c}))},k=(e,t={})=>r=>{r(O()),l().fire(e).then((e=>{e.value&&"function"==typeof t&&t()}))}},6793:(e,t,r)=>{r.d(t,{base64URLEncode:()=>f,buildAPIBaseUrl:()=>l,getAllowedUserGroups:()=>i,getAuthCallback:()=>o,getCurrentLocation:()=>n,getCurrentPathName:()=>a,getFromLocalStorage:()=>c,getOrigin:()=>s,isClearingSessionState:()=>p,putOnLocalStorage:()=>u,removeFromLocalStorage:()=>d,retryPromise:()=>S,setSessionClearingState:()=>_});r(8362),r(6530);const o=()=>"undefined"!=typeof window?`${window.location.origin}/auth/callback`:null,n=()=>{let e="";return"undefined"!=typeof window&&(e=window.location,window.top&&(e=window.top.location)),e},s=()=>"undefined"!=typeof window?window.location.origin:null,a=()=>"undefined"!=typeof window?window.location.pathname:null,i=()=>"undefined"!=typeof window?window.ALLOWED_USER_GROUPS||"":null,l=e=>"undefined"!=typeof window?`${window.API_BASE_URL}${e}`:null``,u=(e,t)=>{"undefined"!=typeof window&&window.localStorage.setItem(e,t)},c=(e,t)=>{if("undefined"!=typeof window){let r=window.localStorage.getItem(e);return t&&(console.log(`getFromLocalStorage removing key ${e}`),d(e)),r}return null},d=e=>{"undefined"!=typeof window&&window.localStorage.removeItem(e)},p=()=>"undefined"!=typeof window&&window.clearing_session_state,_=e=>{"undefined"!=typeof window&&(window.clearing_session_state=e)},f=e=>e.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,""),S=async(e,t=3)=>{for(let r=0;r<t;r++)if(await e())return!0;return!1}},4656:e=>{e.exports=require("i18n-react/dist/i18n-react")},3856:e=>{e.exports=require("idtoken-verifier")},8362:e=>{e.exports=require("moment-timezone")},4824:e=>{e.exports=require("superagent")},271:e=>{e.exports=require("sweetalert2")},6530:e=>{e.exports=require("urijs")}},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var s=t[o]={exports:{}};return e[o](s,s.exports,r),s.exports}return(()=>{r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t}})(),(()=>{r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})}})(),(()=>{r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})(),r(4341)})()));
|
package/lib/security/methods.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,o){"object"==typeof exports&&"object"==typeof module?module.exports=o():"function"==typeof define&&define.amd?define("openstack-uicore-foundation",[],o):"object"==typeof exports?exports["openstack-uicore-foundation"]=o():e["openstack-uicore-foundation"]=o()}(this,(()=>(()=>{"use strict";var e={4341:(e,o,t)=>{t.d(o,{SET_LOGGED_USER:()=>n});t(4656),t(4054),t(6793),t(8576);const n="SET_LOGGED_USER"},1593:(e,o,t)=>{t.d(o,{AUTH_ERROR_ACCESS_TOKEN_EXPIRED:()=>i,AUTH_ERROR_ID_TOKEN_INVALID:()=>c,AUTH_ERROR_LOCK_ACQUIRE_ERROR:()=>a,AUTH_ERROR_MISSING_AUTH_INFO:()=>n,AUTH_ERROR_MISSING_OTP_PARAM:()=>s,AUTH_ERROR_MISSING_REFRESH_TOKEN:()=>r,AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR:()=>l});const n="AUTH_ERROR_MISSING_AUTH_INFO",r="AUTH_ERROR_MISSING_REFRESH_TOKEN",i="AUTH_ERROR_ACCESS_TOKEN_EXPIRED",a="AUTH_ERROR_LOCK_ACQUIRE_ERROR",l="AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR",c="AUTH_ERROR_ID_TOKEN_INVALID",s="AUTH_ERROR_MISSING_OTP_PARAM"},8576:(e,o,t)=>{t.r(o),t.d(o,{ACCESS_TOKEN_SKEW_TIME:()=>A,RESPONSE_TYPE_CODE:()=>k,RESPONSE_TYPE_IMPLICIT:()=>U,clearAccessToken:()=>M,clearAuthInfo:()=>$,doLogin:()=>v,doLoginBasicLogin:()=>x,emitAccessToken:()=>D,getAccessToken:()=>j,getAuthInfo:()=>q,getAuthUrl:()=>C,getIdToken:()=>B,getLogoutUrl:()=>H,getOAuth2ClientId:()=>Q,getOAuth2Flow:()=>V,getOAuth2IDPBaseUrl:()=>X,getOAuth2Scopes:()=>z,initLogOut:()=>W,passwordlessLogin:()=>ee,passwordlessStart:()=>Z,refreshAccessToken:()=>G,storeAuthInfo:()=>K,useOAuth2RefreshToken:()=>J,validateIdToken:()=>Y});var n=t(6793),r=t(4824),i=t.n(r);const l=require("browser-tabs-lock");var c=t.n(l),s=t(6530),d=t.n(s),u=t(3856),_=t.n(u),p=t(4341);const R=require("crypto-js/sha256");var f=t.n(R);const E=require("crypto-js/enc-base64url");var w=t.n(E);const S=require("crypto-js/enc-hex");var O=t.n(S);const g=65536,h="undefined"!=typeof window?window.crypto||window.msCrypto:null;var T=t(1593);let y=i();const I=new(c()),m="openstackuicore.lock.getTokenSilently",A=20,U="token id_token",k="code",L="authInfo",N="nonce",P="pkce",C=(e=null,o=null,t=null,r=null)=>{let i=Q(),a=(0,n.getAuthCallback)(),l=X(),c=z(),s=V();null!=e&&(a+=`?BackUrl=${encodeURI(e)}`);let u=b(16);(0,n.putOnLocalStorage)(N,u);let _=d()(`${l}/oauth2/auth`),p={response_type:encodeURI(s),scope:encodeURI(c),nonce:u,response_mode:"fragment",client_id:encodeURI(i),redirect_uri:encodeURI(a)};if(s===k){const e=F();(0,n.putOnLocalStorage)(P,JSON.stringify(e)),p.code_challenge=e.codeChallenge,p.code_challenge_method="S256",p.approval_prompt="force"}return o&&(p.prompt=o),c&&c.includes("offline_access")&&(p.prompt="consent"),t&&(p.id_token_hint=t),r&&(p.provider=r),_=_.query(p),_},H=e=>{let o=X(),t=Q(),r=d()(`${o}/oauth2/end-session`),i=b(16),a=(0,n.getOrigin)()+"/auth/logout";return(0,n.putOnLocalStorage)("post_logout_state",i),r.query({id_token_hint:e,post_logout_redirect_uri:encodeURI(a),client_id:encodeURI(t),state:i})},b=e=>{let o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",t="";for(let n=0;n<e;n++)t+=o.charAt(Math.floor(Math.random()*o.length));return t},v=(e=null,o=null,t=null)=>{let r=C(e,t,null,o);(0,n.getCurrentLocation)().replace(r.toString())},x=(e=null)=>{v(e,null,null)},F=()=>{const e=(0,n.base64URLEncode)((e=>{if(e>4294967295)throw new RangeError("requested too many random bytes");const o=Buffer.allocUnsafe(e);if(!h)return a;if(e>0)if(e>g)for(let t=0;t<e;t+=g)h.getRandomValues(o.slice(t,t+g));else h.getRandomValues(o);return o})(64));return{codeVerifier:e,codeChallenge:((e,o="hex")=>{let t=O();return"Base64url"===o&&(t=w()),f()(e).toString(t)})(e,"Base64url"),createdAt:new Date}},D=async(e,o=null)=>{let t=X(),r=Q(),i=(0,n.getAuthCallback)(),a=JSON.parse((0,n.getFromLocalStorage)(P,!0));null!=o&&(i+=`?BackUrl=${encodeURI(o)}`);const l={code:e,grant_type:"authorization_code",code_verifier:a.codeVerifier,client_id:encodeURI(r),redirect_uri:encodeURI(i)};try{const e=await fetch(`${t}/oauth2/token`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(l)}).catch((function(e){console.log("Request failed:",e.message)})),o=await e.json();let{access_token:n,refresh_token:r,id_token:i,expires_in:a,error:c,error_description:s}=o;return{access_token:n,refresh_token:r,id_token:i,expires_in:a,error:c,error_description:s}}catch(e){console.log(e)}},M=async()=>{if(await(0,n.retryPromise)((()=>I.acquireLock(m,5e3)),10))try{let e=q();if(!e)throw Error(T.AUTH_ERROR_MISSING_AUTH_INFO);let{accessToken:o,expiresIn:t,accessTokenUpdatedAt:n,refreshToken:r}=e;K(null,0,r)}finally{await I.releaseLock(m)}},j=async()=>{if(await(0,n.retryPromise)((()=>I.acquireLock(m,5e3)),10))try{let e=q();if(!e)throw Error(T.AUTH_ERROR_MISSING_AUTH_INFO);let{accessToken:o,expiresIn:t,accessTokenUpdatedAt:n,refreshToken:r}=e,i=V(),a=Math.floor(Date.now()/1e3);if(t-=A,a-n>t||null==o){if(console.log("getAccessToken access token expired"),i===k&&J()){if(!r)throw $(),Error(T.AUTH_ERROR_MISSING_REFRESH_TOKEN);let e=await G(r),{access_token:o,expires_in:t,refresh_token:n}=e;return void 0===n&&(n=null),K(o,t,n),o}throw $(),Error(T.AUTH_ERROR_ACCESS_TOKEN_EXPIRED)}return o}finally{await I.releaseLock(m)}throw Error(T.AUTH_ERROR_LOCK_ACQUIRE_ERROR)},G=async e=>{let o=X(),t=Q();const r={grant_type:"refresh_token",client_id:encodeURI(t),refresh_token:e};try{const e=await fetch(`${o}/oauth2/token`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(r)}).then((e=>{if(400===e.status){(0,n.getCurrentPathName)();throw(0,n.setSessionClearingState)(!0),Error(`${T.AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR}: ${e.status} - ${e.statusText}`)}return e})).catch((function(e){throw Error(`${T.AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR}: ${e.message}`)})),t=await e.json();let{access_token:i,refresh_token:a,expires_in:l}=t;return{access_token:i,refresh_token:a,expires_in:l}}catch(e){throw console.log(e),e}},K=(e,o,t=null,r=null)=>{let i=q(),a={accessToken:e,expiresIn:o,accessTokenUpdatedAt:Math.floor(Date.now()/1e3)};null===t&&i&&(t=i.refreshToken),null===r&&i&&(r=i.idToken),t&&(a.refreshToken=t),r&&(a.idToken=r),(0,n.putOnLocalStorage)(L,JSON.stringify(a))},q=()=>{try{let e=(0,n.getFromLocalStorage)(L,!1);return e?JSON.parse(e):null}catch(e){return null}},$=()=>{if("undefined"!=typeof window)return(0,n.removeFromLocalStorage)(L),(0,n.removeFromLocalStorage)(N),void(0,n.removeFromLocalStorage)(P)},B=()=>{if("undefined"!=typeof window){const e=q();return e?e.idToken:null}return null},Q=()=>"undefined"!=typeof window?window.OAUTH2_CLIENT_ID:null,V=()=>"undefined"!=typeof window&&window.OAUTH2_FLOW||"token id_token",J=()=>"undefined"==typeof window||new Boolean(window.OAUTH2_USE_REFRESH_TOKEN||!0),X=()=>"undefined"!=typeof window?window.IDP_BASE_URL:null,z=()=>"undefined"!=typeof window?window.SCOPES:null,W=()=>{(0,n.getCurrentLocation)().replace(H(B()).toString())},Y=(e,o,t)=>{let r=new(_())({issuer:o,audience:t}),i=(0,n.getFromLocalStorage)(N,!0),a=r.decode(e),l=(a.header.alg,a.header.kid,a.payload.aud),c=a.payload.iss;a.payload.exp,a.payload.nbf;return(a.payload.nonce||null)==i&&l==t&&c==o},Z=e=>{let o=Q(),t=z(),r=b(16);(0,n.putOnLocalStorage)(N,r);let i=X(),a=d()(`${i}/oauth2/auth`),l={response_type:"otp",scope:encodeURI(t),nonce:r,client_id:encodeURI(o),connection:e.connection||"email",send:e.send||"code"};return e.hasOwnProperty("email")&&(l.email=encodeURIComponent(e.email)),e.hasOwnProperty("phone_number")&&(l.phone_number=encodeURIComponent(e.phone_number)),e.hasOwnProperty("redirect_uri")&&(l.redirect_uri=encodeURIComponent(e.redirect_uri)),y.post(a.toString()).send(l).then((e=>{let o=e.body;return Promise.resolve({response:o})})).catch((e=>Promise.reject(e)))},ee=e=>o=>{let t=Q(),n=z(),r=X(),i=d()(`${r}/oauth2/token`);if(!e.hasOwnProperty("otp"))throw Error(T.AUTH_ERROR_MISSING_OTP_PARAM);let a={grant_type:"passwordless",connection:e.connection||"email",scope:encodeURI(n),client_id:encodeURI(t),otp:e.otp};return e.hasOwnProperty("email")&&(a.email=encodeURIComponent(e.email)),e.hasOwnProperty("phone_number")&&(a.phone_number=encodeURIComponent(e.phone_number)),y.post(i.toString()).send(a).then((e=>{try{let n=e.body,{access_token:i,expires_in:a,refresh_token:l,id_token:c}=n;if(void 0===l&&(l=null),void 0===c&&(c=null),c&&!Y(c,r,t))throw Error(T.AUTH_ERROR_ID_TOKEN_INVALID);return K(i,a,l,c),o&&o({type:p.SET_LOGGED_USER,payload:{sessionState:null}}),Promise.resolve({response:n})}catch(e){return console.log(e),Promise.reject(e)}})).catch((e=>Promise.reject(e)))}},4054:(e,o,t)=>{t(4824),t(6530),t(271),t(4656),t(6793),t(4341),t(8576);const n=e=>o=>({type:e,payload:o});n("RESET_LOADING"),n("START_LOADING"),n("STOP_LOADING")},6793:(e,o,t)=>{t.d(o,{base64URLEncode:()=>u,getAuthCallback:()=>n,getCurrentLocation:()=>r,getCurrentPathName:()=>a,getFromLocalStorage:()=>c,getOrigin:()=>i,putOnLocalStorage:()=>l,removeFromLocalStorage:()=>s,retryPromise:()=>_,setSessionClearingState:()=>d});t(8362),t(6530);const n=()=>"undefined"!=typeof window?`${window.location.origin}/auth/callback`:null,r=()=>{let e="";return"undefined"!=typeof window&&(e=window.location,window.top&&(e=window.top.location)),e},i=()=>"undefined"!=typeof window?window.location.origin:null,a=()=>"undefined"!=typeof window?window.location.pathname:null,l=(e,o)=>{"undefined"!=typeof window&&window.localStorage.setItem(e,o)},c=(e,o)=>{if("undefined"!=typeof window){let t=window.localStorage.getItem(e);return o&&(console.log(`getFromLocalStorage removing key ${e}`),s(e)),t}return null},s=e=>{"undefined"!=typeof window&&window.localStorage.removeItem(e)},d=e=>{"undefined"!=typeof window&&(window.clearing_session_state=e)},u=e=>e.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,""),_=async(e,o=3)=>{for(let t=0;t<o;t++)if(await e())return!0;return!1}},4656:e=>{e.exports=require("i18n-react/dist/i18n-react")},3856:e=>{e.exports=require("idtoken-verifier")},8362:e=>{e.exports=require("moment-timezone")},4824:e=>{e.exports=require("superagent")},271:e=>{e.exports=require("sweetalert2")},6530:e=>{e.exports=require("urijs")}},o={};function t(n){var r=o[n];if(void 0!==r)return r.exports;var i=o[n]={exports:{}};return e[n](i,i.exports,t),i.exports}return(()=>{t.n=e=>{var o=e&&e.__esModule?()=>e.default:()=>e;return t.d(o,{a:o}),o}})(),(()=>{t.d=(e,o)=>{for(var n in o)t.o(o,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:o[n]})}})(),(()=>{t.o=(e,o)=>Object.prototype.hasOwnProperty.call(e,o)})(),(()=>{t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})(),t(8576)})()));
|
|
1
|
+
!function(e,o){"object"==typeof exports&&"object"==typeof module?module.exports=o():"function"==typeof define&&define.amd?define("openstack-uicore-foundation",[],o):"object"==typeof exports?exports["openstack-uicore-foundation"]=o():e["openstack-uicore-foundation"]=o()}(this,(()=>(()=>{"use strict";var e={4341:(e,o,t)=>{t.d(o,{SET_LOGGED_USER:()=>n});t(4656),t(4054),t(6793),t(8576);const n="SET_LOGGED_USER"},1593:(e,o,t)=>{t.d(o,{AUTH_ERROR_ACCESS_TOKEN_EXPIRED:()=>i,AUTH_ERROR_ID_TOKEN_INVALID:()=>c,AUTH_ERROR_LOCK_ACQUIRE_ERROR:()=>a,AUTH_ERROR_MISSING_AUTH_INFO:()=>n,AUTH_ERROR_MISSING_OTP_PARAM:()=>s,AUTH_ERROR_MISSING_REFRESH_TOKEN:()=>r,AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR:()=>l});const n="AUTH_ERROR_MISSING_AUTH_INFO",r="AUTH_ERROR_MISSING_REFRESH_TOKEN",i="AUTH_ERROR_ACCESS_TOKEN_EXPIRED",a="AUTH_ERROR_LOCK_ACQUIRE_ERROR",l="AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR",c="AUTH_ERROR_ID_TOKEN_INVALID",s="AUTH_ERROR_MISSING_OTP_PARAM"},8576:(e,o,t)=>{t.r(o),t.d(o,{ACCESS_TOKEN_SKEW_TIME:()=>m,RESPONSE_TYPE_CODE:()=>k,RESPONSE_TYPE_IMPLICIT:()=>U,clearAccessToken:()=>M,clearAuthInfo:()=>$,doLogin:()=>v,doLoginBasicLogin:()=>x,emitAccessToken:()=>F,getAccessToken:()=>j,getAuthInfo:()=>q,getAuthUrl:()=>C,getIdToken:()=>B,getLogoutUrl:()=>H,getOAuth2ClientId:()=>Q,getOAuth2Flow:()=>V,getOAuth2IDPBaseUrl:()=>X,getOAuth2Scopes:()=>z,initLogOut:()=>W,isIdTokenAlive:()=>oe,passwordlessLogin:()=>ee,passwordlessStart:()=>Z,refreshAccessToken:()=>G,storeAuthInfo:()=>K,useOAuth2RefreshToken:()=>J,validateIdToken:()=>Y});var n=t(6793),r=t(4824),i=t.n(r);const l=require("browser-tabs-lock");var c=t.n(l),s=t(6530),d=t.n(s),u=t(3856),_=t.n(u),p=t(4341);const R=require("crypto-js/sha256");var f=t.n(R);const E=require("crypto-js/enc-base64url");var w=t.n(E);const S=require("crypto-js/enc-hex");var h=t.n(S);const O=65536,g="undefined"!=typeof window?window.crypto||window.msCrypto:null;var T=t(1593);let y=i();const I=new(c()),A="openstackuicore.lock.getTokenSilently",m=20,U="token id_token",k="code",L="authInfo",N="nonce",P="pkce",C=(e=null,o=null,t=null,r=null)=>{let i=Q(),a=(0,n.getAuthCallback)(),l=X(),c=z(),s=V();null!=e&&(a+=`?BackUrl=${encodeURI(e)}`);let u=b(16);(0,n.putOnLocalStorage)(N,u);let _=d()(`${l}/oauth2/auth`),p={response_type:encodeURI(s),scope:encodeURI(c),nonce:u,response_mode:"fragment",client_id:encodeURI(i),redirect_uri:encodeURI(a)};if(s===k){const e=D();(0,n.putOnLocalStorage)(P,JSON.stringify(e)),p.code_challenge=e.codeChallenge,p.code_challenge_method="S256",p.approval_prompt="force"}return o&&(p.prompt=o),c&&c.includes("offline_access")&&(p.prompt="consent"),t&&(p.id_token_hint=t),r&&(p.provider=r),_=_.query(p),_},H=e=>{let o=X(),t=Q(),r=d()(`${o}/oauth2/end-session`),i=b(16),a=(0,n.getOrigin)()+"/auth/logout";return(0,n.putOnLocalStorage)("post_logout_state",i),r.query({id_token_hint:e,post_logout_redirect_uri:encodeURI(a),client_id:encodeURI(t),state:i})},b=e=>{let o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",t="";for(let n=0;n<e;n++)t+=o.charAt(Math.floor(Math.random()*o.length));return t},v=(e=null,o=null,t=null)=>{let r=C(e,t,null,o);(0,n.getCurrentLocation)().replace(r.toString())},x=(e=null)=>{v(e,null,null)},D=()=>{const e=(0,n.base64URLEncode)((e=>{if(e>4294967295)throw new RangeError("requested too many random bytes");const o=Buffer.allocUnsafe(e);if(!g)return a;if(e>0)if(e>O)for(let t=0;t<e;t+=O)g.getRandomValues(o.slice(t,t+O));else g.getRandomValues(o);return o})(64));return{codeVerifier:e,codeChallenge:((e,o="hex")=>{let t=h();return"Base64url"===o&&(t=w()),f()(e).toString(t)})(e,"Base64url"),createdAt:new Date}},F=async(e,o=null)=>{let t=X(),r=Q(),i=(0,n.getAuthCallback)(),a=JSON.parse((0,n.getFromLocalStorage)(P,!0));null!=o&&(i+=`?BackUrl=${encodeURI(o)}`);const l={code:e,grant_type:"authorization_code",code_verifier:a.codeVerifier,client_id:encodeURI(r),redirect_uri:encodeURI(i)};try{const e=await fetch(`${t}/oauth2/token`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(l)}).catch((function(e){console.log("Request failed:",e.message)})),o=await e.json();let{access_token:n,refresh_token:r,id_token:i,expires_in:a,error:c,error_description:s}=o;return{access_token:n,refresh_token:r,id_token:i,expires_in:a,error:c,error_description:s}}catch(e){console.log(e)}},M=async()=>{if(await(0,n.retryPromise)((()=>I.acquireLock(A,5e3)),10))try{let e=q();if(!e)throw Error(T.AUTH_ERROR_MISSING_AUTH_INFO);let{accessToken:o,expiresIn:t,accessTokenUpdatedAt:n,refreshToken:r}=e;K(null,0,r)}finally{await I.releaseLock(A)}},j=async()=>{if(await(0,n.retryPromise)((()=>I.acquireLock(A,5e3)),10))try{let e=q();if(!e)throw Error(T.AUTH_ERROR_MISSING_AUTH_INFO);let{accessToken:o,expiresIn:t,accessTokenUpdatedAt:n,refreshToken:r}=e,i=V(),a=Math.floor(Date.now()/1e3);if(t-=m,a-n>t||null==o){if(console.log("getAccessToken access token expired"),i===k&&J()){if(!r)throw $(),Error(T.AUTH_ERROR_MISSING_REFRESH_TOKEN);let e=await G(r),{access_token:o,expires_in:t,refresh_token:n}=e;return void 0===n&&(n=null),K(o,t,n),o}throw $(),Error(T.AUTH_ERROR_ACCESS_TOKEN_EXPIRED)}return o}finally{await I.releaseLock(A)}throw Error(T.AUTH_ERROR_LOCK_ACQUIRE_ERROR)},G=async e=>{let o=X(),t=Q();const r={grant_type:"refresh_token",client_id:encodeURI(t),refresh_token:e};try{const e=await fetch(`${o}/oauth2/token`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(r)}).then((e=>{if(400===e.status){(0,n.getCurrentPathName)();throw(0,n.setSessionClearingState)(!0),Error(`${T.AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR}: ${e.status} - ${e.statusText}`)}return e})).catch((function(e){throw Error(`${T.AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR}: ${e.message}`)})),t=await e.json();let{access_token:i,refresh_token:a,expires_in:l}=t;return{access_token:i,refresh_token:a,expires_in:l}}catch(e){throw console.log(e),e}},K=(e,o,t=null,r=null)=>{let i=q(),a={accessToken:e,expiresIn:o,accessTokenUpdatedAt:Math.floor(Date.now()/1e3)};null===t&&i&&(t=i.refreshToken),null===r&&i&&(r=i.idToken),t&&(a.refreshToken=t),r&&(a.idToken=r),(0,n.putOnLocalStorage)(L,JSON.stringify(a))},q=()=>{try{let e=(0,n.getFromLocalStorage)(L,!1);return e?JSON.parse(e):null}catch(e){return null}},$=()=>{if("undefined"!=typeof window)return(0,n.removeFromLocalStorage)(L),(0,n.removeFromLocalStorage)(N),void(0,n.removeFromLocalStorage)(P)},B=()=>{if("undefined"!=typeof window){const e=q();return e?e.idToken:null}return null},Q=()=>"undefined"!=typeof window?window.OAUTH2_CLIENT_ID:null,V=()=>"undefined"!=typeof window&&window.OAUTH2_FLOW||"token id_token",J=()=>"undefined"==typeof window||new Boolean(window.OAUTH2_USE_REFRESH_TOKEN||!0),X=()=>"undefined"!=typeof window?window.IDP_BASE_URL:null,z=()=>"undefined"!=typeof window?window.SCOPES:null,W=()=>{(0,n.getCurrentLocation)().replace(H(B()).toString())},Y=(e,o,t)=>{let r=new(_())({issuer:o,audience:t}),i=(0,n.getFromLocalStorage)(N,!0),a=r.decode(e),l=(a.header.alg,a.header.kid,a.payload.aud),c=a.payload.iss;a.payload.exp,a.payload.nbf;return(a.payload.nonce||null)==i&&l==t&&c==o},Z=e=>{let o=Q(),t=z(),r=b(16);(0,n.putOnLocalStorage)(N,r);let i=X(),a=d()(`${i}/oauth2/auth`),l={response_type:"otp",scope:encodeURI(t),nonce:r,client_id:encodeURI(o),connection:e.connection||"email",send:e.send||"code"};return e.hasOwnProperty("email")&&(l.email=encodeURIComponent(e.email)),e.hasOwnProperty("phone_number")&&(l.phone_number=encodeURIComponent(e.phone_number)),e.hasOwnProperty("redirect_uri")&&(l.redirect_uri=encodeURIComponent(e.redirect_uri)),y.post(a.toString()).send(l).then((e=>{let o=e.body;return Promise.resolve({response:o})})).catch((e=>Promise.reject(e)))},ee=e=>o=>{let t=Q(),n=z(),r=X(),i=d()(`${r}/oauth2/token`);if(!e.hasOwnProperty("otp"))throw Error(T.AUTH_ERROR_MISSING_OTP_PARAM);let a={grant_type:"passwordless",connection:e.connection||"email",scope:encodeURI(n),client_id:encodeURI(t),otp:e.otp};return e.hasOwnProperty("email")&&(a.email=encodeURIComponent(e.email)),e.hasOwnProperty("phone_number")&&(a.phone_number=encodeURIComponent(e.phone_number)),y.post(i.toString()).send(a).then((e=>{try{let n=e.body,{access_token:i,expires_in:a,refresh_token:l,id_token:c}=n;if(void 0===l&&(l=null),void 0===c&&(c=null),c&&!Y(c,r,t))throw Error(T.AUTH_ERROR_ID_TOKEN_INVALID);return K(i,a,l,c),o&&o({type:p.SET_LOGGED_USER,payload:{sessionState:null}}),Promise.resolve({response:n})}catch(e){return console.log(e),Promise.reject(e)}})).catch((e=>Promise.reject(e)))},oe=(e=null)=>()=>{e||(e=Math.floor(Date.now()/1e3));const o=B();if(!o)throw Error("Id Token not set.");const t=X(),n=Q();return new(_())({issuer:t,audience:n}).decode(o).payload.exp-(e+m)>0}},4054:(e,o,t)=>{t(4824),t(6530),t(271),t(4656),t(6793),t(4341),t(8576);const n=e=>o=>({type:e,payload:o});n("RESET_LOADING"),n("START_LOADING"),n("STOP_LOADING")},6793:(e,o,t)=>{t.d(o,{base64URLEncode:()=>u,getAuthCallback:()=>n,getCurrentLocation:()=>r,getCurrentPathName:()=>a,getFromLocalStorage:()=>c,getOrigin:()=>i,putOnLocalStorage:()=>l,removeFromLocalStorage:()=>s,retryPromise:()=>_,setSessionClearingState:()=>d});t(8362),t(6530);const n=()=>"undefined"!=typeof window?`${window.location.origin}/auth/callback`:null,r=()=>{let e="";return"undefined"!=typeof window&&(e=window.location,window.top&&(e=window.top.location)),e},i=()=>"undefined"!=typeof window?window.location.origin:null,a=()=>"undefined"!=typeof window?window.location.pathname:null,l=(e,o)=>{"undefined"!=typeof window&&window.localStorage.setItem(e,o)},c=(e,o)=>{if("undefined"!=typeof window){let t=window.localStorage.getItem(e);return o&&(console.log(`getFromLocalStorage removing key ${e}`),s(e)),t}return null},s=e=>{"undefined"!=typeof window&&window.localStorage.removeItem(e)},d=e=>{"undefined"!=typeof window&&(window.clearing_session_state=e)},u=e=>e.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,""),_=async(e,o=3)=>{for(let t=0;t<o;t++)if(await e())return!0;return!1}},4656:e=>{e.exports=require("i18n-react/dist/i18n-react")},3856:e=>{e.exports=require("idtoken-verifier")},8362:e=>{e.exports=require("moment-timezone")},4824:e=>{e.exports=require("superagent")},271:e=>{e.exports=require("sweetalert2")},6530:e=>{e.exports=require("urijs")}},o={};function t(n){var r=o[n];if(void 0!==r)return r.exports;var i=o[n]={exports:{}};return e[n](i,i.exports,t),i.exports}return(()=>{t.n=e=>{var o=e&&e.__esModule?()=>e.default:()=>e;return t.d(o,{a:o}),o}})(),(()=>{t.d=(e,o)=>{for(var n in o)t.o(o,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:o[n]})}})(),(()=>{t.o=(e,o)=>Object.prototype.hasOwnProperty.call(e,o)})(),(()=>{t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})(),t(8576)})()));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("openstack-uicore-foundation",[],t):"object"==typeof exports?exports["openstack-uicore-foundation"]=t():e["openstack-uicore-foundation"]=t()}(this,(()=>(()=>{"use strict";var e={4341:(e,t,o)=>{o.d(t,{SESSION_STATE_STATUS_CHANGED:()=>r,SESSION_STATE_STATUS_UNCHANGED:()=>n,doLogout:()=>a,onUserAuth:()=>i,updateSessionStateStatus:()=>c});o(4656),o(4054),o(6793);var s=o(8576);const n="unchanged",r="changed",i=(e,t,o,n=0,r=null)=>i=>{(0,s.storeAuthInfo)(e,n,r,t),i({type:"SET_LOGGED_USER",payload:{sessionState:o}})},a=e=>(t,o)=>{t({type:"LOGOUT_USER",payload:{backUrl:e}})},c=e=>(t,o)=>{t({type:"UPDATE_SESSION_STATE_STATUS",payload:{sessionStateStatus:e}})}},8576:(e,t,o)=>{o.d(t,{getAuthUrl:()=>y,initLogOut:()=>L,storeAuthInfo:()=>k});var s=o(6793);o(4824);const n=require("browser-tabs-lock");var r=o.n(n),i=o(6530),c=o.n(i);o(3856),o(4341);const l=require("crypto-js/sha256");var d=o.n(l);const u=require("crypto-js/enc-base64url");var p=o.n(u);const S=require("crypto-js/enc-hex");var h=o.n(S);const g=65536,f="undefined"!=typeof window?window.crypto||window.msCrypto:null;new(r());const w="code",m="authInfo",_="nonce",O="pkce",y=(e=null,t=null,o=null,n=null)=>{let r=E(),i=(0,s.getAuthCallback)(),a=b(),l=A(),d=C();null!=e&&(i+=`?BackUrl=${encodeURI(e)}`);let u=v(16);(0,s.putOnLocalStorage)(_,u);let p=c()(`${a}/oauth2/auth`),S={response_type:encodeURI(d),scope:encodeURI(l),nonce:u,response_mode:"fragment",client_id:encodeURI(r),redirect_uri:encodeURI(i)};if(d===w){const e=T();(0,s.putOnLocalStorage)(O,JSON.stringify(e)),S.code_challenge=e.codeChallenge,S.code_challenge_method="S256",S.approval_prompt="force"}return t&&(S.prompt=t),l&&l.includes("offline_access")&&(S.prompt="consent"),o&&(S.id_token_hint=o),n&&(S.provider=n),p=p.query(S),p},v=e=>{let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",o="";for(let s=0;s<e;s++)o+=t.charAt(Math.floor(Math.random()*t.length));return o},T=()=>{const e=(0,s.base64URLEncode)((e=>{if(e>4294967295)throw new RangeError("requested too many random bytes");const t=Buffer.allocUnsafe(e);if(!f)return a;if(e>0)if(e>g)for(let o=0;o<e;o+=g)f.getRandomValues(t.slice(o,o+g));else f.getRandomValues(t);return t})(64));return{codeVerifier:e,codeChallenge:((e,t="hex")=>{let o=h();return"Base64url"===t&&(o=p()),d()(e).toString(o)})(e,"Base64url"),createdAt:new Date}},k=(e,t,o=null,n=null)=>{let r=U(),i={accessToken:e,expiresIn:t,accessTokenUpdatedAt:Math.floor(Date.now()/1e3)};null===o&&r&&(o=r.refreshToken),null===n&&r&&(n=r.idToken),o&&(i.refreshToken=o),n&&(i.idToken=n),(0,s.putOnLocalStorage)(m,JSON.stringify(i))},U=()=>{try{let e=(0,s.getFromLocalStorage)(m,!1);return e?JSON.parse(e):null}catch(e){return null}},E=()=>"undefined"!=typeof window?window.OAUTH2_CLIENT_ID:null,C=()=>"undefined"!=typeof window&&window.OAUTH2_FLOW||"token id_token",b=()=>"undefined"!=typeof window?window.IDP_BASE_URL:null,A=()=>"undefined"!=typeof window?window.SCOPES:null,L=()=>{(0,s.getCurrentLocation)().replace((e=>{let t=b(),o=E(),n=c()(`${t}/oauth2/end-session`),r=v(16),i=(0,s.getOrigin)()+"/auth/logout";return(0,s.putOnLocalStorage)("post_logout_state",r),n.query({id_token_hint:e,post_logout_redirect_uri:encodeURI(i),client_id:encodeURI(o),state:r})})((()=>{if("undefined"!=typeof window){const e=U();return e?e.idToken:null}return null})()).toString())}},4054:(e,t,o)=>{o(4824),o(6530),o(271),o(4656),o(6793),o(4341),o(8576);const s=e=>t=>({type:e,payload:t});s("RESET_LOADING"),s("START_LOADING"),s("STOP_LOADING")},6793:(e,t,o)=>{o.d(t,{base64URLEncode:()=>l,getAuthCallback:()=>s,getCurrentLocation:()=>n,getFromLocalStorage:()=>a,getOrigin:()=>r,putOnLocalStorage:()=>i});o(8362),o(6530);const s=()=>"undefined"!=typeof window?`${window.location.origin}/auth/callback`:null,n=()=>{let e="";return"undefined"!=typeof window&&(e=window.location,window.top&&(e=window.top.location)),e},r=()=>"undefined"!=typeof window?window.location.origin:null,i=(e,t)=>{"undefined"!=typeof window&&window.localStorage.setItem(e,t)},a=(e,t)=>{if("undefined"!=typeof window){let o=window.localStorage.getItem(e);return t&&(console.log(`getFromLocalStorage removing key ${e}`),c(e)),o}return null},c=e=>{"undefined"!=typeof window&&window.localStorage.removeItem(e)},l=e=>e.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")},4656:e=>{e.exports=require("i18n-react/dist/i18n-react")},3856:e=>{e.exports=require("idtoken-verifier")},8362:e=>{e.exports=require("moment-timezone")},4824:e=>{e.exports=require("superagent")},271:e=>{e.exports=require("sweetalert2")},6530:e=>{e.exports=require("urijs")}},t={};function o(s){var n=t[s];if(void 0!==n)return n.exports;var r=t[s]={exports:{}};return e[s](r,r.exports,o),r.exports}(()=>{o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t}})(),(()=>{o.d=(e,t)=>{for(var s in t)o.o(t,s)&&!o.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})}})(),(()=>{o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var s={};return(()=>{o.r(s),o.d(s,{default:()=>h});const e=require("react");var t=o.n(e);const n=require("react-redux");var r=o(4341),i=o(8576),a=o(6530),c=o.n(a);function l(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,s)}return o}function d(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?l(Object(o),!0).forEach((function(t){u(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):l(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function u(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}const p=18e5;class S extends t().Component{constructor(e){super(e),this.state={opFrame_src:"",rpCheckSessionStateFrame_src:""},this.receiveMessage=this.receiveMessage.bind(this),this.receiveMessageFromChild=this.receiveMessageFromChild.bind(this),this.setTimer=this.setTimer.bind(this),this.checkSession=this.checkSession.bind(this),this.onSetupCheckSessionRP=this.onSetupCheckSessionRP.bind(this),this.rpCheckSessionStateFrameOnLoad=this.rpCheckSessionStateFrameOnLoad.bind(this),this.opFrame=null,this.rpCheckSessionStateFrame=null,this.setOPFrameRef=e=>{this.opFrame=e},this.setCheckSessionStateFrameRef=e=>{this.rpCheckSessionStateFrame=e},this.interval=null}componentWillUnmount(){try{this.interval&&(window.clearInterval(this.interval),this.interval=null),window.removeEventListener("message",this.receiveMessageFromChild,!1),window.removeEventListener("message",this.receiveMessage,!1)}catch(e){console.log(e)}}componentDidMount(){if(this.props.isLoggedUser&&"undefined"!=typeof window){if(window.location!==window.parent.location)return;this.onSetupCheckSessionRP()}}rpCheckSessionStateFrameOnLoad(e){let t=e.target;if(""==this.state.rpCheckSessionStateFrame_src)return;if(!t.contentDocument)return;window.removeEventListener("message",this.receiveMessageFromChild,!1);let o=new(c())(t.contentDocument.URL);console.log("OPSessionChecker::rpCheckSessionStateFrameOnLoad - resultUrl "+o);let s=o.search(!0),n=c().parseQuery(o.fragment()),a=null;if(s.hasOwnProperty("error")&&(a=s.error),n.hasOwnProperty("error")&&(a=n.error),a)return console.log("OPSessionChecker::rpCheckSessionStateFrameOnLoad - error "+a),void(0,i.initLogOut)();this.props.updateSessionStateStatus(r.SESSION_STATE_STATUS_UNCHANGED)}componentDidUpdate(e){if(this.props.sessionStateStatus!==e.sessionStateStatus){if(this.props.sessionStateStatus===r.SESSION_STATE_STATUS_CHANGED){let e=(0,i.getAuthUrl)(null,"none");return void(""==this.state.rpCheckSessionStateFrame_src&&this.setState(d(d({},this.state),{},{opFrame_src:"",rpCheckSessionStateFrame_src:e.toString()})))}if(this.props.sessionStateStatus===r.SESSION_STATE_STATUS_UNCHANGED)return void this.onSetupCheckSessionRP()}this.props.sessionState!==e.sessionState&&(console.log(`OPSessionChecker::componentDidUpdate updated session state ${this.props.sessionState}`),this.onSetupCheckSessionRP())}checkSession(){let e=new Date;if(console.log(`OPSessionChecker::checkSession now ${e.toLocaleString()}`),null==this.opFrame)return;if(null==this.props.sessionState)return;if(null==this.props.clientId)return;let t=this.props.idpBaseUrl,o=this.opFrame.contentWindow,s=this.props.clientId+" "+this.props.sessionState;o.postMessage(s,t)}setTimer(e){e.target;""!=this.state.opFrame_src&&this.props.isLoggedUser&&this.props.sessionStateStatus===r.SESSION_STATE_STATUS_UNCHANGED&&"undefined"!=typeof window&&(console.log("OPSessionChecker::setTimer setting interval 1800000"),this.interval=window.setInterval(this.checkSession,p))}onSetupCheckSessionRP(){if(null==this.opFrame)return;window.addEventListener("message",this.receiveMessage,!1);const e=`${this.props.idpBaseUrl}/oauth2/check-session`;""==this.state.opFrame_src&&this.setState(d(d({},this.state),{},{opFrame_src:e,rpCheckSessionStateFrame_src:""}))}receiveMessageFromChild(e){if("string"==typeof e.data||e.data instanceof String)try{let t=JSON.parse(e.data);t.hasOwnProperty("action")&&"SET_AUTH_INFO_SILENTLY"==t.action&&(window.removeEventListener("message",this.receiveMessageFromChild,!1),this.props.onUserAuth(t.access_token,t.id_token,t.session_state,t.expires_in,t.hasOwnProperty("refresh_token")?t.refresh_token:null))}catch(e){console.log(e)}}receiveMessage(e){if(e.origin!==this.props.idpBaseUrl)return;let t=e.data;return this.props.sessionStateStatus===r.SESSION_STATE_STATUS_UNCHANGED&&this.props.isLoggedUser&&t===r.SESSION_STATE_STATUS_CHANGED?(console.log("OPSessionChecker::receiveMessage - session state has changed on OP"),"undefined"!=typeof window&&window.clearInterval(this.interval),this.interval=null,window.addEventListener("message",this.receiveMessageFromChild,!1),window.removeEventListener("message",this.receiveMessage,!1),void this.props.updateSessionStateStatus(r.SESSION_STATE_STATUS_CHANGED)):void 0}render(){return this.props.isLoggedUser&&this.props.sessionState?"undefined"!=typeof window&&window.location!==window.parent.location?null:t().createElement("div",{style:{height:"0px"}},t().createElement("iframe",{ref:this.setOPFrameRef,id:"OPFrame",onLoad:this.setTimer,src:this.state.opFrame_src,style:{visibility:"hidden",position:"absolute",left:0,top:0,border:"none",width:0,height:0}},">"),t().createElement("iframe",{ref:this.setCheckSessionStateFrameRef,id:"RPCHeckSessionStateFrame",src:this.state.rpCheckSessionStateFrame_src,onLoad:this.rpCheckSessionStateFrameOnLoad,style:{visibility:"hidden",position:"absolute",left:0,top:0,border:"none",width:0,height:0}},">")):null}}const h=(0,n.connect)((({loggedUserState:e})=>({sessionState:e.sessionState,isLoggedUser:e.isLoggedUser,sessionStateStatus:e.sessionStateStatus})),{doLogout:r.doLogout,updateSessionStateStatus:r.updateSessionStateStatus,onUserAuth:r.onUserAuth})(S)})(),s})()));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("openstack-uicore-foundation",[],t):"object"==typeof exports?exports["openstack-uicore-foundation"]=t():e["openstack-uicore-foundation"]=t()}(this,(()=>(()=>{"use strict";var e={4341:(e,t,o)=>{o.d(t,{SESSION_STATE_STATUS_CHANGED:()=>r,SESSION_STATE_STATUS_UNCHANGED:()=>n,doLogout:()=>a,onUserAuth:()=>i,updateSessionStateStatus:()=>c});o(4656),o(4054),o(6793);var s=o(8576);const n="unchanged",r="changed",i=(e,t,o,n=0,r=null)=>i=>{(0,s.storeAuthInfo)(e,n,r,t),i({type:"SET_LOGGED_USER",payload:{sessionState:o}})},a=e=>(t,o)=>{t({type:"LOGOUT_USER",payload:{backUrl:e}})},c=e=>(t,o)=>{t({type:"UPDATE_SESSION_STATE_STATUS",payload:{sessionStateStatus:e}})}},8576:(e,t,o)=>{o.d(t,{getAuthUrl:()=>y,initLogOut:()=>F,storeAuthInfo:()=>k});var s=o(6793);o(4824);const n=require("browser-tabs-lock");var r=o.n(n),i=o(6530),c=o.n(i);o(3856),o(4341);const l=require("crypto-js/sha256");var d=o.n(l);const u=require("crypto-js/enc-base64url");var p=o.n(u);const S=require("crypto-js/enc-hex");var h=o.n(S);const g=65536,f="undefined"!=typeof window?window.crypto||window.msCrypto:null;new(r());const w="code",m="authInfo",_="nonce",O="pkce",y=(e=null,t=null,o=null,n=null)=>{let r=C(),i=(0,s.getAuthCallback)(),a=A(),l=L(),d=b();null!=e&&(i+=`?BackUrl=${encodeURI(e)}`);let u=v(16);(0,s.putOnLocalStorage)(_,u);let p=c()(`${a}/oauth2/auth`),S={response_type:encodeURI(d),scope:encodeURI(l),nonce:u,response_mode:"fragment",client_id:encodeURI(r),redirect_uri:encodeURI(i)};if(d===w){const e=T();(0,s.putOnLocalStorage)(O,JSON.stringify(e)),S.code_challenge=e.codeChallenge,S.code_challenge_method="S256",S.approval_prompt="force"}return t&&(S.prompt=t),l&&l.includes("offline_access")&&(S.prompt="consent"),o&&(S.id_token_hint=o),n&&(S.provider=n),p=p.query(S),p},v=e=>{let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",o="";for(let s=0;s<e;s++)o+=t.charAt(Math.floor(Math.random()*t.length));return o},T=()=>{const e=(0,s.base64URLEncode)((e=>{if(e>4294967295)throw new RangeError("requested too many random bytes");const t=Buffer.allocUnsafe(e);if(!f)return a;if(e>0)if(e>g)for(let o=0;o<e;o+=g)f.getRandomValues(t.slice(o,o+g));else f.getRandomValues(t);return t})(64));return{codeVerifier:e,codeChallenge:((e,t="hex")=>{let o=h();return"Base64url"===t&&(o=p()),d()(e).toString(o)})(e,"Base64url"),createdAt:new Date}},k=(e,t,o=null,n=null)=>{let r=U(),i={accessToken:e,expiresIn:t,accessTokenUpdatedAt:Math.floor(Date.now()/1e3)};null===o&&r&&(o=r.refreshToken),null===n&&r&&(n=r.idToken),o&&(i.refreshToken=o),n&&(i.idToken=n),(0,s.putOnLocalStorage)(m,JSON.stringify(i))},U=()=>{try{let e=(0,s.getFromLocalStorage)(m,!1);return e?JSON.parse(e):null}catch(e){return null}},E=()=>{if("undefined"!=typeof window){const e=U();return e?e.idToken:null}return null},C=()=>"undefined"!=typeof window?window.OAUTH2_CLIENT_ID:null,b=()=>"undefined"!=typeof window&&window.OAUTH2_FLOW||"token id_token",A=()=>"undefined"!=typeof window?window.IDP_BASE_URL:null,L=()=>"undefined"!=typeof window?window.SCOPES:null,F=()=>{(0,s.getCurrentLocation)().replace((e=>{let t=A(),o=C(),n=c()(`${t}/oauth2/end-session`),r=v(16),i=(0,s.getOrigin)()+"/auth/logout";return(0,s.putOnLocalStorage)("post_logout_state",r),n.query({id_token_hint:e,post_logout_redirect_uri:encodeURI(i),client_id:encodeURI(o),state:r})})(E()).toString())}},4054:(e,t,o)=>{o(4824),o(6530),o(271),o(4656),o(6793),o(4341),o(8576);const s=e=>t=>({type:e,payload:t});s("RESET_LOADING"),s("START_LOADING"),s("STOP_LOADING")},6793:(e,t,o)=>{o.d(t,{base64URLEncode:()=>l,getAuthCallback:()=>s,getCurrentLocation:()=>n,getFromLocalStorage:()=>a,getOrigin:()=>r,putOnLocalStorage:()=>i});o(8362),o(6530);const s=()=>"undefined"!=typeof window?`${window.location.origin}/auth/callback`:null,n=()=>{let e="";return"undefined"!=typeof window&&(e=window.location,window.top&&(e=window.top.location)),e},r=()=>"undefined"!=typeof window?window.location.origin:null,i=(e,t)=>{"undefined"!=typeof window&&window.localStorage.setItem(e,t)},a=(e,t)=>{if("undefined"!=typeof window){let o=window.localStorage.getItem(e);return t&&(console.log(`getFromLocalStorage removing key ${e}`),c(e)),o}return null},c=e=>{"undefined"!=typeof window&&window.localStorage.removeItem(e)},l=e=>e.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")},4656:e=>{e.exports=require("i18n-react/dist/i18n-react")},3856:e=>{e.exports=require("idtoken-verifier")},8362:e=>{e.exports=require("moment-timezone")},4824:e=>{e.exports=require("superagent")},271:e=>{e.exports=require("sweetalert2")},6530:e=>{e.exports=require("urijs")}},t={};function o(s){var n=t[s];if(void 0!==n)return n.exports;var r=t[s]={exports:{}};return e[s](r,r.exports,o),r.exports}(()=>{o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t}})(),(()=>{o.d=(e,t)=>{for(var s in t)o.o(t,s)&&!o.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})}})(),(()=>{o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var s={};return(()=>{o.r(s),o.d(s,{default:()=>h});const e=require("react");var t=o.n(e);const n=require("react-redux");var r=o(4341),i=o(8576),a=o(6530),c=o.n(a);function l(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,s)}return o}function d(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?l(Object(o),!0).forEach((function(t){u(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):l(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function u(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}const p=18e5;class S extends t().Component{constructor(e){super(e),this.state={opFrame_src:"",rpCheckSessionStateFrame_src:""},this.receiveMessage=this.receiveMessage.bind(this),this.receiveMessageFromChild=this.receiveMessageFromChild.bind(this),this.setTimer=this.setTimer.bind(this),this.checkSession=this.checkSession.bind(this),this.onSetupCheckSessionRP=this.onSetupCheckSessionRP.bind(this),this.rpCheckSessionStateFrameOnLoad=this.rpCheckSessionStateFrameOnLoad.bind(this),this.opFrame=null,this.rpCheckSessionStateFrame=null,this.setOPFrameRef=e=>{this.opFrame=e},this.setCheckSessionStateFrameRef=e=>{this.rpCheckSessionStateFrame=e},this.interval=null}componentWillUnmount(){try{this.interval&&(window.clearInterval(this.interval),this.interval=null),window.removeEventListener("message",this.receiveMessageFromChild,!1),window.removeEventListener("message",this.receiveMessage,!1)}catch(e){console.log(e)}}componentDidMount(){if(this.props.isLoggedUser&&"undefined"!=typeof window){if(window.location!==window.parent.location)return;this.onSetupCheckSessionRP()}}rpCheckSessionStateFrameOnLoad(e){let t=e.target;if(""==this.state.rpCheckSessionStateFrame_src)return;if(!t.contentDocument)return;window.removeEventListener("message",this.receiveMessageFromChild,!1);let o=new(c())(t.contentDocument.URL);console.log("OPSessionChecker::rpCheckSessionStateFrameOnLoad - resultUrl "+o);let s=o.search(!0),n=c().parseQuery(o.fragment()),a=null;if(s.hasOwnProperty("error")&&(a=s.error),n.hasOwnProperty("error")&&(a=n.error),a)return console.log("OPSessionChecker::rpCheckSessionStateFrameOnLoad - error "+a),void(0,i.initLogOut)();this.props.updateSessionStateStatus(r.SESSION_STATE_STATUS_UNCHANGED)}componentDidUpdate(e){if(this.props.sessionStateStatus!==e.sessionStateStatus){if(this.props.sessionStateStatus===r.SESSION_STATE_STATUS_CHANGED){let e=(0,i.getAuthUrl)(null,"none");return void(""==this.state.rpCheckSessionStateFrame_src&&this.setState(d(d({},this.state),{},{opFrame_src:"",rpCheckSessionStateFrame_src:e.toString()})))}if(this.props.sessionStateStatus===r.SESSION_STATE_STATUS_UNCHANGED)return void this.onSetupCheckSessionRP()}this.props.sessionState!==e.sessionState&&(console.log(`OPSessionChecker::componentDidUpdate updated session state ${this.props.sessionState}`),this.onSetupCheckSessionRP())}checkSession(){let e=new Date;if(console.log(`OPSessionChecker::checkSession now ${e.toLocaleString()}`),null==this.opFrame)return;if(null==this.props.sessionState)return;if(null==this.props.clientId)return;let t=this.props.idpBaseUrl,o=this.opFrame.contentWindow,s=this.props.clientId+" "+this.props.sessionState;o.postMessage(s,t)}setTimer(e){e.target;""!=this.state.opFrame_src&&this.props.isLoggedUser&&this.props.sessionStateStatus===r.SESSION_STATE_STATUS_UNCHANGED&&"undefined"!=typeof window&&(console.log("OPSessionChecker::setTimer setting interval 1800000"),this.interval=window.setInterval(this.checkSession,p))}onSetupCheckSessionRP(){if(null==this.opFrame)return;window.addEventListener("message",this.receiveMessage,!1);const e=`${this.props.idpBaseUrl}/oauth2/check-session`;""==this.state.opFrame_src&&this.setState(d(d({},this.state),{},{opFrame_src:e,rpCheckSessionStateFrame_src:""}))}receiveMessageFromChild(e){if("string"==typeof e.data||e.data instanceof String)try{let t=JSON.parse(e.data);t.hasOwnProperty("action")&&"SET_AUTH_INFO_SILENTLY"==t.action&&(window.removeEventListener("message",this.receiveMessageFromChild,!1),this.props.onUserAuth(t.access_token,t.id_token,t.session_state,t.expires_in,t.hasOwnProperty("refresh_token")?t.refresh_token:null))}catch(e){console.log(e)}}receiveMessage(e){if(e.origin!==this.props.idpBaseUrl)return;let t=e.data;return this.props.sessionStateStatus===r.SESSION_STATE_STATUS_UNCHANGED&&this.props.isLoggedUser&&t===r.SESSION_STATE_STATUS_CHANGED?(console.log("OPSessionChecker::receiveMessage - session state has changed on OP"),"undefined"!=typeof window&&window.clearInterval(this.interval),this.interval=null,window.addEventListener("message",this.receiveMessageFromChild,!1),window.removeEventListener("message",this.receiveMessage,!1),void this.props.updateSessionStateStatus(r.SESSION_STATE_STATUS_CHANGED)):void 0}render(){return this.props.isLoggedUser&&this.props.sessionState?"undefined"!=typeof window&&window.location!==window.parent.location?null:t().createElement("div",{style:{height:"0px"}},t().createElement("iframe",{ref:this.setOPFrameRef,id:"OPFrame",onLoad:this.setTimer,src:this.state.opFrame_src,style:{visibility:"hidden",position:"absolute",left:0,top:0,border:"none",width:0,height:0}},">"),t().createElement("iframe",{ref:this.setCheckSessionStateFrameRef,id:"RPCHeckSessionStateFrame",src:this.state.rpCheckSessionStateFrame_src,onLoad:this.rpCheckSessionStateFrameOnLoad,style:{visibility:"hidden",position:"absolute",left:0,top:0,border:"none",width:0,height:0}},">")):null}}const h=(0,n.connect)((({loggedUserState:e})=>({sessionState:e.sessionState,isLoggedUser:e.isLoggedUser,sessionStateStatus:e.sessionStateStatus})),{doLogout:r.doLogout,updateSessionStateStatus:r.updateSessionStateStatus,onUserAuth:r.onUserAuth})(S)})(),s})()));
|
package/lib/utils/actions.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("openstack-uicore-foundation",[],t):"object"==typeof exports?exports["openstack-uicore-foundation"]=t():e["openstack-uicore-foundation"]=t()}(this,(()=>(()=>{"use strict";var e={4341:(e,t,n)=>{n.d(t,{CLEAR_SESSION_STATE:()=>r});n(4656),n(4054),n(6793),n(8576);const r="CLEAR_SESSION_STATE"},8576:(e,t,n)=>{n.d(t,{doLogin:()=>O,initLogOut:()=>v});var r=n(6793);n(4824);const o=require("browser-tabs-lock");var s=n.n(o),i=n(6530),l=n.n(i);n(3856),n(4341);const u=require("crypto-js/sha256");var d=n.n(u);const c=require("crypto-js/enc-base64url");var p=n.n(c);const f=require("crypto-js/enc-hex");var g=n.n(f);const w=65536,y="undefined"!=typeof window?window.crypto||window.msCrypto:null;new(s());const h="code",S="authInfo",m="nonce",b="pkce",_=e=>{let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",n="";for(let r=0;r<e;r++)n+=t.charAt(Math.floor(Math.random()*t.length));return n},O=(e=null,t=null,n=null)=>{let o=((e=null,t=null,n=null,o=null)=>{let s=k(),a=(0,r.getAuthCallback)(),i=A(),u=C(),d=L();null!=e&&(a+=`?BackUrl=${encodeURI(e)}`);let c=_(16);(0,r.putOnLocalStorage)(m,c);let p=l()(`${i}/oauth2/auth`),f={response_type:encodeURI(d),scope:encodeURI(u),nonce:c,response_mode:"fragment",client_id:encodeURI(s),redirect_uri:encodeURI(a)};if(d===h){const e=R();(0,r.putOnLocalStorage)(b,JSON.stringify(e)),f.code_challenge=e.codeChallenge,f.code_challenge_method="S256",f.approval_prompt="force"}return t&&(f.prompt=t),u&&u.includes("offline_access")&&(f.prompt="consent"),n&&(f.id_token_hint=n),o&&(f.provider=o),p=p.query(f),p})(e,n,null,t);(0,r.getCurrentLocation)().replace(o.toString())},R=()=>{const e=(0,r.base64URLEncode)((e=>{if(e>4294967295)throw new RangeError("requested too many random bytes");const t=Buffer.allocUnsafe(e);if(!y)return a;if(e>0)if(e>w)for(let n=0;n<e;n+=w)y.getRandomValues(t.slice(n,n+w));else y.getRandomValues(t);return t})(64));return{codeVerifier:e,codeChallenge:((e,t="hex")=>{let n=g();return"Base64url"===t&&(n=p()),d()(e).toString(n)})(e,"Base64url"),createdAt:new Date}},E=()=>{try{let e=(0,r.getFromLocalStorage)(S,!1);return e?JSON.parse(e):null}catch(e){return null}},k=()=>"undefined"!=typeof window?window.OAUTH2_CLIENT_ID:null,L=()=>"undefined"!=typeof window&&window.OAUTH2_FLOW||"token id_token",A=()=>"undefined"!=typeof window?window.IDP_BASE_URL:null,C=()=>"undefined"!=typeof window?window.SCOPES:null,v=()=>{(0,r.getCurrentLocation)().replace((e=>{let t=A(),n=k(),o=l()(`${t}/oauth2/end-session`),s=_(16),a=(0,r.getOrigin)()+"/auth/logout";return(0,r.putOnLocalStorage)("post_logout_state",s),o.query({id_token_hint:e,post_logout_redirect_uri:encodeURI(a),client_id:encodeURI(n),state:s})})((()=>{if("undefined"!=typeof window){const e=E();return e?e.idToken:null}return null})()).toString())}},4054:(e,t,n)=>{n.r(t),n.d(t,{CLEAR_MESSAGE:()=>O,GENERIC_ERROR:()=>h,RESET_LOADING:()=>S,SHOW_MESSAGE:()=>R,START_LOADING:()=>m,STOP_LOADING:()=>b,VALIDATE:()=>_,authErrorHandler:()=>q,createAction:()=>E,defaultErrorHandler:()=>M,deleteRequest:()=>j,downloadFileByContent:()=>z,escapeFilterValue:()=>Y,fetchErrorHandler:()=>F,fetchResponseHandler:()=>V,getCSV:()=>W,getHeaderCaseInsensitive:()=>G,getRawCSV:()=>J,getRequest:()=>x,postFile:()=>N,postRequest:()=>P,putFile:()=>U,putRequest:()=>T,resetLoading:()=>k,responseHandler:()=>H,showMessage:()=>$,showSuccessMessage:()=>B,startLoading:()=>L,stopLoading:()=>A});var r=n(4824),o=n.n(r),s=n(6530),a=n.n(s),i=n(271),l=n.n(i),u=n(4656),d=n.n(u),c=n(6793),p=n(4341),f=n(8576);const g=["access_token"];function w(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},s=Object.keys(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}let y=o();const h="Yikes. Something seems to be broken. Our web team has been notified, and we apologize for the inconvenience.",S="RESET_LOADING",m="START_LOADING",b="STOP_LOADING",_="VALIDATE",O="CLEAR_MESSAGE",R="SHOW_MESSAGE",E=e=>t=>({type:e,payload:t}),k=E(S),L=E(m),A=E(b),C={},v={},I=e=>0===Object.keys(e).length&&e.constructor===Object,q=(e,t)=>(t,n)=>{let r=e.status,o="";switch(t(A()),r){case 403:let n={title:"ERROR",html:d().translate("errors.user_not_authz"),type:"error"};t($(n,f.initLogOut));break;case 401:let r=(0,c.getCurrentPathName)(),i=(0,c.isClearingSessionState)();t({type:p.CLEAR_SESSION_STATE,payload:{}}),i||((0,c.setSessionClearingState)(!0),console.log("authErrorHandler 401 - re login"),(0,f.doLogin)(r));break;case 404:o="",o=e.response.body&&e.response.body.message?e.response.body.message:e.response.error&&e.response.error.message?e.response.error.message:e.message,l().fire("Not Found",o,"warning");break;case 412:for(var[s,a]of Object.entries(e.response.body.errors))isNaN(s)&&(o+=s+": "),o+=a+"<br>";l().fire("Validation error",o,"warning"),t({type:_,payload:{errors:e.response.body.errors}});break;default:l().fire("ERROR",d().translate("errors.server_error"),"error")}},x=(e,t,n,r=M,o={},s=!1)=>(i={})=>(l,u)=>{let d=a()(n),c=d.toString();if(!I(i)){const{access_token:e}=i,t=w(i,g);c=d.query(t).toString(),d=d.query(i)}return e&&"function"==typeof e&&l(e(o)),(e=>{C[e]&&(C[e].abort(),console.log(`aborted request ${e}`),delete C[e])})(c),new Promise(((e,n)=>{let o=y.get(d.toString());if(s&&v.hasOwnProperty(c)){const{etag:e}=v[c];e&&o.set("If-None-Match",e)}o.timeout({response:6e4,deadline:6e4}).end(H(l,u,t,r,e,n,c,s)),((e,t)=>{C[e]=t})(c,o)}))},T=(e,t,n,r,o=M,s={})=>(i={})=>(l,u)=>{let d=a()(n);return I(i)||(d=d.query(i)),e&&"function"==typeof e&&l(e(s)),new Promise(((e,n)=>{null==r&&(r={}),y.put(d.toString()).send(r).end(H(l,u,t,o,e,n))}))},j=(e,t,n,r,o=M,s={})=>i=>(l,u)=>{let d=a()(n);return I(i)||(d=d.query(i)),e&&"function"==typeof e&&l(e(s)),new Promise(((e,n)=>{null==r&&(r={}),y.delete(d).send(r).end(H(l,u,t,o,e,n))}))},P=(e,t,n,r,o=M,s={})=>(i={})=>(l,u)=>{let d=a()(n);return I(i)||(d=d.query(i)),e&&"function"==typeof e&&l(e(s)),new Promise(((e,n)=>{let s=y.post(d);null!=r?s.send(r):s.set("Content-Type","text/plain"),s.end(H(l,u,t,o,e,n))}))},N=(e,t,n,r,o={},s=M,i={})=>(l={})=>(u,d)=>{let c=a()(n);return I(l)||(c=c.query(l)),e&&"function"==typeof e&&u(e(i)),new Promise(((e,n)=>{const a=y.post(c).attach("file",r);I(o)||Object.keys(o).forEach((function(e){let t=o[e];a.field(e,t)})),a.end(H(u,d,t,s,e,n))}))},U=(e,t,n,r=null,o={},s=M,i={})=>(l={})=>(u,d)=>{let c=a()(n);return I(l)||(c=c.query(l)),e&&"function"==typeof e&&u(e(i)),new Promise(((e,n)=>{const a=y.put(c);null!=r&&a.attach("file",r),I(o)||Object.keys(o).forEach((function(e){let t=o[e];a.field(e,t)})),a.end(H(u,d,t,s,e,n))}))},M=(e,t)=>e=>{let n=t.body,r="";n instanceof Object&&n.hasOwnProperty("message")&&(r=n.message),l().fire(t.statusText,r,"error")},D=e=>e.toLowerCase(),G=(e,t={})=>{const n=(e=>Object.keys(e))(t).find((e=>t=>D(t)===e)(e));return n?t[n]:void 0},H=(e,t,n,r,o,s,a=null,i=!1)=>(l,u)=>{if(l||!u.ok){if(304===l.status&&v.hasOwnProperty(a)&&i){const{body:t}=v[a];return"function"==typeof n?(e(n({response:t})),o({response:t})):(e(n),o({response:t}))}return r&&r(l,u)(e,t),s({err:l,res:u,dispatch:e,state:t})}let d=u.body;if(i){const e=G("etag",u.headers);e&&(v[a]={etag:e,body:d})}return"function"==typeof n?(e(n({response:d})),o({response:d})):(e(n),o({response:d}))},F=e=>{let t=e.status,n=e.statusText;switch(t){case 403:l().fire("ERROR",d().translate("errors.user_not_authz"),"warning");break;case 401:l().fire("ERROR",d().translate("errors.session_expired"),"error");break;case 412:l().fire("ERROR",n,"warning");case 500:l().fire("ERROR",d().translate("errors.server_error"),"error")}},V=e=>{if(e.ok)return e.json();throw e},$=(e,t={})=>n=>{n(A()),l().fire(e).then((e=>{e.value&&"function"==typeof t&&t()}))},B=e=>t=>{t(A()),l().fire({title:d().translate("general.done"),html:e,type:"success"})},z=(e,t,n)=>{let r=document.createElement("a");r.textContent="download",r.download=e,r.href=`data:${n},${encodeURIComponent(t)}`,document.body.appendChild(r),r.click(),document.body.removeChild(r)},W=(e,t,n,r=null)=>o=>{let s=a()(e);return I(t)||(s=s.query(t)),o(L()),fetch(s.toString()).then((e=>{if(e.ok)return e.text();throw e})).then((e=>{o(A()),r&&(e=r+"\r\r"+e),z(n,e,"text/csv;charset=utf-8")})).catch(F)},J=(e,t,n=null)=>{let r=a()(e);return I(t)||(r=r.query(t)),fetch(r.toString()).then((e=>{if(e.ok)return e.text();throw e})).then((e=>(n&&(e=n+"\r\r"+e),e))).catch(F)},Y=e=>e=(e=e.replace(/,/g,"\\,")).replace(/;/g,"\\;")},6793:(e,t,n)=>{n.d(t,{base64URLEncode:()=>p,getAuthCallback:()=>r,getCurrentLocation:()=>o,getCurrentPathName:()=>a,getFromLocalStorage:()=>l,getOrigin:()=>s,isClearingSessionState:()=>d,putOnLocalStorage:()=>i,setSessionClearingState:()=>c});n(8362),n(6530);const r=()=>"undefined"!=typeof window?`${window.location.origin}/auth/callback`:null,o=()=>{let e="";return"undefined"!=typeof window&&(e=window.location,window.top&&(e=window.top.location)),e},s=()=>"undefined"!=typeof window?window.location.origin:null,a=()=>"undefined"!=typeof window?window.location.pathname:null,i=(e,t)=>{"undefined"!=typeof window&&window.localStorage.setItem(e,t)},l=(e,t)=>{if("undefined"!=typeof window){let n=window.localStorage.getItem(e);return t&&(console.log(`getFromLocalStorage removing key ${e}`),u(e)),n}return null},u=e=>{"undefined"!=typeof window&&window.localStorage.removeItem(e)},d=()=>"undefined"!=typeof window&&window.clearing_session_state,c=e=>{"undefined"!=typeof window&&(window.clearing_session_state=e)},p=e=>e.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")},4656:e=>{e.exports=require("i18n-react/dist/i18n-react")},3856:e=>{e.exports=require("idtoken-verifier")},8362:e=>{e.exports=require("moment-timezone")},4824:e=>{e.exports=require("superagent")},271:e=>{e.exports=require("sweetalert2")},6530:e=>{e.exports=require("urijs")}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var s=t[r]={exports:{}};return e[r](s,s.exports,n),s.exports}return(()=>{n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t}})(),(()=>{n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}})(),(()=>{n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})(),n(4054)})()));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("openstack-uicore-foundation",[],t):"object"==typeof exports?exports["openstack-uicore-foundation"]=t():e["openstack-uicore-foundation"]=t()}(this,(()=>(()=>{"use strict";var e={4341:(e,t,n)=>{n.d(t,{CLEAR_SESSION_STATE:()=>r});n(4656),n(4054),n(6793),n(8576);const r="CLEAR_SESSION_STATE"},8576:(e,t,n)=>{n.d(t,{doLogin:()=>O,initLogOut:()=>I});var r=n(6793);n(4824);const o=require("browser-tabs-lock");var s=n.n(o),i=n(6530),l=n.n(i);n(3856),n(4341);const u=require("crypto-js/sha256");var d=n.n(u);const c=require("crypto-js/enc-base64url");var p=n.n(c);const f=require("crypto-js/enc-hex");var g=n.n(f);const w=65536,y="undefined"!=typeof window?window.crypto||window.msCrypto:null;new(s());const h="code",S="authInfo",m="nonce",b="pkce",_=e=>{let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",n="";for(let r=0;r<e;r++)n+=t.charAt(Math.floor(Math.random()*t.length));return n},O=(e=null,t=null,n=null)=>{let o=((e=null,t=null,n=null,o=null)=>{let s=L(),a=(0,r.getAuthCallback)(),i=C(),u=v(),d=A();null!=e&&(a+=`?BackUrl=${encodeURI(e)}`);let c=_(16);(0,r.putOnLocalStorage)(m,c);let p=l()(`${i}/oauth2/auth`),f={response_type:encodeURI(d),scope:encodeURI(u),nonce:c,response_mode:"fragment",client_id:encodeURI(s),redirect_uri:encodeURI(a)};if(d===h){const e=R();(0,r.putOnLocalStorage)(b,JSON.stringify(e)),f.code_challenge=e.codeChallenge,f.code_challenge_method="S256",f.approval_prompt="force"}return t&&(f.prompt=t),u&&u.includes("offline_access")&&(f.prompt="consent"),n&&(f.id_token_hint=n),o&&(f.provider=o),p=p.query(f),p})(e,n,null,t);(0,r.getCurrentLocation)().replace(o.toString())},R=()=>{const e=(0,r.base64URLEncode)((e=>{if(e>4294967295)throw new RangeError("requested too many random bytes");const t=Buffer.allocUnsafe(e);if(!y)return a;if(e>0)if(e>w)for(let n=0;n<e;n+=w)y.getRandomValues(t.slice(n,n+w));else y.getRandomValues(t);return t})(64));return{codeVerifier:e,codeChallenge:((e,t="hex")=>{let n=g();return"Base64url"===t&&(n=p()),d()(e).toString(n)})(e,"Base64url"),createdAt:new Date}},E=()=>{try{let e=(0,r.getFromLocalStorage)(S,!1);return e?JSON.parse(e):null}catch(e){return null}},k=()=>{if("undefined"!=typeof window){const e=E();return e?e.idToken:null}return null},L=()=>"undefined"!=typeof window?window.OAUTH2_CLIENT_ID:null,A=()=>"undefined"!=typeof window&&window.OAUTH2_FLOW||"token id_token",C=()=>"undefined"!=typeof window?window.IDP_BASE_URL:null,v=()=>"undefined"!=typeof window?window.SCOPES:null,I=()=>{(0,r.getCurrentLocation)().replace((e=>{let t=C(),n=L(),o=l()(`${t}/oauth2/end-session`),s=_(16),a=(0,r.getOrigin)()+"/auth/logout";return(0,r.putOnLocalStorage)("post_logout_state",s),o.query({id_token_hint:e,post_logout_redirect_uri:encodeURI(a),client_id:encodeURI(n),state:s})})(k()).toString())}},4054:(e,t,n)=>{n.r(t),n.d(t,{CLEAR_MESSAGE:()=>O,GENERIC_ERROR:()=>h,RESET_LOADING:()=>S,SHOW_MESSAGE:()=>R,START_LOADING:()=>m,STOP_LOADING:()=>b,VALIDATE:()=>_,authErrorHandler:()=>q,createAction:()=>E,defaultErrorHandler:()=>M,deleteRequest:()=>j,downloadFileByContent:()=>z,escapeFilterValue:()=>Y,fetchErrorHandler:()=>F,fetchResponseHandler:()=>V,getCSV:()=>W,getHeaderCaseInsensitive:()=>G,getRawCSV:()=>J,getRequest:()=>x,postFile:()=>N,postRequest:()=>P,putFile:()=>U,putRequest:()=>T,resetLoading:()=>k,responseHandler:()=>H,showMessage:()=>$,showSuccessMessage:()=>B,startLoading:()=>L,stopLoading:()=>A});var r=n(4824),o=n.n(r),s=n(6530),a=n.n(s),i=n(271),l=n.n(i),u=n(4656),d=n.n(u),c=n(6793),p=n(4341),f=n(8576);const g=["access_token"];function w(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},s=Object.keys(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}let y=o();const h="Yikes. Something seems to be broken. Our web team has been notified, and we apologize for the inconvenience.",S="RESET_LOADING",m="START_LOADING",b="STOP_LOADING",_="VALIDATE",O="CLEAR_MESSAGE",R="SHOW_MESSAGE",E=e=>t=>({type:e,payload:t}),k=E(S),L=E(m),A=E(b),C={},v={},I=e=>0===Object.keys(e).length&&e.constructor===Object,q=(e,t)=>(t,n)=>{let r=e.status,o="";switch(t(A()),r){case 403:let n={title:"ERROR",html:d().translate("errors.user_not_authz"),type:"error"};t($(n,f.initLogOut));break;case 401:let r=(0,c.getCurrentPathName)(),i=(0,c.isClearingSessionState)();t({type:p.CLEAR_SESSION_STATE,payload:{}}),i||((0,c.setSessionClearingState)(!0),console.log("authErrorHandler 401 - re login"),(0,f.doLogin)(r));break;case 404:o="",o=e.response.body&&e.response.body.message?e.response.body.message:e.response.error&&e.response.error.message?e.response.error.message:e.message,l().fire("Not Found",o,"warning");break;case 412:for(var[s,a]of Object.entries(e.response.body.errors))isNaN(s)&&(o+=s+": "),o+=a+"<br>";l().fire("Validation error",o,"warning"),t({type:_,payload:{errors:e.response.body.errors}});break;default:l().fire("ERROR",d().translate("errors.server_error"),"error")}},x=(e,t,n,r=M,o={},s=!1)=>(i={})=>(l,u)=>{let d=a()(n),c=d.toString();if(!I(i)){const{access_token:e}=i,t=w(i,g);c=d.query(t).toString(),d=d.query(i)}return e&&"function"==typeof e&&l(e(o)),(e=>{C[e]&&(C[e].abort(),console.log(`aborted request ${e}`),delete C[e])})(c),new Promise(((e,n)=>{let o=y.get(d.toString());if(s&&v.hasOwnProperty(c)){const{etag:e}=v[c];e&&o.set("If-None-Match",e)}o.timeout({response:6e4,deadline:6e4}).end(H(l,u,t,r,e,n,c,s)),((e,t)=>{C[e]=t})(c,o)}))},T=(e,t,n,r,o=M,s={})=>(i={})=>(l,u)=>{let d=a()(n);return I(i)||(d=d.query(i)),e&&"function"==typeof e&&l(e(s)),new Promise(((e,n)=>{null==r&&(r={}),y.put(d.toString()).send(r).end(H(l,u,t,o,e,n))}))},j=(e,t,n,r,o=M,s={})=>i=>(l,u)=>{let d=a()(n);return I(i)||(d=d.query(i)),e&&"function"==typeof e&&l(e(s)),new Promise(((e,n)=>{null==r&&(r={}),y.delete(d).send(r).end(H(l,u,t,o,e,n))}))},P=(e,t,n,r,o=M,s={})=>(i={})=>(l,u)=>{let d=a()(n);return I(i)||(d=d.query(i)),e&&"function"==typeof e&&l(e(s)),new Promise(((e,n)=>{let s=y.post(d);null!=r?s.send(r):s.set("Content-Type","text/plain"),s.end(H(l,u,t,o,e,n))}))},N=(e,t,n,r,o={},s=M,i={})=>(l={})=>(u,d)=>{let c=a()(n);return I(l)||(c=c.query(l)),e&&"function"==typeof e&&u(e(i)),new Promise(((e,n)=>{const a=y.post(c).attach("file",r);I(o)||Object.keys(o).forEach((function(e){let t=o[e];a.field(e,t)})),a.end(H(u,d,t,s,e,n))}))},U=(e,t,n,r=null,o={},s=M,i={})=>(l={})=>(u,d)=>{let c=a()(n);return I(l)||(c=c.query(l)),e&&"function"==typeof e&&u(e(i)),new Promise(((e,n)=>{const a=y.put(c);null!=r&&a.attach("file",r),I(o)||Object.keys(o).forEach((function(e){let t=o[e];a.field(e,t)})),a.end(H(u,d,t,s,e,n))}))},M=(e,t)=>e=>{let n=t.body,r="";n instanceof Object&&n.hasOwnProperty("message")&&(r=n.message),l().fire(t.statusText,r,"error")},D=e=>e.toLowerCase(),G=(e,t={})=>{const n=(e=>Object.keys(e))(t).find((e=>t=>D(t)===e)(e));return n?t[n]:void 0},H=(e,t,n,r,o,s,a=null,i=!1)=>(l,u)=>{if(l||!u.ok){if(304===l.status&&v.hasOwnProperty(a)&&i){const{body:t}=v[a];return"function"==typeof n?(e(n({response:t})),o({response:t})):(e(n),o({response:t}))}return r&&r(l,u)(e,t),s({err:l,res:u,dispatch:e,state:t})}let d=u.body;if(i){const e=G("etag",u.headers);e&&(v[a]={etag:e,body:d})}return"function"==typeof n?(e(n({response:d})),o({response:d})):(e(n),o({response:d}))},F=e=>{let t=e.status,n=e.statusText;switch(t){case 403:l().fire("ERROR",d().translate("errors.user_not_authz"),"warning");break;case 401:l().fire("ERROR",d().translate("errors.session_expired"),"error");break;case 412:l().fire("ERROR",n,"warning");case 500:l().fire("ERROR",d().translate("errors.server_error"),"error")}},V=e=>{if(e.ok)return e.json();throw e},$=(e,t={})=>n=>{n(A()),l().fire(e).then((e=>{e.value&&"function"==typeof t&&t()}))},B=e=>t=>{t(A()),l().fire({title:d().translate("general.done"),html:e,type:"success"})},z=(e,t,n)=>{let r=document.createElement("a");r.textContent="download",r.download=e,r.href=`data:${n},${encodeURIComponent(t)}`,document.body.appendChild(r),r.click(),document.body.removeChild(r)},W=(e,t,n,r=null)=>o=>{let s=a()(e);return I(t)||(s=s.query(t)),o(L()),fetch(s.toString()).then((e=>{if(e.ok)return e.text();throw e})).then((e=>{o(A()),r&&(e=r+"\r\r"+e),z(n,e,"text/csv;charset=utf-8")})).catch(F)},J=(e,t,n=null)=>{let r=a()(e);return I(t)||(r=r.query(t)),fetch(r.toString()).then((e=>{if(e.ok)return e.text();throw e})).then((e=>(n&&(e=n+"\r\r"+e),e))).catch(F)},Y=e=>e=(e=e.replace(/,/g,"\\,")).replace(/;/g,"\\;")},6793:(e,t,n)=>{n.d(t,{base64URLEncode:()=>p,getAuthCallback:()=>r,getCurrentLocation:()=>o,getCurrentPathName:()=>a,getFromLocalStorage:()=>l,getOrigin:()=>s,isClearingSessionState:()=>d,putOnLocalStorage:()=>i,setSessionClearingState:()=>c});n(8362),n(6530);const r=()=>"undefined"!=typeof window?`${window.location.origin}/auth/callback`:null,o=()=>{let e="";return"undefined"!=typeof window&&(e=window.location,window.top&&(e=window.top.location)),e},s=()=>"undefined"!=typeof window?window.location.origin:null,a=()=>"undefined"!=typeof window?window.location.pathname:null,i=(e,t)=>{"undefined"!=typeof window&&window.localStorage.setItem(e,t)},l=(e,t)=>{if("undefined"!=typeof window){let n=window.localStorage.getItem(e);return t&&(console.log(`getFromLocalStorage removing key ${e}`),u(e)),n}return null},u=e=>{"undefined"!=typeof window&&window.localStorage.removeItem(e)},d=()=>"undefined"!=typeof window&&window.clearing_session_state,c=e=>{"undefined"!=typeof window&&(window.clearing_session_state=e)},p=e=>e.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")},4656:e=>{e.exports=require("i18n-react/dist/i18n-react")},3856:e=>{e.exports=require("idtoken-verifier")},8362:e=>{e.exports=require("moment-timezone")},4824:e=>{e.exports=require("superagent")},271:e=>{e.exports=require("sweetalert2")},6530:e=>{e.exports=require("urijs")}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var s=t[r]={exports:{}};return e[r](s,s.exports,n),s.exports}return(()=>{n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t}})(),(()=>{n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}})(),(()=>{n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})(),n(4054)})()));
|