diff --git a/.env.test.local.example b/.env.test.local.example
index 9afad2c479..2ba2486f8d 100644
--- a/.env.test.local.example
+++ b/.env.test.local.example
@@ -22,3 +22,5 @@ FORCE_COLOR=1
REACT_APP_BUILDER_NFT_CONTRACT_ADDRESS=0x1d305a06cb9dbdc32e08c3d230889acb9fe8a4dd
# so that we can load the UI and tests still pass
REACT_APP_WALLETCONNECT_PROJECTID=PLACEHOLDER_WALLETCONNECT_PROJECTID
+# Tests should run as scout game webapp
+REACT_APP_SCOUTGAME_PLATFORM=webapp
diff --git a/apps/scoutgame/__e2e__/profilePage.spec.ts b/apps/scoutgame/__e2e__/profilePage.spec.ts
index d5f0d699d9..d88f5ab3bc 100644
--- a/apps/scoutgame/__e2e__/profilePage.spec.ts
+++ b/apps/scoutgame/__e2e__/profilePage.spec.ts
@@ -19,8 +19,13 @@ test.describe('Profile page', () => {
await utils.loginAsUserId(builder.id);
await page.goto('/scout');
- const link = page.locator(`data-test=site-navigation >> [href*="/profile"]`).first();
- await link.click();
+
+ const userPill = page.locator('data-test=user-menu-pill');
+ await expect(userPill).toBeVisible();
+ await userPill.click();
+ const profileButton = page.locator('data-test=user-profile-button');
+ await expect(profileButton).toBeVisible();
+ await profileButton.click();
// Logged in user should be redirected
await page.waitForURL('**/profile*');
diff --git a/apps/scoutgame/app/(general)/builders/page.tsx b/apps/scoutgame/app/(general)/builders/page.tsx
index 77e966fbe7..9749dd9248 100644
--- a/apps/scoutgame/app/(general)/builders/page.tsx
+++ b/apps/scoutgame/app/(general)/builders/page.tsx
@@ -1,6 +1,5 @@
import { getCurrentWeek, validateISOWeek } from '@packages/scoutgame/dates';
-
-import { BuildersPage } from 'components/builders/BuildersPage';
+import { BuildersPage } from '@packages/scoutgame-ui/components/builders/BuildersPage';
export default async function Builders({
searchParams
diff --git a/apps/scoutgame/app/(general)/layout.tsx b/apps/scoutgame/app/(general)/layout.tsx
index 6c8fd27dbe..43ad9c98ad 100644
--- a/apps/scoutgame/app/(general)/layout.tsx
+++ b/apps/scoutgame/app/(general)/layout.tsx
@@ -1,9 +1,8 @@
import { Box } from '@mui/material';
+import { Header } from '@packages/scoutgame-ui/components/common/Navigation/Header';
+import { StickyFooter } from '@packages/scoutgame-ui/components/common/Navigation/StickyFooter';
import type { ReactNode } from 'react';
-import { Header } from 'components/common/Header/Header';
-import { StickyFooter } from 'components/layout/StickyFooter';
-
export default async function Layout({
children
}: Readonly<{
diff --git a/apps/scoutgame/app/(general)/scout/page.tsx b/apps/scoutgame/app/(general)/scout/page.tsx
index 65b7c50ae0..00d1ac8d4c 100644
--- a/apps/scoutgame/app/(general)/scout/page.tsx
+++ b/apps/scoutgame/app/(general)/scout/page.tsx
@@ -1,7 +1,7 @@
import { prisma } from '@charmverse/core/prisma-client';
import { MAX_STARTER_PACK_PURCHASES } from '@packages/scoutgame/builderNfts/constants';
+import type { StarterPackBuilder } from '@packages/scoutgame/builders/getStarterPackBuilders';
import { getStarterPackBuilders } from '@packages/scoutgame/builders/getStarterPackBuilders';
-import type { BuilderInfo } from '@packages/scoutgame/builders/interfaces';
import { currentSeason } from '@packages/scoutgame/dates';
import { getUserFromSession } from '@packages/scoutgame/session/getUserFromSession';
import { safeAwaitSSRData } from '@packages/scoutgame/utils/async';
@@ -23,7 +23,7 @@ export default async function Scout({
const user = await getUserFromSession();
- let builders: BuilderInfo[] = [];
+ let builders: StarterPackBuilder[] = [];
let remainingStarterCards = MAX_STARTER_PACK_PURCHASES;
@@ -38,7 +38,7 @@ export default async function Scout({
remainingStarterCards = MAX_STARTER_PACK_PURCHASES - purchases;
if (purchases < MAX_STARTER_PACK_PURCHASES) {
- const [_, starterPackBuilders] = await safeAwaitSSRData(getStarterPackBuilders());
+ const [_, starterPackBuilders] = await safeAwaitSSRData(getStarterPackBuilders({ userId: user?.id }));
builders = starterPackBuilders ?? [];
}
}
diff --git a/apps/scoutgame/app/api/connect-github/get-link/route.ts b/apps/scoutgame/app/api/connect-github/get-link/route.ts
index b1d23fcdc0..f266df6158 100644
--- a/apps/scoutgame/app/api/connect-github/get-link/route.ts
+++ b/apps/scoutgame/app/api/connect-github/get-link/route.ts
@@ -1,7 +1,6 @@
import { getGithubOAuthCallbackUrl } from '@packages/github/oauth';
import { getSession } from '@packages/scoutgame/session/getSession';
-import { authSecret } from '@root/config/constants';
-import { GITHUB_CLIENT_ID } from '@root/lib/github/constants';
+import { authSecret, GITHUB_CLIENT_ID } from '@packages/utils/constants';
import { sealData } from 'iron-session';
import type { NextRequest } from 'next/server';
diff --git a/apps/scoutgame/components/builders/BuilderPageTable/components/ActivityTable.tsx b/apps/scoutgame/components/builders/BuilderPageTable/components/ActivityTable.tsx
deleted file mode 100644
index df447090a3..0000000000
--- a/apps/scoutgame/components/builders/BuilderPageTable/components/ActivityTable.tsx
+++ /dev/null
@@ -1,166 +0,0 @@
-import { Stack, TableHead, Typography } from '@mui/material';
-import Table from '@mui/material/Table';
-import TableBody from '@mui/material/TableBody';
-import TableCell from '@mui/material/TableCell';
-import type { BuilderActivity } from '@packages/scoutgame/builders/getBuilderActivities';
-import { Avatar } from '@packages/scoutgame-ui/components/common/Avatar';
-import { GemsIcon } from '@packages/scoutgame-ui/components/common/Icons';
-import {
- BuilderActivityBonusPartner,
- BuilderActivityGems,
- getActivityLabel
-} from '@packages/scoutgame-ui/components/profile/components/BuilderProfile/BuilderActivitiesList';
-import { getRelativeTime } from '@packages/utils/dates';
-import Link from 'next/link';
-import { BiLike } from 'react-icons/bi';
-import { LuBookMarked } from 'react-icons/lu';
-
-import { CommonTableRow } from './CommonTableRow';
-import { TableCellText } from './TableCellText';
-
-export function BuilderActivityAction({ activity }: { activity: BuilderActivity }) {
- return (
-
- {activity.type === 'github_event' ? (
-
- ) : activity.type === 'nft_purchase' ? (
-
- ) : null}
-
- {getActivityLabel(activity)}
- {activity.type === 'nft_purchase' && (
-
-
- {activity.scout.displayName}
-
-
- )}
- {activity.type === 'github_event' && (
-
- ({activity.repo})
-
- )}
-
-
- );
-}
-
-export function ActivityTable({ activities }: { activities: BuilderActivity[] }) {
- return (
-
-
-
- BUILDER
- ACTION
-
-
-
- EARNED
-
-
-
-
- BONUS
-
-
-
-
- {activities.map((activity) => (
-
-
-
-
- {activity.displayName}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {getRelativeTime(activity.createdAt)}
-
-
- ))}
-
-
- );
-}
diff --git a/apps/scoutgame/components/scout/ScoutPage.tsx b/apps/scoutgame/components/scout/ScoutPage.tsx
index 003b95de71..8b662364f5 100644
--- a/apps/scoutgame/components/scout/ScoutPage.tsx
+++ b/apps/scoutgame/components/scout/ScoutPage.tsx
@@ -1,6 +1,7 @@
import AppsIcon from '@mui/icons-material/Apps';
import FormatListBulletedIcon from '@mui/icons-material/FormatListBulleted';
import { Box, Grid2 as Grid, Stack, Typography } from '@mui/material';
+import type { StarterPackBuilder } from '@packages/scoutgame/builders/getStarterPackBuilders';
import type { BuilderInfo } from '@packages/scoutgame/builders/interfaces';
import { HeaderMessage } from '@packages/scoutgame-ui/components/common/Header/HeaderMessage';
import { TabsMenu, type TabItem } from '@packages/scoutgame-ui/components/common/Tabs/TabsMenu';
@@ -34,7 +35,8 @@ export function ScoutPage({
buildersLayout,
tab,
starterpackBuilders,
- remainingStarterCards
+ remainingStarterCards,
+ userId
}: {
scoutSort: string;
builderSort: string;
@@ -43,8 +45,9 @@ export function ScoutPage({
scoutTab: string;
buildersLayout: string;
tab: string;
- starterpackBuilders: BuilderInfo[];
+ starterpackBuilders: StarterPackBuilder[];
remainingStarterCards?: number;
+ userId?: string;
}) {
const urlString = Object.entries({ tab, scoutSort, builderSort, scoutOrder, builderOrder })
.filter(([, value]) => isTruthy(value))
@@ -56,7 +59,6 @@ export function ScoutPage({
@@ -148,7 +150,13 @@ export function ScoutPage({
diff --git a/apps/scoutgame/components/scout/components/BuildersGalleryContainer.tsx b/apps/scoutgame/components/scout/components/BuildersGalleryContainer.tsx
index 28d5b1d936..104c93c62f 100644
--- a/apps/scoutgame/components/scout/components/BuildersGalleryContainer.tsx
+++ b/apps/scoutgame/components/scout/components/BuildersGalleryContainer.tsx
@@ -77,10 +77,10 @@ export function BuildersGalleryContainer({
return (
<>
- {nextCursor && }
+ {nextCursor && }
{isLoading && (
-
+
)}
{error && {error}}
diff --git a/apps/scoutgame/hooks/api/session.ts b/apps/scoutgame/hooks/api/session.ts
deleted file mode 100644
index 6583752737..0000000000
--- a/apps/scoutgame/hooks/api/session.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { useGETImmutable } from '@packages/scoutgame-ui/hooks/helpers';
-
-export function useGetClaimablePoints() {
- return useGETImmutable<{ points: number }>(
- '/api/session/claimable-points',
- {},
- {
- refreshInterval: 30000
- }
- );
-}
diff --git a/apps/scoutgame/lib/builders/getPaginatedBuilders.ts b/apps/scoutgame/lib/builders/getPaginatedBuilders.ts
index 06a6f20936..9b4ae6d227 100644
--- a/apps/scoutgame/lib/builders/getPaginatedBuilders.ts
+++ b/apps/scoutgame/lib/builders/getPaginatedBuilders.ts
@@ -32,14 +32,19 @@ export async function getPaginatedBuilders({
},
week
},
- orderBy: {
- rank: 'asc'
- },
+ orderBy: [
+ {
+ rank: 'asc'
+ },
+ {
+ userId: 'asc'
+ }
+ ],
skip: cursor ? 1 : 0,
take: limit,
cursor: cursor
? {
- rank: cursor.rank,
+ rank: cursor.rank === -1 ? null : cursor.rank,
userId_week: {
userId: cursor.userId,
week
diff --git a/apps/scoutgame/scripts/query.ts b/apps/scoutgame/scripts/query.ts
index 5c51fd2bd1..92bd33c60f 100644
--- a/apps/scoutgame/scripts/query.ts
+++ b/apps/scoutgame/scripts/query.ts
@@ -1,6 +1,4 @@
-import { prisma } from '@charmverse/core/prisma-client';
-
-import { getLeaderboard } from 'lib/builders/getLeaderboard';
+import { getLeaderboard } from '@packages/scoutgame/builders/getLeaderboard';
import { getTopScoutsByWeek } from 'lib/scouts/getTopScouts';
import { getWeekStartEndFormatted, getDateFromISOWeek } from '@packages/scoutgame/dates';
async function query() {
diff --git a/apps/scoutgametelegram/app/(general)/builders/page.tsx b/apps/scoutgametelegram/app/(general)/builders/page.tsx
new file mode 100644
index 0000000000..9749dd9248
--- /dev/null
+++ b/apps/scoutgametelegram/app/(general)/builders/page.tsx
@@ -0,0 +1,13 @@
+import { getCurrentWeek, validateISOWeek } from '@packages/scoutgame/dates';
+import { BuildersPage } from '@packages/scoutgame-ui/components/builders/BuildersPage';
+
+export default async function Builders({
+ searchParams
+}: {
+ searchParams: { [key: string]: string | string[] | undefined };
+}) {
+ const tab = (searchParams.tab as string) || 'leaderboard';
+ const week = searchParams.week as string | undefined;
+
+ return ;
+}
diff --git a/apps/scoutgametelegram/app/(general)/layout.tsx b/apps/scoutgametelegram/app/(general)/layout.tsx
index 28aa6bda5a..8c0b58a0c8 100644
--- a/apps/scoutgametelegram/app/(general)/layout.tsx
+++ b/apps/scoutgametelegram/app/(general)/layout.tsx
@@ -1,8 +1,6 @@
import { Box, Stack } from '@mui/material';
-
-import { Header } from 'components/common/Header';
-import { GeneralBackgroundImage } from 'components/layout/GeneralBackgroundImage';
-import { StickyFooter } from 'components/layout/StickyFooter';
+import { Header } from '@packages/scoutgame-ui/components/common/Navigation/Header';
+import { StickyFooter } from '@packages/scoutgame-ui/components/common/Navigation/StickyFooter';
export default function Layout({
children
@@ -12,11 +10,15 @@ export default function Layout({
return (
-
-
+
{children}
-
);
diff --git a/apps/scoutgametelegram/app/api/connect-github/get-link/route.ts b/apps/scoutgametelegram/app/api/connect-github/get-link/route.ts
new file mode 100644
index 0000000000..f266df6158
--- /dev/null
+++ b/apps/scoutgametelegram/app/api/connect-github/get-link/route.ts
@@ -0,0 +1,35 @@
+import { getGithubOAuthCallbackUrl } from '@packages/github/oauth';
+import { getSession } from '@packages/scoutgame/session/getSession';
+import { authSecret, GITHUB_CLIENT_ID } from '@packages/utils/constants';
+import { sealData } from 'iron-session';
+import type { NextRequest } from 'next/server';
+
+export async function GET(req: NextRequest) {
+ const session = await getSession();
+ const redirectToProfile = req.nextUrl.searchParams.get('profile-redirect');
+ if (!session.scoutId) {
+ return new Response('Authentication required', { status: 401 });
+ }
+
+ const sealedUserId = await sealData(
+ {
+ id: session.scoutId
+ },
+ { password: authSecret as string }
+ );
+
+ const redirect = `${process.env.DOMAIN}/builder-registration-callback`;
+
+ const redirectUrl = getGithubOAuthCallbackUrl({
+ clientId: GITHUB_CLIENT_ID,
+ redirect: redirectToProfile ? `${redirect}?profile-redirect=${redirectToProfile}` : redirect,
+ state: sealedUserId
+ });
+
+ return new Response(null, {
+ status: 302,
+ headers: {
+ Location: redirectUrl
+ }
+ });
+}
diff --git a/apps/scoutgametelegram/components/common/Header.tsx b/apps/scoutgametelegram/components/common/Header.tsx
deleted file mode 100644
index 02ea4ee09d..0000000000
--- a/apps/scoutgametelegram/components/common/Header.tsx
+++ /dev/null
@@ -1,115 +0,0 @@
-'use client';
-
-import InfoIcon from '@mui/icons-material/Info';
-import { Avatar, Box, Button, Menu, IconButton, MenuItem, Stack, Typography } from '@mui/material';
-import { useUser } from '@packages/scoutgame-ui/providers/UserProvider';
-import Image from 'next/image';
-import Link from 'next/link';
-import { useState } from 'react';
-import type { MouseEvent } from 'react';
-
-export function Header() {
- const { user } = useUser();
- const [anchorElUser, setAnchorElUser] = useState(null);
-
- const handleOpenUserMenu = (event: MouseEvent) => {
- setAnchorElUser(event.currentTarget);
- };
-
- const handleCloseUserMenu = () => {
- setAnchorElUser(null);
- };
-
- return (
-
-
-
-
-
-
-
-
-
-
- {user ? (
-
-
-
-
- ) : null}
-
-
- );
-}
diff --git a/apps/scoutgametelegram/components/common/SiteNavigation.tsx b/apps/scoutgametelegram/components/common/SiteNavigation.tsx
deleted file mode 100644
index 50962b140d..0000000000
--- a/apps/scoutgametelegram/components/common/SiteNavigation.tsx
+++ /dev/null
@@ -1,89 +0,0 @@
-'use client';
-
-import { BottomNavigation, BottomNavigationAction, styled } from '@mui/material';
-import { ClaimIcon } from '@packages/scoutgame-ui/components/common/Icons/ClaimIcon';
-import Link from 'next/link';
-import { usePathname } from 'next/navigation';
-
-import { useGetClaimablePoints } from 'hooks/api/session';
-
-import { QuestsIcon } from './Icons/QuestsIcon';
-import { ScoutIcon } from './Icons/ScoutIcon';
-
-const StyledBottomNavigation = styled(BottomNavigation, {
- shouldForwardProp: (prop) => prop !== 'topNav' && prop !== 'isTelegram'
-})<{ topNav?: boolean; isTelegram?: boolean }>(({ theme, topNav, isTelegram }) => ({
- background: topNav
- ? 'transparent'
- : 'linear-gradient(88.35deg, #96CDFF 0%, #A06CD5 29.5%, #96CDFF 75.47%, #A06CD5 100%)',
- height: isTelegram ? '71px' : '56px',
- '& > a': {
- color: topNav ? theme.palette.text.primary : theme.palette.common.black,
- gap: '2px',
- width: topNav ? '110px' : 'auto',
- transition: 'background-color 0.3s ease',
- '&:hover': {
- backgroundColor: 'rgba(255, 255, 255, 0.1)'
- },
- '&.Mui-selected': {
- color: theme.palette.text.primary,
- backgroundColor: topNav ? theme.palette.primary.main : 'rgba(44, 0, 90, 0.25)'
- },
- '&.MuiButtonBase-root': {
- paddingBottom: isTelegram ? '15px' : '0',
- minWidth: '60px'
- },
- '& .MuiBottomNavigationAction-label': {
- fontSize: '.75rem'
- }
- }
-}));
-
-export function SiteNavigation({ topNav, isTelegram }: { topNav?: boolean; isTelegram?: boolean }) {
- const pathname = usePathname();
- const value = getActiveButton(pathname);
- const { data: claimablePoints } = useGetClaimablePoints();
-
- return (
-
- }
- LinkComponent={Link}
- />
- }
- LinkComponent={Link}
- />
- 0} />}
- LinkComponent={Link}
- />
-
- );
-}
-
-function getActiveButton(pathname: string) {
- if (pathname.startsWith('/quests')) {
- return 'quests';
- } else if (pathname.startsWith('/scout') || pathname.startsWith('/u')) {
- return 'scout';
- } else if (pathname.startsWith('/claim')) {
- return 'claim';
- }
- return null;
-}
diff --git a/apps/scoutgametelegram/components/layout/GeneralBackgroundImage.tsx b/apps/scoutgametelegram/components/layout/GeneralBackgroundImage.tsx
deleted file mode 100644
index eb507e178d..0000000000
--- a/apps/scoutgametelegram/components/layout/GeneralBackgroundImage.tsx
+++ /dev/null
@@ -1,22 +0,0 @@
-import type { BoxProps } from '@mui/material/Box';
-import Box from '@mui/material/Box';
-
-export function GeneralBackgroundImage(props: BoxProps) {
- return (
-
- );
-}
diff --git a/apps/scoutgametelegram/components/layout/StickyFooter.tsx b/apps/scoutgametelegram/components/layout/StickyFooter.tsx
deleted file mode 100644
index ba55ec3853..0000000000
--- a/apps/scoutgametelegram/components/layout/StickyFooter.tsx
+++ /dev/null
@@ -1,12 +0,0 @@
-import { Box } from '@mui/material';
-import { getPlatform } from '@packages/mixpanel/utils';
-
-import { SiteNavigation } from 'components/common/SiteNavigation';
-
-export function StickyFooter() {
- return (
-
-
-
- );
-}
diff --git a/apps/scoutgametelegram/components/scout/ScoutPage.tsx b/apps/scoutgametelegram/components/scout/ScoutPage.tsx
index 01dd550479..15590c51b4 100644
--- a/apps/scoutgametelegram/components/scout/ScoutPage.tsx
+++ b/apps/scoutgametelegram/components/scout/ScoutPage.tsx
@@ -1,5 +1,5 @@
import { Box, Typography } from '@mui/material';
-import { LoadingTable } from '@packages/scoutgame-ui/components/claim/components/common/LoadingTable';
+import { LoadingTable } from '@packages/scoutgame-ui/components/common/Loading/LoadingTable';
import { InfoModal } from '@packages/scoutgame-ui/components/scout/InfoModal';
import {
scoutTabs,
diff --git a/apps/scoutgametelegram/hooks/api/session.ts b/apps/scoutgametelegram/hooks/api/session.ts
index d7c6bb9960..7a5ae3118b 100644
--- a/apps/scoutgametelegram/hooks/api/session.ts
+++ b/apps/scoutgametelegram/hooks/api/session.ts
@@ -1,16 +1,6 @@
import { useGETImmutable, usePOST } from '@packages/scoutgame-ui/hooks/helpers';
import type { WebAppInitData } from '@twa-dev/types';
-export function useGetClaimablePoints() {
- return useGETImmutable<{ points: number }>(
- '/api/session/claimable-points',
- {},
- {
- refreshInterval: 30000
- }
- );
-}
-
export function useInitTelegramUser() {
return usePOST<{ initData: string }, WebAppInitData>('/api/session/telegram-user');
}
diff --git a/apps/scoutgametelegram/public/images/crypto/celo.png b/apps/scoutgametelegram/public/images/crypto/celo.png
new file mode 100644
index 0000000000..7763d50f07
Binary files /dev/null and b/apps/scoutgametelegram/public/images/crypto/celo.png differ
diff --git a/apps/scoutgametelegram/public/images/crypto/game7.png b/apps/scoutgametelegram/public/images/crypto/game7.png
new file mode 100644
index 0000000000..4ffd8c9c93
Binary files /dev/null and b/apps/scoutgametelegram/public/images/crypto/game7.png differ
diff --git a/apps/scoutgametelegram/public/images/crypto/lit.png b/apps/scoutgametelegram/public/images/crypto/lit.png
new file mode 100644
index 0000000000..0b81eb1367
Binary files /dev/null and b/apps/scoutgametelegram/public/images/crypto/lit.png differ
diff --git a/apps/scoutgametelegram/public/images/crypto/op copy.png b/apps/scoutgametelegram/public/images/crypto/op copy.png
new file mode 100644
index 0000000000..d1eb191390
Binary files /dev/null and b/apps/scoutgametelegram/public/images/crypto/op copy.png differ
diff --git a/apps/scoutgametelegram/public/images/crypto/orderly copy.png b/apps/scoutgametelegram/public/images/crypto/orderly copy.png
new file mode 100644
index 0000000000..f04fb3dad4
Binary files /dev/null and b/apps/scoutgametelegram/public/images/crypto/orderly copy.png differ
diff --git a/apps/scoutgametelegram/public/images/crypto/redstone64 copy.png b/apps/scoutgametelegram/public/images/crypto/redstone64 copy.png
new file mode 100644
index 0000000000..89acb092ee
Binary files /dev/null and b/apps/scoutgametelegram/public/images/crypto/redstone64 copy.png differ
diff --git a/apps/scoutgametelegram/public/images/crypto/talent.jpg b/apps/scoutgametelegram/public/images/crypto/talent.jpg
new file mode 100644
index 0000000000..046911154b
Binary files /dev/null and b/apps/scoutgametelegram/public/images/crypto/talent.jpg differ
diff --git a/apps/scoutgametelegram/public/images/github-logo.png b/apps/scoutgametelegram/public/images/github-logo.png
new file mode 100644
index 0000000000..e1f4f41779
Binary files /dev/null and b/apps/scoutgametelegram/public/images/github-logo.png differ
diff --git a/apps/scoutgametelegram/public/images/promos/celo-promo-slide.png b/apps/scoutgametelegram/public/images/promos/celo-promo-slide.png
new file mode 100644
index 0000000000..2c66fb3747
Binary files /dev/null and b/apps/scoutgametelegram/public/images/promos/celo-promo-slide.png differ
diff --git a/apps/scoutgametelegram/public/images/promos/game7-promo-slide.png b/apps/scoutgametelegram/public/images/promos/game7-promo-slide.png
new file mode 100644
index 0000000000..8bfa4d420b
Binary files /dev/null and b/apps/scoutgametelegram/public/images/promos/game7-promo-slide.png differ
diff --git a/apps/scoutgametelegram/public/images/promos/lit-promo-slide.png b/apps/scoutgametelegram/public/images/promos/lit-promo-slide.png
new file mode 100644
index 0000000000..25f89403a2
Binary files /dev/null and b/apps/scoutgametelegram/public/images/promos/lit-promo-slide.png differ
diff --git a/apps/scoutgametelegram/public/images/promos/op-supersim-promo-slide.png b/apps/scoutgametelegram/public/images/promos/op-supersim-promo-slide.png
new file mode 100644
index 0000000000..7d37b41e9e
Binary files /dev/null and b/apps/scoutgametelegram/public/images/promos/op-supersim-promo-slide.png differ
diff --git a/apps/scoutgametelegram/public/images/promos/talent-promo-slide.png b/apps/scoutgametelegram/public/images/promos/talent-promo-slide.png
new file mode 100644
index 0000000000..f659967d02
Binary files /dev/null and b/apps/scoutgametelegram/public/images/promos/talent-promo-slide.png differ
diff --git a/package-lock.json b/package-lock.json
index a400e47832..e94df55e35 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -139,7 +139,7 @@
"frames.js": "^0.18.1",
"gaxios": "^5.0.2",
"google-auth-library": "^8.7.0",
- "graphql": "^16.8.1",
+ "graphql": "^16.8.2",
"hot-shots": "^9.0.0",
"html-to-text": "^8.2.0",
"i": "^0.3.7",
@@ -161,9 +161,9 @@
"millify": "^4.0.0",
"mixpanel": "^0.17.0",
"msw-storybook-addon": "^2.0.0",
- "nanoid": "^3.3.6",
+ "nanoid": "^3.3.8",
"nanoid-dictionary": "^3.0.0",
- "next": "^14.2.16",
+ "next": "^14.2.17",
"next-bundle-analyzer": "^0.6.8",
"next-connect": "^0.13.0",
"next-swagger-doc": "^0.3.6",
@@ -303,7 +303,7 @@
"aws-cdk": "^2.151.0",
"chromatic": "^6.21.0",
"concurrently": "^8.2.1",
- "cookie": "^0.7.0",
+ "cookie": "^0.7.1",
"cross-env": "^7.0.3",
"dependency-cruiser": "^13.1.5",
"dotenv": "^16.3.1",
@@ -16579,9 +16579,9 @@
}
},
"node_modules/@next/env": {
- "version": "14.2.16",
- "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.16.tgz",
- "integrity": "sha512-fLrX5TfJzHCbnZ9YUSnGW63tMV3L4nSfhgOQ0iCcX21Pt+VSTDuaLsSuL8J/2XAiVA5AnzvXDpf6pMs60QxOag=="
+ "version": "14.2.17",
+ "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.17.tgz",
+ "integrity": "sha512-MCgO7VHxXo8sYR/0z+sk9fGyJJU636JyRmkjc7ZJY8Hurl8df35qG5hoAh5KMs75FLjhlEo9bb2LGe89Y/scDA=="
},
"node_modules/@next/eslint-plugin-next": {
"version": "14.2.15",
@@ -16639,9 +16639,9 @@
}
},
"node_modules/@next/swc-darwin-arm64": {
- "version": "14.2.16",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.16.tgz",
- "integrity": "sha512-uFT34QojYkf0+nn6MEZ4gIWQ5aqGF11uIZ1HSxG+cSbj+Mg3+tYm8qXYd3dKN5jqKUm5rBVvf1PBRO/MeQ6rxw==",
+ "version": "14.2.17",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.17.tgz",
+ "integrity": "sha512-WiOf5nElPknrhRMTipXYTJcUz7+8IAjOYw3vXzj3BYRcVY0hRHKWgTgQ5439EvzQyHEko77XK+yN9x9OJ0oOog==",
"cpu": [
"arm64"
],
@@ -16654,9 +16654,9 @@
}
},
"node_modules/@next/swc-darwin-x64": {
- "version": "14.2.16",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.16.tgz",
- "integrity": "sha512-mCecsFkYezem0QiZlg2bau3Xul77VxUD38b/auAjohMA22G9KTJneUYMv78vWoCCFkleFAhY1NIvbyjj1ncG9g==",
+ "version": "14.2.17",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.17.tgz",
+ "integrity": "sha512-29y425wYnL17cvtxrDQWC3CkXe/oRrdt8ie61S03VrpwpPRI0XsnTvtKO06XCisK4alaMnZlf8riwZIbJTaSHQ==",
"cpu": [
"x64"
],
@@ -16669,9 +16669,9 @@
}
},
"node_modules/@next/swc-linux-arm64-gnu": {
- "version": "14.2.16",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.16.tgz",
- "integrity": "sha512-yhkNA36+ECTC91KSyZcgWgKrYIyDnXZj8PqtJ+c2pMvj45xf7y/HrgI17hLdrcYamLfVt7pBaJUMxADtPaczHA==",
+ "version": "14.2.17",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.17.tgz",
+ "integrity": "sha512-SSHLZls3ZwNEHsc+d0ynKS+7Af0Nr8+KTUBAy9pm6xz9SHkJ/TeuEg6W3cbbcMSh6j4ITvrjv3Oi8n27VR+IPw==",
"cpu": [
"arm64"
],
@@ -16684,9 +16684,9 @@
}
},
"node_modules/@next/swc-linux-arm64-musl": {
- "version": "14.2.16",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.16.tgz",
- "integrity": "sha512-X2YSyu5RMys8R2lA0yLMCOCtqFOoLxrq2YbazFvcPOE4i/isubYjkh+JCpRmqYfEuCVltvlo+oGfj/b5T2pKUA==",
+ "version": "14.2.17",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.17.tgz",
+ "integrity": "sha512-VFge37us5LNPatB4F7iYeuGs9Dprqe4ZkW7lOEJM91r+Wf8EIdViWHLpIwfdDXinvCdLl6b4VyLpEBwpkctJHA==",
"cpu": [
"arm64"
],
@@ -16699,9 +16699,9 @@
}
},
"node_modules/@next/swc-linux-x64-gnu": {
- "version": "14.2.16",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.16.tgz",
- "integrity": "sha512-9AGcX7VAkGbc5zTSa+bjQ757tkjr6C/pKS7OK8cX7QEiK6MHIIezBLcQ7gQqbDW2k5yaqba2aDtaBeyyZh1i6Q==",
+ "version": "14.2.17",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.17.tgz",
+ "integrity": "sha512-aaQlpxUVb9RZ41adlTYVQ3xvYEfBPUC8+6rDgmQ/0l7SvK8S1YNJzPmDPX6a4t0jLtIoNk7j+nroS/pB4nx7vQ==",
"cpu": [
"x64"
],
@@ -16714,9 +16714,9 @@
}
},
"node_modules/@next/swc-linux-x64-musl": {
- "version": "14.2.16",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.16.tgz",
- "integrity": "sha512-Klgeagrdun4WWDaOizdbtIIm8khUDQJ/5cRzdpXHfkbY91LxBXeejL4kbZBrpR/nmgRrQvmz4l3OtttNVkz2Sg==",
+ "version": "14.2.17",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.17.tgz",
+ "integrity": "sha512-HSyEiFaEY3ay5iATDqEup5WAfrhMATNJm8dYx3ZxL+e9eKv10XKZCwtZByDoLST7CyBmyDz+OFJL1wigyXeaoA==",
"cpu": [
"x64"
],
@@ -16729,9 +16729,9 @@
}
},
"node_modules/@next/swc-win32-arm64-msvc": {
- "version": "14.2.16",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.16.tgz",
- "integrity": "sha512-PwW8A1UC1Y0xIm83G3yFGPiOBftJK4zukTmk7DI1CebyMOoaVpd8aSy7K6GhobzhkjYvqS/QmzcfsWG2Dwizdg==",
+ "version": "14.2.17",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.17.tgz",
+ "integrity": "sha512-h5qM9Btqv87eYH8ArrnLoAHLyi79oPTP2vlGNSg4CDvUiXgi7l0+5KuEGp5pJoMhjuv9ChRdm7mRlUUACeBt4w==",
"cpu": [
"arm64"
],
@@ -16744,9 +16744,9 @@
}
},
"node_modules/@next/swc-win32-ia32-msvc": {
- "version": "14.2.16",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.16.tgz",
- "integrity": "sha512-jhPl3nN0oKEshJBNDAo0etGMzv0j3q3VYorTSFqH1o3rwv1MQRdor27u1zhkgsHPNeY1jxcgyx1ZsCkDD1IHgg==",
+ "version": "14.2.17",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.17.tgz",
+ "integrity": "sha512-BD/G++GKSLexQjdyoEUgyo5nClU7er5rK0sE+HlEqnldJSm96CIr/+YOTT063LVTT/dUOeQsNgp5DXr86/K7/A==",
"cpu": [
"ia32"
],
@@ -16759,9 +16759,9 @@
}
},
"node_modules/@next/swc-win32-x64-msvc": {
- "version": "14.2.16",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.16.tgz",
- "integrity": "sha512-OA7NtfxgirCjfqt+02BqxC3MIgM/JaGjw9tOe4fyZgPsqfseNiMPnCRP44Pfs+Gpo9zPN+SXaFsgP6vk8d571A==",
+ "version": "14.2.17",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.17.tgz",
+ "integrity": "sha512-vkQfN1+4V4KqDibkW2q0sJ6CxQuXq5l2ma3z0BRcfIqkAMZiiW67T9yCpwqJKP68QghBtPEFjPAlaqe38O6frw==",
"cpu": [
"x64"
],
@@ -22928,9 +22928,9 @@
}
},
"node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.1.tgz",
- "integrity": "sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.1.tgz",
+ "integrity": "sha512-2aZp8AES04KI2dy3Ss6/MDjXbwBzj+i0GqKtWXgw2/Ma6E4jJvujryO6gJAghIRVz7Vwr9Gtl/8na3nDUKpraQ==",
"cpu": [
"arm"
],
@@ -22941,9 +22941,9 @@
"peer": true
},
"node_modules/@rollup/rollup-android-arm64": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.1.tgz",
- "integrity": "sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.1.tgz",
+ "integrity": "sha512-EbkK285O+1YMrg57xVA+Dp0tDBRB93/BZKph9XhMjezf6F4TpYjaUSuPt5J0fZXlSag0LmZAsTmdGGqPp4pQFA==",
"cpu": [
"arm64"
],
@@ -22954,9 +22954,9 @@
"peer": true
},
"node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.1.tgz",
- "integrity": "sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.1.tgz",
+ "integrity": "sha512-prduvrMKU6NzMq6nxzQw445zXgaDBbMQvmKSJaxpaZ5R1QDM8w+eGxo6Y/jhT/cLoCvnZI42oEqf9KQNYz1fqQ==",
"cpu": [
"arm64"
],
@@ -22967,9 +22967,9 @@
"peer": true
},
"node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.1.tgz",
- "integrity": "sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.1.tgz",
+ "integrity": "sha512-WsvbOunsUk0wccO/TV4o7IKgloJ942hVFK1CLatwv6TJspcCZb9umQkPdvB7FihmdxgaKR5JyxDjWpCOp4uZlQ==",
"cpu": [
"x64"
],
@@ -22979,10 +22979,36 @@
],
"peer": true
},
+ "node_modules/@rollup/rollup-freebsd-arm64": {
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.1.tgz",
+ "integrity": "sha512-HTDPdY1caUcU4qK23FeeGxCdJF64cKkqajU0iBnTVxS8F7H/7BewvYoG+va1KPSL63kQ1PGNyiwKOfReavzvNA==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "peer": true
+ },
+ "node_modules/@rollup/rollup-freebsd-x64": {
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.1.tgz",
+ "integrity": "sha512-m/uYasxkUevcFTeRSM9TeLyPe2QDuqtjkeoTpP9SW0XxUWfcYrGDMkO/m2tTw+4NMAF9P2fU3Mw4ahNvo7QmsQ==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "peer": true
+ },
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.1.tgz",
- "integrity": "sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.1.tgz",
+ "integrity": "sha512-QAg11ZIt6mcmzpNE6JZBpKfJaKkqTm1A9+y9O+frdZJEuhQxiugM05gnCWiANHj4RmbgeVJpTdmKRmH/a+0QbA==",
"cpu": [
"arm"
],
@@ -22993,9 +23019,9 @@
"peer": true
},
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.1.tgz",
- "integrity": "sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.1.tgz",
+ "integrity": "sha512-dRP9PEBfolq1dmMcFqbEPSd9VlRuVWEGSmbxVEfiq2cs2jlZAl0YNxFzAQS2OrQmsLBLAATDMb3Z6MFv5vOcXg==",
"cpu": [
"arm"
],
@@ -23006,9 +23032,9 @@
"peer": true
},
"node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.1.tgz",
- "integrity": "sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.1.tgz",
+ "integrity": "sha512-uGr8khxO+CKT4XU8ZUH1TTEUtlktK6Kgtv0+6bIFSeiSlnGJHG1tSFSjm41uQ9sAO/5ULx9mWOz70jYLyv1QkA==",
"cpu": [
"arm64"
],
@@ -23019,9 +23045,9 @@
"peer": true
},
"node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.1.tgz",
- "integrity": "sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.1.tgz",
+ "integrity": "sha512-QF54q8MYGAqMLrX2t7tNpi01nvq5RI59UBNx+3+37zoKX5KViPo/gk2QLhsuqok05sSCRluj0D00LzCwBikb0A==",
"cpu": [
"arm64"
],
@@ -23031,10 +23057,23 @@
],
"peer": true
},
+ "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.28.1.tgz",
+ "integrity": "sha512-vPul4uodvWvLhRco2w0GcyZcdyBfpfDRgNKU+p35AWEbJ/HPs1tOUrkSueVbBS0RQHAf/A+nNtDpvw95PeVKOA==",
+ "cpu": [
+ "loong64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "peer": true
+ },
"node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.1.tgz",
- "integrity": "sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.1.tgz",
+ "integrity": "sha512-pTnTdBuC2+pt1Rmm2SV7JWRqzhYpEILML4PKODqLz+C7Ou2apEV52h19CR7es+u04KlqplggmN9sqZlekg3R1A==",
"cpu": [
"ppc64"
],
@@ -23045,9 +23084,9 @@
"peer": true
},
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.1.tgz",
- "integrity": "sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.1.tgz",
+ "integrity": "sha512-vWXy1Nfg7TPBSuAncfInmAI/WZDd5vOklyLJDdIRKABcZWojNDY0NJwruY2AcnCLnRJKSaBgf/GiJfauu8cQZA==",
"cpu": [
"riscv64"
],
@@ -23058,9 +23097,9 @@
"peer": true
},
"node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.1.tgz",
- "integrity": "sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.1.tgz",
+ "integrity": "sha512-/yqC2Y53oZjb0yz8PVuGOQQNOTwxcizudunl/tFs1aLvObTclTwZ0JhXF2XcPT/zuaymemCDSuuUPXJJyqeDOg==",
"cpu": [
"s390x"
],
@@ -23071,9 +23110,9 @@
"peer": true
},
"node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.1.tgz",
- "integrity": "sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.1.tgz",
+ "integrity": "sha512-fzgeABz7rrAlKYB0y2kSEiURrI0691CSL0+KXwKwhxvj92VULEDQLpBYLHpF49MSiPG4sq5CK3qHMnb9tlCjBw==",
"cpu": [
"x64"
],
@@ -23084,9 +23123,9 @@
"peer": true
},
"node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.1.tgz",
- "integrity": "sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.1.tgz",
+ "integrity": "sha512-xQTDVzSGiMlSshpJCtudbWyRfLaNiVPXt1WgdWTwWz9n0U12cI2ZVtWe/Jgwyv/6wjL7b66uu61Vg0POWVfz4g==",
"cpu": [
"x64"
],
@@ -23097,9 +23136,9 @@
"peer": true
},
"node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.1.tgz",
- "integrity": "sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.1.tgz",
+ "integrity": "sha512-wSXmDRVupJstFP7elGMgv+2HqXelQhuNf+IS4V+nUpNVi/GUiBgDmfwD0UGN3pcAnWsgKG3I52wMOBnk1VHr/A==",
"cpu": [
"arm64"
],
@@ -23110,9 +23149,9 @@
"peer": true
},
"node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.1.tgz",
- "integrity": "sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.1.tgz",
+ "integrity": "sha512-ZkyTJ/9vkgrE/Rk9vhMXhf8l9D+eAhbAVbsGsXKy2ohmJaWg0LPQLnIxRdRp/bKyr8tXuPlXhIoGlEB5XpJnGA==",
"cpu": [
"ia32"
],
@@ -23123,9 +23162,9 @@
"peer": true
},
"node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.1.tgz",
- "integrity": "sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.1.tgz",
+ "integrity": "sha512-ZvK2jBafvttJjoIdKm/Q/Bh7IJ1Ose9IBOwpOXcOvW3ikGTQGmKDgxTC6oCAzW6PynbkKP8+um1du81XJHZ0JA==",
"cpu": [
"x64"
],
@@ -29985,9 +30024,9 @@
}
},
"node_modules/@types/estree": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
- "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
+ "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw=="
},
"node_modules/@types/express": {
"version": "4.17.21",
@@ -36849,9 +36888,9 @@
"integrity": "sha512-1KX9ESmtl8xpT2LN2tFnKSbV4NiarbVi8DVb39ZriijvtTklyrT+4dT1wsGMHKD3CJUjXgvJzstm9qL9ICojGA=="
},
"node_modules/cookie": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.0.tgz",
- "integrity": "sha512-qCf+V4dtlNhSRXGAZatc1TasyFO6GjohcOul807YOb5ik3+kQSnb4d7iajeCL8QHaJ4uZEjCgiCJerKXwdRVlQ==",
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
+ "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
"dev": true,
"engines": {
"node": ">= 0.6"
@@ -44121,9 +44160,9 @@
"dev": true
},
"node_modules/graphql": {
- "version": "16.8.1",
- "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz",
- "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==",
+ "version": "16.8.2",
+ "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.2.tgz",
+ "integrity": "sha512-cvVIBILwuoSyD54U4cF/UXDh5yAobhNV/tPygI4lZhgOIJQE/WLWC4waBRb4I6bDVYb3OVx3lfHbaQOEoUD5sg==",
"engines": {
"node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0"
}
@@ -54440,9 +54479,9 @@
}
},
"node_modules/nanoid": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
- "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+ "version": "3.3.8",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
+ "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
"funding": [
{
"type": "github",
@@ -54564,11 +54603,11 @@
"integrity": "sha512-xNbNjp/6M5vUV+mststgneJN9eJeJCDSYSBTaf3vxgvcKooP+8L0ATFpM8DGfmH7UWKJeoa24Qi33tBP9Ya3zA=="
},
"node_modules/next": {
- "version": "14.2.16",
- "resolved": "https://registry.npmjs.org/next/-/next-14.2.16.tgz",
- "integrity": "sha512-LcO7WnFu6lYSvCzZoo1dB+IO0xXz5uEv52HF1IUN0IqVTUIZGHuuR10I5efiLadGt+4oZqTcNZyVVEem/TM5nA==",
+ "version": "14.2.17",
+ "resolved": "https://registry.npmjs.org/next/-/next-14.2.17.tgz",
+ "integrity": "sha512-hNo/Zy701DDO3nzKkPmsLRlDfNCtb1OJxFUvjGEl04u7SFa3zwC6hqsOUzMajcaEOEV8ey1GjvByvrg0Qr5AiQ==",
"dependencies": {
- "@next/env": "14.2.16",
+ "@next/env": "14.2.17",
"@swc/helpers": "0.5.5",
"busboy": "1.6.0",
"caniuse-lite": "^1.0.30001579",
@@ -54583,15 +54622,15 @@
"node": ">=18.17.0"
},
"optionalDependencies": {
- "@next/swc-darwin-arm64": "14.2.16",
- "@next/swc-darwin-x64": "14.2.16",
- "@next/swc-linux-arm64-gnu": "14.2.16",
- "@next/swc-linux-arm64-musl": "14.2.16",
- "@next/swc-linux-x64-gnu": "14.2.16",
- "@next/swc-linux-x64-musl": "14.2.16",
- "@next/swc-win32-arm64-msvc": "14.2.16",
- "@next/swc-win32-ia32-msvc": "14.2.16",
- "@next/swc-win32-x64-msvc": "14.2.16"
+ "@next/swc-darwin-arm64": "14.2.17",
+ "@next/swc-darwin-x64": "14.2.17",
+ "@next/swc-linux-arm64-gnu": "14.2.17",
+ "@next/swc-linux-arm64-musl": "14.2.17",
+ "@next/swc-linux-x64-gnu": "14.2.17",
+ "@next/swc-linux-x64-musl": "14.2.17",
+ "@next/swc-win32-arm64-msvc": "14.2.17",
+ "@next/swc-win32-ia32-msvc": "14.2.17",
+ "@next/swc-win32-x64-msvc": "14.2.17"
},
"peerDependencies": {
"@opentelemetry/api": "^1.1.0",
@@ -63789,13 +63828,13 @@
}
},
"node_modules/rollup": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.1.tgz",
- "integrity": "sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.28.1.tgz",
+ "integrity": "sha512-61fXYl/qNVinKmGSTHAZ6Yy8I3YIJC/r2m9feHo6SwVAVcLT5MPwOUFe7EuURA/4m0NR8lXG4BBXuo/IZEsjMg==",
"optional": true,
"peer": true,
"dependencies": {
- "@types/estree": "1.0.5"
+ "@types/estree": "1.0.6"
},
"bin": {
"rollup": "dist/bin/rollup"
@@ -63805,22 +63844,25 @@
"npm": ">=8.0.0"
},
"optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.18.1",
- "@rollup/rollup-android-arm64": "4.18.1",
- "@rollup/rollup-darwin-arm64": "4.18.1",
- "@rollup/rollup-darwin-x64": "4.18.1",
- "@rollup/rollup-linux-arm-gnueabihf": "4.18.1",
- "@rollup/rollup-linux-arm-musleabihf": "4.18.1",
- "@rollup/rollup-linux-arm64-gnu": "4.18.1",
- "@rollup/rollup-linux-arm64-musl": "4.18.1",
- "@rollup/rollup-linux-powerpc64le-gnu": "4.18.1",
- "@rollup/rollup-linux-riscv64-gnu": "4.18.1",
- "@rollup/rollup-linux-s390x-gnu": "4.18.1",
- "@rollup/rollup-linux-x64-gnu": "4.18.1",
- "@rollup/rollup-linux-x64-musl": "4.18.1",
- "@rollup/rollup-win32-arm64-msvc": "4.18.1",
- "@rollup/rollup-win32-ia32-msvc": "4.18.1",
- "@rollup/rollup-win32-x64-msvc": "4.18.1",
+ "@rollup/rollup-android-arm-eabi": "4.28.1",
+ "@rollup/rollup-android-arm64": "4.28.1",
+ "@rollup/rollup-darwin-arm64": "4.28.1",
+ "@rollup/rollup-darwin-x64": "4.28.1",
+ "@rollup/rollup-freebsd-arm64": "4.28.1",
+ "@rollup/rollup-freebsd-x64": "4.28.1",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.28.1",
+ "@rollup/rollup-linux-arm-musleabihf": "4.28.1",
+ "@rollup/rollup-linux-arm64-gnu": "4.28.1",
+ "@rollup/rollup-linux-arm64-musl": "4.28.1",
+ "@rollup/rollup-linux-loongarch64-gnu": "4.28.1",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.28.1",
+ "@rollup/rollup-linux-riscv64-gnu": "4.28.1",
+ "@rollup/rollup-linux-s390x-gnu": "4.28.1",
+ "@rollup/rollup-linux-x64-gnu": "4.28.1",
+ "@rollup/rollup-linux-x64-musl": "4.28.1",
+ "@rollup/rollup-win32-arm64-msvc": "4.28.1",
+ "@rollup/rollup-win32-ia32-msvc": "4.28.1",
+ "@rollup/rollup-win32-x64-msvc": "4.28.1",
"fsevents": "~2.3.2"
}
},
@@ -84247,9 +84289,9 @@
}
},
"@next/env": {
- "version": "14.2.16",
- "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.16.tgz",
- "integrity": "sha512-fLrX5TfJzHCbnZ9YUSnGW63tMV3L4nSfhgOQ0iCcX21Pt+VSTDuaLsSuL8J/2XAiVA5AnzvXDpf6pMs60QxOag=="
+ "version": "14.2.17",
+ "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.17.tgz",
+ "integrity": "sha512-MCgO7VHxXo8sYR/0z+sk9fGyJJU636JyRmkjc7ZJY8Hurl8df35qG5hoAh5KMs75FLjhlEo9bb2LGe89Y/scDA=="
},
"@next/eslint-plugin-next": {
"version": "14.2.15",
@@ -84294,57 +84336,57 @@
}
},
"@next/swc-darwin-arm64": {
- "version": "14.2.16",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.16.tgz",
- "integrity": "sha512-uFT34QojYkf0+nn6MEZ4gIWQ5aqGF11uIZ1HSxG+cSbj+Mg3+tYm8qXYd3dKN5jqKUm5rBVvf1PBRO/MeQ6rxw==",
+ "version": "14.2.17",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.17.tgz",
+ "integrity": "sha512-WiOf5nElPknrhRMTipXYTJcUz7+8IAjOYw3vXzj3BYRcVY0hRHKWgTgQ5439EvzQyHEko77XK+yN9x9OJ0oOog==",
"optional": true
},
"@next/swc-darwin-x64": {
- "version": "14.2.16",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.16.tgz",
- "integrity": "sha512-mCecsFkYezem0QiZlg2bau3Xul77VxUD38b/auAjohMA22G9KTJneUYMv78vWoCCFkleFAhY1NIvbyjj1ncG9g==",
+ "version": "14.2.17",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.17.tgz",
+ "integrity": "sha512-29y425wYnL17cvtxrDQWC3CkXe/oRrdt8ie61S03VrpwpPRI0XsnTvtKO06XCisK4alaMnZlf8riwZIbJTaSHQ==",
"optional": true
},
"@next/swc-linux-arm64-gnu": {
- "version": "14.2.16",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.16.tgz",
- "integrity": "sha512-yhkNA36+ECTC91KSyZcgWgKrYIyDnXZj8PqtJ+c2pMvj45xf7y/HrgI17hLdrcYamLfVt7pBaJUMxADtPaczHA==",
+ "version": "14.2.17",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.17.tgz",
+ "integrity": "sha512-SSHLZls3ZwNEHsc+d0ynKS+7Af0Nr8+KTUBAy9pm6xz9SHkJ/TeuEg6W3cbbcMSh6j4ITvrjv3Oi8n27VR+IPw==",
"optional": true
},
"@next/swc-linux-arm64-musl": {
- "version": "14.2.16",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.16.tgz",
- "integrity": "sha512-X2YSyu5RMys8R2lA0yLMCOCtqFOoLxrq2YbazFvcPOE4i/isubYjkh+JCpRmqYfEuCVltvlo+oGfj/b5T2pKUA==",
+ "version": "14.2.17",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.17.tgz",
+ "integrity": "sha512-VFge37us5LNPatB4F7iYeuGs9Dprqe4ZkW7lOEJM91r+Wf8EIdViWHLpIwfdDXinvCdLl6b4VyLpEBwpkctJHA==",
"optional": true
},
"@next/swc-linux-x64-gnu": {
- "version": "14.2.16",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.16.tgz",
- "integrity": "sha512-9AGcX7VAkGbc5zTSa+bjQ757tkjr6C/pKS7OK8cX7QEiK6MHIIezBLcQ7gQqbDW2k5yaqba2aDtaBeyyZh1i6Q==",
+ "version": "14.2.17",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.17.tgz",
+ "integrity": "sha512-aaQlpxUVb9RZ41adlTYVQ3xvYEfBPUC8+6rDgmQ/0l7SvK8S1YNJzPmDPX6a4t0jLtIoNk7j+nroS/pB4nx7vQ==",
"optional": true
},
"@next/swc-linux-x64-musl": {
- "version": "14.2.16",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.16.tgz",
- "integrity": "sha512-Klgeagrdun4WWDaOizdbtIIm8khUDQJ/5cRzdpXHfkbY91LxBXeejL4kbZBrpR/nmgRrQvmz4l3OtttNVkz2Sg==",
+ "version": "14.2.17",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.17.tgz",
+ "integrity": "sha512-HSyEiFaEY3ay5iATDqEup5WAfrhMATNJm8dYx3ZxL+e9eKv10XKZCwtZByDoLST7CyBmyDz+OFJL1wigyXeaoA==",
"optional": true
},
"@next/swc-win32-arm64-msvc": {
- "version": "14.2.16",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.16.tgz",
- "integrity": "sha512-PwW8A1UC1Y0xIm83G3yFGPiOBftJK4zukTmk7DI1CebyMOoaVpd8aSy7K6GhobzhkjYvqS/QmzcfsWG2Dwizdg==",
+ "version": "14.2.17",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.17.tgz",
+ "integrity": "sha512-h5qM9Btqv87eYH8ArrnLoAHLyi79oPTP2vlGNSg4CDvUiXgi7l0+5KuEGp5pJoMhjuv9ChRdm7mRlUUACeBt4w==",
"optional": true
},
"@next/swc-win32-ia32-msvc": {
- "version": "14.2.16",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.16.tgz",
- "integrity": "sha512-jhPl3nN0oKEshJBNDAo0etGMzv0j3q3VYorTSFqH1o3rwv1MQRdor27u1zhkgsHPNeY1jxcgyx1ZsCkDD1IHgg==",
+ "version": "14.2.17",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.17.tgz",
+ "integrity": "sha512-BD/G++GKSLexQjdyoEUgyo5nClU7er5rK0sE+HlEqnldJSm96CIr/+YOTT063LVTT/dUOeQsNgp5DXr86/K7/A==",
"optional": true
},
"@next/swc-win32-x64-msvc": {
- "version": "14.2.16",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.16.tgz",
- "integrity": "sha512-OA7NtfxgirCjfqt+02BqxC3MIgM/JaGjw9tOe4fyZgPsqfseNiMPnCRP44Pfs+Gpo9zPN+SXaFsgP6vk8d571A==",
+ "version": "14.2.17",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.17.tgz",
+ "integrity": "sha512-vkQfN1+4V4KqDibkW2q0sJ6CxQuXq5l2ma3z0BRcfIqkAMZiiW67T9yCpwqJKP68QghBtPEFjPAlaqe38O6frw==",
"optional": true
},
"@neynar/nodejs-sdk": {
@@ -89694,114 +89736,135 @@
"integrity": "sha512-C7c51Nn4yTxXFKvgh2txJFNweaVcfUPQxwEUFw4aWsCmfiBDJsTSwviIF8EcwjQ6k8bPyMWCl1vw4BdxE569Cg=="
},
"@rollup/rollup-android-arm-eabi": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.1.tgz",
- "integrity": "sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.1.tgz",
+ "integrity": "sha512-2aZp8AES04KI2dy3Ss6/MDjXbwBzj+i0GqKtWXgw2/Ma6E4jJvujryO6gJAghIRVz7Vwr9Gtl/8na3nDUKpraQ==",
"optional": true,
"peer": true
},
"@rollup/rollup-android-arm64": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.1.tgz",
- "integrity": "sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.1.tgz",
+ "integrity": "sha512-EbkK285O+1YMrg57xVA+Dp0tDBRB93/BZKph9XhMjezf6F4TpYjaUSuPt5J0fZXlSag0LmZAsTmdGGqPp4pQFA==",
"optional": true,
"peer": true
},
"@rollup/rollup-darwin-arm64": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.1.tgz",
- "integrity": "sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.1.tgz",
+ "integrity": "sha512-prduvrMKU6NzMq6nxzQw445zXgaDBbMQvmKSJaxpaZ5R1QDM8w+eGxo6Y/jhT/cLoCvnZI42oEqf9KQNYz1fqQ==",
"optional": true,
"peer": true
},
"@rollup/rollup-darwin-x64": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.1.tgz",
- "integrity": "sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.1.tgz",
+ "integrity": "sha512-WsvbOunsUk0wccO/TV4o7IKgloJ942hVFK1CLatwv6TJspcCZb9umQkPdvB7FihmdxgaKR5JyxDjWpCOp4uZlQ==",
+ "optional": true,
+ "peer": true
+ },
+ "@rollup/rollup-freebsd-arm64": {
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.1.tgz",
+ "integrity": "sha512-HTDPdY1caUcU4qK23FeeGxCdJF64cKkqajU0iBnTVxS8F7H/7BewvYoG+va1KPSL63kQ1PGNyiwKOfReavzvNA==",
+ "optional": true,
+ "peer": true
+ },
+ "@rollup/rollup-freebsd-x64": {
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.1.tgz",
+ "integrity": "sha512-m/uYasxkUevcFTeRSM9TeLyPe2QDuqtjkeoTpP9SW0XxUWfcYrGDMkO/m2tTw+4NMAF9P2fU3Mw4ahNvo7QmsQ==",
"optional": true,
"peer": true
},
"@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.1.tgz",
- "integrity": "sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.1.tgz",
+ "integrity": "sha512-QAg11ZIt6mcmzpNE6JZBpKfJaKkqTm1A9+y9O+frdZJEuhQxiugM05gnCWiANHj4RmbgeVJpTdmKRmH/a+0QbA==",
"optional": true,
"peer": true
},
"@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.1.tgz",
- "integrity": "sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.1.tgz",
+ "integrity": "sha512-dRP9PEBfolq1dmMcFqbEPSd9VlRuVWEGSmbxVEfiq2cs2jlZAl0YNxFzAQS2OrQmsLBLAATDMb3Z6MFv5vOcXg==",
"optional": true,
"peer": true
},
"@rollup/rollup-linux-arm64-gnu": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.1.tgz",
- "integrity": "sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.1.tgz",
+ "integrity": "sha512-uGr8khxO+CKT4XU8ZUH1TTEUtlktK6Kgtv0+6bIFSeiSlnGJHG1tSFSjm41uQ9sAO/5ULx9mWOz70jYLyv1QkA==",
"optional": true,
"peer": true
},
"@rollup/rollup-linux-arm64-musl": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.1.tgz",
- "integrity": "sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.1.tgz",
+ "integrity": "sha512-QF54q8MYGAqMLrX2t7tNpi01nvq5RI59UBNx+3+37zoKX5KViPo/gk2QLhsuqok05sSCRluj0D00LzCwBikb0A==",
+ "optional": true,
+ "peer": true
+ },
+ "@rollup/rollup-linux-loongarch64-gnu": {
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.28.1.tgz",
+ "integrity": "sha512-vPul4uodvWvLhRco2w0GcyZcdyBfpfDRgNKU+p35AWEbJ/HPs1tOUrkSueVbBS0RQHAf/A+nNtDpvw95PeVKOA==",
"optional": true,
"peer": true
},
"@rollup/rollup-linux-powerpc64le-gnu": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.1.tgz",
- "integrity": "sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.1.tgz",
+ "integrity": "sha512-pTnTdBuC2+pt1Rmm2SV7JWRqzhYpEILML4PKODqLz+C7Ou2apEV52h19CR7es+u04KlqplggmN9sqZlekg3R1A==",
"optional": true,
"peer": true
},
"@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.1.tgz",
- "integrity": "sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.1.tgz",
+ "integrity": "sha512-vWXy1Nfg7TPBSuAncfInmAI/WZDd5vOklyLJDdIRKABcZWojNDY0NJwruY2AcnCLnRJKSaBgf/GiJfauu8cQZA==",
"optional": true,
"peer": true
},
"@rollup/rollup-linux-s390x-gnu": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.1.tgz",
- "integrity": "sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.1.tgz",
+ "integrity": "sha512-/yqC2Y53oZjb0yz8PVuGOQQNOTwxcizudunl/tFs1aLvObTclTwZ0JhXF2XcPT/zuaymemCDSuuUPXJJyqeDOg==",
"optional": true,
"peer": true
},
"@rollup/rollup-linux-x64-gnu": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.1.tgz",
- "integrity": "sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.1.tgz",
+ "integrity": "sha512-fzgeABz7rrAlKYB0y2kSEiURrI0691CSL0+KXwKwhxvj92VULEDQLpBYLHpF49MSiPG4sq5CK3qHMnb9tlCjBw==",
"optional": true,
"peer": true
},
"@rollup/rollup-linux-x64-musl": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.1.tgz",
- "integrity": "sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.1.tgz",
+ "integrity": "sha512-xQTDVzSGiMlSshpJCtudbWyRfLaNiVPXt1WgdWTwWz9n0U12cI2ZVtWe/Jgwyv/6wjL7b66uu61Vg0POWVfz4g==",
"optional": true,
"peer": true
},
"@rollup/rollup-win32-arm64-msvc": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.1.tgz",
- "integrity": "sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.1.tgz",
+ "integrity": "sha512-wSXmDRVupJstFP7elGMgv+2HqXelQhuNf+IS4V+nUpNVi/GUiBgDmfwD0UGN3pcAnWsgKG3I52wMOBnk1VHr/A==",
"optional": true,
"peer": true
},
"@rollup/rollup-win32-ia32-msvc": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.1.tgz",
- "integrity": "sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.1.tgz",
+ "integrity": "sha512-ZkyTJ/9vkgrE/Rk9vhMXhf8l9D+eAhbAVbsGsXKy2ohmJaWg0LPQLnIxRdRp/bKyr8tXuPlXhIoGlEB5XpJnGA==",
"optional": true,
"peer": true
},
"@rollup/rollup-win32-x64-msvc": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.1.tgz",
- "integrity": "sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.1.tgz",
+ "integrity": "sha512-ZvK2jBafvttJjoIdKm/Q/Bh7IJ1Ose9IBOwpOXcOvW3ikGTQGmKDgxTC6oCAzW6PynbkKP8+um1du81XJHZ0JA==",
"optional": true,
"peer": true
},
@@ -94791,9 +94854,9 @@
}
},
"@types/estree": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
- "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
+ "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw=="
},
"@types/express": {
"version": "4.17.21",
@@ -100868,9 +100931,9 @@
"integrity": "sha512-1KX9ESmtl8xpT2LN2tFnKSbV4NiarbVi8DVb39ZriijvtTklyrT+4dT1wsGMHKD3CJUjXgvJzstm9qL9ICojGA=="
},
"cookie": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.0.tgz",
- "integrity": "sha512-qCf+V4dtlNhSRXGAZatc1TasyFO6GjohcOul807YOb5ik3+kQSnb4d7iajeCL8QHaJ4uZEjCgiCJerKXwdRVlQ==",
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
+ "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
"dev": true
},
"cookie-es": {
@@ -106332,9 +106395,9 @@
"dev": true
},
"graphql": {
- "version": "16.8.1",
- "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz",
- "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw=="
+ "version": "16.8.2",
+ "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.2.tgz",
+ "integrity": "sha512-cvVIBILwuoSyD54U4cF/UXDh5yAobhNV/tPygI4lZhgOIJQE/WLWC4waBRb4I6bDVYb3OVx3lfHbaQOEoUD5sg=="
},
"graphql-relay": {
"version": "0.10.2",
@@ -114140,9 +114203,9 @@
"integrity": "sha512-bYYwNCdNc5ea6/Lwh1uioU1/7aaKa3EPmNQ2weTm8PWSpbWrsaWHePe0Zq4SF+D3F3JX3cn+QdktOPCf1meOqw=="
},
"nanoid": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
- "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g=="
+ "version": "3.3.8",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
+ "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w=="
},
"nanoid-dictionary": {
"version": "3.0.0",
@@ -114233,20 +114296,20 @@
"integrity": "sha512-xNbNjp/6M5vUV+mststgneJN9eJeJCDSYSBTaf3vxgvcKooP+8L0ATFpM8DGfmH7UWKJeoa24Qi33tBP9Ya3zA=="
},
"next": {
- "version": "14.2.16",
- "resolved": "https://registry.npmjs.org/next/-/next-14.2.16.tgz",
- "integrity": "sha512-LcO7WnFu6lYSvCzZoo1dB+IO0xXz5uEv52HF1IUN0IqVTUIZGHuuR10I5efiLadGt+4oZqTcNZyVVEem/TM5nA==",
- "requires": {
- "@next/env": "14.2.16",
- "@next/swc-darwin-arm64": "14.2.16",
- "@next/swc-darwin-x64": "14.2.16",
- "@next/swc-linux-arm64-gnu": "14.2.16",
- "@next/swc-linux-arm64-musl": "14.2.16",
- "@next/swc-linux-x64-gnu": "14.2.16",
- "@next/swc-linux-x64-musl": "14.2.16",
- "@next/swc-win32-arm64-msvc": "14.2.16",
- "@next/swc-win32-ia32-msvc": "14.2.16",
- "@next/swc-win32-x64-msvc": "14.2.16",
+ "version": "14.2.17",
+ "resolved": "https://registry.npmjs.org/next/-/next-14.2.17.tgz",
+ "integrity": "sha512-hNo/Zy701DDO3nzKkPmsLRlDfNCtb1OJxFUvjGEl04u7SFa3zwC6hqsOUzMajcaEOEV8ey1GjvByvrg0Qr5AiQ==",
+ "requires": {
+ "@next/env": "14.2.17",
+ "@next/swc-darwin-arm64": "14.2.17",
+ "@next/swc-darwin-x64": "14.2.17",
+ "@next/swc-linux-arm64-gnu": "14.2.17",
+ "@next/swc-linux-arm64-musl": "14.2.17",
+ "@next/swc-linux-x64-gnu": "14.2.17",
+ "@next/swc-linux-x64-musl": "14.2.17",
+ "@next/swc-win32-arm64-msvc": "14.2.17",
+ "@next/swc-win32-ia32-msvc": "14.2.17",
+ "@next/swc-win32-x64-msvc": "14.2.17",
"@swc/helpers": "0.5.5",
"busboy": "1.6.0",
"caniuse-lite": "^1.0.30001579",
@@ -120785,29 +120848,32 @@
}
},
"rollup": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.1.tgz",
- "integrity": "sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==",
- "optional": true,
- "peer": true,
- "requires": {
- "@rollup/rollup-android-arm-eabi": "4.18.1",
- "@rollup/rollup-android-arm64": "4.18.1",
- "@rollup/rollup-darwin-arm64": "4.18.1",
- "@rollup/rollup-darwin-x64": "4.18.1",
- "@rollup/rollup-linux-arm-gnueabihf": "4.18.1",
- "@rollup/rollup-linux-arm-musleabihf": "4.18.1",
- "@rollup/rollup-linux-arm64-gnu": "4.18.1",
- "@rollup/rollup-linux-arm64-musl": "4.18.1",
- "@rollup/rollup-linux-powerpc64le-gnu": "4.18.1",
- "@rollup/rollup-linux-riscv64-gnu": "4.18.1",
- "@rollup/rollup-linux-s390x-gnu": "4.18.1",
- "@rollup/rollup-linux-x64-gnu": "4.18.1",
- "@rollup/rollup-linux-x64-musl": "4.18.1",
- "@rollup/rollup-win32-arm64-msvc": "4.18.1",
- "@rollup/rollup-win32-ia32-msvc": "4.18.1",
- "@rollup/rollup-win32-x64-msvc": "4.18.1",
- "@types/estree": "1.0.5",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.28.1.tgz",
+ "integrity": "sha512-61fXYl/qNVinKmGSTHAZ6Yy8I3YIJC/r2m9feHo6SwVAVcLT5MPwOUFe7EuURA/4m0NR8lXG4BBXuo/IZEsjMg==",
+ "optional": true,
+ "peer": true,
+ "requires": {
+ "@rollup/rollup-android-arm-eabi": "4.28.1",
+ "@rollup/rollup-android-arm64": "4.28.1",
+ "@rollup/rollup-darwin-arm64": "4.28.1",
+ "@rollup/rollup-darwin-x64": "4.28.1",
+ "@rollup/rollup-freebsd-arm64": "4.28.1",
+ "@rollup/rollup-freebsd-x64": "4.28.1",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.28.1",
+ "@rollup/rollup-linux-arm-musleabihf": "4.28.1",
+ "@rollup/rollup-linux-arm64-gnu": "4.28.1",
+ "@rollup/rollup-linux-arm64-musl": "4.28.1",
+ "@rollup/rollup-linux-loongarch64-gnu": "4.28.1",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.28.1",
+ "@rollup/rollup-linux-riscv64-gnu": "4.28.1",
+ "@rollup/rollup-linux-s390x-gnu": "4.28.1",
+ "@rollup/rollup-linux-x64-gnu": "4.28.1",
+ "@rollup/rollup-linux-x64-musl": "4.28.1",
+ "@rollup/rollup-win32-arm64-msvc": "4.28.1",
+ "@rollup/rollup-win32-ia32-msvc": "4.28.1",
+ "@rollup/rollup-win32-x64-msvc": "4.28.1",
+ "@types/estree": "1.0.6",
"fsevents": "~2.3.2"
}
},
diff --git a/package.json b/package.json
index b375c39e61..72abd35325 100644
--- a/package.json
+++ b/package.json
@@ -257,7 +257,7 @@
"frames.js": "^0.18.1",
"gaxios": "^5.0.2",
"google-auth-library": "^8.7.0",
- "graphql": "^16.8.1",
+ "graphql": "^16.8.2",
"hot-shots": "^9.0.0",
"html-to-text": "^8.2.0",
"i": "^0.3.7",
@@ -279,9 +279,9 @@
"millify": "^4.0.0",
"mixpanel": "^0.17.0",
"msw-storybook-addon": "^2.0.0",
- "nanoid": "^3.3.6",
+ "nanoid": "^3.3.8",
"nanoid-dictionary": "^3.0.0",
- "next": "^14.2.16",
+ "next": "^14.2.17",
"next-bundle-analyzer": "^0.6.8",
"next-connect": "^0.13.0",
"next-swagger-doc": "^0.3.6",
@@ -421,7 +421,7 @@
"aws-cdk": "^2.151.0",
"chromatic": "^6.21.0",
"concurrently": "^8.2.1",
- "cookie": "^0.7.0",
+ "cookie": "^0.7.1",
"cross-env": "^7.0.3",
"dependency-cruiser": "^13.1.5",
"dotenv": "^16.3.1",
diff --git a/packages/mixpanel/src/utils.ts b/packages/mixpanel/src/utils.ts
index 506372ecd9..a92a3e0754 100644
--- a/packages/mixpanel/src/utils.ts
+++ b/packages/mixpanel/src/utils.ts
@@ -45,7 +45,7 @@ export function getUTMParamsFromSearch(searchString: string): UTMParams | undefi
};
}
-const platform = env('SCOUTGAME_PLATFORM') || process.env.REACT_APP_SCOUTGAME_PLATFORM;
+const platform = env('SCOUTGAME_PLATFORM') || process.env.REACT_APP_SCOUTGAME_PLATFORM || 'webapp';
function isPlatform(_platform: string = ''): _platform is ReferralPlatform {
const availablePlatforms = Object.values(ReferralPlatform);
diff --git a/apps/scoutgame/components/builders/BuilderInviteCard/BuilderInviteCard.tsx b/packages/scoutgame-ui/src/components/builders/BuilderInviteCard/BuilderInviteCard.tsx
similarity index 93%
rename from apps/scoutgame/components/builders/BuilderInviteCard/BuilderInviteCard.tsx
rename to packages/scoutgame-ui/src/components/builders/BuilderInviteCard/BuilderInviteCard.tsx
index 4d3334402b..df1a4cb94f 100644
--- a/apps/scoutgame/components/builders/BuilderInviteCard/BuilderInviteCard.tsx
+++ b/packages/scoutgame-ui/src/components/builders/BuilderInviteCard/BuilderInviteCard.tsx
@@ -1,13 +1,13 @@
'use client';
import { Button, Divider, List, ListItem, ListItemText, Paper, Stack, Typography } from '@mui/material';
-import { JoinGithubButton } from '@packages/scoutgame-ui/components/common/JoinGithubButton';
-import { useMdScreen } from '@packages/scoutgame-ui/hooks/useMediaScreens';
-import { useUser } from '@packages/scoutgame-ui/providers/UserProvider';
import Image from 'next/image';
import { useState } from 'react';
-import { Dialog } from 'components/common/Dialog';
+import { useMdScreen } from '../../../hooks/useMediaScreens';
+import { useUser } from '../../../providers/UserProvider';
+import { Dialog } from '../../common/Dialog';
+import { JoinGithubButton } from '../../common/JoinGithubButton';
function InviteModal({ open, onClose, signedIn }: { open: boolean; onClose: () => void; signedIn: boolean }) {
return (
diff --git a/apps/scoutgame/components/builders/BuilderPageTable/BuilderPageTable.tsx b/packages/scoutgame-ui/src/components/builders/BuilderPageTable/BuilderPageTable.tsx
similarity index 90%
rename from apps/scoutgame/components/builders/BuilderPageTable/BuilderPageTable.tsx
rename to packages/scoutgame-ui/src/components/builders/BuilderPageTable/BuilderPageTable.tsx
index d81474e425..fc1eb08fb8 100644
--- a/apps/scoutgame/components/builders/BuilderPageTable/BuilderPageTable.tsx
+++ b/packages/scoutgame-ui/src/components/builders/BuilderPageTable/BuilderPageTable.tsx
@@ -1,10 +1,9 @@
import 'server-only';
import { getBuilderActivities } from '@packages/scoutgame/builders/getBuilderActivities';
+import { getLeaderboard } from '@packages/scoutgame/builders/getLeaderboard';
import { safeAwaitSSRData } from '@packages/scoutgame/utils/async';
-import { getLeaderboard } from 'lib/builders/getLeaderboard';
-
import { ActivityTable } from './components/ActivityTable';
import { LeaderboardTable } from './components/LeaderboardTable';
diff --git a/packages/scoutgame-ui/src/components/builders/BuilderPageTable/components/ActivityTable.tsx b/packages/scoutgame-ui/src/components/builders/BuilderPageTable/components/ActivityTable.tsx
new file mode 100644
index 0000000000..b2acf7889d
--- /dev/null
+++ b/packages/scoutgame-ui/src/components/builders/BuilderPageTable/components/ActivityTable.tsx
@@ -0,0 +1,190 @@
+import { Stack, TableHead, Typography } from '@mui/material';
+import Table from '@mui/material/Table';
+import TableBody from '@mui/material/TableBody';
+import TableCell from '@mui/material/TableCell';
+import type { BonusPartner } from '@packages/scoutgame/bonus';
+import { bonusPartnersRecord } from '@packages/scoutgame/bonus';
+import type { BuilderActivity } from '@packages/scoutgame/builders/getBuilderActivities';
+import { getRelativeTime } from '@packages/utils/dates';
+import Image from 'next/image';
+import Link from 'next/link';
+import { BiLike } from 'react-icons/bi';
+import { LuBookMarked } from 'react-icons/lu';
+
+import { secondaryTextColorDarkMode } from '../../../../theme/colors';
+import { Avatar } from '../../../common/Avatar';
+import { Hidden } from '../../../common/Hidden';
+import { GemsIcon } from '../../../common/Icons';
+import {
+ BuilderActivityGems,
+ getActivityLabel
+} from '../../../profile/components/BuilderProfile/BuilderActivitiesList';
+
+import { CommonTableRow } from './CommonTableRow';
+import { TableCellText } from './TableCellText';
+
+export function BuilderActivityAction({ activity }: { activity: BuilderActivity }) {
+ return (
+
+
+ {activity.type === 'github_event' ? (
+ activity.bonusPartner && bonusPartnersRecord[activity.bonusPartner as BonusPartner] ? (
+
+ ) : (
+
+ )
+ ) : activity.type === 'nft_purchase' ? (
+
+ ) : null}
+
+
+
+ {getActivityLabel(activity)}
+
+
+
+
+ {getActivityLabel(activity, true)}
+
+
+
+
+
+
+ {activity.type === 'nft_purchase' && (
+
+ {activity.scout.displayName}
+
+ )}
+ {activity.type === 'github_event' && (
+
+ {activity.repo}
+
+ )}
+
+
+ );
+}
+
+export function ActivityTable({ activities }: { activities: BuilderActivity[] }) {
+ return (
+
+
+
+ BUILDER
+
+
+ ACTION
+
+
+ EARNED
+
+
+
+
+
+
+
+
+
+ {activities.map((activity) => {
+ const relativeTime = getRelativeTime(activity.createdAt)
+ ?.replace(' days', 'd')
+ ?.replace(' day', 'd')
+ ?.replace(' hrs.', 'h')
+ ?.replace(' hr.', 'h')
+ ?.replace(' min.', 'm')
+ ?.replace(' sec.', 's');
+
+ return (
+
+
+
+
+ {activity.displayName}
+
+
+
+
+
+
+
+
+ {relativeTime}
+
+
+ );
+ })}
+
+
+ );
+}
diff --git a/apps/scoutgame/components/builders/BuilderPageTable/components/CommonTableRow.tsx b/packages/scoutgame-ui/src/components/builders/BuilderPageTable/components/CommonTableRow.tsx
similarity index 94%
rename from apps/scoutgame/components/builders/BuilderPageTable/components/CommonTableRow.tsx
rename to packages/scoutgame-ui/src/components/builders/BuilderPageTable/components/CommonTableRow.tsx
index 3f58d79aa8..3eae865f57 100644
--- a/apps/scoutgame/components/builders/BuilderPageTable/components/CommonTableRow.tsx
+++ b/packages/scoutgame-ui/src/components/builders/BuilderPageTable/components/CommonTableRow.tsx
@@ -12,13 +12,13 @@ const tableRowSx = {
'&:first-of-type': {
paddingLeft: {
xs: '10px',
- md: '20px'
+ md: '15px'
}
},
'&:last-child': {
paddingRight: {
xs: '10px',
- md: '20px'
+ md: '15px'
}
}
}
diff --git a/apps/scoutgame/components/builders/BuilderPageTable/components/LeaderboardTable.tsx b/packages/scoutgame-ui/src/components/builders/BuilderPageTable/components/LeaderboardTable.tsx
similarity index 89%
rename from apps/scoutgame/components/builders/BuilderPageTable/components/LeaderboardTable.tsx
rename to packages/scoutgame-ui/src/components/builders/BuilderPageTable/components/LeaderboardTable.tsx
index bf21e8f973..c903138520 100644
--- a/apps/scoutgame/components/builders/BuilderPageTable/components/LeaderboardTable.tsx
+++ b/packages/scoutgame-ui/src/components/builders/BuilderPageTable/components/LeaderboardTable.tsx
@@ -4,14 +4,14 @@ import { Box, Stack, TableHead } from '@mui/material';
import Table from '@mui/material/Table';
import TableBody from '@mui/material/TableBody';
import TableCell from '@mui/material/TableCell';
+import type { LeaderBoardRow } from '@packages/scoutgame/builders/getLeaderboard';
import type { ISOWeek } from '@packages/scoutgame/dates';
-import { Avatar } from '@packages/scoutgame-ui/components/common/Avatar';
-import { getSXProps } from '@packages/scoutgame-ui/components/common/Hidden';
-import { GemsIcon } from '@packages/scoutgame-ui/components/common/Icons';
-import { ScoutButton } from '@packages/scoutgame-ui/components/common/ScoutButton/ScoutButton';
import Link from 'next/link';
-import type { LeaderBoardRow } from 'lib/builders/getLeaderboard';
+import { Avatar } from '../../../common/Avatar';
+import { getSXProps } from '../../../common/Hidden';
+import { GemsIcon } from '../../../common/Icons';
+import { ScoutButton } from '../../../common/ScoutButton/ScoutButton';
import { CommonTableRow } from './CommonTableRow';
import { TableCellText } from './TableCellText';
diff --git a/apps/scoutgame/components/builders/BuilderPageTable/components/TableCellText.tsx b/packages/scoutgame-ui/src/components/builders/BuilderPageTable/components/TableCellText.tsx
similarity index 100%
rename from apps/scoutgame/components/builders/BuilderPageTable/components/TableCellText.tsx
rename to packages/scoutgame-ui/src/components/builders/BuilderPageTable/components/TableCellText.tsx
diff --git a/apps/scoutgame/components/builders/BuilderPageTable/components/WeekTableHead.tsx b/packages/scoutgame-ui/src/components/builders/BuilderPageTable/components/WeekTableHead.tsx
similarity index 100%
rename from apps/scoutgame/components/builders/BuilderPageTable/components/WeekTableHead.tsx
rename to packages/scoutgame-ui/src/components/builders/BuilderPageTable/components/WeekTableHead.tsx
diff --git a/apps/scoutgame/components/builders/BuildersPage.tsx b/packages/scoutgame-ui/src/components/builders/BuildersPage.tsx
similarity index 86%
rename from apps/scoutgame/components/builders/BuildersPage.tsx
rename to packages/scoutgame-ui/src/components/builders/BuildersPage.tsx
index d12fbf2d54..cf96bbb7af 100644
--- a/apps/scoutgame/components/builders/BuildersPage.tsx
+++ b/packages/scoutgame-ui/src/components/builders/BuildersPage.tsx
@@ -1,9 +1,11 @@
+import 'server-only';
+
import { Grid2 as Grid, Stack, Typography } from '@mui/material';
-import { HeaderMessage } from '@packages/scoutgame-ui/components/common/Header/HeaderMessage';
-import { TabsMenu, type TabItem } from '@packages/scoutgame-ui/components/common/Tabs/TabsMenu';
import { Suspense } from 'react';
-import { LoadingTable } from 'components/common/Loading/LoadingTable';
+import { HeaderMessage } from '../common/Header/HeaderMessage';
+import { LoadingTable } from '../common/Loading/LoadingTable';
+import { TabsMenu, type TabItem } from '../common/Tabs/TabsMenu';
import { BuilderPageInviteCard } from './BuilderInviteCard/BuilderInviteCard';
import { BuilderPageTable } from './BuilderPageTable/BuilderPageTable';
@@ -26,7 +28,7 @@ export function BuildersPage({ week, tab }: { week: string; tab: string }) {
xs: 'calc(100vh - 165px)'
}}
>
-
+
-
+
diff --git a/apps/scoutgame/components/builders/PartnerRewardsCarousel/PartnerRewardsCarousel.tsx b/packages/scoutgame-ui/src/components/builders/PartnerRewardsCarousel/PartnerRewardsCarousel.tsx
similarity index 92%
rename from apps/scoutgame/components/builders/PartnerRewardsCarousel/PartnerRewardsCarousel.tsx
rename to packages/scoutgame-ui/src/components/builders/PartnerRewardsCarousel/PartnerRewardsCarousel.tsx
index 4c773162f6..626cb0c2ef 100644
--- a/apps/scoutgame/components/builders/PartnerRewardsCarousel/PartnerRewardsCarousel.tsx
+++ b/packages/scoutgame-ui/src/components/builders/PartnerRewardsCarousel/PartnerRewardsCarousel.tsx
@@ -1,11 +1,12 @@
'use client';
import { Box } from '@mui/material';
-import { Carousel } from '@packages/scoutgame-ui/components/common/Carousel/Carousel';
-import { useMdScreen } from '@packages/scoutgame-ui/hooks/useMediaScreens';
import Image from 'next/image';
import Link from 'next/link';
+import { useMdScreen } from '../../../hooks/useMediaScreens';
+import { Carousel } from '../../common/Carousel/Carousel';
+
const partnerInfos = [
{ logo: 'talent.jpg', name: 'talent', infoPath: 'talent-protocol' },
{ logo: 'celo.png', name: 'celo', infoPath: 'celo' },
@@ -56,6 +57,7 @@ export function PartnerRewardsCarousel() {
``
}
diff --git a/packages/scoutgame-ui/src/components/claim/ClaimPage.tsx b/packages/scoutgame-ui/src/components/claim/ClaimPage.tsx
index 7e2d7aec4f..1d26ad3956 100644
--- a/packages/scoutgame-ui/src/components/claim/ClaimPage.tsx
+++ b/packages/scoutgame-ui/src/components/claim/ClaimPage.tsx
@@ -2,8 +2,9 @@ import { Stack } from '@mui/material';
import type { BonusPartner } from '@packages/scoutgame/bonus';
import { Suspense } from 'react';
+import { LoadingTable } from '../common/Loading/LoadingTable';
+
import { BuilderRewardsScreen } from './components/BuilderRewardsScreen/BuilderRewardsScreen';
-import { LoadingTable } from './components/common/LoadingTable';
import { PointsClaimScreen } from './components/PointsClaimScreen/PointsClaimScreen';
import { ClaimedPointsTable } from './components/PointsTable/ClaimedPointsTable';
import { UnclaimedPointsTable } from './components/PointsTable/UnclaimedPointsTable';
diff --git a/packages/scoutgame-ui/src/components/claim/components/BuilderRewardsScreen/BuilderRewardsScreen.tsx b/packages/scoutgame-ui/src/components/claim/components/BuilderRewardsScreen/BuilderRewardsScreen.tsx
index a2b79deb4e..d1a272b5f8 100644
--- a/packages/scoutgame-ui/src/components/claim/components/BuilderRewardsScreen/BuilderRewardsScreen.tsx
+++ b/packages/scoutgame-ui/src/components/claim/components/BuilderRewardsScreen/BuilderRewardsScreen.tsx
@@ -1,6 +1,6 @@
import ChevronLeftIcon from '@mui/icons-material/ChevronLeft';
import ChevronRightIcon from '@mui/icons-material/ChevronRight';
-import { IconButton, Paper, Stack, Typography } from '@mui/material';
+import { IconButton, Stack, Typography } from '@mui/material';
import {
getLastWeek,
currentSeason,
@@ -12,8 +12,8 @@ import {
import Link from 'next/link';
import { Suspense } from 'react';
+import { LoadingTable } from '../../../common/Loading/LoadingTable';
import { TabsMenu } from '../../../common/Tabs/TabsMenu';
-import { LoadingTable } from '../common/LoadingTable';
import { BuilderRewardsTableContainer } from './BuilderRewardsTableContainer';
@@ -25,13 +25,11 @@ export function BuilderRewardsScreen({ period }: { period: string }) {
const nextWeek = week ? (week === lastWeek ? null : getNextWeek(week)) : null;
return (
-
+
Builder Rewards
-
- See how many Scout Points your Builders have earned for you!
-
+ See how many Scout Points your Builders have earned for you!
Time to scout some Builders!
diff --git a/packages/scoutgame-ui/src/components/claim/components/PointsClaimScreen/PointsClaimScreen.tsx b/packages/scoutgame-ui/src/components/claim/components/PointsClaimScreen/PointsClaimScreen.tsx
index c9ffb96fc3..9657de76c1 100644
--- a/packages/scoutgame-ui/src/components/claim/components/PointsClaimScreen/PointsClaimScreen.tsx
+++ b/packages/scoutgame-ui/src/components/claim/components/PointsClaimScreen/PointsClaimScreen.tsx
@@ -60,7 +60,6 @@ export function PointsClaimScreen({
padding: 4,
borderRadius: 2,
display: 'flex',
- backgroundColor: 'background.dark',
width: '100%',
alignItems: 'center',
justifyContent: 'center',
diff --git a/packages/scoutgame-ui/src/components/claim/components/PointsTable/PointsTable.tsx b/packages/scoutgame-ui/src/components/claim/components/PointsTable/PointsTable.tsx
index 926d3f9eda..d1c6d8bccf 100644
--- a/packages/scoutgame-ui/src/components/claim/components/PointsTable/PointsTable.tsx
+++ b/packages/scoutgame-ui/src/components/claim/components/PointsTable/PointsTable.tsx
@@ -29,10 +29,8 @@ export function PointsTable({
px: 2.5,
py: 4,
display: 'flex',
- mt: 0,
justifyContent: 'center',
- alignItems: 'center',
- backgroundColor: 'background.dark'
+ alignItems: 'center'
}}
>
diff --git a/packages/scoutgame-ui/src/components/common/Card/BuilderCard/BuilderCard.tsx b/packages/scoutgame-ui/src/components/common/Card/BuilderCard/BuilderCard.tsx
index edac685ce8..7d76ab6906 100644
--- a/packages/scoutgame-ui/src/components/common/Card/BuilderCard/BuilderCard.tsx
+++ b/packages/scoutgame-ui/src/components/common/Card/BuilderCard/BuilderCard.tsx
@@ -17,7 +17,7 @@ export function BuilderCard({
showHotIcon = false,
size = 'medium',
disableProfileUrl = false,
- disableStarterCardPoints = false
+ markStarterCardPurchased = false
}: {
size?: 'x-small' | 'small' | 'medium' | 'large';
builder: Omit, RequiredBuilderInfoFields> & Pick;
@@ -25,7 +25,7 @@ export function BuilderCard({
showPurchaseButton?: boolean;
showHotIcon?: boolean;
disableProfileUrl?: boolean;
- disableStarterCardPoints?: boolean;
+ markStarterCardPurchased?: boolean;
}) {
return (
{typeof builder.price !== 'undefined' && showPurchaseButton && (
-
+
)}
diff --git a/packages/scoutgame-ui/src/components/common/Carousel/Carousel.tsx b/packages/scoutgame-ui/src/components/common/Carousel/Carousel.tsx
index fb85cd6723..065fee6db1 100644
--- a/packages/scoutgame-ui/src/components/common/Carousel/Carousel.tsx
+++ b/packages/scoutgame-ui/src/components/common/Carousel/Carousel.tsx
@@ -31,6 +31,7 @@ export function Carousel({
renderBullet,
boxProps,
mobileMinHeight,
+ autoplay,
showMobileNavigationArrows,
...swiperProps
}: CarouselProps) {
@@ -63,12 +64,12 @@ export function Carousel({
>
{children.map((child, index) => (
{child}
@@ -104,8 +110,8 @@ export function Carousel({
swiperProps.slidesPerView &&
children.length > swiperProps.slidesPerView && (
<>
-
-
+
+
>
)}
diff --git a/packages/scoutgame-ui/src/components/common/Gallery/BuildersGallery.tsx b/packages/scoutgame-ui/src/components/common/Gallery/BuildersGallery.tsx
index 94d984426a..98707f7140 100644
--- a/packages/scoutgame-ui/src/components/common/Gallery/BuildersGallery.tsx
+++ b/packages/scoutgame-ui/src/components/common/Gallery/BuildersGallery.tsx
@@ -8,13 +8,13 @@ export function BuildersGallery({
columns = 6,
showHotIcon = false,
size = 'medium',
- disableStarterCardPoints = false
+ markStarterCardPurchased = false
}: {
builders: BuilderInfo[];
columns?: number;
showHotIcon?: boolean;
size?: 'small' | 'medium' | 'large';
- disableStarterCardPoints?: boolean;
+ markStarterCardPurchased?: boolean;
}) {
return (
@@ -36,7 +36,7 @@ export function BuildersGallery({
showPurchaseButton
showHotIcon={showHotIcon}
size={size}
- disableStarterCardPoints={disableStarterCardPoints}
+ markStarterCardPurchased={markStarterCardPurchased}
/>
diff --git a/apps/scoutgame/components/common/BuilderIcon.tsx b/packages/scoutgame-ui/src/components/common/Icons/BuilderIcon.tsx
similarity index 100%
rename from apps/scoutgame/components/common/BuilderIcon.tsx
rename to packages/scoutgame-ui/src/components/common/Icons/BuilderIcon.tsx
diff --git a/packages/scoutgame-ui/src/components/common/Icons/FriendsIcon.tsx b/packages/scoutgame-ui/src/components/common/Icons/FriendsIcon.tsx
deleted file mode 100644
index 7b7efc9661..0000000000
--- a/packages/scoutgame-ui/src/components/common/Icons/FriendsIcon.tsx
+++ /dev/null
@@ -1,34 +0,0 @@
-import { SvgIcon } from '@mui/material';
-
-export function FriendsIcon({ fill }: { fill: string }) {
- return (
-
-
-
- );
-}
diff --git a/apps/scoutgame/components/common/Icons/QuestsIcon.tsx b/packages/scoutgame-ui/src/components/common/Icons/QuestsIcon.tsx
similarity index 100%
rename from apps/scoutgame/components/common/Icons/QuestsIcon.tsx
rename to packages/scoutgame-ui/src/components/common/Icons/QuestsIcon.tsx
diff --git a/apps/scoutgametelegram/components/common/Icons/ScoutIcon.tsx b/packages/scoutgame-ui/src/components/common/Icons/ScoutIcon.tsx
similarity index 100%
rename from apps/scoutgametelegram/components/common/Icons/ScoutIcon.tsx
rename to packages/scoutgame-ui/src/components/common/Icons/ScoutIcon.tsx
diff --git a/packages/scoutgame-ui/src/components/common/Loading/LoadingCards.tsx b/packages/scoutgame-ui/src/components/common/Loading/LoadingCards.tsx
index 49ccb9c8a5..5e67f34c68 100644
--- a/packages/scoutgame-ui/src/components/common/Loading/LoadingCards.tsx
+++ b/packages/scoutgame-ui/src/components/common/Loading/LoadingCards.tsx
@@ -4,11 +4,12 @@ import { Skeleton, Stack } from '@mui/material';
import { useMdScreen } from '../../../hooks/useMediaScreens';
-export function LoadingCards() {
+export function LoadingCards({ count }: { count?: number }) {
const isDesktop = useMdScreen();
+ count = count || (isDesktop ? 5 : 2);
return (
- {new Array(isDesktop ? 5 : 2).fill('').map(() => (
+ {new Array(count).fill('').map(() => (
(null);
@@ -137,12 +138,14 @@ export function Header() {
onClose={handleCloseUserMenu}
onClick={handleCloseUserMenu}
>
-
diff --git a/apps/scoutgame/components/common/SiteNavigation.tsx b/packages/scoutgame-ui/src/components/common/Navigation/SiteNavigation.tsx
similarity index 74%
rename from apps/scoutgame/components/common/SiteNavigation.tsx
rename to packages/scoutgame-ui/src/components/common/Navigation/SiteNavigation.tsx
index a5594c17ff..4dd378f5b5 100644
--- a/apps/scoutgame/components/common/SiteNavigation.tsx
+++ b/packages/scoutgame-ui/src/components/common/Navigation/SiteNavigation.tsx
@@ -1,28 +1,26 @@
'use client';
import { BottomNavigation, BottomNavigationAction, styled } from '@mui/material';
+import { getPlatform } from '@packages/mixpanel/utils';
+import { BuilderIcon } from '@packages/scoutgame-ui/components/common/Icons/BuilderIcon';
import { ClaimIcon } from '@packages/scoutgame-ui/components/common/Icons/ClaimIcon';
import { SignInModalMessage } from '@packages/scoutgame-ui/components/common/ScoutButton/SignInModalMessage';
-import { useMdScreen } from '@packages/scoutgame-ui/hooks/useMediaScreens';
+import { useGetClaimablePoints } from '@packages/scoutgame-ui/hooks/api/session';
import { useUser } from '@packages/scoutgame-ui/providers/UserProvider';
import Link from 'next/link';
import { usePathname } from 'next/navigation';
import type { MouseEvent } from 'react';
import { useState } from 'react';
import { ImGift as QuestsIcon } from 'react-icons/im';
-import { PiBinocularsLight } from 'react-icons/pi';
-import { SlUser } from 'react-icons/sl';
-
-import { useGetClaimablePoints } from 'hooks/api/session';
-
-import { BuilderIcon } from './BuilderIcon';
+import { PiBinocularsLight as ScoutIcon } from 'react-icons/pi';
const StyledBottomNavigation = styled(BottomNavigation, {
- shouldForwardProp: (prop) => prop !== 'topNav'
-})<{ topNav?: boolean }>(({ theme, topNav }) => ({
+ shouldForwardProp: (prop) => prop !== 'topNav' && prop !== 'isTelegram'
+})<{ topNav?: boolean; isTelegram?: boolean }>(({ theme, topNav, isTelegram }) => ({
background: topNav
? 'transparent'
: 'linear-gradient(88.35deg, #96CDFF 0%, #A06CD5 29.5%, #96CDFF 75.47%, #A06CD5 100%)',
+ height: isTelegram ? '71px' : undefined,
'& > a': {
color: topNav ? theme.palette.text.primary : theme.palette.common.black,
gap: '2px',
@@ -36,6 +34,7 @@ const StyledBottomNavigation = styled(BottomNavigation, {
backgroundColor: topNav ? theme.palette.primary.main : 'rgba(44, 0, 90, 0.25)'
},
'&.MuiButtonBase-root': {
+ paddingBottom: isTelegram ? '15px' : undefined,
minWidth: '60px'
},
'& .MuiBottomNavigationAction-label': {
@@ -45,11 +44,11 @@ const StyledBottomNavigation = styled(BottomNavigation, {
}));
export function SiteNavigation({ topNav }: { topNav?: boolean }) {
+ const platform = getPlatform();
const pathname = usePathname();
const { user } = useUser();
const isAuthenticated = Boolean(user);
const value = getActiveButton(pathname);
- const isDesktop = useMdScreen();
const { data: claimablePoints } = useGetClaimablePoints();
const [authPopup, setAuthPopup] = useState({
open: false,
@@ -65,12 +64,18 @@ export function SiteNavigation({ topNav }: { topNav?: boolean }) {
return (
<>
-
+
}
+ icon={}
LinkComponent={Link}
/>
0} />}
onClick={(e) => openAuthModal?.(e, 'claim')}
/>
- {user ? (
- }
- onClick={(e) => openAuthModal?.(e, 'profile')}
- />
- ) : null}
+
diff --git a/packages/scoutgame-ui/src/components/common/ScoutButton/ScoutButton.tsx b/packages/scoutgame-ui/src/components/common/ScoutButton/ScoutButton.tsx
index da158908e5..a67df035d3 100644
--- a/packages/scoutgame-ui/src/components/common/ScoutButton/ScoutButton.tsx
+++ b/packages/scoutgame-ui/src/components/common/ScoutButton/ScoutButton.tsx
@@ -25,10 +25,10 @@ const NFTPurchaseDialog = dynamic(
export function ScoutButton({
builder,
- disableStarterCardPoints = false
+ markStarterCardPurchased = false
}: {
builder: NFTPurchaseProps['builder'] & { builderStatus: BuilderStatus | null };
- disableStarterCardPoints?: boolean;
+ markStarterCardPurchased?: boolean;
}) {
const theme = useTheme();
const trackEvent = useTrackEvent();
@@ -61,16 +61,15 @@ export function ScoutButton({
return (
- {builder.nftType === 'starter_pack' && disableStarterCardPoints ? (
+ {builder.nftType === 'starter_pack' && markStarterCardPurchased ? (
) : (
diff --git a/packages/scoutgame-ui/src/components/profile/components/BuilderProfile/BuilderActivitiesList.tsx b/packages/scoutgame-ui/src/components/profile/components/BuilderProfile/BuilderActivitiesList.tsx
index 2c93b0b976..aca39c8629 100644
--- a/packages/scoutgame-ui/src/components/profile/components/BuilderProfile/BuilderActivitiesList.tsx
+++ b/packages/scoutgame-ui/src/components/profile/components/BuilderProfile/BuilderActivitiesList.tsx
@@ -10,16 +10,24 @@ import { LuBookMarked } from 'react-icons/lu';
import { GemsIcon } from '../../../common/Icons';
-export function getActivityLabel(activity: BuilderActivity) {
+export function getActivityLabel(activity: BuilderActivity, shorten = false) {
return activity.type === 'github_event'
? activity.contributionType === 'first_pr'
- ? 'First contribution!'
+ ? shorten
+ ? 'First PR!'
+ : 'First contribution!'
: activity.contributionType === 'regular_pr'
- ? 'Contribution accepted!'
+ ? shorten
+ ? 'Regular PR!'
+ : 'Contribution accepted!'
: activity.contributionType === 'third_pr_in_streak'
- ? 'Contribution streak!'
+ ? shorten
+ ? 'PR Streak!'
+ : 'Contribution streak!'
: activity.contributionType === 'daily_commit'
- ? 'Daily commit!'
+ ? shorten
+ ? 'Commit!'
+ : 'Daily commit!'
: null
: activity.type === 'nft_purchase'
? 'Scouted by'
@@ -44,17 +52,21 @@ export function BuilderActivityDetail({ activity }: { activity: BuilderActivity
export function BuilderActivityGems({
activity,
- showEmpty = false
+ showEmpty = false,
+ size = 'medium'
}: {
activity: BuilderActivity;
showEmpty?: boolean;
+ size?: 'small' | 'medium';
}) {
return (
{activity.type === 'github_event' ? (
<>
- +{activity.gems}
-
+
+ +{activity.gems}
+
+
>
) : showEmpty ? (
'-'
diff --git a/packages/scoutgame-ui/src/components/profile/components/ScoutProfile/ScoutProfile.tsx b/packages/scoutgame-ui/src/components/profile/components/ScoutProfile/ScoutProfile.tsx
index 8f470fa955..f9bb799a44 100644
--- a/packages/scoutgame-ui/src/components/profile/components/ScoutProfile/ScoutProfile.tsx
+++ b/packages/scoutgame-ui/src/components/profile/components/ScoutProfile/ScoutProfile.tsx
@@ -35,7 +35,7 @@ export async function ScoutProfile({ userId }: { userId: string }) {
Scouted Builders
{scoutedBuilders.length > 0 ? (
-
+
) : (
You haven't scouted any Builders yet. Start exploring and discover talent!
diff --git a/packages/scoutgame-ui/src/components/quests/QuestsList/FriendlyQuest.tsx b/packages/scoutgame-ui/src/components/quests/QuestsList/FriendlyQuest.tsx
index 4cf6651521..b0c26faf25 100644
--- a/packages/scoutgame-ui/src/components/quests/QuestsList/FriendlyQuest.tsx
+++ b/packages/scoutgame-ui/src/components/quests/QuestsList/FriendlyQuest.tsx
@@ -9,7 +9,7 @@ import { Stats } from '../../friends/components/Stats';
export function FriendlyQuest({ friends, title }: { friends: SessionUser[]; title?: string }) {
return (
-
+
{title && (
{title}
diff --git a/packages/scoutgame-ui/src/components/quests/QuestsPage.tsx b/packages/scoutgame-ui/src/components/quests/QuestsPage.tsx
index 4c81329dd0..eece5ca3a6 100644
--- a/packages/scoutgame-ui/src/components/quests/QuestsPage.tsx
+++ b/packages/scoutgame-ui/src/components/quests/QuestsPage.tsx
@@ -19,32 +19,22 @@ export function QuestsPage({
friends: SessionUser[];
}) {
return (
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
+
);
}
diff --git a/packages/scoutgame-ui/src/components/scout/ScoutPageTable/components/NewScoutsTable.tsx b/packages/scoutgame-ui/src/components/scout/ScoutPageTable/components/NewScoutsTable.tsx
index 569aed8b17..97373b7a32 100644
--- a/packages/scoutgame-ui/src/components/scout/ScoutPageTable/components/NewScoutsTable.tsx
+++ b/packages/scoutgame-ui/src/components/scout/ScoutPageTable/components/NewScoutsTable.tsx
@@ -43,16 +43,12 @@ export function NewScoutsTable({ scouts }: { scouts: NewScout[] }) {
}}
>
-
- RANK
-
-
- SCOUT
-
-
+ RANK
+ SCOUT
+
SCOUTED
-
+
CARDS HELD
@@ -90,7 +86,7 @@ export function NewScoutsTable({ scouts }: { scouts: NewScout[] }) {
alignItems='center'
flexDirection='row'
gap={1}
- maxWidth={{ xs: '140px', md: 'initial' }}
+ maxWidth={{ xs: '150px', md: '135px' }}
>
{scout.displayName}
diff --git a/packages/scoutgame-ui/src/components/scout/StarterPackCarousel/StarterPackCarousel.tsx b/packages/scoutgame-ui/src/components/scout/StarterPackCarousel/StarterPackCarousel.tsx
index bdd3e784de..a39cdda17e 100644
--- a/packages/scoutgame-ui/src/components/scout/StarterPackCarousel/StarterPackCarousel.tsx
+++ b/packages/scoutgame-ui/src/components/scout/StarterPackCarousel/StarterPackCarousel.tsx
@@ -1,6 +1,6 @@
import { Box, Paper, Stack, Typography } from '@mui/material';
import { getEditorialDescription } from '@packages/scoutgame/builderNfts/builderRegistration/starterPack/starterPackBuilders';
-import type { BuilderInfo } from '@packages/scoutgame/builders/interfaces';
+import type { StarterPackBuilder } from '@packages/scoutgame/builders/getStarterPackBuilders';
import { BuilderCard } from '../../common/Card/BuilderCard/BuilderCard';
import { Carousel } from '../../common/Carousel/Carousel';
@@ -14,7 +14,7 @@ export function StarterPackCarousel({
builders,
remainingStarterCards
}: {
- builders: BuilderInfo[];
+ builders: StarterPackBuilder[];
remainingStarterCards?: number;
}) {
return (
@@ -40,7 +40,7 @@ export function StarterPackCarousel({
p={{ xs: 2, md: 4 }}
>
-
+
{/* {builder.bio} */}
diff --git a/packages/scoutgame-ui/src/components/scout/TodaysHotBuildersCarousel/BuildersCarousel.tsx b/packages/scoutgame-ui/src/components/scout/TodaysHotBuildersCarousel/BuildersCarousel.tsx
index 58396fba96..a0fb1e48ac 100644
--- a/packages/scoutgame-ui/src/components/scout/TodaysHotBuildersCarousel/BuildersCarousel.tsx
+++ b/packages/scoutgame-ui/src/components/scout/TodaysHotBuildersCarousel/BuildersCarousel.tsx
@@ -79,6 +79,7 @@ export function BuildersCarousel({
slidesPerView={slidesPerView}
boxProps={{ width: { xs: '100%', md: '90%' }, margin: '0 auto' }}
showMobileNavigationArrows
+ autoplay
>
{builderCards}
diff --git a/packages/scoutgame-ui/src/hooks/api/session.ts b/packages/scoutgame-ui/src/hooks/api/session.ts
index 3d62bd2c79..afd2d89e0c 100644
--- a/packages/scoutgame-ui/src/hooks/api/session.ts
+++ b/packages/scoutgame-ui/src/hooks/api/session.ts
@@ -14,3 +14,13 @@ export function useGetUserTrigger() {
export function useUserWalletAddress(address?: string) {
return useGETImmutable(address ? `/api/session/wallet` : null, { address });
}
+
+export function useGetClaimablePoints() {
+ return useGETImmutable<{ points: number }>(
+ '/api/session/claimable-points',
+ {},
+ {
+ refreshInterval: 30000
+ }
+ );
+}
diff --git a/apps/scoutgame/lib/builders/getLeaderboard.ts b/packages/scoutgame/src/builders/getLeaderboard.ts
similarity index 98%
rename from apps/scoutgame/lib/builders/getLeaderboard.ts
rename to packages/scoutgame/src/builders/getLeaderboard.ts
index 36f1345481..8a3fc18f89 100644
--- a/apps/scoutgame/lib/builders/getLeaderboard.ts
+++ b/packages/scoutgame/src/builders/getLeaderboard.ts
@@ -1,7 +1,8 @@
import { InvalidInputError } from '@charmverse/core/errors';
import type { BuilderStatus } from '@charmverse/core/prisma-client';
import { BuilderNftType, prisma } from '@charmverse/core/prisma-client';
-import { getCurrentWeek, currentSeason, validateISOWeek } from '@packages/scoutgame/dates';
+
+import { getCurrentWeek, currentSeason, validateISOWeek } from '../dates';
export type LeaderBoardRow = {
id: string;
diff --git a/packages/scoutgame/src/builders/getStarterPackBuilders.ts b/packages/scoutgame/src/builders/getStarterPackBuilders.ts
index 3010988061..6395ad0b9e 100644
--- a/packages/scoutgame/src/builders/getStarterPackBuilders.ts
+++ b/packages/scoutgame/src/builders/getStarterPackBuilders.ts
@@ -1,4 +1,6 @@
+import type { BuilderNft, NFTPurchaseEvent } from '@charmverse/core/prisma-client';
import { BuilderNftType, prisma } from '@charmverse/core/prisma-client';
+import type { NftPurchaseEvent } from '@packages/mixpanel/interfaces';
import { getCurrentWeek, currentSeason } from '../dates';
import type { Season } from '../dates';
@@ -6,15 +8,19 @@ import type { Season } from '../dates';
import type { BuilderInfo } from './interfaces';
import { normalizeLast7DaysGems } from './utils/normalizeLast7DaysGems';
+export type StarterPackBuilder = BuilderInfo & { purchased: boolean };
+
export async function getStarterPackBuilders({
season = currentSeason,
week = getCurrentWeek(),
- limit
+ limit,
+ userId
}: {
season?: Season;
week?: string;
limit?: number;
-} = {}): Promise {
+ userId?: string;
+} = {}): Promise {
const starterPackBuilders = await prisma.scout.findMany({
where: {
builderStatus: 'approved',
@@ -36,7 +42,19 @@ export async function getStarterPackBuilders({
where: {
season,
nftType: BuilderNftType.starter_pack
- }
+ },
+ include: userId
+ ? {
+ nftSoldEvents: {
+ where: {
+ scoutId: userId
+ },
+ select: {
+ id: true
+ }
+ }
+ }
+ : undefined
},
builderCardActivities: true,
userSeasonStats: {
@@ -76,6 +94,7 @@ export async function getStarterPackBuilders({
nftImageUrl: builder.builderNfts[0]?.imageUrl || '',
nftType: BuilderNftType.starter_pack,
farcasterId: builder.farcasterId,
- congratsImageUrl: builder.builderNfts[0]?.congratsImageUrl || ''
+ congratsImageUrl: builder.builderNfts[0]?.congratsImageUrl || '',
+ purchased: !!(builder.builderNfts[0] as BuilderNft & { nftSoldEvents?: NftPurchaseEvent[] })?.nftSoldEvents?.length
}));
}
diff --git a/packages/utils/src/constants.ts b/packages/utils/src/constants.ts
index 220afac89b..5cc620fdc2 100644
--- a/packages/utils/src/constants.ts
+++ b/packages/utils/src/constants.ts
@@ -11,3 +11,5 @@ export const isDevEnv =
export const baseUrl = process.env.DOMAIN as string | undefined;
export const authSecret = process.env.AUTH_SECRET as string | undefined;
export const cookieName = process.env.AUTH_COOKIE || 'scoutgame-session';
+
+export const GITHUB_CLIENT_ID = env('GITHUB_CLIENT_ID') ?? process.env.REACT_APP_GITHUB_CLIENT_ID;