diff --git a/__tests__/src/reddit-api.test.ts b/__tests__/src/reddit-api.test.ts index 9f6da188..6c9c05df 100644 --- a/__tests__/src/reddit-api.test.ts +++ b/__tests__/src/reddit-api.test.ts @@ -7,7 +7,7 @@ import redditResponse from "../test-assets/reddit-api-reponse.json"; describe("getLatestCOH3RedditPosts", () => { const setupFetchStub = (data: any) => () => - Promise.resolve({ json: () => Promise.resolve(data) }); + Promise.resolve({ json: () => Promise.resolve(data), ok: true }); beforeAll(() => { // @ts-ignore diff --git a/__tests__/src/utils.test.ts b/__tests__/src/utils.test.ts index 12bdc7dc..1daddc12 100644 --- a/__tests__/src/utils.test.ts +++ b/__tests__/src/utils.test.ts @@ -9,6 +9,8 @@ import { parseFirstIPFromString, cleanXForwardedFor, generateExpireTimeStamps, + calculateWinRate, + convertWeekDayToFullName, } from "../../src/utils"; describe("getIconsPathOnCDN", () => { @@ -243,3 +245,54 @@ describe("generateExpireTimeStamps", () => { expect(timeStampMs).toEqual(1690264800000); }); }); + +describe("calculateWinRate", () => { + test("should return 0 for 0 wins and 0 losses", () => { + expect(calculateWinRate(0, 0)).toBe(0); + }); + + test("should return 100 for 1 win and 0 losses", () => { + expect(calculateWinRate(1, 0)).toBe(100); + }); + + test("should return 100 for 2 wins and 0 losses", () => { + expect(calculateWinRate(2, 0)).toBe(100); + }); + + test("should return 100 for 1 win and 1 losses", () => { + expect(calculateWinRate(1, 1)).toBe(50); + }); + + test("should return 100 for 2 wins and 1 losses", () => { + expect(calculateWinRate(2, 1)).toBe(66.66666666666666); + }); + + test("should return 100 for 2 wins and 2 losses", () => { + expect(calculateWinRate(2, 2)).toBe(50); + }); + + test("should return 100 for 3 wins and 2 losses", () => { + expect(calculateWinRate(3, 2)).toBe(60); + }); + + test("should return 0", () => { + expect(calculateWinRate(0, 3)).toBe(0); + }); +}); + +describe("convertWeekDayToFullName", () => { + test("Test correct conversion", () => { + expect(convertWeekDayToFullName("Mo")).toBe("Monday"); + expect(convertWeekDayToFullName("Tu")).toBe("Tuesday"); + expect(convertWeekDayToFullName("We")).toBe("Wednesday"); + expect(convertWeekDayToFullName("Th")).toBe("Thursday"); + expect(convertWeekDayToFullName("Fr")).toBe("Friday"); + expect(convertWeekDayToFullName("Sa")).toBe("Saturday"); + expect(convertWeekDayToFullName("Su")).toBe("Sunday"); + }); + + test("Test incorrect conversion", () => { + expect(convertWeekDayToFullName("M")).toBe("Invalid day abbreviation"); + expect(convertWeekDayToFullName("T")).toBe("Invalid day abbreviation"); + }); +}); diff --git a/components/charts/charts-components-utils.ts b/components/charts/charts-components-utils.ts index e50d516e..2d741530 100644 --- a/components/charts/charts-components-utils.ts +++ b/components/charts/charts-components-utils.ts @@ -1,3 +1,4 @@ +// https://github.com/plouc/nivo/blob/master/website/src/theming/theme.ts#L181-L284 import { raceType } from "../../src/coh3/coh3-types"; export const getNivoTooltipTheme = (colorScheme: "dark" | "light") => { diff --git a/package.json b/package.json index a1efded1..05207531 100644 --- a/package.json +++ b/package.json @@ -45,14 +45,15 @@ "@mantine/next": "6.0.21", "@mantine/notifications": "6.0.21", "@mantine/spotlight": "6.0.21", - "@nivo/bar": "0.83.1", - "@nivo/core": "0.83.1", - "@nivo/geo": "0.83.1", - "@nivo/heatmap": "0.83.1", - "@nivo/line": "0.83.1", - "@nivo/pie": "0.83.1", - "@sentry/nextjs": "7.80.1", - "@tabler/icons-react": "2.40.0", + "@nivo/bar": "0.84.0", + "@nivo/calendar": "0.84.0", + "@nivo/core": "0.84.0", + "@nivo/geo": "0.84.0", + "@nivo/heatmap": "0.84.0", + "@nivo/line": "0.84.0", + "@nivo/pie": "0.84.0", + "@sentry/nextjs": "7.81.1", + "@tabler/icons-react": "2.42.0", "chart.js": "4.4.0", "dayjs": "1.11.10", "firebase": "10.6.0", @@ -61,32 +62,32 @@ "json-2-csv": "5.0.1", "lodash": "4.17.21", "mantine-datatable": "6.0.5", - "next": "14.0.2", + "next": "14.0.3", "nprogress": "0.2.0", - "octokit": "3.1.1", + "octokit": "3.1.2", "react": "18.2.0", "react-chartjs-2": "5.2.0", "react-dom": "18.2.0", "timeago.js": "4.0.2" }, "devDependencies": { - "@edgio/cli": "7.4.1", - "@edgio/core": "7.4.1", - "@edgio/devtools": "7.4.1", - "@edgio/next": "7.4.1", - "@edgio/prefetch": "7.4.1", - "@edgio/react": "7.4.1", + "@edgio/cli": "7.4.2", + "@edgio/core": "7.4.2", + "@edgio/devtools": "7.4.2", + "@edgio/next": "7.4.2", + "@edgio/prefetch": "7.4.2", + "@edgio/react": "7.4.2", "@testing-library/jest-dom": "6.1.4", - "@testing-library/react": "14.1.0", - "@types/jest": "29.5.8", + "@testing-library/react": "14.1.2", + "@types/jest": "29.5.10", "@types/node": "18.18.8", "@types/nprogress": "0.2.3", "@types/react": "18.2.37", - "@types/react-dom": "18.2.15", + "@types/react-dom": "18.2.17", "@typescript-eslint/eslint-plugin": "6.11.0", "@typescript-eslint/parser": "6.11.0", - "eslint": "8.53.0", - "eslint-config-next": "13.5.6", + "eslint": "8.54.0", + "eslint-config-next": "14.0.3", "husky": "8.0.3", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", diff --git a/pages/players/[...playerID].tsx b/pages/players/[...playerID].tsx index 1d4ecb8d..7bdf1f49 100644 --- a/pages/players/[...playerID].tsx +++ b/pages/players/[...playerID].tsx @@ -1,9 +1,56 @@ import { processPlayerInfoAPIResponse } from "../../src/players/standings"; -import { getPlayerCardInfo, getPlayerRecentMatches } from "../../src/apis/coh3stats-api"; +import { + getPlayerCardInfo, + getPlayerRecentMatches, + getPlayerCardStats, +} from "../../src/apis/coh3stats-api"; import { GetServerSideProps } from "next"; +import { getReplaysForPlayer, ProcessReplaysData } from "../../src/apis/cohdb-api"; import PlayerCard from "../../screens/players"; -import { getReplaysForPlayer, ProcessReplaysData } from "../../src/apis/cohdb-api"; +import { PlayerProfileCOHStats, ProcessedCOHPlayerStats } from "../../src/coh3/coh3-types"; + +const ProcessPlayerCardStatsData = ( + playerStatsData: PlayerProfileCOHStats, +): ProcessedCOHPlayerStats => { + const processedActivityByDate = []; + for (const [date, value] of Object.entries(playerStatsData.stats?.activityByDate || {})) { + processedActivityByDate.push({ + day: date, + value: value.w - value.l, + wins: value.w, + losses: value.l, + }); + } + + const processedActivityByHour = []; + for (const [hour, value] of Object.entries(playerStatsData.stats?.activityByHour || {})) { + processedActivityByHour.push({ + hour, + value: value.w + value.l, + wins: value.w, + losses: value.l, + }); + } + + const processedActivityByDayOfWeek = []; + for (const [dayOfWeek, value] of Object.entries( + playerStatsData.stats?.activityByWeekDay || {}, + )) { + processedActivityByDayOfWeek.push({ + day: dayOfWeek, + value: value.w + value.l, + wins: value.w, + losses: value.l, + }); + } + + return { + activityByWeekDay: processedActivityByDayOfWeek, + activityByDate: processedActivityByDate, + activityByHour: processedActivityByHour, + }; +}; export const getServerSideProps: GetServerSideProps = async ({ params, @@ -19,6 +66,7 @@ export const getServerSideProps: GetServerSideProps = // const viewStandings = view === "standings"; let playerData = null; + let playerStatsData = null; let playerMatchesData = null; let error = null; let replaysData = null; @@ -30,6 +78,7 @@ export const getServerSideProps: GetServerSideProps = try { const PromisePlayerCardData = getPlayerCardInfo(playerID, true, xff); + const PromisePlayerCardStatsData = getPlayerCardStats(playerID, xff); const PromiseReplaysData = isReplaysPage ? getReplaysForPlayer(playerID, start as string | undefined) : Promise.resolve(); @@ -38,12 +87,17 @@ export const getServerSideProps: GetServerSideProps = ? getPlayerRecentMatches(playerID, xff) : Promise.resolve(); - const [playerAPIData, PlayerMatchesAPIData, replaysAPIDAta] = await Promise.all([ - PromisePlayerCardData, - PromisePlayerMatchesData, - PromiseReplaysData, - ]); + const [playerAPIData, playerCardStatsData, PlayerMatchesAPIData, replaysAPIDAta] = + await Promise.all([ + PromisePlayerCardData, + PromisePlayerCardStatsData, + PromisePlayerMatchesData, + PromiseReplaysData, + ]); + playerStatsData = playerCardStatsData?.playerStats + ? ProcessPlayerCardStatsData(playerCardStatsData.playerStats) + : null; playerData = playerAPIData ? processPlayerInfoAPIResponse(playerAPIData) : null; playerMatchesData = viewPlayerMatches ? PlayerMatchesAPIData : null; replaysData = isReplaysPage ? ProcessReplaysData(replaysAPIDAta) : null; @@ -54,7 +108,14 @@ export const getServerSideProps: GetServerSideProps = } return { - props: { playerID, playerDataAPI: playerData, error, playerMatchesData, replaysData }, // will be passed to the page component as props + props: { + playerID, + playerDataAPI: playerData, + error, + playerMatchesData, + playerStatsData, + replaysData, + }, // will be passed to the page component as props }; }; diff --git a/pages/tests/ssr.tsx b/pages/tests/ssr.tsx index 0b283338..8feba7ef 100644 --- a/pages/tests/ssr.tsx +++ b/pages/tests/ssr.tsx @@ -4,11 +4,12 @@ import { NextPage } from "next"; import React from "react"; -import { doc, getDoc, getFirestore } from "firebase/firestore"; +// import { doc, getDoc, getFirestore } from "firebase/firestore"; import { DataTable } from "mantine-datatable"; import config from "../../config"; +import { getLatestCOH3RedditPosts } from "../../src/apis/reddit-api"; -const SSR: NextPage = ({ data, tableData }: any) => { +const SSR: NextPage = ({ data, tableData, redditPosts }: any) => { return ( <> ENV NAME |{config.getEdgioEnvName()}| IS DEV: |{`${config.isDevEnv()}`}|
@@ -19,17 +20,21 @@ const SSR: NextPage = ({ data, tableData }: any) => { columns={[{ accessor: "name" }, { accessor: "age" }]} records={tableData} > + REDDIT DATA: + {JSON.stringify(redditPosts)} ); }; export async function getServerSideProps() { - const docRef = doc(getFirestore(), "tests", "document"); - const docSnap = await getDoc(docRef); + // const docRef = doc(getFirestore(), "tests", "document"); + // const docSnap = await getDoc(docRef); + // + // if (docSnap.exists()) { + // console.log(docSnap.data()); + // } - if (docSnap.exists()) { - console.log(docSnap.data()); - } + const redditPosts = await getLatestCOH3RedditPosts(); const tableData = [ { name: " thomas", age: 4 }, @@ -38,7 +43,7 @@ export async function getServerSideProps() { { name: " thomas", age: 4 }, ]; - return { props: { data: docSnap.data(), tableData } }; + return { props: { data: null, tableData, redditPosts } }; } export default SSR; diff --git a/screens/players/components/activity/activity-calendar-day.tsx b/screens/players/components/activity/activity-calendar-day.tsx new file mode 100644 index 00000000..80616c2c --- /dev/null +++ b/screens/players/components/activity/activity-calendar-day.tsx @@ -0,0 +1,115 @@ +import { ProcessedCOHPlayerStats } from "../../../../src/coh3/coh3-types"; +import { ResponsiveCalendarCanvas } from "@nivo/calendar"; +import { useMantineColorScheme, Text, Group } from "@mantine/core"; +import { getNivoTooltipTheme } from "../../../../components/charts/charts-components-utils"; +import dayjs from "dayjs"; + +const fromYear = "2023-01-01"; +const yearDiff = 1 + dayjs(new Date()).diff(fromYear, "year"); + +const ActivityCalendarDay = ({ + playerStatsData, +}: { + playerStatsData: ProcessedCOHPlayerStats; +}) => { + const { colorScheme } = useMantineColorScheme(); + + // This is most likely a bug in Nivo, the labels on Calendar Canvas our outside / other charts have it inside + const chartColorTheme = { + ...getNivoTooltipTheme(colorScheme), + ...{ + labels: { + text: { + fill: colorScheme === "light" ? "#333333" : "#ccd7e2", + fontSize: 12, + fontWeight: 500, + }, + }, + }, + }; + + return ( +
+ { + if (value === undefined) return null; + const toolTipBackground = colorScheme === "light" ? "#eeeeee" : "#25262B"; + return ( +
+ + {day}: {data.wins} W -{" "} + {data.losses} L + +
+ ); + }} + /> +
+ ); +}; + +export default ActivityCalendarDay; diff --git a/screens/players/components/activity/activity-hour.tsx b/screens/players/components/activity/activity-hour.tsx new file mode 100644 index 00000000..8a9d7776 --- /dev/null +++ b/screens/players/components/activity/activity-hour.tsx @@ -0,0 +1,80 @@ +import { ProcessedCOHPlayerStats } from "../../../../src/coh3/coh3-types"; +import { useMantineColorScheme, Text, Group } from "@mantine/core"; +import { getNivoTooltipTheme } from "../../../../components/charts/charts-components-utils"; +import { ResponsiveBar } from "@nivo/bar"; +import React from "react"; +import { calculateWinRate } from "../../../../src/utils"; + +const ActivityByHour = ({ playerStatsData }: { playerStatsData: ProcessedCOHPlayerStats }) => { + const { colorScheme } = useMantineColorScheme(); + + return ( +
+ { + if (data.value === undefined) return ""; + return `${Math.round(calculateWinRate(data.wins, data.losses))}%`; + }} + // @ts-ignore + tooltip={({ + value, + data, + }: { + value: string; + // Not sure why it's undefined, must be a bug in Nivo + data: { wins: number | undefined; losses: number | undefined }; + }) => { + if (value === undefined) return null; + const toolTipBackground = colorScheme === "light" ? "#eeeeee" : "#25262B"; + return ( +
+ Total: {(data.wins || 0) + (data.losses || 0)} games + + Record: + + {data.wins || 0} W -{" "} + {data.losses || 0} L + + + WinRate: {calculateWinRate(data.wins || 0, data.losses || 0).toFixed(1)}% +
+ ); + }} + /> +
+ ); +}; + +export default ActivityByHour; diff --git a/screens/players/components/activity/activity-tab.tsx b/screens/players/components/activity/activity-tab.tsx new file mode 100644 index 00000000..de1e77b1 --- /dev/null +++ b/screens/players/components/activity/activity-tab.tsx @@ -0,0 +1,59 @@ +import { ProcessedCOHPlayerStats } from "../../../../src/coh3/coh3-types"; +import { Container, Space, Title, Text } from "@mantine/core"; +import dynamic from "next/dynamic"; + +// Because of some Nivo bugs we need to render only on client side +const DynamicActivityByCalendarDay = dynamic(() => import("./activity-calendar-day"), { + ssr: false, +}); + +const DynamicActivityByHour = dynamic(() => import("./activity-hour"), { + ssr: false, +}); + +const DynamicActivityByDayOfWeek = dynamic(() => import("./activity-week-day"), { + ssr: false, +}); + +const ActivityTab = ({ + playerStatsData, +}: { + playerStatsData: ProcessedCOHPlayerStats | undefined; +}) => { + if (!playerStatsData) { + return <>; + } + + return ( + + +
+
+ Activity by calendar day + + (GMT+00:00) UTC + +
+ +
+ +
+
+ Activity by hour of day + + (GMT+00:00) UTC + +
+ +
+
+
+ Activity by week day +
+ +
+
+ ); +}; + +export default ActivityTab; diff --git a/screens/players/components/activity/activity-week-day.tsx b/screens/players/components/activity/activity-week-day.tsx new file mode 100644 index 00000000..92f66655 --- /dev/null +++ b/screens/players/components/activity/activity-week-day.tsx @@ -0,0 +1,82 @@ +import { ProcessedCOHPlayerStats } from "../../../../src/coh3/coh3-types"; +import { useMantineColorScheme, Text, Group } from "@mantine/core"; +import { getNivoTooltipTheme } from "../../../../components/charts/charts-components-utils"; +import { ResponsiveBar } from "@nivo/bar"; +import React from "react"; +import { calculateWinRate, convertWeekDayToFullName } from "../../../../src/utils"; + +const ActivityByWeekDay = ({ playerStatsData }: { playerStatsData: ProcessedCOHPlayerStats }) => { + const { colorScheme } = useMantineColorScheme(); + + return ( +
+ { + if (data.value === undefined) return ""; + return `${Math.round(calculateWinRate(data.wins, data.losses))}%`; + }} + // @ts-ignore + tooltip={({ + value, + data, + }: { + value: string; + // Not sure why it's undefined, must be a bug in Nivo + data: { day: string; wins: number | undefined; losses: number | undefined }; + }) => { + if (value === undefined) return null; + const toolTipBackground = colorScheme === "light" ? "#eeeeee" : "#25262B"; + return ( +
+ Day: {convertWeekDayToFullName(data.day)} +
+ Total: {(data.wins || 0) + (data.losses || 0)} games + + Record: + + {data.wins || 0} W -{" "} + {data.losses || 0} L + + + WinRate: {calculateWinRate(data.wins || 0, data.losses || 0).toFixed(1)}% +
+ ); + }} + /> +
+ ); +}; + +export default ActivityByWeekDay; diff --git a/screens/players/index.tsx b/screens/players/index.tsx index 193c155d..673dfcc1 100644 --- a/screens/players/index.tsx +++ b/screens/players/index.tsx @@ -1,4 +1,8 @@ -import { PlayerCardDataType, ProcessedMatch } from "../../src/coh3/coh3-types"; +import { + PlayerCardDataType, + ProcessedCOHPlayerStats, + ProcessedMatch, +} from "../../src/coh3/coh3-types"; import { calculatePlayerSummary, PlayerSummaryType } from "../../src/players/utils"; import { localizedNames } from "../../src/coh3/coh3-data"; import { format } from "timeago.js"; @@ -25,6 +29,8 @@ import ReplaysTab from "./components/replays-tab"; import { ProcessedReplayData } from "../../src/apis/cohdb-api"; import { isBrowserEnv } from "../../src/utils"; import CountryFlag from "../../components/country-flag"; +import ActivityTab from "./components/activity/activity-tab"; +import config from "../../config"; const createPlayerHeadDescription = ( playerData: PlayerCardDataType, @@ -62,12 +68,14 @@ const PlayerCard = ({ playerDataAPI, error, playerMatchesData, + playerStatsData, replaysData, }: { playerID: string; playerDataAPI: PlayerCardDataType | null; error: string; playerMatchesData: Array; + playerStatsData: ProcessedCOHPlayerStats; replaysData: ProcessedReplayData; }) => { const { push, query, asPath } = useRouter(); @@ -190,24 +198,12 @@ const PlayerCard = ({ Player Standings Recent Matches + {config.isDevEnv() && Activity} Replays - {/**/} - {/* */} - {/* */} - {/* */} - {/* */} - {/**/} @@ -217,6 +213,9 @@ const PlayerCard = ({ error={error} /> + + + diff --git a/src/apis/coh3stats-api.ts b/src/apis/coh3stats-api.ts index bbe35b29..db330bf6 100644 --- a/src/apis/coh3stats-api.ts +++ b/src/apis/coh3stats-api.ts @@ -11,6 +11,14 @@ const getPlayerCardInfoUrl = (playerID: string | number, cache_proxy = false) => : encodeURI(`${config.BASE_CLOUD_FUNCTIONS_URL}${path}`); }; +const getPlayerCardStatsUrl = (playerID: string | number, cache_proxy = true) => { + const path = `/getPlayerCardStatsHttp?relicId=${playerID}`; + + return cache_proxy + ? encodeURI(`${config.BASED_CLOUD_FUNCTIONS_PROXY_URL}${path}`) + : encodeURI(`${config.BASE_CLOUD_FUNCTIONS_URL}${path}`); +}; + const getPlayerRecentMatchesUrl = (playerID: string | number) => { return encodeURI(`${config.BASE_CLOUD_FUNCTIONS_URL}/getPlayerMatchesHttp?relicId=${playerID}`); }; @@ -108,6 +116,32 @@ const getPlayerCardInfo = async ( } }; +/** + * Player Card Stats are cached until 7AM , when it's refreshed. + * @param playerID + * @param XForwardedFor + */ +const getPlayerCardStats = async (playerID: string | number, XForwardedFor: string) => { + const xff = cleanXForwardedFor(XForwardedFor); + + const response = await fetch(getPlayerCardStatsUrl(playerID, true), { + headers: { + "X-Forwarded-For": xff, + "c-edge-ip": parseFirstIPFromString(xff), + }, + }); + const data = await response.json(); + + if (response.ok) { + return data; + } else { + if (response.status === 500) { + throw new Error(`Error getting player card info: ${data.error}`); + } + throw new Error(`Error getting player card info`); + } +}; + const getPlayerRecentMatches = async (playerID: string | number, XForwardedFor: string) => { const xff = cleanXForwardedFor(XForwardedFor); @@ -169,4 +203,5 @@ export { getTwitchStreams, getStatsData, getGlobalAchievements, + getPlayerCardStats, }; diff --git a/src/apis/cohdb-api.ts b/src/apis/cohdb-api.ts index 3c465151..ebc8b5d9 100644 --- a/src/apis/cohdb-api.ts +++ b/src/apis/cohdb-api.ts @@ -1,3 +1,5 @@ +import { logger } from "../logger"; + export interface ReplayAPIResponse { replays: Array<{ id: number; @@ -145,6 +147,7 @@ const getReplaysForPlayer = async ( const response = await fetch(url); if (!response.ok) { + logger.warn(`Error getting replays for player ${playerID}: ${response.statusText}`); return null; } diff --git a/src/apis/reddit-api.ts b/src/apis/reddit-api.ts index 03a5d5ab..1f0a7a13 100644 --- a/src/apis/reddit-api.ts +++ b/src/apis/reddit-api.ts @@ -13,7 +13,21 @@ const getLatestCOH3RedditPosts = async (numberOfPosts = 10): Promise; unixTimeStamp: number; } + +export interface PlayerPersonalCOHStats { + // Let's store the dates in format YYYY-MM-DD + activityByDate: Record; + activityByWeekDay: { + Mo: WinLossPairType; + Tu: WinLossPairType; + We: WinLossPairType; + Th: WinLossPairType; + Fr: WinLossPairType; + Sa: WinLossPairType; + Su: WinLossPairType; + }; + activityByHour: { + 0: WinLossPairType; + 1: WinLossPairType; + 2: WinLossPairType; + 3: WinLossPairType; + 4: WinLossPairType; + 5: WinLossPairType; + 6: WinLossPairType; + 7: WinLossPairType; + 8: WinLossPairType; + 9: WinLossPairType; + 10: WinLossPairType; + 11: WinLossPairType; + 12: WinLossPairType; + 13: WinLossPairType; + 14: WinLossPairType; + 15: WinLossPairType; + 16: WinLossPairType; + 17: WinLossPairType; + 18: WinLossPairType; + 19: WinLossPairType; + 20: WinLossPairType; + 21: WinLossPairType; + 22: WinLossPairType; + 23: WinLossPairType; + }; + nemesis: Record< + string, + { + w: number; // wins + l: number; // losses + alias: string; + } + >; + // startGroup id is in format `race_id-matchtype_id-statgroup_id` + statGroups: Record< + string, + { + w: number; // wins + l: number; // losses + gameTime: number; // play time in seconds + gameTimeSpread: Record; // play time in seconds + factionMatrix: Record; + maps: Record; + counters: Record; + } + >; +} + +export interface PlayerProfileCOHStats { + alias: string; + alias_lc: string; + // This is Relic ID + profile_id: number; + level: number; + steam_id: string; + country: string; + leaderboardStats?: Record; + updatedAt: Timestamp; + stats?: PlayerPersonalCOHStats; +} + +interface HistoryOfLeaderBoardStat { + w: number; // wins + l: number; // losses + r: number; // ranks + rl: number; // rank level + ts: Timestamp; // timestamp +} + +interface HistoricLeaderBoardStat { + leaderboard_id: number; + wins: number; + losses: number; + rank: number; + ranklevel: number; + statgroup_id: number; + history: Array; +} + +export interface ProcessedCOHPlayerStats { + activityByDate: Array<{ + day: string; + value: number; + wins: number; + losses: number; + }>; + activityByHour: Array<{ + hour: string; + value: number; + wins: number; + losses: number; + }>; + activityByWeekDay: Array<{ + day: string; + value: number; + wins: number; + losses: number; + }>; +} diff --git a/src/utils.ts b/src/utils.ts index 06c5d675..7ceedd33 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -189,3 +189,35 @@ export const generateExpireTimeStamps = (hoursWhenToExpire: number = 7): number return dayjs(sixAMToday).add(1, "day").toDate().getTime(); } }; + +export const calculateWinRate = (wins: number, losses: number): number => { + if (wins > 0 && !losses) return 100; + if (losses > 0 && !wins) return 0; + + if (wins + losses === 0) { + return 0; + } else { + return (wins / (wins + losses)) * 100; + } +}; + +export const convertWeekDayToFullName = (dayAbbreviation: string): string => { + switch (dayAbbreviation) { + case "Mo": + return "Monday"; + case "Tu": + return "Tuesday"; + case "We": + return "Wednesday"; + case "Th": + return "Thursday"; + case "Fr": + return "Friday"; + case "Sa": + return "Saturday"; + case "Su": + return "Sunday"; + default: + return "Invalid day abbreviation"; + } +}; diff --git a/yarn.lock b/yarn.lock index 26e81faa..6c0f4b1d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1155,10 +1155,10 @@ resolved "https://registry.yarnpkg.com/@corex/deepmerge/-/deepmerge-4.0.43.tgz#9bd42559ebb41cc5a7fb7cfeea5f231c20977dca" integrity sha512-N8uEMrMPL0cu/bdboEWpQYb/0i2K5Qn8eCsxzOmxSggJbbQte7ljMRoXm917AbntqTGOzdTu+vP3KOOzoC70HQ== -"@edgio/cli@7.4.1": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@edgio/cli/-/cli-7.4.1.tgz#517156de0cc0ac5494a9f61d8c546c3dfe17cdff" - integrity sha512-9iDkqJ6y4Xd1ysHAUU47NVgwCxfLtPQ3aSJ058u9uMKiuADBP3AHUXmoI1SQYG++9b3//WlQVYsWf3+Vf00SAw== +"@edgio/cli@7.4.2": + version "7.4.2" + resolved "https://registry.yarnpkg.com/@edgio/cli/-/cli-7.4.2.tgz#3f97538f05e2a3ae7c02e7575a14eab9367debc4" + integrity sha512-e0U1WwIGUkV9mf9i1hwbW4emyTdiW2aHhNrf4b+J9zP2hLEYVFm8mkD2N0K5jULpYdB3UOtBTiuh/QLRqncEpQ== dependencies: axios "^1.6.0" chalk "^4.1.2" @@ -1203,10 +1203,10 @@ yauzl "^2.10.0" yazl "^2.5.1" -"@edgio/core@7.4.1", "@edgio/core@^7.4.1": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@edgio/core/-/core-7.4.1.tgz#da3f7d87871da846718febe8bb7c5824442a1978" - integrity sha512-Xw3S+RpQpL+HA5ULtP8WZPd6LvpOadOnUkegbDXO8ExnbRD0b3YZuqanI1c205cQBm3AYvXDKpRwPbdG0D3eTw== +"@edgio/core@7.4.2", "@edgio/core@^7.4.2": + version "7.4.2" + resolved "https://registry.yarnpkg.com/@edgio/core/-/core-7.4.2.tgz#b407c01e23e8c65f5b7b391009dffd2e2d427db4" + integrity sha512-zaGfOF37gtMd4wkfIBrTyYRDVZY2oZ8Fj6lV7SQ91YAEJx3EBjs8o3MeAPJD1RsZmdO82m97NJFTuz64AH7ulw== dependencies: "@babel/parser" "^7.18.9" "@babel/traverse" "^7.22.19" @@ -1254,19 +1254,19 @@ workbox-build "^6.5.4" yaml-validator "^4.0.0" -"@edgio/devtools@7.4.1": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@edgio/devtools/-/devtools-7.4.1.tgz#7c3f828a61f37f46fd41330639e3c7430e5e7fa2" - integrity sha512-QScKoj77IvQrwM0UogxpOelagYNd+wiioMJJVSdVbYAZkSZypNuN62VS0W2sJF77f3YVGFdNY/4CJYgau/CEZg== +"@edgio/devtools@7.4.2": + version "7.4.2" + resolved "https://registry.yarnpkg.com/@edgio/devtools/-/devtools-7.4.2.tgz#cdd0c393724c4352c3327cf9dfdd7b3d7c7c98b9" + integrity sha512-KCm1QxSqI2CSNHQOJnw15OeNiULsbuvIVFqZT5vNJKcI9NpfHKzK4M1On6mbK1Orlq5yBva3bR0f/vqFUM3HNw== dependencies: clsx "^1.1.1" lodash "^4.17.20" sirv-cli "^1.0.0" -"@edgio/next@7.4.1": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@edgio/next/-/next-7.4.1.tgz#33aa166a215bf65f5b98efd2525528db5028302d" - integrity sha512-WGwmDJ5f35apHZDzRfgXM6GBZj695sRNy6JLbuHLJ51JIpiXqvarDRZea2aAIVh7SNXeB1+GMY9MwDPTo7Ehpw== +"@edgio/next@7.4.2": + version "7.4.2" + resolved "https://registry.yarnpkg.com/@edgio/next/-/next-7.4.2.tgz#504ffcd8666377165e2e5f93afab163500d0acb9" + integrity sha512-hlmbtZNJWsJKpZaGnx+RFiW1jChkmHvOhoOssg+6hqoVlpg/PT3HnzkIUYwjQelfQBseAEYzITeYM1fRdMBoAw== dependencies: "@vercel/nft" "^0.13.1" chalk "^4.1.2" @@ -1284,12 +1284,12 @@ webpack "^4.0.0" webpack-sources "^2.2.0" -"@edgio/prefetch@7.4.1": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@edgio/prefetch/-/prefetch-7.4.1.tgz#188ef889a74bf22660e18bdf09dcde7b14f3d5bf" - integrity sha512-CufATuKlRKKy36KbW2X8ETrTi+fbToTbD8OPqqWFPwu0NviN8I/tDFr1B9tyNo7kNgtcGjJ7TVHUZnYu+uimng== +"@edgio/prefetch@7.4.2": + version "7.4.2" + resolved "https://registry.yarnpkg.com/@edgio/prefetch/-/prefetch-7.4.2.tgz#227e6690a654cd67eba8daee753a4a6f2a60b658" + integrity sha512-xlCN6aYM6cJHokSCySx6jsIpbefnx2sxAApHLjfw1Besd3ujYGHkQAcGKkGJGBvo4bZO5OZrW6WOnQXID9Bihw== dependencies: - "@edgio/core" "^7.4.1" + "@edgio/core" "^7.4.2" cheerio "^1.0.0-rc.3" json-query "^2.2.2" workbox-cacheable-response "^5.1.2" @@ -1299,10 +1299,10 @@ workbox-routing "^5.1.2" workbox-strategies "^5.1.2" -"@edgio/react@7.4.1": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@edgio/react/-/react-7.4.1.tgz#ab996352b880fbbaac4a558c06323b330c30a7c5" - integrity sha512-U3QN8i3M6Tcp9X9kmS8zDyYY49fOVa6mNaGytIATJzX1QzJbe1H9x/qGoR7ynmKNL1Z7NKmgzWWKr5at6p0+Pg== +"@edgio/react@7.4.2": + version "7.4.2" + resolved "https://registry.yarnpkg.com/@edgio/react/-/react-7.4.2.tgz#b96446bb510a70f08520da26a52635745e6c2eff" + integrity sha512-WI43nSnbvtyJEPLyRdrtCcPblyQInHr1qGftYdAArTOUuTYe7YoJZKF5irYLPh49yZxBDNGR9xKEAFSfBbz/QQ== dependencies: prop-types "^15.8.1" react-merge-refs "^1.1.0" @@ -1461,10 +1461,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.53.0": - version "8.53.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.53.0.tgz#bea56f2ed2b5baea164348ff4d5a879f6f81f20d" - integrity sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w== +"@eslint/js@8.54.0": + version "8.54.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.54.0.tgz#4fab9a2ff7860082c304f750e94acd644cf984cf" + integrity sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ== "@firebase/analytics-compat@0.2.6": version "0.2.6" @@ -2278,98 +2278,98 @@ semver "^7.3.5" tar "^6.1.11" -"@next/env@14.0.2": - version "14.0.2" - resolved "https://registry.yarnpkg.com/@next/env/-/env-14.0.2.tgz#c1fb535983bca768e7eccd7b9cf4636127fc6d25" - integrity sha512-HAW1sljizEaduEOes/m84oUqeIDAUYBR1CDwu2tobNlNDFP3cSm9d6QsOsGeNlIppU1p/p1+bWbYCbvwjFiceA== +"@next/env@14.0.3": + version "14.0.3" + resolved "https://registry.yarnpkg.com/@next/env/-/env-14.0.3.tgz#9a58b296e7ae04ffebce8a4e5bd0f87f71de86bd" + integrity sha512-7xRqh9nMvP5xrW4/+L0jgRRX+HoNRGnfJpD+5Wq6/13j3dsdzxO3BCXn7D3hMqsDb+vjZnJq+vI7+EtgrYZTeA== "@next/env@^13.4.3": version "13.5.6" resolved "https://registry.yarnpkg.com/@next/env/-/env-13.5.6.tgz#c1148e2e1aa166614f05161ee8f77ded467062bc" integrity sha512-Yac/bV5sBGkkEXmAX5FWPS9Mmo2rthrOPRQQNfycJPkjUAUclomCPH7QFVCDQ4Mp2k2K1SSM6m0zrxYrOwtFQw== -"@next/eslint-plugin-next@13.5.6": - version "13.5.6" - resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-13.5.6.tgz#cf279b94ddc7de49af8e8957f0c3b7349bc489bf" - integrity sha512-ng7pU/DDsxPgT6ZPvuprxrkeew3XaRf4LAT4FabaEO/hAbvVx4P7wqnqdbTdDn1kgTvsI4tpIgT4Awn/m0bGbg== +"@next/eslint-plugin-next@14.0.3": + version "14.0.3" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-14.0.3.tgz#f32413be4db69f698538c38fd6f4091a2feb54c6" + integrity sha512-j4K0n+DcmQYCVnSAM+UByTVfIHnYQy2ODozfQP+4RdwtRDfobrIvKq1K4Exb2koJ79HSSa7s6B2SA8T/1YR3RA== dependencies: glob "7.1.7" -"@next/swc-darwin-arm64@14.0.2": - version "14.0.2" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.0.2.tgz#eba35a1425fee5d305903c85ae0d6d2b0d512c7b" - integrity sha512-i+jQY0fOb8L5gvGvojWyZMfQoQtDVB2kYe7fufOEiST6sicvzI2W5/EXo4lX5bLUjapHKe+nFxuVv7BA+Pd7LQ== - -"@next/swc-darwin-x64@14.0.2": - version "14.0.2" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.0.2.tgz#8adb4dfc3d596c0816da67df9b75603218cf2a42" - integrity sha512-zRCAO0d2hW6gBEa4wJaLn+gY8qtIqD3gYd9NjruuN98OCI6YyelmhWVVLlREjS7RYrm9OUQIp/iVJFeB6kP1hg== - -"@next/swc-linux-arm64-gnu@14.0.2": - version "14.0.2" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.0.2.tgz#1f88d066d44c9229a861815e3d449b0037dae14e" - integrity sha512-tSJmiaon8YaKsVhi7GgRizZoV0N1Sx5+i+hFTrCKKQN7s3tuqW0Rov+RYdPhAv/pJl4qiG+XfSX4eJXqpNg3dA== - -"@next/swc-linux-arm64-musl@14.0.2": - version "14.0.2" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.0.2.tgz#de9b2708abc35dd19429a662a11785d0c54d1ec7" - integrity sha512-dXJLMSEOwqJKcag1BeX1C+ekdPPJ9yXbWIt3nAadhbLx5CjACoB2NQj9Xcqu2tmdr5L6m34fR+fjGPs+ZVPLzA== - -"@next/swc-linux-x64-gnu@14.0.2": - version "14.0.2" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.0.2.tgz#64bd555dcbc7fd6c38cb86028baf7d7fc80bd4ac" - integrity sha512-WC9KAPSowj6as76P3vf1J3mf2QTm3Wv3FBzQi7UJ+dxWjK3MhHVWsWUo24AnmHx9qDcEtHM58okgZkXVqeLB+Q== - -"@next/swc-linux-x64-musl@14.0.2": - version "14.0.2" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.0.2.tgz#69e6abf0f516df69acbf663eeb8ed6fd8eebcc38" - integrity sha512-KSSAwvUcjtdZY4zJFa2f5VNJIwuEVnOSlqYqbQIawREJA+gUI6egeiRu290pXioQXnQHYYdXmnVNZ4M+VMB7KQ== - -"@next/swc-win32-arm64-msvc@14.0.2": - version "14.0.2" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.0.2.tgz#82bc49af0986f4b2c113b5f223a559fc51b49b9d" - integrity sha512-2/O0F1SqJ0bD3zqNuYge0ok7OEWCQwk55RPheDYD0va5ij7kYwrFkq5ycCRN0TLjLfxSF6xI5NM6nC5ux7svEQ== - -"@next/swc-win32-ia32-msvc@14.0.2": - version "14.0.2" - resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.0.2.tgz#2f1958ad82b7f7ec5da8ad8ac2f18ef7a8e7757f" - integrity sha512-vJI/x70Id0oN4Bq/R6byBqV1/NS5Dl31zC+lowO8SDu1fHmUxoAdILZR5X/sKbiJpuvKcCrwbYgJU8FF/Gh50Q== - -"@next/swc-win32-x64-msvc@14.0.2": - version "14.0.2" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.0.2.tgz#629174f587beb640a431a4a3fe4e26d5d4f8de52" - integrity sha512-Ut4LXIUvC5m8pHTe2j0vq/YDnTEyq6RSR9vHYPqnELrDapPhLNz9Od/L5Ow3J8RNDWpEnfCiQXuVdfjlNEJ7ug== - -"@nivo/annotations@0.83.1": - version "0.83.1" - resolved "https://registry.yarnpkg.com/@nivo/annotations/-/annotations-0.83.1.tgz#e5f1c7adf48041bd4a3fc9f42c563ad228319710" - integrity sha512-GaHw3AGs9hukXD6pCHFj6y01EhGf5ja/m8Pk9qLllqlOogsOhKKDuwMToHsVLywwdjtau1gQ3+PRdqa9BhghEA== - dependencies: - "@nivo/colors" "0.83.1" - "@nivo/core" "0.83.1" +"@next/swc-darwin-arm64@14.0.3": + version "14.0.3" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.0.3.tgz#b1a0440ffbf69056451947c4aea5b6d887e9fbbc" + integrity sha512-64JbSvi3nbbcEtyitNn2LEDS/hcleAFpHdykpcnrstITFlzFgB/bW0ER5/SJJwUPj+ZPY+z3e+1jAfcczRLVGw== + +"@next/swc-darwin-x64@14.0.3": + version "14.0.3" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.0.3.tgz#48b527ef7eb5dbdcaf62fd107bc3a78371f36f09" + integrity sha512-RkTf+KbAD0SgYdVn1XzqE/+sIxYGB7NLMZRn9I4Z24afrhUpVJx6L8hsRnIwxz3ERE2NFURNliPjJ2QNfnWicQ== + +"@next/swc-linux-arm64-gnu@14.0.3": + version "14.0.3" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.0.3.tgz#0a36475a38b2855ab8ea0fe8b56899bc90184c0f" + integrity sha512-3tBWGgz7M9RKLO6sPWC6c4pAw4geujSwQ7q7Si4d6bo0l6cLs4tmO+lnSwFp1Tm3lxwfMk0SgkJT7EdwYSJvcg== + +"@next/swc-linux-arm64-musl@14.0.3": + version "14.0.3" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.0.3.tgz#25328a9f55baa09fde6364e7e47ade65c655034f" + integrity sha512-v0v8Kb8j8T23jvVUWZeA2D8+izWspeyeDGNaT2/mTHWp7+37fiNfL8bmBWiOmeumXkacM/AB0XOUQvEbncSnHA== + +"@next/swc-linux-x64-gnu@14.0.3": + version "14.0.3" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.0.3.tgz#594b747e3c8896b2da67bba54fcf8a6b5a410e5e" + integrity sha512-VM1aE1tJKLBwMGtyBR21yy+STfl0MapMQnNrXkxeyLs0GFv/kZqXS5Jw/TQ3TSUnbv0QPDf/X8sDXuMtSgG6eg== + +"@next/swc-linux-x64-musl@14.0.3": + version "14.0.3" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.0.3.tgz#a02da58fc6ecad8cf5c5a2a96a7f6030ec7f6215" + integrity sha512-64EnmKy18MYFL5CzLaSuUn561hbO1Gk16jM/KHznYP3iCIfF9e3yULtHaMy0D8zbHfxset9LTOv6cuYKJgcOxg== + +"@next/swc-win32-arm64-msvc@14.0.3": + version "14.0.3" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.0.3.tgz#bf2be23d3ba2ebd0d4a9376a31f783efdb677b48" + integrity sha512-WRDp8QrmsL1bbGtsh5GqQ/KWulmrnMBgbnb+59qNTW1kVi1nG/2ndZLkcbs2GX7NpFLlToLRMWSQXmPzQm4tog== + +"@next/swc-win32-ia32-msvc@14.0.3": + version "14.0.3" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.0.3.tgz#839f8de85a4bf2c3c69242483ab87cb916427551" + integrity sha512-EKffQeqCrj+t6qFFhIFTRoqb2QwX1mU7iTOvMyLbYw3QtqTw9sMwjykyiMlZlrfm2a4fA84+/aeW+PMg1MjuTg== + +"@next/swc-win32-x64-msvc@14.0.3": + version "14.0.3" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.0.3.tgz#27b623612b1d0cea6efe0a0d31aa1a335fc99647" + integrity sha512-ERhKPSJ1vQrPiwrs15Pjz/rvDHZmkmvbf/BjPN/UCOI++ODftT0GtasDPi0j+y6PPJi5HsXw+dpRaXUaw4vjuQ== + +"@nivo/annotations@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/annotations/-/annotations-0.84.0.tgz#488b18599e494ec12be8fdcb270d9ae85b8a7b91" + integrity sha512-g3n+WaZgRza7fZVQZrrxq1cLS+6vmjhWGmQqEynFmKM2f11F7gdkHLhGMYosayjZ0Sb/bMUXvBSkUbyKli7NVw== + dependencies: + "@nivo/colors" "0.84.0" + "@nivo/core" "0.84.0" "@react-spring/web" "9.4.5 || ^9.7.2" "@types/prop-types" "^15.7.2" lodash "^4.17.21" prop-types "^15.7.2" -"@nivo/arcs@0.83.1": - version "0.83.1" - resolved "https://registry.yarnpkg.com/@nivo/arcs/-/arcs-0.83.1.tgz#829d87420b3bb705532f2960582c1119fe05ad6a" - integrity sha512-AxWhot4O0781cseesDuImNcW4hX3aRT/wOpHbv3RGxKZF9w3YQzYIhb1an93rf4aEGH2ZI+Ok8pHIjvwdCalvw== +"@nivo/arcs@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/arcs/-/arcs-0.84.0.tgz#e080cdc7d09e4abaf7f74004f9cc5af69b80d22f" + integrity sha512-6i6CQmqdk7KZnaYmg8l0jqElQM19LJ/29WlxwVtDW43iQD0AqDzXb/eIwzZSZwf8sfGP8e8vvapkESlfkmzuPw== dependencies: - "@nivo/colors" "0.83.1" - "@nivo/core" "0.83.1" + "@nivo/colors" "0.84.0" + "@nivo/core" "0.84.0" "@react-spring/web" "9.4.5 || ^9.7.2" "@types/d3-shape" "^2.0.0" d3-shape "^1.3.5" -"@nivo/axes@0.83.1": - version "0.83.1" - resolved "https://registry.yarnpkg.com/@nivo/axes/-/axes-0.83.1.tgz#1558ca10a89beb452bb20df58bbb4678ae8f0d4d" - integrity sha512-A1wzSIJbeefFjAUluvr1pAQqEJWEFu2dIurJLNXety1pWtAIvdR44pyYZ6ovOTtmM7TFOSBHsOHvxDHnJQhQKg== +"@nivo/axes@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/axes/-/axes-0.84.0.tgz#f3d288cfc3c6f77b86c557c350f1b63fe5be7b29" + integrity sha512-bC9Rx5ixGJiupTRXSnATIVRLPcx0HR8yXGBuO8GTy6K1DDnhaNWfhErnBLYbB9Sq13WQGrS2he6uvLVLd23CtA== dependencies: - "@nivo/core" "0.83.1" - "@nivo/scales" "0.83.0" + "@nivo/core" "0.84.0" + "@nivo/scales" "0.84.0" "@react-spring/web" "9.4.5 || ^9.7.2" "@types/d3-format" "^1.4.1" "@types/d3-time-format" "^2.3.1" @@ -2378,18 +2378,18 @@ d3-time-format "^3.0.0" prop-types "^15.7.2" -"@nivo/bar@0.83.1": - version "0.83.1" - resolved "https://registry.yarnpkg.com/@nivo/bar/-/bar-0.83.1.tgz#40ecea6b8c15d69f352047ce80d1c0b36cda9f5b" - integrity sha512-ALHmfcZrTn8NqumUWiEv3Kqh8i4zkKWy1KJ9GUxGyFBxESZFCtBHy8pktEQHQ/JJGEJLZLx64S1rKj0TZcuB3A== - dependencies: - "@nivo/annotations" "0.83.1" - "@nivo/axes" "0.83.1" - "@nivo/colors" "0.83.1" - "@nivo/core" "0.83.1" - "@nivo/legends" "0.83.1" - "@nivo/scales" "0.83.0" - "@nivo/tooltip" "0.83.1" +"@nivo/bar@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/bar/-/bar-0.84.0.tgz#7bbf2c78c2381d26ff3d4c1a9b960bc5bd49ad7d" + integrity sha512-sOiC980VKS+SOnVSGPlG/nd2ssmz4b6iqIZY/POvwSkB8gvUFz6Bk6lBGXlVNxh1xHaYplVhyl1Tp2NpIWPcAA== + dependencies: + "@nivo/annotations" "0.84.0" + "@nivo/axes" "0.84.0" + "@nivo/colors" "0.84.0" + "@nivo/core" "0.84.0" + "@nivo/legends" "0.84.0" + "@nivo/scales" "0.84.0" + "@nivo/tooltip" "0.84.0" "@react-spring/web" "9.4.5 || ^9.7.2" "@types/d3-scale" "^3.2.3" "@types/d3-shape" "^2.0.0" @@ -2397,12 +2397,28 @@ d3-shape "^1.3.5" lodash "^4.17.21" -"@nivo/colors@0.83.1": - version "0.83.1" - resolved "https://registry.yarnpkg.com/@nivo/colors/-/colors-0.83.1.tgz#3f0249eb29c1ba7dd4b1facd66864fe5ca651b2f" - integrity sha512-l9Snze6xN29RKOufM3k3Po9KmBkkF5B7lnbFE9LDrcJO8fcNAd6JLSPLAz3ax51ACOlbIzJUvEd7I1nGBH8XEQ== +"@nivo/calendar@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/calendar/-/calendar-0.84.0.tgz#91a3686b11f64c9df17bb833905c43e14e94beb4" + integrity sha512-Xle2UEWehU4/bA/dZEF5clyX7kB9a65qopbA0dQ6sH5qzdI/oCjI1KRl9iT5dpaZCVG/h4kBBe9IofP37OccoA== dependencies: - "@nivo/core" "0.83.1" + "@nivo/core" "0.84.0" + "@nivo/legends" "0.84.0" + "@nivo/tooltip" "0.84.0" + "@types/d3-scale" "^3.2.3" + "@types/d3-time" "^1.0.10" + "@types/d3-time-format" "^3.0.0" + d3-scale "^3.2.3" + d3-time "^1.0.10" + d3-time-format "^3.0.0" + lodash "^4.17.21" + +"@nivo/colors@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/colors/-/colors-0.84.0.tgz#03fa4e8f8ad045a916ba210d78f125122c704beb" + integrity sha512-wNG1uYyDP5Owc1Pdkz0zesdZCrPAywmSssNzQ2Aju7nVs7Ru7iHNBIvOAGgyXTe2gcrIO9VSasXWR+jEYyxN2Q== + dependencies: + "@nivo/core" "0.84.0" "@types/d3-color" "^2.0.0" "@types/d3-scale" "^3.2.3" "@types/d3-scale-chromatic" "^2.0.0" @@ -2413,13 +2429,13 @@ lodash "^4.17.21" prop-types "^15.7.2" -"@nivo/core@0.83.1": - version "0.83.1" - resolved "https://registry.yarnpkg.com/@nivo/core/-/core-0.83.1.tgz#f1ab4382a2ea8c60018422192851941a533160b2" - integrity sha512-1PunY9sH+ieCVVqB3pMjkYEMCsuiDU45CEvkfaNIYbbeeQfgVFuqGquHZXlWeBUqaDHMLRUQqpazh/95tK7Q/g== +"@nivo/core@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/core/-/core-0.84.0.tgz#2bde01f2bf590e37fe98adae8ba43766d9e78c4c" + integrity sha512-HyQM4x4B7d4X9+xLPKkPxqIxhSDzbJUywGTDWHWx1daeX9VP8O+MqkTBsNsoB+tjxrbKrRJ0+ceS2w89JB+qrA== dependencies: - "@nivo/recompose" "0.83.0" - "@nivo/tooltip" "0.83.1" + "@nivo/recompose" "0.84.0" + "@nivo/tooltip" "0.84.0" "@react-spring/web" "9.4.5 || ^9.7.2" "@types/d3-shape" "^2.0.0" d3-color "^3.1.0" @@ -2431,92 +2447,92 @@ d3-time-format "^3.0.0" lodash "^4.17.21" -"@nivo/geo@0.83.1": - version "0.83.1" - resolved "https://registry.yarnpkg.com/@nivo/geo/-/geo-0.83.1.tgz#20d475570b4c25150f76314cf5c119eb3006703a" - integrity sha512-NiZufhnSJdTU4zNTYHIOU+5MzgHJoLc5IWgvV8Qx7qYcCCgWn2m5uWDcc0ydH/elu5Z+SXXmoss4AwVl79AZ4w== +"@nivo/geo@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/geo/-/geo-0.84.0.tgz#fca541e3325f5d2127f660b2330e69bb3f0cbf5f" + integrity sha512-KuvVONuHQG7vdw9vO+Q7W+HubVtJfp+ce9rWUMrE64NP1uM98ziK+9u0TxB127WXdit0QqRsDxlaQuGYpNGUmw== dependencies: - "@nivo/colors" "0.83.1" - "@nivo/core" "0.83.1" - "@nivo/legends" "0.83.1" - "@nivo/tooltip" "0.83.1" + "@nivo/colors" "0.84.0" + "@nivo/core" "0.84.0" + "@nivo/legends" "0.84.0" + "@nivo/tooltip" "0.84.0" d3-format "^1.4.4" d3-geo "^1.11.3" lodash "^4.17.21" prop-types "^15.7.2" -"@nivo/heatmap@0.83.1": - version "0.83.1" - resolved "https://registry.yarnpkg.com/@nivo/heatmap/-/heatmap-0.83.1.tgz#6ff9578e8cc1f4403a3fc2b79a7e766da8d0d53b" - integrity sha512-QWUFKGzl8TRNJg7QG4XUi7JxiIBVaylJu00VzYJu0FIX7schd/hY1PkEvFNxs2WiC3J9J8H6tSs7+fo2rz5Pvg== - dependencies: - "@nivo/annotations" "0.83.1" - "@nivo/axes" "0.83.1" - "@nivo/colors" "0.83.1" - "@nivo/core" "0.83.1" - "@nivo/legends" "0.83.1" - "@nivo/scales" "0.83.0" - "@nivo/tooltip" "0.83.1" +"@nivo/heatmap@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/heatmap/-/heatmap-0.84.0.tgz#212a57bd8d311dde8c8805e3c85783e8bef1f3bc" + integrity sha512-E7gj0Kd7DZiQp8tg5bm27uOljAXvBLMtho6d3vPOdAtzLYLUSg6xW/wWIrqvhup9IxWMOlgDvV4xENGhpoEglQ== + dependencies: + "@nivo/annotations" "0.84.0" + "@nivo/axes" "0.84.0" + "@nivo/colors" "0.84.0" + "@nivo/core" "0.84.0" + "@nivo/legends" "0.84.0" + "@nivo/scales" "0.84.0" + "@nivo/tooltip" "0.84.0" "@react-spring/web" "9.4.5 || ^9.7.2" "@types/d3-scale" "^3.2.3" d3-scale "^3.2.3" -"@nivo/legends@0.83.1": - version "0.83.1" - resolved "https://registry.yarnpkg.com/@nivo/legends/-/legends-0.83.1.tgz#58548f2c4e83bd1d37a89836d651f8dad8d4bfa4" - integrity sha512-cvGv72yCr8I+LLiNe+xgWN5V1fkKoP7cL+MGYoVc4JP5X4b6DN8xS6ZnoMS5ngChyWMup7CvhHt6mDdyxpHMbg== +"@nivo/legends@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/legends/-/legends-0.84.0.tgz#d89def3427aaa509721a9b6f38c813dd38401aff" + integrity sha512-o0s1cXoIH6Km9A2zoKB8Ey99Oc1w5nymz0j8s7hR2B0EHo5HgVbYjSs2sZD7NSwLt3QM57Nzxw9VzJ+sqfV30Q== dependencies: - "@nivo/colors" "0.83.1" - "@nivo/core" "0.83.1" + "@nivo/colors" "0.84.0" + "@nivo/core" "0.84.0" "@types/d3-scale" "^3.2.3" "@types/prop-types" "^15.7.2" d3-scale "^3.2.3" prop-types "^15.7.2" -"@nivo/line@0.83.1": - version "0.83.1" - resolved "https://registry.yarnpkg.com/@nivo/line/-/line-0.83.1.tgz#134decfc5536d40093fa96c4c70b9ca26cdbf483" - integrity sha512-D8O3SfgrDs8npdVRnL0gUCH7jsQaqsysvGBco4cMxaEKynPAphKUt9D3rBBGotqw57+Ex14MNw3ythrzWlW/OA== - dependencies: - "@nivo/annotations" "0.83.1" - "@nivo/axes" "0.83.1" - "@nivo/colors" "0.83.1" - "@nivo/core" "0.83.1" - "@nivo/legends" "0.83.1" - "@nivo/scales" "0.83.0" - "@nivo/tooltip" "0.83.1" - "@nivo/voronoi" "0.83.1" +"@nivo/line@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/line/-/line-0.84.0.tgz#dd5d7d230393fce19b59eb977edeef2151ee7438" + integrity sha512-QE0JwZ7oIwMnsDQeSr1Q6iyqD2UBVLtBMdfMsJLhnlI3V62VkY98/L3o8M7+7Wy/V2UiEMJ+14C2qhXd+XLgsA== + dependencies: + "@nivo/annotations" "0.84.0" + "@nivo/axes" "0.84.0" + "@nivo/colors" "0.84.0" + "@nivo/core" "0.84.0" + "@nivo/legends" "0.84.0" + "@nivo/scales" "0.84.0" + "@nivo/tooltip" "0.84.0" + "@nivo/voronoi" "0.84.0" "@react-spring/web" "9.4.5 || ^9.7.2" d3-shape "^1.3.5" prop-types "^15.7.2" -"@nivo/pie@0.83.1": - version "0.83.1" - resolved "https://registry.yarnpkg.com/@nivo/pie/-/pie-0.83.1.tgz#fe84b2966241367264ad0ba3cd0c185feaaf1850" - integrity sha512-PRIf8MslOIUWIh3qS94iMno/rsQ1b1TWadruLZBtpj7648nKMoJgSUDNIi0DeCplVQ3PtRT3QWyHiH+hb+f0MA== +"@nivo/pie@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/pie/-/pie-0.84.0.tgz#b295f8f8c6da8fd74460aed6e00de64e4d58a386" + integrity sha512-yM8oe162YlOKFZkpVhSF+9J/F3rhyUc+gS9M3M+HyVqzXM3xOKjZiqd5tckgFbvTixDK6FLsSBHzH2SRij/hDQ== dependencies: - "@nivo/arcs" "0.83.1" - "@nivo/colors" "0.83.1" - "@nivo/core" "0.83.1" - "@nivo/legends" "0.83.1" - "@nivo/tooltip" "0.83.1" + "@nivo/arcs" "0.84.0" + "@nivo/colors" "0.84.0" + "@nivo/core" "0.84.0" + "@nivo/legends" "0.84.0" + "@nivo/tooltip" "0.84.0" "@types/d3-shape" "^2.0.0" d3-shape "^1.3.5" -"@nivo/recompose@0.83.0": - version "0.83.0" - resolved "https://registry.yarnpkg.com/@nivo/recompose/-/recompose-0.83.0.tgz#5ea1f638e4a376b0266b8d0761b5ccf27d1db890" - integrity sha512-3cLEoi9ZoE4LTn6B98oUVd0MRAy5bWK7W3yb0u4EkjLoXXCRvUAI08Wr2AAagOzVOg5PmvghIDgvkz1tlFZTGQ== +"@nivo/recompose@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/recompose/-/recompose-0.84.0.tgz#c65f8dcf5053d17c1cedfe88c248b3486305807f" + integrity sha512-Odb+r0pEmGt4RV020jwvngF7PxBgxS1e1sy8bWlZKc5qkm6k3eVlZNuYU+zGbDxHMigImvrx5KfUv5iUqtQBZA== dependencies: "@types/prop-types" "^15.7.2" "@types/react-lifecycles-compat" "^3.0.1" prop-types "^15.7.2" react-lifecycles-compat "^3.0.4" -"@nivo/scales@0.83.0": - version "0.83.0" - resolved "https://registry.yarnpkg.com/@nivo/scales/-/scales-0.83.0.tgz#82a0ab9df0f3ee487e57ee15ac372d9c6daa21e8" - integrity sha512-DZn5IcMJErCURDuQPmYltu6GTPphTDVLMvbeN/Id/VSVbD1uYKvdXPKUNOe/N2IvnE8wjjCPv88DLcRhw6VTVg== +"@nivo/scales@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/scales/-/scales-0.84.0.tgz#a066aaad24d14200bc3780575ef9be88a3b25014" + integrity sha512-Cayo9jFMpoF7Ha7eqOAucHLUG6zZLGpxiAtyZ/vTUCkRZPHmd/YMvrm8E6OyQCTBVf+aRtOKk9tQnMv8E9fWiw== dependencies: "@types/d3-scale" "^3.2.3" "@types/d3-time" "^1.1.1" @@ -2526,20 +2542,20 @@ d3-time-format "^3.0.0" lodash "^4.17.21" -"@nivo/tooltip@0.83.1": - version "0.83.1" - resolved "https://registry.yarnpkg.com/@nivo/tooltip/-/tooltip-0.83.1.tgz#84f330856b296f46c9150614b960fe0292a5d740" - integrity sha512-r266BQhWWtb8FOWyYD0HrlF+xdiKo1XR4uhCYXqARtWSuCUmovBKFUmDGdfMDvLTFnUQYJ6hUbFO7VYp+5AQ9g== +"@nivo/tooltip@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/tooltip/-/tooltip-0.84.0.tgz#f033798f1d09af5b2de7fa36ee91faa75543c5d8" + integrity sha512-x/6Vk4RXKHkG9q5dk4uFYwEfbMoIvJd5ahhVQ6bskuLks5FZoS6bkKoNggjxwmHbIWOVITGUXuykOfC54EWSpw== dependencies: - "@nivo/core" "0.83.1" + "@nivo/core" "0.84.0" "@react-spring/web" "9.4.5 || ^9.7.2" -"@nivo/voronoi@0.83.1": - version "0.83.1" - resolved "https://registry.yarnpkg.com/@nivo/voronoi/-/voronoi-0.83.1.tgz#31d7413bedac2708609fea56d5827b485220a38a" - integrity sha512-PHzOdECRN0Yyly62xjL8FUxI3GvqF33d50OK2NQILLa9/LADTUHwY70VIUhZ+/lPxcZ2H/kA4DBGzsgEMyBuVQ== +"@nivo/voronoi@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/voronoi/-/voronoi-0.84.0.tgz#c4e2ae2a968d7a5901fe69b75cc865f1c35b1333" + integrity sha512-CJTb0sQWYNbfjjrCEK3W0jt1v+hqAd4fDUNJxB3SNRHEEQtF+MCr2EG3p/CWyxIb3avjF4N53/03tQpnuDwBvQ== dependencies: - "@nivo/core" "0.83.1" + "@nivo/core" "0.84.0" "@types/d3-delaunay" "^5.3.0" "@types/d3-scale" "^3.2.3" d3-delaunay "^5.3.0" @@ -2566,10 +2582,10 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@octokit/app@^14.0.0": - version "14.0.1" - resolved "https://registry.yarnpkg.com/@octokit/app/-/app-14.0.1.tgz#86e4501bc2cf8335a4767079dda41273975cdd88" - integrity sha512-4opdXcWBVhzd6FOxlaxDKXXqi9Vz2hsDSWQGNo49HbYFAX11UqMpksMjEdfvHy0x19Pse8Nvn+R6inNb/V398w== +"@octokit/app@^14.0.2": + version "14.0.2" + resolved "https://registry.yarnpkg.com/@octokit/app/-/app-14.0.2.tgz#b47c52020221351fb58640f113eb38b2ad3998fe" + integrity sha512-NCSCktSx+XmjuSUVn2dLfqQ9WIYePGP95SDJs4I9cn/0ZkeXcPkaoCLl64Us3dRKL2ozC7hArwze5Eu+/qt1tg== dependencies: "@octokit/auth-app" "^6.0.0" "@octokit/auth-unauthenticated" "^5.0.0" @@ -2577,7 +2593,7 @@ "@octokit/oauth-app" "^6.0.0" "@octokit/plugin-paginate-rest" "^9.0.0" "@octokit/types" "^12.0.0" - "@octokit/webhooks" "^12.0.1" + "@octokit/webhooks" "^12.0.4" "@octokit/auth-app@^6.0.0": version "6.0.1" @@ -2793,10 +2809,10 @@ resolved "https://registry.yarnpkg.com/@octokit/webhooks-types/-/webhooks-types-7.1.0.tgz#d533dea253416e02dd6c2bfab25e533295bd5d3f" integrity sha512-y92CpG4kFFtBBjni8LHoV12IegJ+KFxLgKRengrVjKmGE5XMeCuGvlfRe75lTRrgXaG6XIWJlFpIDTlkoJsU8w== -"@octokit/webhooks@^12.0.1": - version "12.0.3" - resolved "https://registry.yarnpkg.com/@octokit/webhooks/-/webhooks-12.0.3.tgz#91f5df322e83b3b7d8bb9af5e692ffea16d6c8bb" - integrity sha512-8iG+/yza7hwz1RrQ7i7uGpK2/tuItZxZq1aTmeg2TNp2xTUB8F8lZF/FcZvyyAxT8tpDMF74TjFGCDACkf1kAQ== +"@octokit/webhooks@^12.0.4": + version "12.0.8" + resolved "https://registry.yarnpkg.com/@octokit/webhooks/-/webhooks-12.0.8.tgz#72d01f2ab08f11bcd91b8e8e4e18018018169094" + integrity sha512-IndolsepJQtsGo7pyNRnftla/6Gn6Vejk6iV/RmKP76Z7QNFLanZvoJkU8CLMcOjmJk/6X8T2TfpCXVw68RenQ== dependencies: "@octokit/request-error" "^5.0.0" "@octokit/webhooks-methods" "^4.0.0" @@ -3072,30 +3088,30 @@ resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz#5f1b518ec5fa54437c0b7c4a821546c64fed6922" integrity sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA== -"@sentry-internal/tracing@7.80.1": - version "7.80.1" - resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.80.1.tgz#b0e993265aa75743787d84e6c0655ed17e4bac0f" - integrity sha512-5gZ4LPIj2vpQl2/dHBM4uXMi9OI5E0VlOhJQt0foiuN6JJeiOjdpJFcfVqJk69wrc0deVENTtgKKktxqMwVeWQ== +"@sentry-internal/tracing@7.81.1": + version "7.81.1" + resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.81.1.tgz#1180365cd8a9e18cb0f92e1ea970161840ec0e2e" + integrity sha512-E5xm27xrLXL10knH2EWDQsQYh5nb4SxxZzJ3sJwDGG9XGKzBdlp20UUhKqx00wixooVX9uCj3e4Jg8SvNB1hKg== dependencies: - "@sentry/core" "7.80.1" - "@sentry/types" "7.80.1" - "@sentry/utils" "7.80.1" + "@sentry/core" "7.81.1" + "@sentry/types" "7.81.1" + "@sentry/utils" "7.81.1" -"@sentry/browser@7.80.1": - version "7.80.1" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.80.1.tgz#3e63a122846a4d5dec04237b97ae064b80546da4" - integrity sha512-1dPR6vPJ9vOTzgXff9HGheb178XeEv5hyjBNhCO1f6rjCgnVj99XGNZIgO1Ee1ALJbqlfPWaeV+uSWbbcmgJMA== +"@sentry/browser@7.81.1": + version "7.81.1" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.81.1.tgz#5ee6ae3679ee80f444d2e8c5662430e7a734ae50" + integrity sha512-DNtS7bZEnFPKVoGazKs5wHoWC0FwsOFOOMNeDvEfouUqKKbjO7+RDHbr7H6Bo83zX4qmZWRBf8V+3n3YPIiJFw== dependencies: - "@sentry-internal/tracing" "7.80.1" - "@sentry/core" "7.80.1" - "@sentry/replay" "7.80.1" - "@sentry/types" "7.80.1" - "@sentry/utils" "7.80.1" + "@sentry-internal/tracing" "7.81.1" + "@sentry/core" "7.81.1" + "@sentry/replay" "7.81.1" + "@sentry/types" "7.81.1" + "@sentry/utils" "7.81.1" -"@sentry/cli@^1.74.6": - version "1.75.0" - resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-1.75.0.tgz#4a5e71b5619cd4e9e6238cc77857c66f6b38d86a" - integrity sha512-vT8NurHy00GcN8dNqur4CMIYvFH3PaKdkX3qllVvi4syybKqjwoz+aWRCvprbYv0knweneFkLt1SmBWqazUMfA== +"@sentry/cli@^1.77.1": + version "1.77.1" + resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-1.77.1.tgz#ebcf884712ef6c3c75443f491ec16f6a22148aec" + integrity sha512-OtJ7U9LeuPUAY/xow9wwcjM9w42IJIpDtClTKI/RliE685vd/OJUIpiAvebHNthDYpQynvwb/0iuF4fonh+CKw== dependencies: https-proxy-agent "^5.0.0" mkdirp "^0.5.5" @@ -3104,101 +3120,102 @@ proxy-from-env "^1.1.0" which "^2.0.2" -"@sentry/core@7.80.1": - version "7.80.1" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.80.1.tgz#ccb85e15495bf0c8b142ca1713408c64e38c9f4c" - integrity sha512-3Yh+O9Q86MxwIuJFYtuSSoUCpdx99P1xDAqL0FIPTJ+ekaVMiUJq9NmyaNh9uN2myPSmxvEXW6q3z37zta9ZHg== +"@sentry/core@7.81.1": + version "7.81.1" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.81.1.tgz#082fd9122bf9a488c8e05b1754724ddbc2d5cf30" + integrity sha512-tU37yAmckOGCw/moWKSwekSCWWJP15O6luIq+u7wal22hE88F3Vc5Avo8SeF3upnPR+4ejaOFH+BJTr6bgrs6Q== dependencies: - "@sentry/types" "7.80.1" - "@sentry/utils" "7.80.1" + "@sentry/types" "7.81.1" + "@sentry/utils" "7.81.1" -"@sentry/integrations@7.80.1": - version "7.80.1" - resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-7.80.1.tgz#c70534ae8c0f95e4017d72bcfb9bff751c23e5a7" - integrity sha512-9C+CBwgFZZUkBYLrPTHaDr3kyknfSs0ejF/00RucvPZjiUPoxfslnh4IjWnN90ELEy2u09kcJY+dTCFVKd0UPQ== +"@sentry/integrations@7.81.1": + version "7.81.1" + resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-7.81.1.tgz#1b12c0cf3a7fa88224e86c0be46523ed7e3f3a43" + integrity sha512-DN5ONn0/LX5HHVPf1EBGHFssIZaZmLgkqUIeMqCNYBpB4DiOrJANnGwTcWKDPphqhdPxjnPv9AGRLaU0PdvvZQ== dependencies: - "@sentry/core" "7.80.1" - "@sentry/types" "7.80.1" - "@sentry/utils" "7.80.1" + "@sentry/core" "7.81.1" + "@sentry/types" "7.81.1" + "@sentry/utils" "7.81.1" localforage "^1.8.1" -"@sentry/nextjs@7.80.1": - version "7.80.1" - resolved "https://registry.yarnpkg.com/@sentry/nextjs/-/nextjs-7.80.1.tgz#87e75315a760da2653c37bf0d9d096d5d4ce99ed" - integrity sha512-zA1gqwpxQCRJ0wXFFdwPWbKQ3qsdv52ASrGdpJ4ZHDiRD8R52yj08eynJisBQXg8DGuTfKpeOQ/qND1wKE5bHA== +"@sentry/nextjs@7.81.1": + version "7.81.1" + resolved "https://registry.yarnpkg.com/@sentry/nextjs/-/nextjs-7.81.1.tgz#2d07a92555b669d6ffdb30645c4c4fff9f801b3a" + integrity sha512-Wx0QiZHttf+WJkao4UQ5szOWJVu/pmPdKZKE4FWsJuG+mUu6FviOXgh0T0Iq+NnJrgqzKzGLMN6rIWPzN9PLkg== dependencies: "@rollup/plugin-commonjs" "24.0.0" - "@sentry/core" "7.80.1" - "@sentry/integrations" "7.80.1" - "@sentry/node" "7.80.1" - "@sentry/react" "7.80.1" - "@sentry/types" "7.80.1" - "@sentry/utils" "7.80.1" - "@sentry/vercel-edge" "7.80.1" - "@sentry/webpack-plugin" "1.20.0" + "@sentry/core" "7.81.1" + "@sentry/integrations" "7.81.1" + "@sentry/node" "7.81.1" + "@sentry/react" "7.81.1" + "@sentry/types" "7.81.1" + "@sentry/utils" "7.81.1" + "@sentry/vercel-edge" "7.81.1" + "@sentry/webpack-plugin" "1.21.0" chalk "3.0.0" resolve "1.22.8" rollup "2.78.0" stacktrace-parser "^0.1.10" -"@sentry/node@7.80.1": - version "7.80.1" - resolved "https://registry.yarnpkg.com/@sentry/node/-/node-7.80.1.tgz#ceca8c7b5e37cf1537747642eabef23145530ad4" - integrity sha512-0NWfcZMlyQphKWsvyzfhGm2dCBk5DUPqOGW/vGx18G4tCCYtFcAIj/mCp/4XOEcZRPQgb9vkm+sidGD6DnwWlA== +"@sentry/node@7.81.1": + version "7.81.1" + resolved "https://registry.yarnpkg.com/@sentry/node/-/node-7.81.1.tgz#3559ee1cef22f8220c907169cc60cc44744503b1" + integrity sha512-bKS3Mb95bar8AUEZSLKQ/RTSfFXo5sCSPNiBr5dDFuVljDFdkLq6NE3svG5bisrbENqfi0bqWsB4GZ7NHRTPbA== dependencies: - "@sentry-internal/tracing" "7.80.1" - "@sentry/core" "7.80.1" - "@sentry/types" "7.80.1" - "@sentry/utils" "7.80.1" + "@sentry-internal/tracing" "7.81.1" + "@sentry/core" "7.81.1" + "@sentry/types" "7.81.1" + "@sentry/utils" "7.81.1" https-proxy-agent "^5.0.0" -"@sentry/react@7.80.1": - version "7.80.1" - resolved "https://registry.yarnpkg.com/@sentry/react/-/react-7.80.1.tgz#a5df5080a38ea034df2fbe89237cb3bbd1169234" - integrity sha512-AZjROgfJsYmI/Htb+giRQuVTCNofsLKGz6nYmJS2cYDZYKP4KU1l1SapF5F8r5Pu7c/6ZvULNj7MeHOXq2SEYA== +"@sentry/react@7.81.1": + version "7.81.1" + resolved "https://registry.yarnpkg.com/@sentry/react/-/react-7.81.1.tgz#6a94e8e373a5bf27330cea2eb1a603ae0eb0b8ba" + integrity sha512-kk0plP/mf8KgVLOiImIpp1liYysmh3Un8uXcVAToomSuHZPGanelFAdP0XhY+0HlWU9KIfxTjhMte1iSwQ8pYw== dependencies: - "@sentry/browser" "7.80.1" - "@sentry/types" "7.80.1" - "@sentry/utils" "7.80.1" + "@sentry/browser" "7.81.1" + "@sentry/types" "7.81.1" + "@sentry/utils" "7.81.1" hoist-non-react-statics "^3.3.2" -"@sentry/replay@7.80.1": - version "7.80.1" - resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-7.80.1.tgz#1f47d3e52bfd0ad531f3032ae1eda8528c947c44" - integrity sha512-yjpftIyybQeWD2i0Nd7C96tZwjNbSMRW515EL9jwlNxYbQtGtMs0HavP9Y7uQvQrzwSHY0Wp+ooe9PMuvzqbHw== +"@sentry/replay@7.81.1": + version "7.81.1" + resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-7.81.1.tgz#a656d55e2a00b34e42be6eeb79018d21efc223af" + integrity sha512-4ueT0C4bYjngN/9p0fEYH10dTMLovHyk9HxJ6zSTgePvGVexhg+cSEHXisoBDwHeRZVnbIvsVM0NA7rmEDXJJw== dependencies: - "@sentry-internal/tracing" "7.80.1" - "@sentry/core" "7.80.1" - "@sentry/types" "7.80.1" - "@sentry/utils" "7.80.1" + "@sentry-internal/tracing" "7.81.1" + "@sentry/core" "7.81.1" + "@sentry/types" "7.81.1" + "@sentry/utils" "7.81.1" -"@sentry/types@7.80.1": - version "7.80.1" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.80.1.tgz#dc720d6f2da0b510d586814451a04a2cdd2f4a9d" - integrity sha512-CVu4uPVTOI3U9kYiOdA085R7jX5H1oVODbs9y+A8opJ0dtJTMueCXgZyE8oXQ0NjGVs6HEeaLkOuiV0mj8X3yw== +"@sentry/types@7.81.1": + version "7.81.1" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.81.1.tgz#2b2551fc291e1089651fd574a68f7c4175878bd5" + integrity sha512-dvJvGyctiaPMIQqa46k56Re5IODWMDxiHJ1UjBs/WYDLrmWFPGrEbyJ8w8CYLhYA+7qqrCyIZmHbWSTRIxstHw== -"@sentry/utils@7.80.1": - version "7.80.1" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.80.1.tgz#1c719f41b4d2c818363551fc40776a274b71efff" - integrity sha512-bfFm2e/nEn+b9++QwjNEYCbS7EqmteT8uf0XUs7PljusSimIqqxDtK1pfD9zjynPgC8kW/fVBKv0pe2LufomeA== +"@sentry/utils@7.81.1": + version "7.81.1" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.81.1.tgz#42f3e77baf90205cec1f8599eb8445a6918030bd" + integrity sha512-gq+MDXIirHKxNZ+c9/lVvCXd6y2zaZANujwlFggRH2u9SRiPaIXVilLpvMm4uJqmqBMEcY81ArujExtHvkbCqg== dependencies: - "@sentry/types" "7.80.1" + "@sentry/types" "7.81.1" -"@sentry/vercel-edge@7.80.1": - version "7.80.1" - resolved "https://registry.yarnpkg.com/@sentry/vercel-edge/-/vercel-edge-7.80.1.tgz#a0b2a0edaaa1068bb1238be4ef62954ddff878bf" - integrity sha512-V1XdiMxMBIU82gGPDt9mXXmOU/P4RHjXMWPx2ClkRg5aoBi1ewLpTcIRY8tYWawSAS4CMGimQcs3895Zzyvusg== +"@sentry/vercel-edge@7.81.1": + version "7.81.1" + resolved "https://registry.yarnpkg.com/@sentry/vercel-edge/-/vercel-edge-7.81.1.tgz#8d33b27b8222bee8c85388cb734f886e57fecc1d" + integrity sha512-fO5yV+2rz+024XKvhBSGhUdi502j3S1Vds+fIUJVgpgehpxsx4CQQUA1nQDaqDWEtPCB6LcBupD3XvkhBTS5Mw== dependencies: - "@sentry/core" "7.80.1" - "@sentry/types" "7.80.1" - "@sentry/utils" "7.80.1" + "@sentry-internal/tracing" "7.81.1" + "@sentry/core" "7.81.1" + "@sentry/types" "7.81.1" + "@sentry/utils" "7.81.1" -"@sentry/webpack-plugin@1.20.0": - version "1.20.0" - resolved "https://registry.yarnpkg.com/@sentry/webpack-plugin/-/webpack-plugin-1.20.0.tgz#e7add76122708fb6b4ee7951294b521019720e58" - integrity sha512-Ssj1mJVFsfU6vMCOM2d+h+KQR7QHSfeIP16t4l20Uq/neqWXZUQ2yvQfe4S3BjdbJXz/X4Rw8Hfy1Sd0ocunYw== +"@sentry/webpack-plugin@1.21.0": + version "1.21.0" + resolved "https://registry.yarnpkg.com/@sentry/webpack-plugin/-/webpack-plugin-1.21.0.tgz#bbe7cb293751f80246a4a56f9a7dd6de00f14b58" + integrity sha512-x0PYIMWcsTauqxgl7vWUY6sANl+XGKtx7DCVnnY7aOIIlIna0jChTAPANTfA2QrK+VK+4I/4JxatCEZBnXh3Og== dependencies: - "@sentry/cli" "^1.74.6" + "@sentry/cli" "^1.77.1" webpack-sources "^2.0.0 || ^3.0.0" "@sinclair/typebox@^0.27.8": @@ -3237,18 +3254,18 @@ dependencies: tslib "^2.4.0" -"@tabler/icons-react@2.40.0": - version "2.40.0" - resolved "https://registry.yarnpkg.com/@tabler/icons-react/-/icons-react-2.40.0.tgz#14efb60f0d841689c1ddf5691646dbfc3fa01901" - integrity sha512-C+dDOZowFbwI3LGQP0fdua+hOPkGkW7XeMcRXTSdEKc5fD75W6zRO5nXnWivIMRKsi/Y26EDmnQo15N8JX378w== +"@tabler/icons-react@2.42.0": + version "2.42.0" + resolved "https://registry.yarnpkg.com/@tabler/icons-react/-/icons-react-2.42.0.tgz#139a57cddcd756892c47f4c2040a5d24b34848dd" + integrity sha512-2APr++u24P2mx9vJymJQJORRpu2Qej0rPrtAvgXu8YomHjLXVP+O1VtToSGyoSPH1ysA569XbxrwzOau9Ne12A== dependencies: - "@tabler/icons" "2.40.0" + "@tabler/icons" "2.42.0" prop-types "^15.7.2" -"@tabler/icons@2.40.0": - version "2.40.0" - resolved "https://registry.yarnpkg.com/@tabler/icons/-/icons-2.40.0.tgz#96cecc990a03412b88194ce3765280d2e63c1be6" - integrity sha512-VqKsBSX159cLFTnCzkCmGhZtSPJHNN0lM2sC4xe0HPOfPUnjiex7rDHDdut4oe4iKRecDDpwXwM9BcU6xCPlCg== +"@tabler/icons@2.42.0": + version "2.42.0" + resolved "https://registry.yarnpkg.com/@tabler/icons/-/icons-2.42.0.tgz#306a444d18c6cf2966ee9d30262d41da4746fb01" + integrity sha512-ynV4iaC1c1mUhuAr9HRaoq8KrWYmZ0bJEpOh7qTBE+OfdDsdvQUe+0S7FW+DHkJ4RuxQMdO8djrZK7HrUw9YMA== "@testing-library/dom@^9.0.0": version "9.0.0" @@ -3278,10 +3295,10 @@ lodash "^4.17.15" redent "^3.0.0" -"@testing-library/react@14.1.0": - version "14.1.0" - resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-14.1.0.tgz#01d64915111db99b50f8361d51d7217606805989" - integrity sha512-hcvfZEEyO0xQoZeHmUbuMs7APJCGELpilL7bY+BaJaMP57aWc6q1etFwScnoZDheYjk4ESdlzPdQ33IbsKAK/A== +"@testing-library/react@14.1.2": + version "14.1.2" + resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-14.1.2.tgz#a2b9e9ee87721ec9ed2d7cfc51cc04e474537c32" + integrity sha512-z4p7DVBTPjKM5qDZ0t5ZjzkpSNb+fZy1u6bzO7kk8oeGagpPCAtgh4cx1syrfp7a+QWkM021jGqjJaxJJnXAZg== dependencies: "@babel/runtime" "^7.12.5" "@testing-library/dom" "^9.0.0" @@ -3389,6 +3406,11 @@ resolved "https://registry.yarnpkg.com/@types/d3-time-format/-/d3-time-format-3.0.1.tgz#1680fb6c41ab3a85db261ede296626668592246a" integrity sha512-5GIimz5IqaRsdnxs4YlyTZPwAMfALu/wA4jqSiuqgdbCxUZ2WjrnwANqOtoBJQgeaUTdYNfALJO0Yb0YrDqduA== +"@types/d3-time@^1.0.10": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-1.1.4.tgz#20da4b75c537a940e7319b75717c67a2e499515a" + integrity sha512-JIvy2HjRInE+TXOmIGN5LCmeO0hkFZx5f9FZ7kiN+D+YTcc8pptsiLiuHsvwxwC7VVKmJ2ExHUgNlAiV7vQM9g== + "@types/d3-time@^1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-1.1.1.tgz#6cf3a4242c3bbac00440dfb8ba7884f16bedfcbf" @@ -3443,10 +3465,10 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@29.5.8": - version "29.5.8" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.8.tgz#ed5c256fe2bc7c38b1915ee5ef1ff24a3427e120" - integrity sha512-fXEFTxMV2Co8ZF5aYFJv+YeA08RTYJfhtN5c9JSv/mFEMe+xxjufCb+PHL+bJcMs/ebPUsBu+UNTEz+ydXrR6g== +"@types/jest@29.5.10": + version "29.5.10" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.10.tgz#a10fc5bab9e426081c12b2ef73d24d4f0c9b7f50" + integrity sha512-tE4yxKEphEyxj9s4inideLHktW/x6DwesIwWZ9NN1FKf9zbJYsnhBoA9vrHA/IuIOKwPa5PcFBNV4lpMIOEzyQ== dependencies: expect "^29.0.0" pretty-format "^29.0.0" @@ -3536,10 +3558,10 @@ resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz" integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== -"@types/react-dom@18.2.15": - version "18.2.15" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.15.tgz#921af67f9ee023ac37ea84b1bc0cc40b898ea522" - integrity sha512-HWMdW+7r7MR5+PZqJF6YFNSCtjz1T0dsvo/f1BV6HkV+6erD/nA7wd9NM00KVG83zf2nJ7uATPO9ttdIPvi3gg== +"@types/react-dom@18.2.17": + version "18.2.17" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.17.tgz#375c55fab4ae671bd98448dcfa153268d01d6f64" + integrity sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg== dependencies: "@types/react" "*" @@ -5673,7 +5695,7 @@ d3-shape@^1.3.5: dependencies: d3-array "2" -d3-time@^1.0.11: +d3-time@^1.0.10, d3-time@^1.0.11: version "1.1.0" resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.1.0.tgz#b1e19d307dae9c900b7e5b25ffc5dcc249a8a0f1" integrity sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA== @@ -6666,12 +6688,12 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" -eslint-config-next@13.5.6: - version "13.5.6" - resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-13.5.6.tgz#3a5a6222d5cb32256760ad68ab8e976e866a08c8" - integrity sha512-o8pQsUHTo9aHqJ2YiZDym5gQAMRf7O2HndHo/JZeY7TDD+W4hk6Ma8Vw54RHiBeb7OWWO5dPirQB+Is/aVQ7Kg== +eslint-config-next@14.0.3: + version "14.0.3" + resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-14.0.3.tgz#7a01d23e4ff143ef87b520fab9efc440fa5879f3" + integrity sha512-IKPhpLdpSUyKofmsXUfrvBC49JMUTdeaD8ZIH4v9Vk0sC1X6URTuTJCLtA0Vwuj7V/CQh0oISuSTvNn5//Buew== dependencies: - "@next/eslint-plugin-next" "13.5.6" + "@next/eslint-plugin-next" "14.0.3" "@rushstack/eslint-patch" "^1.3.3" "@typescript-eslint/parser" "^5.4.2 || ^6.0.0" eslint-import-resolver-node "^0.3.6" @@ -6816,15 +6838,15 @@ eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@8.53.0: - version "8.53.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.53.0.tgz#14f2c8244298fcae1f46945459577413ba2697ce" - integrity sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag== +eslint@8.54.0: + version "8.54.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.54.0.tgz#588e0dd4388af91a2e8fa37ea64924074c783537" + integrity sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" "@eslint/eslintrc" "^2.1.3" - "@eslint/js" "8.53.0" + "@eslint/js" "8.54.0" "@humanwhocodes/config-array" "^0.11.13" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -10057,12 +10079,12 @@ next-sitemap@4.2.3: fast-glob "^3.2.12" minimist "^1.2.8" -next@14.0.2: - version "14.0.2" - resolved "https://registry.yarnpkg.com/next/-/next-14.0.2.tgz#02ba6a1656edf14d3913c7a3553026e9d6e083c7" - integrity sha512-jsAU2CkYS40GaQYOiLl9m93RTv2DA/tTJ0NRlmZIBIL87YwQ/xR8k796z7IqgM3jydI8G25dXvyYMC9VDIevIg== +next@14.0.3: + version "14.0.3" + resolved "https://registry.yarnpkg.com/next/-/next-14.0.3.tgz#8d801a08eaefe5974203d71092fccc463103a03f" + integrity sha512-AbYdRNfImBr3XGtvnwOxq8ekVCwbFTv/UJoLwmaX89nk9i051AEY4/HAWzU0YpaTDw8IofUpmuIlvzWF13jxIw== dependencies: - "@next/env" "14.0.2" + "@next/env" "14.0.3" "@swc/helpers" "0.5.2" busboy "1.6.0" caniuse-lite "^1.0.30001406" @@ -10070,15 +10092,15 @@ next@14.0.2: styled-jsx "5.1.1" watchpack "2.4.0" optionalDependencies: - "@next/swc-darwin-arm64" "14.0.2" - "@next/swc-darwin-x64" "14.0.2" - "@next/swc-linux-arm64-gnu" "14.0.2" - "@next/swc-linux-arm64-musl" "14.0.2" - "@next/swc-linux-x64-gnu" "14.0.2" - "@next/swc-linux-x64-musl" "14.0.2" - "@next/swc-win32-arm64-msvc" "14.0.2" - "@next/swc-win32-ia32-msvc" "14.0.2" - "@next/swc-win32-x64-msvc" "14.0.2" + "@next/swc-darwin-arm64" "14.0.3" + "@next/swc-darwin-x64" "14.0.3" + "@next/swc-linux-arm64-gnu" "14.0.3" + "@next/swc-linux-arm64-musl" "14.0.3" + "@next/swc-linux-x64-gnu" "14.0.3" + "@next/swc-linux-x64-musl" "14.0.3" + "@next/swc-win32-arm64-msvc" "14.0.3" + "@next/swc-win32-ia32-msvc" "14.0.3" + "@next/swc-win32-x64-msvc" "14.0.3" node-abi@^3.3.0: version "3.30.0" @@ -10391,12 +10413,12 @@ object.values@^1.1.6, object.values@^1.1.7: define-properties "^1.2.0" es-abstract "^1.22.1" -octokit@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/octokit/-/octokit-3.1.1.tgz#0f7941a4b287cb53b4e795ee75284438013f897c" - integrity sha512-AKJs5XYs7iAh7bskkYpxhUIpsYZdLqjnlnqrN5s9FFZuJ/a6ATUHivGpUKDpGB/xa+LGDtG9Lu8bOCfPM84vHQ== +octokit@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/octokit/-/octokit-3.1.2.tgz#e574e4f2f5f8712e10412ce81fb56a74c93d4cfa" + integrity sha512-MG5qmrTL5y8KYwFgE1A4JWmgfQBaIETE/lOlfwNYx1QOtCQHGVxkRJmdUJltFc1HVn73d61TlMhMyNTOtMl+ng== dependencies: - "@octokit/app" "^14.0.0" + "@octokit/app" "^14.0.2" "@octokit/core" "^5.0.0" "@octokit/oauth-app" "^6.0.0" "@octokit/plugin-paginate-graphql" "^4.0.0"