{"version":3,"sources":["constants/actionTypes.js","reducers/session.js","reducers/index.js","store/index.js","lib/cognitoUtils.js","actions/session.js","routes/Callback.js","routes/logo.svg","components/queries/SayHello.js","routes/Home.js","components/layout/AccountMenu.js","components/layout/Navigation.js","components/layout/Layout.js","App.js","index.js"],"names":["CLEAR_SESSION","SET_SESSION","initialState","isLoggedIn","session","state","action","type","Object","assign","combineReducers","storeEnhancers","window","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","store","createStore","rootReducer","applyMiddleware","thunk","AWSConfig","region","appConfig","createCognitoAuth","appWebDomain","userPoolBaseUri","replace","CognitoAuth","UserPoolId","userPool","ClientId","clientId","AppWebDomain","TokenScopesArray","tokenScopes","RedirectUriSignIn","callbackUri","RedirectUriSignOut","signoutUri","createCognitoUser","createCognitoUserPool","getCurrentUser","CognitoUserPool","Promise","resolve","reject","getSession","err","result","console","debug","JSON","stringify","credentials","accessToken","jwtToken","idToken","refreshToken","token","user","userName","payload","name","email","picture","Error","href","auth","userhandler","onSuccess","onFailure","parseCognitoWebResponse","signOut","Callback","this","props","location","hash","search","initSessionFromCallbackURI","to","Component","connect","dispatch","callbackHref","cognitoUtils","then","SAY_HELLO","gql","SayHello","useQuery","loading","error","data","sayHello","message","Home","apiStatus","React","anchorEl","setAnchorEl","open","Boolean","handleClick","event","currentTarget","handleClose","Box","sx","display","alignItems","textAlign","Typography","minWidth","Tooltip","title","IconButton","onClick","size","ml","Avatar","width","height","alt","src","onClose","PaperProps","elevation","overflow","filter","mt","mr","content","position","top","right","bgcolor","transform","zIndex","transformOrigin","horizontal","vertical","anchorOrigin","MenuItem","e","preventDefault","ListItemIcon","Login","fontSize","Navigation","List","map","text","index","ListItem","button","ListItemText","primary","drawerWidth","openedMixin","theme","transition","transitions","create","easing","sharp","duration","enteringScreen","overflowX","closedMixin","leavingScreen","spacing","breakpoints","up","DrawerHeader","styled","justifyContent","padding","mixins","toolbar","AppBar","MuiAppBar","shouldForwardProp","prop","drawer","marginLeft","Drawer","MuiDrawer","flexShrink","whiteSpace","boxSizing","Layout","children","useTheme","setOpen","CssBaseline","Toolbar","color","aria-label","edge","marginRight","variant","noWrap","component","xs","sm","flexGrow","direction","Divider","p","history","createBrowserHistory","createTheme","palette","main","light","dark","contrastText","background","paper","httpLink","HttpLink","uri","apiUri","authLink","ApolloLink","operation","forward","setContext","headers","authorization","client","ApolloClient","link","concat","cache","InMemoryCache","fetchOptions","mode","ApolloProvider","ThemeProvider","exact","path","ReactDOM","render","document","getElementById"],"mappings":"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","file":"static/js/main.84a247a4.chunk.js","sourcesContent":["export const CLEAR_SESSION = 'CLEAR_SESSION'\r\nexport const SET_SESSION = 'SET_SESSION'","import { CLEAR_SESSION, SET_SESSION } from '../constants/actionTypes'\r\n\r\nconst initialState = {\r\n isLoggedIn: false\r\n}\r\n\r\nconst session = (state = initialState, action) => {\r\n switch (action.type) {\r\n case SET_SESSION:\r\n return Object.assign({},\r\n action.session,\r\n { isLoggedIn: true })\r\n\r\n case CLEAR_SESSION:\r\n return initialState\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default session","import { combineReducers } from 'redux'\r\nimport session from './session'\r\n\r\nexport default combineReducers({\r\n session\r\n})","import { createStore, applyMiddleware, compose } from 'redux'\r\nimport rootReducer from '../reducers'\r\nimport thunk from 'redux-thunk'\r\n\r\nconst storeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose\r\n\r\nconst store = createStore(rootReducer,\r\n storeEnhancers(applyMiddleware(thunk))\r\n)\r\n\r\nexport default store","import { CognitoAuth } from 'amazon-cognito-auth-js/dist/amazon-cognito-auth'\r\nimport { CognitoUserPool } from 'amazon-cognito-identity-js'\r\nimport { config as AWSConfig } from 'aws-sdk'\r\nimport appConfig from '../config/app-config.json'\r\n\r\nAWSConfig.region = appConfig.region\r\n\r\n// Creates a CognitoAuth instance\r\nconst createCognitoAuth = () => {\r\n const appWebDomain = appConfig.userPoolBaseUri.replace('https://', '').replace('http://', '')\r\n const auth = new CognitoAuth({\r\n UserPoolId: appConfig.userPool,\r\n ClientId: appConfig.clientId,\r\n AppWebDomain: appWebDomain,\r\n TokenScopesArray: appConfig.tokenScopes,\r\n RedirectUriSignIn: appConfig.callbackUri,\r\n RedirectUriSignOut: appConfig.signoutUri\r\n })\r\n return auth\r\n}\r\n\r\n// Creates a CognitoUser instance\r\nconst createCognitoUser = () => {\r\n const pool = createCognitoUserPool()\r\n return pool.getCurrentUser()\r\n}\r\n\r\n// Creates a CognitoUserPool instance\r\nconst createCognitoUserPool = () => new CognitoUserPool({\r\n UserPoolId: appConfig.userPool,\r\n ClientId: appConfig.clientId\r\n})\r\n\r\n// Get the URI of the hosted sign in screen\r\nconst getCognitoSignInUri = () => {\r\n const signinUri = `${appConfig.userPoolBaseUri}/login?response_type=code&client_id=${appConfig.clientId}&redirect_uri=${appConfig.callbackUri}`\r\n return signinUri\r\n}\r\n\r\n// Parse the response from a Cognito callback URI (assumed a token or code is in the supplied href). Returns a promise.\r\nconst parseCognitoWebResponse = (href) => {\r\n return new Promise((resolve, reject) => {\r\n const auth = createCognitoAuth()\r\n\r\n // userHandler will trigger the promise\r\n auth.userhandler = {\r\n onSuccess: function (result) {\r\n resolve(result)\r\n },\r\n onFailure: function (err) {\r\n reject(new Error('Failure parsing Cognito web response: ' + err))\r\n }\r\n }\r\n auth.parseCognitoWebResponse(href)\r\n })\r\n}\r\n\r\n// Gets a new Cognito session. Returns a promise.\r\nconst getCognitoSession = () => {\r\n return new Promise((resolve, reject) => {\r\n const cognitoUser = createCognitoUser()\r\n cognitoUser.getSession((err, result) => {\r\n if (err || !result) {\r\n reject(new Error('Failure getting Cognito session: ' + err))\r\n return\r\n }\r\n\r\n // Resolve the promise with the session credentials\r\n console.debug('Successfully got session: ' + JSON.stringify(result))\r\n const session = {\r\n credentials: {\r\n accessToken: result.accessToken.jwtToken,\r\n idToken: result.idToken.jwtToken,\r\n refreshToken: result.refreshToken.token\r\n },\r\n user: {\r\n userName: result.idToken.payload['cognito:username'],\r\n name: result.idToken.payload.name,\r\n email: result.idToken.payload.email,\r\n picture: result.idToken.payload.picture\r\n }\r\n }\r\n resolve(session)\r\n })\r\n })\r\n}\r\n\r\n// Sign out of the current session (will redirect to signout URI)\r\nconst signOutCognitoSession = () => {\r\n const auth = createCognitoAuth()\r\n auth.signOut()\r\n}\r\n\r\nexport default {\r\n createCognitoAuth,\r\n createCognitoUser,\r\n createCognitoUserPool,\r\n getCognitoSession,\r\n getCognitoSignInUri,\r\n parseCognitoWebResponse,\r\n signOutCognitoSession\r\n}","import { CLEAR_SESSION, SET_SESSION } from '../constants/actionTypes'\r\nimport cognitoUtils from '../lib/cognitoUtils'\r\n\r\nexport const clearSession = () => ({\r\n type: CLEAR_SESSION\r\n})\r\n\r\n// Initialise the Cognito sesson from a callback href\r\nexport function initSessionFromCallbackURI (callbackHref) {\r\n return function (dispatch) {\r\n return cognitoUtils.parseCognitoWebResponse(callbackHref) // parse the callback URL\r\n .then(() => cognitoUtils.getCognitoSession()) // get a new session\r\n .then((session) => {\r\n dispatch({ type: SET_SESSION, session })\r\n })\r\n }\r\n}\r\n\r\nexport const setSession = session => ({\r\n type: SET_SESSION,\r\n session\r\n})","import React, { Component } from 'react'\r\nimport { Redirect } from 'react-router-dom'\r\nimport { connect } from 'react-redux'\r\nimport { initSessionFromCallbackURI } from '../actions/session'\r\n\r\nfunction mapStateToProps (state) {\r\n return { session: state.session }\r\n}\r\nfunction mapDispatchToProps (dispatch) {\r\n return {\r\n initSessionFromCallbackURI: href => dispatch(initSessionFromCallbackURI(href))\r\n }\r\n}\r\n\r\n/**\r\n Callback route used after a successful Cognito sign-in. The window URL will contain the code we can\r\n use to get a Cognito session, which includes JWT tokens etc\r\n */\r\nclass Callback extends Component {\r\n // If a Cognito auth code is in the URL (could be a hash or query component), init the new session\r\n componentDidMount () {\r\n if (this.props.location.hash || this.props.location.search) {\r\n this.props.initSessionFromCallbackURI(window.location.href)\r\n }\r\n }\r\n\r\n render () {\r\n // If there's no auth code in the URL or we're now logged into, redirect to the root page\r\n if ((!this.props.location.hash && !this.props.location.search) || this.props.session.isLoggedIn) {\r\n return
Loading...
;\r\n if (error) returnError :(
;\r\n return (\r\n\r\n {data.sayHello.message}\r\n
\r\n