@pega/react-sdk-components 8.23.11-debug4 → 8.23.11-debug5s

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/components/helpers/auth.js"],"names":[],"mappings":";AAAA;IAEE,8BAIC;IAHG,iBAA8B;IAC9B,mBAAsB;IAI1B,qBAgBC;IADG,8BAAmC;IAgDvC,sBAyMC;IAGD,sBAOC;IAID,sCAoDC;IAGD,+CAqCC;IAED,qEA4CC;IAID,6CAwBC;;CA0CF"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/components/helpers/auth.js"],"names":[],"mappings":";AAAA;IAEE,8BAIC;IAHG,iBAA8B;IAC9B,mBAAsB;IAI1B,qBAgBC;IADG,8BAAmC;IAgDvC,sBAgNC;IAGD,sBAOC;IAID,sCAoDC;IAGD,+CAqCC;IAED,qEA4CC;IAID,6CAwBC;;CA0CF"}
@@ -79,7 +79,15 @@ class PegaAuth {
79
79
  // eslint-disable-next-line prefer-promise-reject-errors
80
80
  reject("closed");
81
81
  }
82
- myWindow.postMessage({ type: "PegaAuth" }, redirectOrigin);
82
+ try {
83
+ // eslint-disable-next-line no-console
84
+ console.log(`authjs(login): Posting message to popup window. redirectOrigin: ${redirectOrigin}`);
85
+ myWindow.postMessage({ type: "PegaAuth" }, redirectOrigin);
86
+ }
87
+ catch (e) {
88
+ // eslint-disable-next-line no-console
89
+ console.log(`authjs(login): Failed to post message to popup window. redirectOrigin: ${redirectOrigin}`);
90
+ }
83
91
  }, 500);
84
92
  try {
85
93
  myWindow.addEventListener("load", myWinOnLoad, true);
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/components/helpers/auth.js"],"names":[],"mappings":"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","sourcesContent":["class PegaAuth {\n\n constructor(ssKeyConfig) {\n this.ssKeyConfig = ssKeyConfig;\n this.bEncodeSI = false;\n this.reloadConfig();\n }\n\n reloadConfig() {\n const peConfig = window.sessionStorage.getItem(this.ssKeyConfig);\n let obj = {};\n if( peConfig ) {\n try {\n obj = JSON.parse(peConfig);\n } catch (e) {\n try {\n obj = JSON.parse(window.atob(peConfig));\n } catch(e2) {\n obj = {};\n }\n }\n }\n\n this.config = peConfig ? obj : null;\n }\n\n #updateConfig() {\n const sSI = JSON.stringify(this.config);\n window.sessionStorage.setItem(this.ssKeyConfig, this.bEncodeSI ? window.btoa(sSI) : sSI);\n }\n\n // For PKCE the authorize includes a code_challenge & code_challenge_method as well\n async #buildAuthorizeUrl(state) {\n const {clientId, redirectUri, authorizeUri, authService, sessionIndex, appAlias, useLocking,\n userIdentifier, password} = this.config;\n\n // Generate random string of 64 chars for verifier. RFC 7636 says from 43-128 chars\n let buf = new Uint8Array(64);\n window.crypto.getRandomValues(buf);\n this.config.codeVerifier = this.#base64UrlSafeEncode(buf);\n // If sessionIndex exists then increment attempts count (we will stop sending session_index after two failures)\n if( sessionIndex ) {\n this.config.sessionIndexAttempts += 1;\n }\n // Persist codeVerifier in session storage so it survives the redirects that are to follow\n this.#updateConfig();\n\n if( !state ) {\n // Calc random state variable\n buf = new Uint8Array(32);\n window.crypto.getRandomValues(buf);\n state = this.#base64UrlSafeEncode(buf);\n }\n\n // Trim alias to include just the real alias piece\n const addtlScope = appAlias ? `+app.alias.${appAlias.replace(/^app\\//, '')}` : \"\";\n\n // Add explicit creds if specified to try to avoid login popup\n const moreAuthArgs =\n (authService ? `&authentication_service=${encodeURIComponent(authService)}` : \"\") +\n (sessionIndex && this.config.sessionIndexAttempts < 3 ? `&session_index=${sessionIndex}` : \"\") +\n (useLocking ? `&enable_psyncId=true` : '') +\n (userIdentifier ? `&UserIdentifier=${encodeURIComponent(userIdentifier)}` : '') +\n (userIdentifier && password ? `&Password=${encodeURIComponent(window.atob(password))}` : '');\n\n return this.#getCodeChallenge(this.config.codeVerifier).then( cc => {\n // Now includes new enable_psyncId=true and session_index params\n return `${authorizeUri}?client_id=${clientId}&response_type=code&redirect_uri=${redirectUri}&scope=openid+email+profile${addtlScope}&state=${state}&code_challenge=${cc}&code_challenge_method=S256${moreAuthArgs}`;\n });\n }\n\n async login() {\n const fnGetRedirectUriOrigin = () => {\n const redirectUri = this.config.redirectUri;\n const nRootOffset = redirectUri.indexOf(\"//\");\n const nFirstPathOffset = nRootOffset !== -1 ? redirectUri.indexOf(\"/\",nRootOffset+2) : -1;\n return nFirstPathOffset !== -1 ? redirectUri.substring(0,nFirstPathOffset) : redirectUri;\n };\n\n const redirectOrigin = fnGetRedirectUriOrigin();\n // eslint-disable-next-line no-restricted-globals\n const state = window.btoa(location.origin);\n\n return new Promise( (resolve, reject) => {\n\n this.#buildAuthorizeUrl(state).then((url) => {\n let myWindow = null; // popup or iframe\n let elIframe = null;\n let elCloseBtn = null\n const iframeTimeout = this.config.silentTimeout !== undefined ? this.config.silentTimeout : 5000;\n let bWinIframe = iframeTimeout > 0 && ((!!this.config.userIdentifier && !!this.config.password) || this.config.iframeLoginUI || this.config.authService !== \"pega\");\n let tmrAuthComplete = null;\n let checkWindowClosed = null;\n const myWinOnLoad = () => {\n try{\n if( bWinIframe ) {\n // eslint-disable-next-line no-console\n console.log(\"authjs(login): loaded a page in iFrame\");\n elIframe.contentWindow.postMessage({type:\"PegaAuth\"}, redirectOrigin);\n } else {\n // eslint-disable-next-line no-console\n console.log(`authjs(login): loaded a page in popup window...sending 'PegaAuth' message. redirectOrigin: ${redirectOrigin}`);\n myWindow.postMessage({type:\"PegaAuth\"}, redirectOrigin);\n }\n } catch(e) {\n // eslint-disable-next-line no-console\n console.log(\"authjs(login): Exception trying to postMessage on load\");\n }\n };\n const fnOpenPopup = () => {\n myWindow = window.open(url, '_blank', 'width=700,height=500,left=200,top=100');\n if( !myWindow ) {\n // Blocked by popup-blocker\n // eslint-disable-next-line prefer-promise-reject-errors\n return reject(\"blocked\");\n }\n checkWindowClosed = setInterval( () => {\n if( myWindow.closed ) {\n clearInterval(checkWindowClosed);\n // eslint-disable-next-line prefer-promise-reject-errors\n reject(\"closed\");\n }\n myWindow.postMessage({type:\"PegaAuth\"}, redirectOrigin);\n }, 500);\n try {\n myWindow.addEventListener(\"load\", myWinOnLoad, true);\n } catch(e) {\n // eslint-disable-next-line no-console\n console.log(\"authjs(login): Exception trying to add onload handler to opened window;\")\n }\n };\n\n const fnCloseIframe = () => {\n elIframe.parentNode.removeChild(elIframe);\n elCloseBtn.parentNode.removeChild(elCloseBtn);\n // eslint-disable-next-line no-multi-assign\n elIframe = elCloseBtn = null;\n bWinIframe = false;\n };\n const fnCloseAndReject = () => {\n fnCloseIframe();\n // eslint-disable-next-line prefer-promise-reject-errors\n reject(\"closed\");\n };\n // If there is a userIdentifier and password specified or an external SSO auth service,\n // we can try to use this silently in an iFrame first\n if( bWinIframe ) {\n const nFrameZLevel = 99999;\n elIframe = document.createElement('iframe');\n // eslint-disable-next-line prefer-template\n elIframe.id = 'pe'+this.config.clientId;\n const loginBoxWidth=500;\n const loginBoxHeight=700;\n const oStyle = elIframe.style;\n oStyle.position = 'absolute';\n oStyle.display = 'none';\n oStyle.zIndex = nFrameZLevel;\n oStyle.top=`${Math.round(Math.max(window.innerHeight-loginBoxHeight,0)/2)}px`;\n oStyle.left=`${Math.round(Math.max(window.innerWidth-loginBoxWidth,0)/2)}px`;\n oStyle.width='500px';\n oStyle.height='700px';\n // Add Iframe to top of document DOM to have it load\n document.body.insertBefore(elIframe,document.body.firstChild);\n // Add Iframe to DOM to have it load\n document.getElementsByTagName('body')[0].appendChild(elIframe);\n elIframe.addEventListener(\"load\", myWinOnLoad, true);\n // Disallow iframe content attempts to navigate main window\n elIframe.setAttribute(\"sandbox\",\"allow-scripts allow-forms allow-same-origin\");\n elIframe.setAttribute('src', url);\n\n const svgCloseBtn =\n `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <svg width=\"34px\" height=\"34px\" viewBox=\"0 0 34 34\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <title>Dismiss - Black</title>\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g transform=\"translate(1.000000, 1.000000)\">\n <circle fill=\"#252C32\" cx=\"16\" cy=\"16\" r=\"16\"></circle>\n <g transform=\"translate(9.109375, 9.214844)\" fill=\"#FFFFFF\" fill-rule=\"nonzero\">\n <path d=\"M12.7265625,0 L0,12.6210938 L1.0546875,13.5703125 L13.78125,1.0546875 L12.7265625,0 Z M13.7460938,12.5507812 L1.01953125,0 L0,1.01953125 L12.7617188,13.6054688 L13.7460938,12.5507812 Z\"></path>\n </g>\n </g>\n </g>\n </svg>`;\n const bCloseWithinFrame = false;\n elCloseBtn = document.createElement('img');\n elCloseBtn.onclick = fnCloseAndReject;\n // eslint-disable-next-line prefer-template\n elCloseBtn.src = 'data:image/svg+xml;base64,' + window.btoa(svgCloseBtn);\n const oBtnStyle = elCloseBtn.style;\n oBtnStyle.cursor = 'pointer';\n // If svg doesn't set width and height might want to set oBtStyle width and height to something like '2em'\n oBtnStyle.position = 'absolute';\n oBtnStyle.display = 'none';\n oBtnStyle.zIndex = nFrameZLevel+1;\n const nTopOffset = bCloseWithinFrame ? 5 : -10;\n const nRightOffset = bCloseWithinFrame ? -34 : -20;\n oBtnStyle.top = `${Math.round(Math.max(window.innerHeight-loginBoxHeight,0)/2)+nTopOffset}px`;\n oBtnStyle.left = `${Math.round(Math.max(window.innerWidth-loginBoxWidth,0)/2)+loginBoxWidth+nRightOffset}px`;\n document.body.insertBefore(elCloseBtn,document.body.firstChild);\n // If the password was wrong, then the login screen will be in the iframe\n // ..and with Pega without realization of US-372314 it may replace the top (main portal) window\n // For now set a timer and if the timer expires, remove the iFrame and use same url within\n // visible window\n tmrAuthComplete = setTimeout( () => {\n clearTimeout(tmrAuthComplete);\n // remove password from config\n if( this.config.password ) {\n delete this.config.password;\n this.#updateConfig();\n }\n\n if( this.config.iframeLoginUI ) {\n elIframe.style.display=\"block\";\n elCloseBtn.style.display=\"block\";\n } else {\n fnCloseIframe();\n // eslint-disable-next-line no-console\n console.log(`Opening popup inside tmrAuthComplete (bWinIframe: ${bWinIframe})`);\n fnOpenPopup();\n }\n }, iframeTimeout);\n } else {\n // eslint-disable-next-line no-console\n console.log(`Opening popup outside tmrAuthComplete (bWinIframe: ${bWinIframe})`);\n fnOpenPopup();\n }\n\n let authMessageReceiver = null;\n /* Retrieve token(s) and close login window */\n const fnGetTokenAndFinish = (code) => {\n window.removeEventListener(\"message\", authMessageReceiver, false);\n this.getToken(code).then(token => {\n if( bWinIframe ) {\n clearTimeout(tmrAuthComplete);\n fnCloseIframe();\n } else {\n clearInterval(checkWindowClosed);\n try {\n myWindow.close();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn(`attempt to close opened window failed`);\n }\n }\n resolve(token);\n })\n .catch(e => {\n reject(e);\n });\n };\n /* Handler to receive the auth code */\n authMessageReceiver = (event) => {\n // Check origin to make sure it is the redirect origin\n if( event.origin !== redirectOrigin ) {\n // eslint-disable-next-line no-console\n console.info(`Received event from unexpected origin: ${event.origin} (was expecting: ${redirectOrigin})`);\n }\n if( !event.data || !event.data.type || event.data.type !== \"PegaAuth\" )\n return;\n // eslint-disable-next-line no-console\n console.log(\"authjs(login): postMessage received with code\");\n const code = event.data.code.toString();\n fnGetTokenAndFinish(code);\n };\n window.addEventListener(\"message\", authMessageReceiver, false);\n window.authCodeCallback = (code) => {\n // eslint-disable-next-line no-console\n console.log(\"authjs(login): authCodeCallback used with code\");\n fnGetTokenAndFinish(code);\n };\n });\n });\n }\n\n // Login redirect\n loginRedirect() {\n // eslint-disable-next-line no-restricted-globals\n const state = btoa(location.origin);\n this.#buildAuthorizeUrl(state).then((url) => {\n // eslint-disable-next-line no-restricted-globals\n location.href = url;\n });\n }\n\n\n // For PKCE token endpoint includes code_verifier\n getToken(authCode) {\n // Reload config to pick up the previously stored codeVerifier\n this.reloadConfig();\n\n const {clientId, clientSecret, redirectUri, tokenUri, codeVerifier} = this.config;\n\n // eslint-disable-next-line no-restricted-globals\n const queryString = location.search;\n const urlParams = new URLSearchParams(queryString);\n const code = authCode || urlParams.get(\"code\");\n\n const formData = new URLSearchParams();\n formData.append(\"client_id\", clientId);\n if( clientSecret ) {\n formData.append(\"client_secret\", clientSecret);\n }\n formData.append(\"grant_type\", \"authorization_code\");\n formData.append(\"code\", code);\n formData.append(\"redirect_uri\", redirectUri);\n formData.append(\"code_verifier\", codeVerifier);\n\n return fetch(tokenUri, {\n method: \"POST\",\n headers: new Headers({\n \"content-type\": \"application/x-www-form-urlencoded\",\n }),\n\n body: formData.toString(),\n })\n .then((response) => response.json())\n .then(token => {\n // .expires_in contains the # of seconds before access token expires\n // add property to keep track of current time when the token expires\n token.eA = Date.now() + (token.expires_in * 1000);\n if( this.config.codeVerifier ) {\n delete this.config.codeVerifier;\n }\n // If there is a session_index then move this to the peConfig structure (as used on authorize)\n if( token.session_index ) {\n this.config.sessionIndex = token.session_index;\n }\n // If we got a token and have a session index, then reset the sessionIndexAttempts\n if( this.config.sessionIndex ) {\n this.config.sessionIndexAttempts = 0;\n }\n this.#updateConfig();\n return token;\n })\n .catch(e => {\n // eslint-disable-next-line no-console\n console.log(e)\n });\n }\n\n /* eslint-disable camelcase */\n async refreshToken(refresh_token) {\n const {clientId, clientSecret, tokenUri} = this.config;\n\n const formData = new URLSearchParams();\n formData.append(\"client_id\", clientId);\n if( clientSecret ) {\n formData.append(\"client_secret\", clientSecret);\n }\n formData.append(\"grant_type\", \"refresh_token\");\n formData.append(\"refresh_token\", refresh_token);\n\n return fetch(tokenUri, {\n method: \"POST\",\n headers: new Headers({\n \"content-type\": \"application/x-www-form-urlencoded\",\n }),\n\n body: formData.toString(),\n })\n .then((response) => {\n if( !response.ok && response.status === 401 ) {\n return null;\n }\n return response.json();\n })\n .then(token => {\n if( token ) {\n // .expires_in contains the # of seconds before access token expires\n // add property to keep track of current time when the token expires\n token.eA = Date.now() + (token.expires_in * 1000);\n }\n return token;\n })\n .catch(e => {\n // eslint-disable-next-line no-console\n console.log(e)\n });\n }\n\n async revokeTokens(access_token, refresh_token = null) {\n if( !this.config || !this.config.revokeUri) {\n // Must have a config structure and revokeUri to proceed\n return;\n }\n const {clientId, clientSecret, revokeUri} = this.config;\n\n const hdrs = {\"content-type\":\"application/x-www-form-urlencoded\"};\n if( clientSecret ) {\n const creds = `${clientId}:${clientSecret}`;\n hdrs.authorization = `Basic ${window.btoa(creds)}`;\n }\n const aTknProps = [\"access_token\"];\n if( refresh_token ) {\n aTknProps.push(\"refresh_token\");\n }\n aTknProps.forEach( (prop) => {\n const formData = new URLSearchParams();\n if( !clientSecret ) {\n formData.append(\"client_id\", clientId);\n }\n formData.append(\"token\", prop===\"access_token\" ? access_token : refresh_token);\n formData.append(\"token_type_hint\", prop);\n fetch(revokeUri, {\n method: \"POST\",\n headers: new Headers(hdrs),\n body: formData.toString(),\n })\n .then((response) => {\n if( !response.ok ) {\n // eslint-disable-next-line no-console\n console.log( `Error revoking ${prop}:${response.status}` );\n }\n })\n .catch(e => {\n // eslint-disable-next-line no-console\n console.log(e);\n });\n } );\n // Also clobber any sessionIndex\n if( this.config.sessionIndex ) {\n delete this.config.sessionIndex;\n this.#updateConfig();\n }\n }\n\n // For userinfo endpoint to return meaningful data, endpoint must include appAlias (if specified) and authorize must\n // specify profile and optionally email scope to get such info returned\n async getUserinfo(access_token) {\n if( !this.config || !this.config.userinfoUri ) {\n // Must have a config structure and userInfo to proceed\n return {};\n }\n const hdrs = {'authorization':`bearer ${access_token}`,'content-type':'application/json;charset=UTF-8'};\n return fetch(this.config.userinfoUri, {\n method: \"GET\",\n headers: new Headers(hdrs)})\n .then( response => {\n if( response.ok) {\n return response.json();\n } else {\n // eslint-disable-next-line no-console\n console.log( `Error invoking userinfo: ${response.status}` );\n }\n })\n .then( data => {\n return data;\n })\n .catch(e => {\n // eslint-disable-next-line no-console\n console.log(e);\n });\n }\n\n /* eslint-enable camelcase */\n\n // eslint-disable-next-line class-methods-use-this\n #sha256Hash(str) {\n return window.crypto.subtle.digest(\"SHA-256\", new TextEncoder().encode(str));\n }\n\n // Base64 encode\n // eslint-disable-next-line class-methods-use-this\n #encode64(buff) {\n return window.btoa(new Uint8Array(buff).reduce((s, b) => s + String.fromCharCode(b), ''));\n }\n\n /*\n * Base64 url safe encoding of an array\n */\n #base64UrlSafeEncode(buf) {\n const s = this.#encode64(buf).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\");\n return s;\n }\n\n /* Calc code verifier if necessary\n */\n /* eslint-disable camelcase */\n #getCodeChallenge(code_verifier) {\n return this.#sha256Hash(code_verifier).then (\n (hashed) => {\n return this.#base64UrlSafeEncode(hashed)\n }\n ).catch(\n (error) => {\n // eslint-disable-next-line no-console\n console.log(error)\n }\n ).finally(\n () => { return null }\n )\n }\n /* eslint-enable camelcase */\n\n}\n\nexport default PegaAuth;\n"]}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/components/helpers/auth.js"],"names":[],"mappings":"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","sourcesContent":["class PegaAuth {\n\n constructor(ssKeyConfig) {\n this.ssKeyConfig = ssKeyConfig;\n this.bEncodeSI = false;\n this.reloadConfig();\n }\n\n reloadConfig() {\n const peConfig = window.sessionStorage.getItem(this.ssKeyConfig);\n let obj = {};\n if( peConfig ) {\n try {\n obj = JSON.parse(peConfig);\n } catch (e) {\n try {\n obj = JSON.parse(window.atob(peConfig));\n } catch(e2) {\n obj = {};\n }\n }\n }\n\n this.config = peConfig ? obj : null;\n }\n\n #updateConfig() {\n const sSI = JSON.stringify(this.config);\n window.sessionStorage.setItem(this.ssKeyConfig, this.bEncodeSI ? window.btoa(sSI) : sSI);\n }\n\n // For PKCE the authorize includes a code_challenge & code_challenge_method as well\n async #buildAuthorizeUrl(state) {\n const {clientId, redirectUri, authorizeUri, authService, sessionIndex, appAlias, useLocking,\n userIdentifier, password} = this.config;\n\n // Generate random string of 64 chars for verifier. RFC 7636 says from 43-128 chars\n let buf = new Uint8Array(64);\n window.crypto.getRandomValues(buf);\n this.config.codeVerifier = this.#base64UrlSafeEncode(buf);\n // If sessionIndex exists then increment attempts count (we will stop sending session_index after two failures)\n if( sessionIndex ) {\n this.config.sessionIndexAttempts += 1;\n }\n // Persist codeVerifier in session storage so it survives the redirects that are to follow\n this.#updateConfig();\n\n if( !state ) {\n // Calc random state variable\n buf = new Uint8Array(32);\n window.crypto.getRandomValues(buf);\n state = this.#base64UrlSafeEncode(buf);\n }\n\n // Trim alias to include just the real alias piece\n const addtlScope = appAlias ? `+app.alias.${appAlias.replace(/^app\\//, '')}` : \"\";\n\n // Add explicit creds if specified to try to avoid login popup\n const moreAuthArgs =\n (authService ? `&authentication_service=${encodeURIComponent(authService)}` : \"\") +\n (sessionIndex && this.config.sessionIndexAttempts < 3 ? `&session_index=${sessionIndex}` : \"\") +\n (useLocking ? `&enable_psyncId=true` : '') +\n (userIdentifier ? `&UserIdentifier=${encodeURIComponent(userIdentifier)}` : '') +\n (userIdentifier && password ? `&Password=${encodeURIComponent(window.atob(password))}` : '');\n\n return this.#getCodeChallenge(this.config.codeVerifier).then( cc => {\n // Now includes new enable_psyncId=true and session_index params\n return `${authorizeUri}?client_id=${clientId}&response_type=code&redirect_uri=${redirectUri}&scope=openid+email+profile${addtlScope}&state=${state}&code_challenge=${cc}&code_challenge_method=S256${moreAuthArgs}`;\n });\n }\n\n async login() {\n const fnGetRedirectUriOrigin = () => {\n const redirectUri = this.config.redirectUri;\n const nRootOffset = redirectUri.indexOf(\"//\");\n const nFirstPathOffset = nRootOffset !== -1 ? redirectUri.indexOf(\"/\",nRootOffset+2) : -1;\n return nFirstPathOffset !== -1 ? redirectUri.substring(0,nFirstPathOffset) : redirectUri;\n };\n\n const redirectOrigin = fnGetRedirectUriOrigin();\n // eslint-disable-next-line no-restricted-globals\n const state = window.btoa(location.origin);\n\n return new Promise( (resolve, reject) => {\n\n this.#buildAuthorizeUrl(state).then((url) => {\n let myWindow = null; // popup or iframe\n let elIframe = null;\n let elCloseBtn = null\n const iframeTimeout = this.config.silentTimeout !== undefined ? this.config.silentTimeout : 5000;\n let bWinIframe = iframeTimeout > 0 && ((!!this.config.userIdentifier && !!this.config.password) || this.config.iframeLoginUI || this.config.authService !== \"pega\");\n let tmrAuthComplete = null;\n let checkWindowClosed = null;\n const myWinOnLoad = () => {\n try{\n if( bWinIframe ) {\n // eslint-disable-next-line no-console\n console.log(\"authjs(login): loaded a page in iFrame\");\n elIframe.contentWindow.postMessage({type:\"PegaAuth\"}, redirectOrigin);\n } else {\n // eslint-disable-next-line no-console\n console.log(`authjs(login): loaded a page in popup window...sending 'PegaAuth' message. redirectOrigin: ${redirectOrigin}`);\n myWindow.postMessage({type:\"PegaAuth\"}, redirectOrigin);\n }\n } catch(e) {\n // eslint-disable-next-line no-console\n console.log(\"authjs(login): Exception trying to postMessage on load\");\n }\n };\n const fnOpenPopup = () => {\n myWindow = window.open(url, '_blank', 'width=700,height=500,left=200,top=100');\n if( !myWindow ) {\n // Blocked by popup-blocker\n // eslint-disable-next-line prefer-promise-reject-errors\n return reject(\"blocked\");\n }\n checkWindowClosed = setInterval( () => {\n if( myWindow.closed ) {\n clearInterval(checkWindowClosed);\n // eslint-disable-next-line prefer-promise-reject-errors\n reject(\"closed\");\n }\n try {\n // eslint-disable-next-line no-console\n console.log(`authjs(login): Posting message to popup window. redirectOrigin: ${redirectOrigin}`);\n myWindow.postMessage({type:\"PegaAuth\"}, redirectOrigin);\n } catch(e) {\n // eslint-disable-next-line no-console\n console.log(`authjs(login): Failed to post message to popup window. redirectOrigin: ${redirectOrigin}`);\n }\n }, 500);\n try {\n myWindow.addEventListener(\"load\", myWinOnLoad, true);\n } catch(e) {\n // eslint-disable-next-line no-console\n console.log(\"authjs(login): Exception trying to add onload handler to opened window;\")\n }\n };\n\n const fnCloseIframe = () => {\n elIframe.parentNode.removeChild(elIframe);\n elCloseBtn.parentNode.removeChild(elCloseBtn);\n // eslint-disable-next-line no-multi-assign\n elIframe = elCloseBtn = null;\n bWinIframe = false;\n };\n const fnCloseAndReject = () => {\n fnCloseIframe();\n // eslint-disable-next-line prefer-promise-reject-errors\n reject(\"closed\");\n };\n // If there is a userIdentifier and password specified or an external SSO auth service,\n // we can try to use this silently in an iFrame first\n if( bWinIframe ) {\n const nFrameZLevel = 99999;\n elIframe = document.createElement('iframe');\n // eslint-disable-next-line prefer-template\n elIframe.id = 'pe'+this.config.clientId;\n const loginBoxWidth=500;\n const loginBoxHeight=700;\n const oStyle = elIframe.style;\n oStyle.position = 'absolute';\n oStyle.display = 'none';\n oStyle.zIndex = nFrameZLevel;\n oStyle.top=`${Math.round(Math.max(window.innerHeight-loginBoxHeight,0)/2)}px`;\n oStyle.left=`${Math.round(Math.max(window.innerWidth-loginBoxWidth,0)/2)}px`;\n oStyle.width='500px';\n oStyle.height='700px';\n // Add Iframe to top of document DOM to have it load\n document.body.insertBefore(elIframe,document.body.firstChild);\n // Add Iframe to DOM to have it load\n document.getElementsByTagName('body')[0].appendChild(elIframe);\n elIframe.addEventListener(\"load\", myWinOnLoad, true);\n // Disallow iframe content attempts to navigate main window\n elIframe.setAttribute(\"sandbox\",\"allow-scripts allow-forms allow-same-origin\");\n elIframe.setAttribute('src', url);\n\n const svgCloseBtn =\n `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <svg width=\"34px\" height=\"34px\" viewBox=\"0 0 34 34\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <title>Dismiss - Black</title>\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g transform=\"translate(1.000000, 1.000000)\">\n <circle fill=\"#252C32\" cx=\"16\" cy=\"16\" r=\"16\"></circle>\n <g transform=\"translate(9.109375, 9.214844)\" fill=\"#FFFFFF\" fill-rule=\"nonzero\">\n <path d=\"M12.7265625,0 L0,12.6210938 L1.0546875,13.5703125 L13.78125,1.0546875 L12.7265625,0 Z M13.7460938,12.5507812 L1.01953125,0 L0,1.01953125 L12.7617188,13.6054688 L13.7460938,12.5507812 Z\"></path>\n </g>\n </g>\n </g>\n </svg>`;\n const bCloseWithinFrame = false;\n elCloseBtn = document.createElement('img');\n elCloseBtn.onclick = fnCloseAndReject;\n // eslint-disable-next-line prefer-template\n elCloseBtn.src = 'data:image/svg+xml;base64,' + window.btoa(svgCloseBtn);\n const oBtnStyle = elCloseBtn.style;\n oBtnStyle.cursor = 'pointer';\n // If svg doesn't set width and height might want to set oBtStyle width and height to something like '2em'\n oBtnStyle.position = 'absolute';\n oBtnStyle.display = 'none';\n oBtnStyle.zIndex = nFrameZLevel+1;\n const nTopOffset = bCloseWithinFrame ? 5 : -10;\n const nRightOffset = bCloseWithinFrame ? -34 : -20;\n oBtnStyle.top = `${Math.round(Math.max(window.innerHeight-loginBoxHeight,0)/2)+nTopOffset}px`;\n oBtnStyle.left = `${Math.round(Math.max(window.innerWidth-loginBoxWidth,0)/2)+loginBoxWidth+nRightOffset}px`;\n document.body.insertBefore(elCloseBtn,document.body.firstChild);\n // If the password was wrong, then the login screen will be in the iframe\n // ..and with Pega without realization of US-372314 it may replace the top (main portal) window\n // For now set a timer and if the timer expires, remove the iFrame and use same url within\n // visible window\n tmrAuthComplete = setTimeout( () => {\n clearTimeout(tmrAuthComplete);\n // remove password from config\n if( this.config.password ) {\n delete this.config.password;\n this.#updateConfig();\n }\n\n if( this.config.iframeLoginUI ) {\n elIframe.style.display=\"block\";\n elCloseBtn.style.display=\"block\";\n } else {\n fnCloseIframe();\n // eslint-disable-next-line no-console\n console.log(`Opening popup inside tmrAuthComplete (bWinIframe: ${bWinIframe})`);\n fnOpenPopup();\n }\n }, iframeTimeout);\n } else {\n // eslint-disable-next-line no-console\n console.log(`Opening popup outside tmrAuthComplete (bWinIframe: ${bWinIframe})`);\n fnOpenPopup();\n }\n\n let authMessageReceiver = null;\n /* Retrieve token(s) and close login window */\n const fnGetTokenAndFinish = (code) => {\n window.removeEventListener(\"message\", authMessageReceiver, false);\n this.getToken(code).then(token => {\n if( bWinIframe ) {\n clearTimeout(tmrAuthComplete);\n fnCloseIframe();\n } else {\n clearInterval(checkWindowClosed);\n try {\n myWindow.close();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn(`attempt to close opened window failed`);\n }\n }\n resolve(token);\n })\n .catch(e => {\n reject(e);\n });\n };\n /* Handler to receive the auth code */\n authMessageReceiver = (event) => {\n // Check origin to make sure it is the redirect origin\n if( event.origin !== redirectOrigin ) {\n // eslint-disable-next-line no-console\n console.info(`Received event from unexpected origin: ${event.origin} (was expecting: ${redirectOrigin})`);\n }\n if( !event.data || !event.data.type || event.data.type !== \"PegaAuth\" )\n return;\n // eslint-disable-next-line no-console\n console.log(\"authjs(login): postMessage received with code\");\n const code = event.data.code.toString();\n fnGetTokenAndFinish(code);\n };\n window.addEventListener(\"message\", authMessageReceiver, false);\n window.authCodeCallback = (code) => {\n // eslint-disable-next-line no-console\n console.log(\"authjs(login): authCodeCallback used with code\");\n fnGetTokenAndFinish(code);\n };\n });\n });\n }\n\n // Login redirect\n loginRedirect() {\n // eslint-disable-next-line no-restricted-globals\n const state = btoa(location.origin);\n this.#buildAuthorizeUrl(state).then((url) => {\n // eslint-disable-next-line no-restricted-globals\n location.href = url;\n });\n }\n\n\n // For PKCE token endpoint includes code_verifier\n getToken(authCode) {\n // Reload config to pick up the previously stored codeVerifier\n this.reloadConfig();\n\n const {clientId, clientSecret, redirectUri, tokenUri, codeVerifier} = this.config;\n\n // eslint-disable-next-line no-restricted-globals\n const queryString = location.search;\n const urlParams = new URLSearchParams(queryString);\n const code = authCode || urlParams.get(\"code\");\n\n const formData = new URLSearchParams();\n formData.append(\"client_id\", clientId);\n if( clientSecret ) {\n formData.append(\"client_secret\", clientSecret);\n }\n formData.append(\"grant_type\", \"authorization_code\");\n formData.append(\"code\", code);\n formData.append(\"redirect_uri\", redirectUri);\n formData.append(\"code_verifier\", codeVerifier);\n\n return fetch(tokenUri, {\n method: \"POST\",\n headers: new Headers({\n \"content-type\": \"application/x-www-form-urlencoded\",\n }),\n\n body: formData.toString(),\n })\n .then((response) => response.json())\n .then(token => {\n // .expires_in contains the # of seconds before access token expires\n // add property to keep track of current time when the token expires\n token.eA = Date.now() + (token.expires_in * 1000);\n if( this.config.codeVerifier ) {\n delete this.config.codeVerifier;\n }\n // If there is a session_index then move this to the peConfig structure (as used on authorize)\n if( token.session_index ) {\n this.config.sessionIndex = token.session_index;\n }\n // If we got a token and have a session index, then reset the sessionIndexAttempts\n if( this.config.sessionIndex ) {\n this.config.sessionIndexAttempts = 0;\n }\n this.#updateConfig();\n return token;\n })\n .catch(e => {\n // eslint-disable-next-line no-console\n console.log(e)\n });\n }\n\n /* eslint-disable camelcase */\n async refreshToken(refresh_token) {\n const {clientId, clientSecret, tokenUri} = this.config;\n\n const formData = new URLSearchParams();\n formData.append(\"client_id\", clientId);\n if( clientSecret ) {\n formData.append(\"client_secret\", clientSecret);\n }\n formData.append(\"grant_type\", \"refresh_token\");\n formData.append(\"refresh_token\", refresh_token);\n\n return fetch(tokenUri, {\n method: \"POST\",\n headers: new Headers({\n \"content-type\": \"application/x-www-form-urlencoded\",\n }),\n\n body: formData.toString(),\n })\n .then((response) => {\n if( !response.ok && response.status === 401 ) {\n return null;\n }\n return response.json();\n })\n .then(token => {\n if( token ) {\n // .expires_in contains the # of seconds before access token expires\n // add property to keep track of current time when the token expires\n token.eA = Date.now() + (token.expires_in * 1000);\n }\n return token;\n })\n .catch(e => {\n // eslint-disable-next-line no-console\n console.log(e)\n });\n }\n\n async revokeTokens(access_token, refresh_token = null) {\n if( !this.config || !this.config.revokeUri) {\n // Must have a config structure and revokeUri to proceed\n return;\n }\n const {clientId, clientSecret, revokeUri} = this.config;\n\n const hdrs = {\"content-type\":\"application/x-www-form-urlencoded\"};\n if( clientSecret ) {\n const creds = `${clientId}:${clientSecret}`;\n hdrs.authorization = `Basic ${window.btoa(creds)}`;\n }\n const aTknProps = [\"access_token\"];\n if( refresh_token ) {\n aTknProps.push(\"refresh_token\");\n }\n aTknProps.forEach( (prop) => {\n const formData = new URLSearchParams();\n if( !clientSecret ) {\n formData.append(\"client_id\", clientId);\n }\n formData.append(\"token\", prop===\"access_token\" ? access_token : refresh_token);\n formData.append(\"token_type_hint\", prop);\n fetch(revokeUri, {\n method: \"POST\",\n headers: new Headers(hdrs),\n body: formData.toString(),\n })\n .then((response) => {\n if( !response.ok ) {\n // eslint-disable-next-line no-console\n console.log( `Error revoking ${prop}:${response.status}` );\n }\n })\n .catch(e => {\n // eslint-disable-next-line no-console\n console.log(e);\n });\n } );\n // Also clobber any sessionIndex\n if( this.config.sessionIndex ) {\n delete this.config.sessionIndex;\n this.#updateConfig();\n }\n }\n\n // For userinfo endpoint to return meaningful data, endpoint must include appAlias (if specified) and authorize must\n // specify profile and optionally email scope to get such info returned\n async getUserinfo(access_token) {\n if( !this.config || !this.config.userinfoUri ) {\n // Must have a config structure and userInfo to proceed\n return {};\n }\n const hdrs = {'authorization':`bearer ${access_token}`,'content-type':'application/json;charset=UTF-8'};\n return fetch(this.config.userinfoUri, {\n method: \"GET\",\n headers: new Headers(hdrs)})\n .then( response => {\n if( response.ok) {\n return response.json();\n } else {\n // eslint-disable-next-line no-console\n console.log( `Error invoking userinfo: ${response.status}` );\n }\n })\n .then( data => {\n return data;\n })\n .catch(e => {\n // eslint-disable-next-line no-console\n console.log(e);\n });\n }\n\n /* eslint-enable camelcase */\n\n // eslint-disable-next-line class-methods-use-this\n #sha256Hash(str) {\n return window.crypto.subtle.digest(\"SHA-256\", new TextEncoder().encode(str));\n }\n\n // Base64 encode\n // eslint-disable-next-line class-methods-use-this\n #encode64(buff) {\n return window.btoa(new Uint8Array(buff).reduce((s, b) => s + String.fromCharCode(b), ''));\n }\n\n /*\n * Base64 url safe encoding of an array\n */\n #base64UrlSafeEncode(buf) {\n const s = this.#encode64(buf).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\");\n return s;\n }\n\n /* Calc code verifier if necessary\n */\n /* eslint-disable camelcase */\n #getCodeChallenge(code_verifier) {\n return this.#sha256Hash(code_verifier).then (\n (hashed) => {\n return this.#base64UrlSafeEncode(hashed)\n }\n ).catch(\n (error) => {\n // eslint-disable-next-line no-console\n console.log(error)\n }\n ).finally(\n () => { return null }\n )\n }\n /* eslint-enable camelcase */\n\n}\n\nexport default PegaAuth;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pega/react-sdk-components",
3
- "version": "8.23.11-debug4",
3
+ "version": "8.23.11-debug5s",
4
4
  "description": "React SDK Infrastructure: bridge and components",
5
5
  "_filesComment": "During packing, npm ignores everything NOT in the files list",
6
6
  "files": [