{"version":3,"sources":["components/api-authorization/ApiAuthorizationConstants.js","components/api-authorization/AuthorizeService.js","components/api-authorization/LoginMenu.js","components/NavMenu.js","components/Layout.js","components/PriceAction.js","components/api-authorization/AuthorizeRoute.js","components/api-authorization/Login.js","components/api-authorization/Logout.js","components/api-authorization/ApiAuthorizationRoutes.js","App.js","serviceWorkerRegistration.js","reportWebVitals.js","index.js"],"names":["ApplicationName","QueryParameterNames","LogoutActions","LoginActions","prefix","ApplicationPaths","DefaultLoginRedirectPath","ApiAuthorizationClientConfigurationUrl","ApiAuthorizationPrefix","Login","LoginFailed","LoginCallback","Register","Profile","LogOut","LoggedOut","LogOutCallback","IdentityRegisterPath","IdentityManagePath","AuthorizeService","_callbacks","_nextSubscriptionId","_user","_isAuthenticated","_popUpDisabled","a","this","getUser","user","profile","ensureUserManagerInitialized","userManager","access_token","state","signinSilent","createArguments","silentUser","updateState","success","console","log","Error","signinPopup","popUpUser","message","error","signinRedirect","redirect","url","signinCallback","signoutPopup","undefined","signoutRedirect","signoutCallback","response","data","notifySubscribers","callback","push","subscription","subscriptionId","subscriptionIndex","map","element","index","found","filter","length","splice","i","useReplaceToNavigate","status","AuthenticationResultStatus","Fail","Success","Redirect","fetch","ok","json","settings","automaticSilentRenew","includeIdTokenInSilentRenew","userStore","WebStorageStateStore","UserManager","events","addUserSignedOut","removeUser","authService","LoginMenu","props","isAuthenticated","userName","_subscription","subscribe","populateState","unsubscribe","Promise","all","setState","name","profilePath","logoutPath","pathname","local","authenticatedView","registerPath","loginPath","anonymousView","NavItem","NavLink","tag","Link","className","to","Component","NavMenu","toggleNavbar","bind","collapsed","Navbar","light","Container","NavbarBrand","NavbarToggler","onClick","Collapse","isOpen","navbar","displayName","Layout","fluid","children","PriceAction","prices","exchanges","loading","populatePriceData","populateExchangeData","contents","ex","id","exchange","renderPriceActionTable","p","exchangeId","priceDiff24BeforeAndAdded","reduce","totalPrice","price","priceDiffAddedAnd24After","priceDiffAddedAnd48After","priceDiffAddedAnd72After","priceDiffAddedAnd96After","priceDiffAddedAnd120After","getAccessToken","token","headers","beforeAndAddAvg","addAnd24HrAvg","addAnd48HrAvg","addAnd72HrAvg","addAnd96HrAvg","addAnd120HrAvg","labelledby","symbol","price24HoursBefore","style","color","priceWhenAdded","price24AfterHours","price48AfterHours","price72AfterHours","price96AfterHours","price120AfterHours","isNaN","Math","round","Number","EPSILON","AuthorizeRoute","ready","authenticated","authenticationChanged","populateAuthenticationState","link","document","createElement","href","path","returnUrl","protocol","host","search","hash","redirectUrl","encodeURIComponent","component","rest","render","action","login","getReturnUrl","processLoginCallback","URLSearchParams","window","location","get","redirectToProfile","redirectToRegister","signIn","result","navigateToReturnUrl","completeSignIn","fromQuery","startsWith","origin","redirectToApiAuthorizationPath","encodeURI","apiAuthorizationPath","replace","Logout","isReady","history","logout","processLogoutCallback","signOut","completeSignOut","ApiAuthorizationRoutes","loginAction","logoutAction","App","exact","Boolean","hostname","match","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","baseUrl","getElementsByTagName","getAttribute","rootElement","getElementById","ReactDOM","basename","navigator","serviceWorker","registration","unregister","catch"],"mappings":"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","file":"static/js/main.2ad43a28.chunk.js","sourcesContent":["export const ApplicationName = 'CryptoView';\n\nexport const QueryParameterNames = {\n ReturnUrl: 'returnUrl',\n Message: 'message'\n};\n\nexport const LogoutActions = {\n LogoutCallback: 'logout-callback',\n Logout: 'logout',\n LoggedOut: 'logged-out'\n};\n\nexport const LoginActions = {\n Login: 'login',\n LoginCallback: 'login-callback',\n LoginFailed: 'login-failed',\n Profile: 'profile',\n Register: 'register'\n};\n\nconst prefix = '/authentication';\n\nexport const ApplicationPaths = {\n DefaultLoginRedirectPath: '/',\n ApiAuthorizationClientConfigurationUrl: `_configuration/${ApplicationName}`,\n ApiAuthorizationPrefix: prefix,\n Login: `${prefix}/${LoginActions.Login}`,\n LoginFailed: `${prefix}/${LoginActions.LoginFailed}`,\n LoginCallback: `${prefix}/${LoginActions.LoginCallback}`,\n Register: `${prefix}/${LoginActions.Register}`,\n Profile: `${prefix}/${LoginActions.Profile}`,\n LogOut: `${prefix}/${LogoutActions.Logout}`,\n LoggedOut: `${prefix}/${LogoutActions.LoggedOut}`,\n LogOutCallback: `${prefix}/${LogoutActions.LogoutCallback}`,\n IdentityRegisterPath: 'Identity/Account/Register',\n IdentityManagePath: 'Identity/Account/Manage'\n};\n","import { UserManager, WebStorageStateStore } from 'oidc-client';\nimport { ApplicationPaths, ApplicationName } from './ApiAuthorizationConstants';\n\nexport class AuthorizeService {\n _callbacks = [];\n _nextSubscriptionId = 0;\n _user = null;\n _isAuthenticated = false;\n\n // By default pop ups are disabled because they don't work properly on Edge.\n // If you want to enable pop up authentication simply set this flag to false.\n _popUpDisabled = true;\n\n async isAuthenticated() {\n const user = await this.getUser();\n return !!user;\n }\n\n async getUser() {\n if (this._user && this._user.profile) {\n return this._user.profile;\n }\n\n await this.ensureUserManagerInitialized();\n const user = await this.userManager.getUser();\n return user && user.profile;\n }\n\n async getAccessToken() {\n await this.ensureUserManagerInitialized();\n const user = await this.userManager.getUser();\n return user && user.access_token;\n }\n\n // We try to authenticate the user in three different ways:\n // 1) We try to see if we can authenticate the user silently. This happens\n // when the user is already logged in on the IdP and is done using a hidden iframe\n // on the client.\n // 2) We try to authenticate the user using a PopUp Window. This might fail if there is a\n // Pop-Up blocker or the user has disabled PopUps.\n // 3) If the two methods above fail, we redirect the browser to the IdP to perform a traditional\n // redirect flow.\n async signIn(state) {\n await this.ensureUserManagerInitialized();\n try {\n const silentUser = await this.userManager.signinSilent(this.createArguments());\n this.updateState(silentUser);\n return this.success(state);\n } catch (silentError) {\n // User might not be authenticated, fallback to popup authentication\n console.log(\"Silent authentication error: \", silentError);\n\n try {\n if (this._popUpDisabled) {\n throw new Error('Popup disabled. Change \\'AuthorizeService.js:AuthorizeService._popupDisabled\\' to false to enable it.')\n }\n\n const popUpUser = await this.userManager.signinPopup(this.createArguments());\n this.updateState(popUpUser);\n return this.success(state);\n } catch (popUpError) {\n if (popUpError.message === \"Popup window closed\") {\n // The user explicitly cancelled the login action by closing an opened popup.\n return this.error(\"The user closed the window.\");\n } else if (!this._popUpDisabled) {\n console.log(\"Popup authentication error: \", popUpError);\n }\n\n // PopUps might be blocked by the user, fallback to redirect\n try {\n await this.userManager.signinRedirect(this.createArguments(state));\n return this.redirect();\n } catch (redirectError) {\n console.log(\"Redirect authentication error: \", redirectError);\n return this.error(redirectError);\n }\n }\n }\n }\n\n async completeSignIn(url) {\n try {\n await this.ensureUserManagerInitialized();\n const user = await this.userManager.signinCallback(url);\n this.updateState(user);\n return this.success(user && user.state);\n } catch (error) {\n console.log('There was an error signing in: ', error);\n return this.error('There was an error signing in.');\n }\n }\n\n // We try to sign out the user in two different ways:\n // 1) We try to do a sign-out using a PopUp Window. This might fail if there is a\n // Pop-Up blocker or the user has disabled PopUps.\n // 2) If the method above fails, we redirect the browser to the IdP to perform a traditional\n // post logout redirect flow.\n async signOut(state) {\n await this.ensureUserManagerInitialized();\n try {\n if (this._popUpDisabled) {\n throw new Error('Popup disabled. Change \\'AuthorizeService.js:AuthorizeService._popupDisabled\\' to false to enable it.')\n }\n\n await this.userManager.signoutPopup(this.createArguments());\n this.updateState(undefined);\n return this.success(state);\n } catch (popupSignOutError) {\n console.log(\"Popup signout error: \", popupSignOutError);\n try {\n await this.userManager.signoutRedirect(this.createArguments(state));\n return this.redirect();\n } catch (redirectSignOutError) {\n console.log(\"Redirect signout error: \", redirectSignOutError);\n return this.error(redirectSignOutError);\n }\n }\n }\n\n async completeSignOut(url) {\n await this.ensureUserManagerInitialized();\n try {\n const response = await this.userManager.signoutCallback(url);\n this.updateState(null);\n return this.success(response && response.data);\n } catch (error) {\n console.log(`There was an error trying to log out '${error}'.`);\n return this.error(error);\n }\n }\n\n updateState(user) {\n this._user = user;\n this._isAuthenticated = !!this._user;\n this.notifySubscribers();\n }\n\n subscribe(callback) {\n this._callbacks.push({ callback, subscription: this._nextSubscriptionId++ });\n return this._nextSubscriptionId - 1;\n }\n\n unsubscribe(subscriptionId) {\n const subscriptionIndex = this._callbacks\n .map((element, index) => element.subscription === subscriptionId ? { found: true, index } : { found: false })\n .filter(element => element.found === true);\n if (subscriptionIndex.length !== 1) {\n throw new Error(`Found an invalid number of subscriptions ${subscriptionIndex.length}`);\n }\n\n this._callbacks.splice(subscriptionIndex[0].index, 1);\n }\n\n notifySubscribers() {\n for (let i = 0; i < this._callbacks.length; i++) {\n const callback = this._callbacks[i].callback;\n callback();\n }\n }\n\n createArguments(state) {\n return { useReplaceToNavigate: true, data: state };\n }\n\n error(message) {\n return { status: AuthenticationResultStatus.Fail, message };\n }\n\n success(state) {\n return { status: AuthenticationResultStatus.Success, state };\n }\n\n redirect() {\n return { status: AuthenticationResultStatus.Redirect };\n }\n\n async ensureUserManagerInitialized() {\n if (this.userManager !== undefined) {\n return;\n }\n\n let response = await fetch(ApplicationPaths.ApiAuthorizationClientConfigurationUrl);\n if (!response.ok) {\n throw new Error(`Could not load settings for '${ApplicationName}'`);\n }\n\n let settings = await response.json();\n settings.automaticSilentRenew = true;\n settings.includeIdTokenInSilentRenew = true;\n settings.userStore = new WebStorageStateStore({\n prefix: ApplicationName\n });\n\n this.userManager = new UserManager(settings);\n\n this.userManager.events.addUserSignedOut(async () => {\n await this.userManager.removeUser();\n this.updateState(undefined);\n });\n }\n\n static get instance() { return authService }\n}\n\nconst authService = new AuthorizeService();\n\nexport default authService;\n\nexport const AuthenticationResultStatus = {\n Redirect: 'redirect',\n Success: 'success',\n Fail: 'fail'\n};\n","import React, { Component, Fragment } from 'react';\nimport { NavItem, NavLink } from 'reactstrap';\nimport { Link } from 'react-router-dom';\nimport authService from './AuthorizeService';\nimport { ApplicationPaths } from './ApiAuthorizationConstants';\n\nexport class LoginMenu extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n isAuthenticated: false,\n userName: null\n };\n }\n\n componentDidMount() {\n this._subscription = authService.subscribe(() => this.populateState());\n this.populateState();\n }\n\n componentWillUnmount() {\n authService.unsubscribe(this._subscription);\n }\n\n async populateState() {\n const [isAuthenticated, user] = await Promise.all([authService.isAuthenticated(), authService.getUser()])\n this.setState({\n isAuthenticated,\n userName: user && user.name\n });\n }\n\n render() {\n const { isAuthenticated, userName } = this.state;\n if (!isAuthenticated) {\n const registerPath = `${ApplicationPaths.Register}`;\n const loginPath = `${ApplicationPaths.Login}`;\n return this.anonymousView(registerPath, loginPath);\n } else {\n const profilePath = `${ApplicationPaths.Profile}`;\n const logoutPath = { pathname: `${ApplicationPaths.LogOut}`, state: { local: true } };\n return this.authenticatedView(userName, profilePath, logoutPath);\n }\n }\n\n authenticatedView(userName, profilePath, logoutPath) {\n return (\n
\n
Symbol | \n24 Hrs before | \n\n | Price when listed | \n\n | 24 Hrs | \n\n | 48 Hrs | \n\n | 72 Hrs | \n\n | 96 Hrs | \n\n | 120 Hrs | \n
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
{price.symbol} | \n${price.price24HoursBefore} | \n0 ? \"green\" : \"red\" }}>{price.priceDiff24BeforeAndAdded}% | \n${price.priceWhenAdded} | \n0 ? \"green\" : \"red\" }}>{price.price24AfterHours !== 0 && price.price24AfterHours !== null ? price.priceDiffAddedAnd24After + \"%\" : \"\"} | \n{price.price24AfterHours !== 0 && price.price24AfterHours !== null ? \"$\" + price.price24AfterHours : \"\"} | \n0 ? \"green\" : \"red\" }}>{price.price48AfterHours !== 0 && price.price48AfterHours !== null ? price.priceDiffAddedAnd48After + \"%\" : \"\"} | \n{price.price48AfterHours !== 0 && price.price48AfterHours !== null ? \"$\" + price.price48AfterHours : \"\"} | \n0 ? \"green\" : \"red\" }}>{price.price72AfterHours !== 0 && price.price72AfterHours !== null ? price.priceDiffAddedAnd72After + \"%\" : \"\"} | \n{price.price72AfterHours !== 0 && price.price72AfterHours !== null ? \"$\" + price.price72AfterHours : \"\"} | \n0 ? \"green\" : \"red\" }}>{price.price96AfterHours !== 0 && price.price96AfterHours !== null ? price.priceDiffAddedAnd96After + \"%\" : \"\"} | \n{price.price96AfterHours !== 0 && price.price96AfterHours !== null ? \"$\" + price.price96AfterHours : \"\"} | \n0 ? \"green\" : \"red\" }}>{price.price120AfterHours !== 0 && price.price120AfterHours !== null ? price.priceDiffAddedAnd120After + \"%\" : \"\"} | \n{price.price120AfterHours !== 0 && price.price120AfterHours !== null ? \"$\" + price.price120AfterHours : \"\"} | \n
Average: | \n\n | 0 ? \"green\" : \"red\" }}>{isNaN(beforeAndAddAvg) ? \"\" : Math.round((beforeAndAddAvg + Number.EPSILON) * 100) / 100 + \"%\"} | \n\n | 0 ? \"green\" : \"red\" }}>{isNaN(addAnd24HrAvg) ? \"\" : Math.round((addAnd24HrAvg + Number.EPSILON) * 100) / 100 + \"%\"} | \n\n | 0 ? \"green\" : \"red\" }}>{isNaN(addAnd48HrAvg) ? \"\" : Math.round((addAnd48HrAvg + Number.EPSILON) * 100) / 100 + \"%\"} | \n\n | 0 ? \"green\" : \"red\" }}>{isNaN(addAnd72HrAvg) ? \"\" : Math.round((addAnd72HrAvg + Number.EPSILON) * 100) / 100 + \"%\"} | \n\n | 0 ? \"green\" : \"red\" }}>{isNaN(addAnd96HrAvg) ? \"\" : Math.round((addAnd96HrAvg + Number.EPSILON) * 100) / 100 + \"%\"} | \n\n | 0 ? \"green\" : \"red\" }}>{isNaN(addAnd120HrAvg) ? \"\" : Math.round((addAnd120HrAvg + Number.EPSILON) * 100) / 100 + \"%\"} | \n
Loading...
\n :\n this.state.exchanges\n .filter(ex => ex.id !== 1)\n .map(exchange =>\n PriceAction.renderPriceActionTable(\n exchange,\n this.state.prices.filter(p => p.exchangeId === exchange.id),\n (this.state.prices.filter(p => p.exchangeId === exchange.id && p.priceDiff24BeforeAndAdded !== 0).reduce((totalPrice, price) => totalPrice + price.priceDiff24BeforeAndAdded, 0) / this.state.prices.filter(p => p.exchangeId === exchange.id && p.priceDiff24BeforeAndAdded !== 0).length),\n (this.state.prices.filter(p => p.exchangeId === exchange.id && p.priceDiffAddedAnd24After !== 0).reduce((totalPrice, price) => totalPrice + price.priceDiffAddedAnd24After, 0) / this.state.prices.filter(p => p.exchangeId === exchange.id && p.priceDiffAddedAnd24After !== 0).length),\n (this.state.prices.filter(p => p.exchangeId === exchange.id && p.priceDiffAddedAnd48After !== 0).reduce((totalPrice, price) => totalPrice + price.priceDiffAddedAnd48After, 0) / this.state.prices.filter(p => p.exchangeId === exchange.id && p.priceDiffAddedAnd48After !== 0).length),\n (this.state.prices.filter(p => p.exchangeId === exchange.id && p.priceDiffAddedAnd72After !== 0).reduce((totalPrice, price) => totalPrice + price.priceDiffAddedAnd72After, 0) / this.state.prices.filter(p => p.exchangeId === exchange.id && p.priceDiffAddedAnd72After !== 0).length),\n (this.state.prices.filter(p => p.exchangeId === exchange.id && p.priceDiffAddedAnd96After !== 0).reduce((totalPrice, price) => totalPrice + price.priceDiffAddedAnd96After, 0) / this.state.prices.filter(p => p.exchangeId === exchange.id && p.priceDiffAddedAnd96After !== 0).length),\n (this.state.prices.filter(p => p.exchangeId === exchange.id && p.priceDiffAddedAnd120After !== 0).reduce((totalPrice, price) => totalPrice + price.priceDiffAddedAnd120After, 0) / this.state.prices.filter(p => p.exchangeId === exchange.id && p.priceDiffAddedAnd120After !== 0).length)\n )\n );\n\n return (\n