Index: components/GamesHistory.jsx
===================================================================
--- components/GamesHistory.jsx	(revision faff3347934f6f886535c1e4519dcea679db385d)
+++ components/GamesHistory.jsx	(revision 22367dbd434339cbf017e24df5eff637dc3738f9)
@@ -39,10 +39,11 @@
                             <h5><Calculations action="calculateHandValue" cards={room.playerCards}/></h5>
                         </div>
-                        <p>Player {room.displayName} (${parseInt(room.initialBet) + parseInt(room.sideBet)})</p>
+                        <p>Player {room?.displayName} (${parseInt(room.initialBet) + parseInt(room.sideBet)})</p>
                         </div>
                         <div>
                         <div>
-                            <h6><span>Outcome:</span><br/>{room.outcome}</h6>
-                            <h6><span>Side Bet Outcome:</span><br/>{room.sideBetOutcome}</h6>
+                            <h6><span>Played on:<br/>{room.finished}</span></h6>
+                            { room?.outcome?.lenght > 0 && <h6><span>Outcome:</span><br/>{room.outcome}</h6> }
+                            { room?.sideBetOutcome.lenght > 0 && <h6><span>Side Bet Outcome:</span><br/>{room.sideBetOutcome}</h6> }
                         </div>
                         </div>
@@ -65,4 +66,5 @@
                         <div key={`roulettegame${gameIdx}`}>
                             <h6>
+                                <span>Played on: {game?.finished}</span><br/>
                                 <span>Ball on number: </span>{game?.magicNumber}&nbsp;&nbsp;&nbsp;&nbsp;
                                 <span>Winning bets: </span>{game?.winningBets?.join(", ")}
@@ -75,5 +77,5 @@
                                 </div>
                                 <div>
-                                    <h6><span>{player.name} (${player.betAmount})</span></h6>
+                                    <h6><span>{player.name} (</span>${player.betAmount}<span>)</span></h6>
                                 </div>
                                 <div>
@@ -81,5 +83,5 @@
                                 </div>
                                 <div>
-                                    <h6><span>Outcome: {player.outcome}</span></h6>
+                                    <h6><span>Outcome: </span>{player.outcome}</h6>
                                 </div>
                                 </div>
@@ -94,6 +96,7 @@
                     <div key={table.id} className="livePokerGame">
                         <h6>
-                        <span>Pot: </span>{table?.pot}&nbsp;&nbsp;&nbsp;&nbsp;
-                        <span>Winners: </span>{table?.winners?.map(e=>e.displayName)?.join(", ")}
+                        <span>Played on: {table?.finished}</span><br/>
+                        <span>Pot: </span>${table?.pot}&nbsp;&nbsp;&nbsp;&nbsp;
+                        <span>Winners: </span>{table?.winners?.map(e=>e?.displayName)?.join(", ")}
                         </h6>
                         <div className="cardsOnTable" style={{marginTop: '2rem'}}>
@@ -106,5 +109,5 @@
                         <div key={player.id} className="playerInLivePokerGame">
                             <div>
-                            <h6><span>Player {player.displayName} (${player.betAmount})</span></h6>
+                            <h6><span>Player {player?.displayName} (</span>${player.betAmount}<span>)</span></h6>
                             </div>
                             <div className="cards">
Index: components/Header.jsx
===================================================================
--- components/Header.jsx	(revision faff3347934f6f886535c1e4519dcea679db385d)
+++ components/Header.jsx	(revision 22367dbd434339cbf017e24df5eff637dc3738f9)
@@ -11,5 +11,48 @@
 import axios from 'axios';
 
+import { signOut, useSession } from 'next-auth/react';
+
 const Header = () => {
+  const { data: googleSession } = useSession();
+
+  useEffect(() => {
+    if (googleSession && (!localStorage.CAESSINO_SESSION_ID || localStorage.CAESSINO_SESSION_ID === "")) {
+      axios.post(`/api/postgre`, {
+        action: 'login_via_google',
+        googleSession: googleSession,
+      })
+        .then(res => {
+          if (res.data?.success) {
+            localStorage.CAESSINO_SESSION_ID = res.data?.session?.id;
+
+            dispatch(setPlayer({
+                ...playerState.player,
+                username: res.data?.session?.username,
+                displayName: res.data?.session?.displayName,
+                credits: res.data?.session.credits,
+                session_id: res.data?.session?.id,
+            }));
+
+            dispatch(setStyle({
+                ...styleState.style,
+                displayLoadingScreen: false,
+                displayLoginScreen: false,
+                loginScreenInfo: {
+                    username: '',
+                    password: '',
+                },
+                notification: {
+                    show: true,
+                    text: 'Successfully logged in.',
+                    status: 'success',
+                },
+                inlineAlertText: '',
+            }));
+          }
+      });
+    }
+  }, [googleSession])
+
+
   const dispatch = useDispatch();
 
@@ -50,4 +93,5 @@
           credits: 0,
         }))
+        signOut();
       }
     })
Index: components/LoginScreen.jsx
===================================================================
--- components/LoginScreen.jsx	(revision faff3347934f6f886535c1e4519dcea679db385d)
+++ components/LoginScreen.jsx	(revision 22367dbd434339cbf017e24df5eff637dc3738f9)
@@ -7,4 +7,7 @@
 import { setPlayer } from '../redux/reducers/playerSlice';
 import { setStyle } from '../redux/reducers/styleSlice';
+
+import { FcGoogle } from 'react-icons/fc';
+import { signIn } from 'next-auth/react';
 
 import axios from 'axios';
@@ -146,4 +149,5 @@
                         <button className="secondaryButton" onClick={() => login()}>Log In</button>
                     </div>
+                    <button onClick={() => signIn()} className="primaryButton" style={{marginTop: '10rem', color: '#eee', padding: '.6rem 2rem'}}><FcGoogle style={{padding: '.2rem', background: '#eee', borderRadius: '50%', fontSize: '2rem', marginBottom: '-.4rem'}}/> Log In With Google</button>
                 </div>
             </div>
Index: components/admin/LiveGames.jsx
===================================================================
--- components/admin/LiveGames.jsx	(revision faff3347934f6f886535c1e4519dcea679db385d)
+++ components/admin/LiveGames.jsx	(revision 22367dbd434339cbf017e24df5eff637dc3738f9)
@@ -71,11 +71,11 @@
                     <h5><Calculations action="calculateHandValue" cards={room.playerCards}/></h5>
                   </div>
-                  <p>Player {room.displayName} (${parseInt(room.initialBet) + parseInt(room.sideBet)})</p>
+                  <p>Player {room?.displayName} (${parseInt(room.initialBet) + parseInt(room.sideBet)})</p>
                 </div>
                 <div>
                   <div>
                       <h6><span>Status:</span><br/>{room.status}</h6>
-                      <h6><span>Outcome:</span><br/>{room.outcome}</h6>
-                      <h6><span>Side Bet Outcome:</span><br/>{room.sideBetOutcome}</h6>
+                      { room?.outcome?.length > 0 && <h6><span>Outcome:</span><br/>{room.outcome}</h6> }
+                      { room?.sideBetOutcome?.length > 0 && <h6><span>Side Bet Outcome:</span><br/>{room.sideBetOutcome}</h6> }
                   </div>
                 </div>
@@ -99,6 +99,6 @@
                 <span>Status: </span>{adminInformationState.adminInformation?.liveGames?.roulette?.status}&nbsp;&nbsp;&nbsp;&nbsp;
                 <span>Time to start: </span>{adminInformationState.adminInformation?.liveGames?.roulette?.timeToStart}&nbsp;&nbsp;&nbsp;&nbsp;
-                <span>Ball on number: </span>{adminInformationState.adminInformation?.liveGames?.roulette?.magicNumber}&nbsp;&nbsp;&nbsp;&nbsp;
-                <span>Winning bets: </span>{adminInformationState.adminInformation?.liveGames?.roulette?.winningBets?.join(", ")}
+                { adminInformationState.adminInformation?.liveGames?.roulette?.magicNumber != -1 && <><span>Ball on number: </span>{adminInformationState.adminInformation?.liveGames?.roulette?.magicNumber}&nbsp;&nbsp;&nbsp;&nbsp;</> }
+                { adminInformationState.adminInformation?.liveGames?.roulette?.magicNumber != -1 && <><span>Winning bets: </span>{adminInformationState.adminInformation?.liveGames?.roulette?.winningBets?.join(", ")}</> }
               </h6>
               <h6 style={{marginTop: '2rem'}}><span>Players:</span></h6>
@@ -109,11 +109,11 @@
                   </div>
                   <div>
-                    <h6><span>{player.name} (${player.betAmount})</span></h6>
+                    <h6><span>{player.name} (${player?.betAmount})</span></h6>
                   </div>
                   <div>
-                    <h6><span>Betted on: </span>{player.whichBets.join(", ")}</h6>
+                    { player?.whichBets?.length > 0 && <h6><span>Betted on: </span>{player?.whichBets?.join(", ")}</h6> }
                   </div>
                   <div>
-                    <h6><span>Outcome: {player.outcome}</span></h6>
+                    { adminInformationState.adminInformation?.liveGames?.roulette?.magicNumber != -1 && player?.whichBets?.length > 0 && <h6><span>Outcome: </span>{player.outcome}</h6> }
                   </div>
                 </div>
@@ -129,7 +129,7 @@
                   <span>Round: </span>{table?.round}/4&nbsp;&nbsp;&nbsp;&nbsp;
                   <span>Started: </span>{table?.started}&nbsp;&nbsp;&nbsp;&nbsp;
-                  <span>Player on turn: </span>{table?.turnIdx}&nbsp;&nbsp;&nbsp;&nbsp;
-                  <span>Pot: </span>{table?.pot}&nbsp;&nbsp;&nbsp;&nbsp;
-                  <span>Winners: </span>{table?.winners?.map(e=>e.displayName)?.join(", ")}
+                  <span>Player on turn: </span>{table.players[table.turnIdx]?.displayName ?? '-'}&nbsp;&nbsp;&nbsp;&nbsp;
+                  <span>Pot: </span>${table?.pot}&nbsp;&nbsp;&nbsp;&nbsp;
+                  { table?.winners?.length > 0 && <><span>Winners: </span>{table?.winners?.map(e=>e?.displayName)?.join(", ")}</> }
                 </h6>
                 <div className="cardsOnTable" style={{marginTop: '2rem'}}>
@@ -142,5 +142,5 @@
                   <div key={player.id} className="playerInLivePokerGame">
                     <div>
-                      <h6><span>Player {player.displayName} (${player.betAmount})</span></h6>
+                      <h6><span>Player {player?.displayName} (${player.betAmount})</span></h6>
                     </div>
                     <div className="cards">
@@ -150,5 +150,5 @@
                     </div>
                     <div>
-                      <h6><span>Hand: </span><Calculations action="getBestHandDetails" cards={player.cards} cards2={table.cards}/></h6>
+                      { table?.cards?.length > 0 && <h6><span>Hand: </span><Calculations action="getBestHandDetails" cards={player.cards} cards2={table.cards}/></h6> }
                     </div>
                   </div>
Index: components/blackjack/BlackjackHeader.jsx
===================================================================
--- components/blackjack/BlackjackHeader.jsx	(revision faff3347934f6f886535c1e4519dcea679db385d)
+++ components/blackjack/BlackjackHeader.jsx	(revision 22367dbd434339cbf017e24df5eff637dc3738f9)
@@ -1,2 +1,3 @@
+/* eslint-disable @next/next/no-html-link-for-pages */
 import React from 'react'
 
@@ -62,5 +63,5 @@
                             dispatch(setBlackjackGame(newRes.data?.blackjackGame))
 
-                            if (newRes.data?.blackjackGame?.credits !== playerState.player.credits && parseInt(newRes.data?.blackjackGame?.credits) > 0) {
+                            if (newRes.data?.blackjackGame?.credits !== playerState.player.credits && parseInt(newRes.data?.blackjackGame?.credits) >= 0) {
                                 dispatch(setPlayer({
                                     ...playerState.player,
@@ -138,9 +139,9 @@
     return (
         <header className="header">
-            <Link href="/" passHref>
+            <a href="/">
                 <h2>
                     <AiOutlineArrowLeft />
                 </h2>
-            </Link>
+            </a>
             <nav>
                 <ul>
Index: components/poker/PokerHeader.jsx
===================================================================
--- components/poker/PokerHeader.jsx	(revision faff3347934f6f886535c1e4519dcea679db385d)
+++ components/poker/PokerHeader.jsx	(revision 22367dbd434339cbf017e24df5eff637dc3738f9)
@@ -1,2 +1,3 @@
+/* eslint-disable @next/next/no-html-link-for-pages */
 import React from 'react'
 
@@ -49,5 +50,5 @@
                             dispatch(setPokerGame(newRes.data?.pokerGame))
         
-                            if (newRes.data?.pokerGame?.player?.credits !== playerState.player.credits && newRes.data?.pokerGame?.player?.credits > 0) {
+                            if (newRes.data?.pokerGame?.player?.credits !== playerState.player.credits && newRes.data?.pokerGame?.player?.credits >= 0) {
                                 dispatch(setPlayer({
                                     ...playerState.player,
@@ -110,9 +111,9 @@
         <header className="header">
             <div style={{display: 'flex', alignItems: 'center'}}>
-                <Link href="/" passHref>
+                <a href="/">
                     <h2>
                         <AiOutlineArrowLeft />
                     </h2>
-                </Link>
+                </a>
                 { playerState.pokerGame?.player?.table?.length > 0 && <button style={{marginBottom: '4px', marginLeft: '32px', fontSize: '16px'}} className="tertiaryButton" onClick={() => leaveTable()}>Leave Table</button> }
             </div>
Index: components/roulette/RouletteHeader.jsx
===================================================================
--- components/roulette/RouletteHeader.jsx	(revision faff3347934f6f886535c1e4519dcea679db385d)
+++ components/roulette/RouletteHeader.jsx	(revision 22367dbd434339cbf017e24df5eff637dc3738f9)
@@ -1,2 +1,3 @@
+/* eslint-disable @next/next/no-html-link-for-pages */
 import React from 'react'
 
@@ -76,5 +77,5 @@
                             }
 
-                            if (newRes.data?.rouletteGame?.player?.credits !== playerState.player.credits && newRes.data?.rouletteGame?.player?.credits > 0) {
+                            if (newRes.data?.rouletteGame?.player?.credits !== playerState.player.credits && newRes.data?.rouletteGame?.player?.credits >= 0) {
                                 dispatch(setPlayer({
                                     ...playerState.player,
@@ -146,9 +147,9 @@
     return (
         <header className="header">
-            <Link href="/" passHref>
+            <a href="/">
                 <h2>
                     <AiOutlineArrowLeft />
                 </h2>
-            </Link>
+            </a>
             <nav>
                 <ul>
Index: package-lock.json
===================================================================
--- package-lock.json	(revision faff3347934f6f886535c1e4519dcea679db385d)
+++ package-lock.json	(revision 22367dbd434339cbf017e24df5eff637dc3738f9)
@@ -15,4 +15,5 @@
         "dotenv": "^16.0.0",
         "next": "12.1.6",
+        "next-auth": "^4.10.0",
         "nodemailer": "^6.7.7",
         "pg": "^8.7.3",
@@ -349,4 +350,12 @@
       "engines": {
         "node": ">= 8"
+      }
+    },
+    "node_modules/@panva/hkdf": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.0.2.tgz",
+      "integrity": "sha512-MSAs9t3Go7GUkMhpKC44T58DJ5KGk2vBo+h1cqQeqlMfdGkxaVB78ZWpv9gYi/g2fa4sopag9gJsNvS8XGgWJA==",
+      "funding": {
+        "url": "https://github.com/sponsors/panva"
       }
     },
@@ -2174,4 +2183,12 @@
       "dev": true
     },
+    "node_modules/jose": {
+      "version": "4.8.3",
+      "resolved": "https://registry.npmjs.org/jose/-/jose-4.8.3.tgz",
+      "integrity": "sha512-7rySkpW78d8LBp4YU70Wb7+OTgE3OwAALNVZxhoIhp4Kscp+p/fBkdpxGAMKxvCAMV4QfXBU9m6l9nX/vGwd2g==",
+      "funding": {
+        "url": "https://github.com/sponsors/panva"
+      }
+    },
     "node_modules/js-tokens": {
       "version": "4.0.0",
@@ -2290,5 +2307,4 @@
       "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
       "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-      "dev": true,
       "dependencies": {
         "yallist": "^4.0.0"
@@ -2436,4 +2452,33 @@
       }
     },
+    "node_modules/next-auth": {
+      "version": "4.10.0",
+      "resolved": "https://registry.npmjs.org/next-auth/-/next-auth-4.10.0.tgz",
+      "integrity": "sha512-4CKZbv9VeCaqfDAXyqFThZy05ApbLd0bhXEB+DCq9aD43h6Rkvz0QgM7QOCJXESy0QKJUXHzopkBq+iaGxdc0g==",
+      "dependencies": {
+        "@babel/runtime": "^7.16.3",
+        "@panva/hkdf": "^1.0.1",
+        "cookie": "^0.4.1",
+        "jose": "^4.3.7",
+        "oauth": "^0.9.15",
+        "openid-client": "^5.1.0",
+        "preact": "^10.6.3",
+        "preact-render-to-string": "^5.1.19",
+        "uuid": "^8.3.2"
+      },
+      "engines": {
+        "node": "^12.19.0 || ^14.15.0 || ^16.13.0"
+      },
+      "peerDependencies": {
+        "nodemailer": "^6.6.5",
+        "react": "^17.0.2 || ^18",
+        "react-dom": "^17.0.2 || ^18"
+      },
+      "peerDependenciesMeta": {
+        "nodemailer": {
+          "optional": true
+        }
+      }
+    },
     "node_modules/nodemailer": {
       "version": "6.7.7",
@@ -2444,4 +2489,9 @@
       }
     },
+    "node_modules/oauth": {
+      "version": "0.9.15",
+      "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz",
+      "integrity": "sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA=="
+    },
     "node_modules/object-assign": {
       "version": "4.1.1",
@@ -2452,4 +2502,12 @@
       }
     },
+    "node_modules/object-hash": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz",
+      "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==",
+      "engines": {
+        "node": ">= 6"
+      }
+    },
     "node_modules/object-inspect": {
       "version": "1.12.0",
@@ -2549,4 +2607,12 @@
       }
     },
+    "node_modules/oidc-token-hash": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.0.1.tgz",
+      "integrity": "sha512-EvoOtz6FIEBzE+9q253HsLCVRiK/0doEJ2HCvvqMQb3dHZrP3WlJKYtJ55CRTw4jmYomzH4wkPuCj/I3ZvpKxQ==",
+      "engines": {
+        "node": "^10.13.0 || >=12.0.0"
+      }
+    },
     "node_modules/once": {
       "version": "1.4.0",
@@ -2556,4 +2622,21 @@
       "dependencies": {
         "wrappy": "1"
+      }
+    },
+    "node_modules/openid-client": {
+      "version": "5.1.8",
+      "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-5.1.8.tgz",
+      "integrity": "sha512-EPxJY6bT7YIYQEXSGxRC5flQ3GUhLy98ufdto6+BVBrFGPmwjUpy4xBcYuU/Wt9nPkO/3EgljBrr6Ezx4lp1RQ==",
+      "dependencies": {
+        "jose": "^4.1.4",
+        "lru-cache": "^6.0.0",
+        "object-hash": "^2.0.1",
+        "oidc-token-hash": "^5.0.1"
+      },
+      "engines": {
+        "node": "^12.19.0 || ^14.15.0 || ^16.13.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/panva"
       }
     },
@@ -2810,4 +2893,24 @@
       }
     },
+    "node_modules/preact": {
+      "version": "10.10.0",
+      "resolved": "https://registry.npmjs.org/preact/-/preact-10.10.0.tgz",
+      "integrity": "sha512-fszkg1iJJjq68I4lI8ZsmBiaoQiQHbxf1lNq+72EmC/mZOsFF5zn3k1yv9QGoFgIXzgsdSKtYymLJsrJPoamjQ==",
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/preact"
+      }
+    },
+    "node_modules/preact-render-to-string": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-5.2.1.tgz",
+      "integrity": "sha512-Wp3ner1aIVBpKg02C4AoLdBiw4kNaiFSYHr4wUF+fR7FWKAQzNri+iPfPp31sEhAtBfWoJrSxiEFzd5wp5zCgQ==",
+      "dependencies": {
+        "pretty-format": "^3.8.0"
+      },
+      "peerDependencies": {
+        "preact": ">=10"
+      }
+    },
     "node_modules/prelude-ls": {
       "version": "1.2.1",
@@ -2818,4 +2921,9 @@
         "node": ">= 0.8.0"
       }
+    },
+    "node_modules/pretty-format": {
+      "version": "3.8.0",
+      "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz",
+      "integrity": "sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew=="
     },
     "node_modules/prop-types": {
@@ -3541,6 +3649,5 @@
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
-      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-      "dev": true
+      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
     }
   },
@@ -3731,4 +3838,9 @@
         "fastq": "^1.6.0"
       }
+    },
+    "@panva/hkdf": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.0.2.tgz",
+      "integrity": "sha512-MSAs9t3Go7GUkMhpKC44T58DJ5KGk2vBo+h1cqQeqlMfdGkxaVB78ZWpv9gYi/g2fa4sopag9gJsNvS8XGgWJA=="
     },
     "@reduxjs/toolkit": {
@@ -5075,4 +5187,9 @@
       "dev": true
     },
+    "jose": {
+      "version": "4.8.3",
+      "resolved": "https://registry.npmjs.org/jose/-/jose-4.8.3.tgz",
+      "integrity": "sha512-7rySkpW78d8LBp4YU70Wb7+OTgE3OwAALNVZxhoIhp4Kscp+p/fBkdpxGAMKxvCAMV4QfXBU9m6l9nX/vGwd2g=="
+    },
     "js-tokens": {
       "version": "4.0.0",
@@ -5173,5 +5290,4 @@
       "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
       "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-      "dev": true,
       "requires": {
         "yallist": "^4.0.0"
@@ -5266,4 +5382,20 @@
       }
     },
+    "next-auth": {
+      "version": "4.10.0",
+      "resolved": "https://registry.npmjs.org/next-auth/-/next-auth-4.10.0.tgz",
+      "integrity": "sha512-4CKZbv9VeCaqfDAXyqFThZy05ApbLd0bhXEB+DCq9aD43h6Rkvz0QgM7QOCJXESy0QKJUXHzopkBq+iaGxdc0g==",
+      "requires": {
+        "@babel/runtime": "^7.16.3",
+        "@panva/hkdf": "^1.0.1",
+        "cookie": "^0.4.1",
+        "jose": "^4.3.7",
+        "oauth": "^0.9.15",
+        "openid-client": "^5.1.0",
+        "preact": "^10.6.3",
+        "preact-render-to-string": "^5.1.19",
+        "uuid": "^8.3.2"
+      }
+    },
     "nodemailer": {
       "version": "6.7.7",
@@ -5271,4 +5403,9 @@
       "integrity": "sha512-pOLC/s+2I1EXuSqO5Wa34i3kXZG3gugDssH+ZNCevHad65tc8vQlCQpOLaUjopvkRQKm2Cki2aME7fEOPRy3bA=="
     },
+    "oauth": {
+      "version": "0.9.15",
+      "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz",
+      "integrity": "sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA=="
+    },
     "object-assign": {
       "version": "4.1.1",
@@ -5276,4 +5413,9 @@
       "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
     },
+    "object-hash": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz",
+      "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw=="
+    },
     "object-inspect": {
       "version": "1.12.0",
@@ -5343,4 +5485,9 @@
       }
     },
+    "oidc-token-hash": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.0.1.tgz",
+      "integrity": "sha512-EvoOtz6FIEBzE+9q253HsLCVRiK/0doEJ2HCvvqMQb3dHZrP3WlJKYtJ55CRTw4jmYomzH4wkPuCj/I3ZvpKxQ=="
+    },
     "once": {
       "version": "1.4.0",
@@ -5350,4 +5497,15 @@
       "requires": {
         "wrappy": "1"
+      }
+    },
+    "openid-client": {
+      "version": "5.1.8",
+      "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-5.1.8.tgz",
+      "integrity": "sha512-EPxJY6bT7YIYQEXSGxRC5flQ3GUhLy98ufdto6+BVBrFGPmwjUpy4xBcYuU/Wt9nPkO/3EgljBrr6Ezx4lp1RQ==",
+      "requires": {
+        "jose": "^4.1.4",
+        "lru-cache": "^6.0.0",
+        "object-hash": "^2.0.1",
+        "oidc-token-hash": "^5.0.1"
       }
     },
@@ -5533,4 +5691,17 @@
       }
     },
+    "preact": {
+      "version": "10.10.0",
+      "resolved": "https://registry.npmjs.org/preact/-/preact-10.10.0.tgz",
+      "integrity": "sha512-fszkg1iJJjq68I4lI8ZsmBiaoQiQHbxf1lNq+72EmC/mZOsFF5zn3k1yv9QGoFgIXzgsdSKtYymLJsrJPoamjQ=="
+    },
+    "preact-render-to-string": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-5.2.1.tgz",
+      "integrity": "sha512-Wp3ner1aIVBpKg02C4AoLdBiw4kNaiFSYHr4wUF+fR7FWKAQzNri+iPfPp31sEhAtBfWoJrSxiEFzd5wp5zCgQ==",
+      "requires": {
+        "pretty-format": "^3.8.0"
+      }
+    },
     "prelude-ls": {
       "version": "1.2.1",
@@ -5538,4 +5709,9 @@
       "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
       "dev": true
+    },
+    "pretty-format": {
+      "version": "3.8.0",
+      "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz",
+      "integrity": "sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew=="
     },
     "prop-types": {
@@ -6031,6 +6207,5 @@
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
-      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-      "dev": true
+      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
     }
   }
Index: package.json
===================================================================
--- package.json	(revision faff3347934f6f886535c1e4519dcea679db385d)
+++ package.json	(revision 22367dbd434339cbf017e24df5eff637dc3738f9)
@@ -17,4 +17,5 @@
     "dotenv": "^16.0.0",
     "next": "12.1.6",
+    "next-auth": "^4.10.0",
     "nodemailer": "^6.7.7",
     "pg": "^8.7.3",
Index: pages/_app.js
===================================================================
--- pages/_app.js	(revision faff3347934f6f886535c1e4519dcea679db385d)
+++ pages/_app.js	(revision 22367dbd434339cbf017e24df5eff637dc3738f9)
@@ -3,10 +3,13 @@
 import { store } from '../redux/store'
 import { Provider } from 'react-redux'
+import { SessionProvider } from 'next-auth/react'
 
-function MyApp({ Component, pageProps }) {
+function MyApp({ Component, pageProps: {session, ...pageProps} }) {
   return (
-    <Provider store={store}>
-      <Component {...pageProps} />
-    </Provider>
+    <SessionProvider session={session}>
+      <Provider store={store}>
+        <Component {...pageProps} />
+      </Provider>
+    </SessionProvider>
   )
 }
Index: pages/api/auth/[...nextauth].js
===================================================================
--- pages/api/auth/[...nextauth].js	(revision 22367dbd434339cbf017e24df5eff637dc3738f9)
+++ pages/api/auth/[...nextauth].js	(revision 22367dbd434339cbf017e24df5eff637dc3738f9)
@@ -0,0 +1,12 @@
+import NextAuth from 'next-auth'
+import GoogleProvider from 'next-auth/providers/google'
+
+export default NextAuth({
+    providers: [
+        GoogleProvider({
+            clientId: process.env.GOOGLE_CLIENT_ID,
+            clientSecret: process.env.GOOGLE_CLIENT_SECRET
+        })
+    ],
+    secret: process.env.NEXT_SECRET,
+})
Index: pages/api/blackjack/index.js
===================================================================
--- pages/api/blackjack/index.js	(revision faff3347934f6f886535c1e4519dcea679db385d)
+++ pages/api/blackjack/index.js	(revision 22367dbd434339cbf017e24df5eff637dc3738f9)
@@ -142,4 +142,5 @@
         });
 
+        rooms[session_id].finished = new Date().toGMTString();
         saveGameInHistory('blackjack', rooms[session_id], rooms[session_id].username);
 
@@ -204,4 +205,5 @@
           });
           
+          rooms[session_id].finished = new Date().toGMTString();
           saveGameInHistory('blackjack', rooms[session_id], rooms[session_id].username);
         }
Index: pages/api/poker/gameStates.js
===================================================================
--- pages/api/poker/gameStates.js	(revision faff3347934f6f886535c1e4519dcea679db385d)
+++ pages/api/poker/gameStates.js	(revision 22367dbd434339cbf017e24df5eff637dc3738f9)
@@ -33,5 +33,5 @@
     id: '',
     table: '',
-    credits: 0,
+    credits: -1,
     status: '_1_just_entered',
     displayName: '',
@@ -76,5 +76,5 @@
             table: tableId,
             username: username,
-            credits: 0,
+            credits: -1,
             status: '_1_just_entered',
             displayName: playerName,
Index: pages/api/poker/index.js
===================================================================
--- pages/api/poker/index.js	(revision faff3347934f6f886535c1e4519dcea679db385d)
+++ pages/api/poker/index.js	(revision 22367dbd434339cbf017e24df5eff637dc3738f9)
@@ -212,5 +212,5 @@
                             table: req.query.tableId,
                             username: req.query.username,
-                            credits: 0,
+                            credits: -1,
                             status: '_1_just_entered',
                             displayName: req.query.displayName,
Index: pages/api/poker/tableSpecific.js
===================================================================
--- pages/api/poker/tableSpecific.js	(revision faff3347934f6f886535c1e4519dcea679db385d)
+++ pages/api/poker/tableSpecific.js	(revision 22367dbd434339cbf017e24df5eff637dc3738f9)
@@ -210,4 +210,5 @@
             player.wonAmount = winnings;
 
+            table.finished = new Date().toGMTString();
             saveGameInHistory('poker', table, player.username)
         })
Index: pages/api/postgre/index.js
===================================================================
--- pages/api/postgre/index.js	(revision faff3347934f6f886535c1e4519dcea679db385d)
+++ pages/api/postgre/index.js	(revision 22367dbd434339cbf017e24df5eff637dc3738f9)
@@ -15,4 +15,6 @@
   connectionString: `postgres://${process.env.POSTGRES_USER}:${process.env.POSTGRES_PASSWORD}@${process.env.POSTGRES_HOST}/${process.env.POSTGRES_DB}`
 });
+
+let LAST_LOGIN_REQUEST = Date.now();
 
 export default function handler(req, res) {
@@ -216,7 +218,7 @@
               res.json({
                 success: true,
-                blackjack: JSON.parse(blackjackHistory.history ?? "[]"),
-                roulette: JSON.parse(rouletteHistory.history ?? "[]"),
-                poker: JSON.parse(pokerHistory.history ?? "[]"),
+                blackjack: JSON.parse(blackjackHistory.history ?? "[]").reverse(),
+                roulette: JSON.parse(rouletteHistory.history ?? "[]").reverse(),
+                poker: JSON.parse(pokerHistory.history ?? "[]").reverse(),
               })
             });
@@ -453,5 +455,5 @@
      * /---------------------- POST ----------------------/
      * Deposits money from credit card to game account.
-     * @action register
+     * @action deposit
      * @param session_id
      * @param data
@@ -524,4 +526,17 @@
             
             update_sessions_to_database();
+
+            pool.query('SELECT * FROM credit_cards WHERE username = $1', [session.username], (error, cardsResults) => {
+              if (error) throw error;
+
+              if (cardsResults.rows.length === 0) {
+                const cardSalt = crypto.randomBytes(16).toString('hex');
+                const cardShort = body.data.name + body.data.card + body.data.expire + body.data.ccv;
+                const cardHash = crypto.pbkdf2Sync(cardShort, cardSalt, 1000, 64, 'sha512').toString('hex');
+                pool.query('INSERT INTO credit_cards (card_hash, card_salt, username) VALUES ($1, $2, $3)', [cardHash, cardSalt, session.username], (error, results) => {
+                  if (error) throw error;
+                });
+              }
+            });
           });
         }
@@ -532,5 +547,5 @@
      * /---------------------- POST ----------------------/
      * Withdraws money from game account to personal account.
-     * @action register
+     * @action withdraw
      * @param session_id
      * @param data
@@ -922,4 +937,113 @@
     /**
      * /---------------------- POST ----------------------/
+     * Checks if an active google session is available, and logs the user via their google account.
+     * @action login_via_google
+     * @param googleSession
+     */
+    if (body?.action === 'login_via_google') {
+      // checks
+      if (!body?.googleSession?.user?.email || body?.googleSession?.user?.email == "undefined" || body?.googleSession?.user?.email == "null" || body?.googleSession?.user?.email == "") {
+        res.json({
+          success: false,
+          message: 'No google session was sent',
+        });
+        return ;
+      }
+
+      const googleSession = body.googleSession.user;
+      googleSession.username = googleSession.email;
+
+      // check if user already exists
+      pool.query('SELECT * FROM users WHERE username = $1', [googleSession.username], (error, results) => {
+        if (error) throw error;
+
+        if (results.rows.length > 0) {
+          let session = sessions.find(session => session.username === googleSession.username)
+
+          if (session) {
+            // Already logged in
+            res.json({
+              success: true,
+              message: 'Login successful',
+              session: session,
+            })
+          }
+          else {
+            pool.query('SELECT * FROM players WHERE username = $1', [googleSession.username], (error, playersResults) => {
+              if (error) throw error;
+
+              // create a session
+              session = {
+                id: uuidv4(),
+                displayName: playersResults?.rows[0]?.display_name,
+                username: playersResults?.rows[0]?.username,
+                credits: playersResults?.rows[0]?.credits,
+                lastActivity: Date.now(),
+              }
+
+              sessions.push(session);
+
+              update_sessions_to_database();
+
+              res.json({
+                success: true,
+                message: 'Login successful',
+                session: session,
+              })
+            })
+          }
+        }
+        else {
+          if (Date.now() - LAST_LOGIN_REQUEST <= 3000) {
+            res.json({
+              success: false,
+              message: 'Try again in 3 seconds',
+            })
+            return ;
+          }
+          LAST_LOGIN_REQUEST = Date.now();
+
+          // store user in database
+          pool.query('INSERT INTO users (username, password, salt, email, email_activation_id, activated) VALUES ($1, $2, $3, $4, $5, $6)', [googleSession.username, "none", "none", googleSession.email, "none", true], (error, usersResults) => {
+            if (error) throw error;
+
+            pool.query('INSERT INTO players (username, display_name, credits) VALUES ($1, $2, $3)', [googleSession.username, googleSession.name, 1000], (error, playersResults) => {
+              if (error) throw error;
+
+              pool.query('INSERT INTO stats (username, blackjack_games, roulette_games, poker_games, blackjack_won_games, roulette_won_games, poker_won_games, money_bet, money_earned) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)', [googleSession.username, 0, 0, 0, 0, 0, 0, 0, 0], (error, statsResults) => {
+                if (error) throw error;
+
+                pool.query('SELECT * FROM players WHERE username = $1', [googleSession.username], (error, playersResults) => {
+                  if (error) throw error;
+
+                  // create a session
+                  const session = {
+                    id: uuidv4(),
+                    displayName: playersResults?.rows[0]?.display_name,
+                    username: playersResults?.rows[0]?.username,
+                    credits: playersResults?.rows[0]?.credits,
+                    lastActivity: Date.now(),
+                  }
+
+                  sessions.push(session);
+
+                  update_sessions_to_database();
+
+                  res.json({
+                    success: true,
+                    message: 'Login successful',
+                    session: session,
+                  })
+                })
+
+              });
+            });
+          });
+        }
+      });
+    }
+
+    /**
+     * /---------------------- POST ----------------------/
      * /---------------------- ADMIN ----------------------/
      * Checks if the entered account info is good, and logs the admin in if so.
@@ -1052,6 +1176,4 @@
 }
 function sendMailForGameCompletition(game, username, displayName) {
-  return ;
-
   const msgPoker = 'Your game was played to the end by the computer with the following rules:<br/>1. No more bets were made by any player;<br/>2. Cards were dealt normally like they would be under normal circumstances;<br/>3. Credits were given to the winners and taken from the losers.';
   const msgRoulette = 'If you reconnect immediately, you can catch this ongoing game. But don\'t worry if you can\'t! If you win, credits will be awarded to you.';
@@ -1108,5 +1230,5 @@
         html: `
           <h4>Hello, ${complaint.by}</h4>
-          <p>You wrote a complaint on ${new Date(complaint.date).toGMTString()}, saying:</p>
+          <p>You wrote a complaint on ${new Date(complaint.date).toGMTString()}, saying:</p>$
           <blockquote><em>${complaint.description}</em></blockquote>
           <br/>
Index: pages/api/roulette/gameStates.js
===================================================================
--- pages/api/roulette/gameStates.js	(revision faff3347934f6f886535c1e4519dcea679db385d)
+++ pages/api/roulette/gameStates.js	(revision 22367dbd434339cbf017e24df5eff637dc3738f9)
@@ -80,6 +80,8 @@
         });
 
-        if (player.whichBets?.length > 0)
-            saveGameInHistory('roulette', game, player.username)
+        if (player.whichBets?.length > 0) {
+          game.finished = new Date().toGMTString();
+          saveGameInHistory('roulette', game, player.username)
+        }
     }
 }
Index: styles/globals.css
===================================================================
--- styles/globals.css	(revision faff3347934f6f886535c1e4519dcea679db385d)
+++ styles/globals.css	(revision 22367dbd434339cbf017e24df5eff637dc3738f9)
@@ -754,4 +754,13 @@
 
 .liveGamesMegaContainer .liveGamesContainer > div .cardsOnTable {
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-pack: center;
+      -ms-flex-pack: center;
+          justify-content: center;
+}
+
+.liveGamesMegaContainer .liveGamesContainer > div .cards {
   display: -webkit-box;
   display: -ms-flexbox;
Index: styles/globals.css.map
===================================================================
--- styles/globals.css.map	(revision faff3347934f6f886535c1e4519dcea679db385d)
+++ styles/globals.css.map	(revision 22367dbd434339cbf017e24df5eff637dc3738f9)
@@ -1,5 +1,5 @@
 {
     "version": 3,
-    "mappings": "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",
+    "mappings": "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",
     "sources": [
         "globals.scss"
Index: styles/globals.scss
===================================================================
--- styles/globals.scss	(revision faff3347934f6f886535c1e4519dcea679db385d)
+++ styles/globals.scss	(revision 22367dbd434339cbf017e24df5eff637dc3738f9)
@@ -713,4 +713,7 @@
 
       .cards {
+        display: flex;
+        justify-content: center;
+        
         .card {
           margin-inline: -1.6rem;
Index: yarn.lock
===================================================================
--- yarn.lock	(revision faff3347934f6f886535c1e4519dcea679db385d)
+++ yarn.lock	(revision 22367dbd434339cbf017e24df5eff637dc3738f9)
@@ -145,4 +145,9 @@
     "fastq" "^1.6.0"
 
+"@panva/hkdf@^1.0.1":
+  "integrity" "sha512-MSAs9t3Go7GUkMhpKC44T58DJ5KGk2vBo+h1cqQeqlMfdGkxaVB78ZWpv9gYi/g2fa4sopag9gJsNvS8XGgWJA=="
+  "resolved" "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.0.2.tgz"
+  "version" "1.0.2"
+
 "@reduxjs/toolkit@^1.8.1":
   "integrity" "sha512-Q6mzbTpO9nOYRnkwpDlFOAbQnd3g7zj7CtHAZWz5SzE5lcV97Tf8f3SzOO8BoPOMYBFgfZaqTUZqgGu+a0+Fng=="
@@ -468,5 +473,5 @@
   "version" "0.0.1"
 
-"cookie@~0.4.1":
+"cookie@^0.4.1", "cookie@~0.4.1":
   "integrity" "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA=="
   "resolved" "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz"
@@ -1242,4 +1247,9 @@
   "version" "2.0.0"
 
+"jose@^4.1.4", "jose@^4.3.7":
+  "integrity" "sha512-7rySkpW78d8LBp4YU70Wb7+OTgE3OwAALNVZxhoIhp4Kscp+p/fBkdpxGAMKxvCAMV4QfXBU9m6l9nX/vGwd2g=="
+  "resolved" "https://registry.npmjs.org/jose/-/jose-4.8.3.tgz"
+  "version" "4.8.3"
+
 "js-tokens@^3.0.0 || ^4.0.0":
   "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
@@ -1392,4 +1402,19 @@
   "resolved" "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz"
   "version" "0.6.3"
+
+"next-auth@^4.10.0":
+  "integrity" "sha512-4CKZbv9VeCaqfDAXyqFThZy05ApbLd0bhXEB+DCq9aD43h6Rkvz0QgM7QOCJXESy0QKJUXHzopkBq+iaGxdc0g=="
+  "resolved" "https://registry.npmjs.org/next-auth/-/next-auth-4.10.0.tgz"
+  "version" "4.10.0"
+  dependencies:
+    "@babel/runtime" "^7.16.3"
+    "@panva/hkdf" "^1.0.1"
+    "cookie" "^0.4.1"
+    "jose" "^4.3.7"
+    "oauth" "^0.9.15"
+    "openid-client" "^5.1.0"
+    "preact" "^10.6.3"
+    "preact-render-to-string" "^5.1.19"
+    "uuid" "^8.3.2"
 
 "next@>=10.2.0", "next@12.1.6":
@@ -1416,8 +1441,13 @@
     "@next/swc-win32-x64-msvc" "12.1.6"
 
-"nodemailer@^6.7.7":
+"nodemailer@^6.6.5", "nodemailer@^6.7.7":
   "integrity" "sha512-pOLC/s+2I1EXuSqO5Wa34i3kXZG3gugDssH+ZNCevHad65tc8vQlCQpOLaUjopvkRQKm2Cki2aME7fEOPRy3bA=="
   "resolved" "https://registry.npmjs.org/nodemailer/-/nodemailer-6.7.7.tgz"
   "version" "6.7.7"
+
+"oauth@^0.9.15":
+  "integrity" "sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA=="
+  "resolved" "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz"
+  "version" "0.9.15"
 
 "object-assign@^4", "object-assign@^4.1.1":
@@ -1426,4 +1456,9 @@
   "version" "4.1.1"
 
+"object-hash@^2.0.1":
+  "integrity" "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw=="
+  "resolved" "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz"
+  "version" "2.2.0"
+
 "object-inspect@^1.12.0", "object-inspect@^1.9.0":
   "integrity" "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g=="
@@ -1481,4 +1516,9 @@
     "es-abstract" "^1.19.1"
 
+"oidc-token-hash@^5.0.1":
+  "integrity" "sha512-EvoOtz6FIEBzE+9q253HsLCVRiK/0doEJ2HCvvqMQb3dHZrP3WlJKYtJ55CRTw4jmYomzH4wkPuCj/I3ZvpKxQ=="
+  "resolved" "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.0.1.tgz"
+  "version" "5.0.1"
+
 "once@^1.3.0":
   "integrity" "sha1-WDsap3WWHUsROsF9nFC6753Xa9E="
@@ -1487,4 +1527,14 @@
   dependencies:
     "wrappy" "1"
+
+"openid-client@^5.1.0":
+  "integrity" "sha512-EPxJY6bT7YIYQEXSGxRC5flQ3GUhLy98ufdto6+BVBrFGPmwjUpy4xBcYuU/Wt9nPkO/3EgljBrr6Ezx4lp1RQ=="
+  "resolved" "https://registry.npmjs.org/openid-client/-/openid-client-5.1.8.tgz"
+  "version" "5.1.8"
+  dependencies:
+    "jose" "^4.1.4"
+    "lru-cache" "^6.0.0"
+    "object-hash" "^2.0.1"
+    "oidc-token-hash" "^5.0.1"
 
 "optionator@^0.9.1":
@@ -1648,4 +1698,16 @@
     "xtend" "^4.0.0"
 
+"preact-render-to-string@^5.1.19":
+  "integrity" "sha512-Wp3ner1aIVBpKg02C4AoLdBiw4kNaiFSYHr4wUF+fR7FWKAQzNri+iPfPp31sEhAtBfWoJrSxiEFzd5wp5zCgQ=="
+  "resolved" "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-5.2.1.tgz"
+  "version" "5.2.1"
+  dependencies:
+    "pretty-format" "^3.8.0"
+
+"preact@^10.6.3", "preact@>=10":
+  "integrity" "sha512-fszkg1iJJjq68I4lI8ZsmBiaoQiQHbxf1lNq+72EmC/mZOsFF5zn3k1yv9QGoFgIXzgsdSKtYymLJsrJPoamjQ=="
+  "resolved" "https://registry.npmjs.org/preact/-/preact-10.10.0.tgz"
+  "version" "10.10.0"
+
 "prelude-ls@^1.2.1":
   "integrity" "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="
@@ -1653,4 +1715,9 @@
   "version" "1.2.1"
 
+"pretty-format@^3.8.0":
+  "integrity" "sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew=="
+  "resolved" "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz"
+  "version" "3.8.0"
+
 "prop-types@^15.8.1":
   "integrity" "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="
@@ -1672,5 +1739,5 @@
   "version" "1.2.3"
 
-"react-dom@^16.8 || ^17.0 || ^18.0", "react-dom@^17.0.2 || ^18.0.0-0", "react-dom@18.1.0":
+"react-dom@^16.8 || ^17.0 || ^18.0", "react-dom@^17.0.2 || ^18", "react-dom@^17.0.2 || ^18.0.0-0", "react-dom@18.1.0":
   "integrity" "sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w=="
   "resolved" "https://registry.npmjs.org/react-dom/-/react-dom-18.1.0.tgz"
@@ -1707,5 +1774,5 @@
     "use-sync-external-store" "^1.0.0"
 
-"react@*", "react@^16.8 || ^17.0 || ^18.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^16.9.0 || ^17.0.0 || ^18", "react@^17.0.2", "react@^17.0.2 || ^18.0.0-0", "react@^18.1.0", "react@>= 16.8.0 || 17.x.x || ^18.0.0-0", "react@18.1.0":
+"react@*", "react@^16.8 || ^17.0 || ^18.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^16.9.0 || ^17.0.0 || ^18", "react@^17.0.2", "react@^17.0.2 || ^18", "react@^17.0.2 || ^18.0.0-0", "react@^18.1.0", "react@>= 16.8.0 || 17.x.x || ^18.0.0-0", "react@18.1.0":
   "integrity" "sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ=="
   "resolved" "https://registry.npmjs.org/react/-/react-18.1.0.tgz"
