openstack-uicore-foundation 4.0.36 → 4.0.37
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/methods.js +1 -1
- package/package.json +1 -1
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"},8576:(e,o,t)=>{t.r(o),t.d(o,{ACCESS_TOKEN_SKEW_TIME:()=>E,RESPONSE_TYPE_CODE:()=>R,RESPONSE_TYPE_IMPLICIT:()=>L,clearAccessToken:()=>D,clearAuthInfo:()=>G,doLogin:()=>C,doLoginBasicLogin:()=>j,emitAccessToken:()=>N,getAccessToken:()=>F,getAuthInfo:()=>B,getAuthUrl:()=>v,getIdToken:()=>J,getLogoutUrl:()=>P,getOAuth2ClientId:()=>H,getOAuth2Flow:()=>V,getOAuth2IDPBaseUrl:()=>z,getOAuth2Scopes:()=>W,initLogOut:()=>Y,passwordlessLogin:()=>Z,passwordlessStart:()=>X,refreshAccessToken:()=>$,storeAuthInfo:()=>M,useOAuth2RefreshToken:()=>K,validateIdToken:()=>Q});var n=t(6793),r=t(4824),i=t.n(r);const
|
|
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"},8576:(e,o,t)=>{t.r(o),t.d(o,{ACCESS_TOKEN_SKEW_TIME:()=>E,RESPONSE_TYPE_CODE:()=>R,RESPONSE_TYPE_IMPLICIT:()=>L,clearAccessToken:()=>D,clearAuthInfo:()=>G,doLogin:()=>C,doLoginBasicLogin:()=>j,emitAccessToken:()=>N,getAccessToken:()=>F,getAuthInfo:()=>B,getAuthUrl:()=>v,getIdToken:()=>J,getLogoutUrl:()=>P,getOAuth2ClientId:()=>H,getOAuth2Flow:()=>V,getOAuth2IDPBaseUrl:()=>z,getOAuth2Scopes:()=>W,initLogOut:()=>Y,passwordlessLogin:()=>Z,passwordlessStart:()=>X,refreshAccessToken:()=>$,storeAuthInfo:()=>M,useOAuth2RefreshToken:()=>K,validateIdToken:()=>Q});var n=t(6793),r=t(4824),i=t.n(r);const s=require("browser-tabs-lock");var l=t.n(s),c=t(6530),d=t.n(c),u=t(3856),p=t.n(u),f=t(4341);const w=require("crypto-js/sha256");var g=t.n(w);const h=require("crypto-js/enc-base64url");var _=t.n(h);const y=require("crypto-js/enc-hex");var m=t.n(y);const k=65536,S="undefined"!=typeof window?window.crypto||window.msCrypto:null;let O=i();const T=new(l()),I="openstackuicore.lock.getTokenSilently",E=20,L="token id_token",R="code",U="authInfo",A="nonce",b="pkce",v=(e=null,o=null,t=null,r=null)=>{let i=H(),a=(0,n.getAuthCallback)(),s=z(),l=W(),c=V();null!=e&&(a+=`?BackUrl=${encodeURI(e)}`);let u=x(16);(0,n.putOnLocalStorage)(A,u);let p=d()(`${s}/oauth2/auth`),f={response_type:encodeURI(c),scope:encodeURI(l),nonce:u,response_mode:"fragment",client_id:encodeURI(i),redirect_uri:encodeURI(a)};if(c===R){const e=q();(0,n.putOnLocalStorage)(b,JSON.stringify(e)),f.code_challenge=e.codeChallenge,f.code_challenge_method="S256",f.approval_prompt="force"}return o&&(f.prompt=o),l&&l.includes("offline_access")&&(f.prompt="consent"),t&&(f.id_token_hint=t),r&&(f.provider=r),p=p.query(f),p},P=e=>{let o=z(),t=H(),r=d()(`${o}/oauth2/end-session`),i=x(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})},x=e=>{let o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",t="";for(let n=0;n<e;n++)t+=o.charAt(Math.floor(Math.random()*o.length));return t},C=(e=null,o=null,t=null)=>{let r=v(e,t,null,o);(0,n.getCurrentLocation)().replace(r.toString())},j=(e=null)=>{C(e,null,null)},q=()=>{const e=(0,n.base64URLEncode)((e=>{if(e>4294967295)throw new RangeError("requested too many random bytes");const o=Buffer.allocUnsafe(e);if(!S)return a;if(e>0)if(e>k)for(let t=0;t<e;t+=k)S.getRandomValues(o.slice(t,t+k));else S.getRandomValues(o);return o})(64));return{codeVerifier:e,codeChallenge:((e,o="hex")=>{let t=m();return"Base64url"===o&&(t=_()),g()(e).toString(t)})(e,"Base64url"),createdAt:new Date}},N=async(e,o=null)=>{let t=z(),r=H(),i=(0,n.getAuthCallback)(),a=JSON.parse((0,n.getFromLocalStorage)(b,!0));null!=o&&(i+=`?BackUrl=${encodeURI(o)}`);const s={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(s)}).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:l,error_description:c}=o;return{access_token:n,refresh_token:r,id_token:i,expires_in:a,error:l,error_description:c}}catch(e){console.log(e)}},D=async()=>{if(await(0,n.retryPromise)((()=>T.acquireLock(I,5e3)),10))try{let e=B();if(!e)throw Error("Missing Auth info.");let{accessToken:o,expiresIn:t,accessTokenUpdatedAt:n,refreshToken:r}=e;M(null,0,r)}finally{await T.releaseLock(I)}},F=async()=>{if(await(0,n.retryPromise)((()=>T.acquireLock(I,5e3)),10))try{let e=B();if(!e)throw Error("Missing Auth info.");let{accessToken:o,expiresIn:t,accessTokenUpdatedAt:n,refreshToken:r}=e,i=V(),a=Math.floor(Date.now()/1e3);if(t-=E,a-n>t||null==o){if(console.log("getAccessToken access token expired"),i===R&&K()){if(!r)throw G(),Error("missing Refresh Token");let e=await $(r),{access_token:o,expires_in:t,refresh_token:n}=e;return void 0===n&&(n=null),M(o,t,n),o}throw G(),Error("Access Token Expired.")}return o}finally{await T.releaseLock(I)}throw Error("Lock acquire error.")},$=async e=>{let o=z(),t=H();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(`${e.status} - ${e.statusText}`)}return e})).catch((function(e){throw Error(`Request failed: ${e.message}`)})),t=await e.json();let{access_token:i,refresh_token:a,expires_in:s}=t;return{access_token:i,refresh_token:a,expires_in:s}}catch(e){throw console.log(e),e}},M=(e,o,t=null,r=null)=>{let i=B(),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)(U,JSON.stringify(a))},B=()=>{let e=(0,n.getFromLocalStorage)(U,!1);return null===e?null:JSON.parse(e)},G=()=>{if("undefined"!=typeof window)return(0,n.removeFromLocalStorage)(U),(0,n.removeFromLocalStorage)(A),void(0,n.removeFromLocalStorage)(b)},J=()=>{if("undefined"!=typeof window){const e=B();return e?e.idToken:null}return null},H=()=>"undefined"!=typeof window?window.OAUTH2_CLIENT_ID:null,V=()=>"undefined"!=typeof window&&window.OAUTH2_FLOW||"token id_token",K=()=>"undefined"==typeof window||new Boolean(window.OAUTH2_USE_REFRESH_TOKEN||!0),z=()=>"undefined"!=typeof window?window.IDP_BASE_URL:null,W=()=>"undefined"!=typeof window?window.SCOPES:null,Y=()=>{(0,n.getCurrentLocation)().replace(P(J()).toString())},Q=(e,o,t)=>{let r=new(p())({issuer:o,audience:t}),i=(0,n.getFromLocalStorage)(A,!0),a=r.decode(e),s=(a.header.alg,a.header.kid,a.payload.aud),l=a.payload.iss;a.payload.exp,a.payload.nbf;return(a.payload.nonce||null)==i&&s==t&&l==o},X=e=>{let o=H(),t=W(),r=x(16);(0,n.putOnLocalStorage)(A,r);let i=z(),a=d()(`${i}/oauth2/auth`),s={response_type:"otp",scope:encodeURI(t),nonce:r,client_id:encodeURI(o),connection:e.connection||"email",send:e.send||"code"};return e.hasOwnProperty("email")&&(s.email=encodeURIComponent(e.email)),e.hasOwnProperty("phone_number")&&(s.phone_number=encodeURIComponent(e.phone_number)),e.hasOwnProperty("redirect_uri")&&(s.redirect_uri=encodeURIComponent(e.redirect_uri)),O.post(a.toString()).send(s).then((e=>{let o=e.body;return Promise.resolve({response:o})})).catch((e=>Promise.reject(e)))},Z=e=>o=>{let t=H(),n=W(),r=z(),i=d()(`${r}/oauth2/token`);if(!e.hasOwnProperty("otp"))throw Error("otp param is mandatory.");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)),O.post(i.toString()).send(a).then((e=>{try{let n=e.body,{access_token:i,expires_in:a,refresh_token:s,id_token:l}=n;if(void 0===s&&(s=null),void 0===l&&(l=null),l&&!Q(l,r,t))throw Error("id token is not valid.");return M(i,a,s,l),o&&o({type:f.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:()=>l,getOrigin:()=>i,putOnLocalStorage:()=>s,removeFromLocalStorage:()=>c,retryPromise:()=>p,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,s=(e,o)=>{"undefined"!=typeof window&&window.localStorage.setItem(e,o)},l=(e,o)=>{if("undefined"!=typeof window){let t=window.localStorage.getItem(e);return o&&(console.log(`getFromLocalStorage removing key ${e}`),c(e)),t}return null},c=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,""),p=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)})()));
|