diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..ce1022b --- /dev/null +++ b/.eslintignore @@ -0,0 +1,8 @@ +# Ignore all config files in the root folder +leaky-ships/*.config.js + +# Ignore the whole __tests__ folder +leaky-ships/__tests__ + +# Allow all other files in folders +leaky-ships/!*/ diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index d860e09..7b2437c 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -18,12 +18,12 @@ jobs: - name: Install Node.js uses: actions/setup-node@v3 with: - node-version: 20 + node-version: 18 - uses: pnpm/action-setup@v2 name: Install pnpm with: - version: 8.7.4 + version: 8.6.10 run_install: false - name: Get pnpm store directory @@ -41,8 +41,8 @@ jobs: - name: Add FA token run: | - npm config set "@fortawesome:registry" "https://npm.fontawesome.com/" - npm config set "//npm.fontawesome.com/:_authToken" "${{ secrets.FONTAWESOME_NPM_AUTH_TOKEN }}" + echo "@fortawesome:registry=https://npm.fontawesome.com/" > .npmrc + npm config set '//npm.fontawesome.com/:_authToken' "${{ secrets.FONTAWESOME_NPM_AUTH_TOKEN }}" - name: Install dependencies run: pnpm install --frozen-lockfile @@ -53,7 +53,8 @@ jobs: - name: 'Compiling page' run: | echo "${{ secrets.ENV_FILE }}" > .env - pnpm build + pnpm prisma generate + pnpm run build - name: Run Playwright tests run: pnpm playwright test diff --git a/README.md b/README.md index 9314081..9d8b856 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,5 @@ # leaky-ships - -Battleship web app made with SolidJS using solid-start. +Battleship web app with react frontend and ASP.NET Core backend ## Bluetooth diff --git a/leaky-ships/.eslintrc.json b/leaky-ships/.eslintrc.json index bf919bc..ed20e77 100644 --- a/leaky-ships/.eslintrc.json +++ b/leaky-ships/.eslintrc.json @@ -1,11 +1,6 @@ { - "parser": "@typescript-eslint/parser", - "env": { - "node": true - }, - "plugins": ["solid"], - "extends": [ - "plugin:@typescript-eslint/recommended", - "plugin:solid/typescript" - ] + "extends": ["next/core-web-vitals", "prettier"], + "rules": { + "@next/next/no-img-element": "off" + } } diff --git a/leaky-ships/.gitignore b/leaky-ships/.gitignore index 404e93b..8f793d8 100644 --- a/leaky-ships/.gitignore +++ b/leaky-ships/.gitignore @@ -1,35 +1,48 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# logs /log -src/drizzle/migrations -dist -.vinxi -.output -.vercel -.netlify -netlify - -# Environment -.env -.env*.local +# prisma +/prisma/migrations # dependencies /node_modules +/.pnp +.pnp.js -# IDEs and editors -/.idea -.project -.classpath -*.launch -.settings/ +# testing +/coverage -# Temp -gitignore +# next.js +/.next/ +/out/ -# System Files +# production +/build + +# misc .DS_Store -Thumbs.db +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# local env files +.env +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts # playwright /test-results/ /playwright-report/ -/playwright/.cache/ \ No newline at end of file +/playwright/.cache/ diff --git a/leaky-ships/src/components/Bluetooth.tsx b/leaky-ships/components/Bluetooth.tsx similarity index 91% rename from leaky-ships/src/components/Bluetooth.tsx rename to leaky-ships/components/Bluetooth.tsx index e726498..f2ea535 100644 --- a/leaky-ships/src/components/Bluetooth.tsx +++ b/leaky-ships/components/Bluetooth.tsx @@ -1,8 +1,8 @@ -import { createSignal } from "solid-js" +import { useState } from "react" function Bluetooth() { - const [startDisabled, setStartDisabled] = createSignal(true) - const [stopDisabled, setStopDisabled] = createSignal(true) + const [startDisabled, setStartDisabled] = useState(true) + const [stopDisabled, setStopDisabled] = useState(true) const deviceName = "Chromecast Remote" // ble UV Index @@ -48,7 +48,7 @@ function Bluetooth() { if (!isWebBluetoothEnabled()) return return getDeviceInfo() .then(connectGatt) - .then(() => { + .then((_) => { console.log("Reading UV Index...") return gattCharacteristic.readValue() }) @@ -108,7 +108,7 @@ function Bluetooth() { if (!isWebBluetoothEnabled()) return gattCharacteristic .startNotifications() - .then(() => { + .then((_) => { console.log("Start reading...") setStartDisabled(true) setStopDisabled(false) @@ -119,7 +119,7 @@ function Bluetooth() { if (!isWebBluetoothEnabled()) return gattCharacteristic .stopNotifications() - .then(() => { + .then((_) => { console.log("Stop reading...") setStartDisabled(false) setStopDisabled(true) @@ -135,28 +135,28 @@ function Bluetooth() { return (
-

{ navigator.clipboard.writeText( "chrome://flags/#enable-experimental-web-platform-features", @@ -169,7 +169,7 @@ function Bluetooth() { Step 1 {" "} { navigator.clipboard.writeText( "chrome://flags/#enable-web-bluetooth-new-permissions-backend", diff --git a/leaky-ships/src/components/BurgerMenu.tsx b/leaky-ships/components/BurgerMenu.tsx similarity index 66% rename from leaky-ships/src/components/BurgerMenu.tsx rename to leaky-ships/components/BurgerMenu.tsx index 12d5833..0c18f42 100644 --- a/leaky-ships/src/components/BurgerMenu.tsx +++ b/leaky-ships/components/BurgerMenu.tsx @@ -1,17 +1,23 @@ import classNames from "classnames" -function BurgerMenu(props: { onClick?: () => void; blur?: boolean }) { +function BurgerMenu({ + onClick, + blur, +}: { + onClick?: () => void + blur?: boolean +}) { return ( ) } diff --git a/leaky-ships/components/Lobby/Icon.tsx b/leaky-ships/components/Lobby/Icon.tsx new file mode 100644 index 0000000..de4c9c4 --- /dev/null +++ b/leaky-ships/components/Lobby/Icon.tsx @@ -0,0 +1,27 @@ +import { ReactNode } from "react" + +function Icon({ + src, + children, + onClick, +}: { + src: string + children: ReactNode + onClick?: () => void +}) { + return ( + + ) +} + +export default Icon diff --git a/leaky-ships/components/Lobby/LobbyFrame.tsx b/leaky-ships/components/Lobby/LobbyFrame.tsx new file mode 100644 index 0000000..1eb7dc0 --- /dev/null +++ b/leaky-ships/components/Lobby/LobbyFrame.tsx @@ -0,0 +1,143 @@ +import { + faRightFromBracket, + faSpinnerThird, +} from "@fortawesome/pro-solid-svg-icons" +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome" +import { useGameProps } from "@hooks/useGameProps" +import useSocket from "@hooks/useSocket" +import { socket } from "@lib/socket" +import { useSession } from "next-auth/react" +import { useRouter } from "next/router" +import { Fragment, ReactNode, useEffect, useMemo, useState } from "react" +import Button from "./Button" +import Icon from "./Icon" +import Player from "./Player" + +function WithDots({ children }: { children: ReactNode }) { + const [dots, setDots] = useState(1) + + useEffect(() => { + const interval = setInterval(() => setDots((e) => (e % 3) + 1), 1000) + return () => clearInterval(interval) + }, []) + + return ( + <> + {children + " "} + {Array.from(Array(dots), () => ".").join("")} + {Array.from(Array(3 - dots), (_, i) => ( +   + ))} + + ) +} + +function LobbyFrame({ openSettings }: { openSettings: () => void }) { + const { payload, userStates, full, leave, reset } = useGameProps() + const { isConnected } = useSocket() + const router = useRouter() + const { data: session } = useSession() + const [launchTime, setLaunchTime] = useState(3) + + const launching = useMemo( + () => + payload?.users.length === 2 && + !userStates.filter((user) => !user.isReady).length, + [payload?.users.length, userStates], + ) + + useEffect(() => { + if (!launching || launchTime > 0) return + socket.emit("gameState", "starting") + }, [launching, launchTime, router]) + + useEffect(() => { + if (!launching) return setLaunchTime(3) + if (launchTime < 0) return + + const timeout = setTimeout(() => { + setLaunchTime((e) => e - 1) + }, 1000) + + return () => clearTimeout(timeout) + }, [launching, launchTime]) + + useEffect(() => { + if (payload?.game?.id || !isConnected) return + socket.emit("update", full) + }, [full, payload?.game?.id, isConnected]) + + useEffect(() => { + if ( + typeof payload?.game?.state !== "string" || + payload?.game?.state === "lobby" + ) + return + router.push("/gamefield") + }) + + return ( +

+
+ Chat +

+ {launching ? ( + + {launchTime < 0 + ? "Game starts" + : "Game is starting in " + launchTime} + + ) : ( + <> + {"Game-PIN: "} + {isConnected ? ( + {payload?.gamePin ?? "----"} + ) : ( + + )} + + )} +

+ + Settings + +
+
+ {isConnected ? ( + <> + +

VS

+ {payload?.users[1] ? ( + + ) : ( +

+ Warte auf Spieler 2 +

+ )} + + ) : ( +

+ Warte auf Verbindung +

+ )} +
+
+ +
+
+ ) +} + +export default LobbyFrame diff --git a/leaky-ships/components/Lobby/Player.tsx b/leaky-ships/components/Lobby/Player.tsx new file mode 100644 index 0000000..5f6d25c --- /dev/null +++ b/leaky-ships/components/Lobby/Player.tsx @@ -0,0 +1,125 @@ +import { + faCheck, + faHandPointer, + faHourglass1, + faHourglass2, + faHourglass3, + faHourglassClock, +} from "@fortawesome/pro-solid-svg-icons" +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome" +import { faCaretDown } from "@fortawesome/sharp-solid-svg-icons" +import { useGameProps } from "@hooks/useGameProps" +import { socket } from "@lib/socket" +import classNames from "classnames" +import { CSSProperties, useEffect, useMemo, useState } from "react" +import Button from "./Button" + +function HourGlass() { + const [count, setCount] = useState(3) + + useEffect(() => { + const interval = setInterval(() => setCount((e) => (e + 1) % 4), 1000) + return () => clearInterval(interval) + }, []) + + const icon = useMemo(() => { + switch (count) { + case 0: + return faHourglass3 + case 1: + return faHourglass1 + case 2: + return faHourglass2 + case 3: + return faHourglass3 + default: + return faHourglassClock + } + }, [count]) + + return ( + + ) +} + +function Player({ + src, + i, + userId, +}: { + src: string + i: number + userId?: string +}) { + const { payload, userStates, setIsReady } = useGameProps() + const player = useMemo(() => payload?.users[i], [i, payload?.users]) + const { isReady, isConnected } = useMemo(() => userStates[i], [i, userStates]) + const primary = useMemo( + () => userId && userId === payload?.users[i]?.id, + [i, payload?.users, userId], + ) + + return ( +
+

+ {player?.name ?? "Spieler " + (player?.index === 2 ? "2" : "1")} +

+
+ {src} + {primary ? ( + + ) : null} +
+ +
+ ) +} + +export default Player diff --git a/leaky-ships/components/Lobby/SettingsFrame/Setting.tsx b/leaky-ships/components/Lobby/SettingsFrame/Setting.tsx new file mode 100644 index 0000000..9734523 --- /dev/null +++ b/leaky-ships/components/Lobby/SettingsFrame/Setting.tsx @@ -0,0 +1,58 @@ +import { setGameSetting } from "@components/Gamefield/EventBar" +import { + faToggleLargeOff, + faToggleLargeOn, +} from "@fortawesome/pro-solid-svg-icons" +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome" +import { useGameProps } from "@hooks/useGameProps" +import classNames from "classnames" +import { ReactNode, useMemo } from "react" +import { GameSettingKeys } from "../../../interfaces/frontend" + +function Setting({ + children, + prop, +}: { + children: ReactNode + prop: GameSettingKeys +}) { + const { payload, setSetting, full } = useGameProps() + const state = useMemo(() => payload?.game?.[prop], [payload?.game, prop]) + + return ( + + ) +} + +export default Setting diff --git a/leaky-ships/components/Lobby/SettingsFrame/Settings.tsx b/leaky-ships/components/Lobby/SettingsFrame/Settings.tsx new file mode 100644 index 0000000..6c3c05b --- /dev/null +++ b/leaky-ships/components/Lobby/SettingsFrame/Settings.tsx @@ -0,0 +1,77 @@ +import { faRotateLeft } from "@fortawesome/pro-regular-svg-icons" +import { faXmark } from "@fortawesome/pro-solid-svg-icons" +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome" +import { useGameProps } from "@hooks/useGameProps" +import { socket } from "@lib/socket" +import { useCallback } from "react" +import { GameSettings } from "../../../interfaces/frontend" +import Setting from "./Setting" + +function Settings({ closeSettings }: { closeSettings: () => void }) { + const { setSetting, full } = useGameProps() + + const gameSetting = useCallback( + (payload: GameSettings) => { + const hash = setSetting(payload) + socket.emit("gameSetting", payload, (newHash) => { + if (newHash === hash) return + console.log("hash", hash, newHash) + socket.emit("update", full) + }) + }, + [full, setSetting], + ) + + return ( +
+
+
+
+

+ Settings +

+ +
+
+
+ +
+
+ Erlaube Zuschauer + Erlaube spezial Items + Erlaube den Chat + Erlaube zeichen/makieren +
+
+
+
+
+ ) +} + +export default Settings diff --git a/leaky-ships/components/Logo.tsx b/leaky-ships/components/Logo.tsx new file mode 100644 index 0000000..5f1ef32 --- /dev/null +++ b/leaky-ships/components/Logo.tsx @@ -0,0 +1,83 @@ +import classNames from "classnames" + +function Logo({ small }: { small?: boolean }) { + return ( +
+

+ Leaky + Ships +

+ +
+ ) +} + +function Screws({ small }: { small?: boolean }) { + return ( + <> + + + + + + ) +} + +function Screw({ + orientation, + rotation, + small, +}: { + orientation: string + rotation: string + small?: boolean +}) { + return ( +
+
+
+ ) +} + +export default Logo diff --git a/leaky-ships/components/OptionButton.tsx b/leaky-ships/components/OptionButton.tsx new file mode 100644 index 0000000..41ff4bf --- /dev/null +++ b/leaky-ships/components/OptionButton.tsx @@ -0,0 +1,41 @@ +import { + FontAwesomeIcon, + FontAwesomeIconProps, +} from "@fortawesome/react-fontawesome" +import classNames from "classnames" + +function OptionButton({ + id, + icon, + callback, + node, + disabled, +}: { + id: string + icon: FontAwesomeIconProps["icon"] + callback?: () => void + node?: JSX.Element + disabled?: boolean +}) { + return ( + + ) +} + +export default OptionButton diff --git a/leaky-ships/src/components/profileImg.tsx b/leaky-ships/components/profileImg.tsx similarity index 67% rename from leaky-ships/src/components/profileImg.tsx rename to leaky-ships/components/profileImg.tsx index a7898a4..756e432 100644 --- a/leaky-ships/src/components/profileImg.tsx +++ b/leaky-ships/components/profileImg.tsx @@ -1,7 +1,7 @@ function profileImg(src: string) { return ( profile picture diff --git a/leaky-ships/drizzle.config.ts b/leaky-ships/drizzle.config.ts deleted file mode 100644 index f0f8e09..0000000 --- a/leaky-ships/drizzle.config.ts +++ /dev/null @@ -1,11 +0,0 @@ -import "dotenv/config" -import type { Config } from "drizzle-kit" - -export default { - schema: "./src/drizzle/schemas/Tables.ts", - out: "./src/drizzle/migrations", - driver: "pg", - dbCredentials: { - connectionString: process.env.DATABASE_URL ?? "", - }, -} satisfies Config diff --git a/leaky-ships/e2e/auth.spec.ts b/leaky-ships/e2e/auth.spec.ts index 80738f0..a0d435f 100644 --- a/leaky-ships/e2e/auth.spec.ts +++ b/leaky-ships/e2e/auth.spec.ts @@ -1,5 +1,6 @@ import { expect, test, type BrowserContext, type Page } from "@playwright/test" +const callbackUrl = process.env.NEXTAUTH_URL + "/" let context: BrowserContext let page: Page @@ -15,36 +16,36 @@ test.describe.serial("Check Azure AD auth", () => { }) test("Login process...", async () => { - await page.goto("/signin") + await page.goto(callbackUrl + "signin") - await page.locator("button#microsoft").click() + await page.waitForLoadState("domcontentloaded") + + await page.click("button#microsoft") // Indicates email can be filled in await page.waitForSelector("a#cantAccessAccount") // Fill email input - await page.locator("input#i0116").fill(process.env.AUTH_EMAIL!) + await page.fill("input#i0116", process.env.AUTH_EMAIL ?? "") // Click the "Next" button - await page.locator("input#idSIButton9").click() + await page.click("input#idSIButton9") // Indicates password can be filled in await page.waitForSelector("a#idA_PWD_ForgotPassword") // Fill password input - await page.locator("input#i0118").fill(process.env.AUTH_PW!) + await page.fill("input#i0118", process.env.AUTH_PW ?? "") // Click the "Sign in" button - await page.locator("input#idSIButton9").click() + await page.click("input#idSIButton9") // Click the "No" button - await page.locator("input#idBtn_Back").click() + await page.click("input#idBtn_Back") await page.waitForSelector("#start") }) test("Is logged in", async () => { - await page.goto("/signin") - await page.waitForSelector("button#signout") - await page.goto("/") + await page.goto(callbackUrl + "signin") await page.waitForSelector("#start") await page.evaluate(() => document.fonts.ready) @@ -54,9 +55,11 @@ test.describe.serial("Check Azure AD auth", () => { }) test("Is logged out", async () => { - await page.goto("/signout") + await page.goto(callbackUrl + "signout") - await page.locator("button#signout").click() + await page.waitForLoadState("domcontentloaded") + + await page.click("button#signout") await page.waitForSelector("#start") diff --git a/leaky-ships/e2e/email.spec.ts b/leaky-ships/e2e/email.spec.ts index dece2a0..fd88fbf 100644 --- a/leaky-ships/e2e/email.spec.ts +++ b/leaky-ships/e2e/email.spec.ts @@ -5,10 +5,9 @@ import { type Page, } from "@playwright/test" import { createHash, randomBytes } from "crypto" -import { and, desc, eq } from "drizzle-orm" -import db from "~/drizzle" -import { verificationTokens } from "~/drizzle/schemas/Tables" +import prisma from "../lib/prisma" +const callbackUrl = process.env.NEXTAUTH_URL + "/" const player1Email = (browser: Browser) => browser.browserType().name() + "-player-1@example.com" @@ -26,51 +25,51 @@ test.describe.serial("Check Email auth", () => { }) test("Email login process...", async ({ browser }) => { - await page.goto("/signin") + await page.goto(callbackUrl + "signin") - await page.locator("input#email").fill(player1Email(browser)) - await page.locator("button#email-submit").click() + await page.waitForSelector("input#email") + await page.fill("input#email", player1Email(browser)) + await page.click("button#email-submit") - await page.waitForURL("/api/auth/verify-request?provider=email&type=email") + await page.waitForURL( + callbackUrl + "api/auth/verify-request?provider=email&type=email", + ) + await page.waitForLoadState("domcontentloaded") + }) + + test("Verify Email...", async ({ browser }) => { const token = randomBytes(32).toString("hex") const hash = createHash("sha256") // Prefer provider specific secret, but use default secret if none specified - .update(`${token}${process.env.AUTH_SECRET}`) + .update(`${token}${process.env.NEXTAUTH_SECRET}`) .digest("hex") - // Use drizzle to fetch the latest token for the email - const latestToken = await db.query.verificationTokens.findFirst({ - where: eq(verificationTokens.identifier, player1Email(browser)), - orderBy: [desc(verificationTokens.expires)], + // Use Prisma to fetch the latest token for the email + const latestToken = await prisma.verificationToken.findFirst({ + where: { identifier: player1Email(browser) }, + orderBy: { expires: "desc" }, + }) + await prisma.verificationToken.update({ + where: { + identifier_token: { + identifier: player1Email(browser), + token: latestToken?.token ?? "", + }, + }, + data: { token: hash }, }) - await db - .update(verificationTokens) - .set({ token: hash }) - .where( - and( - eq(verificationTokens.identifier, player1Email(browser)), - eq(verificationTokens.token, latestToken?.token ?? ""), - ), - ) const params = new URLSearchParams({ - callbackUrl: process.env.AUTH_URL!, + callbackUrl, token, email: player1Email(browser), }) + const url = callbackUrl + "api/auth/callback/email?" + params - await page.goto("/api/auth/callback/email?" + params) - }) + await page.goto(url) - test("Verify Logged in...", async () => { - await page.goto("/signin") - await page.waitForSelector("button#signout") - }) - - test("Logging out...", async () => { - await page.locator("button#signout").click() - await page.waitForSelector("#start") + await page.waitForLoadState("domcontentloaded") }) }) diff --git a/leaky-ships/global.d.ts b/leaky-ships/global.d.ts new file mode 100644 index 0000000..4e697e9 --- /dev/null +++ b/leaky-ships/global.d.ts @@ -0,0 +1,5 @@ +import "@total-typescript/ts-reset" + +declare global { + var prismaClient: PrismaClient +} diff --git a/leaky-ships/hooks/useDraw.ts b/leaky-ships/hooks/useDraw.ts new file mode 100644 index 0000000..fe360b1 --- /dev/null +++ b/leaky-ships/hooks/useDraw.ts @@ -0,0 +1,126 @@ +import { socket } from "@lib/socket" +import { useEffect, useRef, useState } from "react" +import { Draw, DrawLineProps, PlayerEvent, Point } from "../interfaces/frontend" +import { useDrawProps } from "./useDrawProps" + +function drawLine({ prevPoint, currentPoint, ctx, color }: Draw) { + const { x: currX, y: currY } = currentPoint + const lineColor = color + const lineWidth = 5 + + let startPoint = prevPoint ?? currentPoint + ctx.beginPath() + ctx.lineWidth = lineWidth + ctx.strokeStyle = lineColor + ctx.moveTo(startPoint.x, startPoint.y) + ctx.lineTo(currX, currY) + ctx.stroke() + + ctx.fillStyle = lineColor + ctx.beginPath() + ctx.arc(startPoint.x, startPoint.y, 2, 0, 2 * Math.PI) + ctx.fill() +} + +export const useDraw = () => { + const [mouseDown, setMouseDown] = useState(false) + + const canvasRef = useRef(null) + const prevPoint = useRef(null) + + const { color } = useDrawProps() + + const onMouseDown = () => setMouseDown(true) + + const clear = () => { + const canvas = canvasRef.current + if (!canvas) return + + const ctx = canvas.getContext("2d") + if (!ctx) return + + ctx.clearRect(0, 0, canvas.width, canvas.height) + } + + useEffect(() => { + const canvas = canvasRef.current + if (!canvas) return + + const handler = (e: MouseEvent) => { + if (!mouseDown) return + const currentPoint = computePointInCanvas(e) + + const ctx = canvasRef.current?.getContext("2d") + if (!ctx || !currentPoint) return + + drawLine({ ctx, currentPoint, prevPoint: prevPoint.current, color }) + prevPoint.current = currentPoint + } + + const computePointInCanvas = (e: MouseEvent) => { + const rect = canvas.getBoundingClientRect() + const x = e.clientX - rect.left + const y = e.clientY - rect.top + + return { x, y } + } + + const mouseUpHandler = () => { + setMouseDown(false) + prevPoint.current = null + } + + // Add event listeners + canvas.addEventListener("mousemove", handler) + window.addEventListener("mouseup", mouseUpHandler) + + // Remove event listeners + return () => { + canvas.removeEventListener("mousemove", handler) + window.removeEventListener("mouseup", mouseUpHandler) + } + }, [color, mouseDown]) + + useEffect(() => { + const canvas = canvasRef.current + if (!canvas) return + + const ctx = canvas.getContext("2d") + if (!ctx) return + + const playerEvent = (event: PlayerEvent) => { + if (!canvasRef.current?.toDataURL() || event.type !== "connect") return + console.log("sending canvas state") + socket.emit("canvas-state", canvasRef.current.toDataURL()) + } + + const canvasStateFromServer = (state: string, index: number) => { + console.log("I received the state") + const img = new Image() + img.src = state + img.onload = () => { + ctx?.drawImage(img, 0, 0) + } + } + + const socketDrawLine = (props: DrawLineProps, index: number) => { + const { prevPoint, currentPoint, color } = props + if (!ctx) return console.log("no ctx here") + drawLine({ prevPoint, currentPoint, ctx, color }) + } + + socket.on("playerEvent", playerEvent) + socket.on("canvas-state-from-server", canvasStateFromServer) + socket.on("draw-line", socketDrawLine) + socket.on("canvas-clear", clear) + + return () => { + socket.off("playerEvent", playerEvent) + socket.off("canvas-state-from-server", canvasStateFromServer) + socket.off("draw-line", socketDrawLine) + socket.off("canvas-clear", clear) + } + }) + + return { canvasRef, onMouseDown, clear } +} diff --git a/leaky-ships/hooks/useDrawProps.ts b/leaky-ships/hooks/useDrawProps.ts new file mode 100644 index 0000000..f7ddff0 --- /dev/null +++ b/leaky-ships/hooks/useDrawProps.ts @@ -0,0 +1,40 @@ +import { produce } from "immer" +import { create } from "zustand" +import { devtools } from "zustand/middleware" + +const initialState: { + enable: boolean + shouldHide: boolean + color: string +} = { + enable: false, + shouldHide: false, + color: "#b32aa9", +} + +export type State = typeof initialState + +export type Action = { + setColor: (color: string) => void + reset: () => void +} + +export const useDrawProps = create()( + devtools( + (set) => ({ + ...initialState, + setColor: (color) => + set( + produce((state) => { + state.color = color + }), + ), + reset: () => { + set(initialState) + }, + }), + { + name: "gameState", + }, + ), +) diff --git a/leaky-ships/hooks/useGameProps.ts b/leaky-ships/hooks/useGameProps.ts new file mode 100644 index 0000000..0d532d5 --- /dev/null +++ b/leaky-ships/hooks/useGameProps.ts @@ -0,0 +1,274 @@ +import { getPayloadwithChecksum } from "@lib/getPayloadwithChecksum" +import { socket } from "@lib/socket" +import { + initlialMouseCursor, + initlialTarget, + initlialTargetPreview, + intersectingShip, + targetList, +} from "@lib/utils/helpers" +import { + GamePropsSchema, + optionalGamePropsSchema, + PlayerSchema, +} from "@lib/zodSchemas" +import { GameState, MoveType } from "@prisma/client" +import { produce } from "immer" +import { SetStateAction } from "react" +import { toast } from "react-toastify" +import { create } from "zustand" +import { devtools } from "zustand/middleware" +import { + EventBarModes, + GameSettings, + MouseCursor, + MoveDispatchProps, + ShipProps, + Target, + TargetPreview, +} from "../interfaces/frontend" + +const initialState: optionalGamePropsSchema & { + userStates: { + isReady: boolean + isConnected: boolean + }[] + menu: keyof EventBarModes + mode: number + target: Target + targetPreview: TargetPreview + mouseCursor: MouseCursor +} = { + menu: "moves", + mode: 0, + payload: null, + hash: null, + target: initlialTarget, + targetPreview: initlialTargetPreview, + mouseCursor: initlialMouseCursor, + userStates: Array.from(Array(2), () => ({ + isReady: false, + isConnected: false, + })), +} + +export type State = typeof initialState + +export type Action = { + DispatchMove: (props: MoveDispatchProps, i: number) => void + setTarget: (target: SetStateAction) => void + setTargetPreview: (targetPreview: SetStateAction) => void + setMouseCursor: (mouseCursor: SetStateAction) => void + setPlayer: (payload: { users: PlayerSchema[] }) => string | null + setSetting: (settings: GameSettings) => string | null + full: (newProps: GamePropsSchema) => void + leave: (cb: () => void) => void + setIsReady: (payload: { i: number; isReady: boolean }) => void + gameState: (newState: GameState) => void + setShips: (ships: ShipProps[], index: number) => void + removeShip: (props: ShipProps, index: number) => void + setIsConnected: (payload: { i: number; isConnected: boolean }) => void + reset: () => void + setActiveIndex: (i: number, selfIndex: number) => void +} + +export const useGameProps = create()( + devtools( + (set) => ({ + ...initialState, + setActiveIndex: (i, selfIndex) => + set( + produce((state: State) => { + if (!state.payload) return + state.payload.activeIndex = i + if (i === selfIndex) { + state.menu = "moves" + state.mode = 0 + } else { + state.menu = "main" + state.mode = -1 + } + }), + ), + DispatchMove: (move, i) => + set( + produce((state: State) => { + if (!state.payload) return + const list = targetList(move, move.type) + state.payload.users.map((e) => { + if (!e) return e + if (i === e.index) e.moves.push(move) + else if (move.type !== MoveType.radar) + e.hits.push( + ...list.map(({ x, y }) => ({ + hit: !!intersectingShip(e.ships, { + ...move, + size: 1, + variant: 0, + }).fields.length, + x, + y, + })), + ) + + return e + }) + }), + ), + setTarget: (dispatch) => + set( + produce((state: State) => { + if (typeof dispatch === "function") + state.target = dispatch(state.target) + else state.target = dispatch + }), + ), + setTargetPreview: (dispatch) => + set( + produce((state: State) => { + if (typeof dispatch === "function") + state.targetPreview = dispatch(state.targetPreview) + else state.targetPreview = dispatch + }), + ), + setMouseCursor: (dispatch) => + set( + produce((state: State) => { + if (typeof dispatch === "function") + state.mouseCursor = dispatch(state.mouseCursor) + else state.mouseCursor = dispatch + }), + ), + setShips: (ships, index) => + set( + produce((state: State) => { + if (!state.payload) return + state.payload.users = state.payload.users.map((e) => { + if (!e || e.index !== index) return e + e.ships = ships + return e + }) + }), + ), + removeShip: ({ size, variant, x, y }, index) => + set( + produce((state: State) => { + state.payload?.users.map((e) => { + if (!e || e.index !== index) return + const indexToRemove = e.ships.findIndex( + (ship) => + ship.size === size && + ship.variant === variant && + ship.x === x && + ship.y === y, + ) + e.ships.splice(indexToRemove, 1) + return e + }) + }), + ), + setPlayer: (payload) => { + let hash: string | null = null + set( + produce((state: State) => { + if (!state.payload) return + state.payload.users = payload.users + const body = getPayloadwithChecksum(state.payload) + if (!body.hash) { + toast.warn("Something is wrong... ", { + toastId: "st_wrong", + theme: "colored", + }) + return + } + hash = body.hash + state.hash = hash + }), + ) + return hash + }, + setSetting: (settings) => { + let hash: string | null = null + set( + produce((state: State) => { + if (!state.payload?.game) return + Object.assign(state.payload.game, settings) + const body = getPayloadwithChecksum(state.payload) + if (!body.hash) { + toast.warn("Something is wrong... ", { + toastId: "st_wrong", + theme: "colored", + }) + return + } + hash = body.hash + state.hash = hash + }), + ) + return hash + }, + full: (newGameProps) => + set((state) => { + if (state.hash === newGameProps.hash) { + console.log("Everything up to date.") + } else { + console.log("Update was needed.", state.hash, newGameProps.hash) + + if ( + state.payload?.game?.id && + state.payload?.game?.id !== newGameProps.payload?.game?.id + ) { + console.warn( + "Different gameId detected on update: ", + state.payload?.game?.id, + newGameProps.payload?.game?.id, + ) + } + + return newGameProps + } + return state + }), + leave: (cb) => { + socket.emit("leave", (ack) => { + if (!ack) { + toast.error("Something is wrong...") + } + cb() + }) + }, + setIsReady: ({ i, isReady }) => + set( + produce((state: State) => { + state.userStates[i].isReady = isReady + state.userStates[i].isConnected = true + }), + ), + gameState: (newState: GameState) => + set( + produce((state: State) => { + if (!state.payload?.game) return + state.payload.game.state = newState + state.userStates = state.userStates.map((e) => ({ + ...e, + isReady: false, + })) + }), + ), + setIsConnected: ({ i, isConnected }) => + set( + produce((state: State) => { + state.userStates[i].isConnected = isConnected + if (isConnected) return + state.userStates[i].isReady = false + }), + ), + reset: () => { + set(initialState) + }, + }), + { + name: "gameState", + }, + ), +) diff --git a/leaky-ships/hooks/useIndex.ts b/leaky-ships/hooks/useIndex.ts new file mode 100644 index 0000000..81924be --- /dev/null +++ b/leaky-ships/hooks/useIndex.ts @@ -0,0 +1,24 @@ +import { useSession } from "next-auth/react" +import { useGameProps } from "./useGameProps" + +function useIndex() { + const { payload } = useGameProps() + const { data: session } = useSession() + + const selfIndex = + payload?.users.findIndex((e) => e?.id === session?.user.id) ?? -1 + const activeIndex = payload?.activeIndex ?? -1 + const isActiveIndex = selfIndex >= 0 && payload?.activeIndex === selfIndex + const selfUser = payload?.users[selfIndex] + const activeUser = payload?.users[activeIndex === 0 ? 1 : 0] + + return { + selfIndex, + activeIndex, + isActiveIndex, + selfUser, + activeUser, + } +} + +export default useIndex diff --git a/leaky-ships/hooks/useShips.ts b/leaky-ships/hooks/useShips.ts new file mode 100644 index 0000000..54d7ab4 --- /dev/null +++ b/leaky-ships/hooks/useShips.ts @@ -0,0 +1,27 @@ +import { useCallback, useMemo } from "react" +import { ShipProps } from "../interfaces/frontend" +import { useGameProps } from "./useGameProps" +import useIndex from "./useIndex" + +function useShips() { + const gameProps = useGameProps() + const { selfIndex } = useIndex() + + const ships = useMemo( + () => + gameProps.payload?.users.find((e) => e?.index === selfIndex)?.ships ?? [], + [gameProps.payload?.users, selfIndex], + ) + const setShips = useCallback( + (ships: ShipProps[]) => gameProps.setShips(ships, selfIndex), + [gameProps, selfIndex], + ) + const removeShip = useCallback( + (ship: ShipProps) => gameProps.removeShip(ship, selfIndex), + [gameProps, selfIndex], + ) + + return { ships, setShips, removeShip } +} + +export default useShips diff --git a/leaky-ships/hooks/useSocket.ts b/leaky-ships/hooks/useSocket.ts new file mode 100644 index 0000000..72d08b3 --- /dev/null +++ b/leaky-ships/hooks/useSocket.ts @@ -0,0 +1,192 @@ +import { socket } from "@lib/socket" +import { GamePropsSchema } from "@lib/zodSchemas" +import status from "http-status" +import { useRouter } from "next/router" +import { useEffect, useMemo, useState } from "react" +import { toast } from "react-toastify" +import { GameSettings, PlayerEvent } from "../interfaces/frontend" +import { isAuthenticated } from "../pages/start" +import { useGameProps } from "./useGameProps" +import useIndex from "./useIndex" + +/** This function should only be called once per page, otherwise there will be multiple socket connections and duplicate event listeners. */ +function useSocket() { + const [isConnectedState, setIsConnectedState] = useState(false) + const { selfIndex } = useIndex() + const { + payload, + userStates, + setPlayer, + setSetting, + full, + setIsReady, + gameState, + setIsConnected, + setActiveIndex, + DispatchMove, + setShips, + } = useGameProps() + const router = useRouter() + + const isConnected = useMemo( + () => + selfIndex >= 0 ? userStates[selfIndex].isConnected : isConnectedState, + [selfIndex, isConnectedState, userStates], + ) + + useEffect(() => { + if (selfIndex < 0) return + setIsConnected({ + i: selfIndex, + isConnected: isConnectedState, + }) + }, [selfIndex, isConnectedState, setIsConnected]) + + useEffect(() => { + const connect = () => { + console.log("connected") + toast.dismiss("connect_error") + setIsConnectedState(true) + } + + const connectError = (error: Error) => { + console.log("Connection error:", error.message) + if (error.message === status["403"]) router.push("/") + if (error.message !== "xhr poll error") return + const toastId = "connect_error" + const isActive = toast.isActive(toastId) + console.log(toastId, isActive) + if (isActive) + toast.update(toastId, { + autoClose: 5000, + }) + else + toast.warn("Es gibt Probleme mit der Echtzeitverbindung.", { toastId }) + } + + const playerEvent = (event: PlayerEvent) => { + const { type, i } = event + let message: string + console.log("playerEvent", type) + switch (type) { + case "disconnect": + setIsConnected({ + i, + isConnected: false, + }) + message = "Player is disconnected." + break + + case "leave": + message = "Player has left the lobby." + break + + case "connect": + setIsConnected({ + i, + isConnected: true, + }) + socket.emit("isReady", userStates[selfIndex].isReady) + message = "Player has joined the lobby." + break + + default: + message = "Not defined yet." + break + } + toast.info(message, { toastId: message }) + if (type === "disconnect") return + const { payload, hash } = event + const newHash = setPlayer(payload) + console.log(newHash, hash, !newHash, newHash === hash) + if (!newHash || newHash === hash) return + console.log("hash", hash, newHash) + socket.emit("update", (body) => { + console.log("update") + full(body) + }) + } + + const gameSetting = (payload: GameSettings, hash: string) => { + const newHash = setSetting(payload) + if (!newHash || newHash === hash) return + console.log("hash", hash, newHash) + socket.emit("update", (body) => { + console.log("update") + full(body) + }) + } + + const activeIndex = (i: number) => setActiveIndex(i, selfIndex) + + const disconnect = () => { + console.log("disconnect") + setIsConnectedState(false) + } + + socket.on("connect", connect) + socket.on("connect_error", connectError) + socket.on("gameSetting", gameSetting) + socket.on("playerEvent", playerEvent) + socket.on("isReady", setIsReady) + socket.on("gameState", gameState) + socket.on("dispatchMove", DispatchMove) + socket.on("activeIndex", activeIndex) + socket.on("ships", setShips) + socket.on("disconnect", disconnect) + + return () => { + socket.off("connect", connect) + socket.off("connect_error", connectError) + socket.off("gameSetting", gameSetting) + socket.off("playerEvent", playerEvent) + socket.off("isReady", setIsReady) + socket.off("gameState", gameState) + socket.off("dispatchMove", DispatchMove) + socket.off("activeIndex", activeIndex) + socket.off("ships", setShips) + socket.off("disconnect", disconnect) + } + }, [ + DispatchMove, + full, + gameState, + router, + selfIndex, + setActiveIndex, + setIsConnected, + setIsReady, + setPlayer, + setSetting, + setShips, + userStates, + ]) + + useEffect(() => { + if (!payload?.game?.id) { + socket.disconnect() + fetch("/api/game/running", { + method: "GET", + }) + .then(isAuthenticated) + .then((game) => GamePropsSchema.parse(game)) + .then((res) => full(res)) + .catch((e) => console.log(e)) + return + } + if (isConnected) return + socket.connect() + const start = Date.now() + socket.volatile.emit("ping", () => { + const duration = Date.now() - start + console.log("ping", duration) + }) + }, [full, isConnected, payload?.game?.id]) + + return { + isConnected: + selfIndex >= 0 ? userStates[selfIndex].isConnected : isConnectedState, + } +} + +export default useSocket diff --git a/leaky-ships/src/interfaces/ApiSocket.d.ts b/leaky-ships/interfaces/NextApiSocket.ts similarity index 62% rename from leaky-ships/src/interfaces/ApiSocket.d.ts rename to leaky-ships/interfaces/NextApiSocket.ts index 4b82bbf..0565e7d 100644 --- a/leaky-ships/src/interfaces/ApiSocket.d.ts +++ b/leaky-ships/interfaces/NextApiSocket.ts @@ -1,14 +1,15 @@ -import { Session } from "@auth/core/types" +import { GamePropsSchema } from "@lib/zodSchemas" +import { GameState } from "@prisma/client" import type { Server as HTTPServer } from "http" import type { Socket as NetSocket } from "net" +import type { NextApiResponse } from "next" +import { Session } from "next-auth" import type { Server as IOServer, Server, Socket as SocketforServer, } from "socket.io" import type { Socket as SocketforClient } from "socket.io-client" -import { GamePropsSchema } from "~/lib/zodSchemas" -import { GameState } from "../lib/zodSchemas" import { DrawLineProps, GameSettings, @@ -21,22 +22,30 @@ interface SocketServer extends HTTPServer { io?: IOServer } -export interface SocketWithIO extends NetSocket { +interface SocketWithIO extends NetSocket { server: SocketServer } +export interface NextApiResponseWithSocket extends NextApiResponse { + socket: SocketWithIO +} + export interface ServerToClientEvents { + // noArg: () => void + // basicEmit: (a: number, b: string, c: Buffer) => void + // withAck: (d: string, ) => void gameSetting: (payload: GameSettings, hash: string) => void playerEvent: (event: PlayerEvent) => void - isReady: (payload: { i: 0 | 1; isReady: boolean }) => void - isConnected: (payload: { i: 0 | 1; isConnected: boolean }) => void + isReady: (payload: { i: number; isReady: boolean }) => void + isConnected: (payload: { i: number; isConnected: boolean }) => void "get-canvas-state": () => void - "canvas-state-from-server": (state: DrawLineProps[], i: 0 | 1) => void - "draw-line": (props: DrawLineProps, i: 0 | 1) => void - "canvas-clear": (index: { i: 0 | 1 }) => void + "canvas-state-from-server": (state: string, userIndex: number) => void + "draw-line": (props: DrawLineProps, userIndex: number) => void + "canvas-clear": () => void gameState: (newState: GameState) => void - ships: (ships: ShipProps[], index: 0 | 1) => void - dispatchMove: (props: MoveDispatchProps, i: 0 | 1) => void + ships: (ships: ShipProps[], index: number) => void + activeIndex: (index: number) => void + dispatchMove: (props: MoveDispatchProps, i: number) => void } export interface ClientToServerEvents { @@ -47,7 +56,7 @@ export interface ClientToServerEvents { join: (withAck: (ack: boolean) => void) => void gameSetting: (payload: GameSettings, callback: (hash: string) => void) => void leave: (withAck: (ack: boolean) => void) => void - "canvas-state": (state: DrawLineProps[]) => void + "canvas-state": (state: string) => void "draw-line": (props: DrawLineProps) => void "canvas-clear": () => void gameState: (newState: GameState) => void @@ -60,9 +69,14 @@ interface InterServerEvents { } interface SocketData { + props: { + userId: string + gameId: string + index: number + } user: Session["user"] - gameId: string - index: { i: 0 | 1 } | null + gameId: string | null + index: number } export type sServer = Server< diff --git a/leaky-ships/src/interfaces/frontend.ts b/leaky-ships/interfaces/frontend.ts similarity index 79% rename from leaky-ships/src/interfaces/frontend.ts rename to leaky-ships/interfaces/frontend.ts index b7fe3ee..b8ed0c9 100644 --- a/leaky-ships/src/interfaces/frontend.ts +++ b/leaky-ships/interfaces/frontend.ts @@ -1,5 +1,6 @@ import { IconDefinition } from "@fortawesome/pro-solid-svg-icons" -import { MoveType, Orientation, PlayerSchema } from "~/lib/zodSchemas" +import { PlayerSchema } from "@lib/zodSchemas" +import { MoveType, Orientation } from "@prisma/client" export interface Position { x: number @@ -22,7 +23,7 @@ export interface TargetList extends Position { edges: string[] } export interface Mode { - pointerGrid: void[][] + pointerGrid: any[][] type: MoveType } export interface ItemProps { @@ -31,7 +32,6 @@ export interface ItemProps { amount?: number iconColor?: string disabled?: boolean - showWhen?: () => boolean enabled?: boolean callback?: () => void } @@ -55,6 +55,9 @@ export interface DrawLineProps { prevPoint: Point | null color: string } +export interface Draw extends DrawLineProps { + ctx: CanvasRenderingContext2D +} export interface ShipProps extends Position { size: number variant: number @@ -74,20 +77,15 @@ export type GameSettingKeys = | "allowChat" | "allowMarkDraw" -export type GameSettings = Partial> +export type GameSettings = { [key in GameSettingKeys]?: boolean } export type PlayerEvent = | { type: "connect" | "leave" - i: 0 | 1 - users: Players + i: number + payload: { users: PlayerSchema[] } hash: string } | { type: "disconnect" - i: 0 | 1 + i: number } -export type Players = { 0: PlayerSchema; 1: PlayerSchema } -export type User = - | (PlayerSchema & { isReady: boolean; isConnected: boolean }) - | null -export type Users = { 0: User; 1: User } diff --git a/leaky-ships/jest-puppeteer.config.js b/leaky-ships/jest-puppeteer.config.js new file mode 100644 index 0000000..0271d4c --- /dev/null +++ b/leaky-ships/jest-puppeteer.config.js @@ -0,0 +1,6 @@ +/** @type {import('jest-environment-puppeteer').JestPuppeteerConfig} */ +module.exports = { + launch: { + headless: "new", + }, +} diff --git a/leaky-ships/src/lib/backend/errors.ts b/leaky-ships/lib/backend/errors.ts similarity index 100% rename from leaky-ships/src/lib/backend/errors.ts rename to leaky-ships/lib/backend/errors.ts diff --git a/leaky-ships/src/lib/backend/getPinFromBody.ts b/leaky-ships/lib/backend/getPinFromBody.ts similarity index 60% rename from leaky-ships/src/lib/backend/getPinFromBody.ts rename to leaky-ships/lib/backend/getPinFromBody.ts index 5d2478b..dc0c949 100644 --- a/leaky-ships/src/lib/backend/getPinFromBody.ts +++ b/leaky-ships/lib/backend/getPinFromBody.ts @@ -1,4 +1,4 @@ -import { APIEvent } from "@solidjs/start/server/types" +import { NextApiRequest, NextApiResponse } from "next" import { z } from "zod" import sendError from "./sendError" @@ -6,13 +6,13 @@ const pinBodySchema = z.object({ pin: z.string(), }) -async function getPinFromBody(request: APIEvent["request"]) { +async function getPinFromBody(req: NextApiRequest, res: NextApiResponse) { try { - const body = await request.json() + const body = JSON.parse(req.body) const { pin } = pinBodySchema.parse(body) return pin - } catch { - sendError(request, { + } catch (err: any) { + sendError(req, res, { message: "No pin in request body!", statusCode: 401, solved: true, diff --git a/leaky-ships/src/lib/backend/logging.ts b/leaky-ships/lib/backend/logging.ts similarity index 79% rename from leaky-ships/src/lib/backend/logging.ts rename to leaky-ships/lib/backend/logging.ts index 69822de..8bc7231 100644 --- a/leaky-ships/src/lib/backend/logging.ts +++ b/leaky-ships/lib/backend/logging.ts @@ -1,7 +1,7 @@ -import { APIEvent } from "@solidjs/start/server/types" import colors, { Color } from "colors" import fs from "fs" import { IncomingMessage } from "http" +import { NextApiRequest } from "next" colors.enable() @@ -39,7 +39,7 @@ async function logStartup() { async function logging( message: string, types: Logging[], - request?: APIEvent["request"] | IncomingMessage, + req?: NextApiRequest | IncomingMessage, ) { if (!started) await logStartup() const messages = { console: message, file: message } @@ -55,14 +55,10 @@ async function logging( messages.console = `[${new Date().toString().slice(0, 33)}] ` + messages.console messages.file = `[${new Date().toString().slice(0, 33)}] ` + messages.file - if (request) { - const xForwardedFor = - typeof request.headers.get === "function" - ? request.headers.get("x-forwarded-for") - : // @ts-expect-error Bad IncomingHttpHeaders Type - request.headers["x-forwarded-for"] - const ip = (xForwardedFor || "127.0.0.1, 192.168.178.1").split(",") - const route = request.url + if (req) { + const forwardedFor: any = req.headers["x-forwarded-for"] + const ip = (forwardedFor || "127.0.0.1, 192.168.178.1").split(",") + const route = req.url messages.console = [ip[0].yellow, route?.green, messages.console].join( " - ", ) diff --git a/leaky-ships/src/lib/backend/sendError.ts b/leaky-ships/lib/backend/sendError.ts similarity index 52% rename from leaky-ships/src/lib/backend/sendError.ts rename to leaky-ships/lib/backend/sendError.ts index e57cda4..b23bf6e 100644 --- a/leaky-ships/src/lib/backend/sendError.ts +++ b/leaky-ships/lib/backend/sendError.ts @@ -1,21 +1,20 @@ -import { APIEvent } from "@solidjs/start/server/types" +import type { NextApiRequest, NextApiResponse } from "next" import { rejectionError } from "./errors" import logging from "./logging" -export default function sendError( - request: APIEvent["request"], +export default function sendError( + req: NextApiRequest, + res: NextApiResponse, err: rejectionError | Error, ) { + // If something went wrong, let the client know with status 500 + res.status("statusCode" in err ? err.statusCode : 500).end() logging( err.message, "type" in err && err.type ? err.type : ["solved" in err && err.solved ? "debug" : "error"], - request, + req, ) - if ("name" in err) console.log("Sending Respons: " + err) - // If something went wrong, let the client know with status 500 - return new Response(null, { - status: "statusCode" in err ? err.statusCode : 500, - }) + if ("name" in err) console.log(err) } diff --git a/leaky-ships/lib/backend/sendResponse.ts b/leaky-ships/lib/backend/sendResponse.ts new file mode 100644 index 0000000..e4d4b7d --- /dev/null +++ b/leaky-ships/lib/backend/sendResponse.ts @@ -0,0 +1,25 @@ +import { NextApiRequest, NextApiResponse } from "next" +import logging, { Logging } from "./logging" + +export interface Result { + message: string + statusCode?: number + body?: T + type?: Logging[] + redirectUrl?: string +} + +export default function sendResponse( + req: NextApiRequest, + res: NextApiResponse, + result: Result, +) { + if (result.redirectUrl) { + res.redirect(result.statusCode ?? 307, result.redirectUrl) + } else { + res.status(result.statusCode ?? 200) + result.body ? res.json(result.body) : res.end() + logging(result.message, result.type ?? ["debug"], req) + } + return "done" as const +} diff --git a/leaky-ships/lib/getPayloadwithChecksum.ts b/leaky-ships/lib/getPayloadwithChecksum.ts new file mode 100644 index 0000000..97541f2 --- /dev/null +++ b/leaky-ships/lib/getPayloadwithChecksum.ts @@ -0,0 +1,10 @@ +import crypto from "crypto" +import { GamePropsSchema } from "./zodSchemas" + +export function getPayloadwithChecksum( + payload: GamePropsSchema["payload"], +): GamePropsSchema { + const objString = JSON.stringify(payload) + const hash = crypto.createHash("md5").update(objString).digest("hex") + return { payload, hash } +} diff --git a/leaky-ships/lib/prisma.ts b/leaky-ships/lib/prisma.ts new file mode 100644 index 0000000..5f7a05b --- /dev/null +++ b/leaky-ships/lib/prisma.ts @@ -0,0 +1,15 @@ +// lib/prisma.ts +import { PrismaClient } from "@prisma/client" + +let prisma: PrismaClient + +if (process.env.NODE_ENV === "production") { + prisma = new PrismaClient() +} else { + if (!global.prismaClient) { + global.prismaClient = new PrismaClient() + } + prisma = global.prismaClient +} + +export default prisma diff --git a/leaky-ships/src/lib/socket.ts b/leaky-ships/lib/socket.ts similarity index 68% rename from leaky-ships/src/lib/socket.ts rename to leaky-ships/lib/socket.ts index f32ab59..64d0c98 100644 --- a/leaky-ships/src/lib/socket.ts +++ b/leaky-ships/lib/socket.ts @@ -1,5 +1,5 @@ import { io } from "socket.io-client" -import { cSocket } from "../interfaces/ApiSocket" +import { cSocket } from "../interfaces/NextApiSocket" export const socket: cSocket = io({ path: "/api/ws", diff --git a/leaky-ships/src/lib/utils/helpers.ts b/leaky-ships/lib/utils/helpers.ts similarity index 85% rename from leaky-ships/src/lib/utils/helpers.ts rename to leaky-ships/lib/utils/helpers.ts index 0cecfde..8a6002d 100644 --- a/leaky-ships/src/lib/utils/helpers.ts +++ b/leaky-ships/lib/utils/helpers.ts @@ -1,5 +1,5 @@ -import { count } from "~/components/Gamefield/Gamefield" -import { users } from "~/hooks/useGameProps" +import { count } from "@components/Gamefield/Gamefield" +import { Orientation } from "@prisma/client" import type { Hit, IndexedPosition, @@ -9,9 +9,7 @@ import type { ShipProps, Target, TargetList, - TargetPreview, } from "../../interfaces/frontend" -import { MoveType, Orientation } from "../zodSchemas" export function borderCN(count: number, x: number, y: number) { if (x === 0) return "left" @@ -117,13 +115,13 @@ export const initlialTarget = { x: 2, y: 2, show: false, - orientation: Orientation.Enum.h, + orientation: Orientation.h, } export const initlialTargetPreview = { x: 2, y: 2, show: false, - orientation: Orientation.Enum.h, + orientation: Orientation.h, } export const initlialMouseCursor = { shouldShow: false, @@ -134,7 +132,7 @@ export const initlialMouseCursor = { export const shipProps = ( ships: ShipProps[], mode: number, - targetPreview: Omit, + targetPreview: Position & { orientation: Orientation }, ) => ({ size: mode + 2, variant: @@ -155,8 +153,8 @@ export const shipProps = ( orientation: targetPreview.orientation, }) export function shipFields(ship: ShipProps, i?: number) { - const fields: IndexedPosition[] = [] - const borders: IndexedPosition[] = [] + let fields: IndexedPosition[] = [] + let borders: IndexedPosition[] = [] for ( let x = ship.x; x <= (ship.orientation === "h" ? ship.x + ship.size - 1 : ship.x); @@ -222,25 +220,3 @@ export function intersectingShip( borders, } } - -export function compiledHits(i: 0 | 1) { - return ( - users[i]?.moves.reduce((hits, { orientation, type, ...move }) => { - const list = targetList(move, type) - return type === MoveType.Enum.radar - ? hits - : [ - ...hits, - ...list.map((pos) => ({ - hit: !!intersectingShip(users[i === 0 ? 1 : 0]?.ships ?? [], { - ...pos, - orientation, - size: 1, - variant: 0, - }).fields.length, - ...pos, - })), - ] - }, [] as Hit[]) ?? [] - ) -} diff --git a/leaky-ships/lib/zodSchemas.ts b/leaky-ships/lib/zodSchemas.ts new file mode 100644 index 0000000..1917809 --- /dev/null +++ b/leaky-ships/lib/zodSchemas.ts @@ -0,0 +1,73 @@ +import { GameState, MoveType, Orientation } from "@prisma/client" +import { z } from "zod" + +export const PlayerSchema = z + .object({ + id: z.string(), + name: z.string().nullable(), + index: z.number(), + chats: z + .object({ + id: z.string(), + event: z.string().nullable(), + message: z.string().nullable(), + createdAt: z.coerce.date(), + }) + .array(), + moves: z + .object({ + index: z.number(), + type: z.nativeEnum(MoveType), + x: z.number(), + y: z.number(), + orientation: z.nativeEnum(Orientation), + }) + .array(), + ships: z + .object({ + size: z.number(), + variant: z.number(), + x: z.number(), + y: z.number(), + orientation: z.nativeEnum(Orientation), + }) + .array(), + hits: z + .object({ + x: z.number(), + y: z.number(), + hit: z.boolean(), + }) + .array(), + }) + .nullable() + +export type PlayerSchema = z.infer + +export const CreateSchema = z.object({ + game: z + .object({ + id: z.string(), + state: z.nativeEnum(GameState), + allowSpectators: z.boolean(), + allowSpecials: z.boolean(), + allowChat: z.boolean(), + allowMarkDraw: z.boolean(), + }) + .nullable(), + gamePin: z.string().nullable(), + users: PlayerSchema.array(), + activeIndex: z.number().optional(), +}) + +export const GamePropsSchema = z.object({ + payload: CreateSchema, + hash: z.string(), +}) +export const optionalGamePropsSchema = z.object({ + payload: CreateSchema.nullable(), + hash: z.string().nullable(), +}) + +export type GamePropsSchema = z.infer +export type optionalGamePropsSchema = z.infer diff --git a/leaky-ships/next.config.js b/leaky-ships/next.config.js new file mode 100644 index 0000000..a843cbe --- /dev/null +++ b/leaky-ships/next.config.js @@ -0,0 +1,6 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + reactStrictMode: true, +} + +module.exports = nextConfig diff --git a/leaky-ships/package.json b/leaky-ships/package.json index cc4f04c..b36ab83 100644 --- a/leaky-ships/package.json +++ b/leaky-ships/package.json @@ -1,80 +1,64 @@ { "name": "leaky-ships", + "version": "0.1.0", + "private": true, "scripts": { - "dev": "vinxi dev", - "build": "vinxi build", - "start": "vinxi start", - "lint": "eslint --fix \"**/*.{ts,tsx,js,jsx}\"", - "push": "drizzle-kit push:pg", - "test": "pnpm playwright test --ui", - "typecheck": "tsc --noEmit --checkJs false --skipLibCheck" + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint", + "test": "pnpm playwright test --ui" }, - "type": "module", "dependencies": { - "@auth/core": "^0.27.0", - "@auth/drizzle-adapter": "^0.7.0", - "@auth/solid-start": "^0.6.1", - "@fortawesome/fontawesome-svg-core": "^6.5.1", - "@fortawesome/pro-duotone-svg-icons": "^6.5.1", - "@fortawesome/pro-light-svg-icons": "^6.5.1", - "@fortawesome/pro-regular-svg-icons": "^6.5.1", - "@fortawesome/pro-solid-svg-icons": "^6.5.1", - "@fortawesome/pro-thin-svg-icons": "^6.5.1", - "@fortawesome/sharp-solid-svg-icons": "^6.5.1", - "@paralleldrive/cuid2": "^2.2.2", - "@solidjs/meta": "^0.29.3", - "@solidjs/router": "^0.12.4", - "@solidjs/start": "^0.5.9", - "classnames": "^2.5.1", + "@fortawesome/fontawesome-svg-core": "^6.4.2", + "@fortawesome/pro-duotone-svg-icons": "^6.4.2", + "@fortawesome/pro-light-svg-icons": "^6.4.2", + "@fortawesome/pro-regular-svg-icons": "^6.4.2", + "@fortawesome/pro-solid-svg-icons": "^6.4.2", + "@fortawesome/pro-thin-svg-icons": "^6.4.2", + "@fortawesome/react-fontawesome": "^0.2.0", + "@fortawesome/sharp-solid-svg-icons": "^6.4.2", + "@next-auth/prisma-adapter": "^1.0.7", + "@next/font": "13.1.1", + "@prisma/client": "^4.16.2", + "classnames": "^2.3.2", "colors": "^1.4.0", - "drizzle-orm": "^0.29.4", - "drizzle-zod": "^0.5.1", - "http-status": "^1.7.3", - "json-stable-stringify": "^1.1.1", - "lodash-es": "^4.17.21", - "nodemailer": "^6.9.10", - "object-hash": "^3.0.0", - "postgres": "^3.4.3", - "socket.io": "^4.7.4", - "socket.io-client": "^4.7.4", - "solid-color": "^0.0.4", - "solid-js": "^1.8.15", - "tinycolor2": "^1.6.0", + "eslint": "8.31.0", + "eslint-config-next": "13.1.1", + "http-status": "^1.6.2", + "immer": "^10.0.2", + "next": "13.1.1", + "next-auth": "^4.23.0", + "nodemailer": "^6.9.4", + "prisma": "^4.16.2", + "react": "18.2.0", + "react-colorful": "^5.6.1", + "react-dom": "18.2.0", + "react-otp-input": "^3.0.4", + "react-toastify": "^9.1.3", + "socket.io": "^4.7.2", + "socket.io-client": "^4.7.2", + "typescript": "4.9.4", "unique-names-generator": "^4.7.1", - "vinxi": "^0.3.3", - "zod": "3.22.4" + "zod": "3.21.1", + "zod-prisma-types": "^2.7.9", + "zustand": "^4.4.1" }, - "packageManager": "pnpm@8.7.4", "devDependencies": { - "@playwright/test": "^1.41.2", - "@total-typescript/ts-reset": "^0.5.1", - "@types/json-stable-stringify": "^1.0.36", - "@types/node": "^20.11.19", - "@types/nodemailer": "^6.4.14", - "@types/object-hash": "^3.0.6", - "@types/web-bluetooth": "^0.0.20", - "@typescript-eslint/eslint-plugin": "^7.0.2", - "autoprefixer": "^10.4.17", - "dotenv": "^16.4.5", - "drizzle-kit": "^0.20.14", - "eslint": "^8.56.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-solid": "^0.13.1", - "pg": "^8.11.3", - "postcss": "^8.4.35", - "prettier": "^3.2.5", - "prettier-plugin-organize-imports": "^3.2.4", - "prettier-plugin-tailwindcss": "^0.5.11", - "sass": "^1.71.1", - "solid-start-node": "^0.3.10", - "tailwindcss": "^3.4.1", - "typescript": "^5.3.3", - "vite": "^5.1.4" - }, - "pnpm": { - "overrides": { - "@auth/core": "^0.13.0", - "solid-start": "^0.3.5" - } + "@playwright/test": "^1.37.0", + "@total-typescript/ts-reset": "^0.3.7", + "@types/node": "^18.17.5", + "@types/react": "^18.2.20", + "@types/react-dom": "^18.2.7", + "@types/web-bluetooth": "^0.0.16", + "autoprefixer": "^10.4.15", + "dotenv": "^16.3.1", + "eslint-config-prettier": "^8.10.0", + "postcss": "^8.4.27", + "prettier": "^3.0.1", + "prettier-plugin-organize-imports": "^3.2.3", + "prettier-plugin-tailwindcss": "^0.4.1", + "sass": "^1.65.1", + "tailwindcss": "^3.3.3" } } diff --git a/leaky-ships/pages/_app.tsx b/leaky-ships/pages/_app.tsx new file mode 100644 index 0000000..39f833e --- /dev/null +++ b/leaky-ships/pages/_app.tsx @@ -0,0 +1,21 @@ +import "@fortawesome/fontawesome-svg-core/styles.css" +import { SessionProvider } from "next-auth/react" +import type { AppProps } from "next/app" +import { ToastContainer } from "react-toastify" +import "react-toastify/dist/ReactToastify.css" +import "../styles/App.scss" +import "../styles/globals.scss" +import "../styles/grid.scss" +import "../styles/grid2.scss" + +export default function App({ + Component, + pageProps: { session, ...pageProps }, +}: AppProps) { + return ( + + + + + ) +} diff --git a/leaky-ships/pages/_document.tsx b/leaky-ships/pages/_document.tsx new file mode 100644 index 0000000..519bd99 --- /dev/null +++ b/leaky-ships/pages/_document.tsx @@ -0,0 +1,13 @@ +import { Head, Html, Main, NextScript } from "next/document" + +export default function Document() { + return ( + + + +
+ + + + ) +} diff --git a/leaky-ships/src/server/auth.ts b/leaky-ships/pages/api/auth/[...nextauth].ts similarity index 57% rename from leaky-ships/src/server/auth.ts rename to leaky-ships/pages/api/auth/[...nextauth].ts index 20773c8..c631cde 100644 --- a/leaky-ships/src/server/auth.ts +++ b/leaky-ships/pages/api/auth/[...nextauth].ts @@ -1,13 +1,15 @@ -import Discord from "@auth/core/providers/discord" -import { DrizzleAdapter } from "@auth/drizzle-adapter" -import { type SolidAuthConfig } from "@auth/solid-start" +import prisma from "@lib/prisma" +import { PrismaAdapter } from "@next-auth/prisma-adapter" +import { NextApiHandler } from "next" +import NextAuth, { NextAuthOptions } from "next-auth" +import AzureADProvider from "next-auth/providers/azure-ad" +import EmailProvider from "next-auth/providers/email" import { animals, Config, NumberDictionary, uniqueNamesGenerator, } from "unique-names-generator" -import db from "~/drizzle" const numberDictionary = NumberDictionary.generate({ min: 0, max: 9999 }) const customConfig: Config = { @@ -17,16 +19,20 @@ const customConfig: Config = { length: 2, } -export const authOptions: SolidAuthConfig = { +const options: NextAuthOptions = { providers: [ - // @ts-ignore - Discord({ - clientId: import.meta.env.VITE_DISCORD_CLIENT_ID, - clientSecret: import.meta.env.VITE_DISCORD_CLIENT_SECRET, + EmailProvider({ + server: process.env.EMAIL_SERVER, + from: process.env.EMAIL_FROM, + }), + AzureADProvider({ + clientId: process.env.AZURE_AD_CLIENT_ID ?? "", + clientSecret: process.env.AZURE_AD_CLIENT_SECRET ?? "", + tenantId: process.env.AZURE_AD_TENANT_ID, }), ], - adapter: DrizzleAdapter(db), - secret: import.meta.env.VITE_AUTH_SECRET, + adapter: PrismaAdapter(prisma), + secret: process.env.NEXTAUTH_SECRET, callbacks: { signIn: ({ user, account }) => { // Custom signIn callback to add username to email provider @@ -37,7 +43,6 @@ export const authOptions: SolidAuthConfig = { }, session: ({ session, user }) => { if (session?.user) { - // @ts-ignore session.user.id = user.id } return session @@ -51,3 +56,8 @@ export const authOptions: SolidAuthConfig = { // newUser: '/auth/new-user' // New users will be directed here on first sign in (leave the property out if not of interest) }, } + +export { options as authOptions } + +const authHandler: NextApiHandler = (req, res) => NextAuth(req, res, options) +export default authHandler diff --git a/leaky-ships/pages/api/game/[id].ts b/leaky-ships/pages/api/game/[id].ts new file mode 100644 index 0000000..6428d5f --- /dev/null +++ b/leaky-ships/pages/api/game/[id].ts @@ -0,0 +1,46 @@ +import { rejectionErrors } from "@lib/backend/errors" +import sendResponse from "@lib/backend/sendResponse" +import prisma from "@lib/prisma" +import { Game } from "@prisma/client" +import type { NextApiRequest, NextApiResponse } from "next" +import { getServerSession } from "next-auth" +import { authOptions } from "../auth/[...nextauth]" + +interface Data { + game: Game +} + +export default async function id( + req: NextApiRequest, + res: NextApiResponse, +) { + const gameId = req.query.id + const session = await getServerSession(req, res, authOptions) + + if (!session?.user || typeof gameId !== "string") { + return sendResponse(req, res, rejectionErrors.unauthorized) + } + + let game: Game | null + switch (req.method) { + case "DELETE": + game = await prisma.game.delete({ + where: { id: gameId }, + }) + break + + default: + game = await prisma.game.findFirst({ + where: { id: gameId }, + }) + } + + if (!game) { + return sendResponse(req, res, rejectionErrors.gameNotFound) + } + + sendResponse(req, res, { + message: "Here is the game.", + body: { game }, + }) +} diff --git a/leaky-ships/pages/api/game/create.ts b/leaky-ships/pages/api/game/create.ts new file mode 100644 index 0000000..80db044 --- /dev/null +++ b/leaky-ships/pages/api/game/create.ts @@ -0,0 +1,66 @@ +import sendResponse from "@backend/sendResponse" +import { rejectionErrors } from "@lib/backend/errors" +import prisma from "@lib/prisma" +import { GamePropsSchema } from "@lib/zodSchemas" +import type { NextApiRequest, NextApiResponse } from "next" +import { getServerSession } from "next-auth" +import { authOptions } from "../auth/[...nextauth]" +import { composeBody, gameSelects, getAnyRunningGame } from "./running" + +export default async function create( + req: NextApiRequest, + res: NextApiResponse, +) { + const session = await getServerSession(req, res, authOptions) + + if (!session?.user) { + return sendResponse(req, res, rejectionErrors.unauthorized) + } + const { email, id } = session.user + + // Generate a random 4-digit code + const pin = Math.floor(Math.random() * 10000) + .toString() + .padStart(4, "0") + + let created = false + + let game = await getAnyRunningGame(id) + if (game) { + return sendResponse(req, res, { + redirectUrl: "/api/game/running", + message: "Running game already exists.", + }) + } else { + game = await prisma.game.create({ + data: { + gamePin: { + create: { + pin, + }, + }, + users: { + create: { + userId: id, + index: 0, + chats: { + create: { + event: "created", + }, + }, + }, + }, + }, + ...gameSelects, + }) + } + + const body = composeBody(game) + + return sendResponse(req, res, { + message: `User <${email}> created game: ${game.id}`, + statusCode: created ? 201 : 200, + body, + type: ["debug", "infoCyan"], + }) +} diff --git a/leaky-ships/pages/api/game/join.ts b/leaky-ships/pages/api/game/join.ts new file mode 100644 index 0000000..91d5e68 --- /dev/null +++ b/leaky-ships/pages/api/game/join.ts @@ -0,0 +1,89 @@ +import sendError from "@backend/sendError" +import sendResponse from "@backend/sendResponse" +import { rejectionErrors } from "@lib/backend/errors" +import getPinFromBody from "@lib/backend/getPinFromBody" +import logging from "@lib/backend/logging" +import prisma from "@lib/prisma" +import { GamePropsSchema } from "@lib/zodSchemas" +import type { NextApiRequest, NextApiResponse } from "next" +import { getServerSession } from "next-auth" +import { authOptions } from "../auth/[...nextauth]" +import { composeBody, gameSelects } from "./running" + +export default async function join( + req: NextApiRequest, + res: NextApiResponse, +) { + const session = await getServerSession(req, res, authOptions) + const pin = await getPinFromBody(req, res) + + if (!session?.user) { + return sendResponse(req, res, rejectionErrors.unauthorized) + } + + const { email, id } = session.user + + try { + const game = await prisma.game.findFirst({ + where: { + gamePin: { + pin, + }, + }, + }) + if (!game) { + return sendResponse(req, res, { + message: "Spiel existiert nicht", + statusCode: 404, + type: ["infoCyan"], + }) + } + + const games = await prisma.game.findMany({ + where: { + NOT: { + state: "ended", + }, + users: { + some: { + userId: id, + }, + }, + }, + ...gameSelects, + }) + if (games.length) { + return sendResponse(req, res, { + message: "Spieler ist bereits in Spiel!", + redirectUrl: "/api/game/running", + type: ["infoCyan"], + }) + } + + const user_Game = await prisma.user_Game.create({ + data: { + gameId: game.id, + userId: id, + index: 1, + }, + select: { + game: gameSelects, + }, + }) + + const body = composeBody(user_Game.game) + + return sendResponse(req, res, { + message: `User <${email}> joined game: ${game.id}`, + body, + type: ["debug", "infoCyan"], + }) + } catch (err: any) { + await logging( + "HERE".red + err.code + err.meta + err.message, + ["error"], + req, + ) + throw sendError(req, res, rejectionErrors.gameNotFound) + } +} diff --git a/leaky-ships/pages/api/game/running.ts b/leaky-ships/pages/api/game/running.ts new file mode 100644 index 0000000..ba7212f --- /dev/null +++ b/leaky-ships/pages/api/game/running.ts @@ -0,0 +1,155 @@ +import sendResponse from "@backend/sendResponse" +import { rejectionErrors } from "@lib/backend/errors" +import { getPayloadwithChecksum } from "@lib/getPayloadwithChecksum" +import prisma from "@lib/prisma" +import { GamePropsSchema } from "@lib/zodSchemas" +import type { NextApiRequest, NextApiResponse } from "next" +import { getServerSession } from "next-auth" +import { authOptions } from "../auth/[...nextauth]" + +export const gameSelects = { + select: { + id: true, + allowChat: true, + allowMarkDraw: true, + allowSpecials: true, + allowSpectators: true, + state: true, + gamePin: { + select: { + pin: true, + }, + }, + users: { + select: { + id: true, + index: true, + chats: { + select: { + id: true, + event: true, + message: true, + createdAt: true, + }, + }, + moves: { + select: { + index: true, + type: true, + x: true, + y: true, + orientation: true, + }, + }, + ships: { + select: { + size: true, + variant: true, + x: true, + y: true, + orientation: true, + }, + }, + hits: { + select: { + x: true, + y: true, + hit: true, + }, + }, + user: { + select: { + id: true, + name: true, + }, + }, + }, + }, + }, +} + +export const getAnyGame = (gameId: string) => { + const game = prisma.game.findFirst({ + where: { + NOT: { + state: "ended", + }, + id: gameId, + }, + ...gameSelects, + }) + return game +} + +export const getAnyRunningGame = (userId: string) => { + const game = prisma.game.findFirst({ + where: { + NOT: { + state: "ended", + }, + users: { + some: { + userId, + }, + }, + }, + ...gameSelects, + }) + return game +} + +export function composeBody( + gameDB: NonNullable>>, +): GamePropsSchema { + const { gamePin, ...game } = gameDB + const users = gameDB.users + .map(({ user, ...props }) => ({ + ...props, + ...user, + })) + .sort((user1, user2) => user1.index - user2.index) + let activeIndex = undefined + if (game.state === "running") { + const l1 = game.users[0].moves.length + const l2 = game.users[1].moves.length + activeIndex = l1 > l2 ? 1 : 0 + } + const payload = { + game: game, + gamePin: gamePin?.pin ?? null, + users, + activeIndex, + } + return getPayloadwithChecksum(payload) +} + +export default async function running( + req: NextApiRequest, + res: NextApiResponse, +) { + const session = await getServerSession(req, res, authOptions) + + if (!session?.user) { + return sendResponse(req, res, rejectionErrors.unauthorized) + } + + const { email, id } = session.user + + const game = await getAnyRunningGame(id) + + if (!game) + return sendResponse(req, res, { + message: `User <${email}> is in no game.`, + statusCode: 204, + type: ["debug", "infoCyan"], + }) + + const body = composeBody(game) + + return sendResponse(req, res, { + message: `User <${email}> asked for game: ${game.id}`, + statusCode: 200, + body, + type: ["debug", "infoCyan"], + }) +} diff --git a/leaky-ships/pages/api/ws.ts b/leaky-ships/pages/api/ws.ts new file mode 100644 index 0000000..8cef0d8 --- /dev/null +++ b/leaky-ships/pages/api/ws.ts @@ -0,0 +1,299 @@ +import logging from "@lib/backend/logging" +import prisma from "@lib/prisma" +import { GamePropsSchema } from "@lib/zodSchemas" +import colors from "colors" +import status from "http-status" +import { NextApiRequest } from "next" +import { getSession } from "next-auth/react" +import { Server } from "socket.io" +import { + NextApiResponseWithSocket, + sServer, +} from "../../interfaces/NextApiSocket" +import { + composeBody, + gameSelects, + getAnyGame, + getAnyRunningGame, +} from "./game/running" + +colors.enable() + +const SocketHandler = async ( + req: NextApiRequest, + res: NextApiResponseWithSocket, +) => { + if (res.socket.server.io) { + logging("Socket is already running " + req.url, ["infoCyan"], req) + } else { + logging("Socket is initializing " + req.url, ["infoCyan"], req) + const io: sServer = new Server(res.socket.server, { + path: "/api/ws", + cors: { + origin: "https://leaky-ships.mal-noh.de", + }, + }) + + res.socket.server.io = io + + // io.use(authenticate) + io.use(async (socket, next) => { + try { + const session = await getSession({ + req: socket.request, + }) + if (!session) return next(new Error(status["401"])) + socket.data.user = session.user + + const game = await getAnyRunningGame(socket.data.user?.id ?? "") + if (!game) { + logging( + "Forbidden, no game found: " + + JSON.stringify(Array.from(socket.rooms)), + ["debug"], + socket.request, + ) + return next(new Error(status["403"])) + } + + const { payload, hash } = composeBody(game) + // let index: number | null = null + const index = payload.users.findIndex( + (user) => socket.data.user?.id === user?.id, + ) + if (index < 0) return next(new Error(status["401"])) + socket.data.index = index + socket.data.gameId = game.id + socket.join(game.id) + socket.to(game.id).emit("playerEvent", { + type: "connect", + i: socket.data.index, + payload: { users: payload.users }, + hash, + }) + + next() + } catch (err: any) { + logging("Unkonwn error - " + status["401"], ["warn"], socket.request) + next(new Error(status["401"])) + } + }) + + io.on("connection", async (socket) => { + logging( + `User connected <${socket.data.user?.email}>`.green + + ", " + + socket.id.cyan, + ["infoGreen"], + socket.request, + ) + + socket.on("update", async (cb) => { + const game = await getAnyGame(socket.data.gameId ?? "") + if (!game) return + const body = composeBody(game) + cb(body) + }) + + socket.on("gameSetting", async (payload, cb) => { + const game = await prisma.game.update({ + where: { id: socket.data.gameId ?? "" }, + data: payload, + ...gameSelects, + }) + const { hash } = composeBody(game) + if (!hash) return + cb(hash) + socket.to(game.id).emit("gameSetting", payload, hash) + }) + + socket.on("ping", (callback) => callback()) + + socket.on("leave", async (cb) => { + if (!socket.data.gameId || !socket.data.user?.id) return cb(false) + const user_Game = await prisma.user_Game.delete({ + where: { + gameId_userId: { + gameId: socket.data.gameId, + userId: socket.data.user?.id, + }, + }, + }) + const enemy = await prisma.user_Game.findFirst({ + where: { + gameId: socket.data.gameId, + }, + }) + let body: GamePropsSchema + if (user_Game.index === 1 && enemy) { + const { game } = await prisma.user_Game.update({ + where: { + gameId_index: { + gameId: socket.data.gameId, + index: 2, + }, + }, + data: { + index: 1, + }, + select: { + game: { ...gameSelects }, + }, + }) + body = composeBody(game) + } else { + const game = await prisma.game.findUnique({ + where: { + id: socket.data.gameId, + }, + ...gameSelects, + }) + if (!game) return cb(false) + body = composeBody(game) + } + const { payload, hash } = body + if (!payload || !hash || socket.data.index === undefined) + return cb(false) + socket.to(socket.data.gameId).emit("playerEvent", { + type: "leave", + i: socket.data.index, + payload: { users: payload.users }, + hash, + }) + cb(true) + + if (!payload.users.length) { + await prisma.game.delete({ + where: { + id: socket.data.gameId, + }, + }) + } + }) + + socket.on("isReady", async (isReady) => { + if (socket.data.index === undefined || !socket.data.gameId) return + socket + .to(socket.data.gameId) + .emit("isReady", { i: socket.data.index, isReady }) + socket + .to(socket.data.gameId) + .emit("isConnected", { i: socket.data.index, isConnected: true }) + }) + + socket.on("canvas-state", (state) => { + if (!socket.data.gameId || !socket.data.index) return + console.log("received canvas state") + socket + .to(socket.data.gameId) + .emit("canvas-state-from-server", state, socket.data.index) + }) + + socket.on("draw-line", ({ prevPoint, currentPoint, color }) => { + if (!socket.data.gameId || !socket.data.index) return + socket + .to(socket.data.gameId) + .emit( + "draw-line", + { prevPoint, currentPoint, color }, + socket.data.index, + ) + }) + + socket.on("canvas-clear", () => { + if (!socket.data.gameId) return + socket.to(socket.data.gameId).emit("canvas-clear") + }) + + socket.on("gameState", async (newState) => { + if (socket.data.index !== 0 || !socket.data.gameId) return + await prisma.game.update({ + where: { id: socket.data.gameId }, + data: { + state: newState, + }, + }) + io.to(socket.data.gameId).emit("gameState", newState) + if (newState === "running") + io.to(socket.data.gameId).emit("activeIndex", 0) + }) + + socket.on("ships", async (ships) => { + if ( + !socket.data.gameId || + !socket.data.user?.id || + typeof socket.data.index === "undefined" + ) + return + await prisma.user_Game.update({ + where: { + gameId_userId: { + gameId: socket.data.gameId, + userId: socket.data.user.id, + }, + }, + data: { + ships: { + deleteMany: {}, + createMany: { + data: ships, + }, + }, + }, + }) + socket.to(socket.data.gameId).emit("ships", ships, socket.data.index) + }) + + socket.on("dispatchMove", async (props) => { + if ( + !socket.data.gameId || + !socket.data.user?.id || + typeof socket.data.index === "undefined" + ) + return + const user_Game = await prisma.user_Game + .update({ + where: { + gameId_userId: { + gameId: socket.data.gameId, + userId: socket.data.user?.id, + }, + }, + data: { + moves: { + create: props, + }, + }, + select: { game: gameSelects }, + }) + .catch((e) => console.log(e, props)) + if (!user_Game?.game) return + const game = user_Game.game + const l1 = game.users[0].moves.length + const l2 = game.users[1].moves.length + io.to(socket.data.gameId).emit("dispatchMove", props, socket.data.index) + io.to(socket.data.gameId).emit("activeIndex", l1 > l2 ? 1 : 0) + }) + + socket.on("disconnecting", async () => { + logging( + "Disconnecting: " + JSON.stringify(Array.from(socket.rooms)), + ["debug"], + socket.request, + ) + if (socket.data.index === undefined || !socket.data.gameId) return + socket.to(socket.data.gameId).emit("playerEvent", { + type: "disconnect", + i: socket.data.index, + }) + }) + + socket.on("disconnect", () => { + logging("Disconnect: " + socket.id, ["debug"], socket.request) + }) + }) + } + res.end() +} + +export default SocketHandler diff --git a/leaky-ships/pages/game.tsx b/leaky-ships/pages/game.tsx new file mode 100644 index 0000000..712591e --- /dev/null +++ b/leaky-ships/pages/game.tsx @@ -0,0 +1,44 @@ +import { useGameProps } from "@hooks/useGameProps" +import { useSession } from "next-auth/react" +import { useRouter } from "next/router" +import { useEffect } from "react" +import { toast } from "react-toastify" + +export default function Game() { + const { payload } = useGameProps() + const router = useRouter() + const { data: session } = useSession() + + useEffect(() => { + const gameId = payload?.game?.id + const path = gameId ? "/game" : "/start" + toast.promise(router.push(path), { + pending: { + render: "Wird weitergeleitet...", + toastId: "pageLoad", + }, + success: { + render: gameId + ? "Spiel gefunden!" + : session?.user.id + ? "Kein laufendes Spiel." + : "Kein laufendes Spiel. Bitte anmelden.", + toastId: "pageLoad", + theme: session?.user.id ? "dark" : undefined, + type: gameId ? "success" : "info", + }, + error: { + render: "Es ist ein Fehler aufgetreten 🤯", + type: "error", + toastId: "pageLoad", + theme: "colored", + }, + }) + }) + + return ( +
+
+
+ ) +} diff --git a/leaky-ships/pages/gamefield.tsx b/leaky-ships/pages/gamefield.tsx new file mode 100644 index 0000000..8149bd9 --- /dev/null +++ b/leaky-ships/pages/gamefield.tsx @@ -0,0 +1,22 @@ +import Gamefield from "@components/Gamefield/Gamefield" +import Head from "next/head" + +export default function Home() { + return ( + <> + + Create Next App + + + + +
+
+
+ +
+
+
+ + ) +} diff --git a/leaky-ships/pages/grid.tsx b/leaky-ships/pages/grid.tsx new file mode 100644 index 0000000..a417714 --- /dev/null +++ b/leaky-ships/pages/grid.tsx @@ -0,0 +1,22 @@ +import Grid from "@components/Grid" +import Head from "next/head" + +export default function Home() { + return ( + <> + + Create Next App + + + + +
+
+
+ +
+
+
+ + ) +} diff --git a/leaky-ships/pages/grid2.tsx b/leaky-ships/pages/grid2.tsx new file mode 100644 index 0000000..9390e58 --- /dev/null +++ b/leaky-ships/pages/grid2.tsx @@ -0,0 +1,22 @@ +import Grid2 from "@components/Grid2" +import Head from "next/head" + +export default function Home() { + return ( + <> + + Create Next App + + + + +
+
+
+ +
+
+
+ + ) +} diff --git a/leaky-ships/pages/index.tsx b/leaky-ships/pages/index.tsx new file mode 100644 index 0000000..d3e0e71 --- /dev/null +++ b/leaky-ships/pages/index.tsx @@ -0,0 +1,30 @@ +import BurgerMenu from "@components/BurgerMenu" +import Logo from "@components/Logo" +import { useRouter } from "next/router" + +export default function Home() { + const router = useRouter() + + return ( +
+
+ + +
+
+ +
+
+ ) +} diff --git a/leaky-ships/pages/lobby.tsx b/leaky-ships/pages/lobby.tsx new file mode 100644 index 0000000..4aa3e0d --- /dev/null +++ b/leaky-ships/pages/lobby.tsx @@ -0,0 +1,39 @@ +import BurgerMenu from "@components/BurgerMenu" +import LobbyFrame from "@components/Lobby/LobbyFrame" +import Settings from "@components/Lobby/SettingsFrame/Settings" +import Logo from "@components/Logo" +import classNames from "classnames" +import Head from "next/head" +import { useState } from "react" + +export default function Lobby() { + const [settings, setSettings] = useState(false) + + return ( +
+ + Lobby + + + + + +
+ + setSettings(true)} /> +
+ + {settings ? setSettings(false)} /> : null} +
+ ) +} diff --git a/leaky-ships/pages/signin.tsx b/leaky-ships/pages/signin.tsx new file mode 100644 index 0000000..0d91cb2 --- /dev/null +++ b/leaky-ships/pages/signin.tsx @@ -0,0 +1,152 @@ +import { faLeftLong } from "@fortawesome/pro-solid-svg-icons" +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome" +import { signIn, useSession } from "next-auth/react" +import { useRouter } from "next/router" +import { FormEvent, useEffect, useState } from "react" +import { toast } from "react-toastify" + +type SignInErrorTypes = + | "Signin" + | "OAuthSignin" + | "OAuthCallback" + | "OAuthCreateAccount" + | "EmailCreateAccount" + | "Callback" + | "OAuthAccountNotLinked" + | "EmailSignin" + | "CredentialsSignin" + | "SessionRequired" + | "default" + +const errors: Record = { + Signin: "Try signing in with a different account.", + OAuthSignin: "Try signing in with a different account.", + OAuthCallback: "Try signing in with a different account.", + OAuthCreateAccount: "Try signing in with a different account.", + EmailCreateAccount: "Try signing in with a different account.", + Callback: "Try signing in with a different account.", + OAuthAccountNotLinked: + "To confirm your identity, sign in with the same account you used originally.", + EmailSignin: "The e-mail could not be sent.", + CredentialsSignin: + "Sign in failed. Check the details you provided are correct.", + SessionRequired: "Please sign in to access this page.", + default: "Unable to sign in.", +} + +function Login() { + const [email, setEmail] = useState("") + const { status } = useSession() + const router = useRouter() + + const errorType = router.query.error as SignInErrorTypes + + useEffect(() => { + if (!errorType) return + toast.error(errors[errorType] ?? errors.default, { theme: "colored" }) + }, [errorType]) + + useEffect(() => { + if (status === "authenticated") router.push("/") + }, [router, status]) + + function login(provider: "email" | "azure-ad") { + return (e?: FormEvent) => { + e?.preventDefault() + signIn(provider, { email, callbackUrl: "/" }) + } + } + + return ( +
+
+
+ Avatar +

Leaky Ships

+ Choose Login Method +
+ {errorType &&
} +
+
+ + setEmail(e.target.value)} + /> + +
+ +
+
+ or +
+
+ +
+ + Gewerbliche Berufsbildende Schulen + + +
+
+ {errorType ? ( + <> +
+
+ +
+ + ) : null} +
+
+ ) +} + +export default Login diff --git a/leaky-ships/pages/signout.tsx b/leaky-ships/pages/signout.tsx new file mode 100644 index 0000000..e945862 --- /dev/null +++ b/leaky-ships/pages/signout.tsx @@ -0,0 +1,43 @@ +import { signOut, useSession } from "next-auth/react" +import { useRouter } from "next/router" +import { useEffect } from "react" + +function Logout() { + const { status } = useSession() + const router = useRouter() + + useEffect(() => { + if (status === "unauthenticated") router.push("/signin") + }, [router, status]) + + return ( +
+
+
+
+ Avatar +

Leaky Ships

+ Signout +
+
+ Are you sure you want to sign out? + +
+
+
+
+ ) +} + +export default Logout diff --git a/leaky-ships/pages/start.tsx b/leaky-ships/pages/start.tsx new file mode 100644 index 0000000..1e241f8 --- /dev/null +++ b/leaky-ships/pages/start.tsx @@ -0,0 +1,231 @@ +import BurgerMenu from "@components/BurgerMenu" +import Logo from "@components/Logo" +import OptionButton from "@components/OptionButton" +import { faEye, faLeftLong } from "@fortawesome/pro-regular-svg-icons" +import { faPlus, faUserPlus } from "@fortawesome/pro-solid-svg-icons" +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome" +import { useGameProps } from "@hooks/useGameProps" +import { GamePropsSchema } from "@lib/zodSchemas" +import status from "http-status" +import { useSession } from "next-auth/react" +import { useRouter } from "next/router" +import { useCallback, useEffect, useMemo, useState } from "react" +import OtpInput from "react-otp-input" +import { Icons, toast } from "react-toastify" + +export function isAuthenticated(res: Response) { + switch (status[`${res.status}_CLASS`]) { + case status.classes.SUCCESSFUL: + case status.classes.REDIRECTION: + return res.json() + } + + const resStatus = status[`${res.status}_CLASS`] + if (typeof resStatus !== "string") return + + toast(status[res.status], { + position: "top-center", + type: "info", + theme: "colored", + }) +} + +const handleConfirmation = () => { + const toastId = "confirm" + toast.warn( +
+

You are already in another round, do you want to:

+ + or + +
, + { autoClose: false, toastId }, + ) +} + +export default function Start() { + const [otp, setOtp] = useState("") + const { full } = useGameProps() + const router = useRouter() + const { data: session } = useSession() + + const query = useMemo((): { join?: boolean; watch?: boolean } => { + switch (router.query.q) { + case "join": + return { join: true } + case "watch": + return { watch: true } + default: + return {} + } + }, [router]) + + const gameFetch = useCallback( + async (pin?: string) => { + const gameRequestPromise = fetch( + "/api/game/" + (!pin ? "create" : "join"), + { + method: "POST", + body: JSON.stringify({ pin }), + }, + ) + .then(isAuthenticated) + .then((game) => GamePropsSchema.parse(game)) + + const move = !pin ? "erstellt" : "angefragt" + const toastId = "pageLoad" + toast("Raum wird " + move, { + icon: Icons.spinner(), + toastId, + autoClose: false, + hideProgressBar: true, + closeButton: false, + }) + const res = await gameRequestPromise.catch(() => + toast.update(toastId, { + render: "Es ist ein Fehler aufgetreten bei der Anfrage 🤯", + type: "error", + icon: Icons.error, + theme: "colored", + autoClose: 5000, + hideProgressBar: false, + closeButton: true, + }), + ) + if (!res) return + full(res) + + toast.update(toastId, { + render: "Weiterleitung", + }) + + router + .push("/lobby") + .then(() => + toast.update(toastId, { + render: "Raum begetreten 👌", + type: "info", + icon: Icons.success, + autoClose: 5000, + hideProgressBar: false, + closeButton: true, + }), + ) + .catch(() => + toast.update(toastId, { + render: "Es ist ein Fehler aufgetreten beim Seiten wechsel 🤯", + type: "error", + icon: Icons.error, + theme: "colored", + autoClose: 5000, + hideProgressBar: false, + closeButton: true, + }), + ) + }, + [router, full], + ) + + useEffect(() => { + if (otp.length !== 4) return + gameFetch(otp) + }, [otp, gameFetch]) + + return ( +
+
+ + +
+
+ + {!session?.user.id && ( + + )} +
+
+ gameFetch()} + icon={faPlus} + disabled={!session} + /> + { + router.push({ + pathname: router.pathname, + query: { q: "join" }, + }) + }} + icon={faUserPlus} + disabled={!session} + node={ + query.join && session ? ( + -} + renderInput={(props) => } + /> + ) : undefined + } + /> + { + router.push({ + pathname: router.pathname, + query: { q: "watch" }, + }) + }} + node={ + query.watch ? ( + -} + renderInput={(props) => } + /> + ) : undefined + } + /> +
+
+
+
+ ) +} diff --git a/leaky-ships/playwright.config.ts b/leaky-ships/playwright.config.ts index a593aea..3cf623a 100644 --- a/leaky-ships/playwright.config.ts +++ b/leaky-ships/playwright.config.ts @@ -1,11 +1,10 @@ import { defineConfig, devices } from "@playwright/test" -import dotenv from "dotenv" /** * Read environment variables from file. * https://github.com/motdotla/dotenv */ -dotenv.config() +require("dotenv").config() /** * See https://playwright.dev/docs/test-configuration. @@ -25,7 +24,7 @@ export default defineConfig({ /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ use: { /* Base URL to use in actions like `await page.goto('/')`. */ - baseURL: process.env.AUTH_URL!, + // baseURL: 'http://127.0.0.1:3000', /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ trace: "on-first-retry", @@ -71,8 +70,8 @@ export default defineConfig({ /* Run your local dev server before starting the tests */ webServer: { - command: "pnpm start", - url: process.env.AUTH_URL, + command: "pnpm run start", + url: process.env.NEXTAUTH_URL, reuseExistingServer: !process.env.CI, }, }) diff --git a/leaky-ships/pnpm-lock.yaml b/leaky-ships/pnpm-lock.yaml index 2a861dd..1720521 100644 --- a/leaky-ships/pnpm-lock.yaml +++ b/leaky-ships/pnpm-lock.yaml @@ -4,2116 +4,277 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false -overrides: - '@auth/core': ^0.13.0 - solid-start: ^0.3.5 - dependencies: - '@auth/core': - specifier: ^0.27.0 - version: 0.27.0(nodemailer@6.9.10) - '@auth/drizzle-adapter': - specifier: ^0.7.0 - version: 0.7.0(nodemailer@6.9.10) - '@auth/solid-start': - specifier: ^0.6.1 - version: 0.6.1(nodemailer@6.9.10)(solid-js@1.8.15)(solid-start@0.3.10) '@fortawesome/fontawesome-svg-core': - specifier: ^6.5.1 - version: 6.5.1 + specifier: ^6.4.2 + version: 6.4.2 '@fortawesome/pro-duotone-svg-icons': - specifier: ^6.5.1 - version: 6.5.1 + specifier: ^6.4.2 + version: 6.4.2 '@fortawesome/pro-light-svg-icons': - specifier: ^6.5.1 - version: 6.5.1 + specifier: ^6.4.2 + version: 6.4.2 '@fortawesome/pro-regular-svg-icons': - specifier: ^6.5.1 - version: 6.5.1 + specifier: ^6.4.2 + version: 6.4.2 '@fortawesome/pro-solid-svg-icons': - specifier: ^6.5.1 - version: 6.5.1 + specifier: ^6.4.2 + version: 6.4.2 '@fortawesome/pro-thin-svg-icons': - specifier: ^6.5.1 - version: 6.5.1 + specifier: ^6.4.2 + version: 6.4.2 + '@fortawesome/react-fontawesome': + specifier: ^0.2.0 + version: 0.2.0(@fortawesome/fontawesome-svg-core@6.4.2)(react@18.2.0) '@fortawesome/sharp-solid-svg-icons': - specifier: ^6.5.1 - version: 6.5.1 - '@paralleldrive/cuid2': - specifier: ^2.2.2 - version: 2.2.2 - '@solidjs/meta': - specifier: ^0.29.3 - version: 0.29.3(solid-js@1.8.15) - '@solidjs/router': - specifier: ^0.12.4 - version: 0.12.4(solid-js@1.8.15) - '@solidjs/start': - specifier: ^0.5.9 - version: 0.5.9(rollup@3.29.4)(solid-js@1.8.15)(vinxi@0.3.3)(vite@5.1.4) + specifier: ^6.4.2 + version: 6.4.2 + '@next-auth/prisma-adapter': + specifier: ^1.0.7 + version: 1.0.7(@prisma/client@4.16.2)(next-auth@4.23.0) + '@next/font': + specifier: 13.1.1 + version: 13.1.1 + '@prisma/client': + specifier: ^4.16.2 + version: 4.16.2(prisma@4.16.2) classnames: - specifier: ^2.5.1 - version: 2.5.1 + specifier: ^2.3.2 + version: 2.3.2 colors: specifier: ^1.4.0 version: 1.4.0 - drizzle-orm: - specifier: ^0.29.4 - version: 0.29.4(pg@8.11.3)(postgres@3.4.3) - drizzle-zod: - specifier: ^0.5.1 - version: 0.5.1(drizzle-orm@0.29.4)(zod@3.22.4) + eslint: + specifier: 8.31.0 + version: 8.31.0 + eslint-config-next: + specifier: 13.1.1 + version: 13.1.1(eslint@8.31.0)(typescript@4.9.4) http-status: - specifier: ^1.7.3 - version: 1.7.3 - json-stable-stringify: - specifier: ^1.1.1 - version: 1.1.1 - lodash-es: - specifier: ^4.17.21 - version: 4.17.21 + specifier: ^1.6.2 + version: 1.6.2 + immer: + specifier: ^10.0.2 + version: 10.0.2 + next: + specifier: 13.1.1 + version: 13.1.1(react-dom@18.2.0)(react@18.2.0)(sass@1.65.1) + next-auth: + specifier: ^4.23.0 + version: 4.23.0(next@13.1.1)(nodemailer@6.9.4)(react-dom@18.2.0)(react@18.2.0) nodemailer: - specifier: ^6.9.10 - version: 6.9.10 - object-hash: - specifier: ^3.0.0 - version: 3.0.0 - postgres: - specifier: ^3.4.3 - version: 3.4.3 + specifier: ^6.9.4 + version: 6.9.4 + prisma: + specifier: ^4.16.2 + version: 4.16.2 + react: + specifier: 18.2.0 + version: 18.2.0 + react-colorful: + specifier: ^5.6.1 + version: 5.6.1(react-dom@18.2.0)(react@18.2.0) + react-dom: + specifier: 18.2.0 + version: 18.2.0(react@18.2.0) + react-otp-input: + specifier: ^3.0.4 + version: 3.0.4(react-dom@18.2.0)(react@18.2.0) + react-toastify: + specifier: ^9.1.3 + version: 9.1.3(react-dom@18.2.0)(react@18.2.0) socket.io: - specifier: ^4.7.4 - version: 4.7.4 + specifier: ^4.7.2 + version: 4.7.2 socket.io-client: - specifier: ^4.7.4 - version: 4.7.4 - solid-color: - specifier: ^0.0.4 - version: 0.0.4(solid-js@1.8.15) - solid-js: - specifier: ^1.8.15 - version: 1.8.15 - tinycolor2: - specifier: ^1.6.0 - version: 1.6.0 + specifier: ^4.7.2 + version: 4.7.2 + typescript: + specifier: 4.9.4 + version: 4.9.4 unique-names-generator: specifier: ^4.7.1 version: 4.7.1 - vinxi: - specifier: ^0.3.3 - version: 0.3.3(@types/node@20.11.19)(preact@10.19.6)(rollup@3.29.4)(sass@1.71.1) zod: - specifier: 3.22.4 - version: 3.22.4 + specifier: 3.21.1 + version: 3.21.1 + zod-prisma-types: + specifier: ^2.7.9 + version: 2.7.9 + zustand: + specifier: ^4.4.1 + version: 4.4.1(@types/react@18.2.20)(immer@10.0.2)(react@18.2.0) devDependencies: '@playwright/test': - specifier: ^1.41.2 - version: 1.41.2 + specifier: ^1.37.0 + version: 1.37.0 '@total-typescript/ts-reset': - specifier: ^0.5.1 - version: 0.5.1 - '@types/json-stable-stringify': - specifier: ^1.0.36 - version: 1.0.36 + specifier: ^0.3.7 + version: 0.3.7 '@types/node': - specifier: ^20.11.19 - version: 20.11.19 - '@types/nodemailer': - specifier: ^6.4.14 - version: 6.4.14 - '@types/object-hash': - specifier: ^3.0.6 - version: 3.0.6 + specifier: ^18.17.5 + version: 18.17.5 + '@types/react': + specifier: ^18.2.20 + version: 18.2.20 + '@types/react-dom': + specifier: ^18.2.7 + version: 18.2.7 '@types/web-bluetooth': - specifier: ^0.0.20 - version: 0.0.20 - '@typescript-eslint/eslint-plugin': - specifier: ^7.0.2 - version: 7.0.2(@typescript-eslint/parser@7.0.2)(eslint@8.56.0)(typescript@5.3.3) + specifier: ^0.0.16 + version: 0.0.16 autoprefixer: - specifier: ^10.4.17 - version: 10.4.17(postcss@8.4.35) + specifier: ^10.4.15 + version: 10.4.15(postcss@8.4.27) dotenv: - specifier: ^16.4.5 - version: 16.4.5 - drizzle-kit: - specifier: ^0.20.14 - version: 0.20.14 - eslint: - specifier: ^8.56.0 - version: 8.56.0 + specifier: ^16.3.1 + version: 16.3.1 eslint-config-prettier: - specifier: ^9.1.0 - version: 9.1.0(eslint@8.56.0) - eslint-plugin-solid: - specifier: ^0.13.1 - version: 0.13.1(eslint@8.56.0)(typescript@5.3.3) - pg: - specifier: ^8.11.3 - version: 8.11.3 + specifier: ^8.10.0 + version: 8.10.0(eslint@8.31.0) postcss: - specifier: ^8.4.35 - version: 8.4.35 + specifier: ^8.4.27 + version: 8.4.27 prettier: - specifier: ^3.2.5 - version: 3.2.5 + specifier: ^3.0.1 + version: 3.0.1 prettier-plugin-organize-imports: - specifier: ^3.2.4 - version: 3.2.4(prettier@3.2.5)(typescript@5.3.3) + specifier: ^3.2.3 + version: 3.2.3(prettier@3.0.1)(typescript@4.9.4) prettier-plugin-tailwindcss: - specifier: ^0.5.11 - version: 0.5.11(prettier-plugin-organize-imports@3.2.4)(prettier@3.2.5) + specifier: ^0.4.1 + version: 0.4.1(prettier-plugin-organize-imports@3.2.3)(prettier@3.0.1) sass: - specifier: ^1.71.1 - version: 1.71.1 - solid-start-node: - specifier: ^0.3.10 - version: 0.3.10(solid-start@0.3.10)(vite@5.1.4) + specifier: ^1.65.1 + version: 1.65.1 tailwindcss: - specifier: ^3.4.1 - version: 3.4.1 - typescript: - specifier: ^5.3.3 - version: 5.3.3 - vite: - specifier: ^5.1.4 - version: 5.1.4(@types/node@20.11.19)(sass@1.71.1) + specifier: ^3.3.3 + version: 3.3.3 packages: /@aashutoshrathi/word-wrap@1.2.6: resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} engines: {node: '>=0.10.0'} - dev: true /@alloc/quick-lru@5.2.0: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} dev: true - /@ampproject/remapping@2.2.1: - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} - engines: {node: '>=6.0.0'} + /@babel/runtime@7.22.10: + resolution: {integrity: sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==} + engines: {node: '>=6.9.0'} dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.22 - - /@antfu/utils@0.7.7: - resolution: {integrity: sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==} - - /@auth/core@0.13.0(nodemailer@6.9.10): - resolution: {integrity: sha512-StjrzUenaKfMr68kmvhiqfY0xvxRvg8wllmem9JAULpPAAAt3uwRUDXICWOP/PfWB4OZ2wQT7rgfm0n42b+Mjg==} - peerDependencies: - nodemailer: ^6.8.0 - peerDependenciesMeta: - nodemailer: - optional: true - dependencies: - '@panva/hkdf': 1.1.1 - cookie: 0.5.0 - jose: 4.15.4 - nodemailer: 6.9.10 - oauth4webapi: 2.10.3 - preact: 10.11.3 - preact-render-to-string: 5.2.3(preact@10.11.3) + regenerator-runtime: 0.14.0 dev: false - /@auth/core@0.27.0(nodemailer@6.9.10): - resolution: {integrity: sha512-3bydnRJIM/Al6mkYmb53MsC+6G8ojw3lLPzwgVnX4dCo6N2lrib6Wq6r0vxZIhuHGjLObqqtUfpeaEj5aeTHFg==} - peerDependencies: - '@simplewebauthn/browser': ^9.0.1 - '@simplewebauthn/server': ^9.0.2 - nodemailer: ^6.8.0 - peerDependenciesMeta: - '@simplewebauthn/browser': - optional: true - '@simplewebauthn/server': - optional: true - nodemailer: - optional: true - dependencies: - '@panva/hkdf': 1.1.1 - '@types/cookie': 0.6.0 - cookie: 0.6.0 - jose: 5.2.2 - nodemailer: 6.9.10 - oauth4webapi: 2.10.3 - preact: 10.11.3 - preact-render-to-string: 5.2.3(preact@10.11.3) - dev: false - - /@auth/drizzle-adapter@0.7.0(nodemailer@6.9.10): - resolution: {integrity: sha512-p/8cjrREiPPns78CT/a7VGl2TD78BNXtJ9TAXrw80bUInHd2xkEtk4CzXajWS/5r7qXE9n3r4BV9sISrf6Yqnw==} - dependencies: - '@auth/core': 0.13.0(nodemailer@6.9.10) - transitivePeerDependencies: - - nodemailer - dev: false - - /@auth/solid-start@0.6.1(nodemailer@6.9.10)(solid-js@1.8.15)(solid-start@0.3.10): - resolution: {integrity: sha512-pibEd1kffSnPpaW625zzeo9G2X2cxZS2ClIaKMMdLBg/QJMqJkXpiRZ68DC9yHQ6zRdqMUZZ/sIvPbbsuW2kaw==} - peerDependencies: - solid-js: ^1.5.7 - solid-start: ^0.3.5 - dependencies: - '@auth/core': 0.13.0(nodemailer@6.9.10) - solid-js: 1.8.15 - solid-start: 0.3.10(@solidjs/meta@0.29.3)(@solidjs/router@0.12.4)(solid-js@1.8.15)(solid-start-node@0.3.10)(vite@5.1.4) - transitivePeerDependencies: - - nodemailer - dev: false - - /@babel/code-frame@7.23.5: - resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.23.4 - chalk: 2.4.2 - - /@babel/compat-data@7.23.5: - resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} - engines: {node: '>=6.9.0'} - - /@babel/core@7.23.9: - resolution: {integrity: sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==} - engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) - '@babel/helpers': 7.23.9 - '@babel/parser': 7.23.9 - '@babel/template': 7.23.9 - '@babel/traverse': 7.23.9 - '@babel/types': 7.23.9 - convert-source-map: 2.0.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - /@babel/generator@7.23.6: - resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.9 - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.22 - jsesc: 2.5.2 - - /@babel/helper-annotate-as-pure@7.22.5: - resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.9 - - /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: - resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.9 - - /@babel/helper-compilation-targets@7.23.6: - resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/helper-validator-option': 7.23.5 - browserslist: 4.23.0 - lru-cache: 5.1.1 - semver: 6.3.1 - - /@babel/helper-create-class-features-plugin@7.23.10(@babel/core@7.23.9): - resolution: {integrity: sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - semver: 6.3.1 - - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.9): - resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-annotate-as-pure': 7.22.5 - regexpu-core: 5.3.2 - semver: 6.3.1 - - /@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.23.9): - resolution: {integrity: sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - debug: 4.3.4 - lodash.debounce: 4.0.8 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - - /@babel/helper-environment-visitor@7.22.20: - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} - engines: {node: '>=6.9.0'} - - /@babel/helper-function-name@7.23.0: - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.23.9 - '@babel/types': 7.23.9 - - /@babel/helper-hoist-variables@7.22.5: - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.9 - - /@babel/helper-member-expression-to-functions@7.23.0: - resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.9 - - /@babel/helper-module-imports@7.18.6: - resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.9 - - /@babel/helper-module-imports@7.22.15: - resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.9 - - /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 - - /@babel/helper-optimise-call-expression@7.22.5: - resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.9 - - /@babel/helper-plugin-utils@7.22.5: - resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} - engines: {node: '>=6.9.0'} - - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.9): - resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-wrap-function': 7.22.20 - - /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.9): - resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - - /@babel/helper-simple-access@7.22.5: - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.9 - - /@babel/helper-skip-transparent-expression-wrappers@7.22.5: - resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.9 - - /@babel/helper-split-export-declaration@7.22.6: - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.9 - - /@babel/helper-string-parser@7.23.4: - resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} - engines: {node: '>=6.9.0'} - - /@babel/helper-validator-identifier@7.22.20: - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} - engines: {node: '>=6.9.0'} - - /@babel/helper-validator-option@7.23.5: - resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} - engines: {node: '>=6.9.0'} - - /@babel/helper-wrap-function@7.22.20: - resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-function-name': 7.23.0 - '@babel/template': 7.23.9 - '@babel/types': 7.23.9 - - /@babel/helpers@7.23.9: - resolution: {integrity: sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.23.9 - '@babel/traverse': 7.23.9 - '@babel/types': 7.23.9 - transitivePeerDependencies: - - supports-color - - /@babel/highlight@7.23.4: - resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.22.20 - chalk: 2.4.2 - js-tokens: 4.0.0 - - /@babel/parser@7.23.9: - resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.23.9 - - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.13.0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.9) - - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.23.9): - resolution: {integrity: sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.9): - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.9): - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.9): - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.9): - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.9): - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.9): - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.9): - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.9): - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.9): - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.9): - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.9): - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.9): - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.9): - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.9): - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.9): - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.9): - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.9): - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-async-generator-functions@7.23.9(@babel/core@7.23.9): - resolution: {integrity: sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.9) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.9) - - /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.9) - - /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.9): - resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.9): - resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.9) - - /@babel/plugin-transform-classes@7.23.8(@babel/core@7.23.9): - resolution: {integrity: sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) - '@babel/helper-split-export-declaration': 7.22.6 - globals: 11.12.0 - - /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/template': 7.23.9 - - /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.9): - resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.9) - - /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.9): - resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.9) - - /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.9): - resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - - /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.9): - resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.9) - - /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.9): - resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.9) - - /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-simple-access': 7.22.5 - - /@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.23.9): - resolution: {integrity: sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-identifier': 7.22.20 - - /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.9): - resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.9): - resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9) - - /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.9): - resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.9) - - /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.9): - resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.9 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.9) - - /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) - - /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.9): - resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.9) - - /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.9): - resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9) - - /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.9): - resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.9) - - /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.23.9): - resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.9) - dev: false - - /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.23.9): - resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.9) - '@babel/types': 7.23.9 - dev: false - - /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - regenerator-transform: 0.15.2 - - /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - - /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.23.9): - resolution: {integrity: sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.9) - - /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/preset-env@7.23.9(@babel/core@7.23.9): - resolution: {integrity: sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.9 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.23.9) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.9) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.9) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.9) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.9) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.9) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.9) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.9) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.9) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.9) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.9) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-async-generator-functions': 7.23.9(@babel/core@7.23.9) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.23.9) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.9) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-modules-systemjs': 7.23.9(@babel/core@7.23.9) - '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.9) - '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.9) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.9) - babel-plugin-polyfill-corejs2: 0.4.8(@babel/core@7.23.9) - babel-plugin-polyfill-corejs3: 0.9.0(@babel/core@7.23.9) - babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.23.9) - core-js-compat: 3.36.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.9): - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/types': 7.23.9 - esutils: 2.0.3 - - /@babel/preset-typescript@7.23.3(@babel/core@7.23.9): - resolution: {integrity: sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.9) - - /@babel/regjsgen@0.8.0: - resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - - /@babel/runtime@7.23.9: - resolution: {integrity: sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==} - engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: 0.14.1 - - /@babel/template@7.23.9: - resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.23.5 - '@babel/parser': 7.23.9 - '@babel/types': 7.23.9 - - /@babel/traverse@7.23.9: - resolution: {integrity: sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.9 - '@babel/types': 7.23.9 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - /@babel/types@7.23.9: - resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.23.4 - '@babel/helper-validator-identifier': 7.22.20 - to-fast-properties: 2.0.0 - - /@cloudflare/kv-asset-handler@0.3.1: - resolution: {integrity: sha512-lKN2XCfKCmpKb86a1tl4GIwsJYDy9TGuwjhDELLmpKygQhw8X2xR4dusgpC5Tg7q1pB96Eb0rBo81kxSILQMwA==} - dependencies: - mime: 3.0.0 - dev: false - - /@deno/shim-deno-test@0.5.0: - resolution: {integrity: sha512-4nMhecpGlPi0cSzT67L+Tm+GOJqvuk8gqHBziqcUQOarnuIax1z96/gJHCSIz2Z0zhxE6Rzwb3IZXPtFh51j+w==} - dev: false - - /@deno/shim-deno@0.19.1: - resolution: {integrity: sha512-8hYIpmDqpG76sn+UY1853RCi+CI7ZWz9tt37nfyDL8rwr6xbW0+GHUwCLcsGbh1uMIKURuJy6xtrIcnW+a0duA==} - dependencies: - '@deno/shim-deno-test': 0.5.0 - which: 4.0.0 - dev: false - - /@drizzle-team/studio@0.0.39: - resolution: {integrity: sha512-c5Hkm7MmQC2n5qAsKShjQrHoqlfGslB8+qWzsGGZ+2dHMRTNG60UuzalF0h0rvBax5uzPXuGkYLGaQ+TUX3yMw==} - dependencies: - superjson: 2.2.1 - dev: true - - /@esbuild-kit/core-utils@3.3.2: - resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==} - dependencies: - esbuild: 0.18.20 - source-map-support: 0.5.21 - dev: true - - /@esbuild-kit/esm-loader@2.6.5: - resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==} - dependencies: - '@esbuild-kit/core-utils': 3.3.2 - get-tsconfig: 4.7.2 - dev: true - - /@esbuild/aix-ppc64@0.19.12: - resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - requiresBuild: true - optional: true - - /@esbuild/android-arm64@0.17.19: - resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - optional: true - - /@esbuild/android-arm64@0.18.20: - resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - optional: true - - /@esbuild/android-arm64@0.19.12: - resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - optional: true - - /@esbuild/android-arm@0.17.19: - resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - optional: true - - /@esbuild/android-arm@0.18.20: - resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - optional: true - - /@esbuild/android-arm@0.19.12: - resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - optional: true - - /@esbuild/android-x64@0.17.19: - resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - optional: true - - /@esbuild/android-x64@0.18.20: - resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - optional: true - - /@esbuild/android-x64@0.19.12: - resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - optional: true - - /@esbuild/darwin-arm64@0.17.19: - resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - optional: true - - /@esbuild/darwin-arm64@0.18.20: - resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - optional: true - - /@esbuild/darwin-arm64@0.19.12: - resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - optional: true - - /@esbuild/darwin-x64@0.17.19: - resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - optional: true - - /@esbuild/darwin-x64@0.18.20: - resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - optional: true - - /@esbuild/darwin-x64@0.19.12: - resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - optional: true - - /@esbuild/freebsd-arm64@0.17.19: - resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - optional: true - - /@esbuild/freebsd-arm64@0.18.20: - resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - optional: true - - /@esbuild/freebsd-arm64@0.19.12: - resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - optional: true - - /@esbuild/freebsd-x64@0.17.19: - resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - optional: true - - /@esbuild/freebsd-x64@0.18.20: - resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - optional: true - - /@esbuild/freebsd-x64@0.19.12: - resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - optional: true - - /@esbuild/linux-arm64@0.17.19: - resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-arm64@0.18.20: - resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-arm64@0.19.12: - resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-arm@0.17.19: - resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-arm@0.18.20: - resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-arm@0.19.12: - resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-ia32@0.17.19: - resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-ia32@0.18.20: - resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-ia32@0.19.12: - resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-loong64@0.17.19: - resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-loong64@0.18.20: - resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-loong64@0.19.12: - resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-mips64el@0.17.19: - resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-mips64el@0.18.20: - resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-mips64el@0.19.12: - resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-ppc64@0.17.19: - resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-ppc64@0.18.20: - resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-ppc64@0.19.12: - resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-riscv64@0.17.19: - resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-riscv64@0.18.20: - resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-riscv64@0.19.12: - resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-s390x@0.17.19: - resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-s390x@0.18.20: - resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-s390x@0.19.12: - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-x64@0.17.19: - resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-x64@0.18.20: - resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-x64@0.19.12: - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/netbsd-x64@0.17.19: - resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - optional: true - - /@esbuild/netbsd-x64@0.18.20: - resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - optional: true - - /@esbuild/netbsd-x64@0.19.12: - resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - optional: true - - /@esbuild/openbsd-x64@0.17.19: - resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - optional: true - - /@esbuild/openbsd-x64@0.18.20: - resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - optional: true - - /@esbuild/openbsd-x64@0.19.12: - resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - optional: true - - /@esbuild/sunos-x64@0.17.19: - resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - optional: true - - /@esbuild/sunos-x64@0.18.20: - resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - optional: true - - /@esbuild/sunos-x64@0.19.12: - resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - optional: true - - /@esbuild/win32-arm64@0.17.19: - resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - optional: true - - /@esbuild/win32-arm64@0.18.20: - resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - optional: true - - /@esbuild/win32-arm64@0.19.12: - resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - optional: true - - /@esbuild/win32-ia32@0.17.19: - resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - optional: true - - /@esbuild/win32-ia32@0.18.20: - resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - optional: true - - /@esbuild/win32-ia32@0.19.12: - resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - optional: true - - /@esbuild/win32-x64@0.17.19: - resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - optional: true - - /@esbuild/win32-x64@0.18.20: - resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - optional: true - - /@esbuild/win32-x64@0.19.12: - resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - optional: true - - /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 8.56.0 - eslint-visitor-keys: 3.4.3 - dev: true - - /@eslint-community/regexpp@4.10.0: - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - dev: true - - /@eslint/eslintrc@2.1.4: - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + /@eslint/eslintrc@1.4.1: + resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.1 + globals: 13.21.0 + ignore: 5.2.4 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - dev: true - /@eslint/js@8.56.0: - resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /@fastify/busboy@2.1.0: - resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==} - engines: {node: '>=14'} - - /@fortawesome/fontawesome-common-types@6.5.1: - resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==, tarball: https://npm.fontawesome.com/@fortawesome/fontawesome-common-types/-/6.5.1/fontawesome-common-types-6.5.1.tgz} + /@fortawesome/fontawesome-common-types@6.4.2: + resolution: {integrity: sha512-1DgP7f+XQIJbLFCTX1V2QnxVmpLdKdzzo2k8EmvDOePfchaIGQ9eCHj2up3/jNEbZuBqel5OxiaOJf37TWauRA==, tarball: https://npm.fontawesome.com/@fortawesome/fontawesome-common-types/-/6.4.2/fontawesome-common-types-6.4.2.tgz} engines: {node: '>=6'} requiresBuild: true dev: false - /@fortawesome/fontawesome-svg-core@6.5.1: - resolution: {integrity: sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==, tarball: https://npm.fontawesome.com/@fortawesome/fontawesome-svg-core/-/6.5.1/fontawesome-svg-core-6.5.1.tgz} + /@fortawesome/fontawesome-svg-core@6.4.2: + resolution: {integrity: sha512-gjYDSKv3TrM2sLTOKBc5rH9ckje8Wrwgx1CxAPbN5N3Fm4prfi7NsJVWd1jklp7i5uSCVwhZS5qlhMXqLrpAIg==, tarball: https://npm.fontawesome.com/@fortawesome/fontawesome-svg-core/-/6.4.2/fontawesome-svg-core-6.4.2.tgz} engines: {node: '>=6'} requiresBuild: true dependencies: - '@fortawesome/fontawesome-common-types': 6.5.1 + '@fortawesome/fontawesome-common-types': 6.4.2 dev: false - /@fortawesome/pro-duotone-svg-icons@6.5.1: - resolution: {integrity: sha512-ywRh7WpcUD4To4TBFZc2EzbFblWiccNf9wwLFK56J7t8mO9ITQJAIPpT8x7DBrqejfbw9B4F6aH5fY6mfi0egg==, tarball: https://npm.fontawesome.com/@fortawesome/pro-duotone-svg-icons/-/6.5.1/pro-duotone-svg-icons-6.5.1.tgz} + /@fortawesome/pro-duotone-svg-icons@6.4.2: + resolution: {integrity: sha512-+nB6ryovu5AWWc2a2qz0lkmc2jEtdPRuHeKl6eI202xk1Ci0KCkBNKAb7iarRFLlvMIkOqU6d1Fpd1XccIRBwA==, tarball: https://npm.fontawesome.com/@fortawesome/pro-duotone-svg-icons/-/6.4.2/pro-duotone-svg-icons-6.4.2.tgz} engines: {node: '>=6'} requiresBuild: true dependencies: - '@fortawesome/fontawesome-common-types': 6.5.1 + '@fortawesome/fontawesome-common-types': 6.4.2 dev: false - /@fortawesome/pro-light-svg-icons@6.5.1: - resolution: {integrity: sha512-qcBN5RESCPhbWRvHL5N5ovxvYzj2KbpKoSWPJ1TRce1jSsQgBx6hN4SCzzzYJkoiIO43L1/n+NjEQHb0YYtg6g==, tarball: https://npm.fontawesome.com/@fortawesome/pro-light-svg-icons/-/6.5.1/pro-light-svg-icons-6.5.1.tgz} + /@fortawesome/pro-light-svg-icons@6.4.2: + resolution: {integrity: sha512-JC/soha6KokIirjuaOZExGg2rw3TGVqvrOvYHmqFSV2FtVJzbW10ZByJDC3z4SXrBTJp8kuub8AgR8XND75OBw==, tarball: https://npm.fontawesome.com/@fortawesome/pro-light-svg-icons/-/6.4.2/pro-light-svg-icons-6.4.2.tgz} engines: {node: '>=6'} requiresBuild: true dependencies: - '@fortawesome/fontawesome-common-types': 6.5.1 + '@fortawesome/fontawesome-common-types': 6.4.2 dev: false - /@fortawesome/pro-regular-svg-icons@6.5.1: - resolution: {integrity: sha512-Rd7Q7Vff68l/YtFKB4EJW/YJ5eXYk7TqejyDTapOI1sn3/AFMEc8CVCOsPfi4+6qGrJy16hlNvgpigIy5gkW7A==, tarball: https://npm.fontawesome.com/@fortawesome/pro-regular-svg-icons/-/6.5.1/pro-regular-svg-icons-6.5.1.tgz} + /@fortawesome/pro-regular-svg-icons@6.4.2: + resolution: {integrity: sha512-e6LJbjPuthsDfskXvsy3kSpz/NFD2FQ0utZHelMwOyjkalPSbM3kyedZ4Vgq3XVTKo6NQd9FtIoHxxmEQHQKRA==, tarball: https://npm.fontawesome.com/@fortawesome/pro-regular-svg-icons/-/6.4.2/pro-regular-svg-icons-6.4.2.tgz} engines: {node: '>=6'} requiresBuild: true dependencies: - '@fortawesome/fontawesome-common-types': 6.5.1 + '@fortawesome/fontawesome-common-types': 6.4.2 dev: false - /@fortawesome/pro-solid-svg-icons@6.5.1: - resolution: {integrity: sha512-UnJzqw7w+RVtEnQ2Bqg09bGYkJEZRkTnbgweZDTznHjtxsJzQdJkD3hJPL6N00c8GbWpRYslNDnTNDGVSd94cQ==, tarball: https://npm.fontawesome.com/@fortawesome/pro-solid-svg-icons/-/6.5.1/pro-solid-svg-icons-6.5.1.tgz} + /@fortawesome/pro-solid-svg-icons@6.4.2: + resolution: {integrity: sha512-60mEfU6Tw7Qn//4JS3O4jWVF2qfED94+wxrWfAD5Z0Bo002XJrA/xIKTbIo71HbhHV4LGQ1wltlzhG34O6Y0Cg==, tarball: https://npm.fontawesome.com/@fortawesome/pro-solid-svg-icons/-/6.4.2/pro-solid-svg-icons-6.4.2.tgz} engines: {node: '>=6'} requiresBuild: true dependencies: - '@fortawesome/fontawesome-common-types': 6.5.1 + '@fortawesome/fontawesome-common-types': 6.4.2 dev: false - /@fortawesome/pro-thin-svg-icons@6.5.1: - resolution: {integrity: sha512-tVb+5q+QQiSG3enV9+PpeFKe7wd+TK5zZ9q9iqr4Zj2UbxdV2o6SGcA5h0oeWVH2eHVqiIHxfEf7XbB8/ZioAQ==, tarball: https://npm.fontawesome.com/@fortawesome/pro-thin-svg-icons/-/6.5.1/pro-thin-svg-icons-6.5.1.tgz} + /@fortawesome/pro-thin-svg-icons@6.4.2: + resolution: {integrity: sha512-8PLLp4X2+6jpsB/2uM+kzWB8LYCzGv+yp+xecwPfpYiIL7l/+JNMWYj46sptpjF98+W9v+cCnqbRnzcjF90f2Q==, tarball: https://npm.fontawesome.com/@fortawesome/pro-thin-svg-icons/-/6.4.2/pro-thin-svg-icons-6.4.2.tgz} engines: {node: '>=6'} requiresBuild: true dependencies: - '@fortawesome/fontawesome-common-types': 6.5.1 + '@fortawesome/fontawesome-common-types': 6.4.2 dev: false - /@fortawesome/sharp-solid-svg-icons@6.5.1: - resolution: {integrity: sha512-IYRaD4FKokprj63Qu+blYXgLioPFQx3ecimYk8ENd4cpySOYgP8tPRy5TSSq0udkXKAjfkeYUAXhQ88OD0qyiw==, tarball: https://npm.fontawesome.com/@fortawesome/sharp-solid-svg-icons/-/6.5.1/sharp-solid-svg-icons-6.5.1.tgz} + /@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@6.4.2)(react@18.2.0): + resolution: {integrity: sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==, tarball: https://npm.fontawesome.com/@fortawesome/react-fontawesome/-/0.2.0/react-fontawesome-0.2.0.tgz} + peerDependencies: + '@fortawesome/fontawesome-svg-core': ~1 || ~6 + react: '>=16.3' + dependencies: + '@fortawesome/fontawesome-svg-core': 6.4.2 + prop-types: 15.8.1 + react: 18.2.0 + dev: false + + /@fortawesome/sharp-solid-svg-icons@6.4.2: + resolution: {integrity: sha512-b8kA9CxRPmdgoOrELrYHokbF5f0C80SJg9NA+dYcny3SHMsUQCSUacEX1OOIERwRyb1t5ncB2XI9CAPDTQ8wVg==, tarball: https://npm.fontawesome.com/@fortawesome/sharp-solid-svg-icons/-/6.4.2/sharp-solid-svg-icons-6.4.2.tgz} engines: {node: '>=6'} requiresBuild: true dependencies: - '@fortawesome/fontawesome-common-types': 6.5.1 + '@fortawesome/fontawesome-common-types': 6.4.2 dev: false - /@hapi/hoek@9.3.0: - resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} - - /@hapi/topo@5.1.0: - resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} - dependencies: - '@hapi/hoek': 9.3.0 - - /@humanwhocodes/config-array@0.11.14: - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + /@humanwhocodes/config-array@0.11.10: + resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} engines: {node: '>=10.10.0'} dependencies: - '@humanwhocodes/object-schema': 2.0.2 + '@humanwhocodes/object-schema': 1.2.1 debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: - supports-color - dev: true /@humanwhocodes/module-importer@1.0.1: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - dev: true - /@humanwhocodes/object-schema@2.0.2: - resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} - dev: true - - /@ioredis/commands@1.2.0: - resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} - dev: false - - /@isaacs/cliui@8.0.2: - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - dependencies: - string-width: 5.1.2 - string-width-cjs: /string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: /strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: /wrap-ansi@7.0.0 - dev: true + /@humanwhocodes/object-schema@1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} /@jridgewell/gen-mapping@0.3.3: resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} @@ -2121,73 +282,170 @@ packages: dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/trace-mapping': 0.3.19 + dev: true - /@jridgewell/resolve-uri@3.1.2: - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} + dev: true /@jridgewell/set-array@1.1.2: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} - - /@jridgewell/source-map@0.3.5: - resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.22 + dev: true /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true - /@jridgewell/trace-mapping@0.3.22: - resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==} + /@jridgewell/trace-mapping@0.3.19: + resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} dependencies: - '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 + dev: true - /@mapbox/node-pre-gyp@1.0.11: - resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} - hasBin: true + /@next-auth/prisma-adapter@1.0.7(@prisma/client@4.16.2)(next-auth@4.23.0): + resolution: {integrity: sha512-Cdko4KfcmKjsyHFrWwZ//lfLUbcLqlyFqjd/nYE2m3aZ7tjMNUjpks47iw7NTCnXf+5UWz5Ypyt1dSs1EP5QJw==} + peerDependencies: + '@prisma/client': '>=2.26.0 || >=3' + next-auth: ^4 dependencies: - detect-libc: 2.0.2 - https-proxy-agent: 5.0.1 - make-dir: 3.1.0 - node-fetch: 2.7.0 - nopt: 5.0.0 - npmlog: 5.0.1 - rimraf: 3.0.2 - semver: 7.6.0 - tar: 6.2.0 - transitivePeerDependencies: - - encoding - - supports-color + '@prisma/client': 4.16.2(prisma@4.16.2) + next-auth: 4.23.0(next@13.1.1)(nodemailer@6.9.4)(react-dom@18.2.0)(react@18.2.0) dev: false - /@netlify/functions@2.6.0: - resolution: {integrity: sha512-vU20tij0fb4nRGACqb+5SQvKd50JYyTyEhQetCMHdakcJFzjLDivvRR16u1G2Oy4A7xNAtGJF1uz8reeOtTVcQ==} - engines: {node: '>=14.0.0'} + /@next/env@13.1.1: + resolution: {integrity: sha512-vFMyXtPjSAiOXOywMojxfKIqE3VWN5RCAx+tT3AS3pcKjMLFTCJFUWsKv8hC+87Z1F4W3r68qTwDFZIFmd5Xkw==} + dev: false + + /@next/eslint-plugin-next@13.1.1: + resolution: {integrity: sha512-SBrOFS8PC3nQ5aeZmawJkjKkWjwK9RoxvBSv/86nZp0ubdoVQoko8r8htALd9ufp16NhacCdqhu9bzZLDWtALQ==} dependencies: - '@netlify/serverless-functions-api': 1.14.0 + glob: 7.1.7 dev: false - /@netlify/node-cookies@0.1.0: - resolution: {integrity: sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g==} - engines: {node: ^14.16.0 || >=16.0.0} + /@next/font@13.1.1: + resolution: {integrity: sha512-amygRorS05hYK1/XQRZo5qBl7l2fpHnezeKU/cNveWU5QJg+sg8gMGkUXHtvesNKpiKIJshBRH1TzvO+2sKpvQ==} dev: false - /@netlify/serverless-functions-api@1.14.0: - resolution: {integrity: sha512-HUNETLNvNiC2J+SB/YuRwJA9+agPrc0azSoWVk8H85GC+YE114hcS5JW+dstpKwVerp2xILE3vNWN7IMXP5Q5Q==} - engines: {node: ^14.18.0 || >=16.0.0} - dependencies: - '@netlify/node-cookies': 0.1.0 - urlpattern-polyfill: 8.0.2 + /@next/swc-android-arm-eabi@13.1.1: + resolution: {integrity: sha512-qnFCx1kT3JTWhWve4VkeWuZiyjG0b5T6J2iWuin74lORCupdrNukxkq9Pm+Z7PsatxuwVJMhjUoYz7H4cWzx2A==} + engines: {node: '>= 10'} + cpu: [arm] + os: [android] + requiresBuild: true dev: false + optional: true - /@noble/hashes@1.3.3: - resolution: {integrity: sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==} - engines: {node: '>= 16'} + /@next/swc-android-arm64@13.1.1: + resolution: {integrity: sha512-eCiZhTzjySubNqUnNkQCjU3Fh+ep3C6b5DCM5FKzsTH/3Gr/4Y7EiaPZKILbvnXmhWtKPIdcY6Zjx51t4VeTfA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + requiresBuild: true dev: false + optional: true + + /@next/swc-darwin-arm64@13.1.1: + resolution: {integrity: sha512-9zRJSSIwER5tu9ADDkPw5rIZ+Np44HTXpYMr0rkM656IvssowPxmhK0rTreC1gpUCYwFsRbxarUJnJsTWiutPg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@next/swc-darwin-x64@13.1.1: + resolution: {integrity: sha512-qWr9qEn5nrnlhB0rtjSdR00RRZEtxg4EGvicIipqZWEyayPxhUu6NwKiG8wZiYZCLfJ5KWr66PGSNeDMGlNaiA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@next/swc-freebsd-x64@13.1.1: + resolution: {integrity: sha512-UwP4w/NcQ7V/VJEj3tGVszgb4pyUCt3lzJfUhjDMUmQbzG9LDvgiZgAGMYH6L21MoyAATJQPDGiAMWAPKsmumA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-arm-gnueabihf@13.1.1: + resolution: {integrity: sha512-CnsxmKHco9sosBs1XcvCXP845Db+Wx1G0qouV5+Gr+HT/ZlDYEWKoHVDgnJXLVEQzq4FmHddBNGbXvgqM1Gfkg==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-arm64-gnu@13.1.1: + resolution: {integrity: sha512-JfDq1eri5Dif+VDpTkONRd083780nsMCOKoFG87wA0sa4xL8LGcXIBAkUGIC1uVy9SMsr2scA9CySLD/i+Oqiw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-arm64-musl@13.1.1: + resolution: {integrity: sha512-GA67ZbDq2AW0CY07zzGt07M5b5Yaq5qUpFIoW3UFfjOPgb0Sqf3DAW7GtFMK1sF4ROHsRDMGQ9rnT0VM2dVfKA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-x64-gnu@13.1.1: + resolution: {integrity: sha512-nnjuBrbzvqaOJaV+XgT8/+lmXrSCOt1YYZn/irbDb2fR2QprL6Q7WJNgwsZNxiLSfLdv+2RJGGegBx9sLBEzGA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-x64-musl@13.1.1: + resolution: {integrity: sha512-CM9xnAQNIZ8zf/igbIT/i3xWbQZYaF397H+JroF5VMOCUleElaMdQLL5riJml8wUfPoN3dtfn2s4peSr3azz/g==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-win32-arm64-msvc@13.1.1: + resolution: {integrity: sha512-pzUHOGrbgfGgPlOMx9xk3QdPJoRPU+om84hqVoe6u+E0RdwOG0Ho/2UxCgDqmvpUrMab1Deltlt6RqcXFpnigQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@next/swc-win32-ia32-msvc@13.1.1: + resolution: {integrity: sha512-WeX8kVS46aobM9a7Xr/kEPcrTyiwJqQv/tbw6nhJ4fH9xNZ+cEcyPoQkwPo570dCOLz3Zo9S2q0E6lJ/EAUOBg==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@next/swc-win32-x64-msvc@13.1.1: + resolution: {integrity: sha512-mVF0/3/5QAc5EGVnb8ll31nNvf3BWpPY4pBb84tk+BfQglWLqc5AC9q1Ht/YMWiEgs8ALNKEQ3GQnbY0bJF2Gg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -2205,1047 +463,201 @@ packages: engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 + fastq: 1.15.0 /@panva/hkdf@1.1.1: resolution: {integrity: sha512-dhPeilub1NuIG0X5Kvhh9lH4iW3ZsHlnzwgwbOlgwQ2wG1IqFzsgHqmKPk3WzsdWAeaxKJxgM0+W433RmN45GA==} dev: false - /@paralleldrive/cuid2@2.2.2: - resolution: {integrity: sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==} - dependencies: - '@noble/hashes': 1.3.3 - dev: false - - /@parcel/watcher-android-arm64@2.4.0: - resolution: {integrity: sha512-+fPtO/GsbYX1LJnCYCaDVT3EOBjvSFdQN9Mrzh9zWAOOfvidPWyScTrHIZHHfJBvlHzNA0Gy0U3NXFA/M7PHUA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-darwin-arm64@2.4.0: - resolution: {integrity: sha512-T/At5pansFuQ8VJLRx0C6C87cgfqIYhW2N/kBfLCUvDhCah0EnLLwaD/6MW3ux+rpgkpQAnMELOCTKlbwncwiA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-darwin-x64@2.4.0: - resolution: {integrity: sha512-vZMv9jl+szz5YLsSqEGCMSllBl1gU1snfbRL5ysJU03MEa6gkVy9OMcvXV1j4g0++jHEcvzhs3Z3LpeEbVmY6Q==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-freebsd-x64@2.4.0: - resolution: {integrity: sha512-dHTRMIplPDT1M0+BkXjtMN+qLtqq24sLDUhmU+UxxLP2TEY2k8GIoqIJiVrGWGomdWsy5IO27aDV1vWyQ6gfHA==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-linux-arm-glibc@2.4.0: - resolution: {integrity: sha512-9NQXD+qk46RwATNC3/UB7HWurscY18CnAPMTFcI9Y8CTbtm63/eex1SNt+BHFinEQuLBjaZwR2Lp+n7pmEJPpQ==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-linux-arm64-glibc@2.4.0: - resolution: {integrity: sha512-QuJTAQdsd7PFW9jNGaV9Pw+ZMWV9wKThEzzlY3Lhnnwy7iW23qtQFPql8iEaSFMCVI5StNNmONUopk+MFKpiKg==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-linux-arm64-musl@2.4.0: - resolution: {integrity: sha512-oyN+uA9xcTDo/45bwsd6TFHa7Lc7hKujyMlvwrCLvSckvWogndCEoVYFNfZ6JJ2KNL/6fFiGPcbjp8jJmEh5Ng==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-linux-x64-glibc@2.4.0: - resolution: {integrity: sha512-KphV8awJmxU3q52JQvJot0QMu07CIyEjV+2Tb2ZtbucEgqyRcxOBDMsqp1JNq5nuDXtcCC0uHQICeiEz38dPBQ==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-linux-x64-musl@2.4.0: - resolution: {integrity: sha512-7jzcOonpXNWcSijPpKD5IbC6xC7yTibjJw9jviVzZostYLGxbz8LDJLUnLzLzhASPlPGgpeKLtFUMjAAzM+gSA==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-wasm@2.3.0: - resolution: {integrity: sha512-ejBAX8H0ZGsD8lSICDNyMbSEtPMWgDL0WFCt/0z7hyf5v8Imz4rAM8xY379mBsECkq/Wdqa5WEDLqtjZ+6NxfA==} - engines: {node: '>= 10.0.0'} - dependencies: - is-glob: 4.0.3 - micromatch: 4.0.5 - dev: false - bundledDependencies: - - napi-wasm - - /@parcel/watcher-wasm@2.4.0: - resolution: {integrity: sha512-MNgQ4WCbBybqQ97KwR/hqJGYTg3+s8qHpgIyFWB2qJOBvoJWbXuJGmm4ZkPLq2bMaANqCZqrXwmKYagZTkMKZA==} - engines: {node: '>= 10.0.0'} - dependencies: - is-glob: 4.0.3 - micromatch: 4.0.5 - dev: false - bundledDependencies: - - napi-wasm - - /@parcel/watcher-win32-arm64@2.4.0: - resolution: {integrity: sha512-NOej2lqlq8bQNYhUMnOD0nwvNql8ToQF+1Zhi9ULZoG+XTtJ9hNnCFfyICxoZLXor4bBPTOnzs/aVVoefYnjIg==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-win32-ia32@2.4.0: - resolution: {integrity: sha512-IO/nM+K2YD/iwjWAfHFMBPz4Zqn6qBDqZxY4j2n9s+4+OuTSRM/y/irksnuqcspom5DjkSeF9d0YbO+qpys+JA==} - engines: {node: '>= 10.0.0'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-win32-x64@2.4.0: - resolution: {integrity: sha512-pAUyUVjfFjWaf/pShmJpJmNxZhbMvJASUpdes9jL6bTEJ+gDxPRSpXTIemNyNsb9AtbiGXs9XduP1reThmd+dA==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher@2.4.0: - resolution: {integrity: sha512-XJLGVL0DEclX5pcWa2N9SX1jCGTDd8l972biNooLFtjneuGqodupPQh6XseXIBBeVIMaaJ7bTcs3qGvXwsp4vg==} - engines: {node: '>= 10.0.0'} - dependencies: - detect-libc: 1.0.3 - is-glob: 4.0.3 - micromatch: 4.0.5 - node-addon-api: 7.1.0 - optionalDependencies: - '@parcel/watcher-android-arm64': 2.4.0 - '@parcel/watcher-darwin-arm64': 2.4.0 - '@parcel/watcher-darwin-x64': 2.4.0 - '@parcel/watcher-freebsd-x64': 2.4.0 - '@parcel/watcher-linux-arm-glibc': 2.4.0 - '@parcel/watcher-linux-arm64-glibc': 2.4.0 - '@parcel/watcher-linux-arm64-musl': 2.4.0 - '@parcel/watcher-linux-x64-glibc': 2.4.0 - '@parcel/watcher-linux-x64-musl': 2.4.0 - '@parcel/watcher-win32-arm64': 2.4.0 - '@parcel/watcher-win32-ia32': 2.4.0 - '@parcel/watcher-win32-x64': 2.4.0 - dev: false - - /@pkgjs/parseargs@0.11.0: - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - requiresBuild: true - dev: true - optional: true - - /@playwright/test@1.41.2: - resolution: {integrity: sha512-qQB9h7KbibJzrDpkXkYvsmiDJK14FULCCZgEcoe2AvFAS64oCirWTwzTlAYEbKaRxWs5TFesE1Na6izMv3HfGg==} + /@playwright/test@1.37.0: + resolution: {integrity: sha512-181WBLk4SRUyH1Q96VZl7BP6HcK0b7lbdeKisn3N/vnjitk+9HbdlFz/L5fey05vxaAhldIDnzo8KUoy8S3mmQ==} engines: {node: '>=16'} hasBin: true dependencies: - playwright: 1.41.2 + '@types/node': 18.17.5 + playwright-core: 1.37.0 + optionalDependencies: + fsevents: 2.3.2 dev: true - /@polka/url@1.0.0-next.24: - resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==} - - /@preact/preset-vite@2.8.1(@babel/core@7.23.9)(preact@10.19.6)(vite@5.1.1): - resolution: {integrity: sha512-a9KV4opdj17X2gOFuGup0aE+sXYABX/tJi/QDptOrleX4FlnoZgDWvz45tHOdVfrZX+3uvVsIYPHxRsTerkDNA==} + /@prisma/client@4.16.2(prisma@4.16.2): + resolution: {integrity: sha512-qCoEyxv1ZrQ4bKy39GnylE8Zq31IRmm8bNhNbZx7bF2cU5aiCCnSa93J2imF88MBjn7J9eUQneNxUQVJdl/rPQ==} + engines: {node: '>=14.17'} + requiresBuild: true peerDependencies: - '@babel/core': 7.x - vite: 2.x || 3.x || 4.x || 5.x + prisma: '*' + peerDependenciesMeta: + prisma: + optional: true dependencies: - '@babel/core': 7.23.9 - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.23.9) - '@prefresh/vite': 2.4.5(preact@10.19.6)(vite@5.1.1) - '@rollup/pluginutils': 4.2.1 - babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.23.9) + '@prisma/engines-version': 4.16.1-1.4bc8b6e1b66cb932731fb1bdbbc550d1e010de81 + prisma: 4.16.2 + dev: false + + /@prisma/debug@5.1.1: + resolution: {integrity: sha512-R9e2Tn8f+ujVjwn6ne1YkXY35BXzUmxJbGsmD1c8RAZ/NXgbYktEFAwIkOZn5H5zRfY2VDSBvGI6TFpnOu50cg==} + dependencies: + '@types/debug': 4.1.8 debug: 4.3.4 - kolorist: 1.8.0 - magic-string: 0.30.5 - node-html-parser: 6.1.12 - resolve: 1.22.8 - vite: 5.1.1(@types/node@20.11.19)(sass@1.71.1) - transitivePeerDependencies: - - preact - - supports-color - dev: false - - /@prefresh/babel-plugin@0.5.1: - resolution: {integrity: sha512-uG3jGEAysxWoyG3XkYfjYHgaySFrSsaEb4GagLzYaxlydbuREtaX+FTxuIidp241RaLl85XoHg9Ej6E4+V1pcg==} - dev: false - - /@prefresh/core@1.5.2(preact@10.19.6): - resolution: {integrity: sha512-A/08vkaM1FogrCII5PZKCrygxSsc11obExBScm3JF1CryK2uDS3ZXeni7FeKCx1nYdUkj4UcJxzPzc1WliMzZA==} - peerDependencies: - preact: ^10.0.0 - dependencies: - preact: 10.19.6 - dev: false - - /@prefresh/utils@1.2.0: - resolution: {integrity: sha512-KtC/fZw+oqtwOLUFM9UtiitB0JsVX0zLKNyRTA332sqREqSALIIQQxdUCS1P3xR/jT1e2e8/5rwH6gdcMLEmsQ==} - dev: false - - /@prefresh/vite@2.4.5(preact@10.19.6)(vite@5.1.1): - resolution: {integrity: sha512-iForDVJ2M8gQYnm5pHumvTEJjGGc7YNYC0GVKnHFL+GvFfKHfH9Rpq67nUAzNbjuLEpqEOUuQVQajMazWu2ZNQ==} - peerDependencies: - preact: ^10.4.0 - vite: '>=2.0.0' - dependencies: - '@babel/core': 7.23.9 - '@prefresh/babel-plugin': 0.5.1 - '@prefresh/core': 1.5.2(preact@10.19.6) - '@prefresh/utils': 1.2.0 - '@rollup/pluginutils': 4.2.1 - preact: 10.19.6 - vite: 5.1.1(@types/node@20.11.19)(sass@1.71.1) + strip-ansi: 6.0.1 transitivePeerDependencies: - supports-color dev: false - /@rollup/plugin-alias@5.1.0(rollup@4.12.0): - resolution: {integrity: sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - rollup: 4.12.0 - slash: 4.0.0 + /@prisma/engines-version@4.16.1-1.4bc8b6e1b66cb932731fb1bdbbc550d1e010de81: + resolution: {integrity: sha512-q617EUWfRIDTriWADZ4YiWRZXCa/WuhNgLTVd+HqWLffjMSPzyM5uOWoauX91wvQClSKZU4pzI4JJLQ9Kl62Qg==} dev: false - /@rollup/plugin-commonjs@24.1.0(rollup@3.29.4): - resolution: {integrity: sha512-eSL45hjhCWI0jCCXcNtLVqM5N1JlBGvlFfY0m6oOYnLCJ6N0qEXoZql4sY2MOUArzhH4SA/qBpTxvvZp2Sc+DQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.68.0||^3.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.1.0(rollup@3.29.4) - commondir: 1.0.1 - estree-walker: 2.0.2 - glob: 8.1.0 - is-reference: 1.2.1 - magic-string: 0.27.0 - rollup: 3.29.4 - - /@rollup/plugin-commonjs@25.0.7(rollup@4.12.0): - resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.68.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.12.0) - commondir: 1.0.1 - estree-walker: 2.0.2 - glob: 8.1.0 - is-reference: 1.2.1 - magic-string: 0.30.7 - rollup: 4.12.0 + /@prisma/engines@4.16.2: + resolution: {integrity: sha512-vx1nxVvN4QeT/cepQce68deh/Turxy5Mr+4L4zClFuK1GlxN3+ivxfuv+ej/gvidWn1cE1uAhW7ALLNlYbRUAw==} + requiresBuild: true dev: false - /@rollup/plugin-inject@5.0.5(rollup@4.12.0): - resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true + /@prisma/generator-helper@5.1.1: + resolution: {integrity: sha512-Qk9iiVk4JZQYZrYsc1Wx9fXFFnS1AH4T7WyLxCIFnX/end0K5tOK75Qxv6mjZAHE0XUGrzoTlZUkbSDVYz/CvQ==} dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.12.0) - estree-walker: 2.0.2 - magic-string: 0.30.7 - rollup: 4.12.0 + '@prisma/debug': 5.1.1 + '@types/cross-spawn': 6.0.2 + cross-spawn: 7.0.3 + kleur: 4.1.5 + transitivePeerDependencies: + - supports-color dev: false - /@rollup/plugin-json@6.1.0(rollup@3.29.4): - resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.1.0(rollup@3.29.4) - rollup: 3.29.4 - - /@rollup/plugin-json@6.1.0(rollup@4.12.0): - resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.12.0) - rollup: 4.12.0 - dev: false - - /@rollup/plugin-node-resolve@15.2.3(rollup@3.29.4): - resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.78.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.1.0(rollup@3.29.4) - '@types/resolve': 1.20.2 - deepmerge: 4.3.1 - is-builtin-module: 3.2.1 - is-module: 1.0.0 - resolve: 1.22.8 - rollup: 3.29.4 - - /@rollup/plugin-node-resolve@15.2.3(rollup@4.12.0): - resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.78.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.12.0) - '@types/resolve': 1.20.2 - deepmerge: 4.3.1 - is-builtin-module: 3.2.1 - is-module: 1.0.0 - resolve: 1.22.8 - rollup: 4.12.0 - dev: false - - /@rollup/plugin-replace@5.0.5(rollup@4.12.0): - resolution: {integrity: sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.12.0) - magic-string: 0.30.7 - rollup: 4.12.0 - dev: false - - /@rollup/plugin-terser@0.4.4(rollup@4.12.0): - resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - rollup: 4.12.0 - serialize-javascript: 6.0.2 - smob: 1.4.1 - terser: 5.27.2 - dev: false - - /@rollup/plugin-wasm@6.2.2(rollup@4.12.0): - resolution: {integrity: sha512-gpC4R1G9Ni92ZIRTexqbhX7U+9estZrbhP+9SRb0DW9xpB9g7j34r+J2hqrcW/lRI7dJaU84MxZM0Rt82tqYPQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.12.0) - rollup: 4.12.0 - dev: false - - /@rollup/pluginutils@4.2.1: - resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} - engines: {node: '>= 8.0.0'} - dependencies: - estree-walker: 2.0.2 - picomatch: 2.3.1 - dev: false - - /@rollup/pluginutils@5.1.0(rollup@3.29.4): - resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@types/estree': 1.0.5 - estree-walker: 2.0.2 - picomatch: 2.3.1 - rollup: 3.29.4 - - /@rollup/pluginutils@5.1.0(rollup@4.12.0): - resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@types/estree': 1.0.5 - estree-walker: 2.0.2 - picomatch: 2.3.1 - rollup: 4.12.0 - dev: false - - /@rollup/rollup-android-arm-eabi@4.12.0: - resolution: {integrity: sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==} - cpu: [arm] - os: [android] - requiresBuild: true - optional: true - - /@rollup/rollup-android-arm64@4.12.0: - resolution: {integrity: sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==} - cpu: [arm64] - os: [android] - requiresBuild: true - optional: true - - /@rollup/rollup-darwin-arm64@4.12.0: - resolution: {integrity: sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==} - cpu: [arm64] - os: [darwin] - requiresBuild: true - optional: true - - /@rollup/rollup-darwin-x64@4.12.0: - resolution: {integrity: sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==} - cpu: [x64] - os: [darwin] - requiresBuild: true - optional: true - - /@rollup/rollup-linux-arm-gnueabihf@4.12.0: - resolution: {integrity: sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==} - cpu: [arm] - os: [linux] - requiresBuild: true - optional: true - - /@rollup/rollup-linux-arm64-gnu@4.12.0: - resolution: {integrity: sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==} - cpu: [arm64] - os: [linux] - requiresBuild: true - optional: true - - /@rollup/rollup-linux-arm64-musl@4.12.0: - resolution: {integrity: sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==} - cpu: [arm64] - os: [linux] - requiresBuild: true - optional: true - - /@rollup/rollup-linux-riscv64-gnu@4.12.0: - resolution: {integrity: sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==} - cpu: [riscv64] - os: [linux] - requiresBuild: true - optional: true - - /@rollup/rollup-linux-x64-gnu@4.12.0: - resolution: {integrity: sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==} - cpu: [x64] - os: [linux] - requiresBuild: true - optional: true - - /@rollup/rollup-linux-x64-musl@4.12.0: - resolution: {integrity: sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==} - cpu: [x64] - os: [linux] - requiresBuild: true - optional: true - - /@rollup/rollup-win32-arm64-msvc@4.12.0: - resolution: {integrity: sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==} - cpu: [arm64] - os: [win32] - requiresBuild: true - optional: true - - /@rollup/rollup-win32-ia32-msvc@4.12.0: - resolution: {integrity: sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==} - cpu: [ia32] - os: [win32] - requiresBuild: true - optional: true - - /@rollup/rollup-win32-x64-msvc@4.12.0: - resolution: {integrity: sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==} - cpu: [x64] - os: [win32] - requiresBuild: true - optional: true - - /@sideway/address@4.1.5: - resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} - dependencies: - '@hapi/hoek': 9.3.0 - - /@sideway/formula@3.0.1: - resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} - - /@sideway/pinpoint@2.0.0: - resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} - - /@sindresorhus/merge-streams@2.3.0: - resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} - engines: {node: '>=18'} + /@rushstack/eslint-patch@1.3.3: + resolution: {integrity: sha512-0xd7qez0AQ+MbHatZTlI1gu5vkG8r7MYRUJAHPAHJBmGLs16zpkrpAVLvjQKQOqaXPDUBwOiJzNc00znHSCVBw==} dev: false /@socket.io/component-emitter@3.1.0: resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==} dev: false - /@solidjs/meta@0.29.3(solid-js@1.8.15): - resolution: {integrity: sha512-R2uirgjgyh3FPFh+rb840plF701N6GvM5w81/QeI61QwjXb4QzLkyI/uzXfC5UW8favpUn9KK9ILQeoTl6pX0A==} - peerDependencies: - solid-js: '>=1.8.4' + /@swc/helpers@0.4.14: + resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==} dependencies: - solid-js: 1.8.15 - - /@solidjs/router@0.12.4(solid-js@1.8.15): - resolution: {integrity: sha512-2S5QWYmpWSIWn5ei85eoStEMmECERX2BiBkEvmqYDrgX79I8D95YaWVdHbcFGOxISPTY4TP7RxjRiofs/AIFJQ==} - peerDependencies: - solid-js: ^1.8.6 - dependencies: - solid-js: 1.8.15 - - /@solidjs/router@0.8.4(solid-js@1.8.15): - resolution: {integrity: sha512-Gi/WVoVseGMKS1DBdT3pNAMgOzEOp6Q3dpgNd2mW9GUEnVocPmtyBjDvXwN6m7tjSGsqqfqJFXk7bm1hxabSRw==} - peerDependencies: - solid-js: ^1.5.3 - dependencies: - solid-js: 1.8.15 + tslib: 2.6.1 dev: false - /@solidjs/start@0.5.9(rollup@3.29.4)(solid-js@1.8.15)(vinxi@0.3.3)(vite@5.1.4): - resolution: {integrity: sha512-NNDmre4EYPQ6ZklfFZl1s4uvmGhsC61CMkOxcdfWS3+KAS0GpF52my7IztApKw4h+adLFbBy3qkF7qi8aCfcjw==} - dependencies: - '@vinxi/plugin-directives': 0.2.0(vinxi@0.3.3) - '@vinxi/server-components': 0.2.0(vinxi@0.3.3) - '@vinxi/server-functions': 0.2.1(vinxi@0.3.3) - defu: 6.1.4 - error-stack-parser: 2.1.4 - html-to-image: 1.11.11 - radix3: 1.1.0 - seroval: 1.0.4 - seroval-plugins: 1.0.4(seroval@1.0.4) - shikiji: 0.9.19 - source-map-js: 1.0.2 - terracotta: 1.0.5(solid-js@1.8.15) - vite-plugin-inspect: 0.7.42(rollup@3.29.4)(vite@5.1.4) - vite-plugin-solid: 2.9.1(solid-js@1.8.15)(vite@5.1.4) - transitivePeerDependencies: - - '@nuxt/kit' - - '@testing-library/jest-dom' - - rollup - - solid-js - - supports-color - - vinxi - - vite - dev: false - - /@total-typescript/ts-reset@0.5.1: - resolution: {integrity: sha512-AqlrT8YA1o7Ff5wPfMOL0pvL+1X+sw60NN6CcOCqs658emD6RfiXhF7Gu9QcfKBH7ELY2nInLhKSCWVoNL70MQ==} + /@total-typescript/ts-reset@0.3.7: + resolution: {integrity: sha512-yXt2BRRVCJVvzWaxac5n0nCXzIrQEBE/MeYlNQ8/Iq7UeelNmm/AdnUAu18ilSS893mbEQ4u6whPt/HvOPc4rw==} dev: true - /@types/babel__core@7.20.5: - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - dependencies: - '@babel/parser': 7.23.9 - '@babel/types': 7.23.9 - '@types/babel__generator': 7.6.8 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.5 - - /@types/babel__generator@7.6.8: - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} - dependencies: - '@babel/types': 7.23.9 - - /@types/babel__template@7.4.4: - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - dependencies: - '@babel/parser': 7.23.9 - '@babel/types': 7.23.9 - - /@types/babel__traverse@7.20.5: - resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} - dependencies: - '@babel/types': 7.23.9 - - /@types/braces@3.0.4: - resolution: {integrity: sha512-0WR3b8eaISjEW7RpZnclONaLFDf7buaowRHdqLp4vLj54AsSAYWfh3DRbfiYJY9XDxMgx1B4sE1Afw2PGpuHOA==} - dev: false - /@types/cookie@0.4.1: resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} dev: false - /@types/cookie@0.5.4: - resolution: {integrity: sha512-7z/eR6O859gyWIAjuvBWFzNURmf2oPBmJlfVWkwehU5nzIyjwBsTh7WMmEEV4JFnHuQ3ex4oyTvfKzcyJVDBNA==} - - /@types/cookie@0.6.0: - resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} - dev: false - - /@types/cors@2.8.17: - resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} + /@types/cors@2.8.13: + resolution: {integrity: sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==} dependencies: - '@types/node': 20.11.19 + '@types/node': 18.17.5 dev: false - /@types/debug@4.1.12: - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + /@types/cross-spawn@6.0.2: + resolution: {integrity: sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw==} dependencies: - '@types/ms': 0.7.34 - - /@types/estree@1.0.5: - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - - /@types/http-errors@2.0.4: - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + '@types/node': 18.17.5 dev: false - /@types/http-proxy@1.17.14: - resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} + /@types/debug@4.1.8: + resolution: {integrity: sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==} dependencies: - '@types/node': 20.11.19 + '@types/ms': 0.7.31 dev: false - /@types/json-schema@7.0.15: - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: false + + /@types/ms@0.7.31: + resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} + dev: false + + /@types/node@18.17.5: + resolution: {integrity: sha512-xNbS75FxH6P4UXTPUJp/zNPq6/xsfdJKussCWNOnz4aULWIRwMgP1LgaB5RiBnMX1DPCYenuqGZfnIAx5mbFLA==} + + /@types/prop-types@15.7.5: + resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} + + /@types/react-dom@18.2.7: + resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==} + dependencies: + '@types/react': 18.2.20 dev: true - /@types/json-stable-stringify@1.0.36: - resolution: {integrity: sha512-b7bq23s4fgBB76n34m2b3RBf6M369B0Z9uRR8aHTMd8kZISRkmDEpPD8hhpYvDFzr3bJCPES96cm3Q6qRNDbQw==} + /@types/react@18.2.20: + resolution: {integrity: sha512-WKNtmsLWJM/3D5mG4U84cysVY31ivmyw85dE84fOCk5Hx78wezB/XEjVPWl2JTZ5FkEeaTJf+VgUAUn3PE7Isw==} + dependencies: + '@types/prop-types': 15.7.5 + '@types/scheduler': 0.16.3 + csstype: 3.1.2 + + /@types/scheduler@0.16.3: + resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} + + /@types/web-bluetooth@0.0.16: + resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} dev: true - /@types/micromatch@4.0.6: - resolution: {integrity: sha512-2eulCHWqjEpk9/vyic4tBhI8a9qQEl6DaK2n/sF7TweX9YESlypgKyhXMDGt4DAOy/jhLPvVrZc8pTDAMsplJA==} - dependencies: - '@types/braces': 3.0.4 - dev: false - - /@types/mime@3.0.4: - resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} - dev: false - - /@types/ms@0.7.34: - resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - - /@types/node@20.11.19: - resolution: {integrity: sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ==} - dependencies: - undici-types: 5.26.5 - - /@types/nodemailer@6.4.14: - resolution: {integrity: sha512-fUWthHO9k9DSdPCSPRqcu6TWhYyxTBg382vlNIttSe9M7XfsT06y0f24KHXtbnijPGGRIcVvdKHTNikOI6qiHA==} - dependencies: - '@types/node': 20.11.19 - dev: true - - /@types/object-hash@3.0.6: - resolution: {integrity: sha512-fOBV8C1FIu2ELinoILQ+ApxcUKz4ngq+IWUYrxSGjXzzjUALijilampwkMgEtJ+h2njAW3pi853QpzNVCHB73w==} - dev: true - - /@types/resolve@1.20.2: - resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} - - /@types/semver@7.5.7: - resolution: {integrity: sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==} - dev: true - - /@types/serve-static@1.15.5: - resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} - dependencies: - '@types/http-errors': 2.0.4 - '@types/mime': 3.0.4 - '@types/node': 20.11.19 - dev: false - - /@types/web-bluetooth@0.0.20: - resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} - dev: true - - /@types/ws@8.5.10: - resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} - dependencies: - '@types/node': 20.11.19 - dev: false - - /@typescript-eslint/eslint-plugin@7.0.2(@typescript-eslint/parser@7.0.2)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-/XtVZJtbaphtdrWjr+CJclaCVGPtOdBpFEnvtNf/jRV0IiEemRrL0qABex/nEt8isYcnFacm3nPHYQwL+Wb7qg==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/parser@5.62.0(eslint@8.31.0)(typescript@4.9.4): + resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.0.2(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 7.0.2 - '@typescript-eslint/type-utils': 7.0.2(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 7.0.2(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 7.0.2 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.4) debug: 4.3.4 - eslint: 8.56.0 - graphemer: 1.4.0 - ignore: 5.3.1 - natural-compare: 1.4.0 - semver: 7.6.0 - ts-api-utils: 1.2.1(typescript@5.3.3) - typescript: 5.3.3 + eslint: 8.31.0 + typescript: 4.9.4 transitivePeerDependencies: - supports-color - dev: true + dev: false - /@typescript-eslint/parser@7.0.2(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-GdwfDglCxSmU+QTS9vhz2Sop46ebNCXpPPvsByK7hu0rFGRHL+AusKQJ7SoN+LbLh6APFpQwHKmDSwN35Z700Q==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + /@typescript-eslint/scope-manager@5.62.0: + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/scope-manager': 7.0.2 - '@typescript-eslint/types': 7.0.2 - '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 7.0.2 - debug: 4.3.4 - eslint: 8.56.0 - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + dev: false - /@typescript-eslint/scope-manager@6.21.0: - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - dev: true + /@typescript-eslint/types@5.62.0: + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: false - /@typescript-eslint/scope-manager@7.0.2: - resolution: {integrity: sha512-l6sa2jF3h+qgN2qUMjVR3uCNGjWw4ahGfzIYsCtFrQJCjhbrDPdiihYT8FnnqFwsWX+20hK592yX9I2rxKTP4g==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 7.0.2 - '@typescript-eslint/visitor-keys': 7.0.2 - dev: true - - /@typescript-eslint/type-utils@7.0.2(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-IKKDcFsKAYlk8Rs4wiFfEwJTQlHcdn8CLwLaxwd6zb8HNiMcQIFX9sWax2k4Cjj7l7mGS5N1zl7RCHOVwHq2VQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.3.3) - '@typescript-eslint/utils': 7.0.2(eslint@8.56.0)(typescript@5.3.3) - debug: 4.3.4 - eslint: 8.56.0 - ts-api-utils: 1.2.1(typescript@5.3.3) - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/types@6.21.0: - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} - engines: {node: ^16.0.0 || >=18.0.0} - dev: true - - /@typescript-eslint/types@7.0.2: - resolution: {integrity: sha512-ZzcCQHj4JaXFjdOql6adYV4B/oFOFjPOC9XYwCaZFRvqN8Llfvv4gSxrkQkd2u4Ci62i2c6W6gkDwQJDaRc4nA==} - engines: {node: ^16.0.0 || >=18.0.0} - dev: true - - /@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3): - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/typescript-estree@5.62.0(typescript@4.9.4): + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.6.0 - ts-api-utils: 1.2.1(typescript@5.3.3) - typescript: 5.3.3 + semver: 7.5.4 + tsutils: 3.21.0(typescript@4.9.4) + typescript: 4.9.4 transitivePeerDependencies: - supports-color - dev: true + dev: false - /@typescript-eslint/typescript-estree@7.0.2(typescript@5.3.3): - resolution: {integrity: sha512-3AMc8khTcELFWcKcPc0xiLviEvvfzATpdPj/DXuOGIdQIIFybf4DMT1vKRbuAEOFMwhWt7NFLXRkbjsvKZQyvw==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + /@typescript-eslint/visitor-keys@5.62.0: + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 7.0.2 - '@typescript-eslint/visitor-keys': 7.0.2 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.6.0 - ts-api-utils: 1.2.1(typescript@5.3.3) - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/utils@6.21.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.7 - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) - eslint: 8.56.0 - semver: 7.6.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/utils@7.0.2(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-PZPIONBIB/X684bhT1XlrkjNZJIEevwkKDsdwfiu1WeqBxYEEdIgVDgm8/bbKHVu+6YOpeRqcfImTdImx/4Bsw==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^8.56.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.7 - '@typescript-eslint/scope-manager': 7.0.2 - '@typescript-eslint/types': 7.0.2 - '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.3.3) - eslint: 8.56.0 - semver: 7.6.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/visitor-keys@6.21.0: - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/types': 5.62.0 eslint-visitor-keys: 3.4.3 - dev: true - - /@typescript-eslint/visitor-keys@7.0.2: - resolution: {integrity: sha512-8Y+YiBmqPighbm5xA2k4wKTxRzx9EkBu7Rlw+WHqMvRJ3RPz/BMBO9b2ru0LUNmXg120PHUXD5+SWFy2R8DqlQ==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 7.0.2 - eslint-visitor-keys: 3.4.3 - dev: true - - /@ungap/structured-clone@1.2.0: - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - dev: true - - /@vercel/nft@0.24.4: - resolution: {integrity: sha512-KjYAZty7boH5fi5udp6p+lNu6nawgs++pHW+3koErMgbRkkHuToGX/FwjN5clV1FcaM3udfd4zW/sUapkMgpZw==} - engines: {node: '>=16'} - hasBin: true - dependencies: - '@mapbox/node-pre-gyp': 1.0.11 - '@rollup/pluginutils': 4.2.1 - acorn: 8.11.3 - async-sema: 3.1.1 - bindings: 1.5.0 - estree-walker: 2.0.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - micromatch: 4.0.5 - node-gyp-build: 4.8.0 - resolve-from: 5.0.0 - transitivePeerDependencies: - - encoding - - supports-color - dev: false - - /@vinxi/devtools@0.2.0(@babel/core@7.23.9)(preact@10.19.6)(rollup@3.29.4)(vite@5.1.1): - resolution: {integrity: sha512-LpQp5zbiBhV4eo2w6AiJFtpZZj4LaRBOnzggIPTeSJYvgrxRMAqe/34Har3vVo+b7sPOjxFbE1zHZhLzaAcidw==} - dependencies: - '@preact/preset-vite': 2.8.1(@babel/core@7.23.9)(preact@10.19.6)(vite@5.1.1) - '@solidjs/router': 0.8.4(solid-js@1.8.15) - birpc: 0.2.17 - solid-js: 1.8.15 - vite-plugin-inspect: 0.7.42(rollup@3.29.4)(vite@5.1.1) - vite-plugin-solid: 2.10.1(solid-js@1.8.15)(vite@5.1.1) - ws: 8.16.0 - transitivePeerDependencies: - - '@babel/core' - - '@nuxt/kit' - - '@testing-library/jest-dom' - - bufferutil - - preact - - rollup - - supports-color - - utf-8-validate - - vite - dev: false - - /@vinxi/listhen@1.5.6: - resolution: {integrity: sha512-WSN1z931BtasZJlgPp704zJFnQFRg7yzSjkm3MzAWQYe4uXFXlFr1hc5Ac2zae5/HDOz5x1/zDM5Cb54vTCnWw==} - hasBin: true - dependencies: - '@parcel/watcher': 2.4.0 - '@parcel/watcher-wasm': 2.3.0 - citty: 0.1.6 - clipboardy: 4.0.0 - consola: 3.2.3 - defu: 6.1.4 - get-port-please: 3.1.2 - h3: 1.10.1 - http-shutdown: 1.2.2 - jiti: 1.21.0 - mlly: 1.6.0 - node-forge: 1.3.1 - pathe: 1.1.2 - std-env: 3.7.0 - ufo: 1.4.0 - untun: 0.1.3 - uqr: 0.1.2 - dev: false - - /@vinxi/plugin-directives@0.2.0(vinxi@0.3.3): - resolution: {integrity: sha512-DoYuIuvdylU+0XNOipvcbw08XDBBbEksc3euCsbApNVpmQ/mC+2CjoErHtjb4zX1RqNwe1sJ8awMK6fKUMLGRA==} - peerDependencies: - vinxi: ^0.2.0 - dependencies: - '@babel/parser': 7.23.9 - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) - acorn-loose: 8.4.0 - acorn-typescript: 1.4.13(acorn@8.11.3) - astring: 1.8.6 - magicast: 0.2.11 - recast: 0.23.4 - tslib: 2.6.2 - vinxi: 0.3.3(@types/node@20.11.19)(preact@10.19.6)(rollup@3.29.4)(sass@1.71.1) - dev: false - - /@vinxi/server-components@0.2.0(vinxi@0.3.3): - resolution: {integrity: sha512-U3z6pxK5CWBxaUmyg7zdDMTl1AMa47MpYCUcs0QVOz/C8kKlT6C9Ozh5pZWuzAO0cTeueNpQumDWhQ4YTXTsZw==} - peerDependencies: - vinxi: ^0.2.0 - dependencies: - '@vinxi/plugin-directives': 0.2.0(vinxi@0.3.3) - acorn: 8.11.3 - acorn-loose: 8.4.0 - acorn-typescript: 1.4.13(acorn@8.11.3) - astring: 1.8.6 - magicast: 0.2.11 - recast: 0.23.4 - vinxi: 0.3.3(@types/node@20.11.19)(preact@10.19.6)(rollup@3.29.4)(sass@1.71.1) - dev: false - - /@vinxi/server-functions@0.2.1(vinxi@0.3.3): - resolution: {integrity: sha512-ir06Q6nEpJFU1uXqHdKE2OXqZFjChAIgAHpCJzMunHiutRNyYTJ7ZhbFCUk5xOx+StMpWKtqOv72TDeP/xTLtA==} - peerDependencies: - vinxi: ^0.2.1 - dependencies: - '@vinxi/plugin-directives': 0.2.0(vinxi@0.3.3) - acorn: 8.11.3 - acorn-loose: 8.4.0 - acorn-typescript: 1.4.13(acorn@8.11.3) - astring: 1.8.6 - magicast: 0.2.11 - recast: 0.23.4 - vinxi: 0.3.3(@types/node@20.11.19)(preact@10.19.6)(rollup@3.29.4)(sass@1.71.1) - dev: false - - /abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} dev: false /accepts@1.3.8: @@ -3254,43 +666,20 @@ packages: dependencies: mime-types: 2.1.35 negotiator: 0.6.3 + dev: false - /acorn-jsx@5.3.2(acorn@8.11.3): + /acorn-jsx@5.3.2(acorn@8.10.0): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.11.3 + acorn: 8.10.0 - /acorn-loose@8.4.0: - resolution: {integrity: sha512-M0EUka6rb+QC4l9Z3T0nJEzNOO7JcoJlYMrBlyBCiFSXRyxjLKayd4TbQs2FDRWQU1h9FR7QVNHt+PEaoNL5rQ==} - engines: {node: '>=0.4.0'} - dependencies: - acorn: 8.11.3 - dev: false - - /acorn-typescript@1.4.13(acorn@8.11.3): - resolution: {integrity: sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==} - peerDependencies: - acorn: '>=8.9.0' - dependencies: - acorn: 8.11.3 - dev: false - - /acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + /acorn@8.10.0: + resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} engines: {node: '>=0.4.0'} hasBin: true - /agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - dependencies: - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: false - /ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: @@ -3298,43 +687,17 @@ packages: fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 - dev: true - - /ansi-align@3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} - dependencies: - string-width: 4.2.3 - dev: false - - /ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - dev: false /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - /ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} - - /ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - /ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} dependencies: color-convert: 2.0.1 - /ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - /any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} dev: true @@ -3346,43 +709,6 @@ packages: normalize-path: 3.0.0 picomatch: 2.3.1 - /aproba@2.0.0: - resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - dev: false - - /archiver-utils@4.0.1: - resolution: {integrity: sha512-Q4Q99idbvzmgCTEAAhi32BkOyq8iVI5EwdO0PmBDSGIzzjYNdcFn7Q7k3OzbLy4kLUPXfJtG6fO2RjftXbobBg==} - engines: {node: '>= 12.0.0'} - dependencies: - glob: 8.1.0 - graceful-fs: 4.2.11 - lazystream: 1.0.1 - lodash: 4.17.21 - normalize-path: 3.0.0 - readable-stream: 3.6.2 - dev: false - - /archiver@6.0.1: - resolution: {integrity: sha512-CXGy4poOLBKptiZH//VlWdFuUC1RESbdZjGjILwBuZ73P7WkAUN0htfSfBq/7k6FRFlpu7bg4JOkj1vU9G6jcQ==} - engines: {node: '>= 12.0.0'} - dependencies: - archiver-utils: 4.0.1 - async: 3.2.5 - buffer-crc32: 0.2.13 - readable-stream: 3.6.2 - readdir-glob: 1.1.3 - tar-stream: 3.1.7 - zip-stream: 5.0.1 - dev: false - - /are-we-there-yet@2.0.0: - resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} - engines: {node: '>=10'} - dependencies: - delegates: 1.0.0 - readable-stream: 3.6.2 - dev: false - /arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} dev: true @@ -3390,296 +716,177 @@ packages: /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + /aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + dependencies: + dequal: 2.0.3 + dev: false + + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + dependencies: + call-bind: 1.0.2 + is-array-buffer: 3.0.2 + dev: false + + /array-includes@3.1.6: + resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + get-intrinsic: 1.2.1 + is-string: 1.0.7 + dev: false + /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - dev: true + dev: false - /assert@2.1.0: - resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} + /array.prototype.findlastindex@1.2.2: + resolution: {integrity: sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 - is-nan: 1.3.2 - object-is: 1.1.5 - object.assign: 4.1.5 - util: 0.12.5 + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.1 dev: false - /ast-types@0.16.1: - resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} - engines: {node: '>=4'} + /array.prototype.flat@1.3.1: + resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} + engines: {node: '>= 0.4'} dependencies: - tslib: 2.6.2 + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + es-shim-unscopables: 1.0.0 dev: false - /astring@1.8.6: - resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} - hasBin: true + /array.prototype.flatmap@1.3.1: + resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + es-shim-unscopables: 1.0.0 dev: false - /async-sema@3.1.1: - resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} + /array.prototype.tosorted@1.1.1: + resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.1 dev: false - /async@3.2.5: - resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + /arraybuffer.prototype.slice@1.0.1: + resolution: {integrity: sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.0 + get-intrinsic: 1.2.1 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 dev: false - /autoprefixer@10.4.17(postcss@8.4.35): - resolution: {integrity: sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==} + /ast-types-flow@0.0.7: + resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} + dev: false + + /autoprefixer@10.4.15(postcss@8.4.27): + resolution: {integrity: sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.23.0 - caniuse-lite: 1.0.30001589 - fraction.js: 4.3.7 + browserslist: 4.21.10 + caniuse-lite: 1.0.30001520 + fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.35 + postcss: 8.4.27 postcss-value-parser: 4.2.0 dev: true - /available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} - dependencies: - possible-typed-array-names: 1.0.0 dev: false - /axios@0.25.0(debug@4.3.4): - resolution: {integrity: sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==} - dependencies: - follow-redirects: 1.15.5(debug@4.3.4) - transitivePeerDependencies: - - debug - - /b4a@1.6.6: - resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} + /axe-core@4.7.2: + resolution: {integrity: sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==} + engines: {node: '>=4'} dev: false - /babel-plugin-jsx-dom-expressions@0.37.17(@babel/core@7.23.9): - resolution: {integrity: sha512-1bv8rOTzs6TR3DVyVZ7ElxyPEhnS556FMWRIsB3gBPfkn/cSKaLvXLGk+X1lvI+SzcUo4G+UcmJrn3vr1ig8mQ==} - peerDependencies: - '@babel/core': ^7.20.12 + /axobject-query@3.2.1: + resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} dependencies: - '@babel/core': 7.23.9 - '@babel/helper-module-imports': 7.18.6 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.9) - '@babel/types': 7.23.9 - html-entities: 2.3.3 - validate-html-nesting: 1.2.2 - - /babel-plugin-polyfill-corejs2@0.4.8(@babel/core@7.23.9): - resolution: {integrity: sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.9 - '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - /babel-plugin-polyfill-corejs3@0.9.0(@babel/core@7.23.9): - resolution: {integrity: sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9) - core-js-compat: 3.36.0 - transitivePeerDependencies: - - supports-color - - /babel-plugin-polyfill-regenerator@0.5.5(@babel/core@7.23.9): - resolution: {integrity: sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9) - transitivePeerDependencies: - - supports-color - - /babel-plugin-transform-hook-names@1.0.2(@babel/core@7.23.9): - resolution: {integrity: sha512-5gafyjyyBTTdX/tQQ0hRgu4AhNHG/hqWi0ZZmg2xvs2FgRkJXzDNKBZCyoYqgFkovfDrgM8OoKg8karoUvWeCw==} - peerDependencies: - '@babel/core': ^7.12.10 - dependencies: - '@babel/core': 7.23.9 + dequal: 2.0.3 dev: false - /babel-preset-solid@1.8.15(@babel/core@7.23.9): - resolution: {integrity: sha512-P2yOQbB7Hn/m4YvpXV6ExHIMcgNWXWXcvY4kJzG3yqAB3hKS58OZRsvJ7RObsZWqXRvZTITBIwnpK0BMGu+ZIQ==} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.9 - babel-plugin-jsx-dom-expressions: 0.37.17(@babel/core@7.23.9) - /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - /bare-events@2.2.0: - resolution: {integrity: sha512-Yyyqff4PIFfSuthCZqLlPISTWHmnQxoPuAvkmgzsJEmG3CesdIv6Xweayl0JkCZJSB2yYIdJyEz97tpxNhgjbg==} - requiresBuild: true - dev: false - optional: true - /base64id@2.0.0: resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} engines: {node: ^4.5.0 || >= 5.9} dev: false - /big-integer@1.6.52: - resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} - engines: {node: '>=0.6'} - /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} - /bindings@1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - dependencies: - file-uri-to-path: 1.0.0 - dev: false - - /birpc@0.2.17: - resolution: {integrity: sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg==} - dev: false - - /boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - dev: false - - /boxen@7.1.1: - resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} - engines: {node: '>=14.16'} - dependencies: - ansi-align: 3.0.1 - camelcase: 7.0.1 - chalk: 5.3.0 - cli-boxes: 3.0.0 - string-width: 5.1.2 - type-fest: 2.19.0 - widest-line: 4.0.1 - wrap-ansi: 8.1.0 - dev: false - - /bplist-parser@0.2.0: - resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} - engines: {node: '>= 5.10.0'} - dependencies: - big-integer: 1.6.52 - /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - /brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - dependencies: - balanced-match: 1.0.2 - /braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} dependencies: fill-range: 7.0.1 - /browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + /browserslist@4.21.10: + resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001589 - electron-to-chromium: 1.4.679 - node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.23.0) + caniuse-lite: 1.0.30001520 + electron-to-chromium: 1.4.490 + node-releases: 2.0.13 + update-browserslist-db: 1.0.11(browserslist@4.21.10) + dev: true - /buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - dev: false - - /buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - - /buffer-writer@2.0.0: - resolution: {integrity: sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==} - engines: {node: '>=4'} - - /builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - - /bundle-name@3.0.0: - resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} - engines: {node: '>=12'} + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: - run-applescript: 5.0.0 - - /bytes@3.0.0: - resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} - engines: {node: '>= 0.8'} - - /c12@1.9.0: - resolution: {integrity: sha512-7KTCZXdIbOA2hLRQ+1KzJ15Qp9Wn58one74dkihMVp2H6EzKTa3OYBy0BSfS1CCcmxYyqeX8L02m40zjQ+dstg==} - dependencies: - chokidar: 3.6.0 - confbox: 0.1.3 - defu: 6.1.4 - dotenv: 16.4.5 - giget: 1.2.1 - jiti: 1.21.0 - mlly: 1.6.0 - ohash: 1.1.3 - pathe: 1.1.2 - perfect-debounce: 1.0.0 - pkg-types: 1.0.3 - rc9: 2.1.1 - dev: false - - /call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} - engines: {node: '>= 0.4'} - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - set-function-length: 1.2.1 + function-bind: 1.1.1 + get-intrinsic: 1.2.1 dev: false /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - dev: true /camelcase-css@2.0.1: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} dev: true - /camelcase@7.0.1: - resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} - engines: {node: '>=14.16'} - - /caniuse-lite@1.0.30001589: - resolution: {integrity: sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==} - - /chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 + /caniuse-lite@1.0.30001520: + resolution: {integrity: sha512-tahF5O9EiiTzwTUqAeFjIZbn4Dnqxzz7ktrgGlMYNLH43Ul26IgTMH/zvL3DG0lZxBYnlT04axvInszUsZULdA==} /chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -3687,14 +894,9 @@ packages: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - dev: true - /chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - - /chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 @@ -3705,168 +907,47 @@ packages: normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.3 + fsevents: 2.3.2 - /chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} + /classnames@2.3.2: + resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==} dev: false - /citty@0.1.6: - resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} - dependencies: - consola: 3.2.3 + /client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} dev: false - /classnames@2.5.1: - resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} + /clsx@1.2.1: + resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} + engines: {node: '>=6'} dev: false - /cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} + /code-block-writer@12.0.0: + resolution: {integrity: sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==} dev: false - /cli-color@2.0.3: - resolution: {integrity: sha512-OkoZnxyC4ERN3zLzZaY9Emb7f/MhBOIpePv0Ycok0fJYT+Ouo00UBEIwsVsr0yoow++n5YWlSUgST9GKhNHiRQ==} - engines: {node: '>=0.10'} - dependencies: - d: 1.0.1 - es5-ext: 0.10.62 - es6-iterator: 2.0.3 - memoizee: 0.4.15 - timers-ext: 0.1.7 - dev: true - - /clipboardy@4.0.0: - resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} - engines: {node: '>=18'} - dependencies: - execa: 8.0.1 - is-wsl: 3.1.0 - is64bit: 2.0.0 - dev: false - - /cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - - /cluster-key-slot@1.1.2: - resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} - engines: {node: '>=0.10.0'} - dev: false - - /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - dependencies: - color-name: 1.1.3 - /color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 - /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - /color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true - dev: false - /colors@1.4.0: resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} engines: {node: '>=0.1.90'} dev: false - /commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - /commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} dev: true - /commander@9.5.0: - resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} - engines: {node: ^12.20.0 || >=14} - dev: true - - /commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - - /compress-commons@5.0.1: - resolution: {integrity: sha512-MPh//1cERdLtqwO3pOFLeXtpuai0Y2WCd5AhtKxznqM7WtaMYaOEMSgn45d9D10sIHSfIKE603HlOp8OPGrvag==} - engines: {node: '>= 12.0.0'} - dependencies: - crc-32: 1.2.2 - crc32-stream: 5.0.0 - normalize-path: 3.0.0 - readable-stream: 3.6.2 - dev: false - - /compressible@2.0.18: - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} - engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.52.0 - - /compression@1.7.4: - resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} - engines: {node: '>= 0.8.0'} - dependencies: - accepts: 1.3.8 - bytes: 3.0.0 - compressible: 2.0.18 - debug: 2.6.9 - on-headers: 1.0.2 - safe-buffer: 5.1.2 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - /confbox@0.1.3: - resolution: {integrity: sha512-eH3ZxAihl1PhKfpr4VfEN6/vUd87fmgb6JkldHgg/YR6aEBhW63qUDgzP2Y6WM0UumdsYp5H3kibalXAdHfbgg==} - dev: false - - /connect@3.7.0: - resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} - engines: {node: '>= 0.10.0'} - dependencies: - debug: 2.6.9 - finalhandler: 1.1.2 - parseurl: 1.3.3 - utils-merge: 1.0.1 - transitivePeerDependencies: - - supports-color - - /consola@3.2.3: - resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} - engines: {node: ^14.18.0 || >=16.10.0} - dev: false - - /console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - dev: false - - /convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - /cookie-es@1.0.0: - resolution: {integrity: sha512-mWYvfOLrfEc996hlKcdABeIiPHUPC6DM2QYZdGGOvhOTbA3tjm2eBwqlJpoFdjC89NI4Qt6h0Pu06Mp+1Pj5OQ==} - dev: false - /cookie@0.4.2: resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} engines: {node: '>= 0.6'} @@ -3877,27 +958,6 @@ packages: engines: {node: '>= 0.6'} dev: false - /cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} - dev: false - - /copy-anything@3.0.5: - resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} - engines: {node: '>=12.13'} - dependencies: - is-what: 4.1.16 - dev: true - - /core-js-compat@3.36.0: - resolution: {integrity: sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==} - dependencies: - browserslist: 4.23.0 - - /core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - dev: false - /cors@2.8.5: resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} engines: {node: '>= 0.10'} @@ -3906,20 +966,6 @@ packages: vary: 1.1.2 dev: false - /crc-32@1.2.2: - resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} - engines: {node: '>=0.8'} - hasBin: true - dev: false - - /crc32-stream@5.0.0: - resolution: {integrity: sha512-B0EPa1UK+qnpBZpG+7FgPCu0J2ETLpXq09o9BkLkEAhdB6Z61Qo4pJ3JYu0c+Qi+/SAL7QThqnzS06pmSSyZaw==} - engines: {node: '>= 12.0.0'} - dependencies: - crc-32: 1.2.2 - readable-stream: 3.6.2 - dev: false - /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -3928,57 +974,29 @@ packages: shebang-command: 2.0.0 which: 2.0.2 - /crossws@0.1.1: - resolution: {integrity: sha512-c9c/o7bS3OjsdpSkvexpka0JNlesBF2JU9B2V1yNsYGwRbAafxhJQ7VI9b48D5bpONz/oxbPGMzBojy9sXoQIQ==} - dev: false - - /css-select@5.1.0: - resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} - dependencies: - boolbase: 1.0.0 - css-what: 6.1.0 - domhandler: 5.0.3 - domutils: 3.1.0 - nth-check: 2.1.1 - dev: false - - /css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} - dev: false - /cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} hasBin: true dev: true - /csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + /csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} - /d@1.0.1: - resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==} - dependencies: - es5-ext: 0.10.62 - type: 1.2.0 - dev: true - - /dax-sh@0.39.2: - resolution: {integrity: sha512-gpuGEkBQM+5y6p4cWaw9+ePy5TNon+fdwFVtTI8leU3UhwhsBfPewRxMXGuQNC+M2b/MDGMlfgpqynkcd0C3FQ==} - dependencies: - '@deno/shim-deno': 0.19.1 - undici-types: 5.28.3 + /damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} dev: false - /debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: supports-color: '*' peerDependenciesMeta: supports-color: optional: true dependencies: - ms: 2.0.0 + ms: 2.1.3 + dev: false /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} @@ -3993,321 +1011,67 @@ packages: /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - dev: true - /deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - - /default-browser-id@3.0.0: - resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} - engines: {node: '>=12'} - dependencies: - bplist-parser: 0.2.0 - untildify: 4.0.0 - - /default-browser@4.0.0: - resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} - engines: {node: '>=14.16'} - dependencies: - bundle-name: 3.0.0 - default-browser-id: 3.0.0 - execa: 7.2.0 - titleize: 3.0.0 - - /define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + /define-properties@1.2.0: + resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} engines: {node: '>= 0.4'} dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - gopd: 1.0.1 - dev: false - - /define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - - /define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} - - /define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.4 - has-property-descriptors: 1.0.2 + has-property-descriptors: 1.0.0 object-keys: 1.1.1 dev: false - /defu@6.1.4: - resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} - dev: false - - /delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - dev: false - - /denque@2.1.0: - resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} - engines: {node: '>=0.10'} - dev: false - - /depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - dev: false - /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} - - /destr@2.0.3: - resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} - dev: false - - /destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - dev: false - - /detect-libc@1.0.3: - resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} - engines: {node: '>=0.10'} - hasBin: true - dev: false - - /detect-libc@2.0.2: - resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} - engines: {node: '>=8'} dev: false /didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} dev: true - /difflib@0.2.4: - resolution: {integrity: sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==} - dependencies: - heap: 0.2.7 - dev: true - /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} dependencies: path-type: 4.0.0 - dev: true + dev: false /dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} dev: true + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: false + /doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 - dev: true - /dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - entities: 4.5.0 - dev: false - - /domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - dev: false - - /domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} - dependencies: - domelementtype: 2.3.0 - dev: false - - /domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} - dependencies: - dom-serializer: 2.0.0 - domelementtype: 2.3.0 - domhandler: 5.0.3 - dev: false - - /dot-prop@8.0.2: - resolution: {integrity: sha512-xaBe6ZT4DHPkg0k4Ytbvn5xoxgpG0jOS1dYxSOwAHPuNLjP3/OzN0gH55SrLqpx8cBfSaVt91lXYkApjb+nYdQ==} - engines: {node: '>=16'} - dependencies: - type-fest: 3.13.1 - dev: false - - /dotenv@16.4.5: - resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + /dotenv@16.3.1: + resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} engines: {node: '>=12'} - - /dreamopt@0.8.0: - resolution: {integrity: sha512-vyJTp8+mC+G+5dfgsY+r3ckxlz+QMX40VjPQsZc5gxVAxLmi64TBoVkP54A/pRAXMXsbu2GMMBrZPxNv23waMg==} - engines: {node: '>=0.4.0'} - dependencies: - wordwrap: 1.0.0 dev: true - /drizzle-kit@0.20.14: - resolution: {integrity: sha512-0fHv3YIEaUcSVPSGyaaBfOi9bmpajjhbJNdPsRMIUvYdLVxBu9eGjH8mRc3Qk7HVmEidFc/lhG1YyJhoXrn5yA==} - hasBin: true - dependencies: - '@drizzle-team/studio': 0.0.39 - '@esbuild-kit/esm-loader': 2.6.5 - camelcase: 7.0.1 - chalk: 5.3.0 - commander: 9.5.0 - env-paths: 3.0.0 - esbuild: 0.19.12 - esbuild-register: 3.5.0(esbuild@0.19.12) - glob: 8.1.0 - hanji: 0.0.5 - json-diff: 0.9.0 - minimatch: 7.4.6 - semver: 7.6.0 - zod: 3.22.4 - transitivePeerDependencies: - - supports-color + /electron-to-chromium@1.4.490: + resolution: {integrity: sha512-6s7NVJz+sATdYnIwhdshx/N/9O6rvMxmhVoDSDFdj6iA45gHR8EQje70+RYsF4GeB+k0IeNSBnP7yG9ZXJFr7A==} dev: true - /drizzle-orm@0.29.4(pg@8.11.3)(postgres@3.4.3): - resolution: {integrity: sha512-ZnSM8TAxFhzH7p1s3+w3pRE/eKaOeNkH9SKitm717pubDVVcV2I0BCDBPGKV+pe02+wMfw37ntlTcCyo2rA3IA==} - peerDependencies: - '@aws-sdk/client-rds-data': '>=3' - '@cloudflare/workers-types': '>=3' - '@libsql/client': '*' - '@neondatabase/serverless': '>=0.1' - '@opentelemetry/api': ^1.4.1 - '@planetscale/database': '>=1' - '@types/better-sqlite3': '*' - '@types/pg': '*' - '@types/react': '>=18' - '@types/sql.js': '*' - '@vercel/postgres': '*' - better-sqlite3: '>=7' - bun-types: '*' - expo-sqlite: '>=13.2.0' - knex: '*' - kysely: '*' - mysql2: '>=2' - pg: '>=8' - postgres: '>=3' - react: '>=18' - sql.js: '>=1' - sqlite3: '>=5' - peerDependenciesMeta: - '@aws-sdk/client-rds-data': - optional: true - '@cloudflare/workers-types': - optional: true - '@libsql/client': - optional: true - '@neondatabase/serverless': - optional: true - '@opentelemetry/api': - optional: true - '@planetscale/database': - optional: true - '@types/better-sqlite3': - optional: true - '@types/pg': - optional: true - '@types/react': - optional: true - '@types/sql.js': - optional: true - '@vercel/postgres': - optional: true - better-sqlite3: - optional: true - bun-types: - optional: true - expo-sqlite: - optional: true - knex: - optional: true - kysely: - optional: true - mysql2: - optional: true - pg: - optional: true - postgres: - optional: true - react: - optional: true - sql.js: - optional: true - sqlite3: - optional: true - dependencies: - pg: 8.11.3 - postgres: 3.4.3 - dev: false - - /drizzle-zod@0.5.1(drizzle-orm@0.29.4)(zod@3.22.4): - resolution: {integrity: sha512-C/8bvzUH/zSnVfwdSibOgFjLhtDtbKYmkbPbUCq46QZyZCH6kODIMSOgZ8R7rVjoI+tCj3k06MRJMDqsIeoS4A==} - peerDependencies: - drizzle-orm: '>=0.23.13' - zod: '*' - dependencies: - drizzle-orm: 0.29.4(pg@8.11.3)(postgres@3.4.3) - zod: 3.22.4 - dev: false - - /dts-buddy@0.2.5: - resolution: {integrity: sha512-66HTWHyXS3JwgpRwcu88rsDyZfPUb0oPYmiNg5f4BgCAFTVorJXpygf339QyXOXX1PuqHpvB+qo7O+8Ni1vXUQ==} - hasBin: true - dependencies: - '@jridgewell/source-map': 0.3.5 - '@jridgewell/sourcemap-codec': 1.4.15 - globrex: 0.1.2 - kleur: 4.1.5 - locate-character: 3.0.0 - magic-string: 0.30.7 - sade: 1.8.1 - tiny-glob: 0.2.9 - ts-api-utils: 1.2.1(typescript@5.0.4) - typescript: 5.0.4 - dev: false - - /duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - dev: false - - /eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - - /ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - - /electron-to-chromium@1.4.679: - resolution: {integrity: sha512-NhQMsz5k0d6m9z3qAxnsOR/ebal4NAGsrNVRwcDo4Kc/zQ7KdsTKZUxZoygHcVRb0QDW3waEDIcE3isZ79RP6g==} - - /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: false - /encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - - /engine.io-client@6.5.3: - resolution: {integrity: sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q==} + /engine.io-client@6.5.2: + resolution: {integrity: sha512-CQZqbrpEYnrpGqC07a9dJDz4gePZUgTPMU3NKJPSeQOyw27Tst4Pl3FemKoFGAlHzgZmKjoRmiJvbWfhCXUlIg==} dependencies: '@socket.io/component-emitter': 3.1.0 debug: 4.3.4 - engine.io-parser: 5.2.2 + engine.io-parser: 5.2.1 ws: 8.11.0 xmlhttprequest-ssl: 2.0.0 transitivePeerDependencies: @@ -4316,24 +1080,24 @@ packages: - utf-8-validate dev: false - /engine.io-parser@5.2.2: - resolution: {integrity: sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==} + /engine.io-parser@5.2.1: + resolution: {integrity: sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==} engines: {node: '>=10.0.0'} dev: false - /engine.io@6.5.4: - resolution: {integrity: sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==} + /engine.io@6.5.2: + resolution: {integrity: sha512-IXsMcGpw/xRfjra46sVZVHiSWo/nJ/3g1337q9KNXtS6YRzbW5yIzTCb9DjhrBe7r3GZQR0I4+nq+4ODk5g/cA==} engines: {node: '>=10.2.0'} dependencies: '@types/cookie': 0.4.1 - '@types/cors': 2.8.17 - '@types/node': 20.11.19 + '@types/cors': 2.8.13 + '@types/node': 18.17.5 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.4.2 cors: 2.8.5 debug: 4.3.4 - engine.io-parser: 5.2.2 + engine.io-parser: 5.2.1 ws: 8.11.0 transitivePeerDependencies: - bufferutil @@ -4341,233 +1105,282 @@ packages: - utf-8-validate dev: false - /entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - dev: false - - /env-paths@3.0.0: - resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - - /error-stack-parser-es@0.1.1: - resolution: {integrity: sha512-g/9rfnvnagiNf+DRMHEVGuGuIBlCIMDFoTA616HaP2l9PlCjGjVhD98PNbVSJvmK4TttqT5mV5tInMhoFgi+aA==} - - /error-stack-parser@2.1.4: - resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + /enhanced-resolve@5.15.0: + resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} + engines: {node: '>=10.13.0'} dependencies: - stackframe: 1.3.4 + graceful-fs: 4.2.11 + tapable: 2.2.1 dev: false - /es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + /es-abstract@1.22.1: + resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.4 + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.1 + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.2.1 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.12 + is-weakref: 1.0.2 + object-inspect: 1.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.0 + safe-array-concat: 1.0.0 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.7 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.11 dev: false - /es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + /es-set-tostringtag@2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + has: 1.0.3 + has-tostringtag: 1.0.0 dev: false - /es-module-lexer@1.4.1: - resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} - - /es5-ext@0.10.62: - resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==} - engines: {node: '>=0.10'} - requiresBuild: true + /es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} dependencies: - es6-iterator: 2.0.3 - es6-symbol: 3.1.3 - next-tick: 1.1.0 - dev: true + has: 1.0.3 + dev: false - /es6-iterator@2.0.3: - resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} dependencies: - d: 1.0.1 - es5-ext: 0.10.62 - es6-symbol: 3.1.3 - dev: true + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: false - /es6-symbol@3.1.3: - resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==} - dependencies: - d: 1.0.1 - ext: 1.7.0 - dev: true - - /es6-weak-map@2.0.3: - resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} - dependencies: - d: 1.0.1 - es5-ext: 0.10.62 - es6-iterator: 2.0.3 - es6-symbol: 3.1.3 - dev: true - - /esbuild-plugin-solid@0.5.0(esbuild@0.17.19)(solid-js@1.8.15): - resolution: {integrity: sha512-ITK6n+0ayGFeDVUZWNMxX+vLsasEN1ILrg4pISsNOQ+mq4ljlJJiuXotInd+HE0MzwTcA9wExT1yzDE2hsqPsg==} - peerDependencies: - esbuild: '>=0.12' - solid-js: '>= 1.0' - dependencies: - '@babel/core': 7.23.9 - '@babel/preset-typescript': 7.23.3(@babel/core@7.23.9) - babel-preset-solid: 1.8.15(@babel/core@7.23.9) - esbuild: 0.17.19 - solid-js: 1.8.15 - transitivePeerDependencies: - - supports-color - - /esbuild-register@3.5.0(esbuild@0.19.12): - resolution: {integrity: sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==} - peerDependencies: - esbuild: '>=0.12 <1' - dependencies: - debug: 4.3.4 - esbuild: 0.19.12 - transitivePeerDependencies: - - supports-color - dev: true - - /esbuild@0.17.19: - resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.17.19 - '@esbuild/android-arm64': 0.17.19 - '@esbuild/android-x64': 0.17.19 - '@esbuild/darwin-arm64': 0.17.19 - '@esbuild/darwin-x64': 0.17.19 - '@esbuild/freebsd-arm64': 0.17.19 - '@esbuild/freebsd-x64': 0.17.19 - '@esbuild/linux-arm': 0.17.19 - '@esbuild/linux-arm64': 0.17.19 - '@esbuild/linux-ia32': 0.17.19 - '@esbuild/linux-loong64': 0.17.19 - '@esbuild/linux-mips64el': 0.17.19 - '@esbuild/linux-ppc64': 0.17.19 - '@esbuild/linux-riscv64': 0.17.19 - '@esbuild/linux-s390x': 0.17.19 - '@esbuild/linux-x64': 0.17.19 - '@esbuild/netbsd-x64': 0.17.19 - '@esbuild/openbsd-x64': 0.17.19 - '@esbuild/sunos-x64': 0.17.19 - '@esbuild/win32-arm64': 0.17.19 - '@esbuild/win32-ia32': 0.17.19 - '@esbuild/win32-x64': 0.17.19 - - /esbuild@0.18.20: - resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.18.20 - '@esbuild/android-arm64': 0.18.20 - '@esbuild/android-x64': 0.18.20 - '@esbuild/darwin-arm64': 0.18.20 - '@esbuild/darwin-x64': 0.18.20 - '@esbuild/freebsd-arm64': 0.18.20 - '@esbuild/freebsd-x64': 0.18.20 - '@esbuild/linux-arm': 0.18.20 - '@esbuild/linux-arm64': 0.18.20 - '@esbuild/linux-ia32': 0.18.20 - '@esbuild/linux-loong64': 0.18.20 - '@esbuild/linux-mips64el': 0.18.20 - '@esbuild/linux-ppc64': 0.18.20 - '@esbuild/linux-riscv64': 0.18.20 - '@esbuild/linux-s390x': 0.18.20 - '@esbuild/linux-x64': 0.18.20 - '@esbuild/netbsd-x64': 0.18.20 - '@esbuild/openbsd-x64': 0.18.20 - '@esbuild/sunos-x64': 0.18.20 - '@esbuild/win32-arm64': 0.18.20 - '@esbuild/win32-ia32': 0.18.20 - '@esbuild/win32-x64': 0.18.20 - - /esbuild@0.19.12: - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/aix-ppc64': 0.19.12 - '@esbuild/android-arm': 0.19.12 - '@esbuild/android-arm64': 0.19.12 - '@esbuild/android-x64': 0.19.12 - '@esbuild/darwin-arm64': 0.19.12 - '@esbuild/darwin-x64': 0.19.12 - '@esbuild/freebsd-arm64': 0.19.12 - '@esbuild/freebsd-x64': 0.19.12 - '@esbuild/linux-arm': 0.19.12 - '@esbuild/linux-arm64': 0.19.12 - '@esbuild/linux-ia32': 0.19.12 - '@esbuild/linux-loong64': 0.19.12 - '@esbuild/linux-mips64el': 0.19.12 - '@esbuild/linux-ppc64': 0.19.12 - '@esbuild/linux-riscv64': 0.19.12 - '@esbuild/linux-s390x': 0.19.12 - '@esbuild/linux-x64': 0.19.12 - '@esbuild/netbsd-x64': 0.19.12 - '@esbuild/openbsd-x64': 0.19.12 - '@esbuild/sunos-x64': 0.19.12 - '@esbuild/win32-arm64': 0.19.12 - '@esbuild/win32-ia32': 0.19.12 - '@esbuild/win32-x64': 0.19.12 - - /escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} - - /escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - - /escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} + dev: true /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - dev: true - /escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} + /eslint-config-next@13.1.1(eslint@8.31.0)(typescript@4.9.4): + resolution: {integrity: sha512-/5S2XGWlGaiqrRhzpn51ux5JUSLwx8PVK2keLi5xk7QmhfYB8PqE6R6SlVw6hgnf/VexvUXSrlNJ/su00NhtHQ==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@next/eslint-plugin-next': 13.1.1 + '@rushstack/eslint-patch': 1.3.3 + '@typescript-eslint/parser': 5.62.0(eslint@8.31.0)(typescript@4.9.4) + eslint: 8.31.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.0)(eslint@8.31.0) + eslint-plugin-import: 2.28.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.31.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.31.0) + eslint-plugin-react: 7.33.1(eslint@8.31.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.31.0) + typescript: 4.9.4 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - supports-color dev: false - /eslint-config-prettier@9.1.0(eslint@8.56.0): - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + /eslint-config-prettier@8.10.0(eslint@8.31.0): + resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.56.0 + eslint: 8.31.0 dev: true - /eslint-plugin-solid@0.13.1(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-PdNrAylFzeh/SbnLc2pQ432l+bXFGzXj/qNqkh5QNVZCoWIdSs0CJA2D7hqW0DloztwUrzkVZCDWFWc3iRAm/Q==} - engines: {node: '>=12.0.0'} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: - '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) - eslint: 8.56.0 - is-html: 2.0.0 - kebab-case: 1.0.2 - known-css-properties: 0.24.0 - style-to-object: 0.3.0 + debug: 3.2.7 + is-core-module: 2.13.0 + resolve: 1.22.4 transitivePeerDependencies: - supports-color - - typescript - dev: true + dev: false + + /eslint-import-resolver-typescript@3.6.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.0)(eslint@8.31.0): + resolution: {integrity: sha512-QTHR9ddNnn35RTxlaEnx2gCxqFlF2SEN0SE2d17SqwyM7YOSI2GHWRYp5BiRkObTUNYPupC/3Fq2a0PpT+EKpg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + dependencies: + debug: 4.3.4 + enhanced-resolve: 5.15.0 + eslint: 8.31.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.31.0) + eslint-plugin-import: 2.28.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.31.0) + fast-glob: 3.3.1 + get-tsconfig: 4.7.0 + is-core-module: 2.13.0 + is-glob: 4.0.3 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + dev: false + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.31.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 5.62.0(eslint@8.31.0)(typescript@4.9.4) + debug: 3.2.7 + eslint: 8.31.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.0)(eslint@8.31.0) + transitivePeerDependencies: + - supports-color + dev: false + + /eslint-plugin-import@2.28.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.31.0): + resolution: {integrity: sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 5.62.0(eslint@8.31.0)(typescript@4.9.4) + array-includes: 3.1.6 + array.prototype.findlastindex: 1.2.2 + array.prototype.flat: 1.3.1 + array.prototype.flatmap: 1.3.1 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.31.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.31.0) + has: 1.0.3 + is-core-module: 2.13.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.6 + object.groupby: 1.0.0 + object.values: 1.1.6 + resolve: 1.22.4 + semver: 6.3.1 + tsconfig-paths: 3.14.2 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: false + + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.31.0): + resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + '@babel/runtime': 7.22.10 + aria-query: 5.3.0 + array-includes: 3.1.6 + array.prototype.flatmap: 1.3.1 + ast-types-flow: 0.0.7 + axe-core: 4.7.2 + axobject-query: 3.2.1 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 8.31.0 + has: 1.0.3 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.5 + minimatch: 3.1.2 + object.entries: 1.1.6 + object.fromentries: 2.0.6 + semver: 6.3.1 + dev: false + + /eslint-plugin-react-hooks@4.6.0(eslint@8.31.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.31.0 + dev: false + + /eslint-plugin-react@7.33.1(eslint@8.31.0): + resolution: {integrity: sha512-L093k0WAMvr6VhNwReB8VgOq5s2LesZmrpPdKz/kZElQDzqS7G7+DnKoqT+w4JwuiGeAhAvHO0fvy0Eyk4ejDA==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.6 + array.prototype.flatmap: 1.3.1 + array.prototype.tosorted: 1.1.1 + doctrine: 2.1.0 + eslint: 8.31.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.6 + object.fromentries: 2.0.6 + object.hasown: 1.1.2 + object.values: 1.1.6 + prop-types: 15.8.1 + resolve: 2.0.0-next.4 + semver: 6.3.1 + string.prototype.matchall: 4.0.8 + dev: false /eslint-scope@7.2.2: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} @@ -4575,26 +1388,33 @@ packages: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - dev: true + + /eslint-utils@3.0.0(eslint@8.31.0): + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + dependencies: + eslint: 8.31.0 + eslint-visitor-keys: 2.1.0 + + /eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} /eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - /eslint@8.56.0: - resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} + /eslint@8.31.0: + resolution: {integrity: sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.56.0 - '@humanwhocodes/config-array': 0.11.14 + '@eslint/eslintrc': 1.4.1 + '@humanwhocodes/config-array': 0.11.10 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 @@ -4602,6 +1422,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 + eslint-utils: 3.0.0(eslint@8.31.0) eslint-visitor-keys: 3.4.3 espree: 9.6.1 esquery: 1.5.0 @@ -4610,12 +1431,14 @@ packages: file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 - ignore: 5.3.1 + globals: 13.21.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.4 + import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 + js-sdsl: 4.4.2 js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 @@ -4623,134 +1446,46 @@ packages: minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.3 + regexpp: 3.2.0 strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 text-table: 0.2.0 transitivePeerDependencies: - supports-color - dev: true /espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) + acorn: 8.10.0 + acorn-jsx: 5.3.2(acorn@8.10.0) eslint-visitor-keys: 3.4.3 - dev: true - - /esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - dev: false /esquery@1.5.0: resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 - dev: true /esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 - dev: true /estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} - dev: true - - /estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - - /estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - dependencies: - '@types/estree': 1.0.5 - dev: false /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} - /etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - dev: false - - /event-emitter@0.3.5: - resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} - dependencies: - d: 1.0.1 - es5-ext: 0.10.62 - dev: true - - /eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - dev: false - - /execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - - /execa@7.2.0: - resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} - engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 4.3.1 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.2.0 - onetime: 6.0.0 - signal-exit: 3.0.7 - strip-final-newline: 3.0.0 - - /execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 8.0.1 - human-signals: 5.0.0 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.2.0 - onetime: 6.0.0 - signal-exit: 4.1.0 - strip-final-newline: 3.0.0 - dev: false - - /ext@1.7.0: - resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} - dependencies: - type: 2.7.2 - dev: true - /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: true - /fast-fifo@1.3.2: - resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} - dev: false - - /fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + /fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -4761,14 +1496,12 @@ packages: /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - dev: true /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - dev: true - /fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} dependencies: reusify: 1.0.4 @@ -4776,12 +1509,7 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flat-cache: 3.2.0 - dev: true - - /file-uri-to-path@1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - dev: false + flat-cache: 3.0.4 /fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} @@ -4789,56 +1517,22 @@ packages: dependencies: to-regex-range: 5.0.1 - /finalhandler@1.1.2: - resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} - engines: {node: '>= 0.8'} - dependencies: - debug: 2.6.9 - encodeurl: 1.0.2 - escape-html: 1.0.3 - on-finished: 2.3.0 - parseurl: 1.3.3 - statuses: 1.5.0 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - /find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} dependencies: locate-path: 6.0.0 path-exists: 4.0.0 - dev: true - /flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + /flat-cache@3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.3.1 - keyv: 4.5.4 + flatted: 3.2.7 rimraf: 3.0.2 - dev: true - /flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true - dev: false - - /flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - dev: true - - /follow-redirects@1.15.5(debug@4.3.4): - resolution: {integrity: sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - dependencies: - debug: 4.3.4 + /flatted@3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} /for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -4846,38 +1540,10 @@ packages: is-callable: 1.2.7 dev: false - /foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} - dependencies: - cross-spawn: 7.0.3 - signal-exit: 4.1.0 + /fraction.js@4.2.0: + resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} dev: true - /fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - dev: true - - /fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - dev: false - - /fs-extra@11.2.0: - resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} - engines: {node: '>=14.14'} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - - /fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 - dev: false - /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -4886,88 +1552,46 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true - dev: true optional: true - /fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - optional: true + /function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - /function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - /gauge@3.0.2: - resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} - engines: {node: '>=10'} - dependencies: - aproba: 2.0.0 - color-support: 1.1.3 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - object-assign: 4.1.1 - signal-exit: 3.0.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wide-align: 1.1.5 - dev: false - - /gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - /get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - - /get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + /function.prototype.name@1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} engines: {node: '>= 0.4'} dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - has-proto: 1.0.3 + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + functions-have-names: 1.2.3 + dev: false + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: false + + /get-intrinsic@1.2.1: + resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-proto: 1.0.1 has-symbols: 1.0.3 - hasown: 2.0.1 dev: false - /get-port-please@3.1.2: - resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==} + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 dev: false - /get-port@6.1.2: - resolution: {integrity: sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - /get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - - /get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} - dev: false - - /get-tsconfig@4.7.2: - resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} + /get-tsconfig@4.7.0: + resolution: {integrity: sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw==} dependencies: resolve-pkg-maps: 1.0.0 - dev: true - - /giget@1.2.1: - resolution: {integrity: sha512-4VG22mopWtIeHwogGSy1FViXVo0YT+m6BrqZfz0JJFwbSsePsCdOzdLIIli5BtMp7Xe8f/o2OmBpQX2NBOC24g==} - hasBin: true - dependencies: - citty: 0.1.6 - consola: 3.2.3 - defu: 6.1.4 - node-fetch-native: 1.6.2 - nypm: 0.3.6 - ohash: 1.1.3 - pathe: 1.1.2 - tar: 6.2.0 dev: false /glob-parent@5.1.2: @@ -4981,19 +1605,28 @@ packages: engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 + + /glob@7.1.6: + resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 dev: true - /glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true + /glob@7.1.7: + resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} dependencies: - foreground-child: 3.1.1 - jackspeak: 2.3.6 - minimatch: 9.0.3 - minipass: 7.0.4 - path-scurry: 1.10.1 - dev: true + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: false /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} @@ -5005,29 +1638,17 @@ packages: once: 1.4.0 path-is-absolute: 1.0.1 - /glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 - - /globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - - /globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + /globals@13.21.0: + resolution: {integrity: sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 - dev: true - /globalyzer@0.1.0: - resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.0 dev: false /globby@11.1.0: @@ -5036,86 +1657,41 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.1 + fast-glob: 3.3.1 + ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 - dev: true - - /globby@14.0.1: - resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==} - engines: {node: '>=18'} - dependencies: - '@sindresorhus/merge-streams': 2.3.0 - fast-glob: 3.3.2 - ignore: 5.3.1 - path-type: 5.0.0 - slash: 5.1.0 - unicorn-magic: 0.1.0 - dev: false - - /globrex@0.1.2: - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} dev: false /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: - get-intrinsic: 1.2.4 + get-intrinsic: 1.2.1 dev: false /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - /graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - dev: true - - /gzip-size@7.0.0: - resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - duplexer: 0.1.2 dev: false - /h3@1.10.1: - resolution: {integrity: sha512-UBAUp47hmm4BB5/njB4LrEa9gpuvZj4/Qf/ynSMzO6Ku2RXaouxEfiG2E2IFnv6fxbhAkzjasDxmo6DFdEeXRg==} - dependencies: - cookie-es: 1.0.0 - defu: 6.1.4 - destr: 2.0.3 - iron-webcrypto: 1.0.0 - ohash: 1.1.3 - radix3: 1.1.0 - ufo: 1.4.0 - uncrypto: 0.1.3 - unenv: 1.9.0 + /grapheme-splitter@1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} dev: false - /hanji@0.0.5: - resolution: {integrity: sha512-Abxw1Lq+TnYiL4BueXqMau222fPSPMFtya8HdpWsz/xVAhifXou71mPh/kY2+08RgFcVccjG3uZHs6K5HAe3zw==} - dependencies: - lodash.throttle: 4.1.1 - sisteransi: 1.0.5 - dev: true - - /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - /has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - dev: true - /has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + /has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} dependencies: - es-define-property: 1.0.0 + get-intrinsic: 1.2.1 dev: false - /has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} engines: {node: '>= 0.4'} dev: false @@ -5124,113 +1700,34 @@ packages: engines: {node: '>= 0.4'} dev: false - /has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 dev: false - /has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - dev: false - - /hasown@2.0.1: - resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} - engines: {node: '>= 0.4'} + /has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} dependencies: - function-bind: 1.1.2 + function-bind: 1.1.1 - /he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - dev: false - - /heap@0.2.7: - resolution: {integrity: sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==} - dev: true - - /hookable@5.5.3: - resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} - dev: false - - /html-entities@2.3.3: - resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==} - - /html-tags@3.3.1: - resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} - engines: {node: '>=8'} - dev: true - - /html-to-image@1.11.11: - resolution: {integrity: sha512-9gux8QhvjRO/erSnDPv28noDZcPZmYE7e1vFsBLKLlRlKDSqNJYebj6Qz1TGd5lsRV+X+xYyjCKjuZdABinWjA==} - dev: false - - /http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - dev: false - - /http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} - engines: {node: '>=8.0.0'} - dependencies: - eventemitter3: 4.0.7 - follow-redirects: 1.15.5(debug@4.3.4) - requires-port: 1.0.0 - transitivePeerDependencies: - - debug - dev: false - - /http-shutdown@1.2.2: - resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - dev: false - - /http-status@1.7.3: - resolution: {integrity: sha512-GS8tL1qHT2nBCMJDYMHGkkkKQLNkIAHz37vgO68XKvzv+XyqB4oh/DfmMHdtRzfqSJPj1xKG2TaELZtlCz6BEQ==} + /http-status@1.6.2: + resolution: {integrity: sha512-oUExvfNckrpTpDazph7kNG8sQi5au3BeTo0idaZFXEhTaJKu7GNJCLHI0rYY2wljm548MSTM+Ljj/c6anqu2zQ==} engines: {node: '>= 0.4.0'} dev: false - /https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - dependencies: - agent-base: 6.0.2 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: false - - /httpxy@0.1.5: - resolution: {integrity: sha512-hqLDO+rfststuyEUTWObQK6zHEEmZ/kaIP2/zclGGZn6X8h/ESTWg+WKecQ/e5k4nPswjzZD+q2VqZIbr15CoQ==} - dev: false - - /human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - - /human-signals@4.3.1: - resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} - engines: {node: '>=14.18.0'} - - /human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} - dev: false - - /ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + /ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} - /immutable@4.3.5: - resolution: {integrity: sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==} + /immer@10.0.2: + resolution: {integrity: sha512-Rx3CqeqQ19sxUtYV9CU911Vhy8/721wRFnJv3REVGWUmoAcIwzifTsdmJte/MV+0/XpM35LZdQMBGkRIoLPwQA==} + dev: false + + /immutable@4.3.2: + resolution: {integrity: sha512-oGXzbEDem9OOpDWZu88jGiYCvIsLHMvGw+8OXlpsvTFvIQplQbjg1B1cvKg8f7Hoch6+NGjpPsH1Fr+Mc2D1aA==} /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} @@ -5238,12 +1735,10 @@ packages: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - dev: true /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} - dev: true /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} @@ -5254,37 +1749,27 @@ packages: /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - /inline-style-parser@0.1.1: - resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} - dev: true - - /ioredis@5.3.2: - resolution: {integrity: sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==} - engines: {node: '>=12.22.0'} - dependencies: - '@ioredis/commands': 1.2.0 - cluster-key-slot: 1.1.2 - debug: 4.3.4 - denque: 2.1.0 - lodash.defaults: 4.2.0 - lodash.isarguments: 3.1.0 - redis-errors: 1.2.0 - redis-parser: 3.0.0 - standard-as-callback: 2.1.0 - transitivePeerDependencies: - - supports-color - dev: false - - /iron-webcrypto@1.0.0: - resolution: {integrity: sha512-anOK1Mktt8U1Xi7fCM3RELTuYbnFikQY5VtrDj7kPgpejV7d43tWKhzgioO0zpkazLEL/j/iayRqnJhrGfqUsg==} - dev: false - - /is-arguments@1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + /internal-slot@1.0.5: + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 - has-tostringtag: 1.0.2 + get-intrinsic: 1.2.1 + has: 1.0.3 + side-channel: 1.0.4 + dev: false + + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: false + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 dev: false /is-binary-path@2.1.0: @@ -5293,76 +1778,51 @@ packages: dependencies: binary-extensions: 2.2.0 - /is-builtin-module@3.2.1: - resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} - engines: {node: '>=6'} + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} dependencies: - builtin-modules: 3.3.0 + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: false /is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} dev: false - /is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + /is-core-module@2.13.0: + resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} dependencies: - hasown: 2.0.1 + has: 1.0.3 - /is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - - /is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - /is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.2 - dev: false - /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 - /is-html@2.0.0: - resolution: {integrity: sha512-S+OpgB5i7wzIue/YSE5hg0e5ZYfG3hhpNh9KGl6ayJ38p7ED6wxQLd1TV91xHpcTvw90KMJ9EwN3F/iNflHBVg==} - engines: {node: '>=8'} - dependencies: - html-tags: 3.3.1 - dev: true + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: false - /is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true - dependencies: - is-docker: 3.0.0 - - /is-module@1.0.0: - resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} - - /is-nan@1.3.2: - resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 + has-tostringtag: 1.0.0 dev: false /is-number@7.0.0: @@ -5372,63 +1832,46 @@ packages: /is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} - dev: true - /is-primitive@3.0.1: - resolution: {integrity: sha512-GljRxhWvlCNRfZyORiH77FwdFwGcMO620o37EOYC0ORWdq+WYNVqW0w2Juzew4M+L81l6/QS3t5gkkihyRqv9w==} - engines: {node: '>=0.10.0'} - dev: false - - /is-promise@2.2.2: - resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} - dev: true - - /is-reference@1.2.1: - resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} - dependencies: - '@types/estree': 1.0.5 - - /is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - /is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - /is-typed-array@1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} dependencies: - which-typed-array: 1.1.14 + call-bind: 1.0.2 + has-tostringtag: 1.0.0 dev: false - /is-what@4.1.16: - resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} - engines: {node: '>=12.13'} - - /is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: - is-docker: 2.2.1 - - /is-wsl@3.1.0: - resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} - engines: {node: '>=16'} - dependencies: - is-inside-container: 1.0.0 + call-bind: 1.0.2 dev: false - /is64bit@2.0.0: - resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} - engines: {node: '>=18'} + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} dependencies: - system-architecture: 0.1.0 + has-tostringtag: 1.0.0 dev: false - /isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: false + + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.11 + dev: false + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.2 dev: false /isarray@2.0.5: @@ -5438,43 +1881,21 @@ packages: /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - /isexe@3.1.1: - resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} - engines: {node: '>=16'} - dev: false - - /jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 + /jiti@1.19.1: + resolution: {integrity: sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==} + hasBin: true dev: true - /jiti@1.21.0: - resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} - hasBin: true - - /joi@17.12.2: - resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==} - dependencies: - '@hapi/hoek': 9.3.0 - '@hapi/topo': 5.1.0 - '@sideway/address': 4.1.5 - '@sideway/formula': 3.0.1 - '@sideway/pinpoint': 2.0.0 - - /jose@4.15.4: - resolution: {integrity: sha512-W+oqK4H+r5sITxfxpSU+MMdr/YSWGvgZMQDIsNoBDGGy4i7GBPTtvFKibQzW06n3U3TqHjhvBJsirShsEJ6eeQ==} + /jose@4.14.4: + resolution: {integrity: sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g==} dev: false - /jose@5.2.2: - resolution: {integrity: sha512-/WByRr4jDcsKlvMd1dRJnPfS1GVO3WuKyaurJ/vvXcOaUQO8rnNObCQMlv/5uCceVQIq5Q4WLF44ohsdiTohdg==} - dev: false + /js-sdsl@4.4.2: + resolution: {integrity: sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w==} /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: false /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} @@ -5482,103 +1903,42 @@ packages: dependencies: argparse: 2.0.1 - /jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - - /jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - - /json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - dev: true - - /json-diff@0.9.0: - resolution: {integrity: sha512-cVnggDrVkAAA3OvFfHpFEhOnmcsUpleEKq4d4O8sQWWSH40MBrWstKigVB1kGrgLWzuom+7rRdaCsnBD6VyObQ==} - hasBin: true - dependencies: - cli-color: 2.0.3 - difflib: 0.2.4 - dreamopt: 0.8.0 - dev: true - /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - dev: true /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - dev: true - /json-stable-stringify@1.1.1: - resolution: {integrity: sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - isarray: 2.0.5 - jsonify: 0.0.1 - object-keys: 1.1.1 - dev: false - - /json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true - - /jsonc-parser@3.2.1: - resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} + dependencies: + minimist: 1.2.8 dev: false - /jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - - /jsonify@0.0.1: - resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} + array-includes: 3.1.6 + array.prototype.flat: 1.3.1 + object.assign: 4.1.4 + object.values: 1.1.6 dev: false - /kebab-case@1.0.2: - resolution: {integrity: sha512-7n6wXq4gNgBELfDCpzKc+mRrZFs7D+wgfF5WRFLNAr4DA/qtr9Js8uOAVAfHhuLMfAcQ0pRKqbpjx+TcJVdE1Q==} - dev: true - - /keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - dependencies: - json-buffer: 3.0.1 - dev: true - /kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} dev: false - /klona@2.0.6: - resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} - engines: {node: '>= 8'} + /language-subtag-registry@0.3.22: + resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} dev: false - /knitwork@1.0.0: - resolution: {integrity: sha512-dWl0Dbjm6Xm+kDxhPQJsCBTxrJzuGl0aP9rhr+TG8D3l+GL90N8O8lYUi7dTSAN2uuDqCtNgb6aEuQH5wsiV8Q==} - dev: false - - /known-css-properties@0.24.0: - resolution: {integrity: sha512-RTSoaUAfLvpR357vWzAz/50Q/BmHfmE6ETSWfutT0AJiw10e6CmcdYRQJlLRd95B53D0Y2aD1jSxD3V3ySF+PA==} - dev: true - - /kolorist@1.8.0: - resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} - dev: false - - /lazystream@1.0.1: - resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} - engines: {node: '>= 0.6.3'} + /language-tags@1.0.5: + resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==} dependencies: - readable-stream: 2.3.8 + language-subtag-registry: 0.3.22 dev: false /levn@0.4.1: @@ -5587,169 +1947,43 @@ packages: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 - dev: true /lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} dev: true - /lilconfig@3.1.1: - resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} - engines: {node: '>=14'} - dev: true - /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true - /listhen@1.6.0: - resolution: {integrity: sha512-z0RcEXVX5oTpY1bO02SKoTU/kmZSrFSngNNzHRM6KICR17PTq7ANush6AE6ztGJwJD4RLpBrVHd9GnV51J7s3w==} - hasBin: true - dependencies: - '@parcel/watcher': 2.4.0 - '@parcel/watcher-wasm': 2.4.0 - citty: 0.1.6 - clipboardy: 4.0.0 - consola: 3.2.3 - crossws: 0.1.1 - defu: 6.1.4 - get-port-please: 3.1.2 - h3: 1.10.1 - http-shutdown: 1.2.2 - jiti: 1.21.0 - mlly: 1.6.0 - node-forge: 1.3.1 - pathe: 1.1.2 - std-env: 3.7.0 - ufo: 1.4.0 - untun: 0.1.3 - uqr: 0.1.2 - dev: false - - /local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} - dependencies: - mlly: 1.6.0 - pkg-types: 1.0.3 - dev: false - - /locate-character@3.0.0: - resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} - dev: false - /locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} dependencies: p-locate: 5.0.0 - dev: true - - /lodash-es@4.17.21: - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} - dev: false - - /lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - - /lodash.defaults@4.2.0: - resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} - dev: false - - /lodash.isarguments@3.1.0: - resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} - dev: false /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - dev: true - - /lodash.throttle@4.1.1: - resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} - dev: true /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: false - /lru-cache@10.2.0: - resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} - engines: {node: 14 || >=16.14} - - /lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true dependencies: - yallist: 3.1.1 + js-tokens: 4.0.0 + dev: false /lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} dependencies: yallist: 4.0.0 - - /lru-queue@0.1.0: - resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} - dependencies: - es5-ext: 0.10.62 - dev: true - - /magic-string@0.27.0: - resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - - /magic-string@0.30.5: - resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 dev: false - /magic-string@0.30.7: - resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - dev: false - - /magicast@0.2.11: - resolution: {integrity: sha512-6saXbRDA1HMkqbsvHOU6HBjCVgZT460qheRkLhJQHWAbhXoWESI3Kn/dGGXyKs15FFKR85jsUqFx2sMK0wy/5g==} - dependencies: - '@babel/parser': 7.23.9 - '@babel/types': 7.23.9 - recast: 0.23.4 - dev: false - - /make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - dependencies: - semver: 6.3.1 - dev: false - - /memoizee@0.4.15: - resolution: {integrity: sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==} - dependencies: - d: 1.0.1 - es5-ext: 0.10.62 - es6-weak-map: 2.0.3 - event-emitter: 0.3.5 - is-promise: 2.2.2 - lru-queue: 0.1.0 - next-tick: 1.1.0 - timers-ext: 0.1.7 - dev: true - - /merge-anything@5.1.7: - resolution: {integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==} - engines: {node: '>=12.13'} - dependencies: - is-what: 4.1.16 - - /merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -5761,118 +1995,27 @@ packages: braces: 3.0.2 picomatch: 2.3.1 - /micromorph@0.3.1: - resolution: {integrity: sha512-dbX4sz405e/QQtbHFMJj0SaVP+xuBBpSpR44AQYTjsrPek8oKyeRXkbtYN1XyFVdV7WjHp5DZMwxJOJiBfH1Jw==} - /mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} + dev: false /mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 - - /mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true dev: false - /mime@3.0.0: - resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} - engines: {node: '>=10.0.0'} - hasBin: true - dev: false - - /mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - /mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 - /minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - dependencies: - brace-expansion: 2.0.1 - - /minimatch@7.4.6: - resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} - engines: {node: '>=10'} - dependencies: - brace-expansion: 2.0.1 - dev: true - - /minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} - dependencies: - brace-expansion: 2.0.1 - dev: true - /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - - /minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} - dependencies: - yallist: 4.0.0 dev: false - /minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - dev: false - - /minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} - engines: {node: '>=16 || 14 >=14.17'} - dev: true - - /minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 - yallist: 4.0.0 - dev: false - - /mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - dev: false - - /mlly@1.6.0: - resolution: {integrity: sha512-YOvg9hfYQmnaB56Yb+KrJE2u0Yzz5zR+sLejEvF4fzwzV1Al6hkf2vyHTwqCRyv0hCi9rVCqVoXpyYevQIRwLQ==} - dependencies: - acorn: 8.11.3 - pathe: 1.1.2 - pkg-types: 1.0.3 - ufo: 1.4.0 - dev: false - - /mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - - /mrmime@2.0.0: - resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} - engines: {node: '>=10'} - - /ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} @@ -5888,168 +2031,99 @@ packages: thenify-all: 1.6.0 dev: true - /nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + /nanoid@3.3.6: + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - dev: true /negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} + dev: false - /next-tick@1.1.0: - resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} + /next-auth@4.23.0(next@13.1.1)(nodemailer@6.9.4)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-RgukcJkBdvsJwEfA+B80Wcowvtgy6tk8KKWffb7CMCdzcLO4fCCA6aB6sp/DZ2I0ISvWGnbVcO5KXmlan71igw==} + peerDependencies: + next: ^12.2.5 || ^13 + nodemailer: ^6.6.5 + react: ^17.0.2 || ^18 + react-dom: ^17.0.2 || ^18 + peerDependenciesMeta: + nodemailer: + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@panva/hkdf': 1.1.1 + cookie: 0.5.0 + jose: 4.14.4 + next: 13.1.1(react-dom@18.2.0)(react@18.2.0)(sass@1.65.1) + nodemailer: 6.9.4 + oauth: 0.9.15 + openid-client: 5.4.3 + preact: 10.17.0 + preact-render-to-string: 5.2.6(preact@10.17.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + uuid: 8.3.2 + dev: false + + /next@13.1.1(react-dom@18.2.0)(react@18.2.0)(sass@1.65.1): + resolution: {integrity: sha512-R5eBAaIa3X7LJeYvv1bMdGnAVF4fVToEjim7MkflceFPuANY3YyvFxXee/A+acrSYwYPvOvf7f6v/BM/48ea5w==} + engines: {node: '>=14.6.0'} + hasBin: true + peerDependencies: + fibers: '>= 3.1.0' + node-sass: ^6.0.0 || ^7.0.0 + react: ^18.2.0 + react-dom: ^18.2.0 + sass: ^1.3.0 + peerDependenciesMeta: + fibers: + optional: true + node-sass: + optional: true + sass: + optional: true + dependencies: + '@next/env': 13.1.1 + '@swc/helpers': 0.4.14 + caniuse-lite: 1.0.30001520 + postcss: 8.4.14 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + sass: 1.65.1 + styled-jsx: 5.1.1(react@18.2.0) + optionalDependencies: + '@next/swc-android-arm-eabi': 13.1.1 + '@next/swc-android-arm64': 13.1.1 + '@next/swc-darwin-arm64': 13.1.1 + '@next/swc-darwin-x64': 13.1.1 + '@next/swc-freebsd-x64': 13.1.1 + '@next/swc-linux-arm-gnueabihf': 13.1.1 + '@next/swc-linux-arm64-gnu': 13.1.1 + '@next/swc-linux-arm64-musl': 13.1.1 + '@next/swc-linux-x64-gnu': 13.1.1 + '@next/swc-linux-x64-musl': 13.1.1 + '@next/swc-win32-arm64-msvc': 13.1.1 + '@next/swc-win32-ia32-msvc': 13.1.1 + '@next/swc-win32-x64-msvc': 13.1.1 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + dev: false + + /node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} dev: true - /nitropack@2.8.1: - resolution: {integrity: sha512-pODv2kEEzZSDQR+1UMXbGyNgMedUDq/qUomtiAnQKQvLy52VGlecXO1xDfH3i0kP1yKEcKTnWsx1TAF5gHM7xQ==} - engines: {node: ^16.11.0 || >=17.0.0} - hasBin: true - peerDependencies: - xml2js: ^0.6.2 - peerDependenciesMeta: - xml2js: - optional: true - dependencies: - '@cloudflare/kv-asset-handler': 0.3.1 - '@netlify/functions': 2.6.0 - '@rollup/plugin-alias': 5.1.0(rollup@4.12.0) - '@rollup/plugin-commonjs': 25.0.7(rollup@4.12.0) - '@rollup/plugin-inject': 5.0.5(rollup@4.12.0) - '@rollup/plugin-json': 6.1.0(rollup@4.12.0) - '@rollup/plugin-node-resolve': 15.2.3(rollup@4.12.0) - '@rollup/plugin-replace': 5.0.5(rollup@4.12.0) - '@rollup/plugin-terser': 0.4.4(rollup@4.12.0) - '@rollup/plugin-wasm': 6.2.2(rollup@4.12.0) - '@rollup/pluginutils': 5.1.0(rollup@4.12.0) - '@types/http-proxy': 1.17.14 - '@vercel/nft': 0.24.4 - archiver: 6.0.1 - c12: 1.9.0 - chalk: 5.3.0 - chokidar: 3.6.0 - citty: 0.1.6 - consola: 3.2.3 - cookie-es: 1.0.0 - defu: 6.1.4 - destr: 2.0.3 - dot-prop: 8.0.2 - esbuild: 0.19.12 - escape-string-regexp: 5.0.0 - estree-walker: 3.0.3 - etag: 1.8.1 - fs-extra: 11.2.0 - globby: 14.0.1 - gzip-size: 7.0.0 - h3: 1.10.1 - hookable: 5.5.3 - httpxy: 0.1.5 - is-primitive: 3.0.1 - jiti: 1.21.0 - klona: 2.0.6 - knitwork: 1.0.0 - listhen: 1.6.0 - magic-string: 0.30.7 - mime: 3.0.0 - mlly: 1.6.0 - mri: 1.2.0 - node-fetch-native: 1.6.2 - ofetch: 1.3.3 - ohash: 1.1.3 - openapi-typescript: 6.7.4 - pathe: 1.1.2 - perfect-debounce: 1.0.0 - pkg-types: 1.0.3 - pretty-bytes: 6.1.1 - radix3: 1.1.0 - rollup: 4.12.0 - rollup-plugin-visualizer: 5.12.0(rollup@4.12.0) - scule: 1.3.0 - semver: 7.6.0 - serve-placeholder: 2.0.1 - serve-static: 1.15.0 - std-env: 3.7.0 - ufo: 1.4.0 - uncrypto: 0.1.3 - unctx: 2.3.1 - unenv: 1.9.0 - unimport: 3.7.1(rollup@4.12.0) - unstorage: 1.10.1 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@upstash/redis' - - '@vercel/kv' - - encoding - - idb-keyval - - supports-color - dev: false - - /node-addon-api@7.1.0: - resolution: {integrity: sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==} - engines: {node: ^16 || ^18 || >= 20} - dev: false - - /node-fetch-native@1.6.2: - resolution: {integrity: sha512-69mtXOFZ6hSkYiXAVB5SqaRvrbITC/NPyqv7yuu/qw0nmgPyYbIMYYNIDhNtwPrzk0ptrimrLz/hhjvm4w5Z+w==} - dev: false - - /node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - dependencies: - whatwg-url: 5.0.0 - dev: false - - /node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} - engines: {node: '>= 6.13.0'} - dev: false - - /node-gyp-build@4.8.0: - resolution: {integrity: sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==} - hasBin: true - dev: false - - /node-html-parser@6.1.12: - resolution: {integrity: sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==} - dependencies: - css-select: 5.1.0 - he: 1.2.0 - dev: false - - /node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - - /nodemailer@6.9.10: - resolution: {integrity: sha512-qtoKfGFhvIFW5kLfrkw2R6Nm6Ur4LNUMykyqu6n9BRKJuyQrqEGwdXXUAbwWEKt33dlWUGXb7rzmJP/p4+O+CA==} + /nodemailer@6.9.4: + resolution: {integrity: sha512-CXjQvrQZV4+6X5wP6ZIgdehJamI63MFoYFGGPtHudWym9qaEHDNdPzaj5bfMCvxG1vhAileSWW90q7nL0N36mA==} engines: {node: '>=6.0.0'} dev: false - /nopt@5.0.0: - resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} - engines: {node: '>=6'} - hasBin: true - dependencies: - abbrev: 1.1.1 - dev: false - /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -6059,62 +2133,26 @@ packages: engines: {node: '>=0.10.0'} dev: true - /npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - dependencies: - path-key: 3.1.1 - - /npm-run-path@5.2.0: - resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - path-key: 4.0.0 - - /npmlog@5.0.1: - resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} - dependencies: - are-we-there-yet: 2.0.0 - console-control-strings: 1.1.0 - gauge: 3.0.2 - set-blocking: 2.0.0 - dev: false - - /nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - dependencies: - boolbase: 1.0.0 - dev: false - - /nypm@0.3.6: - resolution: {integrity: sha512-2CATJh3pd6CyNfU5VZM7qSwFu0ieyabkEdnogE30Obn1czrmOYiZ8DOZLe1yBdLKWoyD3Mcy2maUs+0MR3yVjQ==} - engines: {node: ^14.16.0 || >=16.10.0} - hasBin: true - dependencies: - citty: 0.1.6 - execa: 8.0.1 - pathe: 1.1.2 - ufo: 1.4.0 - dev: false - - /oauth4webapi@2.10.3: - resolution: {integrity: sha512-9FkXEXfzVKzH63GUOZz1zMr3wBaICSzk6DLXx+CGdrQ10ItNk2ePWzYYc1fdmKq1ayGFb2aX97sRCoZ2s0mkDw==} + /oauth@0.9.15: + resolution: {integrity: sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==} dev: false /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} + /object-hash@2.2.0: + resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==} + engines: {node: '>= 6'} + dev: false + /object-hash@3.0.0: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} + dev: true - /object-is@1.1.5: - resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 + /object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} dev: false /object-keys@1.1.1: @@ -6122,89 +2160,76 @@ packages: engines: {node: '>= 0.4'} dev: false - /object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 + call-bind: 1.0.2 + define-properties: 1.2.0 has-symbols: 1.0.3 object-keys: 1.1.1 dev: false - /ofetch@1.3.3: - resolution: {integrity: sha512-s1ZCMmQWXy4b5K/TW9i/DtiN8Ku+xCiHcjQ6/J/nDdssirrQNOoB165Zu8EqLMA2lln1JUth9a0aW9Ap2ctrUg==} + /object.entries@1.1.6: + resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} + engines: {node: '>= 0.4'} dependencies: - destr: 2.0.3 - node-fetch-native: 1.6.2 - ufo: 1.4.0 + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 dev: false - /ohash@1.1.3: - resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} + /object.fromentries@2.0.6: + resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 dev: false - /on-finished@2.3.0: - resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} - engines: {node: '>= 0.8'} + /object.groupby@1.0.0: + resolution: {integrity: sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw==} dependencies: - ee-first: 1.1.1 - - /on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - dependencies: - ee-first: 1.1.1 + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + get-intrinsic: 1.2.1 dev: false - /on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} - engines: {node: '>= 0.8'} + /object.hasown@1.1.2: + resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} + dependencies: + define-properties: 1.2.0 + es-abstract: 1.22.1 + dev: false + + /object.values@1.1.6: + resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + dev: false + + /oidc-token-hash@5.0.3: + resolution: {integrity: sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw==} + engines: {node: ^10.13.0 || >=12.0.0} + dev: false /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 - /onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} + /openid-client@5.4.3: + resolution: {integrity: sha512-sVQOvjsT/sbSfYsQI/9liWQGVZH/Pp3rrtlGEwgk/bbHfrUDZ24DN57lAagIwFtuEu+FM9Ev7r85s8S/yPjimQ==} dependencies: - mimic-fn: 2.1.0 - - /onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - dependencies: - mimic-fn: 4.0.0 - - /open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 - - /open@9.1.0: - resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} - engines: {node: '>=14.16'} - dependencies: - default-browser: 4.0.0 - define-lazy-prop: 3.0.0 - is-inside-container: 1.0.0 - is-wsl: 2.2.0 - - /openapi-typescript@6.7.4: - resolution: {integrity: sha512-EZyeW9Wy7UDCKv0iYmKrq2pVZtquXiD/YHiUClAKqiMi42nodx/EQH11K6fLqjt1IZlJmVokrAsExsBMM2RROQ==} - hasBin: true - dependencies: - ansi-colors: 4.1.3 - fast-glob: 3.3.2 - js-yaml: 4.1.0 - supports-color: 9.4.0 - undici: 5.28.3 - yargs-parser: 21.1.1 + jose: 4.14.4 + lru-cache: 6.0.0 + object-hash: 2.2.0 + oidc-token-hash: 5.0.3 dev: false /optionator@0.9.3: @@ -6217,43 +2242,28 @@ packages: levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 - dev: true /p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 - dev: true /p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} dependencies: p-limit: 3.1.0 - dev: true - - /packet-reader@1.0.0: - resolution: {integrity: sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==} /parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} dependencies: callsites: 3.1.0 - dev: true - - /parse-multipart-data@1.5.0: - resolution: {integrity: sha512-ck5zaMF0ydjGfejNMnlo5YU2oJ+pT+80Jb1y4ybanT27j+zbVP/jkYmCrUGsEln0Ox/hZmuvgy8Ra7AxbXP2Mw==} - - /parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} - dev: true /path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} @@ -6263,99 +2273,14 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - /path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - /path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} - engines: {node: '>=16 || 14 >=14.17'} - dependencies: - lru-cache: 10.2.0 - minipass: 7.0.4 - dev: true - - /path-to-regexp@6.2.1: - resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} - dev: false - /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - dev: true - - /path-type@5.0.0: - resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} - engines: {node: '>=12'} dev: false - /pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - dev: false - - /perfect-debounce@1.0.0: - resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} - dev: false - - /pg-cloudflare@1.1.1: - resolution: {integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==} - requiresBuild: true - optional: true - - /pg-connection-string@2.6.2: - resolution: {integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==} - - /pg-int8@1.0.1: - resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} - engines: {node: '>=4.0.0'} - - /pg-pool@3.6.1(pg@8.11.3): - resolution: {integrity: sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==} - peerDependencies: - pg: '>=8.0' - dependencies: - pg: 8.11.3 - - /pg-protocol@1.6.0: - resolution: {integrity: sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==} - - /pg-types@2.2.0: - resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} - engines: {node: '>=4'} - dependencies: - pg-int8: 1.0.1 - postgres-array: 2.0.0 - postgres-bytea: 1.0.0 - postgres-date: 1.0.7 - postgres-interval: 1.2.0 - - /pg@8.11.3: - resolution: {integrity: sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==} - engines: {node: '>= 8.0.0'} - peerDependencies: - pg-native: '>=3.0.1' - peerDependenciesMeta: - pg-native: - optional: true - dependencies: - buffer-writer: 2.0.0 - packet-reader: 1.0.0 - pg-connection-string: 2.6.2 - pg-pool: 3.6.1(pg@8.11.3) - pg-protocol: 1.6.0 - pg-types: 2.2.0 - pgpass: 1.0.5 - optionalDependencies: - pg-cloudflare: 1.1.1 - - /pgpass@1.0.5: - resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} - dependencies: - split2: 4.2.0 - /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -6373,66 +2298,36 @@ packages: engines: {node: '>= 6'} dev: true - /pkg-types@1.0.3: - resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} - dependencies: - jsonc-parser: 3.2.1 - mlly: 1.6.0 - pathe: 1.1.2 - dev: false - - /playwright-core@1.41.2: - resolution: {integrity: sha512-VaTvwCA4Y8kxEe+kfm2+uUUw5Lubf38RxF7FpBxLPmGe5sdNkSg5e3ChEigaGrX7qdqT3pt2m/98LiyvU2x6CA==} + /playwright-core@1.37.0: + resolution: {integrity: sha512-1c46jhTH/myQw6sesrcuHVtLoSNfJv8Pfy9t3rs6subY7kARv0HRw5PpyfPYPpPtQvBOmgbE6K+qgYUpj81LAA==} engines: {node: '>=16'} hasBin: true dev: true - /playwright@1.41.2: - resolution: {integrity: sha512-v0bOa6H2GJChDL8pAeLa/LZC4feoAMbSQm1/jF/ySsWWoaNItvrMP7GEkvEEFyCTUYKMxjQKaTSg5up7nR6/8A==} - engines: {node: '>=16'} - hasBin: true - dependencies: - playwright-core: 1.41.2 - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /polka@1.0.0-next.22: - resolution: {integrity: sha512-a7tsZy5gFbJr0aUltZS97xCkbPglXuD67AMvTyZX7BTDBH384FWf0ZQF6rPvdutSxnO1vUlXM2zSLf5tCKk5RA==} - engines: {node: '>=8'} - dependencies: - '@polka/url': 1.0.0-next.24 - trouter: 3.2.1 - - /possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} - engines: {node: '>= 0.4'} - dev: false - - /postcss-import@15.1.0(postcss@8.4.35): + /postcss-import@15.1.0(postcss@8.4.27): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.35 + postcss: 8.4.27 postcss-value-parser: 4.2.0 read-cache: 1.0.0 - resolve: 1.22.8 + resolve: 1.22.4 dev: true - /postcss-js@4.0.1(postcss@8.4.35): + /postcss-js@4.0.1(postcss@8.4.27): resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.4.21 dependencies: camelcase-css: 2.0.1 - postcss: 8.4.35 + postcss: 8.4.27 dev: true - /postcss-load-config@4.0.2(postcss@8.4.35): - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + /postcss-load-config@4.0.1(postcss@8.4.27): + resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} engines: {node: '>= 14'} peerDependencies: postcss: '>=8.0.9' @@ -6443,23 +2338,23 @@ packages: ts-node: optional: true dependencies: - lilconfig: 3.1.1 - postcss: 8.4.35 - yaml: 2.3.4 + lilconfig: 2.1.0 + postcss: 8.4.27 + yaml: 2.3.1 dev: true - /postcss-nested@6.0.1(postcss@8.4.35): + /postcss-nested@6.0.1(postcss@8.4.27): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 + postcss: 8.4.27 + postcss-selector-parser: 6.0.13 dev: true - /postcss-selector-parser@6.0.15: - resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} + /postcss-selector-parser@6.0.13: + resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} engines: {node: '>=4'} dependencies: cssesc: 3.0.0 @@ -6470,61 +2365,43 @@ packages: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true - /postcss@8.4.35: - resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} + /postcss@8.4.14: + resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.7 + nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 - - /postgres-array@2.0.0: - resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} - engines: {node: '>=4'} - - /postgres-bytea@1.0.0: - resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} - engines: {node: '>=0.10.0'} - - /postgres-date@1.0.7: - resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} - engines: {node: '>=0.10.0'} - - /postgres-interval@1.2.0: - resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} - engines: {node: '>=0.10.0'} - dependencies: - xtend: 4.0.2 - - /postgres@3.4.3: - resolution: {integrity: sha512-iHJn4+M9vbTdHSdDzNkC0crHq+1CUdFhx+YqCE+SqWxPjm+Zu63jq7yZborOBF64c8pc58O5uMudyL1FQcHacA==} - engines: {node: '>=12'} dev: false - /preact-render-to-string@5.2.3(preact@10.11.3): - resolution: {integrity: sha512-aPDxUn5o3GhWdtJtW0svRC2SS/l8D9MAgo2+AWml+BhDImb27ALf04Q2d+AHqUUOc6RdSXFIBVa2gxzgMKgtZA==} + /postcss@8.4.27: + resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.6 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /preact-render-to-string@5.2.6(preact@10.17.0): + resolution: {integrity: sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==} peerDependencies: preact: '>=10' dependencies: - preact: 10.11.3 + preact: 10.17.0 pretty-format: 3.8.0 dev: false - /preact@10.11.3: - resolution: {integrity: sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg==} - dev: false - - /preact@10.19.6: - resolution: {integrity: sha512-gympg+T2Z1fG1unB8NH29yHJwnEaCH37Z32diPDku316OTnRPeMbiRV9kTrfZpocXjdfnWuFUl/Mj4BHaf6gnw==} + /preact@10.17.0: + resolution: {integrity: sha512-SNsI8cbaCcUS5tbv9nlXuCfIXnJ9ysBMWk0WnB6UWwcVA3qZ2O6FxqDFECMAMttvLQcW/HaNZUe2BLidyvrVYw==} dev: false /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - dev: true - /prettier-plugin-organize-imports@3.2.4(prettier@3.2.5)(typescript@5.3.3): - resolution: {integrity: sha512-6m8WBhIp0dfwu0SkgfOxJqh+HpdyfqSSLfKKRZSFbDuEQXDDndb8fTpRWkUrX/uBenkex3MgnVk0J3b3Y5byog==} + /prettier-plugin-organize-imports@3.2.3(prettier@3.0.1)(typescript@4.9.4): + resolution: {integrity: sha512-KFvk8C/zGyvUaE3RvxN2MhCLwzV6OBbFSkwZ2OamCrs9ZY4i5L77jQ/w4UmUr+lqX8qbaqVq6bZZkApn+IgJSg==} peerDependencies: '@volar/vue-language-plugin-pug': ^1.0.4 '@volar/vue-typescript': ^1.0.4 @@ -6536,19 +2413,20 @@ packages: '@volar/vue-typescript': optional: true dependencies: - prettier: 3.2.5 - typescript: 5.3.3 + prettier: 3.0.1 + typescript: 4.9.4 dev: true - /prettier-plugin-tailwindcss@0.5.11(prettier-plugin-organize-imports@3.2.4)(prettier@3.2.5): - resolution: {integrity: sha512-AvI/DNyMctyyxGOjyePgi/gqj5hJYClZ1avtQvLlqMT3uDZkRbi4HhGUpok3DRzv9z7Lti85Kdj3s3/1CeNI0w==} - engines: {node: '>=14.21.3'} + /prettier-plugin-tailwindcss@0.4.1(prettier-plugin-organize-imports@3.2.3)(prettier@3.0.1): + resolution: {integrity: sha512-hwn2EiJmv8M+AW4YDkbjJ6HlZCTzLyz1QlySn9sMuKV/Px0fjwldlB7tol8GzdgqtkdPtzT3iJ4UzdnYXP25Ag==} + engines: {node: '>=12.17.0'} peerDependencies: '@ianvs/prettier-plugin-sort-imports': '*' '@prettier/plugin-pug': '*' '@shopify/prettier-plugin-liquid': '*' + '@shufo/prettier-plugin-blade': '*' '@trivago/prettier-plugin-sort-imports': '*' - prettier: ^3.0 + prettier: ^2.2 || ^3.0 prettier-plugin-astro: '*' prettier-plugin-css-order: '*' prettier-plugin-import-sort: '*' @@ -6566,6 +2444,8 @@ packages: optional: true '@shopify/prettier-plugin-liquid': optional: true + '@shufo/prettier-plugin-blade': + optional: true '@trivago/prettier-plugin-sort-imports': optional: true prettier-plugin-astro: @@ -6589,62 +2469,94 @@ packages: prettier-plugin-twig-melody: optional: true dependencies: - prettier: 3.2.5 - prettier-plugin-organize-imports: 3.2.4(prettier@3.2.5)(typescript@5.3.3) + prettier: 3.0.1 + prettier-plugin-organize-imports: 3.2.3(prettier@3.0.1)(typescript@4.9.4) dev: true - /prettier@3.2.5: - resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + /prettier@3.0.1: + resolution: {integrity: sha512-fcOWSnnpCrovBsmFZIGIy9UqK2FaI7Hqax+DIO0A9UxeVoY4iweyaFjS5TavZN97Hfehph0nhsZnjlVKzEQSrQ==} engines: {node: '>=14'} hasBin: true dev: true - /pretty-bytes@6.1.1: - resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} - engines: {node: ^14.13.1 || >=16.0.0} - dev: false - /pretty-format@3.8.0: resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==} dev: false - /process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + /prisma@4.16.2: + resolution: {integrity: sha512-SYCsBvDf0/7XSJyf2cHTLjLeTLVXYfqp7pG5eEVafFLeT0u/hLFz/9W196nDRGUOo1JfPatAEb+uEnTQImQC1g==} + engines: {node: '>=14.17'} + hasBin: true + requiresBuild: true + dependencies: + '@prisma/engines': 4.16.2 dev: false - /punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: false + + /punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} - dev: true /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - /queue-tick@1.0.1: - resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} - dev: false - - /radix3@1.1.0: - resolution: {integrity: sha512-pNsHDxbGORSvuSScqNJ+3Km6QAVqk8CfsCBIEoDgpqLrkD2f3QM4I7d1ozJJ172OmIcoUcerZaNWqtLkRXTV3A==} - dev: false - - /randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + /react-colorful@5.6.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' dependencies: - safe-buffer: 5.2.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false - /range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} - dev: false - - /rc9@2.1.1: - resolution: {integrity: sha512-lNeOl38Ws0eNxpO3+wD1I9rkHGQyj1NU1jlzv4go2CtEnEQEUfqnIvZG7W+bC/aXdJ27n5x/yUjb6RoT9tko+Q==} + /react-dom@18.2.0(react@18.2.0): + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 dependencies: - defu: 6.1.4 - destr: 2.0.3 - flat: 5.0.2 + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.0 + dev: false + + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + dev: false + + /react-otp-input@3.0.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-24GWRCguMmCatD3u9+mtxOcvoHZBJEtzzKQ/2cIOpr1yRn/umjxXw5d6mwRV8JnGhQqtIigD+k3Vt1ieuDBypg==} + peerDependencies: + react: '>=16.8.6 || ^17.0.0 || ^18.0.0' + react-dom: '>=16.8.6 || ^17.0.0 || ^18.0.0' + dependencies: + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /react-toastify@9.1.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-fPfb8ghtn/XMxw3LkxQBk3IyagNpF/LIKjOBflbexr2AWxAH1MJgvnESwEwBn9liLFXgTKWgBSdZpw9m4OTHTg==} + peerDependencies: + react: '>=16' + react-dom: '>=16' + dependencies: + clsx: 1.2.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 dev: false /read-cache@1.0.0: @@ -6653,130 +2565,54 @@ packages: pify: 2.3.0 dev: true - /readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - dev: false - - /readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - dev: false - - /readdir-glob@1.1.3: - resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} - dependencies: - minimatch: 5.1.6 - dev: false - /readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 - /recast@0.23.4: - resolution: {integrity: sha512-qtEDqIZGVcSZCHniWwZWbRy79Dc6Wp3kT/UmDA2RJKBPg7+7k51aQBZirHmUGn5uvHf2rg8DkjizrN26k61ATw==} - engines: {node: '>= 4'} - dependencies: - assert: 2.1.0 - ast-types: 0.16.1 - esprima: 4.0.1 - source-map: 0.6.1 - tslib: 2.6.2 + /regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} dev: false - /redis-errors@1.2.0: - resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} - engines: {node: '>=4'} + /regexp.prototype.flags@1.5.0: + resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + functions-have-names: 1.2.3 dev: false - /redis-parser@3.0.0: - resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} - engines: {node: '>=4'} - dependencies: - redis-errors: 1.2.0 - dev: false - - /regenerate-unicode-properties@10.1.1: - resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} - engines: {node: '>=4'} - dependencies: - regenerate: 1.4.2 - - /regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - - /regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - - /regenerator-transform@0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - dependencies: - '@babel/runtime': 7.23.9 - - /regexparam@1.3.0: - resolution: {integrity: sha512-6IQpFBv6e5vz1QAqI+V4k8P2e/3gRrqfCJ9FI+O1FLQTO+Uz6RXZEZOPmTJ6hlGj7gkERzY5BRCv09whKP96/g==} - engines: {node: '>=6'} - - /regexpu-core@5.3.2: - resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} - engines: {node: '>=4'} - dependencies: - '@babel/regjsgen': 0.8.0 - regenerate: 1.4.2 - regenerate-unicode-properties: 10.1.1 - regjsparser: 0.9.1 - unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.1.0 - - /regjsparser@0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} - hasBin: true - dependencies: - jsesc: 0.5.0 - - /require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - /requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - dev: false + /regexpp@3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} - dev: true - - /resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - dev: false /resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - dev: true + dev: false - /resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + /resolve@1.22.4: + resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} hasBin: true dependencies: - is-core-module: 2.13.1 + is-core-module: 2.13.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + /resolve@2.0.0-next.4: + resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} + hasBin: true + dependencies: + is-core-module: 2.13.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: false + /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -6787,212 +2623,55 @@ packages: dependencies: glob: 7.2.3 - /rollup-plugin-visualizer@5.12.0(rollup@3.29.4): - resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} - engines: {node: '>=14'} - hasBin: true - peerDependencies: - rollup: 2.x || 3.x || 4.x - peerDependenciesMeta: - rollup: - optional: true - dependencies: - open: 8.4.2 - picomatch: 2.3.1 - rollup: 3.29.4 - source-map: 0.7.4 - yargs: 17.7.2 - - /rollup-plugin-visualizer@5.12.0(rollup@4.12.0): - resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} - engines: {node: '>=14'} - hasBin: true - peerDependencies: - rollup: 2.x || 3.x || 4.x - peerDependenciesMeta: - rollup: - optional: true - dependencies: - open: 8.4.2 - picomatch: 2.3.1 - rollup: 4.12.0 - source-map: 0.7.4 - yargs: 17.7.2 - dev: false - - /rollup-route-manifest@1.0.0(rollup@3.29.4): - resolution: {integrity: sha512-3CmcMmCLAzJDUXiO3z6386/Pt8/k9xTZv8gIHyXI8hYGoAInnYdOsFXiGGzQRMy6TXR1jUZme2qbdwjH2nFMjg==} - engines: {node: '>=8'} - peerDependencies: - rollup: '>=2.0.0' - dependencies: - rollup: 3.29.4 - route-sort: 1.0.0 - - /rollup@3.29.4: - resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true - optionalDependencies: - fsevents: 2.3.3 - - /rollup@4.12.0: - resolution: {integrity: sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - dependencies: - '@types/estree': 1.0.5 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.12.0 - '@rollup/rollup-android-arm64': 4.12.0 - '@rollup/rollup-darwin-arm64': 4.12.0 - '@rollup/rollup-darwin-x64': 4.12.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.12.0 - '@rollup/rollup-linux-arm64-gnu': 4.12.0 - '@rollup/rollup-linux-arm64-musl': 4.12.0 - '@rollup/rollup-linux-riscv64-gnu': 4.12.0 - '@rollup/rollup-linux-x64-gnu': 4.12.0 - '@rollup/rollup-linux-x64-musl': 4.12.0 - '@rollup/rollup-win32-arm64-msvc': 4.12.0 - '@rollup/rollup-win32-ia32-msvc': 4.12.0 - '@rollup/rollup-win32-x64-msvc': 4.12.0 - fsevents: 2.3.3 - - /route-sort@1.0.0: - resolution: {integrity: sha512-SFgmvjoIhp5S4iBEDW3XnbT+7PRuZ55oRuNjY+CDB1SGZkyCG9bqQ3/dhaZTctTBYMAvDxd2Uy9dStuaUfgJqQ==} - engines: {node: '>= 6'} - - /run-applescript@5.0.0: - resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} - engines: {node: '>=12'} - dependencies: - execa: 5.1.1 - /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 - /rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + /safe-array-concat@1.0.0: + resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==} + engines: {node: '>=0.4'} dependencies: - tslib: 2.6.2 - - /sade@1.8.1: - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} - engines: {node: '>=6'} - dependencies: - mri: 1.2.0 - - /safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - - /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + isarray: 2.0.5 dev: false - /sass@1.71.1: - resolution: {integrity: sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==} + /safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-regex: 1.1.4 + dev: false + + /sass@1.65.1: + resolution: {integrity: sha512-9DINwtHmA41SEd36eVPQ9BJKpn7eKDQmUHmpI0y5Zv2Rcorrh0zS+cFrt050hdNbmmCNKTW3hV5mWfuegNRsEA==} engines: {node: '>=14.0.0'} hasBin: true dependencies: - chokidar: 3.6.0 - immutable: 4.3.5 + chokidar: 3.5.3 + immutable: 4.3.2 source-map-js: 1.0.2 - /scule@1.3.0: - resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + /scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + dependencies: + loose-envify: 1.4.0 dev: false /semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true + dev: false - /semver@7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} hasBin: true dependencies: lru-cache: 6.0.0 - - /send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} - engines: {node: '>= 0.8.0'} - dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 0.5.2 - http-errors: 2.0.0 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.1 - transitivePeerDependencies: - - supports-color - dev: false - - /serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - dependencies: - randombytes: 2.1.0 - dev: false - - /seroval-plugins@1.0.4(seroval@1.0.4): - resolution: {integrity: sha512-DQ2IK6oQVvy8k+c2V5x5YCtUa/GGGsUwUBNN9UqohrZ0rWdUapBFpNMYP1bCyRHoxOJjdKGl+dieacFIpU/i1A==} - engines: {node: '>=10'} - peerDependencies: - seroval: ^1.0 - dependencies: - seroval: 1.0.4 - - /seroval@1.0.4: - resolution: {integrity: sha512-qQs/N+KfJu83rmszFQaTxcoJoPn6KNUruX4KmnmyD0oZkUoiNvJ1rpdYKDf4YHM05k+HOgCxa3yvf15QbVijGg==} - engines: {node: '>=10'} - - /serve-placeholder@2.0.1: - resolution: {integrity: sha512-rUzLlXk4uPFnbEaIz3SW8VISTxMuONas88nYWjAWaM2W9VDbt9tyFOr3lq8RhVOFrT3XISoBw8vni5una8qMnQ==} - dependencies: - defu: 6.1.4 - dev: false - - /serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} - engines: {node: '>= 0.8.0'} - dependencies: - encodeurl: 1.0.2 - escape-html: 1.0.3 - parseurl: 1.3.3 - send: 0.18.0 - transitivePeerDependencies: - - supports-color - dev: false - - /set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - dev: false - - /set-cookie-parser@2.6.0: - resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} - - /set-function-length@1.2.1: - resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==} - engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - gopd: 1.0.1 - has-property-descriptors: 1.0.2 - dev: false - - /setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} dev: false /shebang-command@2.0.0: @@ -7005,72 +2684,35 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - /shikiji-core@0.9.19: - resolution: {integrity: sha512-AFJu/vcNT21t0e6YrfadZ+9q86gvPum6iywRyt1OtIPjPFe25RQnYJyxHQPMLKCCWA992TPxmEmbNcOZCAJclw==} - dev: false - - /shikiji@0.9.19: - resolution: {integrity: sha512-Kw2NHWktdcdypCj1GkKpXH4o6Vxz8B8TykPlPuLHOGSV8VkhoCLcFOH4k19K4LXAQYRQmxg+0X/eM+m2sLhAkg==} + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: - shikiji-core: 0.9.19 + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + object-inspect: 1.12.3 dev: false - /signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - /signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - - /sirv@2.0.4: - resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} - engines: {node: '>= 10'} - dependencies: - '@polka/url': 1.0.0-next.24 - mrmime: 2.0.0 - totalist: 3.0.1 - - /sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - dev: true - /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - dev: true - - /slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} dev: false - /slash@5.1.0: - resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} - engines: {node: '>=14.16'} - dev: false - - /smob@1.4.1: - resolution: {integrity: sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ==} - dev: false - - /socket.io-adapter@2.5.4: - resolution: {integrity: sha512-wDNHGXGewWAjQPt3pyeYBtpWSq9cLE5UW1ZUPL/2eGK9jtse/FpXib7epSTsz0Q0m+6sg6Y4KtcFTlah1bdOVg==} + /socket.io-adapter@2.5.2: + resolution: {integrity: sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==} dependencies: - debug: 4.3.4 ws: 8.11.0 transitivePeerDependencies: - bufferutil - - supports-color - utf-8-validate dev: false - /socket.io-client@4.7.4: - resolution: {integrity: sha512-wh+OkeF0rAVCrABWQBaEjLfb7DVPotMbu0cgWgyR0v6eA4EoVnAwcIeIbcdTE3GT/H3kbdLl7OoH2+asoDRIIg==} + /socket.io-client@4.7.2: + resolution: {integrity: sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w==} engines: {node: '>=10.0.0'} dependencies: '@socket.io/component-emitter': 3.1.0 debug: 4.3.4 - engine.io-client: 6.5.3 + engine.io-client: 6.5.2 socket.io-parser: 4.2.4 transitivePeerDependencies: - bufferutil @@ -7088,16 +2730,16 @@ packages: - supports-color dev: false - /socket.io@4.7.4: - resolution: {integrity: sha512-DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw==} + /socket.io@4.7.2: + resolution: {integrity: sha512-bvKVS29/I5fl2FGLNHuXlQaUH/BlzX1IN6S+NKLNZpBsPZIDH+90eQmCs2Railn4YUiww4SzUedJ6+uzwFnKLw==} engines: {node: '>=10.2.0'} dependencies: accepts: 1.3.8 base64id: 2.0.0 cors: 2.8.5 debug: 4.3.4 - engine.io: 6.5.4 - socket.io-adapter: 2.5.4 + engine.io: 6.5.2 + socket.io-adapter: 2.5.2 socket.io-parser: 4.2.4 transitivePeerDependencies: - bufferutil @@ -7105,214 +2747,46 @@ packages: - utf-8-validate dev: false - /solid-color@0.0.4(solid-js@1.8.15): - resolution: {integrity: sha512-hFZ0E0v6OYiuxc73txwlN8NB1KoeEU3mw5rwBfk3eJ8Kr/yY7h4G7X/QZ1xhnmOeVmam8lHk8iTujee8BeWSOw==} - peerDependencies: - solid-js: '>=1.0.0' - dependencies: - solid-js: 1.8.15 - dev: false - - /solid-js@1.8.15: - resolution: {integrity: sha512-d0QP/efr3UVcwGgWVPveQQ0IHOH6iU7yUhc2piy8arNG8wxKmvUy1kFxyF8owpmfCWGB87usDKMaVnsNYZm+Vw==} - dependencies: - csstype: 3.1.3 - seroval: 1.0.4 - seroval-plugins: 1.0.4(seroval@1.0.4) - - /solid-refresh@0.6.3(solid-js@1.8.15): - resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==} - peerDependencies: - solid-js: ^1.3 - dependencies: - '@babel/generator': 7.23.6 - '@babel/helper-module-imports': 7.22.15 - '@babel/types': 7.23.9 - solid-js: 1.8.15 - - /solid-start-node@0.3.10(solid-start@0.3.10)(vite@5.1.4): - resolution: {integrity: sha512-MuQXw+hLaGI4YlcVFKJxLvDG6/6/DhX5vifBICGmc0kGvUtOYMFXkSVhk6J83hIOK+ZVEwVu0/Mz18Jc7kRVjg==} - peerDependencies: - solid-start: ^0.3.5 - vite: '*' - dependencies: - '@rollup/plugin-commonjs': 24.1.0(rollup@3.29.4) - '@rollup/plugin-json': 6.1.0(rollup@3.29.4) - '@rollup/plugin-node-resolve': 15.2.3(rollup@3.29.4) - compression: 1.7.4 - polka: 1.0.0-next.22 - rollup: 3.29.4 - sirv: 2.0.4 - solid-start: 0.3.10(@solidjs/meta@0.29.3)(@solidjs/router@0.12.4)(solid-js@1.8.15)(solid-start-node@0.3.10)(vite@5.1.4) - terser: 5.27.2 - vite: 5.1.4(@types/node@20.11.19)(sass@1.71.1) - transitivePeerDependencies: - - supports-color - - /solid-start@0.3.10(@solidjs/meta@0.29.3)(@solidjs/router@0.12.4)(solid-js@1.8.15)(solid-start-node@0.3.10)(vite@5.1.4): - resolution: {integrity: sha512-4z+BybZMOyw6Px6FgPvjzW6/UOLCyDNxoKRg19kGGWmcgyWf8YZv+/eIhXdt+09H/LQapZr4ZRY2iFpe7+7PbA==} - hasBin: true - peerDependencies: - '@solidjs/meta': ^0.29.1 - '@solidjs/router': ^0.8.2 - solid-js: ^1.8.4 - solid-start-aws: '*' - solid-start-cloudflare-pages: '*' - solid-start-cloudflare-workers: '*' - solid-start-deno: '*' - solid-start-netlify: '*' - solid-start-node: '*' - solid-start-static: '*' - solid-start-vercel: '*' - vite: ^4.4.6 - peerDependenciesMeta: - solid-start-aws: - optional: true - solid-start-cloudflare-pages: - optional: true - solid-start-cloudflare-workers: - optional: true - solid-start-deno: - optional: true - solid-start-netlify: - optional: true - solid-start-node: - optional: true - solid-start-static: - optional: true - solid-start-vercel: - optional: true - dependencies: - '@babel/core': 7.23.9 - '@babel/generator': 7.23.6 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.9) - '@babel/preset-env': 7.23.9(@babel/core@7.23.9) - '@babel/preset-typescript': 7.23.3(@babel/core@7.23.9) - '@babel/template': 7.23.9 - '@solidjs/meta': 0.29.3(solid-js@1.8.15) - '@solidjs/router': 0.12.4(solid-js@1.8.15) - '@types/cookie': 0.5.4 - '@types/debug': 4.1.12 - chokidar: 3.6.0 - compression: 1.7.4 - connect: 3.7.0 - debug: 4.3.4 - dequal: 2.0.3 - dotenv: 16.4.5 - es-module-lexer: 1.4.1 - esbuild: 0.17.19 - esbuild-plugin-solid: 0.5.0(esbuild@0.17.19)(solid-js@1.8.15) - fast-glob: 3.3.2 - get-port: 6.1.2 - micromorph: 0.3.1 - parse-multipart-data: 1.5.0 - picocolors: 1.0.0 - rollup: 3.29.4 - rollup-plugin-visualizer: 5.12.0(rollup@3.29.4) - rollup-route-manifest: 1.0.0(rollup@3.29.4) - sade: 1.8.1 - set-cookie-parser: 2.6.0 - sirv: 2.0.4 - solid-js: 1.8.15 - solid-start-node: 0.3.10(solid-start@0.3.10)(vite@5.1.4) - terser: 5.27.2 - undici: 5.28.3 - vite: 5.1.4(@types/node@20.11.19)(sass@1.71.1) - vite-plugin-inspect: 0.7.42(rollup@3.29.4)(vite@5.1.4) - vite-plugin-solid: 2.10.1(solid-js@1.8.15)(vite@5.1.4) - wait-on: 6.0.1(debug@4.3.4) - transitivePeerDependencies: - - '@nuxt/kit' - - '@testing-library/jest-dom' - - supports-color - - /solid-use@0.8.0(solid-js@1.8.15): - resolution: {integrity: sha512-YX+XmcKLvSx3bwMimMhFy40ZkDnShnUcEw6cW6fSscwKEgl1TG3GlgAvkBmQ3AeWjvQSd8+HGTr82ImsrjkkqA==} - engines: {node: '>=10'} - peerDependencies: - solid-js: ^1.7 - dependencies: - solid-js: 1.8.15 - dev: false - /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} - /source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + /string.prototype.matchall@4.0.8: + resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - - /source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - /source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} - - /split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} - - /stackframe@1.3.4: - resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + regexp.prototype.flags: 1.5.0 + side-channel: 1.0.4 dev: false - /standard-as-callback@2.1.0: - resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} + /string.prototype.trim@1.2.7: + resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 dev: false - /statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} - - /statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} + /string.prototype.trimend@1.0.6: + resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 dev: false - /std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - dev: false - - /streamx@2.16.1: - resolution: {integrity: sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==} + /string.prototype.trimstart@1.0.6: + resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} dependencies: - fast-fifo: 1.3.2 - queue-tick: 1.0.1 - optionalDependencies: - bare-events: 2.2.0 - dev: false - - /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - /string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - - /string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - dependencies: - safe-buffer: 5.1.2 - dev: false - - /string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - dependencies: - safe-buffer: 5.2.1 + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 dev: false /strip-ansi@6.0.1: @@ -7321,159 +2795,94 @@ packages: dependencies: ansi-regex: 5.0.1 - /strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - dependencies: - ansi-regex: 6.0.1 - - /strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - - /strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: false /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - dev: true - /strip-literal@1.3.0: - resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} + /styled-jsx@5.1.1(react@18.2.0): + resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true dependencies: - acorn: 8.11.3 + client-only: 0.0.1 + react: 18.2.0 dev: false - /style-to-object@0.3.0: - resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==} - dependencies: - inline-style-parser: 0.1.1 - dev: true - - /sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} - engines: {node: '>=16 || 14 >=14.17'} + /sucrase@3.34.0: + resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} + engines: {node: '>=8'} hasBin: true dependencies: '@jridgewell/gen-mapping': 0.3.3 commander: 4.1.1 - glob: 10.3.10 + glob: 7.1.6 lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.6 ts-interface-checker: 0.1.13 dev: true - /superjson@2.2.1: - resolution: {integrity: sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==} - engines: {node: '>=16'} - dependencies: - copy-anything: 3.0.5 - dev: true - - /supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - dependencies: - has-flag: 3.0.0 - /supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} dependencies: has-flag: 4.0.0 - dev: true - - /supports-color@9.4.0: - resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==} - engines: {node: '>=12'} - dev: false /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - /system-architecture@0.1.0: - resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} - engines: {node: '>=18'} - dev: false - - /tailwindcss@3.4.1: - resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==} + /tailwindcss@3.3.3: + resolution: {integrity: sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==} engines: {node: '>=14.0.0'} hasBin: true dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 - chokidar: 3.6.0 + chokidar: 3.5.3 didyoumean: 1.2.2 dlv: 1.1.3 - fast-glob: 3.3.2 + fast-glob: 3.3.1 glob-parent: 6.0.2 is-glob: 4.0.3 - jiti: 1.21.0 + jiti: 1.19.1 lilconfig: 2.1.0 micromatch: 4.0.5 normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.35 - postcss-import: 15.1.0(postcss@8.4.35) - postcss-js: 4.0.1(postcss@8.4.35) - postcss-load-config: 4.0.2(postcss@8.4.35) - postcss-nested: 6.0.1(postcss@8.4.35) - postcss-selector-parser: 6.0.15 - resolve: 1.22.8 - sucrase: 3.35.0 + postcss: 8.4.27 + postcss-import: 15.1.0(postcss@8.4.27) + postcss-js: 4.0.1(postcss@8.4.27) + postcss-load-config: 4.0.1(postcss@8.4.27) + postcss-nested: 6.0.1(postcss@8.4.27) + postcss-selector-parser: 6.0.13 + resolve: 1.22.4 + sucrase: 3.34.0 transitivePeerDependencies: - ts-node dev: true - /tar-stream@3.1.7: - resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} - dependencies: - b4a: 1.6.6 - fast-fifo: 1.3.2 - streamx: 2.16.1 + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} dev: false - /tar@6.2.0: - resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} - engines: {node: '>=10'} - dependencies: - chownr: 2.0.0 - fs-minipass: 2.1.0 - minipass: 5.0.0 - minizlib: 2.1.2 - mkdirp: 1.0.4 - yallist: 4.0.0 - dev: false - - /terracotta@1.0.5(solid-js@1.8.15): - resolution: {integrity: sha512-4jkpXGKemeWjsBGDoBK1tnovGfIEMM8+Fa99T0TD4VYUaZq6hXHEWMfHshxy1h+DzsanDAwSBIBM0NnOohzijw==} - engines: {node: '>=10'} - peerDependencies: - solid-js: ^1.8 - dependencies: - solid-js: 1.8.15 - solid-use: 0.8.0(solid-js@1.8.15) - dev: false - - /terser@5.27.2: - resolution: {integrity: sha512-sHXmLSkImesJ4p5apTeT63DsV4Obe1s37qT8qvwHRmVxKTBH7Rv9Wr26VcAMmLbmk9UliiwK8z+657NyJHHy/w==} - engines: {node: '>=10'} - hasBin: true - dependencies: - '@jridgewell/source-map': 0.3.5 - acorn: 8.11.3 - commander: 2.20.3 - source-map-support: 0.5.21 - /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - dev: true /thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} @@ -7488,226 +2897,103 @@ packages: any-promise: 1.3.0 dev: true - /timers-ext@0.1.7: - resolution: {integrity: sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==} - dependencies: - es5-ext: 0.10.62 - next-tick: 1.1.0 - dev: true - - /tiny-glob@0.2.9: - resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} - dependencies: - globalyzer: 0.1.0 - globrex: 0.1.2 - dev: false - - /tinycolor2@1.6.0: - resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} - dev: false - - /titleize@3.0.0: - resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} - engines: {node: '>=12'} - - /to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 - /toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - dev: false - - /totalist@3.0.1: - resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} - engines: {node: '>=6'} - - /tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - dev: false - - /trouter@3.2.1: - resolution: {integrity: sha512-oY3CmIiEYOe1YMEzh++I67lrNOUldtCeuLL0vRPydvQLHZpSJ03B5dgDFlpFsiriMq6e//NDjjopjUzXOztHow==} - engines: {node: '>=6'} - dependencies: - regexparam: 1.3.0 - - /ts-api-utils@1.2.1(typescript@5.0.4): - resolution: {integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' - dependencies: - typescript: 5.0.4 - dev: false - - /ts-api-utils@1.2.1(typescript@5.3.3): - resolution: {integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' - dependencies: - typescript: 5.3.3 - dev: true - /ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} dev: true - /tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + /tsconfig-paths@3.14.2: + resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: false + + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: false + + /tslib@2.6.1: + resolution: {integrity: sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==} + dev: false + + /tsutils@3.21.0(typescript@4.9.4): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 4.9.4 + dev: false /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 - dev: true /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} - dev: true - /type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} + /typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 dev: false - /type-fest@3.13.1: - resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} - engines: {node: '>=14.16'} + /typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 dev: false - /type@1.2.0: - resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} - dev: true + /typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: false - /type@2.7.2: - resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} - dev: true + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + is-typed-array: 1.1.12 + dev: false - /typescript@5.0.4: - resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} - engines: {node: '>=12.20'} + /typescript@4.9.4: + resolution: {integrity: sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==} + engines: {node: '>=4.2.0'} hasBin: true - dev: false - /typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} - engines: {node: '>=14.17'} - hasBin: true - dev: true - - /ufo@1.4.0: - resolution: {integrity: sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==} - dev: false - - /uncrypto@0.1.3: - resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} - dev: false - - /unctx@2.3.1: - resolution: {integrity: sha512-PhKke8ZYauiqh3FEMVNm7ljvzQiph0Mt3GBRve03IJm7ukfaON2OBK795tLwhbyfzknuRRkW0+Ze+CQUmzOZ+A==} + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: - acorn: 8.11.3 - estree-walker: 3.0.3 - magic-string: 0.30.7 - unplugin: 1.7.1 - dev: false - - /undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - /undici-types@5.28.3: - resolution: {integrity: sha512-VJD0un4i6M1/lFOJPhacHdq6FadtlkdhKBed2W6yBqmrAr/W58oqENaOIX031stDVFwz9AemOLkIj/2AXAMLCg==} - dev: false - - /undici@5.28.3: - resolution: {integrity: sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==} - engines: {node: '>=14.0'} - dependencies: - '@fastify/busboy': 2.1.0 - - /unenv@1.9.0: - resolution: {integrity: sha512-QKnFNznRxmbOF1hDgzpqrlIf6NC5sbZ2OJ+5Wl3OX8uM+LUJXbj4TXvLJCtwbPTmbMHCLIz6JLKNinNsMShK9g==} - dependencies: - consola: 3.2.3 - defu: 6.1.4 - mime: 3.0.0 - node-fetch-native: 1.6.2 - pathe: 1.1.2 - dev: false - - /unicode-canonical-property-names-ecmascript@2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} - engines: {node: '>=4'} - - /unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} - dependencies: - unicode-canonical-property-names-ecmascript: 2.0.0 - unicode-property-aliases-ecmascript: 2.1.0 - - /unicode-match-property-value-ecmascript@2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} - engines: {node: '>=4'} - - /unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} - - /unicorn-magic@0.1.0: - resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} - engines: {node: '>=18'} - dev: false - - /unimport@3.7.1(rollup@3.29.4): - resolution: {integrity: sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ==} - dependencies: - '@rollup/pluginutils': 5.1.0(rollup@3.29.4) - acorn: 8.11.3 - escape-string-regexp: 5.0.0 - estree-walker: 3.0.3 - fast-glob: 3.3.2 - local-pkg: 0.5.0 - magic-string: 0.30.7 - mlly: 1.6.0 - pathe: 1.1.2 - pkg-types: 1.0.3 - scule: 1.3.0 - strip-literal: 1.3.0 - unplugin: 1.7.1 - transitivePeerDependencies: - - rollup - dev: false - - /unimport@3.7.1(rollup@4.12.0): - resolution: {integrity: sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ==} - dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.12.0) - acorn: 8.11.3 - escape-string-regexp: 5.0.0 - estree-walker: 3.0.3 - fast-glob: 3.3.2 - local-pkg: 0.5.0 - magic-string: 0.30.7 - mlly: 1.6.0 - pathe: 1.1.2 - pkg-types: 1.0.3 - scule: 1.3.0 - strip-literal: 1.3.0 - unplugin: 1.7.1 - transitivePeerDependencies: - - rollup + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 dev: false /unique-names-generator@4.7.1: @@ -7715,470 +3001,63 @@ packages: engines: {node: '>=8'} dev: false - /universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - - /unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - - /unplugin@1.7.1: - resolution: {integrity: sha512-JqzORDAPxxs8ErLV4x+LL7bk5pk3YlcWqpSNsIkAZj972KzFZLClc/ekppahKkOczGkwIG6ElFgdOgOlK4tXZw==} - dependencies: - acorn: 8.11.3 - chokidar: 3.6.0 - webpack-sources: 3.2.3 - webpack-virtual-modules: 0.6.1 - dev: false - - /unstorage@1.10.1: - resolution: {integrity: sha512-rWQvLRfZNBpF+x8D3/gda5nUCQL2PgXy2jNG4U7/Rc9BGEv9+CAJd0YyGCROUBKs9v49Hg8huw3aih5Bf5TAVw==} - peerDependencies: - '@azure/app-configuration': ^1.4.1 - '@azure/cosmos': ^4.0.0 - '@azure/data-tables': ^13.2.2 - '@azure/identity': ^3.3.2 - '@azure/keyvault-secrets': ^4.7.0 - '@azure/storage-blob': ^12.16.0 - '@capacitor/preferences': ^5.0.6 - '@netlify/blobs': ^6.2.0 - '@planetscale/database': ^1.11.0 - '@upstash/redis': ^1.23.4 - '@vercel/kv': ^0.2.3 - idb-keyval: ^6.2.1 - peerDependenciesMeta: - '@azure/app-configuration': - optional: true - '@azure/cosmos': - optional: true - '@azure/data-tables': - optional: true - '@azure/identity': - optional: true - '@azure/keyvault-secrets': - optional: true - '@azure/storage-blob': - optional: true - '@capacitor/preferences': - optional: true - '@netlify/blobs': - optional: true - '@planetscale/database': - optional: true - '@upstash/redis': - optional: true - '@vercel/kv': - optional: true - idb-keyval: - optional: true - dependencies: - anymatch: 3.1.3 - chokidar: 3.6.0 - destr: 2.0.3 - h3: 1.10.1 - ioredis: 5.3.2 - listhen: 1.6.0 - lru-cache: 10.2.0 - mri: 1.2.0 - node-fetch-native: 1.6.2 - ofetch: 1.3.3 - ufo: 1.4.0 - transitivePeerDependencies: - - supports-color - dev: false - - /untildify@4.0.0: - resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} - engines: {node: '>=8'} - - /untun@0.1.3: - resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} - hasBin: true - dependencies: - citty: 0.1.6 - consola: 3.2.3 - pathe: 1.1.2 - dev: false - - /update-browserslist-db@1.0.13(browserslist@4.23.0): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + /update-browserslist-db@1.0.11(browserslist@4.21.10): + resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.23.0 - escalade: 3.1.2 + browserslist: 4.21.10 + escalade: 3.1.1 picocolors: 1.0.0 - - /uqr@0.1.2: - resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} - dev: false + dev: true /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: - punycode: 2.3.1 - dev: true + punycode: 2.3.0 - /urlpattern-polyfill@8.0.2: - resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} + /use-sync-external-store@1.2.0(react@18.2.0): + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 dev: false /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: true - /util@0.12.5: - resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} - dependencies: - inherits: 2.0.4 - is-arguments: 1.1.1 - is-generator-function: 1.0.10 - is-typed-array: 1.1.13 - which-typed-array: 1.1.14 + /uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true dev: false - /utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - - /validate-html-nesting@1.2.2: - resolution: {integrity: sha512-hGdgQozCsQJMyfK5urgFcWEqsSSrK63Awe0t/IMR0bZ0QMtnuaiHzThW81guu3qx9abLi99NEuiaN6P9gVYsNg==} - /vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - - /vinxi@0.3.3(@types/node@20.11.19)(preact@10.19.6)(rollup@3.29.4)(sass@1.71.1): - resolution: {integrity: sha512-0KYGeNowy9SU7K2F7DTI7H4aGAelKLHzzxthf6fdd6cmokFhHM8xZ+fooTTciplbSMccW2adtsrg9Ia61jaPDg==} - hasBin: true - dependencies: - '@babel/core': 7.23.9 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.9) - '@types/micromatch': 4.0.6 - '@types/serve-static': 1.15.5 - '@types/ws': 8.5.10 - '@vinxi/devtools': 0.2.0(@babel/core@7.23.9)(preact@10.19.6)(rollup@3.29.4)(vite@5.1.1) - '@vinxi/listhen': 1.5.6 - boxen: 7.1.1 - c12: 1.9.0 - chokidar: 3.6.0 - citty: 0.1.6 - consola: 3.2.3 - cookie-es: 1.0.0 - dax-sh: 0.39.2 - defu: 6.1.4 - dts-buddy: 0.2.5 - es-module-lexer: 1.4.1 - esbuild: 0.18.20 - fast-glob: 3.3.2 - get-port: 6.1.2 - get-port-please: 3.1.2 - h3: 1.10.1 - hookable: 5.5.3 - http-proxy: 1.18.1 - micromatch: 4.0.5 - mri: 1.2.0 - nitropack: 2.8.1 - node-fetch-native: 1.6.2 - path-to-regexp: 6.2.1 - pathe: 1.1.2 - perfect-debounce: 1.0.0 - radix3: 1.1.0 - resolve: 1.22.8 - rollup-plugin-visualizer: 5.12.0(rollup@3.29.4) - serve-placeholder: 2.0.1 - serve-static: 1.15.0 - ufo: 1.4.0 - uncrypto: 0.1.3 - unctx: 2.3.1 - unenv: 1.9.0 - unimport: 3.7.1(rollup@3.29.4) - unstorage: 1.10.1 - vite: 5.1.1(@types/node@20.11.19)(sass@1.71.1) - ws: 8.16.0 - zod: 3.22.4 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@nuxt/kit' - - '@planetscale/database' - - '@testing-library/jest-dom' - - '@types/node' - - '@upstash/redis' - - '@vercel/kv' - - bufferutil - - debug - - encoding - - idb-keyval - - less - - lightningcss - - preact - - rollup - - sass - - stylus - - sugarss - - supports-color - - terser - - utf-8-validate - - xml2js dev: false - /vite-plugin-inspect@0.7.42(rollup@3.29.4)(vite@5.1.1): - resolution: {integrity: sha512-JCyX86wr3siQc+p9Kd0t8VkFHAJag0RaQVIpdFGSv5FEaePEVB6+V/RGtz2dQkkGSXQzRWrPs4cU3dRKg32bXw==} - engines: {node: '>=14'} - peerDependencies: - '@nuxt/kit': '*' - vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 - peerDependenciesMeta: - '@nuxt/kit': - optional: true + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: - '@antfu/utils': 0.7.7 - '@rollup/pluginutils': 5.1.0(rollup@3.29.4) - debug: 4.3.4 - error-stack-parser-es: 0.1.1 - fs-extra: 11.2.0 - open: 9.1.0 - picocolors: 1.0.0 - sirv: 2.0.4 - vite: 5.1.1(@types/node@20.11.19)(sass@1.71.1) - transitivePeerDependencies: - - rollup - - supports-color + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 dev: false - /vite-plugin-inspect@0.7.42(rollup@3.29.4)(vite@5.1.4): - resolution: {integrity: sha512-JCyX86wr3siQc+p9Kd0t8VkFHAJag0RaQVIpdFGSv5FEaePEVB6+V/RGtz2dQkkGSXQzRWrPs4cU3dRKg32bXw==} - engines: {node: '>=14'} - peerDependencies: - '@nuxt/kit': '*' - vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 - peerDependenciesMeta: - '@nuxt/kit': - optional: true - dependencies: - '@antfu/utils': 0.7.7 - '@rollup/pluginutils': 5.1.0(rollup@3.29.4) - debug: 4.3.4 - error-stack-parser-es: 0.1.1 - fs-extra: 11.2.0 - open: 9.1.0 - picocolors: 1.0.0 - sirv: 2.0.4 - vite: 5.1.4(@types/node@20.11.19)(sass@1.71.1) - transitivePeerDependencies: - - rollup - - supports-color - - /vite-plugin-solid@2.10.1(solid-js@1.8.15)(vite@5.1.1): - resolution: {integrity: sha512-kfVdNLWaJqaJVL52U6iCCKNW/nXE7bS1VVGOWPGllOkJfcNILymVSY0LCBLSnyy0iYnRtrXpiHm14rMuzeC7CA==} - peerDependencies: - '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.* - solid-js: ^1.7.2 - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - '@testing-library/jest-dom': - optional: true - dependencies: - '@babel/core': 7.23.9 - '@types/babel__core': 7.20.5 - babel-preset-solid: 1.8.15(@babel/core@7.23.9) - merge-anything: 5.1.7 - solid-js: 1.8.15 - solid-refresh: 0.6.3(solid-js@1.8.15) - vite: 5.1.1(@types/node@20.11.19)(sass@1.71.1) - vitefu: 0.2.5(vite@5.1.1) - transitivePeerDependencies: - - supports-color - dev: false - - /vite-plugin-solid@2.10.1(solid-js@1.8.15)(vite@5.1.4): - resolution: {integrity: sha512-kfVdNLWaJqaJVL52U6iCCKNW/nXE7bS1VVGOWPGllOkJfcNILymVSY0LCBLSnyy0iYnRtrXpiHm14rMuzeC7CA==} - peerDependencies: - '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.* - solid-js: ^1.7.2 - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - '@testing-library/jest-dom': - optional: true - dependencies: - '@babel/core': 7.23.9 - '@types/babel__core': 7.20.5 - babel-preset-solid: 1.8.15(@babel/core@7.23.9) - merge-anything: 5.1.7 - solid-js: 1.8.15 - solid-refresh: 0.6.3(solid-js@1.8.15) - vite: 5.1.4(@types/node@20.11.19)(sass@1.71.1) - vitefu: 0.2.5(vite@5.1.4) - transitivePeerDependencies: - - supports-color - - /vite-plugin-solid@2.9.1(solid-js@1.8.15)(vite@5.1.4): - resolution: {integrity: sha512-RC4hj+lbvljw57BbMGDApvEOPEh14lwrr/GeXRLNQLcR1qnOdzOwwTSFy13Gj/6FNIZpBEl0bWPU+VYFawrqUw==} - peerDependencies: - '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.* - solid-js: ^1.7.2 - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - '@testing-library/jest-dom': - optional: true - dependencies: - '@babel/core': 7.23.9 - '@types/babel__core': 7.20.5 - babel-preset-solid: 1.8.15(@babel/core@7.23.9) - merge-anything: 5.1.7 - solid-js: 1.8.15 - solid-refresh: 0.6.3(solid-js@1.8.15) - vite: 5.1.4(@types/node@20.11.19)(sass@1.71.1) - vitefu: 0.2.5(vite@5.1.4) - transitivePeerDependencies: - - supports-color - dev: false - - /vite@5.1.1(@types/node@20.11.19)(sass@1.71.1): - resolution: {integrity: sha512-wclpAgY3F1tR7t9LL5CcHC41YPkQIpKUGeIuT8MdNwNZr6OqOTLs7JX5vIHAtzqLWXts0T+GDrh9pN2arneKqg==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - '@types/node': 20.11.19 - esbuild: 0.19.12 - postcss: 8.4.35 - rollup: 4.12.0 - sass: 1.71.1 - optionalDependencies: - fsevents: 2.3.3 - dev: false - - /vite@5.1.4(@types/node@20.11.19)(sass@1.71.1): - resolution: {integrity: sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - '@types/node': 20.11.19 - esbuild: 0.19.12 - postcss: 8.4.35 - rollup: 4.12.0 - sass: 1.71.1 - optionalDependencies: - fsevents: 2.3.3 - - /vitefu@0.2.5(vite@5.1.1): - resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} - peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - vite: - optional: true - dependencies: - vite: 5.1.1(@types/node@20.11.19)(sass@1.71.1) - dev: false - - /vitefu@0.2.5(vite@5.1.4): - resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} - peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - vite: - optional: true - dependencies: - vite: 5.1.4(@types/node@20.11.19)(sass@1.71.1) - - /wait-on@6.0.1(debug@4.3.4): - resolution: {integrity: sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==} - engines: {node: '>=10.0.0'} - hasBin: true - dependencies: - axios: 0.25.0(debug@4.3.4) - joi: 17.12.2 - lodash: 4.17.21 - minimist: 1.2.8 - rxjs: 7.8.1 - transitivePeerDependencies: - - debug - - /webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - dev: false - - /webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} - dev: false - - /webpack-virtual-modules@0.6.1: - resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} - dev: false - - /whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - dev: false - - /which-typed-array@1.1.14: - resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==} + /which-typed-array@1.1.11: + resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} engines: {node: '>= 0.4'} dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.7 + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 for-each: 0.3.3 gopd: 1.0.1 - has-tostringtag: 1.0.2 + has-tostringtag: 1.0.0 dev: false /which@2.0.2: @@ -8188,47 +3067,6 @@ packages: dependencies: isexe: 2.0.0 - /which@4.0.0: - resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} - engines: {node: ^16.13.0 || >=18.0.0} - hasBin: true - dependencies: - isexe: 3.1.1 - dev: false - - /wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} - dependencies: - string-width: 4.2.3 - dev: false - - /widest-line@4.0.1: - resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} - engines: {node: '>=12'} - dependencies: - string-width: 5.1.2 - dev: false - - /wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - dev: true - - /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - /wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - dependencies: - ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.1.0 - /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -8245,72 +3083,57 @@ packages: optional: true dev: false - /ws@8.16.0: - resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: false - /xmlhttprequest-ssl@2.0.0: resolution: {integrity: sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==} engines: {node: '>=0.4.0'} dev: false - /xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - - /y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - - /yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: false - /yaml@2.3.4: - resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} + /yaml@2.3.1: + resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} engines: {node: '>= 14'} dev: true - /yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - - /yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - dependencies: - cliui: 8.0.1 - escalade: 3.1.2 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 - /yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - dev: true - /zip-stream@5.0.1: - resolution: {integrity: sha512-UfZ0oa0C8LI58wJ+moL46BDIMgCQbnsb+2PoiJYtonhBsMh2bq1eRBVkvjfVsqbEHd9/EgKPUuL9saSSsec8OA==} - engines: {node: '>= 12.0.0'} + /zod-prisma-types@2.7.9: + resolution: {integrity: sha512-JgPN32d/Wm6/E61oHXek2jDT6VxBpKVPmLom7585SmdCyj+xb+OAg8O3G0BLU+gWNiC+Eyt3blo1S/8W9sIaxA==} + hasBin: true dependencies: - archiver-utils: 4.0.1 - compress-commons: 5.0.1 - readable-stream: 3.6.2 + '@prisma/generator-helper': 5.1.1 + code-block-writer: 12.0.0 + lodash: 4.17.21 + zod: 3.21.1 + transitivePeerDependencies: + - supports-color dev: false - /zod@3.22.4: - resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} + /zod@3.21.1: + resolution: {integrity: sha512-+dTu2m6gmCbO9Ahm4ZBDapx2O6ZY9QSPXst2WXjcznPMwf2YNpn3RevLx4KkZp1OPW/ouFcoBtBzFz/LeY69oA==} + dev: false + + /zustand@4.4.1(@types/react@18.2.20)(immer@10.0.2)(react@18.2.0): + resolution: {integrity: sha512-QCPfstAS4EBiTQzlaGP1gmorkh/UL1Leaj2tdj+zZCZ/9bm0WS7sI2wnfD5lpOszFqWJ1DcPnGoY8RDL61uokw==} + engines: {node: '>=12.7.0'} + peerDependencies: + '@types/react': '>=16.8' + immer: '>=9.0' + react: '>=16.8' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + dependencies: + '@types/react': 18.2.20 + immer: 10.0.2 + react: 18.2.0 + use-sync-external-store: 1.2.0(react@18.2.0) + dev: false diff --git a/leaky-ships/postcss.config.cjs b/leaky-ships/postcss.config.js similarity index 100% rename from leaky-ships/postcss.config.cjs rename to leaky-ships/postcss.config.js diff --git a/leaky-ships/prettier.config.cjs b/leaky-ships/prettier.config.js similarity index 100% rename from leaky-ships/prettier.config.cjs rename to leaky-ships/prettier.config.js diff --git a/leaky-ships/prisma/generated/zod/index.ts b/leaky-ships/prisma/generated/zod/index.ts new file mode 100644 index 0000000..2a6d385 --- /dev/null +++ b/leaky-ships/prisma/generated/zod/index.ts @@ -0,0 +1,5820 @@ +import { z } from 'zod'; +import type { Prisma } from '@prisma/client'; + +///////////////////////////////////////// +// HELPER FUNCTIONS +///////////////////////////////////////// + + +///////////////////////////////////////// +// ENUMS +///////////////////////////////////////// + +export const TransactionIsolationLevelSchema = z.enum(['ReadUncommitted','ReadCommitted','RepeatableRead','Serializable']); + +export const AccountScalarFieldEnumSchema = z.enum(['id','userId','type','provider','providerAccountId','refresh_token','access_token','expires_at','ext_expires_in','token_type','scope','id_token','session_state','oauth_token_secret','oauth_token']); + +export const SessionScalarFieldEnumSchema = z.enum(['id','sessionToken','userId','expires']); + +export const UserScalarFieldEnumSchema = z.enum(['id','name','email','emailVerified','image','createdAt','updatedAt']); + +export const VerificationTokenScalarFieldEnumSchema = z.enum(['identifier','token','expires']); + +export const GameScalarFieldEnumSchema = z.enum(['id','createdAt','updatedAt','state','allowSpectators','allowSpecials','allowChat','allowMarkDraw']); + +export const GamepinScalarFieldEnumSchema = z.enum(['id','createdAt','pin','gameId']); + +export const ShipScalarFieldEnumSchema = z.enum(['id','size','variant','x','y','orientation','user_GameId']); + +export const HitScalarFieldEnumSchema = z.enum(['id','x','y','hit','user_GameId']); + +export const User_GameScalarFieldEnumSchema = z.enum(['id','createdAt','gameId','userId','index']); + +export const MoveScalarFieldEnumSchema = z.enum(['id','createdAt','index','type','x','y','orientation','user_game_id']); + +export const ChatScalarFieldEnumSchema = z.enum(['id','createdAt','message','event','user_game_id']); + +export const SortOrderSchema = z.enum(['asc','desc']); + +export const QueryModeSchema = z.enum(['default','insensitive']); + +export const NullsOrderSchema = z.enum(['first','last']); + +export const GameStateSchema = z.enum(['lobby','starting','running','ended','aborted']); + +export type GameStateType = `${z.infer}` + +export const OrientationSchema = z.enum(['h','v']); + +export type OrientationType = `${z.infer}` + +export const MoveTypeSchema = z.enum(['missile','vtorpedo','htorpedo','radar']); + +export type MoveTypeType = `${z.infer}` + +///////////////////////////////////////// +// MODELS +///////////////////////////////////////// + +///////////////////////////////////////// +// ACCOUNT SCHEMA +///////////////////////////////////////// + +export const AccountSchema = z.object({ + id: z.string().cuid(), + userId: z.string(), + type: z.string(), + provider: z.string(), + providerAccountId: z.string(), + refresh_token: z.string().nullable(), + access_token: z.string().nullable(), + expires_at: z.number().int().nullable(), + ext_expires_in: z.number().int().nullable(), + token_type: z.string().nullable(), + scope: z.string().nullable(), + id_token: z.string().nullable(), + session_state: z.string().nullable(), + oauth_token_secret: z.string().nullable(), + oauth_token: z.string().nullable(), +}) + +export type Account = z.infer + +///////////////////////////////////////// +// SESSION SCHEMA +///////////////////////////////////////// + +export const SessionSchema = z.object({ + id: z.string().cuid(), + sessionToken: z.string(), + userId: z.string(), + expires: z.coerce.date(), +}) + +export type Session = z.infer + +///////////////////////////////////////// +// USER SCHEMA +///////////////////////////////////////// + +export const UserSchema = z.object({ + id: z.string().cuid(), + name: z.string().nullable(), + email: z.string().nullable(), + emailVerified: z.coerce.date().nullable(), + image: z.string().nullable(), + createdAt: z.coerce.date(), + updatedAt: z.coerce.date(), +}) + +export type User = z.infer + +///////////////////////////////////////// +// VERIFICATION TOKEN SCHEMA +///////////////////////////////////////// + +export const VerificationTokenSchema = z.object({ + identifier: z.string(), + token: z.string(), + expires: z.coerce.date(), +}) + +export type VerificationToken = z.infer + +///////////////////////////////////////// +// GAME SCHEMA +///////////////////////////////////////// + +export const GameSchema = z.object({ + state: GameStateSchema, + id: z.string().cuid(), + createdAt: z.coerce.date(), + updatedAt: z.coerce.date(), + allowSpectators: z.boolean(), + allowSpecials: z.boolean(), + allowChat: z.boolean(), + allowMarkDraw: z.boolean(), +}) + +export type Game = z.infer + +///////////////////////////////////////// +// GAMEPIN SCHEMA +///////////////////////////////////////// + +export const GamepinSchema = z.object({ + id: z.string().cuid(), + createdAt: z.coerce.date(), + pin: z.string(), + gameId: z.string(), +}) + +export type Gamepin = z.infer + +///////////////////////////////////////// +// SHIP SCHEMA +///////////////////////////////////////// + +export const ShipSchema = z.object({ + orientation: OrientationSchema, + id: z.string().cuid(), + size: z.number().int(), + variant: z.number().int(), + x: z.number().int(), + y: z.number().int(), + user_GameId: z.string(), +}) + +export type Ship = z.infer + +///////////////////////////////////////// +// HIT SCHEMA +///////////////////////////////////////// + +export const HitSchema = z.object({ + id: z.string().cuid(), + x: z.number().int(), + y: z.number().int(), + hit: z.boolean(), + user_GameId: z.string(), +}) + +export type Hit = z.infer + +///////////////////////////////////////// +// USER GAME SCHEMA +///////////////////////////////////////// + +export const User_GameSchema = z.object({ + id: z.string().cuid(), + createdAt: z.coerce.date(), + gameId: z.string(), + userId: z.string(), + index: z.number().int(), +}) + +export type User_Game = z.infer + +///////////////////////////////////////// +// MOVE SCHEMA +///////////////////////////////////////// + +export const MoveSchema = z.object({ + type: MoveTypeSchema, + orientation: OrientationSchema, + id: z.string().cuid(), + createdAt: z.coerce.date(), + index: z.number().int(), + x: z.number().int(), + y: z.number().int(), + user_game_id: z.string(), +}) + +export type Move = z.infer + +///////////////////////////////////////// +// CHAT SCHEMA +///////////////////////////////////////// + +export const ChatSchema = z.object({ + id: z.string().cuid(), + createdAt: z.coerce.date(), + message: z.string().nullable(), + event: z.string().nullable(), + user_game_id: z.string(), +}) + +export type Chat = z.infer + +///////////////////////////////////////// +// SELECT & INCLUDE +///////////////////////////////////////// + +// ACCOUNT +//------------------------------------------------------ + +export const AccountIncludeSchema: z.ZodType = z.object({ + user: z.union([z.boolean(),z.lazy(() => UserArgsSchema)]).optional(), +}).strict() + +export const AccountArgsSchema: z.ZodType = z.object({ + select: z.lazy(() => AccountSelectSchema).optional(), + include: z.lazy(() => AccountIncludeSchema).optional(), +}).strict(); + +export const AccountSelectSchema: z.ZodType = z.object({ + id: z.boolean().optional(), + userId: z.boolean().optional(), + type: z.boolean().optional(), + provider: z.boolean().optional(), + providerAccountId: z.boolean().optional(), + refresh_token: z.boolean().optional(), + access_token: z.boolean().optional(), + expires_at: z.boolean().optional(), + ext_expires_in: z.boolean().optional(), + token_type: z.boolean().optional(), + scope: z.boolean().optional(), + id_token: z.boolean().optional(), + session_state: z.boolean().optional(), + oauth_token_secret: z.boolean().optional(), + oauth_token: z.boolean().optional(), + user: z.union([z.boolean(),z.lazy(() => UserArgsSchema)]).optional(), +}).strict() + +// SESSION +//------------------------------------------------------ + +export const SessionIncludeSchema: z.ZodType = z.object({ + user: z.union([z.boolean(),z.lazy(() => UserArgsSchema)]).optional(), +}).strict() + +export const SessionArgsSchema: z.ZodType = z.object({ + select: z.lazy(() => SessionSelectSchema).optional(), + include: z.lazy(() => SessionIncludeSchema).optional(), +}).strict(); + +export const SessionSelectSchema: z.ZodType = z.object({ + id: z.boolean().optional(), + sessionToken: z.boolean().optional(), + userId: z.boolean().optional(), + expires: z.boolean().optional(), + user: z.union([z.boolean(),z.lazy(() => UserArgsSchema)]).optional(), +}).strict() + +// USER +//------------------------------------------------------ + +export const UserIncludeSchema: z.ZodType = z.object({ + games: z.union([z.boolean(),z.lazy(() => User_GameFindManyArgsSchema)]).optional(), + accounts: z.union([z.boolean(),z.lazy(() => AccountFindManyArgsSchema)]).optional(), + sessions: z.union([z.boolean(),z.lazy(() => SessionFindManyArgsSchema)]).optional(), + _count: z.union([z.boolean(),z.lazy(() => UserCountOutputTypeArgsSchema)]).optional(), +}).strict() + +export const UserArgsSchema: z.ZodType = z.object({ + select: z.lazy(() => UserSelectSchema).optional(), + include: z.lazy(() => UserIncludeSchema).optional(), +}).strict(); + +export const UserCountOutputTypeArgsSchema: z.ZodType = z.object({ + select: z.lazy(() => UserCountOutputTypeSelectSchema).nullish(), +}).strict(); + +export const UserCountOutputTypeSelectSchema: z.ZodType = z.object({ + games: z.boolean().optional(), + accounts: z.boolean().optional(), + sessions: z.boolean().optional(), +}).strict(); + +export const UserSelectSchema: z.ZodType = z.object({ + id: z.boolean().optional(), + name: z.boolean().optional(), + email: z.boolean().optional(), + emailVerified: z.boolean().optional(), + image: z.boolean().optional(), + createdAt: z.boolean().optional(), + updatedAt: z.boolean().optional(), + games: z.union([z.boolean(),z.lazy(() => User_GameFindManyArgsSchema)]).optional(), + accounts: z.union([z.boolean(),z.lazy(() => AccountFindManyArgsSchema)]).optional(), + sessions: z.union([z.boolean(),z.lazy(() => SessionFindManyArgsSchema)]).optional(), + _count: z.union([z.boolean(),z.lazy(() => UserCountOutputTypeArgsSchema)]).optional(), +}).strict() + +// VERIFICATION TOKEN +//------------------------------------------------------ + +export const VerificationTokenSelectSchema: z.ZodType = z.object({ + identifier: z.boolean().optional(), + token: z.boolean().optional(), + expires: z.boolean().optional(), +}).strict() + +// GAME +//------------------------------------------------------ + +export const GameIncludeSchema: z.ZodType = z.object({ + gamePin: z.union([z.boolean(),z.lazy(() => GamepinArgsSchema)]).optional(), + users: z.union([z.boolean(),z.lazy(() => User_GameFindManyArgsSchema)]).optional(), + _count: z.union([z.boolean(),z.lazy(() => GameCountOutputTypeArgsSchema)]).optional(), +}).strict() + +export const GameArgsSchema: z.ZodType = z.object({ + select: z.lazy(() => GameSelectSchema).optional(), + include: z.lazy(() => GameIncludeSchema).optional(), +}).strict(); + +export const GameCountOutputTypeArgsSchema: z.ZodType = z.object({ + select: z.lazy(() => GameCountOutputTypeSelectSchema).nullish(), +}).strict(); + +export const GameCountOutputTypeSelectSchema: z.ZodType = z.object({ + users: z.boolean().optional(), +}).strict(); + +export const GameSelectSchema: z.ZodType = z.object({ + id: z.boolean().optional(), + createdAt: z.boolean().optional(), + updatedAt: z.boolean().optional(), + state: z.boolean().optional(), + allowSpectators: z.boolean().optional(), + allowSpecials: z.boolean().optional(), + allowChat: z.boolean().optional(), + allowMarkDraw: z.boolean().optional(), + gamePin: z.union([z.boolean(),z.lazy(() => GamepinArgsSchema)]).optional(), + users: z.union([z.boolean(),z.lazy(() => User_GameFindManyArgsSchema)]).optional(), + _count: z.union([z.boolean(),z.lazy(() => GameCountOutputTypeArgsSchema)]).optional(), +}).strict() + +// GAMEPIN +//------------------------------------------------------ + +export const GamepinIncludeSchema: z.ZodType = z.object({ + game: z.union([z.boolean(),z.lazy(() => GameArgsSchema)]).optional(), +}).strict() + +export const GamepinArgsSchema: z.ZodType = z.object({ + select: z.lazy(() => GamepinSelectSchema).optional(), + include: z.lazy(() => GamepinIncludeSchema).optional(), +}).strict(); + +export const GamepinSelectSchema: z.ZodType = z.object({ + id: z.boolean().optional(), + createdAt: z.boolean().optional(), + pin: z.boolean().optional(), + gameId: z.boolean().optional(), + game: z.union([z.boolean(),z.lazy(() => GameArgsSchema)]).optional(), +}).strict() + +// SHIP +//------------------------------------------------------ + +export const ShipIncludeSchema: z.ZodType = z.object({ + User_Game: z.union([z.boolean(),z.lazy(() => User_GameArgsSchema)]).optional(), +}).strict() + +export const ShipArgsSchema: z.ZodType = z.object({ + select: z.lazy(() => ShipSelectSchema).optional(), + include: z.lazy(() => ShipIncludeSchema).optional(), +}).strict(); + +export const ShipSelectSchema: z.ZodType = z.object({ + id: z.boolean().optional(), + size: z.boolean().optional(), + variant: z.boolean().optional(), + x: z.boolean().optional(), + y: z.boolean().optional(), + orientation: z.boolean().optional(), + user_GameId: z.boolean().optional(), + User_Game: z.union([z.boolean(),z.lazy(() => User_GameArgsSchema)]).optional(), +}).strict() + +// HIT +//------------------------------------------------------ + +export const HitIncludeSchema: z.ZodType = z.object({ + User_Game: z.union([z.boolean(),z.lazy(() => User_GameArgsSchema)]).optional(), +}).strict() + +export const HitArgsSchema: z.ZodType = z.object({ + select: z.lazy(() => HitSelectSchema).optional(), + include: z.lazy(() => HitIncludeSchema).optional(), +}).strict(); + +export const HitSelectSchema: z.ZodType = z.object({ + id: z.boolean().optional(), + x: z.boolean().optional(), + y: z.boolean().optional(), + hit: z.boolean().optional(), + user_GameId: z.boolean().optional(), + User_Game: z.union([z.boolean(),z.lazy(() => User_GameArgsSchema)]).optional(), +}).strict() + +// USER GAME +//------------------------------------------------------ + +export const User_GameIncludeSchema: z.ZodType = z.object({ + moves: z.union([z.boolean(),z.lazy(() => MoveFindManyArgsSchema)]).optional(), + ships: z.union([z.boolean(),z.lazy(() => ShipFindManyArgsSchema)]).optional(), + hits: z.union([z.boolean(),z.lazy(() => HitFindManyArgsSchema)]).optional(), + chats: z.union([z.boolean(),z.lazy(() => ChatFindManyArgsSchema)]).optional(), + game: z.union([z.boolean(),z.lazy(() => GameArgsSchema)]).optional(), + user: z.union([z.boolean(),z.lazy(() => UserArgsSchema)]).optional(), + _count: z.union([z.boolean(),z.lazy(() => User_GameCountOutputTypeArgsSchema)]).optional(), +}).strict() + +export const User_GameArgsSchema: z.ZodType = z.object({ + select: z.lazy(() => User_GameSelectSchema).optional(), + include: z.lazy(() => User_GameIncludeSchema).optional(), +}).strict(); + +export const User_GameCountOutputTypeArgsSchema: z.ZodType = z.object({ + select: z.lazy(() => User_GameCountOutputTypeSelectSchema).nullish(), +}).strict(); + +export const User_GameCountOutputTypeSelectSchema: z.ZodType = z.object({ + moves: z.boolean().optional(), + ships: z.boolean().optional(), + hits: z.boolean().optional(), + chats: z.boolean().optional(), +}).strict(); + +export const User_GameSelectSchema: z.ZodType = z.object({ + id: z.boolean().optional(), + createdAt: z.boolean().optional(), + gameId: z.boolean().optional(), + userId: z.boolean().optional(), + index: z.boolean().optional(), + moves: z.union([z.boolean(),z.lazy(() => MoveFindManyArgsSchema)]).optional(), + ships: z.union([z.boolean(),z.lazy(() => ShipFindManyArgsSchema)]).optional(), + hits: z.union([z.boolean(),z.lazy(() => HitFindManyArgsSchema)]).optional(), + chats: z.union([z.boolean(),z.lazy(() => ChatFindManyArgsSchema)]).optional(), + game: z.union([z.boolean(),z.lazy(() => GameArgsSchema)]).optional(), + user: z.union([z.boolean(),z.lazy(() => UserArgsSchema)]).optional(), + _count: z.union([z.boolean(),z.lazy(() => User_GameCountOutputTypeArgsSchema)]).optional(), +}).strict() + +// MOVE +//------------------------------------------------------ + +export const MoveIncludeSchema: z.ZodType = z.object({ + user_game: z.union([z.boolean(),z.lazy(() => User_GameArgsSchema)]).optional(), +}).strict() + +export const MoveArgsSchema: z.ZodType = z.object({ + select: z.lazy(() => MoveSelectSchema).optional(), + include: z.lazy(() => MoveIncludeSchema).optional(), +}).strict(); + +export const MoveSelectSchema: z.ZodType = z.object({ + id: z.boolean().optional(), + createdAt: z.boolean().optional(), + index: z.boolean().optional(), + type: z.boolean().optional(), + x: z.boolean().optional(), + y: z.boolean().optional(), + orientation: z.boolean().optional(), + user_game_id: z.boolean().optional(), + user_game: z.union([z.boolean(),z.lazy(() => User_GameArgsSchema)]).optional(), +}).strict() + +// CHAT +//------------------------------------------------------ + +export const ChatIncludeSchema: z.ZodType = z.object({ + user_game: z.union([z.boolean(),z.lazy(() => User_GameArgsSchema)]).optional(), +}).strict() + +export const ChatArgsSchema: z.ZodType = z.object({ + select: z.lazy(() => ChatSelectSchema).optional(), + include: z.lazy(() => ChatIncludeSchema).optional(), +}).strict(); + +export const ChatSelectSchema: z.ZodType = z.object({ + id: z.boolean().optional(), + createdAt: z.boolean().optional(), + message: z.boolean().optional(), + event: z.boolean().optional(), + user_game_id: z.boolean().optional(), + user_game: z.union([z.boolean(),z.lazy(() => User_GameArgsSchema)]).optional(), +}).strict() + + +///////////////////////////////////////// +// INPUT TYPES +///////////////////////////////////////// + +export const AccountWhereInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => AccountWhereInputSchema),z.lazy(() => AccountWhereInputSchema).array() ]).optional(), + OR: z.lazy(() => AccountWhereInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => AccountWhereInputSchema),z.lazy(() => AccountWhereInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + userId: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + type: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + provider: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + providerAccountId: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + refresh_token: z.union([ z.lazy(() => StringNullableFilterSchema),z.string() ]).optional().nullable(), + access_token: z.union([ z.lazy(() => StringNullableFilterSchema),z.string() ]).optional().nullable(), + expires_at: z.union([ z.lazy(() => IntNullableFilterSchema),z.number() ]).optional().nullable(), + ext_expires_in: z.union([ z.lazy(() => IntNullableFilterSchema),z.number() ]).optional().nullable(), + token_type: z.union([ z.lazy(() => StringNullableFilterSchema),z.string() ]).optional().nullable(), + scope: z.union([ z.lazy(() => StringNullableFilterSchema),z.string() ]).optional().nullable(), + id_token: z.union([ z.lazy(() => StringNullableFilterSchema),z.string() ]).optional().nullable(), + session_state: z.union([ z.lazy(() => StringNullableFilterSchema),z.string() ]).optional().nullable(), + oauth_token_secret: z.union([ z.lazy(() => StringNullableFilterSchema),z.string() ]).optional().nullable(), + oauth_token: z.union([ z.lazy(() => StringNullableFilterSchema),z.string() ]).optional().nullable(), + user: z.union([ z.lazy(() => UserRelationFilterSchema),z.lazy(() => UserWhereInputSchema) ]).optional(), +}).strict(); + +export const AccountOrderByWithRelationInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + userId: z.lazy(() => SortOrderSchema).optional(), + type: z.lazy(() => SortOrderSchema).optional(), + provider: z.lazy(() => SortOrderSchema).optional(), + providerAccountId: z.lazy(() => SortOrderSchema).optional(), + refresh_token: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + access_token: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + expires_at: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + ext_expires_in: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + token_type: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + scope: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + id_token: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + session_state: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + oauth_token_secret: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + oauth_token: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + user: z.lazy(() => UserOrderByWithRelationInputSchema).optional() +}).strict(); + +export const AccountWhereUniqueInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + provider_providerAccountId: z.lazy(() => AccountProviderProviderAccountIdCompoundUniqueInputSchema).optional() +}).strict(); + +export const AccountOrderByWithAggregationInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + userId: z.lazy(() => SortOrderSchema).optional(), + type: z.lazy(() => SortOrderSchema).optional(), + provider: z.lazy(() => SortOrderSchema).optional(), + providerAccountId: z.lazy(() => SortOrderSchema).optional(), + refresh_token: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + access_token: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + expires_at: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + ext_expires_in: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + token_type: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + scope: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + id_token: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + session_state: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + oauth_token_secret: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + oauth_token: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + _count: z.lazy(() => AccountCountOrderByAggregateInputSchema).optional(), + _avg: z.lazy(() => AccountAvgOrderByAggregateInputSchema).optional(), + _max: z.lazy(() => AccountMaxOrderByAggregateInputSchema).optional(), + _min: z.lazy(() => AccountMinOrderByAggregateInputSchema).optional(), + _sum: z.lazy(() => AccountSumOrderByAggregateInputSchema).optional() +}).strict(); + +export const AccountScalarWhereWithAggregatesInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => AccountScalarWhereWithAggregatesInputSchema),z.lazy(() => AccountScalarWhereWithAggregatesInputSchema).array() ]).optional(), + OR: z.lazy(() => AccountScalarWhereWithAggregatesInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => AccountScalarWhereWithAggregatesInputSchema),z.lazy(() => AccountScalarWhereWithAggregatesInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringWithAggregatesFilterSchema),z.string() ]).optional(), + userId: z.union([ z.lazy(() => StringWithAggregatesFilterSchema),z.string() ]).optional(), + type: z.union([ z.lazy(() => StringWithAggregatesFilterSchema),z.string() ]).optional(), + provider: z.union([ z.lazy(() => StringWithAggregatesFilterSchema),z.string() ]).optional(), + providerAccountId: z.union([ z.lazy(() => StringWithAggregatesFilterSchema),z.string() ]).optional(), + refresh_token: z.union([ z.lazy(() => StringNullableWithAggregatesFilterSchema),z.string() ]).optional().nullable(), + access_token: z.union([ z.lazy(() => StringNullableWithAggregatesFilterSchema),z.string() ]).optional().nullable(), + expires_at: z.union([ z.lazy(() => IntNullableWithAggregatesFilterSchema),z.number() ]).optional().nullable(), + ext_expires_in: z.union([ z.lazy(() => IntNullableWithAggregatesFilterSchema),z.number() ]).optional().nullable(), + token_type: z.union([ z.lazy(() => StringNullableWithAggregatesFilterSchema),z.string() ]).optional().nullable(), + scope: z.union([ z.lazy(() => StringNullableWithAggregatesFilterSchema),z.string() ]).optional().nullable(), + id_token: z.union([ z.lazy(() => StringNullableWithAggregatesFilterSchema),z.string() ]).optional().nullable(), + session_state: z.union([ z.lazy(() => StringNullableWithAggregatesFilterSchema),z.string() ]).optional().nullable(), + oauth_token_secret: z.union([ z.lazy(() => StringNullableWithAggregatesFilterSchema),z.string() ]).optional().nullable(), + oauth_token: z.union([ z.lazy(() => StringNullableWithAggregatesFilterSchema),z.string() ]).optional().nullable(), +}).strict(); + +export const SessionWhereInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => SessionWhereInputSchema),z.lazy(() => SessionWhereInputSchema).array() ]).optional(), + OR: z.lazy(() => SessionWhereInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => SessionWhereInputSchema),z.lazy(() => SessionWhereInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + sessionToken: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + userId: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + expires: z.union([ z.lazy(() => DateTimeFilterSchema),z.coerce.date() ]).optional(), + user: z.union([ z.lazy(() => UserRelationFilterSchema),z.lazy(() => UserWhereInputSchema) ]).optional(), +}).strict(); + +export const SessionOrderByWithRelationInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + sessionToken: z.lazy(() => SortOrderSchema).optional(), + userId: z.lazy(() => SortOrderSchema).optional(), + expires: z.lazy(() => SortOrderSchema).optional(), + user: z.lazy(() => UserOrderByWithRelationInputSchema).optional() +}).strict(); + +export const SessionWhereUniqueInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + sessionToken: z.string().optional() +}).strict(); + +export const SessionOrderByWithAggregationInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + sessionToken: z.lazy(() => SortOrderSchema).optional(), + userId: z.lazy(() => SortOrderSchema).optional(), + expires: z.lazy(() => SortOrderSchema).optional(), + _count: z.lazy(() => SessionCountOrderByAggregateInputSchema).optional(), + _max: z.lazy(() => SessionMaxOrderByAggregateInputSchema).optional(), + _min: z.lazy(() => SessionMinOrderByAggregateInputSchema).optional() +}).strict(); + +export const SessionScalarWhereWithAggregatesInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => SessionScalarWhereWithAggregatesInputSchema),z.lazy(() => SessionScalarWhereWithAggregatesInputSchema).array() ]).optional(), + OR: z.lazy(() => SessionScalarWhereWithAggregatesInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => SessionScalarWhereWithAggregatesInputSchema),z.lazy(() => SessionScalarWhereWithAggregatesInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringWithAggregatesFilterSchema),z.string() ]).optional(), + sessionToken: z.union([ z.lazy(() => StringWithAggregatesFilterSchema),z.string() ]).optional(), + userId: z.union([ z.lazy(() => StringWithAggregatesFilterSchema),z.string() ]).optional(), + expires: z.union([ z.lazy(() => DateTimeWithAggregatesFilterSchema),z.coerce.date() ]).optional(), +}).strict(); + +export const UserWhereInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => UserWhereInputSchema),z.lazy(() => UserWhereInputSchema).array() ]).optional(), + OR: z.lazy(() => UserWhereInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => UserWhereInputSchema),z.lazy(() => UserWhereInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + name: z.union([ z.lazy(() => StringNullableFilterSchema),z.string() ]).optional().nullable(), + email: z.union([ z.lazy(() => StringNullableFilterSchema),z.string() ]).optional().nullable(), + emailVerified: z.union([ z.lazy(() => DateTimeNullableFilterSchema),z.coerce.date() ]).optional().nullable(), + image: z.union([ z.lazy(() => StringNullableFilterSchema),z.string() ]).optional().nullable(), + createdAt: z.union([ z.lazy(() => DateTimeFilterSchema),z.coerce.date() ]).optional(), + updatedAt: z.union([ z.lazy(() => DateTimeFilterSchema),z.coerce.date() ]).optional(), + games: z.lazy(() => User_GameListRelationFilterSchema).optional(), + accounts: z.lazy(() => AccountListRelationFilterSchema).optional(), + sessions: z.lazy(() => SessionListRelationFilterSchema).optional() +}).strict(); + +export const UserOrderByWithRelationInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + name: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + email: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + emailVerified: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + image: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + updatedAt: z.lazy(() => SortOrderSchema).optional(), + games: z.lazy(() => User_GameOrderByRelationAggregateInputSchema).optional(), + accounts: z.lazy(() => AccountOrderByRelationAggregateInputSchema).optional(), + sessions: z.lazy(() => SessionOrderByRelationAggregateInputSchema).optional() +}).strict(); + +export const UserWhereUniqueInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + email: z.string().optional() +}).strict(); + +export const UserOrderByWithAggregationInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + name: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + email: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + emailVerified: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + image: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + updatedAt: z.lazy(() => SortOrderSchema).optional(), + _count: z.lazy(() => UserCountOrderByAggregateInputSchema).optional(), + _max: z.lazy(() => UserMaxOrderByAggregateInputSchema).optional(), + _min: z.lazy(() => UserMinOrderByAggregateInputSchema).optional() +}).strict(); + +export const UserScalarWhereWithAggregatesInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => UserScalarWhereWithAggregatesInputSchema),z.lazy(() => UserScalarWhereWithAggregatesInputSchema).array() ]).optional(), + OR: z.lazy(() => UserScalarWhereWithAggregatesInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => UserScalarWhereWithAggregatesInputSchema),z.lazy(() => UserScalarWhereWithAggregatesInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringWithAggregatesFilterSchema),z.string() ]).optional(), + name: z.union([ z.lazy(() => StringNullableWithAggregatesFilterSchema),z.string() ]).optional().nullable(), + email: z.union([ z.lazy(() => StringNullableWithAggregatesFilterSchema),z.string() ]).optional().nullable(), + emailVerified: z.union([ z.lazy(() => DateTimeNullableWithAggregatesFilterSchema),z.coerce.date() ]).optional().nullable(), + image: z.union([ z.lazy(() => StringNullableWithAggregatesFilterSchema),z.string() ]).optional().nullable(), + createdAt: z.union([ z.lazy(() => DateTimeWithAggregatesFilterSchema),z.coerce.date() ]).optional(), + updatedAt: z.union([ z.lazy(() => DateTimeWithAggregatesFilterSchema),z.coerce.date() ]).optional(), +}).strict(); + +export const VerificationTokenWhereInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => VerificationTokenWhereInputSchema),z.lazy(() => VerificationTokenWhereInputSchema).array() ]).optional(), + OR: z.lazy(() => VerificationTokenWhereInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => VerificationTokenWhereInputSchema),z.lazy(() => VerificationTokenWhereInputSchema).array() ]).optional(), + identifier: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + token: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + expires: z.union([ z.lazy(() => DateTimeFilterSchema),z.coerce.date() ]).optional(), +}).strict(); + +export const VerificationTokenOrderByWithRelationInputSchema: z.ZodType = z.object({ + identifier: z.lazy(() => SortOrderSchema).optional(), + token: z.lazy(() => SortOrderSchema).optional(), + expires: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const VerificationTokenWhereUniqueInputSchema: z.ZodType = z.object({ + token: z.string().optional(), + identifier_token: z.lazy(() => VerificationTokenIdentifierTokenCompoundUniqueInputSchema).optional() +}).strict(); + +export const VerificationTokenOrderByWithAggregationInputSchema: z.ZodType = z.object({ + identifier: z.lazy(() => SortOrderSchema).optional(), + token: z.lazy(() => SortOrderSchema).optional(), + expires: z.lazy(() => SortOrderSchema).optional(), + _count: z.lazy(() => VerificationTokenCountOrderByAggregateInputSchema).optional(), + _max: z.lazy(() => VerificationTokenMaxOrderByAggregateInputSchema).optional(), + _min: z.lazy(() => VerificationTokenMinOrderByAggregateInputSchema).optional() +}).strict(); + +export const VerificationTokenScalarWhereWithAggregatesInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => VerificationTokenScalarWhereWithAggregatesInputSchema),z.lazy(() => VerificationTokenScalarWhereWithAggregatesInputSchema).array() ]).optional(), + OR: z.lazy(() => VerificationTokenScalarWhereWithAggregatesInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => VerificationTokenScalarWhereWithAggregatesInputSchema),z.lazy(() => VerificationTokenScalarWhereWithAggregatesInputSchema).array() ]).optional(), + identifier: z.union([ z.lazy(() => StringWithAggregatesFilterSchema),z.string() ]).optional(), + token: z.union([ z.lazy(() => StringWithAggregatesFilterSchema),z.string() ]).optional(), + expires: z.union([ z.lazy(() => DateTimeWithAggregatesFilterSchema),z.coerce.date() ]).optional(), +}).strict(); + +export const GameWhereInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => GameWhereInputSchema),z.lazy(() => GameWhereInputSchema).array() ]).optional(), + OR: z.lazy(() => GameWhereInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => GameWhereInputSchema),z.lazy(() => GameWhereInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + createdAt: z.union([ z.lazy(() => DateTimeFilterSchema),z.coerce.date() ]).optional(), + updatedAt: z.union([ z.lazy(() => DateTimeFilterSchema),z.coerce.date() ]).optional(), + state: z.union([ z.lazy(() => EnumGameStateFilterSchema),z.lazy(() => GameStateSchema) ]).optional(), + allowSpectators: z.union([ z.lazy(() => BoolFilterSchema),z.boolean() ]).optional(), + allowSpecials: z.union([ z.lazy(() => BoolFilterSchema),z.boolean() ]).optional(), + allowChat: z.union([ z.lazy(() => BoolFilterSchema),z.boolean() ]).optional(), + allowMarkDraw: z.union([ z.lazy(() => BoolFilterSchema),z.boolean() ]).optional(), + gamePin: z.union([ z.lazy(() => GamepinRelationFilterSchema),z.lazy(() => GamepinWhereInputSchema) ]).optional().nullable(), + users: z.lazy(() => User_GameListRelationFilterSchema).optional() +}).strict(); + +export const GameOrderByWithRelationInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + updatedAt: z.lazy(() => SortOrderSchema).optional(), + state: z.lazy(() => SortOrderSchema).optional(), + allowSpectators: z.lazy(() => SortOrderSchema).optional(), + allowSpecials: z.lazy(() => SortOrderSchema).optional(), + allowChat: z.lazy(() => SortOrderSchema).optional(), + allowMarkDraw: z.lazy(() => SortOrderSchema).optional(), + gamePin: z.lazy(() => GamepinOrderByWithRelationInputSchema).optional(), + users: z.lazy(() => User_GameOrderByRelationAggregateInputSchema).optional() +}).strict(); + +export const GameWhereUniqueInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional() +}).strict(); + +export const GameOrderByWithAggregationInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + updatedAt: z.lazy(() => SortOrderSchema).optional(), + state: z.lazy(() => SortOrderSchema).optional(), + allowSpectators: z.lazy(() => SortOrderSchema).optional(), + allowSpecials: z.lazy(() => SortOrderSchema).optional(), + allowChat: z.lazy(() => SortOrderSchema).optional(), + allowMarkDraw: z.lazy(() => SortOrderSchema).optional(), + _count: z.lazy(() => GameCountOrderByAggregateInputSchema).optional(), + _max: z.lazy(() => GameMaxOrderByAggregateInputSchema).optional(), + _min: z.lazy(() => GameMinOrderByAggregateInputSchema).optional() +}).strict(); + +export const GameScalarWhereWithAggregatesInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => GameScalarWhereWithAggregatesInputSchema),z.lazy(() => GameScalarWhereWithAggregatesInputSchema).array() ]).optional(), + OR: z.lazy(() => GameScalarWhereWithAggregatesInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => GameScalarWhereWithAggregatesInputSchema),z.lazy(() => GameScalarWhereWithAggregatesInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringWithAggregatesFilterSchema),z.string() ]).optional(), + createdAt: z.union([ z.lazy(() => DateTimeWithAggregatesFilterSchema),z.coerce.date() ]).optional(), + updatedAt: z.union([ z.lazy(() => DateTimeWithAggregatesFilterSchema),z.coerce.date() ]).optional(), + state: z.union([ z.lazy(() => EnumGameStateWithAggregatesFilterSchema),z.lazy(() => GameStateSchema) ]).optional(), + allowSpectators: z.union([ z.lazy(() => BoolWithAggregatesFilterSchema),z.boolean() ]).optional(), + allowSpecials: z.union([ z.lazy(() => BoolWithAggregatesFilterSchema),z.boolean() ]).optional(), + allowChat: z.union([ z.lazy(() => BoolWithAggregatesFilterSchema),z.boolean() ]).optional(), + allowMarkDraw: z.union([ z.lazy(() => BoolWithAggregatesFilterSchema),z.boolean() ]).optional(), +}).strict(); + +export const GamepinWhereInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => GamepinWhereInputSchema),z.lazy(() => GamepinWhereInputSchema).array() ]).optional(), + OR: z.lazy(() => GamepinWhereInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => GamepinWhereInputSchema),z.lazy(() => GamepinWhereInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + createdAt: z.union([ z.lazy(() => DateTimeFilterSchema),z.coerce.date() ]).optional(), + pin: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + gameId: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + game: z.union([ z.lazy(() => GameRelationFilterSchema),z.lazy(() => GameWhereInputSchema) ]).optional(), +}).strict(); + +export const GamepinOrderByWithRelationInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + pin: z.lazy(() => SortOrderSchema).optional(), + gameId: z.lazy(() => SortOrderSchema).optional(), + game: z.lazy(() => GameOrderByWithRelationInputSchema).optional() +}).strict(); + +export const GamepinWhereUniqueInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + pin: z.string().optional(), + gameId: z.string().optional() +}).strict(); + +export const GamepinOrderByWithAggregationInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + pin: z.lazy(() => SortOrderSchema).optional(), + gameId: z.lazy(() => SortOrderSchema).optional(), + _count: z.lazy(() => GamepinCountOrderByAggregateInputSchema).optional(), + _max: z.lazy(() => GamepinMaxOrderByAggregateInputSchema).optional(), + _min: z.lazy(() => GamepinMinOrderByAggregateInputSchema).optional() +}).strict(); + +export const GamepinScalarWhereWithAggregatesInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => GamepinScalarWhereWithAggregatesInputSchema),z.lazy(() => GamepinScalarWhereWithAggregatesInputSchema).array() ]).optional(), + OR: z.lazy(() => GamepinScalarWhereWithAggregatesInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => GamepinScalarWhereWithAggregatesInputSchema),z.lazy(() => GamepinScalarWhereWithAggregatesInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringWithAggregatesFilterSchema),z.string() ]).optional(), + createdAt: z.union([ z.lazy(() => DateTimeWithAggregatesFilterSchema),z.coerce.date() ]).optional(), + pin: z.union([ z.lazy(() => StringWithAggregatesFilterSchema),z.string() ]).optional(), + gameId: z.union([ z.lazy(() => StringWithAggregatesFilterSchema),z.string() ]).optional(), +}).strict(); + +export const ShipWhereInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => ShipWhereInputSchema),z.lazy(() => ShipWhereInputSchema).array() ]).optional(), + OR: z.lazy(() => ShipWhereInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => ShipWhereInputSchema),z.lazy(() => ShipWhereInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + size: z.union([ z.lazy(() => IntFilterSchema),z.number() ]).optional(), + variant: z.union([ z.lazy(() => IntFilterSchema),z.number() ]).optional(), + x: z.union([ z.lazy(() => IntFilterSchema),z.number() ]).optional(), + y: z.union([ z.lazy(() => IntFilterSchema),z.number() ]).optional(), + orientation: z.union([ z.lazy(() => EnumOrientationFilterSchema),z.lazy(() => OrientationSchema) ]).optional(), + user_GameId: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + User_Game: z.union([ z.lazy(() => User_GameRelationFilterSchema),z.lazy(() => User_GameWhereInputSchema) ]).optional(), +}).strict(); + +export const ShipOrderByWithRelationInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + size: z.lazy(() => SortOrderSchema).optional(), + variant: z.lazy(() => SortOrderSchema).optional(), + x: z.lazy(() => SortOrderSchema).optional(), + y: z.lazy(() => SortOrderSchema).optional(), + orientation: z.lazy(() => SortOrderSchema).optional(), + user_GameId: z.lazy(() => SortOrderSchema).optional(), + User_Game: z.lazy(() => User_GameOrderByWithRelationInputSchema).optional() +}).strict(); + +export const ShipWhereUniqueInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional() +}).strict(); + +export const ShipOrderByWithAggregationInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + size: z.lazy(() => SortOrderSchema).optional(), + variant: z.lazy(() => SortOrderSchema).optional(), + x: z.lazy(() => SortOrderSchema).optional(), + y: z.lazy(() => SortOrderSchema).optional(), + orientation: z.lazy(() => SortOrderSchema).optional(), + user_GameId: z.lazy(() => SortOrderSchema).optional(), + _count: z.lazy(() => ShipCountOrderByAggregateInputSchema).optional(), + _avg: z.lazy(() => ShipAvgOrderByAggregateInputSchema).optional(), + _max: z.lazy(() => ShipMaxOrderByAggregateInputSchema).optional(), + _min: z.lazy(() => ShipMinOrderByAggregateInputSchema).optional(), + _sum: z.lazy(() => ShipSumOrderByAggregateInputSchema).optional() +}).strict(); + +export const ShipScalarWhereWithAggregatesInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => ShipScalarWhereWithAggregatesInputSchema),z.lazy(() => ShipScalarWhereWithAggregatesInputSchema).array() ]).optional(), + OR: z.lazy(() => ShipScalarWhereWithAggregatesInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => ShipScalarWhereWithAggregatesInputSchema),z.lazy(() => ShipScalarWhereWithAggregatesInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringWithAggregatesFilterSchema),z.string() ]).optional(), + size: z.union([ z.lazy(() => IntWithAggregatesFilterSchema),z.number() ]).optional(), + variant: z.union([ z.lazy(() => IntWithAggregatesFilterSchema),z.number() ]).optional(), + x: z.union([ z.lazy(() => IntWithAggregatesFilterSchema),z.number() ]).optional(), + y: z.union([ z.lazy(() => IntWithAggregatesFilterSchema),z.number() ]).optional(), + orientation: z.union([ z.lazy(() => EnumOrientationWithAggregatesFilterSchema),z.lazy(() => OrientationSchema) ]).optional(), + user_GameId: z.union([ z.lazy(() => StringWithAggregatesFilterSchema),z.string() ]).optional(), +}).strict(); + +export const HitWhereInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => HitWhereInputSchema),z.lazy(() => HitWhereInputSchema).array() ]).optional(), + OR: z.lazy(() => HitWhereInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => HitWhereInputSchema),z.lazy(() => HitWhereInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + x: z.union([ z.lazy(() => IntFilterSchema),z.number() ]).optional(), + y: z.union([ z.lazy(() => IntFilterSchema),z.number() ]).optional(), + hit: z.union([ z.lazy(() => BoolFilterSchema),z.boolean() ]).optional(), + user_GameId: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + User_Game: z.union([ z.lazy(() => User_GameRelationFilterSchema),z.lazy(() => User_GameWhereInputSchema) ]).optional(), +}).strict(); + +export const HitOrderByWithRelationInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + x: z.lazy(() => SortOrderSchema).optional(), + y: z.lazy(() => SortOrderSchema).optional(), + hit: z.lazy(() => SortOrderSchema).optional(), + user_GameId: z.lazy(() => SortOrderSchema).optional(), + User_Game: z.lazy(() => User_GameOrderByWithRelationInputSchema).optional() +}).strict(); + +export const HitWhereUniqueInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional() +}).strict(); + +export const HitOrderByWithAggregationInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + x: z.lazy(() => SortOrderSchema).optional(), + y: z.lazy(() => SortOrderSchema).optional(), + hit: z.lazy(() => SortOrderSchema).optional(), + user_GameId: z.lazy(() => SortOrderSchema).optional(), + _count: z.lazy(() => HitCountOrderByAggregateInputSchema).optional(), + _avg: z.lazy(() => HitAvgOrderByAggregateInputSchema).optional(), + _max: z.lazy(() => HitMaxOrderByAggregateInputSchema).optional(), + _min: z.lazy(() => HitMinOrderByAggregateInputSchema).optional(), + _sum: z.lazy(() => HitSumOrderByAggregateInputSchema).optional() +}).strict(); + +export const HitScalarWhereWithAggregatesInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => HitScalarWhereWithAggregatesInputSchema),z.lazy(() => HitScalarWhereWithAggregatesInputSchema).array() ]).optional(), + OR: z.lazy(() => HitScalarWhereWithAggregatesInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => HitScalarWhereWithAggregatesInputSchema),z.lazy(() => HitScalarWhereWithAggregatesInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringWithAggregatesFilterSchema),z.string() ]).optional(), + x: z.union([ z.lazy(() => IntWithAggregatesFilterSchema),z.number() ]).optional(), + y: z.union([ z.lazy(() => IntWithAggregatesFilterSchema),z.number() ]).optional(), + hit: z.union([ z.lazy(() => BoolWithAggregatesFilterSchema),z.boolean() ]).optional(), + user_GameId: z.union([ z.lazy(() => StringWithAggregatesFilterSchema),z.string() ]).optional(), +}).strict(); + +export const User_GameWhereInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => User_GameWhereInputSchema),z.lazy(() => User_GameWhereInputSchema).array() ]).optional(), + OR: z.lazy(() => User_GameWhereInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => User_GameWhereInputSchema),z.lazy(() => User_GameWhereInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + createdAt: z.union([ z.lazy(() => DateTimeFilterSchema),z.coerce.date() ]).optional(), + gameId: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + userId: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + index: z.union([ z.lazy(() => IntFilterSchema),z.number() ]).optional(), + moves: z.lazy(() => MoveListRelationFilterSchema).optional(), + ships: z.lazy(() => ShipListRelationFilterSchema).optional(), + hits: z.lazy(() => HitListRelationFilterSchema).optional(), + chats: z.lazy(() => ChatListRelationFilterSchema).optional(), + game: z.union([ z.lazy(() => GameRelationFilterSchema),z.lazy(() => GameWhereInputSchema) ]).optional(), + user: z.union([ z.lazy(() => UserRelationFilterSchema),z.lazy(() => UserWhereInputSchema) ]).optional(), +}).strict(); + +export const User_GameOrderByWithRelationInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + gameId: z.lazy(() => SortOrderSchema).optional(), + userId: z.lazy(() => SortOrderSchema).optional(), + index: z.lazy(() => SortOrderSchema).optional(), + moves: z.lazy(() => MoveOrderByRelationAggregateInputSchema).optional(), + ships: z.lazy(() => ShipOrderByRelationAggregateInputSchema).optional(), + hits: z.lazy(() => HitOrderByRelationAggregateInputSchema).optional(), + chats: z.lazy(() => ChatOrderByRelationAggregateInputSchema).optional(), + game: z.lazy(() => GameOrderByWithRelationInputSchema).optional(), + user: z.lazy(() => UserOrderByWithRelationInputSchema).optional() +}).strict(); + +export const User_GameWhereUniqueInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + gameId_index: z.lazy(() => User_GameGameIdIndexCompoundUniqueInputSchema).optional(), + gameId_userId: z.lazy(() => User_GameGameIdUserIdCompoundUniqueInputSchema).optional() +}).strict(); + +export const User_GameOrderByWithAggregationInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + gameId: z.lazy(() => SortOrderSchema).optional(), + userId: z.lazy(() => SortOrderSchema).optional(), + index: z.lazy(() => SortOrderSchema).optional(), + _count: z.lazy(() => User_GameCountOrderByAggregateInputSchema).optional(), + _avg: z.lazy(() => User_GameAvgOrderByAggregateInputSchema).optional(), + _max: z.lazy(() => User_GameMaxOrderByAggregateInputSchema).optional(), + _min: z.lazy(() => User_GameMinOrderByAggregateInputSchema).optional(), + _sum: z.lazy(() => User_GameSumOrderByAggregateInputSchema).optional() +}).strict(); + +export const User_GameScalarWhereWithAggregatesInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => User_GameScalarWhereWithAggregatesInputSchema),z.lazy(() => User_GameScalarWhereWithAggregatesInputSchema).array() ]).optional(), + OR: z.lazy(() => User_GameScalarWhereWithAggregatesInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => User_GameScalarWhereWithAggregatesInputSchema),z.lazy(() => User_GameScalarWhereWithAggregatesInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringWithAggregatesFilterSchema),z.string() ]).optional(), + createdAt: z.union([ z.lazy(() => DateTimeWithAggregatesFilterSchema),z.coerce.date() ]).optional(), + gameId: z.union([ z.lazy(() => StringWithAggregatesFilterSchema),z.string() ]).optional(), + userId: z.union([ z.lazy(() => StringWithAggregatesFilterSchema),z.string() ]).optional(), + index: z.union([ z.lazy(() => IntWithAggregatesFilterSchema),z.number() ]).optional(), +}).strict(); + +export const MoveWhereInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => MoveWhereInputSchema),z.lazy(() => MoveWhereInputSchema).array() ]).optional(), + OR: z.lazy(() => MoveWhereInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => MoveWhereInputSchema),z.lazy(() => MoveWhereInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + createdAt: z.union([ z.lazy(() => DateTimeFilterSchema),z.coerce.date() ]).optional(), + index: z.union([ z.lazy(() => IntFilterSchema),z.number() ]).optional(), + type: z.union([ z.lazy(() => EnumMoveTypeFilterSchema),z.lazy(() => MoveTypeSchema) ]).optional(), + x: z.union([ z.lazy(() => IntFilterSchema),z.number() ]).optional(), + y: z.union([ z.lazy(() => IntFilterSchema),z.number() ]).optional(), + orientation: z.union([ z.lazy(() => EnumOrientationFilterSchema),z.lazy(() => OrientationSchema) ]).optional(), + user_game_id: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + user_game: z.union([ z.lazy(() => User_GameRelationFilterSchema),z.lazy(() => User_GameWhereInputSchema) ]).optional(), +}).strict(); + +export const MoveOrderByWithRelationInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + index: z.lazy(() => SortOrderSchema).optional(), + type: z.lazy(() => SortOrderSchema).optional(), + x: z.lazy(() => SortOrderSchema).optional(), + y: z.lazy(() => SortOrderSchema).optional(), + orientation: z.lazy(() => SortOrderSchema).optional(), + user_game_id: z.lazy(() => SortOrderSchema).optional(), + user_game: z.lazy(() => User_GameOrderByWithRelationInputSchema).optional() +}).strict(); + +export const MoveWhereUniqueInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional() +}).strict(); + +export const MoveOrderByWithAggregationInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + index: z.lazy(() => SortOrderSchema).optional(), + type: z.lazy(() => SortOrderSchema).optional(), + x: z.lazy(() => SortOrderSchema).optional(), + y: z.lazy(() => SortOrderSchema).optional(), + orientation: z.lazy(() => SortOrderSchema).optional(), + user_game_id: z.lazy(() => SortOrderSchema).optional(), + _count: z.lazy(() => MoveCountOrderByAggregateInputSchema).optional(), + _avg: z.lazy(() => MoveAvgOrderByAggregateInputSchema).optional(), + _max: z.lazy(() => MoveMaxOrderByAggregateInputSchema).optional(), + _min: z.lazy(() => MoveMinOrderByAggregateInputSchema).optional(), + _sum: z.lazy(() => MoveSumOrderByAggregateInputSchema).optional() +}).strict(); + +export const MoveScalarWhereWithAggregatesInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => MoveScalarWhereWithAggregatesInputSchema),z.lazy(() => MoveScalarWhereWithAggregatesInputSchema).array() ]).optional(), + OR: z.lazy(() => MoveScalarWhereWithAggregatesInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => MoveScalarWhereWithAggregatesInputSchema),z.lazy(() => MoveScalarWhereWithAggregatesInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringWithAggregatesFilterSchema),z.string() ]).optional(), + createdAt: z.union([ z.lazy(() => DateTimeWithAggregatesFilterSchema),z.coerce.date() ]).optional(), + index: z.union([ z.lazy(() => IntWithAggregatesFilterSchema),z.number() ]).optional(), + type: z.union([ z.lazy(() => EnumMoveTypeWithAggregatesFilterSchema),z.lazy(() => MoveTypeSchema) ]).optional(), + x: z.union([ z.lazy(() => IntWithAggregatesFilterSchema),z.number() ]).optional(), + y: z.union([ z.lazy(() => IntWithAggregatesFilterSchema),z.number() ]).optional(), + orientation: z.union([ z.lazy(() => EnumOrientationWithAggregatesFilterSchema),z.lazy(() => OrientationSchema) ]).optional(), + user_game_id: z.union([ z.lazy(() => StringWithAggregatesFilterSchema),z.string() ]).optional(), +}).strict(); + +export const ChatWhereInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => ChatWhereInputSchema),z.lazy(() => ChatWhereInputSchema).array() ]).optional(), + OR: z.lazy(() => ChatWhereInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => ChatWhereInputSchema),z.lazy(() => ChatWhereInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + createdAt: z.union([ z.lazy(() => DateTimeFilterSchema),z.coerce.date() ]).optional(), + message: z.union([ z.lazy(() => StringNullableFilterSchema),z.string() ]).optional().nullable(), + event: z.union([ z.lazy(() => StringNullableFilterSchema),z.string() ]).optional().nullable(), + user_game_id: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + user_game: z.union([ z.lazy(() => User_GameRelationFilterSchema),z.lazy(() => User_GameWhereInputSchema) ]).optional(), +}).strict(); + +export const ChatOrderByWithRelationInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + message: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + event: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + user_game_id: z.lazy(() => SortOrderSchema).optional(), + user_game: z.lazy(() => User_GameOrderByWithRelationInputSchema).optional() +}).strict(); + +export const ChatWhereUniqueInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional() +}).strict(); + +export const ChatOrderByWithAggregationInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + message: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + event: z.union([ z.lazy(() => SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), + user_game_id: z.lazy(() => SortOrderSchema).optional(), + _count: z.lazy(() => ChatCountOrderByAggregateInputSchema).optional(), + _max: z.lazy(() => ChatMaxOrderByAggregateInputSchema).optional(), + _min: z.lazy(() => ChatMinOrderByAggregateInputSchema).optional() +}).strict(); + +export const ChatScalarWhereWithAggregatesInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => ChatScalarWhereWithAggregatesInputSchema),z.lazy(() => ChatScalarWhereWithAggregatesInputSchema).array() ]).optional(), + OR: z.lazy(() => ChatScalarWhereWithAggregatesInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => ChatScalarWhereWithAggregatesInputSchema),z.lazy(() => ChatScalarWhereWithAggregatesInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringWithAggregatesFilterSchema),z.string() ]).optional(), + createdAt: z.union([ z.lazy(() => DateTimeWithAggregatesFilterSchema),z.coerce.date() ]).optional(), + message: z.union([ z.lazy(() => StringNullableWithAggregatesFilterSchema),z.string() ]).optional().nullable(), + event: z.union([ z.lazy(() => StringNullableWithAggregatesFilterSchema),z.string() ]).optional().nullable(), + user_game_id: z.union([ z.lazy(() => StringWithAggregatesFilterSchema),z.string() ]).optional(), +}).strict(); + +export const AccountCreateInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + type: z.string(), + provider: z.string(), + providerAccountId: z.string(), + refresh_token: z.string().optional().nullable(), + access_token: z.string().optional().nullable(), + expires_at: z.number().int().optional().nullable(), + ext_expires_in: z.number().int().optional().nullable(), + token_type: z.string().optional().nullable(), + scope: z.string().optional().nullable(), + id_token: z.string().optional().nullable(), + session_state: z.string().optional().nullable(), + oauth_token_secret: z.string().optional().nullable(), + oauth_token: z.string().optional().nullable(), + user: z.lazy(() => UserCreateNestedOneWithoutAccountsInputSchema) +}).strict(); + +export const AccountUncheckedCreateInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + userId: z.string(), + type: z.string(), + provider: z.string(), + providerAccountId: z.string(), + refresh_token: z.string().optional().nullable(), + access_token: z.string().optional().nullable(), + expires_at: z.number().int().optional().nullable(), + ext_expires_in: z.number().int().optional().nullable(), + token_type: z.string().optional().nullable(), + scope: z.string().optional().nullable(), + id_token: z.string().optional().nullable(), + session_state: z.string().optional().nullable(), + oauth_token_secret: z.string().optional().nullable(), + oauth_token: z.string().optional().nullable() +}).strict(); + +export const AccountUpdateInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + type: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + provider: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + providerAccountId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + refresh_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + access_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + expires_at: z.union([ z.number().int(),z.lazy(() => NullableIntFieldUpdateOperationsInputSchema) ]).optional().nullable(), + ext_expires_in: z.union([ z.number().int(),z.lazy(() => NullableIntFieldUpdateOperationsInputSchema) ]).optional().nullable(), + token_type: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + scope: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + id_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + session_state: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + oauth_token_secret: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + oauth_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + user: z.lazy(() => UserUpdateOneRequiredWithoutAccountsNestedInputSchema).optional() +}).strict(); + +export const AccountUncheckedUpdateInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + userId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + type: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + provider: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + providerAccountId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + refresh_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + access_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + expires_at: z.union([ z.number().int(),z.lazy(() => NullableIntFieldUpdateOperationsInputSchema) ]).optional().nullable(), + ext_expires_in: z.union([ z.number().int(),z.lazy(() => NullableIntFieldUpdateOperationsInputSchema) ]).optional().nullable(), + token_type: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + scope: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + id_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + session_state: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + oauth_token_secret: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + oauth_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), +}).strict(); + +export const AccountCreateManyInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + userId: z.string(), + type: z.string(), + provider: z.string(), + providerAccountId: z.string(), + refresh_token: z.string().optional().nullable(), + access_token: z.string().optional().nullable(), + expires_at: z.number().int().optional().nullable(), + ext_expires_in: z.number().int().optional().nullable(), + token_type: z.string().optional().nullable(), + scope: z.string().optional().nullable(), + id_token: z.string().optional().nullable(), + session_state: z.string().optional().nullable(), + oauth_token_secret: z.string().optional().nullable(), + oauth_token: z.string().optional().nullable() +}).strict(); + +export const AccountUpdateManyMutationInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + type: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + provider: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + providerAccountId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + refresh_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + access_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + expires_at: z.union([ z.number().int(),z.lazy(() => NullableIntFieldUpdateOperationsInputSchema) ]).optional().nullable(), + ext_expires_in: z.union([ z.number().int(),z.lazy(() => NullableIntFieldUpdateOperationsInputSchema) ]).optional().nullable(), + token_type: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + scope: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + id_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + session_state: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + oauth_token_secret: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + oauth_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), +}).strict(); + +export const AccountUncheckedUpdateManyInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + userId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + type: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + provider: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + providerAccountId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + refresh_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + access_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + expires_at: z.union([ z.number().int(),z.lazy(() => NullableIntFieldUpdateOperationsInputSchema) ]).optional().nullable(), + ext_expires_in: z.union([ z.number().int(),z.lazy(() => NullableIntFieldUpdateOperationsInputSchema) ]).optional().nullable(), + token_type: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + scope: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + id_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + session_state: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + oauth_token_secret: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + oauth_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), +}).strict(); + +export const SessionCreateInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + sessionToken: z.string(), + expires: z.coerce.date(), + user: z.lazy(() => UserCreateNestedOneWithoutSessionsInputSchema) +}).strict(); + +export const SessionUncheckedCreateInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + sessionToken: z.string(), + userId: z.string(), + expires: z.coerce.date() +}).strict(); + +export const SessionUpdateInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + sessionToken: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + expires: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + user: z.lazy(() => UserUpdateOneRequiredWithoutSessionsNestedInputSchema).optional() +}).strict(); + +export const SessionUncheckedUpdateInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + sessionToken: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + userId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + expires: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const SessionCreateManyInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + sessionToken: z.string(), + userId: z.string(), + expires: z.coerce.date() +}).strict(); + +export const SessionUpdateManyMutationInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + sessionToken: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + expires: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const SessionUncheckedUpdateManyInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + sessionToken: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + userId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + expires: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const UserCreateInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + name: z.string().optional().nullable(), + email: z.string().optional().nullable(), + emailVerified: z.coerce.date().optional().nullable(), + image: z.string().optional().nullable(), + createdAt: z.coerce.date().optional(), + updatedAt: z.coerce.date().optional(), + games: z.lazy(() => User_GameCreateNestedManyWithoutUserInputSchema).optional(), + accounts: z.lazy(() => AccountCreateNestedManyWithoutUserInputSchema).optional(), + sessions: z.lazy(() => SessionCreateNestedManyWithoutUserInputSchema).optional() +}).strict(); + +export const UserUncheckedCreateInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + name: z.string().optional().nullable(), + email: z.string().optional().nullable(), + emailVerified: z.coerce.date().optional().nullable(), + image: z.string().optional().nullable(), + createdAt: z.coerce.date().optional(), + updatedAt: z.coerce.date().optional(), + games: z.lazy(() => User_GameUncheckedCreateNestedManyWithoutUserInputSchema).optional(), + accounts: z.lazy(() => AccountUncheckedCreateNestedManyWithoutUserInputSchema).optional(), + sessions: z.lazy(() => SessionUncheckedCreateNestedManyWithoutUserInputSchema).optional() +}).strict(); + +export const UserUpdateInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + name: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + email: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + emailVerified: z.union([ z.coerce.date(),z.lazy(() => NullableDateTimeFieldUpdateOperationsInputSchema) ]).optional().nullable(), + image: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + updatedAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + games: z.lazy(() => User_GameUpdateManyWithoutUserNestedInputSchema).optional(), + accounts: z.lazy(() => AccountUpdateManyWithoutUserNestedInputSchema).optional(), + sessions: z.lazy(() => SessionUpdateManyWithoutUserNestedInputSchema).optional() +}).strict(); + +export const UserUncheckedUpdateInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + name: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + email: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + emailVerified: z.union([ z.coerce.date(),z.lazy(() => NullableDateTimeFieldUpdateOperationsInputSchema) ]).optional().nullable(), + image: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + updatedAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + games: z.lazy(() => User_GameUncheckedUpdateManyWithoutUserNestedInputSchema).optional(), + accounts: z.lazy(() => AccountUncheckedUpdateManyWithoutUserNestedInputSchema).optional(), + sessions: z.lazy(() => SessionUncheckedUpdateManyWithoutUserNestedInputSchema).optional() +}).strict(); + +export const UserCreateManyInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + name: z.string().optional().nullable(), + email: z.string().optional().nullable(), + emailVerified: z.coerce.date().optional().nullable(), + image: z.string().optional().nullable(), + createdAt: z.coerce.date().optional(), + updatedAt: z.coerce.date().optional() +}).strict(); + +export const UserUpdateManyMutationInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + name: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + email: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + emailVerified: z.union([ z.coerce.date(),z.lazy(() => NullableDateTimeFieldUpdateOperationsInputSchema) ]).optional().nullable(), + image: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + updatedAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const UserUncheckedUpdateManyInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + name: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + email: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + emailVerified: z.union([ z.coerce.date(),z.lazy(() => NullableDateTimeFieldUpdateOperationsInputSchema) ]).optional().nullable(), + image: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + updatedAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const VerificationTokenCreateInputSchema: z.ZodType = z.object({ + identifier: z.string(), + token: z.string(), + expires: z.coerce.date() +}).strict(); + +export const VerificationTokenUncheckedCreateInputSchema: z.ZodType = z.object({ + identifier: z.string(), + token: z.string(), + expires: z.coerce.date() +}).strict(); + +export const VerificationTokenUpdateInputSchema: z.ZodType = z.object({ + identifier: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + token: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + expires: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const VerificationTokenUncheckedUpdateInputSchema: z.ZodType = z.object({ + identifier: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + token: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + expires: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const VerificationTokenCreateManyInputSchema: z.ZodType = z.object({ + identifier: z.string(), + token: z.string(), + expires: z.coerce.date() +}).strict(); + +export const VerificationTokenUpdateManyMutationInputSchema: z.ZodType = z.object({ + identifier: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + token: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + expires: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const VerificationTokenUncheckedUpdateManyInputSchema: z.ZodType = z.object({ + identifier: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + token: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + expires: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const GameCreateInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + updatedAt: z.coerce.date().optional(), + state: z.lazy(() => GameStateSchema).optional(), + allowSpectators: z.boolean().optional(), + allowSpecials: z.boolean().optional(), + allowChat: z.boolean().optional(), + allowMarkDraw: z.boolean().optional(), + gamePin: z.lazy(() => GamepinCreateNestedOneWithoutGameInputSchema).optional(), + users: z.lazy(() => User_GameCreateNestedManyWithoutGameInputSchema).optional() +}).strict(); + +export const GameUncheckedCreateInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + updatedAt: z.coerce.date().optional(), + state: z.lazy(() => GameStateSchema).optional(), + allowSpectators: z.boolean().optional(), + allowSpecials: z.boolean().optional(), + allowChat: z.boolean().optional(), + allowMarkDraw: z.boolean().optional(), + gamePin: z.lazy(() => GamepinUncheckedCreateNestedOneWithoutGameInputSchema).optional(), + users: z.lazy(() => User_GameUncheckedCreateNestedManyWithoutGameInputSchema).optional() +}).strict(); + +export const GameUpdateInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + updatedAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + state: z.union([ z.lazy(() => GameStateSchema),z.lazy(() => EnumGameStateFieldUpdateOperationsInputSchema) ]).optional(), + allowSpectators: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + allowSpecials: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + allowChat: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + allowMarkDraw: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + gamePin: z.lazy(() => GamepinUpdateOneWithoutGameNestedInputSchema).optional(), + users: z.lazy(() => User_GameUpdateManyWithoutGameNestedInputSchema).optional() +}).strict(); + +export const GameUncheckedUpdateInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + updatedAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + state: z.union([ z.lazy(() => GameStateSchema),z.lazy(() => EnumGameStateFieldUpdateOperationsInputSchema) ]).optional(), + allowSpectators: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + allowSpecials: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + allowChat: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + allowMarkDraw: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + gamePin: z.lazy(() => GamepinUncheckedUpdateOneWithoutGameNestedInputSchema).optional(), + users: z.lazy(() => User_GameUncheckedUpdateManyWithoutGameNestedInputSchema).optional() +}).strict(); + +export const GameCreateManyInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + updatedAt: z.coerce.date().optional(), + state: z.lazy(() => GameStateSchema).optional(), + allowSpectators: z.boolean().optional(), + allowSpecials: z.boolean().optional(), + allowChat: z.boolean().optional(), + allowMarkDraw: z.boolean().optional() +}).strict(); + +export const GameUpdateManyMutationInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + updatedAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + state: z.union([ z.lazy(() => GameStateSchema),z.lazy(() => EnumGameStateFieldUpdateOperationsInputSchema) ]).optional(), + allowSpectators: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + allowSpecials: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + allowChat: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + allowMarkDraw: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const GameUncheckedUpdateManyInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + updatedAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + state: z.union([ z.lazy(() => GameStateSchema),z.lazy(() => EnumGameStateFieldUpdateOperationsInputSchema) ]).optional(), + allowSpectators: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + allowSpecials: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + allowChat: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + allowMarkDraw: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const GamepinCreateInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + pin: z.string(), + game: z.lazy(() => GameCreateNestedOneWithoutGamePinInputSchema) +}).strict(); + +export const GamepinUncheckedCreateInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + pin: z.string(), + gameId: z.string() +}).strict(); + +export const GamepinUpdateInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + pin: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + game: z.lazy(() => GameUpdateOneRequiredWithoutGamePinNestedInputSchema).optional() +}).strict(); + +export const GamepinUncheckedUpdateInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + pin: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + gameId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const GamepinCreateManyInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + pin: z.string(), + gameId: z.string() +}).strict(); + +export const GamepinUpdateManyMutationInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + pin: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const GamepinUncheckedUpdateManyInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + pin: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + gameId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const ShipCreateInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + size: z.number().int(), + variant: z.number().int(), + x: z.number().int(), + y: z.number().int(), + orientation: z.lazy(() => OrientationSchema), + User_Game: z.lazy(() => User_GameCreateNestedOneWithoutShipsInputSchema) +}).strict(); + +export const ShipUncheckedCreateInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + size: z.number().int(), + variant: z.number().int(), + x: z.number().int(), + y: z.number().int(), + orientation: z.lazy(() => OrientationSchema), + user_GameId: z.string() +}).strict(); + +export const ShipUpdateInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + size: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + variant: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + x: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + y: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + orientation: z.union([ z.lazy(() => OrientationSchema),z.lazy(() => EnumOrientationFieldUpdateOperationsInputSchema) ]).optional(), + User_Game: z.lazy(() => User_GameUpdateOneRequiredWithoutShipsNestedInputSchema).optional() +}).strict(); + +export const ShipUncheckedUpdateInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + size: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + variant: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + x: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + y: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + orientation: z.union([ z.lazy(() => OrientationSchema),z.lazy(() => EnumOrientationFieldUpdateOperationsInputSchema) ]).optional(), + user_GameId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const ShipCreateManyInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + size: z.number().int(), + variant: z.number().int(), + x: z.number().int(), + y: z.number().int(), + orientation: z.lazy(() => OrientationSchema), + user_GameId: z.string() +}).strict(); + +export const ShipUpdateManyMutationInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + size: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + variant: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + x: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + y: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + orientation: z.union([ z.lazy(() => OrientationSchema),z.lazy(() => EnumOrientationFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const ShipUncheckedUpdateManyInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + size: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + variant: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + x: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + y: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + orientation: z.union([ z.lazy(() => OrientationSchema),z.lazy(() => EnumOrientationFieldUpdateOperationsInputSchema) ]).optional(), + user_GameId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const HitCreateInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + x: z.number().int(), + y: z.number().int(), + hit: z.boolean(), + User_Game: z.lazy(() => User_GameCreateNestedOneWithoutHitsInputSchema) +}).strict(); + +export const HitUncheckedCreateInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + x: z.number().int(), + y: z.number().int(), + hit: z.boolean(), + user_GameId: z.string() +}).strict(); + +export const HitUpdateInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + x: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + y: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + hit: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + User_Game: z.lazy(() => User_GameUpdateOneRequiredWithoutHitsNestedInputSchema).optional() +}).strict(); + +export const HitUncheckedUpdateInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + x: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + y: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + hit: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + user_GameId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const HitCreateManyInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + x: z.number().int(), + y: z.number().int(), + hit: z.boolean(), + user_GameId: z.string() +}).strict(); + +export const HitUpdateManyMutationInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + x: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + y: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + hit: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const HitUncheckedUpdateManyInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + x: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + y: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + hit: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + user_GameId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const User_GameCreateInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + index: z.number().int(), + moves: z.lazy(() => MoveCreateNestedManyWithoutUser_gameInputSchema).optional(), + ships: z.lazy(() => ShipCreateNestedManyWithoutUser_GameInputSchema).optional(), + hits: z.lazy(() => HitCreateNestedManyWithoutUser_GameInputSchema).optional(), + chats: z.lazy(() => ChatCreateNestedManyWithoutUser_gameInputSchema).optional(), + game: z.lazy(() => GameCreateNestedOneWithoutUsersInputSchema), + user: z.lazy(() => UserCreateNestedOneWithoutGamesInputSchema) +}).strict(); + +export const User_GameUncheckedCreateInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + gameId: z.string(), + userId: z.string(), + index: z.number().int(), + moves: z.lazy(() => MoveUncheckedCreateNestedManyWithoutUser_gameInputSchema).optional(), + ships: z.lazy(() => ShipUncheckedCreateNestedManyWithoutUser_GameInputSchema).optional(), + hits: z.lazy(() => HitUncheckedCreateNestedManyWithoutUser_GameInputSchema).optional(), + chats: z.lazy(() => ChatUncheckedCreateNestedManyWithoutUser_gameInputSchema).optional() +}).strict(); + +export const User_GameUpdateInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + index: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + moves: z.lazy(() => MoveUpdateManyWithoutUser_gameNestedInputSchema).optional(), + ships: z.lazy(() => ShipUpdateManyWithoutUser_GameNestedInputSchema).optional(), + hits: z.lazy(() => HitUpdateManyWithoutUser_GameNestedInputSchema).optional(), + chats: z.lazy(() => ChatUpdateManyWithoutUser_gameNestedInputSchema).optional(), + game: z.lazy(() => GameUpdateOneRequiredWithoutUsersNestedInputSchema).optional(), + user: z.lazy(() => UserUpdateOneRequiredWithoutGamesNestedInputSchema).optional() +}).strict(); + +export const User_GameUncheckedUpdateInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + gameId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + userId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + index: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + moves: z.lazy(() => MoveUncheckedUpdateManyWithoutUser_gameNestedInputSchema).optional(), + ships: z.lazy(() => ShipUncheckedUpdateManyWithoutUser_GameNestedInputSchema).optional(), + hits: z.lazy(() => HitUncheckedUpdateManyWithoutUser_GameNestedInputSchema).optional(), + chats: z.lazy(() => ChatUncheckedUpdateManyWithoutUser_gameNestedInputSchema).optional() +}).strict(); + +export const User_GameCreateManyInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + gameId: z.string(), + userId: z.string(), + index: z.number().int() +}).strict(); + +export const User_GameUpdateManyMutationInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + index: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const User_GameUncheckedUpdateManyInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + gameId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + userId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + index: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const MoveCreateInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + index: z.number().int(), + type: z.lazy(() => MoveTypeSchema), + x: z.number().int(), + y: z.number().int(), + orientation: z.lazy(() => OrientationSchema), + user_game: z.lazy(() => User_GameCreateNestedOneWithoutMovesInputSchema) +}).strict(); + +export const MoveUncheckedCreateInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + index: z.number().int(), + type: z.lazy(() => MoveTypeSchema), + x: z.number().int(), + y: z.number().int(), + orientation: z.lazy(() => OrientationSchema), + user_game_id: z.string() +}).strict(); + +export const MoveUpdateInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + index: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + type: z.union([ z.lazy(() => MoveTypeSchema),z.lazy(() => EnumMoveTypeFieldUpdateOperationsInputSchema) ]).optional(), + x: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + y: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + orientation: z.union([ z.lazy(() => OrientationSchema),z.lazy(() => EnumOrientationFieldUpdateOperationsInputSchema) ]).optional(), + user_game: z.lazy(() => User_GameUpdateOneRequiredWithoutMovesNestedInputSchema).optional() +}).strict(); + +export const MoveUncheckedUpdateInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + index: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + type: z.union([ z.lazy(() => MoveTypeSchema),z.lazy(() => EnumMoveTypeFieldUpdateOperationsInputSchema) ]).optional(), + x: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + y: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + orientation: z.union([ z.lazy(() => OrientationSchema),z.lazy(() => EnumOrientationFieldUpdateOperationsInputSchema) ]).optional(), + user_game_id: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const MoveCreateManyInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + index: z.number().int(), + type: z.lazy(() => MoveTypeSchema), + x: z.number().int(), + y: z.number().int(), + orientation: z.lazy(() => OrientationSchema), + user_game_id: z.string() +}).strict(); + +export const MoveUpdateManyMutationInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + index: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + type: z.union([ z.lazy(() => MoveTypeSchema),z.lazy(() => EnumMoveTypeFieldUpdateOperationsInputSchema) ]).optional(), + x: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + y: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + orientation: z.union([ z.lazy(() => OrientationSchema),z.lazy(() => EnumOrientationFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const MoveUncheckedUpdateManyInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + index: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + type: z.union([ z.lazy(() => MoveTypeSchema),z.lazy(() => EnumMoveTypeFieldUpdateOperationsInputSchema) ]).optional(), + x: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + y: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + orientation: z.union([ z.lazy(() => OrientationSchema),z.lazy(() => EnumOrientationFieldUpdateOperationsInputSchema) ]).optional(), + user_game_id: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const ChatCreateInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + message: z.string().optional().nullable(), + event: z.string().optional().nullable(), + user_game: z.lazy(() => User_GameCreateNestedOneWithoutChatsInputSchema) +}).strict(); + +export const ChatUncheckedCreateInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + message: z.string().optional().nullable(), + event: z.string().optional().nullable(), + user_game_id: z.string() +}).strict(); + +export const ChatUpdateInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + message: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + event: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + user_game: z.lazy(() => User_GameUpdateOneRequiredWithoutChatsNestedInputSchema).optional() +}).strict(); + +export const ChatUncheckedUpdateInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + message: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + event: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + user_game_id: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const ChatCreateManyInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + message: z.string().optional().nullable(), + event: z.string().optional().nullable(), + user_game_id: z.string() +}).strict(); + +export const ChatUpdateManyMutationInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + message: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + event: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), +}).strict(); + +export const ChatUncheckedUpdateManyInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + message: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + event: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + user_game_id: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const StringFilterSchema: z.ZodType = z.object({ + equals: z.string().optional(), + in: z.union([ z.string().array(),z.string() ]).optional(), + notIn: z.union([ z.string().array(),z.string() ]).optional(), + lt: z.string().optional(), + lte: z.string().optional(), + gt: z.string().optional(), + gte: z.string().optional(), + contains: z.string().optional(), + startsWith: z.string().optional(), + endsWith: z.string().optional(), + mode: z.lazy(() => QueryModeSchema).optional(), + not: z.union([ z.string(),z.lazy(() => NestedStringFilterSchema) ]).optional(), +}).strict(); + +export const StringNullableFilterSchema: z.ZodType = z.object({ + equals: z.string().optional().nullable(), + in: z.union([ z.string().array(),z.string() ]).optional().nullable(), + notIn: z.union([ z.string().array(),z.string() ]).optional().nullable(), + lt: z.string().optional(), + lte: z.string().optional(), + gt: z.string().optional(), + gte: z.string().optional(), + contains: z.string().optional(), + startsWith: z.string().optional(), + endsWith: z.string().optional(), + mode: z.lazy(() => QueryModeSchema).optional(), + not: z.union([ z.string(),z.lazy(() => NestedStringNullableFilterSchema) ]).optional().nullable(), +}).strict(); + +export const IntNullableFilterSchema: z.ZodType = z.object({ + equals: z.number().optional().nullable(), + in: z.union([ z.number().array(),z.number() ]).optional().nullable(), + notIn: z.union([ z.number().array(),z.number() ]).optional().nullable(), + lt: z.number().optional(), + lte: z.number().optional(), + gt: z.number().optional(), + gte: z.number().optional(), + not: z.union([ z.number(),z.lazy(() => NestedIntNullableFilterSchema) ]).optional().nullable(), +}).strict(); + +export const UserRelationFilterSchema: z.ZodType = z.object({ + is: z.lazy(() => UserWhereInputSchema).optional().nullable(), + isNot: z.lazy(() => UserWhereInputSchema).optional().nullable() +}).strict(); + +export const SortOrderInputSchema: z.ZodType = z.object({ + sort: z.lazy(() => SortOrderSchema), + nulls: z.lazy(() => NullsOrderSchema).optional() +}).strict(); + +export const AccountProviderProviderAccountIdCompoundUniqueInputSchema: z.ZodType = z.object({ + provider: z.string(), + providerAccountId: z.string() +}).strict(); + +export const AccountCountOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + userId: z.lazy(() => SortOrderSchema).optional(), + type: z.lazy(() => SortOrderSchema).optional(), + provider: z.lazy(() => SortOrderSchema).optional(), + providerAccountId: z.lazy(() => SortOrderSchema).optional(), + refresh_token: z.lazy(() => SortOrderSchema).optional(), + access_token: z.lazy(() => SortOrderSchema).optional(), + expires_at: z.lazy(() => SortOrderSchema).optional(), + ext_expires_in: z.lazy(() => SortOrderSchema).optional(), + token_type: z.lazy(() => SortOrderSchema).optional(), + scope: z.lazy(() => SortOrderSchema).optional(), + id_token: z.lazy(() => SortOrderSchema).optional(), + session_state: z.lazy(() => SortOrderSchema).optional(), + oauth_token_secret: z.lazy(() => SortOrderSchema).optional(), + oauth_token: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const AccountAvgOrderByAggregateInputSchema: z.ZodType = z.object({ + expires_at: z.lazy(() => SortOrderSchema).optional(), + ext_expires_in: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const AccountMaxOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + userId: z.lazy(() => SortOrderSchema).optional(), + type: z.lazy(() => SortOrderSchema).optional(), + provider: z.lazy(() => SortOrderSchema).optional(), + providerAccountId: z.lazy(() => SortOrderSchema).optional(), + refresh_token: z.lazy(() => SortOrderSchema).optional(), + access_token: z.lazy(() => SortOrderSchema).optional(), + expires_at: z.lazy(() => SortOrderSchema).optional(), + ext_expires_in: z.lazy(() => SortOrderSchema).optional(), + token_type: z.lazy(() => SortOrderSchema).optional(), + scope: z.lazy(() => SortOrderSchema).optional(), + id_token: z.lazy(() => SortOrderSchema).optional(), + session_state: z.lazy(() => SortOrderSchema).optional(), + oauth_token_secret: z.lazy(() => SortOrderSchema).optional(), + oauth_token: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const AccountMinOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + userId: z.lazy(() => SortOrderSchema).optional(), + type: z.lazy(() => SortOrderSchema).optional(), + provider: z.lazy(() => SortOrderSchema).optional(), + providerAccountId: z.lazy(() => SortOrderSchema).optional(), + refresh_token: z.lazy(() => SortOrderSchema).optional(), + access_token: z.lazy(() => SortOrderSchema).optional(), + expires_at: z.lazy(() => SortOrderSchema).optional(), + ext_expires_in: z.lazy(() => SortOrderSchema).optional(), + token_type: z.lazy(() => SortOrderSchema).optional(), + scope: z.lazy(() => SortOrderSchema).optional(), + id_token: z.lazy(() => SortOrderSchema).optional(), + session_state: z.lazy(() => SortOrderSchema).optional(), + oauth_token_secret: z.lazy(() => SortOrderSchema).optional(), + oauth_token: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const AccountSumOrderByAggregateInputSchema: z.ZodType = z.object({ + expires_at: z.lazy(() => SortOrderSchema).optional(), + ext_expires_in: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const StringWithAggregatesFilterSchema: z.ZodType = z.object({ + equals: z.string().optional(), + in: z.union([ z.string().array(),z.string() ]).optional(), + notIn: z.union([ z.string().array(),z.string() ]).optional(), + lt: z.string().optional(), + lte: z.string().optional(), + gt: z.string().optional(), + gte: z.string().optional(), + contains: z.string().optional(), + startsWith: z.string().optional(), + endsWith: z.string().optional(), + mode: z.lazy(() => QueryModeSchema).optional(), + not: z.union([ z.string(),z.lazy(() => NestedStringWithAggregatesFilterSchema) ]).optional(), + _count: z.lazy(() => NestedIntFilterSchema).optional(), + _min: z.lazy(() => NestedStringFilterSchema).optional(), + _max: z.lazy(() => NestedStringFilterSchema).optional() +}).strict(); + +export const StringNullableWithAggregatesFilterSchema: z.ZodType = z.object({ + equals: z.string().optional().nullable(), + in: z.union([ z.string().array(),z.string() ]).optional().nullable(), + notIn: z.union([ z.string().array(),z.string() ]).optional().nullable(), + lt: z.string().optional(), + lte: z.string().optional(), + gt: z.string().optional(), + gte: z.string().optional(), + contains: z.string().optional(), + startsWith: z.string().optional(), + endsWith: z.string().optional(), + mode: z.lazy(() => QueryModeSchema).optional(), + not: z.union([ z.string(),z.lazy(() => NestedStringNullableWithAggregatesFilterSchema) ]).optional().nullable(), + _count: z.lazy(() => NestedIntNullableFilterSchema).optional(), + _min: z.lazy(() => NestedStringNullableFilterSchema).optional(), + _max: z.lazy(() => NestedStringNullableFilterSchema).optional() +}).strict(); + +export const IntNullableWithAggregatesFilterSchema: z.ZodType = z.object({ + equals: z.number().optional().nullable(), + in: z.union([ z.number().array(),z.number() ]).optional().nullable(), + notIn: z.union([ z.number().array(),z.number() ]).optional().nullable(), + lt: z.number().optional(), + lte: z.number().optional(), + gt: z.number().optional(), + gte: z.number().optional(), + not: z.union([ z.number(),z.lazy(() => NestedIntNullableWithAggregatesFilterSchema) ]).optional().nullable(), + _count: z.lazy(() => NestedIntNullableFilterSchema).optional(), + _avg: z.lazy(() => NestedFloatNullableFilterSchema).optional(), + _sum: z.lazy(() => NestedIntNullableFilterSchema).optional(), + _min: z.lazy(() => NestedIntNullableFilterSchema).optional(), + _max: z.lazy(() => NestedIntNullableFilterSchema).optional() +}).strict(); + +export const DateTimeFilterSchema: z.ZodType = z.object({ + equals: z.coerce.date().optional(), + in: z.union([ z.coerce.date().array(),z.coerce.date() ]).optional(), + notIn: z.union([ z.coerce.date().array(),z.coerce.date() ]).optional(), + lt: z.coerce.date().optional(), + lte: z.coerce.date().optional(), + gt: z.coerce.date().optional(), + gte: z.coerce.date().optional(), + not: z.union([ z.coerce.date(),z.lazy(() => NestedDateTimeFilterSchema) ]).optional(), +}).strict(); + +export const SessionCountOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + sessionToken: z.lazy(() => SortOrderSchema).optional(), + userId: z.lazy(() => SortOrderSchema).optional(), + expires: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const SessionMaxOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + sessionToken: z.lazy(() => SortOrderSchema).optional(), + userId: z.lazy(() => SortOrderSchema).optional(), + expires: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const SessionMinOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + sessionToken: z.lazy(() => SortOrderSchema).optional(), + userId: z.lazy(() => SortOrderSchema).optional(), + expires: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const DateTimeWithAggregatesFilterSchema: z.ZodType = z.object({ + equals: z.coerce.date().optional(), + in: z.union([ z.coerce.date().array(),z.coerce.date() ]).optional(), + notIn: z.union([ z.coerce.date().array(),z.coerce.date() ]).optional(), + lt: z.coerce.date().optional(), + lte: z.coerce.date().optional(), + gt: z.coerce.date().optional(), + gte: z.coerce.date().optional(), + not: z.union([ z.coerce.date(),z.lazy(() => NestedDateTimeWithAggregatesFilterSchema) ]).optional(), + _count: z.lazy(() => NestedIntFilterSchema).optional(), + _min: z.lazy(() => NestedDateTimeFilterSchema).optional(), + _max: z.lazy(() => NestedDateTimeFilterSchema).optional() +}).strict(); + +export const DateTimeNullableFilterSchema: z.ZodType = z.object({ + equals: z.coerce.date().optional().nullable(), + in: z.union([ z.coerce.date().array(),z.coerce.date() ]).optional().nullable(), + notIn: z.union([ z.coerce.date().array(),z.coerce.date() ]).optional().nullable(), + lt: z.coerce.date().optional(), + lte: z.coerce.date().optional(), + gt: z.coerce.date().optional(), + gte: z.coerce.date().optional(), + not: z.union([ z.coerce.date(),z.lazy(() => NestedDateTimeNullableFilterSchema) ]).optional().nullable(), +}).strict(); + +export const User_GameListRelationFilterSchema: z.ZodType = z.object({ + every: z.lazy(() => User_GameWhereInputSchema).optional(), + some: z.lazy(() => User_GameWhereInputSchema).optional(), + none: z.lazy(() => User_GameWhereInputSchema).optional() +}).strict(); + +export const AccountListRelationFilterSchema: z.ZodType = z.object({ + every: z.lazy(() => AccountWhereInputSchema).optional(), + some: z.lazy(() => AccountWhereInputSchema).optional(), + none: z.lazy(() => AccountWhereInputSchema).optional() +}).strict(); + +export const SessionListRelationFilterSchema: z.ZodType = z.object({ + every: z.lazy(() => SessionWhereInputSchema).optional(), + some: z.lazy(() => SessionWhereInputSchema).optional(), + none: z.lazy(() => SessionWhereInputSchema).optional() +}).strict(); + +export const User_GameOrderByRelationAggregateInputSchema: z.ZodType = z.object({ + _count: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const AccountOrderByRelationAggregateInputSchema: z.ZodType = z.object({ + _count: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const SessionOrderByRelationAggregateInputSchema: z.ZodType = z.object({ + _count: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const UserCountOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + name: z.lazy(() => SortOrderSchema).optional(), + email: z.lazy(() => SortOrderSchema).optional(), + emailVerified: z.lazy(() => SortOrderSchema).optional(), + image: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + updatedAt: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const UserMaxOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + name: z.lazy(() => SortOrderSchema).optional(), + email: z.lazy(() => SortOrderSchema).optional(), + emailVerified: z.lazy(() => SortOrderSchema).optional(), + image: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + updatedAt: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const UserMinOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + name: z.lazy(() => SortOrderSchema).optional(), + email: z.lazy(() => SortOrderSchema).optional(), + emailVerified: z.lazy(() => SortOrderSchema).optional(), + image: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + updatedAt: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const DateTimeNullableWithAggregatesFilterSchema: z.ZodType = z.object({ + equals: z.coerce.date().optional().nullable(), + in: z.union([ z.coerce.date().array(),z.coerce.date() ]).optional().nullable(), + notIn: z.union([ z.coerce.date().array(),z.coerce.date() ]).optional().nullable(), + lt: z.coerce.date().optional(), + lte: z.coerce.date().optional(), + gt: z.coerce.date().optional(), + gte: z.coerce.date().optional(), + not: z.union([ z.coerce.date(),z.lazy(() => NestedDateTimeNullableWithAggregatesFilterSchema) ]).optional().nullable(), + _count: z.lazy(() => NestedIntNullableFilterSchema).optional(), + _min: z.lazy(() => NestedDateTimeNullableFilterSchema).optional(), + _max: z.lazy(() => NestedDateTimeNullableFilterSchema).optional() +}).strict(); + +export const VerificationTokenIdentifierTokenCompoundUniqueInputSchema: z.ZodType = z.object({ + identifier: z.string(), + token: z.string() +}).strict(); + +export const VerificationTokenCountOrderByAggregateInputSchema: z.ZodType = z.object({ + identifier: z.lazy(() => SortOrderSchema).optional(), + token: z.lazy(() => SortOrderSchema).optional(), + expires: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const VerificationTokenMaxOrderByAggregateInputSchema: z.ZodType = z.object({ + identifier: z.lazy(() => SortOrderSchema).optional(), + token: z.lazy(() => SortOrderSchema).optional(), + expires: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const VerificationTokenMinOrderByAggregateInputSchema: z.ZodType = z.object({ + identifier: z.lazy(() => SortOrderSchema).optional(), + token: z.lazy(() => SortOrderSchema).optional(), + expires: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const EnumGameStateFilterSchema: z.ZodType = z.object({ + equals: z.lazy(() => GameStateSchema).optional(), + in: z.union([ z.lazy(() => GameStateSchema).array(),z.lazy(() => GameStateSchema) ]).optional(), + notIn: z.union([ z.lazy(() => GameStateSchema).array(),z.lazy(() => GameStateSchema) ]).optional(), + not: z.union([ z.lazy(() => GameStateSchema),z.lazy(() => NestedEnumGameStateFilterSchema) ]).optional(), +}).strict(); + +export const BoolFilterSchema: z.ZodType = z.object({ + equals: z.boolean().optional(), + not: z.union([ z.boolean(),z.lazy(() => NestedBoolFilterSchema) ]).optional(), +}).strict(); + +export const GamepinRelationFilterSchema: z.ZodType = z.object({ + is: z.lazy(() => GamepinWhereInputSchema).optional().nullable(), + isNot: z.lazy(() => GamepinWhereInputSchema).optional().nullable() +}).strict(); + +export const GameCountOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + updatedAt: z.lazy(() => SortOrderSchema).optional(), + state: z.lazy(() => SortOrderSchema).optional(), + allowSpectators: z.lazy(() => SortOrderSchema).optional(), + allowSpecials: z.lazy(() => SortOrderSchema).optional(), + allowChat: z.lazy(() => SortOrderSchema).optional(), + allowMarkDraw: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const GameMaxOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + updatedAt: z.lazy(() => SortOrderSchema).optional(), + state: z.lazy(() => SortOrderSchema).optional(), + allowSpectators: z.lazy(() => SortOrderSchema).optional(), + allowSpecials: z.lazy(() => SortOrderSchema).optional(), + allowChat: z.lazy(() => SortOrderSchema).optional(), + allowMarkDraw: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const GameMinOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + updatedAt: z.lazy(() => SortOrderSchema).optional(), + state: z.lazy(() => SortOrderSchema).optional(), + allowSpectators: z.lazy(() => SortOrderSchema).optional(), + allowSpecials: z.lazy(() => SortOrderSchema).optional(), + allowChat: z.lazy(() => SortOrderSchema).optional(), + allowMarkDraw: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const EnumGameStateWithAggregatesFilterSchema: z.ZodType = z.object({ + equals: z.lazy(() => GameStateSchema).optional(), + in: z.union([ z.lazy(() => GameStateSchema).array(),z.lazy(() => GameStateSchema) ]).optional(), + notIn: z.union([ z.lazy(() => GameStateSchema).array(),z.lazy(() => GameStateSchema) ]).optional(), + not: z.union([ z.lazy(() => GameStateSchema),z.lazy(() => NestedEnumGameStateWithAggregatesFilterSchema) ]).optional(), + _count: z.lazy(() => NestedIntFilterSchema).optional(), + _min: z.lazy(() => NestedEnumGameStateFilterSchema).optional(), + _max: z.lazy(() => NestedEnumGameStateFilterSchema).optional() +}).strict(); + +export const BoolWithAggregatesFilterSchema: z.ZodType = z.object({ + equals: z.boolean().optional(), + not: z.union([ z.boolean(),z.lazy(() => NestedBoolWithAggregatesFilterSchema) ]).optional(), + _count: z.lazy(() => NestedIntFilterSchema).optional(), + _min: z.lazy(() => NestedBoolFilterSchema).optional(), + _max: z.lazy(() => NestedBoolFilterSchema).optional() +}).strict(); + +export const GameRelationFilterSchema: z.ZodType = z.object({ + is: z.lazy(() => GameWhereInputSchema).optional().nullable(), + isNot: z.lazy(() => GameWhereInputSchema).optional().nullable() +}).strict(); + +export const GamepinCountOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + pin: z.lazy(() => SortOrderSchema).optional(), + gameId: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const GamepinMaxOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + pin: z.lazy(() => SortOrderSchema).optional(), + gameId: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const GamepinMinOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + pin: z.lazy(() => SortOrderSchema).optional(), + gameId: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const IntFilterSchema: z.ZodType = z.object({ + equals: z.number().optional(), + in: z.union([ z.number().array(),z.number() ]).optional(), + notIn: z.union([ z.number().array(),z.number() ]).optional(), + lt: z.number().optional(), + lte: z.number().optional(), + gt: z.number().optional(), + gte: z.number().optional(), + not: z.union([ z.number(),z.lazy(() => NestedIntFilterSchema) ]).optional(), +}).strict(); + +export const EnumOrientationFilterSchema: z.ZodType = z.object({ + equals: z.lazy(() => OrientationSchema).optional(), + in: z.union([ z.lazy(() => OrientationSchema).array(),z.lazy(() => OrientationSchema) ]).optional(), + notIn: z.union([ z.lazy(() => OrientationSchema).array(),z.lazy(() => OrientationSchema) ]).optional(), + not: z.union([ z.lazy(() => OrientationSchema),z.lazy(() => NestedEnumOrientationFilterSchema) ]).optional(), +}).strict(); + +export const User_GameRelationFilterSchema: z.ZodType = z.object({ + is: z.lazy(() => User_GameWhereInputSchema).optional().nullable(), + isNot: z.lazy(() => User_GameWhereInputSchema).optional().nullable() +}).strict(); + +export const ShipCountOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + size: z.lazy(() => SortOrderSchema).optional(), + variant: z.lazy(() => SortOrderSchema).optional(), + x: z.lazy(() => SortOrderSchema).optional(), + y: z.lazy(() => SortOrderSchema).optional(), + orientation: z.lazy(() => SortOrderSchema).optional(), + user_GameId: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const ShipAvgOrderByAggregateInputSchema: z.ZodType = z.object({ + size: z.lazy(() => SortOrderSchema).optional(), + variant: z.lazy(() => SortOrderSchema).optional(), + x: z.lazy(() => SortOrderSchema).optional(), + y: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const ShipMaxOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + size: z.lazy(() => SortOrderSchema).optional(), + variant: z.lazy(() => SortOrderSchema).optional(), + x: z.lazy(() => SortOrderSchema).optional(), + y: z.lazy(() => SortOrderSchema).optional(), + orientation: z.lazy(() => SortOrderSchema).optional(), + user_GameId: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const ShipMinOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + size: z.lazy(() => SortOrderSchema).optional(), + variant: z.lazy(() => SortOrderSchema).optional(), + x: z.lazy(() => SortOrderSchema).optional(), + y: z.lazy(() => SortOrderSchema).optional(), + orientation: z.lazy(() => SortOrderSchema).optional(), + user_GameId: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const ShipSumOrderByAggregateInputSchema: z.ZodType = z.object({ + size: z.lazy(() => SortOrderSchema).optional(), + variant: z.lazy(() => SortOrderSchema).optional(), + x: z.lazy(() => SortOrderSchema).optional(), + y: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const IntWithAggregatesFilterSchema: z.ZodType = z.object({ + equals: z.number().optional(), + in: z.union([ z.number().array(),z.number() ]).optional(), + notIn: z.union([ z.number().array(),z.number() ]).optional(), + lt: z.number().optional(), + lte: z.number().optional(), + gt: z.number().optional(), + gte: z.number().optional(), + not: z.union([ z.number(),z.lazy(() => NestedIntWithAggregatesFilterSchema) ]).optional(), + _count: z.lazy(() => NestedIntFilterSchema).optional(), + _avg: z.lazy(() => NestedFloatFilterSchema).optional(), + _sum: z.lazy(() => NestedIntFilterSchema).optional(), + _min: z.lazy(() => NestedIntFilterSchema).optional(), + _max: z.lazy(() => NestedIntFilterSchema).optional() +}).strict(); + +export const EnumOrientationWithAggregatesFilterSchema: z.ZodType = z.object({ + equals: z.lazy(() => OrientationSchema).optional(), + in: z.union([ z.lazy(() => OrientationSchema).array(),z.lazy(() => OrientationSchema) ]).optional(), + notIn: z.union([ z.lazy(() => OrientationSchema).array(),z.lazy(() => OrientationSchema) ]).optional(), + not: z.union([ z.lazy(() => OrientationSchema),z.lazy(() => NestedEnumOrientationWithAggregatesFilterSchema) ]).optional(), + _count: z.lazy(() => NestedIntFilterSchema).optional(), + _min: z.lazy(() => NestedEnumOrientationFilterSchema).optional(), + _max: z.lazy(() => NestedEnumOrientationFilterSchema).optional() +}).strict(); + +export const HitCountOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + x: z.lazy(() => SortOrderSchema).optional(), + y: z.lazy(() => SortOrderSchema).optional(), + hit: z.lazy(() => SortOrderSchema).optional(), + user_GameId: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const HitAvgOrderByAggregateInputSchema: z.ZodType = z.object({ + x: z.lazy(() => SortOrderSchema).optional(), + y: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const HitMaxOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + x: z.lazy(() => SortOrderSchema).optional(), + y: z.lazy(() => SortOrderSchema).optional(), + hit: z.lazy(() => SortOrderSchema).optional(), + user_GameId: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const HitMinOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + x: z.lazy(() => SortOrderSchema).optional(), + y: z.lazy(() => SortOrderSchema).optional(), + hit: z.lazy(() => SortOrderSchema).optional(), + user_GameId: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const HitSumOrderByAggregateInputSchema: z.ZodType = z.object({ + x: z.lazy(() => SortOrderSchema).optional(), + y: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const MoveListRelationFilterSchema: z.ZodType = z.object({ + every: z.lazy(() => MoveWhereInputSchema).optional(), + some: z.lazy(() => MoveWhereInputSchema).optional(), + none: z.lazy(() => MoveWhereInputSchema).optional() +}).strict(); + +export const ShipListRelationFilterSchema: z.ZodType = z.object({ + every: z.lazy(() => ShipWhereInputSchema).optional(), + some: z.lazy(() => ShipWhereInputSchema).optional(), + none: z.lazy(() => ShipWhereInputSchema).optional() +}).strict(); + +export const HitListRelationFilterSchema: z.ZodType = z.object({ + every: z.lazy(() => HitWhereInputSchema).optional(), + some: z.lazy(() => HitWhereInputSchema).optional(), + none: z.lazy(() => HitWhereInputSchema).optional() +}).strict(); + +export const ChatListRelationFilterSchema: z.ZodType = z.object({ + every: z.lazy(() => ChatWhereInputSchema).optional(), + some: z.lazy(() => ChatWhereInputSchema).optional(), + none: z.lazy(() => ChatWhereInputSchema).optional() +}).strict(); + +export const MoveOrderByRelationAggregateInputSchema: z.ZodType = z.object({ + _count: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const ShipOrderByRelationAggregateInputSchema: z.ZodType = z.object({ + _count: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const HitOrderByRelationAggregateInputSchema: z.ZodType = z.object({ + _count: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const ChatOrderByRelationAggregateInputSchema: z.ZodType = z.object({ + _count: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const User_GameGameIdIndexCompoundUniqueInputSchema: z.ZodType = z.object({ + gameId: z.string(), + index: z.number() +}).strict(); + +export const User_GameGameIdUserIdCompoundUniqueInputSchema: z.ZodType = z.object({ + gameId: z.string(), + userId: z.string() +}).strict(); + +export const User_GameCountOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + gameId: z.lazy(() => SortOrderSchema).optional(), + userId: z.lazy(() => SortOrderSchema).optional(), + index: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const User_GameAvgOrderByAggregateInputSchema: z.ZodType = z.object({ + index: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const User_GameMaxOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + gameId: z.lazy(() => SortOrderSchema).optional(), + userId: z.lazy(() => SortOrderSchema).optional(), + index: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const User_GameMinOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + gameId: z.lazy(() => SortOrderSchema).optional(), + userId: z.lazy(() => SortOrderSchema).optional(), + index: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const User_GameSumOrderByAggregateInputSchema: z.ZodType = z.object({ + index: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const EnumMoveTypeFilterSchema: z.ZodType = z.object({ + equals: z.lazy(() => MoveTypeSchema).optional(), + in: z.union([ z.lazy(() => MoveTypeSchema).array(),z.lazy(() => MoveTypeSchema) ]).optional(), + notIn: z.union([ z.lazy(() => MoveTypeSchema).array(),z.lazy(() => MoveTypeSchema) ]).optional(), + not: z.union([ z.lazy(() => MoveTypeSchema),z.lazy(() => NestedEnumMoveTypeFilterSchema) ]).optional(), +}).strict(); + +export const MoveCountOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + index: z.lazy(() => SortOrderSchema).optional(), + type: z.lazy(() => SortOrderSchema).optional(), + x: z.lazy(() => SortOrderSchema).optional(), + y: z.lazy(() => SortOrderSchema).optional(), + orientation: z.lazy(() => SortOrderSchema).optional(), + user_game_id: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const MoveAvgOrderByAggregateInputSchema: z.ZodType = z.object({ + index: z.lazy(() => SortOrderSchema).optional(), + x: z.lazy(() => SortOrderSchema).optional(), + y: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const MoveMaxOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + index: z.lazy(() => SortOrderSchema).optional(), + type: z.lazy(() => SortOrderSchema).optional(), + x: z.lazy(() => SortOrderSchema).optional(), + y: z.lazy(() => SortOrderSchema).optional(), + orientation: z.lazy(() => SortOrderSchema).optional(), + user_game_id: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const MoveMinOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + index: z.lazy(() => SortOrderSchema).optional(), + type: z.lazy(() => SortOrderSchema).optional(), + x: z.lazy(() => SortOrderSchema).optional(), + y: z.lazy(() => SortOrderSchema).optional(), + orientation: z.lazy(() => SortOrderSchema).optional(), + user_game_id: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const MoveSumOrderByAggregateInputSchema: z.ZodType = z.object({ + index: z.lazy(() => SortOrderSchema).optional(), + x: z.lazy(() => SortOrderSchema).optional(), + y: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const EnumMoveTypeWithAggregatesFilterSchema: z.ZodType = z.object({ + equals: z.lazy(() => MoveTypeSchema).optional(), + in: z.union([ z.lazy(() => MoveTypeSchema).array(),z.lazy(() => MoveTypeSchema) ]).optional(), + notIn: z.union([ z.lazy(() => MoveTypeSchema).array(),z.lazy(() => MoveTypeSchema) ]).optional(), + not: z.union([ z.lazy(() => MoveTypeSchema),z.lazy(() => NestedEnumMoveTypeWithAggregatesFilterSchema) ]).optional(), + _count: z.lazy(() => NestedIntFilterSchema).optional(), + _min: z.lazy(() => NestedEnumMoveTypeFilterSchema).optional(), + _max: z.lazy(() => NestedEnumMoveTypeFilterSchema).optional() +}).strict(); + +export const ChatCountOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + message: z.lazy(() => SortOrderSchema).optional(), + event: z.lazy(() => SortOrderSchema).optional(), + user_game_id: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const ChatMaxOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + message: z.lazy(() => SortOrderSchema).optional(), + event: z.lazy(() => SortOrderSchema).optional(), + user_game_id: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const ChatMinOrderByAggregateInputSchema: z.ZodType = z.object({ + id: z.lazy(() => SortOrderSchema).optional(), + createdAt: z.lazy(() => SortOrderSchema).optional(), + message: z.lazy(() => SortOrderSchema).optional(), + event: z.lazy(() => SortOrderSchema).optional(), + user_game_id: z.lazy(() => SortOrderSchema).optional() +}).strict(); + +export const UserCreateNestedOneWithoutAccountsInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => UserCreateWithoutAccountsInputSchema),z.lazy(() => UserUncheckedCreateWithoutAccountsInputSchema) ]).optional(), + connectOrCreate: z.lazy(() => UserCreateOrConnectWithoutAccountsInputSchema).optional(), + connect: z.lazy(() => UserWhereUniqueInputSchema).optional() +}).strict(); + +export const StringFieldUpdateOperationsInputSchema: z.ZodType = z.object({ + set: z.string().optional() +}).strict(); + +export const NullableStringFieldUpdateOperationsInputSchema: z.ZodType = z.object({ + set: z.string().optional().nullable() +}).strict(); + +export const NullableIntFieldUpdateOperationsInputSchema: z.ZodType = z.object({ + set: z.number().optional().nullable(), + increment: z.number().optional(), + decrement: z.number().optional(), + multiply: z.number().optional(), + divide: z.number().optional() +}).strict(); + +export const UserUpdateOneRequiredWithoutAccountsNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => UserCreateWithoutAccountsInputSchema),z.lazy(() => UserUncheckedCreateWithoutAccountsInputSchema) ]).optional(), + connectOrCreate: z.lazy(() => UserCreateOrConnectWithoutAccountsInputSchema).optional(), + upsert: z.lazy(() => UserUpsertWithoutAccountsInputSchema).optional(), + connect: z.lazy(() => UserWhereUniqueInputSchema).optional(), + update: z.union([ z.lazy(() => UserUpdateWithoutAccountsInputSchema),z.lazy(() => UserUncheckedUpdateWithoutAccountsInputSchema) ]).optional(), +}).strict(); + +export const UserCreateNestedOneWithoutSessionsInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => UserCreateWithoutSessionsInputSchema),z.lazy(() => UserUncheckedCreateWithoutSessionsInputSchema) ]).optional(), + connectOrCreate: z.lazy(() => UserCreateOrConnectWithoutSessionsInputSchema).optional(), + connect: z.lazy(() => UserWhereUniqueInputSchema).optional() +}).strict(); + +export const DateTimeFieldUpdateOperationsInputSchema: z.ZodType = z.object({ + set: z.coerce.date().optional() +}).strict(); + +export const UserUpdateOneRequiredWithoutSessionsNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => UserCreateWithoutSessionsInputSchema),z.lazy(() => UserUncheckedCreateWithoutSessionsInputSchema) ]).optional(), + connectOrCreate: z.lazy(() => UserCreateOrConnectWithoutSessionsInputSchema).optional(), + upsert: z.lazy(() => UserUpsertWithoutSessionsInputSchema).optional(), + connect: z.lazy(() => UserWhereUniqueInputSchema).optional(), + update: z.union([ z.lazy(() => UserUpdateWithoutSessionsInputSchema),z.lazy(() => UserUncheckedUpdateWithoutSessionsInputSchema) ]).optional(), +}).strict(); + +export const User_GameCreateNestedManyWithoutUserInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => User_GameCreateWithoutUserInputSchema),z.lazy(() => User_GameCreateWithoutUserInputSchema).array(),z.lazy(() => User_GameUncheckedCreateWithoutUserInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutUserInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => User_GameCreateOrConnectWithoutUserInputSchema),z.lazy(() => User_GameCreateOrConnectWithoutUserInputSchema).array() ]).optional(), + createMany: z.lazy(() => User_GameCreateManyUserInputEnvelopeSchema).optional(), + connect: z.union([ z.lazy(() => User_GameWhereUniqueInputSchema),z.lazy(() => User_GameWhereUniqueInputSchema).array() ]).optional(), +}).strict(); + +export const AccountCreateNestedManyWithoutUserInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => AccountCreateWithoutUserInputSchema),z.lazy(() => AccountCreateWithoutUserInputSchema).array(),z.lazy(() => AccountUncheckedCreateWithoutUserInputSchema),z.lazy(() => AccountUncheckedCreateWithoutUserInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => AccountCreateOrConnectWithoutUserInputSchema),z.lazy(() => AccountCreateOrConnectWithoutUserInputSchema).array() ]).optional(), + createMany: z.lazy(() => AccountCreateManyUserInputEnvelopeSchema).optional(), + connect: z.union([ z.lazy(() => AccountWhereUniqueInputSchema),z.lazy(() => AccountWhereUniqueInputSchema).array() ]).optional(), +}).strict(); + +export const SessionCreateNestedManyWithoutUserInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => SessionCreateWithoutUserInputSchema),z.lazy(() => SessionCreateWithoutUserInputSchema).array(),z.lazy(() => SessionUncheckedCreateWithoutUserInputSchema),z.lazy(() => SessionUncheckedCreateWithoutUserInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => SessionCreateOrConnectWithoutUserInputSchema),z.lazy(() => SessionCreateOrConnectWithoutUserInputSchema).array() ]).optional(), + createMany: z.lazy(() => SessionCreateManyUserInputEnvelopeSchema).optional(), + connect: z.union([ z.lazy(() => SessionWhereUniqueInputSchema),z.lazy(() => SessionWhereUniqueInputSchema).array() ]).optional(), +}).strict(); + +export const User_GameUncheckedCreateNestedManyWithoutUserInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => User_GameCreateWithoutUserInputSchema),z.lazy(() => User_GameCreateWithoutUserInputSchema).array(),z.lazy(() => User_GameUncheckedCreateWithoutUserInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutUserInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => User_GameCreateOrConnectWithoutUserInputSchema),z.lazy(() => User_GameCreateOrConnectWithoutUserInputSchema).array() ]).optional(), + createMany: z.lazy(() => User_GameCreateManyUserInputEnvelopeSchema).optional(), + connect: z.union([ z.lazy(() => User_GameWhereUniqueInputSchema),z.lazy(() => User_GameWhereUniqueInputSchema).array() ]).optional(), +}).strict(); + +export const AccountUncheckedCreateNestedManyWithoutUserInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => AccountCreateWithoutUserInputSchema),z.lazy(() => AccountCreateWithoutUserInputSchema).array(),z.lazy(() => AccountUncheckedCreateWithoutUserInputSchema),z.lazy(() => AccountUncheckedCreateWithoutUserInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => AccountCreateOrConnectWithoutUserInputSchema),z.lazy(() => AccountCreateOrConnectWithoutUserInputSchema).array() ]).optional(), + createMany: z.lazy(() => AccountCreateManyUserInputEnvelopeSchema).optional(), + connect: z.union([ z.lazy(() => AccountWhereUniqueInputSchema),z.lazy(() => AccountWhereUniqueInputSchema).array() ]).optional(), +}).strict(); + +export const SessionUncheckedCreateNestedManyWithoutUserInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => SessionCreateWithoutUserInputSchema),z.lazy(() => SessionCreateWithoutUserInputSchema).array(),z.lazy(() => SessionUncheckedCreateWithoutUserInputSchema),z.lazy(() => SessionUncheckedCreateWithoutUserInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => SessionCreateOrConnectWithoutUserInputSchema),z.lazy(() => SessionCreateOrConnectWithoutUserInputSchema).array() ]).optional(), + createMany: z.lazy(() => SessionCreateManyUserInputEnvelopeSchema).optional(), + connect: z.union([ z.lazy(() => SessionWhereUniqueInputSchema),z.lazy(() => SessionWhereUniqueInputSchema).array() ]).optional(), +}).strict(); + +export const NullableDateTimeFieldUpdateOperationsInputSchema: z.ZodType = z.object({ + set: z.coerce.date().optional().nullable() +}).strict(); + +export const User_GameUpdateManyWithoutUserNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => User_GameCreateWithoutUserInputSchema),z.lazy(() => User_GameCreateWithoutUserInputSchema).array(),z.lazy(() => User_GameUncheckedCreateWithoutUserInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutUserInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => User_GameCreateOrConnectWithoutUserInputSchema),z.lazy(() => User_GameCreateOrConnectWithoutUserInputSchema).array() ]).optional(), + upsert: z.union([ z.lazy(() => User_GameUpsertWithWhereUniqueWithoutUserInputSchema),z.lazy(() => User_GameUpsertWithWhereUniqueWithoutUserInputSchema).array() ]).optional(), + createMany: z.lazy(() => User_GameCreateManyUserInputEnvelopeSchema).optional(), + set: z.union([ z.lazy(() => User_GameWhereUniqueInputSchema),z.lazy(() => User_GameWhereUniqueInputSchema).array() ]).optional(), + disconnect: z.union([ z.lazy(() => User_GameWhereUniqueInputSchema),z.lazy(() => User_GameWhereUniqueInputSchema).array() ]).optional(), + delete: z.union([ z.lazy(() => User_GameWhereUniqueInputSchema),z.lazy(() => User_GameWhereUniqueInputSchema).array() ]).optional(), + connect: z.union([ z.lazy(() => User_GameWhereUniqueInputSchema),z.lazy(() => User_GameWhereUniqueInputSchema).array() ]).optional(), + update: z.union([ z.lazy(() => User_GameUpdateWithWhereUniqueWithoutUserInputSchema),z.lazy(() => User_GameUpdateWithWhereUniqueWithoutUserInputSchema).array() ]).optional(), + updateMany: z.union([ z.lazy(() => User_GameUpdateManyWithWhereWithoutUserInputSchema),z.lazy(() => User_GameUpdateManyWithWhereWithoutUserInputSchema).array() ]).optional(), + deleteMany: z.union([ z.lazy(() => User_GameScalarWhereInputSchema),z.lazy(() => User_GameScalarWhereInputSchema).array() ]).optional(), +}).strict(); + +export const AccountUpdateManyWithoutUserNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => AccountCreateWithoutUserInputSchema),z.lazy(() => AccountCreateWithoutUserInputSchema).array(),z.lazy(() => AccountUncheckedCreateWithoutUserInputSchema),z.lazy(() => AccountUncheckedCreateWithoutUserInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => AccountCreateOrConnectWithoutUserInputSchema),z.lazy(() => AccountCreateOrConnectWithoutUserInputSchema).array() ]).optional(), + upsert: z.union([ z.lazy(() => AccountUpsertWithWhereUniqueWithoutUserInputSchema),z.lazy(() => AccountUpsertWithWhereUniqueWithoutUserInputSchema).array() ]).optional(), + createMany: z.lazy(() => AccountCreateManyUserInputEnvelopeSchema).optional(), + set: z.union([ z.lazy(() => AccountWhereUniqueInputSchema),z.lazy(() => AccountWhereUniqueInputSchema).array() ]).optional(), + disconnect: z.union([ z.lazy(() => AccountWhereUniqueInputSchema),z.lazy(() => AccountWhereUniqueInputSchema).array() ]).optional(), + delete: z.union([ z.lazy(() => AccountWhereUniqueInputSchema),z.lazy(() => AccountWhereUniqueInputSchema).array() ]).optional(), + connect: z.union([ z.lazy(() => AccountWhereUniqueInputSchema),z.lazy(() => AccountWhereUniqueInputSchema).array() ]).optional(), + update: z.union([ z.lazy(() => AccountUpdateWithWhereUniqueWithoutUserInputSchema),z.lazy(() => AccountUpdateWithWhereUniqueWithoutUserInputSchema).array() ]).optional(), + updateMany: z.union([ z.lazy(() => AccountUpdateManyWithWhereWithoutUserInputSchema),z.lazy(() => AccountUpdateManyWithWhereWithoutUserInputSchema).array() ]).optional(), + deleteMany: z.union([ z.lazy(() => AccountScalarWhereInputSchema),z.lazy(() => AccountScalarWhereInputSchema).array() ]).optional(), +}).strict(); + +export const SessionUpdateManyWithoutUserNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => SessionCreateWithoutUserInputSchema),z.lazy(() => SessionCreateWithoutUserInputSchema).array(),z.lazy(() => SessionUncheckedCreateWithoutUserInputSchema),z.lazy(() => SessionUncheckedCreateWithoutUserInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => SessionCreateOrConnectWithoutUserInputSchema),z.lazy(() => SessionCreateOrConnectWithoutUserInputSchema).array() ]).optional(), + upsert: z.union([ z.lazy(() => SessionUpsertWithWhereUniqueWithoutUserInputSchema),z.lazy(() => SessionUpsertWithWhereUniqueWithoutUserInputSchema).array() ]).optional(), + createMany: z.lazy(() => SessionCreateManyUserInputEnvelopeSchema).optional(), + set: z.union([ z.lazy(() => SessionWhereUniqueInputSchema),z.lazy(() => SessionWhereUniqueInputSchema).array() ]).optional(), + disconnect: z.union([ z.lazy(() => SessionWhereUniqueInputSchema),z.lazy(() => SessionWhereUniqueInputSchema).array() ]).optional(), + delete: z.union([ z.lazy(() => SessionWhereUniqueInputSchema),z.lazy(() => SessionWhereUniqueInputSchema).array() ]).optional(), + connect: z.union([ z.lazy(() => SessionWhereUniqueInputSchema),z.lazy(() => SessionWhereUniqueInputSchema).array() ]).optional(), + update: z.union([ z.lazy(() => SessionUpdateWithWhereUniqueWithoutUserInputSchema),z.lazy(() => SessionUpdateWithWhereUniqueWithoutUserInputSchema).array() ]).optional(), + updateMany: z.union([ z.lazy(() => SessionUpdateManyWithWhereWithoutUserInputSchema),z.lazy(() => SessionUpdateManyWithWhereWithoutUserInputSchema).array() ]).optional(), + deleteMany: z.union([ z.lazy(() => SessionScalarWhereInputSchema),z.lazy(() => SessionScalarWhereInputSchema).array() ]).optional(), +}).strict(); + +export const User_GameUncheckedUpdateManyWithoutUserNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => User_GameCreateWithoutUserInputSchema),z.lazy(() => User_GameCreateWithoutUserInputSchema).array(),z.lazy(() => User_GameUncheckedCreateWithoutUserInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutUserInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => User_GameCreateOrConnectWithoutUserInputSchema),z.lazy(() => User_GameCreateOrConnectWithoutUserInputSchema).array() ]).optional(), + upsert: z.union([ z.lazy(() => User_GameUpsertWithWhereUniqueWithoutUserInputSchema),z.lazy(() => User_GameUpsertWithWhereUniqueWithoutUserInputSchema).array() ]).optional(), + createMany: z.lazy(() => User_GameCreateManyUserInputEnvelopeSchema).optional(), + set: z.union([ z.lazy(() => User_GameWhereUniqueInputSchema),z.lazy(() => User_GameWhereUniqueInputSchema).array() ]).optional(), + disconnect: z.union([ z.lazy(() => User_GameWhereUniqueInputSchema),z.lazy(() => User_GameWhereUniqueInputSchema).array() ]).optional(), + delete: z.union([ z.lazy(() => User_GameWhereUniqueInputSchema),z.lazy(() => User_GameWhereUniqueInputSchema).array() ]).optional(), + connect: z.union([ z.lazy(() => User_GameWhereUniqueInputSchema),z.lazy(() => User_GameWhereUniqueInputSchema).array() ]).optional(), + update: z.union([ z.lazy(() => User_GameUpdateWithWhereUniqueWithoutUserInputSchema),z.lazy(() => User_GameUpdateWithWhereUniqueWithoutUserInputSchema).array() ]).optional(), + updateMany: z.union([ z.lazy(() => User_GameUpdateManyWithWhereWithoutUserInputSchema),z.lazy(() => User_GameUpdateManyWithWhereWithoutUserInputSchema).array() ]).optional(), + deleteMany: z.union([ z.lazy(() => User_GameScalarWhereInputSchema),z.lazy(() => User_GameScalarWhereInputSchema).array() ]).optional(), +}).strict(); + +export const AccountUncheckedUpdateManyWithoutUserNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => AccountCreateWithoutUserInputSchema),z.lazy(() => AccountCreateWithoutUserInputSchema).array(),z.lazy(() => AccountUncheckedCreateWithoutUserInputSchema),z.lazy(() => AccountUncheckedCreateWithoutUserInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => AccountCreateOrConnectWithoutUserInputSchema),z.lazy(() => AccountCreateOrConnectWithoutUserInputSchema).array() ]).optional(), + upsert: z.union([ z.lazy(() => AccountUpsertWithWhereUniqueWithoutUserInputSchema),z.lazy(() => AccountUpsertWithWhereUniqueWithoutUserInputSchema).array() ]).optional(), + createMany: z.lazy(() => AccountCreateManyUserInputEnvelopeSchema).optional(), + set: z.union([ z.lazy(() => AccountWhereUniqueInputSchema),z.lazy(() => AccountWhereUniqueInputSchema).array() ]).optional(), + disconnect: z.union([ z.lazy(() => AccountWhereUniqueInputSchema),z.lazy(() => AccountWhereUniqueInputSchema).array() ]).optional(), + delete: z.union([ z.lazy(() => AccountWhereUniqueInputSchema),z.lazy(() => AccountWhereUniqueInputSchema).array() ]).optional(), + connect: z.union([ z.lazy(() => AccountWhereUniqueInputSchema),z.lazy(() => AccountWhereUniqueInputSchema).array() ]).optional(), + update: z.union([ z.lazy(() => AccountUpdateWithWhereUniqueWithoutUserInputSchema),z.lazy(() => AccountUpdateWithWhereUniqueWithoutUserInputSchema).array() ]).optional(), + updateMany: z.union([ z.lazy(() => AccountUpdateManyWithWhereWithoutUserInputSchema),z.lazy(() => AccountUpdateManyWithWhereWithoutUserInputSchema).array() ]).optional(), + deleteMany: z.union([ z.lazy(() => AccountScalarWhereInputSchema),z.lazy(() => AccountScalarWhereInputSchema).array() ]).optional(), +}).strict(); + +export const SessionUncheckedUpdateManyWithoutUserNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => SessionCreateWithoutUserInputSchema),z.lazy(() => SessionCreateWithoutUserInputSchema).array(),z.lazy(() => SessionUncheckedCreateWithoutUserInputSchema),z.lazy(() => SessionUncheckedCreateWithoutUserInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => SessionCreateOrConnectWithoutUserInputSchema),z.lazy(() => SessionCreateOrConnectWithoutUserInputSchema).array() ]).optional(), + upsert: z.union([ z.lazy(() => SessionUpsertWithWhereUniqueWithoutUserInputSchema),z.lazy(() => SessionUpsertWithWhereUniqueWithoutUserInputSchema).array() ]).optional(), + createMany: z.lazy(() => SessionCreateManyUserInputEnvelopeSchema).optional(), + set: z.union([ z.lazy(() => SessionWhereUniqueInputSchema),z.lazy(() => SessionWhereUniqueInputSchema).array() ]).optional(), + disconnect: z.union([ z.lazy(() => SessionWhereUniqueInputSchema),z.lazy(() => SessionWhereUniqueInputSchema).array() ]).optional(), + delete: z.union([ z.lazy(() => SessionWhereUniqueInputSchema),z.lazy(() => SessionWhereUniqueInputSchema).array() ]).optional(), + connect: z.union([ z.lazy(() => SessionWhereUniqueInputSchema),z.lazy(() => SessionWhereUniqueInputSchema).array() ]).optional(), + update: z.union([ z.lazy(() => SessionUpdateWithWhereUniqueWithoutUserInputSchema),z.lazy(() => SessionUpdateWithWhereUniqueWithoutUserInputSchema).array() ]).optional(), + updateMany: z.union([ z.lazy(() => SessionUpdateManyWithWhereWithoutUserInputSchema),z.lazy(() => SessionUpdateManyWithWhereWithoutUserInputSchema).array() ]).optional(), + deleteMany: z.union([ z.lazy(() => SessionScalarWhereInputSchema),z.lazy(() => SessionScalarWhereInputSchema).array() ]).optional(), +}).strict(); + +export const GamepinCreateNestedOneWithoutGameInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => GamepinCreateWithoutGameInputSchema),z.lazy(() => GamepinUncheckedCreateWithoutGameInputSchema) ]).optional(), + connectOrCreate: z.lazy(() => GamepinCreateOrConnectWithoutGameInputSchema).optional(), + connect: z.lazy(() => GamepinWhereUniqueInputSchema).optional() +}).strict(); + +export const User_GameCreateNestedManyWithoutGameInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => User_GameCreateWithoutGameInputSchema),z.lazy(() => User_GameCreateWithoutGameInputSchema).array(),z.lazy(() => User_GameUncheckedCreateWithoutGameInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutGameInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => User_GameCreateOrConnectWithoutGameInputSchema),z.lazy(() => User_GameCreateOrConnectWithoutGameInputSchema).array() ]).optional(), + createMany: z.lazy(() => User_GameCreateManyGameInputEnvelopeSchema).optional(), + connect: z.union([ z.lazy(() => User_GameWhereUniqueInputSchema),z.lazy(() => User_GameWhereUniqueInputSchema).array() ]).optional(), +}).strict(); + +export const GamepinUncheckedCreateNestedOneWithoutGameInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => GamepinCreateWithoutGameInputSchema),z.lazy(() => GamepinUncheckedCreateWithoutGameInputSchema) ]).optional(), + connectOrCreate: z.lazy(() => GamepinCreateOrConnectWithoutGameInputSchema).optional(), + connect: z.lazy(() => GamepinWhereUniqueInputSchema).optional() +}).strict(); + +export const User_GameUncheckedCreateNestedManyWithoutGameInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => User_GameCreateWithoutGameInputSchema),z.lazy(() => User_GameCreateWithoutGameInputSchema).array(),z.lazy(() => User_GameUncheckedCreateWithoutGameInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutGameInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => User_GameCreateOrConnectWithoutGameInputSchema),z.lazy(() => User_GameCreateOrConnectWithoutGameInputSchema).array() ]).optional(), + createMany: z.lazy(() => User_GameCreateManyGameInputEnvelopeSchema).optional(), + connect: z.union([ z.lazy(() => User_GameWhereUniqueInputSchema),z.lazy(() => User_GameWhereUniqueInputSchema).array() ]).optional(), +}).strict(); + +export const EnumGameStateFieldUpdateOperationsInputSchema: z.ZodType = z.object({ + set: z.lazy(() => GameStateSchema).optional() +}).strict(); + +export const BoolFieldUpdateOperationsInputSchema: z.ZodType = z.object({ + set: z.boolean().optional() +}).strict(); + +export const GamepinUpdateOneWithoutGameNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => GamepinCreateWithoutGameInputSchema),z.lazy(() => GamepinUncheckedCreateWithoutGameInputSchema) ]).optional(), + connectOrCreate: z.lazy(() => GamepinCreateOrConnectWithoutGameInputSchema).optional(), + upsert: z.lazy(() => GamepinUpsertWithoutGameInputSchema).optional(), + disconnect: z.boolean().optional(), + delete: z.boolean().optional(), + connect: z.lazy(() => GamepinWhereUniqueInputSchema).optional(), + update: z.union([ z.lazy(() => GamepinUpdateWithoutGameInputSchema),z.lazy(() => GamepinUncheckedUpdateWithoutGameInputSchema) ]).optional(), +}).strict(); + +export const User_GameUpdateManyWithoutGameNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => User_GameCreateWithoutGameInputSchema),z.lazy(() => User_GameCreateWithoutGameInputSchema).array(),z.lazy(() => User_GameUncheckedCreateWithoutGameInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutGameInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => User_GameCreateOrConnectWithoutGameInputSchema),z.lazy(() => User_GameCreateOrConnectWithoutGameInputSchema).array() ]).optional(), + upsert: z.union([ z.lazy(() => User_GameUpsertWithWhereUniqueWithoutGameInputSchema),z.lazy(() => User_GameUpsertWithWhereUniqueWithoutGameInputSchema).array() ]).optional(), + createMany: z.lazy(() => User_GameCreateManyGameInputEnvelopeSchema).optional(), + set: z.union([ z.lazy(() => User_GameWhereUniqueInputSchema),z.lazy(() => User_GameWhereUniqueInputSchema).array() ]).optional(), + disconnect: z.union([ z.lazy(() => User_GameWhereUniqueInputSchema),z.lazy(() => User_GameWhereUniqueInputSchema).array() ]).optional(), + delete: z.union([ z.lazy(() => User_GameWhereUniqueInputSchema),z.lazy(() => User_GameWhereUniqueInputSchema).array() ]).optional(), + connect: z.union([ z.lazy(() => User_GameWhereUniqueInputSchema),z.lazy(() => User_GameWhereUniqueInputSchema).array() ]).optional(), + update: z.union([ z.lazy(() => User_GameUpdateWithWhereUniqueWithoutGameInputSchema),z.lazy(() => User_GameUpdateWithWhereUniqueWithoutGameInputSchema).array() ]).optional(), + updateMany: z.union([ z.lazy(() => User_GameUpdateManyWithWhereWithoutGameInputSchema),z.lazy(() => User_GameUpdateManyWithWhereWithoutGameInputSchema).array() ]).optional(), + deleteMany: z.union([ z.lazy(() => User_GameScalarWhereInputSchema),z.lazy(() => User_GameScalarWhereInputSchema).array() ]).optional(), +}).strict(); + +export const GamepinUncheckedUpdateOneWithoutGameNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => GamepinCreateWithoutGameInputSchema),z.lazy(() => GamepinUncheckedCreateWithoutGameInputSchema) ]).optional(), + connectOrCreate: z.lazy(() => GamepinCreateOrConnectWithoutGameInputSchema).optional(), + upsert: z.lazy(() => GamepinUpsertWithoutGameInputSchema).optional(), + disconnect: z.boolean().optional(), + delete: z.boolean().optional(), + connect: z.lazy(() => GamepinWhereUniqueInputSchema).optional(), + update: z.union([ z.lazy(() => GamepinUpdateWithoutGameInputSchema),z.lazy(() => GamepinUncheckedUpdateWithoutGameInputSchema) ]).optional(), +}).strict(); + +export const User_GameUncheckedUpdateManyWithoutGameNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => User_GameCreateWithoutGameInputSchema),z.lazy(() => User_GameCreateWithoutGameInputSchema).array(),z.lazy(() => User_GameUncheckedCreateWithoutGameInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutGameInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => User_GameCreateOrConnectWithoutGameInputSchema),z.lazy(() => User_GameCreateOrConnectWithoutGameInputSchema).array() ]).optional(), + upsert: z.union([ z.lazy(() => User_GameUpsertWithWhereUniqueWithoutGameInputSchema),z.lazy(() => User_GameUpsertWithWhereUniqueWithoutGameInputSchema).array() ]).optional(), + createMany: z.lazy(() => User_GameCreateManyGameInputEnvelopeSchema).optional(), + set: z.union([ z.lazy(() => User_GameWhereUniqueInputSchema),z.lazy(() => User_GameWhereUniqueInputSchema).array() ]).optional(), + disconnect: z.union([ z.lazy(() => User_GameWhereUniqueInputSchema),z.lazy(() => User_GameWhereUniqueInputSchema).array() ]).optional(), + delete: z.union([ z.lazy(() => User_GameWhereUniqueInputSchema),z.lazy(() => User_GameWhereUniqueInputSchema).array() ]).optional(), + connect: z.union([ z.lazy(() => User_GameWhereUniqueInputSchema),z.lazy(() => User_GameWhereUniqueInputSchema).array() ]).optional(), + update: z.union([ z.lazy(() => User_GameUpdateWithWhereUniqueWithoutGameInputSchema),z.lazy(() => User_GameUpdateWithWhereUniqueWithoutGameInputSchema).array() ]).optional(), + updateMany: z.union([ z.lazy(() => User_GameUpdateManyWithWhereWithoutGameInputSchema),z.lazy(() => User_GameUpdateManyWithWhereWithoutGameInputSchema).array() ]).optional(), + deleteMany: z.union([ z.lazy(() => User_GameScalarWhereInputSchema),z.lazy(() => User_GameScalarWhereInputSchema).array() ]).optional(), +}).strict(); + +export const GameCreateNestedOneWithoutGamePinInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => GameCreateWithoutGamePinInputSchema),z.lazy(() => GameUncheckedCreateWithoutGamePinInputSchema) ]).optional(), + connectOrCreate: z.lazy(() => GameCreateOrConnectWithoutGamePinInputSchema).optional(), + connect: z.lazy(() => GameWhereUniqueInputSchema).optional() +}).strict(); + +export const GameUpdateOneRequiredWithoutGamePinNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => GameCreateWithoutGamePinInputSchema),z.lazy(() => GameUncheckedCreateWithoutGamePinInputSchema) ]).optional(), + connectOrCreate: z.lazy(() => GameCreateOrConnectWithoutGamePinInputSchema).optional(), + upsert: z.lazy(() => GameUpsertWithoutGamePinInputSchema).optional(), + connect: z.lazy(() => GameWhereUniqueInputSchema).optional(), + update: z.union([ z.lazy(() => GameUpdateWithoutGamePinInputSchema),z.lazy(() => GameUncheckedUpdateWithoutGamePinInputSchema) ]).optional(), +}).strict(); + +export const User_GameCreateNestedOneWithoutShipsInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => User_GameCreateWithoutShipsInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutShipsInputSchema) ]).optional(), + connectOrCreate: z.lazy(() => User_GameCreateOrConnectWithoutShipsInputSchema).optional(), + connect: z.lazy(() => User_GameWhereUniqueInputSchema).optional() +}).strict(); + +export const IntFieldUpdateOperationsInputSchema: z.ZodType = z.object({ + set: z.number().optional(), + increment: z.number().optional(), + decrement: z.number().optional(), + multiply: z.number().optional(), + divide: z.number().optional() +}).strict(); + +export const EnumOrientationFieldUpdateOperationsInputSchema: z.ZodType = z.object({ + set: z.lazy(() => OrientationSchema).optional() +}).strict(); + +export const User_GameUpdateOneRequiredWithoutShipsNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => User_GameCreateWithoutShipsInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutShipsInputSchema) ]).optional(), + connectOrCreate: z.lazy(() => User_GameCreateOrConnectWithoutShipsInputSchema).optional(), + upsert: z.lazy(() => User_GameUpsertWithoutShipsInputSchema).optional(), + connect: z.lazy(() => User_GameWhereUniqueInputSchema).optional(), + update: z.union([ z.lazy(() => User_GameUpdateWithoutShipsInputSchema),z.lazy(() => User_GameUncheckedUpdateWithoutShipsInputSchema) ]).optional(), +}).strict(); + +export const User_GameCreateNestedOneWithoutHitsInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => User_GameCreateWithoutHitsInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutHitsInputSchema) ]).optional(), + connectOrCreate: z.lazy(() => User_GameCreateOrConnectWithoutHitsInputSchema).optional(), + connect: z.lazy(() => User_GameWhereUniqueInputSchema).optional() +}).strict(); + +export const User_GameUpdateOneRequiredWithoutHitsNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => User_GameCreateWithoutHitsInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutHitsInputSchema) ]).optional(), + connectOrCreate: z.lazy(() => User_GameCreateOrConnectWithoutHitsInputSchema).optional(), + upsert: z.lazy(() => User_GameUpsertWithoutHitsInputSchema).optional(), + connect: z.lazy(() => User_GameWhereUniqueInputSchema).optional(), + update: z.union([ z.lazy(() => User_GameUpdateWithoutHitsInputSchema),z.lazy(() => User_GameUncheckedUpdateWithoutHitsInputSchema) ]).optional(), +}).strict(); + +export const MoveCreateNestedManyWithoutUser_gameInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => MoveCreateWithoutUser_gameInputSchema),z.lazy(() => MoveCreateWithoutUser_gameInputSchema).array(),z.lazy(() => MoveUncheckedCreateWithoutUser_gameInputSchema),z.lazy(() => MoveUncheckedCreateWithoutUser_gameInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => MoveCreateOrConnectWithoutUser_gameInputSchema),z.lazy(() => MoveCreateOrConnectWithoutUser_gameInputSchema).array() ]).optional(), + createMany: z.lazy(() => MoveCreateManyUser_gameInputEnvelopeSchema).optional(), + connect: z.union([ z.lazy(() => MoveWhereUniqueInputSchema),z.lazy(() => MoveWhereUniqueInputSchema).array() ]).optional(), +}).strict(); + +export const ShipCreateNestedManyWithoutUser_GameInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => ShipCreateWithoutUser_GameInputSchema),z.lazy(() => ShipCreateWithoutUser_GameInputSchema).array(),z.lazy(() => ShipUncheckedCreateWithoutUser_GameInputSchema),z.lazy(() => ShipUncheckedCreateWithoutUser_GameInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => ShipCreateOrConnectWithoutUser_GameInputSchema),z.lazy(() => ShipCreateOrConnectWithoutUser_GameInputSchema).array() ]).optional(), + createMany: z.lazy(() => ShipCreateManyUser_GameInputEnvelopeSchema).optional(), + connect: z.union([ z.lazy(() => ShipWhereUniqueInputSchema),z.lazy(() => ShipWhereUniqueInputSchema).array() ]).optional(), +}).strict(); + +export const HitCreateNestedManyWithoutUser_GameInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => HitCreateWithoutUser_GameInputSchema),z.lazy(() => HitCreateWithoutUser_GameInputSchema).array(),z.lazy(() => HitUncheckedCreateWithoutUser_GameInputSchema),z.lazy(() => HitUncheckedCreateWithoutUser_GameInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => HitCreateOrConnectWithoutUser_GameInputSchema),z.lazy(() => HitCreateOrConnectWithoutUser_GameInputSchema).array() ]).optional(), + createMany: z.lazy(() => HitCreateManyUser_GameInputEnvelopeSchema).optional(), + connect: z.union([ z.lazy(() => HitWhereUniqueInputSchema),z.lazy(() => HitWhereUniqueInputSchema).array() ]).optional(), +}).strict(); + +export const ChatCreateNestedManyWithoutUser_gameInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => ChatCreateWithoutUser_gameInputSchema),z.lazy(() => ChatCreateWithoutUser_gameInputSchema).array(),z.lazy(() => ChatUncheckedCreateWithoutUser_gameInputSchema),z.lazy(() => ChatUncheckedCreateWithoutUser_gameInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => ChatCreateOrConnectWithoutUser_gameInputSchema),z.lazy(() => ChatCreateOrConnectWithoutUser_gameInputSchema).array() ]).optional(), + createMany: z.lazy(() => ChatCreateManyUser_gameInputEnvelopeSchema).optional(), + connect: z.union([ z.lazy(() => ChatWhereUniqueInputSchema),z.lazy(() => ChatWhereUniqueInputSchema).array() ]).optional(), +}).strict(); + +export const GameCreateNestedOneWithoutUsersInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => GameCreateWithoutUsersInputSchema),z.lazy(() => GameUncheckedCreateWithoutUsersInputSchema) ]).optional(), + connectOrCreate: z.lazy(() => GameCreateOrConnectWithoutUsersInputSchema).optional(), + connect: z.lazy(() => GameWhereUniqueInputSchema).optional() +}).strict(); + +export const UserCreateNestedOneWithoutGamesInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => UserCreateWithoutGamesInputSchema),z.lazy(() => UserUncheckedCreateWithoutGamesInputSchema) ]).optional(), + connectOrCreate: z.lazy(() => UserCreateOrConnectWithoutGamesInputSchema).optional(), + connect: z.lazy(() => UserWhereUniqueInputSchema).optional() +}).strict(); + +export const MoveUncheckedCreateNestedManyWithoutUser_gameInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => MoveCreateWithoutUser_gameInputSchema),z.lazy(() => MoveCreateWithoutUser_gameInputSchema).array(),z.lazy(() => MoveUncheckedCreateWithoutUser_gameInputSchema),z.lazy(() => MoveUncheckedCreateWithoutUser_gameInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => MoveCreateOrConnectWithoutUser_gameInputSchema),z.lazy(() => MoveCreateOrConnectWithoutUser_gameInputSchema).array() ]).optional(), + createMany: z.lazy(() => MoveCreateManyUser_gameInputEnvelopeSchema).optional(), + connect: z.union([ z.lazy(() => MoveWhereUniqueInputSchema),z.lazy(() => MoveWhereUniqueInputSchema).array() ]).optional(), +}).strict(); + +export const ShipUncheckedCreateNestedManyWithoutUser_GameInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => ShipCreateWithoutUser_GameInputSchema),z.lazy(() => ShipCreateWithoutUser_GameInputSchema).array(),z.lazy(() => ShipUncheckedCreateWithoutUser_GameInputSchema),z.lazy(() => ShipUncheckedCreateWithoutUser_GameInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => ShipCreateOrConnectWithoutUser_GameInputSchema),z.lazy(() => ShipCreateOrConnectWithoutUser_GameInputSchema).array() ]).optional(), + createMany: z.lazy(() => ShipCreateManyUser_GameInputEnvelopeSchema).optional(), + connect: z.union([ z.lazy(() => ShipWhereUniqueInputSchema),z.lazy(() => ShipWhereUniqueInputSchema).array() ]).optional(), +}).strict(); + +export const HitUncheckedCreateNestedManyWithoutUser_GameInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => HitCreateWithoutUser_GameInputSchema),z.lazy(() => HitCreateWithoutUser_GameInputSchema).array(),z.lazy(() => HitUncheckedCreateWithoutUser_GameInputSchema),z.lazy(() => HitUncheckedCreateWithoutUser_GameInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => HitCreateOrConnectWithoutUser_GameInputSchema),z.lazy(() => HitCreateOrConnectWithoutUser_GameInputSchema).array() ]).optional(), + createMany: z.lazy(() => HitCreateManyUser_GameInputEnvelopeSchema).optional(), + connect: z.union([ z.lazy(() => HitWhereUniqueInputSchema),z.lazy(() => HitWhereUniqueInputSchema).array() ]).optional(), +}).strict(); + +export const ChatUncheckedCreateNestedManyWithoutUser_gameInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => ChatCreateWithoutUser_gameInputSchema),z.lazy(() => ChatCreateWithoutUser_gameInputSchema).array(),z.lazy(() => ChatUncheckedCreateWithoutUser_gameInputSchema),z.lazy(() => ChatUncheckedCreateWithoutUser_gameInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => ChatCreateOrConnectWithoutUser_gameInputSchema),z.lazy(() => ChatCreateOrConnectWithoutUser_gameInputSchema).array() ]).optional(), + createMany: z.lazy(() => ChatCreateManyUser_gameInputEnvelopeSchema).optional(), + connect: z.union([ z.lazy(() => ChatWhereUniqueInputSchema),z.lazy(() => ChatWhereUniqueInputSchema).array() ]).optional(), +}).strict(); + +export const MoveUpdateManyWithoutUser_gameNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => MoveCreateWithoutUser_gameInputSchema),z.lazy(() => MoveCreateWithoutUser_gameInputSchema).array(),z.lazy(() => MoveUncheckedCreateWithoutUser_gameInputSchema),z.lazy(() => MoveUncheckedCreateWithoutUser_gameInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => MoveCreateOrConnectWithoutUser_gameInputSchema),z.lazy(() => MoveCreateOrConnectWithoutUser_gameInputSchema).array() ]).optional(), + upsert: z.union([ z.lazy(() => MoveUpsertWithWhereUniqueWithoutUser_gameInputSchema),z.lazy(() => MoveUpsertWithWhereUniqueWithoutUser_gameInputSchema).array() ]).optional(), + createMany: z.lazy(() => MoveCreateManyUser_gameInputEnvelopeSchema).optional(), + set: z.union([ z.lazy(() => MoveWhereUniqueInputSchema),z.lazy(() => MoveWhereUniqueInputSchema).array() ]).optional(), + disconnect: z.union([ z.lazy(() => MoveWhereUniqueInputSchema),z.lazy(() => MoveWhereUniqueInputSchema).array() ]).optional(), + delete: z.union([ z.lazy(() => MoveWhereUniqueInputSchema),z.lazy(() => MoveWhereUniqueInputSchema).array() ]).optional(), + connect: z.union([ z.lazy(() => MoveWhereUniqueInputSchema),z.lazy(() => MoveWhereUniqueInputSchema).array() ]).optional(), + update: z.union([ z.lazy(() => MoveUpdateWithWhereUniqueWithoutUser_gameInputSchema),z.lazy(() => MoveUpdateWithWhereUniqueWithoutUser_gameInputSchema).array() ]).optional(), + updateMany: z.union([ z.lazy(() => MoveUpdateManyWithWhereWithoutUser_gameInputSchema),z.lazy(() => MoveUpdateManyWithWhereWithoutUser_gameInputSchema).array() ]).optional(), + deleteMany: z.union([ z.lazy(() => MoveScalarWhereInputSchema),z.lazy(() => MoveScalarWhereInputSchema).array() ]).optional(), +}).strict(); + +export const ShipUpdateManyWithoutUser_GameNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => ShipCreateWithoutUser_GameInputSchema),z.lazy(() => ShipCreateWithoutUser_GameInputSchema).array(),z.lazy(() => ShipUncheckedCreateWithoutUser_GameInputSchema),z.lazy(() => ShipUncheckedCreateWithoutUser_GameInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => ShipCreateOrConnectWithoutUser_GameInputSchema),z.lazy(() => ShipCreateOrConnectWithoutUser_GameInputSchema).array() ]).optional(), + upsert: z.union([ z.lazy(() => ShipUpsertWithWhereUniqueWithoutUser_GameInputSchema),z.lazy(() => ShipUpsertWithWhereUniqueWithoutUser_GameInputSchema).array() ]).optional(), + createMany: z.lazy(() => ShipCreateManyUser_GameInputEnvelopeSchema).optional(), + set: z.union([ z.lazy(() => ShipWhereUniqueInputSchema),z.lazy(() => ShipWhereUniqueInputSchema).array() ]).optional(), + disconnect: z.union([ z.lazy(() => ShipWhereUniqueInputSchema),z.lazy(() => ShipWhereUniqueInputSchema).array() ]).optional(), + delete: z.union([ z.lazy(() => ShipWhereUniqueInputSchema),z.lazy(() => ShipWhereUniqueInputSchema).array() ]).optional(), + connect: z.union([ z.lazy(() => ShipWhereUniqueInputSchema),z.lazy(() => ShipWhereUniqueInputSchema).array() ]).optional(), + update: z.union([ z.lazy(() => ShipUpdateWithWhereUniqueWithoutUser_GameInputSchema),z.lazy(() => ShipUpdateWithWhereUniqueWithoutUser_GameInputSchema).array() ]).optional(), + updateMany: z.union([ z.lazy(() => ShipUpdateManyWithWhereWithoutUser_GameInputSchema),z.lazy(() => ShipUpdateManyWithWhereWithoutUser_GameInputSchema).array() ]).optional(), + deleteMany: z.union([ z.lazy(() => ShipScalarWhereInputSchema),z.lazy(() => ShipScalarWhereInputSchema).array() ]).optional(), +}).strict(); + +export const HitUpdateManyWithoutUser_GameNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => HitCreateWithoutUser_GameInputSchema),z.lazy(() => HitCreateWithoutUser_GameInputSchema).array(),z.lazy(() => HitUncheckedCreateWithoutUser_GameInputSchema),z.lazy(() => HitUncheckedCreateWithoutUser_GameInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => HitCreateOrConnectWithoutUser_GameInputSchema),z.lazy(() => HitCreateOrConnectWithoutUser_GameInputSchema).array() ]).optional(), + upsert: z.union([ z.lazy(() => HitUpsertWithWhereUniqueWithoutUser_GameInputSchema),z.lazy(() => HitUpsertWithWhereUniqueWithoutUser_GameInputSchema).array() ]).optional(), + createMany: z.lazy(() => HitCreateManyUser_GameInputEnvelopeSchema).optional(), + set: z.union([ z.lazy(() => HitWhereUniqueInputSchema),z.lazy(() => HitWhereUniqueInputSchema).array() ]).optional(), + disconnect: z.union([ z.lazy(() => HitWhereUniqueInputSchema),z.lazy(() => HitWhereUniqueInputSchema).array() ]).optional(), + delete: z.union([ z.lazy(() => HitWhereUniqueInputSchema),z.lazy(() => HitWhereUniqueInputSchema).array() ]).optional(), + connect: z.union([ z.lazy(() => HitWhereUniqueInputSchema),z.lazy(() => HitWhereUniqueInputSchema).array() ]).optional(), + update: z.union([ z.lazy(() => HitUpdateWithWhereUniqueWithoutUser_GameInputSchema),z.lazy(() => HitUpdateWithWhereUniqueWithoutUser_GameInputSchema).array() ]).optional(), + updateMany: z.union([ z.lazy(() => HitUpdateManyWithWhereWithoutUser_GameInputSchema),z.lazy(() => HitUpdateManyWithWhereWithoutUser_GameInputSchema).array() ]).optional(), + deleteMany: z.union([ z.lazy(() => HitScalarWhereInputSchema),z.lazy(() => HitScalarWhereInputSchema).array() ]).optional(), +}).strict(); + +export const ChatUpdateManyWithoutUser_gameNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => ChatCreateWithoutUser_gameInputSchema),z.lazy(() => ChatCreateWithoutUser_gameInputSchema).array(),z.lazy(() => ChatUncheckedCreateWithoutUser_gameInputSchema),z.lazy(() => ChatUncheckedCreateWithoutUser_gameInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => ChatCreateOrConnectWithoutUser_gameInputSchema),z.lazy(() => ChatCreateOrConnectWithoutUser_gameInputSchema).array() ]).optional(), + upsert: z.union([ z.lazy(() => ChatUpsertWithWhereUniqueWithoutUser_gameInputSchema),z.lazy(() => ChatUpsertWithWhereUniqueWithoutUser_gameInputSchema).array() ]).optional(), + createMany: z.lazy(() => ChatCreateManyUser_gameInputEnvelopeSchema).optional(), + set: z.union([ z.lazy(() => ChatWhereUniqueInputSchema),z.lazy(() => ChatWhereUniqueInputSchema).array() ]).optional(), + disconnect: z.union([ z.lazy(() => ChatWhereUniqueInputSchema),z.lazy(() => ChatWhereUniqueInputSchema).array() ]).optional(), + delete: z.union([ z.lazy(() => ChatWhereUniqueInputSchema),z.lazy(() => ChatWhereUniqueInputSchema).array() ]).optional(), + connect: z.union([ z.lazy(() => ChatWhereUniqueInputSchema),z.lazy(() => ChatWhereUniqueInputSchema).array() ]).optional(), + update: z.union([ z.lazy(() => ChatUpdateWithWhereUniqueWithoutUser_gameInputSchema),z.lazy(() => ChatUpdateWithWhereUniqueWithoutUser_gameInputSchema).array() ]).optional(), + updateMany: z.union([ z.lazy(() => ChatUpdateManyWithWhereWithoutUser_gameInputSchema),z.lazy(() => ChatUpdateManyWithWhereWithoutUser_gameInputSchema).array() ]).optional(), + deleteMany: z.union([ z.lazy(() => ChatScalarWhereInputSchema),z.lazy(() => ChatScalarWhereInputSchema).array() ]).optional(), +}).strict(); + +export const GameUpdateOneRequiredWithoutUsersNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => GameCreateWithoutUsersInputSchema),z.lazy(() => GameUncheckedCreateWithoutUsersInputSchema) ]).optional(), + connectOrCreate: z.lazy(() => GameCreateOrConnectWithoutUsersInputSchema).optional(), + upsert: z.lazy(() => GameUpsertWithoutUsersInputSchema).optional(), + connect: z.lazy(() => GameWhereUniqueInputSchema).optional(), + update: z.union([ z.lazy(() => GameUpdateWithoutUsersInputSchema),z.lazy(() => GameUncheckedUpdateWithoutUsersInputSchema) ]).optional(), +}).strict(); + +export const UserUpdateOneRequiredWithoutGamesNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => UserCreateWithoutGamesInputSchema),z.lazy(() => UserUncheckedCreateWithoutGamesInputSchema) ]).optional(), + connectOrCreate: z.lazy(() => UserCreateOrConnectWithoutGamesInputSchema).optional(), + upsert: z.lazy(() => UserUpsertWithoutGamesInputSchema).optional(), + connect: z.lazy(() => UserWhereUniqueInputSchema).optional(), + update: z.union([ z.lazy(() => UserUpdateWithoutGamesInputSchema),z.lazy(() => UserUncheckedUpdateWithoutGamesInputSchema) ]).optional(), +}).strict(); + +export const MoveUncheckedUpdateManyWithoutUser_gameNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => MoveCreateWithoutUser_gameInputSchema),z.lazy(() => MoveCreateWithoutUser_gameInputSchema).array(),z.lazy(() => MoveUncheckedCreateWithoutUser_gameInputSchema),z.lazy(() => MoveUncheckedCreateWithoutUser_gameInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => MoveCreateOrConnectWithoutUser_gameInputSchema),z.lazy(() => MoveCreateOrConnectWithoutUser_gameInputSchema).array() ]).optional(), + upsert: z.union([ z.lazy(() => MoveUpsertWithWhereUniqueWithoutUser_gameInputSchema),z.lazy(() => MoveUpsertWithWhereUniqueWithoutUser_gameInputSchema).array() ]).optional(), + createMany: z.lazy(() => MoveCreateManyUser_gameInputEnvelopeSchema).optional(), + set: z.union([ z.lazy(() => MoveWhereUniqueInputSchema),z.lazy(() => MoveWhereUniqueInputSchema).array() ]).optional(), + disconnect: z.union([ z.lazy(() => MoveWhereUniqueInputSchema),z.lazy(() => MoveWhereUniqueInputSchema).array() ]).optional(), + delete: z.union([ z.lazy(() => MoveWhereUniqueInputSchema),z.lazy(() => MoveWhereUniqueInputSchema).array() ]).optional(), + connect: z.union([ z.lazy(() => MoveWhereUniqueInputSchema),z.lazy(() => MoveWhereUniqueInputSchema).array() ]).optional(), + update: z.union([ z.lazy(() => MoveUpdateWithWhereUniqueWithoutUser_gameInputSchema),z.lazy(() => MoveUpdateWithWhereUniqueWithoutUser_gameInputSchema).array() ]).optional(), + updateMany: z.union([ z.lazy(() => MoveUpdateManyWithWhereWithoutUser_gameInputSchema),z.lazy(() => MoveUpdateManyWithWhereWithoutUser_gameInputSchema).array() ]).optional(), + deleteMany: z.union([ z.lazy(() => MoveScalarWhereInputSchema),z.lazy(() => MoveScalarWhereInputSchema).array() ]).optional(), +}).strict(); + +export const ShipUncheckedUpdateManyWithoutUser_GameNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => ShipCreateWithoutUser_GameInputSchema),z.lazy(() => ShipCreateWithoutUser_GameInputSchema).array(),z.lazy(() => ShipUncheckedCreateWithoutUser_GameInputSchema),z.lazy(() => ShipUncheckedCreateWithoutUser_GameInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => ShipCreateOrConnectWithoutUser_GameInputSchema),z.lazy(() => ShipCreateOrConnectWithoutUser_GameInputSchema).array() ]).optional(), + upsert: z.union([ z.lazy(() => ShipUpsertWithWhereUniqueWithoutUser_GameInputSchema),z.lazy(() => ShipUpsertWithWhereUniqueWithoutUser_GameInputSchema).array() ]).optional(), + createMany: z.lazy(() => ShipCreateManyUser_GameInputEnvelopeSchema).optional(), + set: z.union([ z.lazy(() => ShipWhereUniqueInputSchema),z.lazy(() => ShipWhereUniqueInputSchema).array() ]).optional(), + disconnect: z.union([ z.lazy(() => ShipWhereUniqueInputSchema),z.lazy(() => ShipWhereUniqueInputSchema).array() ]).optional(), + delete: z.union([ z.lazy(() => ShipWhereUniqueInputSchema),z.lazy(() => ShipWhereUniqueInputSchema).array() ]).optional(), + connect: z.union([ z.lazy(() => ShipWhereUniqueInputSchema),z.lazy(() => ShipWhereUniqueInputSchema).array() ]).optional(), + update: z.union([ z.lazy(() => ShipUpdateWithWhereUniqueWithoutUser_GameInputSchema),z.lazy(() => ShipUpdateWithWhereUniqueWithoutUser_GameInputSchema).array() ]).optional(), + updateMany: z.union([ z.lazy(() => ShipUpdateManyWithWhereWithoutUser_GameInputSchema),z.lazy(() => ShipUpdateManyWithWhereWithoutUser_GameInputSchema).array() ]).optional(), + deleteMany: z.union([ z.lazy(() => ShipScalarWhereInputSchema),z.lazy(() => ShipScalarWhereInputSchema).array() ]).optional(), +}).strict(); + +export const HitUncheckedUpdateManyWithoutUser_GameNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => HitCreateWithoutUser_GameInputSchema),z.lazy(() => HitCreateWithoutUser_GameInputSchema).array(),z.lazy(() => HitUncheckedCreateWithoutUser_GameInputSchema),z.lazy(() => HitUncheckedCreateWithoutUser_GameInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => HitCreateOrConnectWithoutUser_GameInputSchema),z.lazy(() => HitCreateOrConnectWithoutUser_GameInputSchema).array() ]).optional(), + upsert: z.union([ z.lazy(() => HitUpsertWithWhereUniqueWithoutUser_GameInputSchema),z.lazy(() => HitUpsertWithWhereUniqueWithoutUser_GameInputSchema).array() ]).optional(), + createMany: z.lazy(() => HitCreateManyUser_GameInputEnvelopeSchema).optional(), + set: z.union([ z.lazy(() => HitWhereUniqueInputSchema),z.lazy(() => HitWhereUniqueInputSchema).array() ]).optional(), + disconnect: z.union([ z.lazy(() => HitWhereUniqueInputSchema),z.lazy(() => HitWhereUniqueInputSchema).array() ]).optional(), + delete: z.union([ z.lazy(() => HitWhereUniqueInputSchema),z.lazy(() => HitWhereUniqueInputSchema).array() ]).optional(), + connect: z.union([ z.lazy(() => HitWhereUniqueInputSchema),z.lazy(() => HitWhereUniqueInputSchema).array() ]).optional(), + update: z.union([ z.lazy(() => HitUpdateWithWhereUniqueWithoutUser_GameInputSchema),z.lazy(() => HitUpdateWithWhereUniqueWithoutUser_GameInputSchema).array() ]).optional(), + updateMany: z.union([ z.lazy(() => HitUpdateManyWithWhereWithoutUser_GameInputSchema),z.lazy(() => HitUpdateManyWithWhereWithoutUser_GameInputSchema).array() ]).optional(), + deleteMany: z.union([ z.lazy(() => HitScalarWhereInputSchema),z.lazy(() => HitScalarWhereInputSchema).array() ]).optional(), +}).strict(); + +export const ChatUncheckedUpdateManyWithoutUser_gameNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => ChatCreateWithoutUser_gameInputSchema),z.lazy(() => ChatCreateWithoutUser_gameInputSchema).array(),z.lazy(() => ChatUncheckedCreateWithoutUser_gameInputSchema),z.lazy(() => ChatUncheckedCreateWithoutUser_gameInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => ChatCreateOrConnectWithoutUser_gameInputSchema),z.lazy(() => ChatCreateOrConnectWithoutUser_gameInputSchema).array() ]).optional(), + upsert: z.union([ z.lazy(() => ChatUpsertWithWhereUniqueWithoutUser_gameInputSchema),z.lazy(() => ChatUpsertWithWhereUniqueWithoutUser_gameInputSchema).array() ]).optional(), + createMany: z.lazy(() => ChatCreateManyUser_gameInputEnvelopeSchema).optional(), + set: z.union([ z.lazy(() => ChatWhereUniqueInputSchema),z.lazy(() => ChatWhereUniqueInputSchema).array() ]).optional(), + disconnect: z.union([ z.lazy(() => ChatWhereUniqueInputSchema),z.lazy(() => ChatWhereUniqueInputSchema).array() ]).optional(), + delete: z.union([ z.lazy(() => ChatWhereUniqueInputSchema),z.lazy(() => ChatWhereUniqueInputSchema).array() ]).optional(), + connect: z.union([ z.lazy(() => ChatWhereUniqueInputSchema),z.lazy(() => ChatWhereUniqueInputSchema).array() ]).optional(), + update: z.union([ z.lazy(() => ChatUpdateWithWhereUniqueWithoutUser_gameInputSchema),z.lazy(() => ChatUpdateWithWhereUniqueWithoutUser_gameInputSchema).array() ]).optional(), + updateMany: z.union([ z.lazy(() => ChatUpdateManyWithWhereWithoutUser_gameInputSchema),z.lazy(() => ChatUpdateManyWithWhereWithoutUser_gameInputSchema).array() ]).optional(), + deleteMany: z.union([ z.lazy(() => ChatScalarWhereInputSchema),z.lazy(() => ChatScalarWhereInputSchema).array() ]).optional(), +}).strict(); + +export const User_GameCreateNestedOneWithoutMovesInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => User_GameCreateWithoutMovesInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutMovesInputSchema) ]).optional(), + connectOrCreate: z.lazy(() => User_GameCreateOrConnectWithoutMovesInputSchema).optional(), + connect: z.lazy(() => User_GameWhereUniqueInputSchema).optional() +}).strict(); + +export const EnumMoveTypeFieldUpdateOperationsInputSchema: z.ZodType = z.object({ + set: z.lazy(() => MoveTypeSchema).optional() +}).strict(); + +export const User_GameUpdateOneRequiredWithoutMovesNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => User_GameCreateWithoutMovesInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutMovesInputSchema) ]).optional(), + connectOrCreate: z.lazy(() => User_GameCreateOrConnectWithoutMovesInputSchema).optional(), + upsert: z.lazy(() => User_GameUpsertWithoutMovesInputSchema).optional(), + connect: z.lazy(() => User_GameWhereUniqueInputSchema).optional(), + update: z.union([ z.lazy(() => User_GameUpdateWithoutMovesInputSchema),z.lazy(() => User_GameUncheckedUpdateWithoutMovesInputSchema) ]).optional(), +}).strict(); + +export const User_GameCreateNestedOneWithoutChatsInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => User_GameCreateWithoutChatsInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutChatsInputSchema) ]).optional(), + connectOrCreate: z.lazy(() => User_GameCreateOrConnectWithoutChatsInputSchema).optional(), + connect: z.lazy(() => User_GameWhereUniqueInputSchema).optional() +}).strict(); + +export const User_GameUpdateOneRequiredWithoutChatsNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => User_GameCreateWithoutChatsInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutChatsInputSchema) ]).optional(), + connectOrCreate: z.lazy(() => User_GameCreateOrConnectWithoutChatsInputSchema).optional(), + upsert: z.lazy(() => User_GameUpsertWithoutChatsInputSchema).optional(), + connect: z.lazy(() => User_GameWhereUniqueInputSchema).optional(), + update: z.union([ z.lazy(() => User_GameUpdateWithoutChatsInputSchema),z.lazy(() => User_GameUncheckedUpdateWithoutChatsInputSchema) ]).optional(), +}).strict(); + +export const NestedStringFilterSchema: z.ZodType = z.object({ + equals: z.string().optional(), + in: z.union([ z.string().array(),z.string() ]).optional(), + notIn: z.union([ z.string().array(),z.string() ]).optional(), + lt: z.string().optional(), + lte: z.string().optional(), + gt: z.string().optional(), + gte: z.string().optional(), + contains: z.string().optional(), + startsWith: z.string().optional(), + endsWith: z.string().optional(), + not: z.union([ z.string(),z.lazy(() => NestedStringFilterSchema) ]).optional(), +}).strict(); + +export const NestedStringNullableFilterSchema: z.ZodType = z.object({ + equals: z.string().optional().nullable(), + in: z.union([ z.string().array(),z.string() ]).optional().nullable(), + notIn: z.union([ z.string().array(),z.string() ]).optional().nullable(), + lt: z.string().optional(), + lte: z.string().optional(), + gt: z.string().optional(), + gte: z.string().optional(), + contains: z.string().optional(), + startsWith: z.string().optional(), + endsWith: z.string().optional(), + not: z.union([ z.string(),z.lazy(() => NestedStringNullableFilterSchema) ]).optional().nullable(), +}).strict(); + +export const NestedIntNullableFilterSchema: z.ZodType = z.object({ + equals: z.number().optional().nullable(), + in: z.union([ z.number().array(),z.number() ]).optional().nullable(), + notIn: z.union([ z.number().array(),z.number() ]).optional().nullable(), + lt: z.number().optional(), + lte: z.number().optional(), + gt: z.number().optional(), + gte: z.number().optional(), + not: z.union([ z.number(),z.lazy(() => NestedIntNullableFilterSchema) ]).optional().nullable(), +}).strict(); + +export const NestedStringWithAggregatesFilterSchema: z.ZodType = z.object({ + equals: z.string().optional(), + in: z.union([ z.string().array(),z.string() ]).optional(), + notIn: z.union([ z.string().array(),z.string() ]).optional(), + lt: z.string().optional(), + lte: z.string().optional(), + gt: z.string().optional(), + gte: z.string().optional(), + contains: z.string().optional(), + startsWith: z.string().optional(), + endsWith: z.string().optional(), + not: z.union([ z.string(),z.lazy(() => NestedStringWithAggregatesFilterSchema) ]).optional(), + _count: z.lazy(() => NestedIntFilterSchema).optional(), + _min: z.lazy(() => NestedStringFilterSchema).optional(), + _max: z.lazy(() => NestedStringFilterSchema).optional() +}).strict(); + +export const NestedIntFilterSchema: z.ZodType = z.object({ + equals: z.number().optional(), + in: z.union([ z.number().array(),z.number() ]).optional(), + notIn: z.union([ z.number().array(),z.number() ]).optional(), + lt: z.number().optional(), + lte: z.number().optional(), + gt: z.number().optional(), + gte: z.number().optional(), + not: z.union([ z.number(),z.lazy(() => NestedIntFilterSchema) ]).optional(), +}).strict(); + +export const NestedStringNullableWithAggregatesFilterSchema: z.ZodType = z.object({ + equals: z.string().optional().nullable(), + in: z.union([ z.string().array(),z.string() ]).optional().nullable(), + notIn: z.union([ z.string().array(),z.string() ]).optional().nullable(), + lt: z.string().optional(), + lte: z.string().optional(), + gt: z.string().optional(), + gte: z.string().optional(), + contains: z.string().optional(), + startsWith: z.string().optional(), + endsWith: z.string().optional(), + not: z.union([ z.string(),z.lazy(() => NestedStringNullableWithAggregatesFilterSchema) ]).optional().nullable(), + _count: z.lazy(() => NestedIntNullableFilterSchema).optional(), + _min: z.lazy(() => NestedStringNullableFilterSchema).optional(), + _max: z.lazy(() => NestedStringNullableFilterSchema).optional() +}).strict(); + +export const NestedIntNullableWithAggregatesFilterSchema: z.ZodType = z.object({ + equals: z.number().optional().nullable(), + in: z.union([ z.number().array(),z.number() ]).optional().nullable(), + notIn: z.union([ z.number().array(),z.number() ]).optional().nullable(), + lt: z.number().optional(), + lte: z.number().optional(), + gt: z.number().optional(), + gte: z.number().optional(), + not: z.union([ z.number(),z.lazy(() => NestedIntNullableWithAggregatesFilterSchema) ]).optional().nullable(), + _count: z.lazy(() => NestedIntNullableFilterSchema).optional(), + _avg: z.lazy(() => NestedFloatNullableFilterSchema).optional(), + _sum: z.lazy(() => NestedIntNullableFilterSchema).optional(), + _min: z.lazy(() => NestedIntNullableFilterSchema).optional(), + _max: z.lazy(() => NestedIntNullableFilterSchema).optional() +}).strict(); + +export const NestedFloatNullableFilterSchema: z.ZodType = z.object({ + equals: z.number().optional().nullable(), + in: z.union([ z.number().array(),z.number() ]).optional().nullable(), + notIn: z.union([ z.number().array(),z.number() ]).optional().nullable(), + lt: z.number().optional(), + lte: z.number().optional(), + gt: z.number().optional(), + gte: z.number().optional(), + not: z.union([ z.number(),z.lazy(() => NestedFloatNullableFilterSchema) ]).optional().nullable(), +}).strict(); + +export const NestedDateTimeFilterSchema: z.ZodType = z.object({ + equals: z.coerce.date().optional(), + in: z.union([ z.coerce.date().array(),z.coerce.date() ]).optional(), + notIn: z.union([ z.coerce.date().array(),z.coerce.date() ]).optional(), + lt: z.coerce.date().optional(), + lte: z.coerce.date().optional(), + gt: z.coerce.date().optional(), + gte: z.coerce.date().optional(), + not: z.union([ z.coerce.date(),z.lazy(() => NestedDateTimeFilterSchema) ]).optional(), +}).strict(); + +export const NestedDateTimeWithAggregatesFilterSchema: z.ZodType = z.object({ + equals: z.coerce.date().optional(), + in: z.union([ z.coerce.date().array(),z.coerce.date() ]).optional(), + notIn: z.union([ z.coerce.date().array(),z.coerce.date() ]).optional(), + lt: z.coerce.date().optional(), + lte: z.coerce.date().optional(), + gt: z.coerce.date().optional(), + gte: z.coerce.date().optional(), + not: z.union([ z.coerce.date(),z.lazy(() => NestedDateTimeWithAggregatesFilterSchema) ]).optional(), + _count: z.lazy(() => NestedIntFilterSchema).optional(), + _min: z.lazy(() => NestedDateTimeFilterSchema).optional(), + _max: z.lazy(() => NestedDateTimeFilterSchema).optional() +}).strict(); + +export const NestedDateTimeNullableFilterSchema: z.ZodType = z.object({ + equals: z.coerce.date().optional().nullable(), + in: z.union([ z.coerce.date().array(),z.coerce.date() ]).optional().nullable(), + notIn: z.union([ z.coerce.date().array(),z.coerce.date() ]).optional().nullable(), + lt: z.coerce.date().optional(), + lte: z.coerce.date().optional(), + gt: z.coerce.date().optional(), + gte: z.coerce.date().optional(), + not: z.union([ z.coerce.date(),z.lazy(() => NestedDateTimeNullableFilterSchema) ]).optional().nullable(), +}).strict(); + +export const NestedDateTimeNullableWithAggregatesFilterSchema: z.ZodType = z.object({ + equals: z.coerce.date().optional().nullable(), + in: z.union([ z.coerce.date().array(),z.coerce.date() ]).optional().nullable(), + notIn: z.union([ z.coerce.date().array(),z.coerce.date() ]).optional().nullable(), + lt: z.coerce.date().optional(), + lte: z.coerce.date().optional(), + gt: z.coerce.date().optional(), + gte: z.coerce.date().optional(), + not: z.union([ z.coerce.date(),z.lazy(() => NestedDateTimeNullableWithAggregatesFilterSchema) ]).optional().nullable(), + _count: z.lazy(() => NestedIntNullableFilterSchema).optional(), + _min: z.lazy(() => NestedDateTimeNullableFilterSchema).optional(), + _max: z.lazy(() => NestedDateTimeNullableFilterSchema).optional() +}).strict(); + +export const NestedEnumGameStateFilterSchema: z.ZodType = z.object({ + equals: z.lazy(() => GameStateSchema).optional(), + in: z.union([ z.lazy(() => GameStateSchema).array(),z.lazy(() => GameStateSchema) ]).optional(), + notIn: z.union([ z.lazy(() => GameStateSchema).array(),z.lazy(() => GameStateSchema) ]).optional(), + not: z.union([ z.lazy(() => GameStateSchema),z.lazy(() => NestedEnumGameStateFilterSchema) ]).optional(), +}).strict(); + +export const NestedBoolFilterSchema: z.ZodType = z.object({ + equals: z.boolean().optional(), + not: z.union([ z.boolean(),z.lazy(() => NestedBoolFilterSchema) ]).optional(), +}).strict(); + +export const NestedEnumGameStateWithAggregatesFilterSchema: z.ZodType = z.object({ + equals: z.lazy(() => GameStateSchema).optional(), + in: z.union([ z.lazy(() => GameStateSchema).array(),z.lazy(() => GameStateSchema) ]).optional(), + notIn: z.union([ z.lazy(() => GameStateSchema).array(),z.lazy(() => GameStateSchema) ]).optional(), + not: z.union([ z.lazy(() => GameStateSchema),z.lazy(() => NestedEnumGameStateWithAggregatesFilterSchema) ]).optional(), + _count: z.lazy(() => NestedIntFilterSchema).optional(), + _min: z.lazy(() => NestedEnumGameStateFilterSchema).optional(), + _max: z.lazy(() => NestedEnumGameStateFilterSchema).optional() +}).strict(); + +export const NestedBoolWithAggregatesFilterSchema: z.ZodType = z.object({ + equals: z.boolean().optional(), + not: z.union([ z.boolean(),z.lazy(() => NestedBoolWithAggregatesFilterSchema) ]).optional(), + _count: z.lazy(() => NestedIntFilterSchema).optional(), + _min: z.lazy(() => NestedBoolFilterSchema).optional(), + _max: z.lazy(() => NestedBoolFilterSchema).optional() +}).strict(); + +export const NestedEnumOrientationFilterSchema: z.ZodType = z.object({ + equals: z.lazy(() => OrientationSchema).optional(), + in: z.union([ z.lazy(() => OrientationSchema).array(),z.lazy(() => OrientationSchema) ]).optional(), + notIn: z.union([ z.lazy(() => OrientationSchema).array(),z.lazy(() => OrientationSchema) ]).optional(), + not: z.union([ z.lazy(() => OrientationSchema),z.lazy(() => NestedEnumOrientationFilterSchema) ]).optional(), +}).strict(); + +export const NestedIntWithAggregatesFilterSchema: z.ZodType = z.object({ + equals: z.number().optional(), + in: z.union([ z.number().array(),z.number() ]).optional(), + notIn: z.union([ z.number().array(),z.number() ]).optional(), + lt: z.number().optional(), + lte: z.number().optional(), + gt: z.number().optional(), + gte: z.number().optional(), + not: z.union([ z.number(),z.lazy(() => NestedIntWithAggregatesFilterSchema) ]).optional(), + _count: z.lazy(() => NestedIntFilterSchema).optional(), + _avg: z.lazy(() => NestedFloatFilterSchema).optional(), + _sum: z.lazy(() => NestedIntFilterSchema).optional(), + _min: z.lazy(() => NestedIntFilterSchema).optional(), + _max: z.lazy(() => NestedIntFilterSchema).optional() +}).strict(); + +export const NestedFloatFilterSchema: z.ZodType = z.object({ + equals: z.number().optional(), + in: z.union([ z.number().array(),z.number() ]).optional(), + notIn: z.union([ z.number().array(),z.number() ]).optional(), + lt: z.number().optional(), + lte: z.number().optional(), + gt: z.number().optional(), + gte: z.number().optional(), + not: z.union([ z.number(),z.lazy(() => NestedFloatFilterSchema) ]).optional(), +}).strict(); + +export const NestedEnumOrientationWithAggregatesFilterSchema: z.ZodType = z.object({ + equals: z.lazy(() => OrientationSchema).optional(), + in: z.union([ z.lazy(() => OrientationSchema).array(),z.lazy(() => OrientationSchema) ]).optional(), + notIn: z.union([ z.lazy(() => OrientationSchema).array(),z.lazy(() => OrientationSchema) ]).optional(), + not: z.union([ z.lazy(() => OrientationSchema),z.lazy(() => NestedEnumOrientationWithAggregatesFilterSchema) ]).optional(), + _count: z.lazy(() => NestedIntFilterSchema).optional(), + _min: z.lazy(() => NestedEnumOrientationFilterSchema).optional(), + _max: z.lazy(() => NestedEnumOrientationFilterSchema).optional() +}).strict(); + +export const NestedEnumMoveTypeFilterSchema: z.ZodType = z.object({ + equals: z.lazy(() => MoveTypeSchema).optional(), + in: z.union([ z.lazy(() => MoveTypeSchema).array(),z.lazy(() => MoveTypeSchema) ]).optional(), + notIn: z.union([ z.lazy(() => MoveTypeSchema).array(),z.lazy(() => MoveTypeSchema) ]).optional(), + not: z.union([ z.lazy(() => MoveTypeSchema),z.lazy(() => NestedEnumMoveTypeFilterSchema) ]).optional(), +}).strict(); + +export const NestedEnumMoveTypeWithAggregatesFilterSchema: z.ZodType = z.object({ + equals: z.lazy(() => MoveTypeSchema).optional(), + in: z.union([ z.lazy(() => MoveTypeSchema).array(),z.lazy(() => MoveTypeSchema) ]).optional(), + notIn: z.union([ z.lazy(() => MoveTypeSchema).array(),z.lazy(() => MoveTypeSchema) ]).optional(), + not: z.union([ z.lazy(() => MoveTypeSchema),z.lazy(() => NestedEnumMoveTypeWithAggregatesFilterSchema) ]).optional(), + _count: z.lazy(() => NestedIntFilterSchema).optional(), + _min: z.lazy(() => NestedEnumMoveTypeFilterSchema).optional(), + _max: z.lazy(() => NestedEnumMoveTypeFilterSchema).optional() +}).strict(); + +export const UserCreateWithoutAccountsInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + name: z.string().optional().nullable(), + email: z.string().optional().nullable(), + emailVerified: z.coerce.date().optional().nullable(), + image: z.string().optional().nullable(), + createdAt: z.coerce.date().optional(), + updatedAt: z.coerce.date().optional(), + games: z.lazy(() => User_GameCreateNestedManyWithoutUserInputSchema).optional(), + sessions: z.lazy(() => SessionCreateNestedManyWithoutUserInputSchema).optional() +}).strict(); + +export const UserUncheckedCreateWithoutAccountsInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + name: z.string().optional().nullable(), + email: z.string().optional().nullable(), + emailVerified: z.coerce.date().optional().nullable(), + image: z.string().optional().nullable(), + createdAt: z.coerce.date().optional(), + updatedAt: z.coerce.date().optional(), + games: z.lazy(() => User_GameUncheckedCreateNestedManyWithoutUserInputSchema).optional(), + sessions: z.lazy(() => SessionUncheckedCreateNestedManyWithoutUserInputSchema).optional() +}).strict(); + +export const UserCreateOrConnectWithoutAccountsInputSchema: z.ZodType = z.object({ + where: z.lazy(() => UserWhereUniqueInputSchema), + create: z.union([ z.lazy(() => UserCreateWithoutAccountsInputSchema),z.lazy(() => UserUncheckedCreateWithoutAccountsInputSchema) ]), +}).strict(); + +export const UserUpsertWithoutAccountsInputSchema: z.ZodType = z.object({ + update: z.union([ z.lazy(() => UserUpdateWithoutAccountsInputSchema),z.lazy(() => UserUncheckedUpdateWithoutAccountsInputSchema) ]), + create: z.union([ z.lazy(() => UserCreateWithoutAccountsInputSchema),z.lazy(() => UserUncheckedCreateWithoutAccountsInputSchema) ]), +}).strict(); + +export const UserUpdateWithoutAccountsInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + name: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + email: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + emailVerified: z.union([ z.coerce.date(),z.lazy(() => NullableDateTimeFieldUpdateOperationsInputSchema) ]).optional().nullable(), + image: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + updatedAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + games: z.lazy(() => User_GameUpdateManyWithoutUserNestedInputSchema).optional(), + sessions: z.lazy(() => SessionUpdateManyWithoutUserNestedInputSchema).optional() +}).strict(); + +export const UserUncheckedUpdateWithoutAccountsInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + name: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + email: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + emailVerified: z.union([ z.coerce.date(),z.lazy(() => NullableDateTimeFieldUpdateOperationsInputSchema) ]).optional().nullable(), + image: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + updatedAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + games: z.lazy(() => User_GameUncheckedUpdateManyWithoutUserNestedInputSchema).optional(), + sessions: z.lazy(() => SessionUncheckedUpdateManyWithoutUserNestedInputSchema).optional() +}).strict(); + +export const UserCreateWithoutSessionsInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + name: z.string().optional().nullable(), + email: z.string().optional().nullable(), + emailVerified: z.coerce.date().optional().nullable(), + image: z.string().optional().nullable(), + createdAt: z.coerce.date().optional(), + updatedAt: z.coerce.date().optional(), + games: z.lazy(() => User_GameCreateNestedManyWithoutUserInputSchema).optional(), + accounts: z.lazy(() => AccountCreateNestedManyWithoutUserInputSchema).optional() +}).strict(); + +export const UserUncheckedCreateWithoutSessionsInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + name: z.string().optional().nullable(), + email: z.string().optional().nullable(), + emailVerified: z.coerce.date().optional().nullable(), + image: z.string().optional().nullable(), + createdAt: z.coerce.date().optional(), + updatedAt: z.coerce.date().optional(), + games: z.lazy(() => User_GameUncheckedCreateNestedManyWithoutUserInputSchema).optional(), + accounts: z.lazy(() => AccountUncheckedCreateNestedManyWithoutUserInputSchema).optional() +}).strict(); + +export const UserCreateOrConnectWithoutSessionsInputSchema: z.ZodType = z.object({ + where: z.lazy(() => UserWhereUniqueInputSchema), + create: z.union([ z.lazy(() => UserCreateWithoutSessionsInputSchema),z.lazy(() => UserUncheckedCreateWithoutSessionsInputSchema) ]), +}).strict(); + +export const UserUpsertWithoutSessionsInputSchema: z.ZodType = z.object({ + update: z.union([ z.lazy(() => UserUpdateWithoutSessionsInputSchema),z.lazy(() => UserUncheckedUpdateWithoutSessionsInputSchema) ]), + create: z.union([ z.lazy(() => UserCreateWithoutSessionsInputSchema),z.lazy(() => UserUncheckedCreateWithoutSessionsInputSchema) ]), +}).strict(); + +export const UserUpdateWithoutSessionsInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + name: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + email: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + emailVerified: z.union([ z.coerce.date(),z.lazy(() => NullableDateTimeFieldUpdateOperationsInputSchema) ]).optional().nullable(), + image: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + updatedAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + games: z.lazy(() => User_GameUpdateManyWithoutUserNestedInputSchema).optional(), + accounts: z.lazy(() => AccountUpdateManyWithoutUserNestedInputSchema).optional() +}).strict(); + +export const UserUncheckedUpdateWithoutSessionsInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + name: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + email: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + emailVerified: z.union([ z.coerce.date(),z.lazy(() => NullableDateTimeFieldUpdateOperationsInputSchema) ]).optional().nullable(), + image: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + updatedAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + games: z.lazy(() => User_GameUncheckedUpdateManyWithoutUserNestedInputSchema).optional(), + accounts: z.lazy(() => AccountUncheckedUpdateManyWithoutUserNestedInputSchema).optional() +}).strict(); + +export const User_GameCreateWithoutUserInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + index: z.number().int(), + moves: z.lazy(() => MoveCreateNestedManyWithoutUser_gameInputSchema).optional(), + ships: z.lazy(() => ShipCreateNestedManyWithoutUser_GameInputSchema).optional(), + hits: z.lazy(() => HitCreateNestedManyWithoutUser_GameInputSchema).optional(), + chats: z.lazy(() => ChatCreateNestedManyWithoutUser_gameInputSchema).optional(), + game: z.lazy(() => GameCreateNestedOneWithoutUsersInputSchema) +}).strict(); + +export const User_GameUncheckedCreateWithoutUserInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + gameId: z.string(), + index: z.number().int(), + moves: z.lazy(() => MoveUncheckedCreateNestedManyWithoutUser_gameInputSchema).optional(), + ships: z.lazy(() => ShipUncheckedCreateNestedManyWithoutUser_GameInputSchema).optional(), + hits: z.lazy(() => HitUncheckedCreateNestedManyWithoutUser_GameInputSchema).optional(), + chats: z.lazy(() => ChatUncheckedCreateNestedManyWithoutUser_gameInputSchema).optional() +}).strict(); + +export const User_GameCreateOrConnectWithoutUserInputSchema: z.ZodType = z.object({ + where: z.lazy(() => User_GameWhereUniqueInputSchema), + create: z.union([ z.lazy(() => User_GameCreateWithoutUserInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutUserInputSchema) ]), +}).strict(); + +export const User_GameCreateManyUserInputEnvelopeSchema: z.ZodType = z.object({ + data: z.union([ z.lazy(() => User_GameCreateManyUserInputSchema),z.lazy(() => User_GameCreateManyUserInputSchema).array() ]), + skipDuplicates: z.boolean().optional() +}).strict(); + +export const AccountCreateWithoutUserInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + type: z.string(), + provider: z.string(), + providerAccountId: z.string(), + refresh_token: z.string().optional().nullable(), + access_token: z.string().optional().nullable(), + expires_at: z.number().int().optional().nullable(), + ext_expires_in: z.number().int().optional().nullable(), + token_type: z.string().optional().nullable(), + scope: z.string().optional().nullable(), + id_token: z.string().optional().nullable(), + session_state: z.string().optional().nullable(), + oauth_token_secret: z.string().optional().nullable(), + oauth_token: z.string().optional().nullable() +}).strict(); + +export const AccountUncheckedCreateWithoutUserInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + type: z.string(), + provider: z.string(), + providerAccountId: z.string(), + refresh_token: z.string().optional().nullable(), + access_token: z.string().optional().nullable(), + expires_at: z.number().int().optional().nullable(), + ext_expires_in: z.number().int().optional().nullable(), + token_type: z.string().optional().nullable(), + scope: z.string().optional().nullable(), + id_token: z.string().optional().nullable(), + session_state: z.string().optional().nullable(), + oauth_token_secret: z.string().optional().nullable(), + oauth_token: z.string().optional().nullable() +}).strict(); + +export const AccountCreateOrConnectWithoutUserInputSchema: z.ZodType = z.object({ + where: z.lazy(() => AccountWhereUniqueInputSchema), + create: z.union([ z.lazy(() => AccountCreateWithoutUserInputSchema),z.lazy(() => AccountUncheckedCreateWithoutUserInputSchema) ]), +}).strict(); + +export const AccountCreateManyUserInputEnvelopeSchema: z.ZodType = z.object({ + data: z.union([ z.lazy(() => AccountCreateManyUserInputSchema),z.lazy(() => AccountCreateManyUserInputSchema).array() ]), + skipDuplicates: z.boolean().optional() +}).strict(); + +export const SessionCreateWithoutUserInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + sessionToken: z.string(), + expires: z.coerce.date() +}).strict(); + +export const SessionUncheckedCreateWithoutUserInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + sessionToken: z.string(), + expires: z.coerce.date() +}).strict(); + +export const SessionCreateOrConnectWithoutUserInputSchema: z.ZodType = z.object({ + where: z.lazy(() => SessionWhereUniqueInputSchema), + create: z.union([ z.lazy(() => SessionCreateWithoutUserInputSchema),z.lazy(() => SessionUncheckedCreateWithoutUserInputSchema) ]), +}).strict(); + +export const SessionCreateManyUserInputEnvelopeSchema: z.ZodType = z.object({ + data: z.union([ z.lazy(() => SessionCreateManyUserInputSchema),z.lazy(() => SessionCreateManyUserInputSchema).array() ]), + skipDuplicates: z.boolean().optional() +}).strict(); + +export const User_GameUpsertWithWhereUniqueWithoutUserInputSchema: z.ZodType = z.object({ + where: z.lazy(() => User_GameWhereUniqueInputSchema), + update: z.union([ z.lazy(() => User_GameUpdateWithoutUserInputSchema),z.lazy(() => User_GameUncheckedUpdateWithoutUserInputSchema) ]), + create: z.union([ z.lazy(() => User_GameCreateWithoutUserInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutUserInputSchema) ]), +}).strict(); + +export const User_GameUpdateWithWhereUniqueWithoutUserInputSchema: z.ZodType = z.object({ + where: z.lazy(() => User_GameWhereUniqueInputSchema), + data: z.union([ z.lazy(() => User_GameUpdateWithoutUserInputSchema),z.lazy(() => User_GameUncheckedUpdateWithoutUserInputSchema) ]), +}).strict(); + +export const User_GameUpdateManyWithWhereWithoutUserInputSchema: z.ZodType = z.object({ + where: z.lazy(() => User_GameScalarWhereInputSchema), + data: z.union([ z.lazy(() => User_GameUpdateManyMutationInputSchema),z.lazy(() => User_GameUncheckedUpdateManyWithoutGamesInputSchema) ]), +}).strict(); + +export const User_GameScalarWhereInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => User_GameScalarWhereInputSchema),z.lazy(() => User_GameScalarWhereInputSchema).array() ]).optional(), + OR: z.lazy(() => User_GameScalarWhereInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => User_GameScalarWhereInputSchema),z.lazy(() => User_GameScalarWhereInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + createdAt: z.union([ z.lazy(() => DateTimeFilterSchema),z.coerce.date() ]).optional(), + gameId: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + userId: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + index: z.union([ z.lazy(() => IntFilterSchema),z.number() ]).optional(), +}).strict(); + +export const AccountUpsertWithWhereUniqueWithoutUserInputSchema: z.ZodType = z.object({ + where: z.lazy(() => AccountWhereUniqueInputSchema), + update: z.union([ z.lazy(() => AccountUpdateWithoutUserInputSchema),z.lazy(() => AccountUncheckedUpdateWithoutUserInputSchema) ]), + create: z.union([ z.lazy(() => AccountCreateWithoutUserInputSchema),z.lazy(() => AccountUncheckedCreateWithoutUserInputSchema) ]), +}).strict(); + +export const AccountUpdateWithWhereUniqueWithoutUserInputSchema: z.ZodType = z.object({ + where: z.lazy(() => AccountWhereUniqueInputSchema), + data: z.union([ z.lazy(() => AccountUpdateWithoutUserInputSchema),z.lazy(() => AccountUncheckedUpdateWithoutUserInputSchema) ]), +}).strict(); + +export const AccountUpdateManyWithWhereWithoutUserInputSchema: z.ZodType = z.object({ + where: z.lazy(() => AccountScalarWhereInputSchema), + data: z.union([ z.lazy(() => AccountUpdateManyMutationInputSchema),z.lazy(() => AccountUncheckedUpdateManyWithoutAccountsInputSchema) ]), +}).strict(); + +export const AccountScalarWhereInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => AccountScalarWhereInputSchema),z.lazy(() => AccountScalarWhereInputSchema).array() ]).optional(), + OR: z.lazy(() => AccountScalarWhereInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => AccountScalarWhereInputSchema),z.lazy(() => AccountScalarWhereInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + userId: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + type: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + provider: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + providerAccountId: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + refresh_token: z.union([ z.lazy(() => StringNullableFilterSchema),z.string() ]).optional().nullable(), + access_token: z.union([ z.lazy(() => StringNullableFilterSchema),z.string() ]).optional().nullable(), + expires_at: z.union([ z.lazy(() => IntNullableFilterSchema),z.number() ]).optional().nullable(), + ext_expires_in: z.union([ z.lazy(() => IntNullableFilterSchema),z.number() ]).optional().nullable(), + token_type: z.union([ z.lazy(() => StringNullableFilterSchema),z.string() ]).optional().nullable(), + scope: z.union([ z.lazy(() => StringNullableFilterSchema),z.string() ]).optional().nullable(), + id_token: z.union([ z.lazy(() => StringNullableFilterSchema),z.string() ]).optional().nullable(), + session_state: z.union([ z.lazy(() => StringNullableFilterSchema),z.string() ]).optional().nullable(), + oauth_token_secret: z.union([ z.lazy(() => StringNullableFilterSchema),z.string() ]).optional().nullable(), + oauth_token: z.union([ z.lazy(() => StringNullableFilterSchema),z.string() ]).optional().nullable(), +}).strict(); + +export const SessionUpsertWithWhereUniqueWithoutUserInputSchema: z.ZodType = z.object({ + where: z.lazy(() => SessionWhereUniqueInputSchema), + update: z.union([ z.lazy(() => SessionUpdateWithoutUserInputSchema),z.lazy(() => SessionUncheckedUpdateWithoutUserInputSchema) ]), + create: z.union([ z.lazy(() => SessionCreateWithoutUserInputSchema),z.lazy(() => SessionUncheckedCreateWithoutUserInputSchema) ]), +}).strict(); + +export const SessionUpdateWithWhereUniqueWithoutUserInputSchema: z.ZodType = z.object({ + where: z.lazy(() => SessionWhereUniqueInputSchema), + data: z.union([ z.lazy(() => SessionUpdateWithoutUserInputSchema),z.lazy(() => SessionUncheckedUpdateWithoutUserInputSchema) ]), +}).strict(); + +export const SessionUpdateManyWithWhereWithoutUserInputSchema: z.ZodType = z.object({ + where: z.lazy(() => SessionScalarWhereInputSchema), + data: z.union([ z.lazy(() => SessionUpdateManyMutationInputSchema),z.lazy(() => SessionUncheckedUpdateManyWithoutSessionsInputSchema) ]), +}).strict(); + +export const SessionScalarWhereInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => SessionScalarWhereInputSchema),z.lazy(() => SessionScalarWhereInputSchema).array() ]).optional(), + OR: z.lazy(() => SessionScalarWhereInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => SessionScalarWhereInputSchema),z.lazy(() => SessionScalarWhereInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + sessionToken: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + userId: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + expires: z.union([ z.lazy(() => DateTimeFilterSchema),z.coerce.date() ]).optional(), +}).strict(); + +export const GamepinCreateWithoutGameInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + pin: z.string() +}).strict(); + +export const GamepinUncheckedCreateWithoutGameInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + pin: z.string() +}).strict(); + +export const GamepinCreateOrConnectWithoutGameInputSchema: z.ZodType = z.object({ + where: z.lazy(() => GamepinWhereUniqueInputSchema), + create: z.union([ z.lazy(() => GamepinCreateWithoutGameInputSchema),z.lazy(() => GamepinUncheckedCreateWithoutGameInputSchema) ]), +}).strict(); + +export const User_GameCreateWithoutGameInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + index: z.number().int(), + moves: z.lazy(() => MoveCreateNestedManyWithoutUser_gameInputSchema).optional(), + ships: z.lazy(() => ShipCreateNestedManyWithoutUser_GameInputSchema).optional(), + hits: z.lazy(() => HitCreateNestedManyWithoutUser_GameInputSchema).optional(), + chats: z.lazy(() => ChatCreateNestedManyWithoutUser_gameInputSchema).optional(), + user: z.lazy(() => UserCreateNestedOneWithoutGamesInputSchema) +}).strict(); + +export const User_GameUncheckedCreateWithoutGameInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + userId: z.string(), + index: z.number().int(), + moves: z.lazy(() => MoveUncheckedCreateNestedManyWithoutUser_gameInputSchema).optional(), + ships: z.lazy(() => ShipUncheckedCreateNestedManyWithoutUser_GameInputSchema).optional(), + hits: z.lazy(() => HitUncheckedCreateNestedManyWithoutUser_GameInputSchema).optional(), + chats: z.lazy(() => ChatUncheckedCreateNestedManyWithoutUser_gameInputSchema).optional() +}).strict(); + +export const User_GameCreateOrConnectWithoutGameInputSchema: z.ZodType = z.object({ + where: z.lazy(() => User_GameWhereUniqueInputSchema), + create: z.union([ z.lazy(() => User_GameCreateWithoutGameInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutGameInputSchema) ]), +}).strict(); + +export const User_GameCreateManyGameInputEnvelopeSchema: z.ZodType = z.object({ + data: z.union([ z.lazy(() => User_GameCreateManyGameInputSchema),z.lazy(() => User_GameCreateManyGameInputSchema).array() ]), + skipDuplicates: z.boolean().optional() +}).strict(); + +export const GamepinUpsertWithoutGameInputSchema: z.ZodType = z.object({ + update: z.union([ z.lazy(() => GamepinUpdateWithoutGameInputSchema),z.lazy(() => GamepinUncheckedUpdateWithoutGameInputSchema) ]), + create: z.union([ z.lazy(() => GamepinCreateWithoutGameInputSchema),z.lazy(() => GamepinUncheckedCreateWithoutGameInputSchema) ]), +}).strict(); + +export const GamepinUpdateWithoutGameInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + pin: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const GamepinUncheckedUpdateWithoutGameInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + pin: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const User_GameUpsertWithWhereUniqueWithoutGameInputSchema: z.ZodType = z.object({ + where: z.lazy(() => User_GameWhereUniqueInputSchema), + update: z.union([ z.lazy(() => User_GameUpdateWithoutGameInputSchema),z.lazy(() => User_GameUncheckedUpdateWithoutGameInputSchema) ]), + create: z.union([ z.lazy(() => User_GameCreateWithoutGameInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutGameInputSchema) ]), +}).strict(); + +export const User_GameUpdateWithWhereUniqueWithoutGameInputSchema: z.ZodType = z.object({ + where: z.lazy(() => User_GameWhereUniqueInputSchema), + data: z.union([ z.lazy(() => User_GameUpdateWithoutGameInputSchema),z.lazy(() => User_GameUncheckedUpdateWithoutGameInputSchema) ]), +}).strict(); + +export const User_GameUpdateManyWithWhereWithoutGameInputSchema: z.ZodType = z.object({ + where: z.lazy(() => User_GameScalarWhereInputSchema), + data: z.union([ z.lazy(() => User_GameUpdateManyMutationInputSchema),z.lazy(() => User_GameUncheckedUpdateManyWithoutUsersInputSchema) ]), +}).strict(); + +export const GameCreateWithoutGamePinInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + updatedAt: z.coerce.date().optional(), + state: z.lazy(() => GameStateSchema).optional(), + allowSpectators: z.boolean().optional(), + allowSpecials: z.boolean().optional(), + allowChat: z.boolean().optional(), + allowMarkDraw: z.boolean().optional(), + users: z.lazy(() => User_GameCreateNestedManyWithoutGameInputSchema).optional() +}).strict(); + +export const GameUncheckedCreateWithoutGamePinInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + updatedAt: z.coerce.date().optional(), + state: z.lazy(() => GameStateSchema).optional(), + allowSpectators: z.boolean().optional(), + allowSpecials: z.boolean().optional(), + allowChat: z.boolean().optional(), + allowMarkDraw: z.boolean().optional(), + users: z.lazy(() => User_GameUncheckedCreateNestedManyWithoutGameInputSchema).optional() +}).strict(); + +export const GameCreateOrConnectWithoutGamePinInputSchema: z.ZodType = z.object({ + where: z.lazy(() => GameWhereUniqueInputSchema), + create: z.union([ z.lazy(() => GameCreateWithoutGamePinInputSchema),z.lazy(() => GameUncheckedCreateWithoutGamePinInputSchema) ]), +}).strict(); + +export const GameUpsertWithoutGamePinInputSchema: z.ZodType = z.object({ + update: z.union([ z.lazy(() => GameUpdateWithoutGamePinInputSchema),z.lazy(() => GameUncheckedUpdateWithoutGamePinInputSchema) ]), + create: z.union([ z.lazy(() => GameCreateWithoutGamePinInputSchema),z.lazy(() => GameUncheckedCreateWithoutGamePinInputSchema) ]), +}).strict(); + +export const GameUpdateWithoutGamePinInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + updatedAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + state: z.union([ z.lazy(() => GameStateSchema),z.lazy(() => EnumGameStateFieldUpdateOperationsInputSchema) ]).optional(), + allowSpectators: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + allowSpecials: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + allowChat: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + allowMarkDraw: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + users: z.lazy(() => User_GameUpdateManyWithoutGameNestedInputSchema).optional() +}).strict(); + +export const GameUncheckedUpdateWithoutGamePinInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + updatedAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + state: z.union([ z.lazy(() => GameStateSchema),z.lazy(() => EnumGameStateFieldUpdateOperationsInputSchema) ]).optional(), + allowSpectators: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + allowSpecials: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + allowChat: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + allowMarkDraw: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + users: z.lazy(() => User_GameUncheckedUpdateManyWithoutGameNestedInputSchema).optional() +}).strict(); + +export const User_GameCreateWithoutShipsInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + index: z.number().int(), + moves: z.lazy(() => MoveCreateNestedManyWithoutUser_gameInputSchema).optional(), + hits: z.lazy(() => HitCreateNestedManyWithoutUser_GameInputSchema).optional(), + chats: z.lazy(() => ChatCreateNestedManyWithoutUser_gameInputSchema).optional(), + game: z.lazy(() => GameCreateNestedOneWithoutUsersInputSchema), + user: z.lazy(() => UserCreateNestedOneWithoutGamesInputSchema) +}).strict(); + +export const User_GameUncheckedCreateWithoutShipsInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + gameId: z.string(), + userId: z.string(), + index: z.number().int(), + moves: z.lazy(() => MoveUncheckedCreateNestedManyWithoutUser_gameInputSchema).optional(), + hits: z.lazy(() => HitUncheckedCreateNestedManyWithoutUser_GameInputSchema).optional(), + chats: z.lazy(() => ChatUncheckedCreateNestedManyWithoutUser_gameInputSchema).optional() +}).strict(); + +export const User_GameCreateOrConnectWithoutShipsInputSchema: z.ZodType = z.object({ + where: z.lazy(() => User_GameWhereUniqueInputSchema), + create: z.union([ z.lazy(() => User_GameCreateWithoutShipsInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutShipsInputSchema) ]), +}).strict(); + +export const User_GameUpsertWithoutShipsInputSchema: z.ZodType = z.object({ + update: z.union([ z.lazy(() => User_GameUpdateWithoutShipsInputSchema),z.lazy(() => User_GameUncheckedUpdateWithoutShipsInputSchema) ]), + create: z.union([ z.lazy(() => User_GameCreateWithoutShipsInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutShipsInputSchema) ]), +}).strict(); + +export const User_GameUpdateWithoutShipsInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + index: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + moves: z.lazy(() => MoveUpdateManyWithoutUser_gameNestedInputSchema).optional(), + hits: z.lazy(() => HitUpdateManyWithoutUser_GameNestedInputSchema).optional(), + chats: z.lazy(() => ChatUpdateManyWithoutUser_gameNestedInputSchema).optional(), + game: z.lazy(() => GameUpdateOneRequiredWithoutUsersNestedInputSchema).optional(), + user: z.lazy(() => UserUpdateOneRequiredWithoutGamesNestedInputSchema).optional() +}).strict(); + +export const User_GameUncheckedUpdateWithoutShipsInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + gameId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + userId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + index: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + moves: z.lazy(() => MoveUncheckedUpdateManyWithoutUser_gameNestedInputSchema).optional(), + hits: z.lazy(() => HitUncheckedUpdateManyWithoutUser_GameNestedInputSchema).optional(), + chats: z.lazy(() => ChatUncheckedUpdateManyWithoutUser_gameNestedInputSchema).optional() +}).strict(); + +export const User_GameCreateWithoutHitsInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + index: z.number().int(), + moves: z.lazy(() => MoveCreateNestedManyWithoutUser_gameInputSchema).optional(), + ships: z.lazy(() => ShipCreateNestedManyWithoutUser_GameInputSchema).optional(), + chats: z.lazy(() => ChatCreateNestedManyWithoutUser_gameInputSchema).optional(), + game: z.lazy(() => GameCreateNestedOneWithoutUsersInputSchema), + user: z.lazy(() => UserCreateNestedOneWithoutGamesInputSchema) +}).strict(); + +export const User_GameUncheckedCreateWithoutHitsInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + gameId: z.string(), + userId: z.string(), + index: z.number().int(), + moves: z.lazy(() => MoveUncheckedCreateNestedManyWithoutUser_gameInputSchema).optional(), + ships: z.lazy(() => ShipUncheckedCreateNestedManyWithoutUser_GameInputSchema).optional(), + chats: z.lazy(() => ChatUncheckedCreateNestedManyWithoutUser_gameInputSchema).optional() +}).strict(); + +export const User_GameCreateOrConnectWithoutHitsInputSchema: z.ZodType = z.object({ + where: z.lazy(() => User_GameWhereUniqueInputSchema), + create: z.union([ z.lazy(() => User_GameCreateWithoutHitsInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutHitsInputSchema) ]), +}).strict(); + +export const User_GameUpsertWithoutHitsInputSchema: z.ZodType = z.object({ + update: z.union([ z.lazy(() => User_GameUpdateWithoutHitsInputSchema),z.lazy(() => User_GameUncheckedUpdateWithoutHitsInputSchema) ]), + create: z.union([ z.lazy(() => User_GameCreateWithoutHitsInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutHitsInputSchema) ]), +}).strict(); + +export const User_GameUpdateWithoutHitsInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + index: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + moves: z.lazy(() => MoveUpdateManyWithoutUser_gameNestedInputSchema).optional(), + ships: z.lazy(() => ShipUpdateManyWithoutUser_GameNestedInputSchema).optional(), + chats: z.lazy(() => ChatUpdateManyWithoutUser_gameNestedInputSchema).optional(), + game: z.lazy(() => GameUpdateOneRequiredWithoutUsersNestedInputSchema).optional(), + user: z.lazy(() => UserUpdateOneRequiredWithoutGamesNestedInputSchema).optional() +}).strict(); + +export const User_GameUncheckedUpdateWithoutHitsInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + gameId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + userId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + index: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + moves: z.lazy(() => MoveUncheckedUpdateManyWithoutUser_gameNestedInputSchema).optional(), + ships: z.lazy(() => ShipUncheckedUpdateManyWithoutUser_GameNestedInputSchema).optional(), + chats: z.lazy(() => ChatUncheckedUpdateManyWithoutUser_gameNestedInputSchema).optional() +}).strict(); + +export const MoveCreateWithoutUser_gameInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + index: z.number().int(), + type: z.lazy(() => MoveTypeSchema), + x: z.number().int(), + y: z.number().int(), + orientation: z.lazy(() => OrientationSchema) +}).strict(); + +export const MoveUncheckedCreateWithoutUser_gameInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + index: z.number().int(), + type: z.lazy(() => MoveTypeSchema), + x: z.number().int(), + y: z.number().int(), + orientation: z.lazy(() => OrientationSchema) +}).strict(); + +export const MoveCreateOrConnectWithoutUser_gameInputSchema: z.ZodType = z.object({ + where: z.lazy(() => MoveWhereUniqueInputSchema), + create: z.union([ z.lazy(() => MoveCreateWithoutUser_gameInputSchema),z.lazy(() => MoveUncheckedCreateWithoutUser_gameInputSchema) ]), +}).strict(); + +export const MoveCreateManyUser_gameInputEnvelopeSchema: z.ZodType = z.object({ + data: z.union([ z.lazy(() => MoveCreateManyUser_gameInputSchema),z.lazy(() => MoveCreateManyUser_gameInputSchema).array() ]), + skipDuplicates: z.boolean().optional() +}).strict(); + +export const ShipCreateWithoutUser_GameInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + size: z.number().int(), + variant: z.number().int(), + x: z.number().int(), + y: z.number().int(), + orientation: z.lazy(() => OrientationSchema) +}).strict(); + +export const ShipUncheckedCreateWithoutUser_GameInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + size: z.number().int(), + variant: z.number().int(), + x: z.number().int(), + y: z.number().int(), + orientation: z.lazy(() => OrientationSchema) +}).strict(); + +export const ShipCreateOrConnectWithoutUser_GameInputSchema: z.ZodType = z.object({ + where: z.lazy(() => ShipWhereUniqueInputSchema), + create: z.union([ z.lazy(() => ShipCreateWithoutUser_GameInputSchema),z.lazy(() => ShipUncheckedCreateWithoutUser_GameInputSchema) ]), +}).strict(); + +export const ShipCreateManyUser_GameInputEnvelopeSchema: z.ZodType = z.object({ + data: z.union([ z.lazy(() => ShipCreateManyUser_GameInputSchema),z.lazy(() => ShipCreateManyUser_GameInputSchema).array() ]), + skipDuplicates: z.boolean().optional() +}).strict(); + +export const HitCreateWithoutUser_GameInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + x: z.number().int(), + y: z.number().int(), + hit: z.boolean() +}).strict(); + +export const HitUncheckedCreateWithoutUser_GameInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + x: z.number().int(), + y: z.number().int(), + hit: z.boolean() +}).strict(); + +export const HitCreateOrConnectWithoutUser_GameInputSchema: z.ZodType = z.object({ + where: z.lazy(() => HitWhereUniqueInputSchema), + create: z.union([ z.lazy(() => HitCreateWithoutUser_GameInputSchema),z.lazy(() => HitUncheckedCreateWithoutUser_GameInputSchema) ]), +}).strict(); + +export const HitCreateManyUser_GameInputEnvelopeSchema: z.ZodType = z.object({ + data: z.union([ z.lazy(() => HitCreateManyUser_GameInputSchema),z.lazy(() => HitCreateManyUser_GameInputSchema).array() ]), + skipDuplicates: z.boolean().optional() +}).strict(); + +export const ChatCreateWithoutUser_gameInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + message: z.string().optional().nullable(), + event: z.string().optional().nullable() +}).strict(); + +export const ChatUncheckedCreateWithoutUser_gameInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + message: z.string().optional().nullable(), + event: z.string().optional().nullable() +}).strict(); + +export const ChatCreateOrConnectWithoutUser_gameInputSchema: z.ZodType = z.object({ + where: z.lazy(() => ChatWhereUniqueInputSchema), + create: z.union([ z.lazy(() => ChatCreateWithoutUser_gameInputSchema),z.lazy(() => ChatUncheckedCreateWithoutUser_gameInputSchema) ]), +}).strict(); + +export const ChatCreateManyUser_gameInputEnvelopeSchema: z.ZodType = z.object({ + data: z.union([ z.lazy(() => ChatCreateManyUser_gameInputSchema),z.lazy(() => ChatCreateManyUser_gameInputSchema).array() ]), + skipDuplicates: z.boolean().optional() +}).strict(); + +export const GameCreateWithoutUsersInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + updatedAt: z.coerce.date().optional(), + state: z.lazy(() => GameStateSchema).optional(), + allowSpectators: z.boolean().optional(), + allowSpecials: z.boolean().optional(), + allowChat: z.boolean().optional(), + allowMarkDraw: z.boolean().optional(), + gamePin: z.lazy(() => GamepinCreateNestedOneWithoutGameInputSchema).optional() +}).strict(); + +export const GameUncheckedCreateWithoutUsersInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + updatedAt: z.coerce.date().optional(), + state: z.lazy(() => GameStateSchema).optional(), + allowSpectators: z.boolean().optional(), + allowSpecials: z.boolean().optional(), + allowChat: z.boolean().optional(), + allowMarkDraw: z.boolean().optional(), + gamePin: z.lazy(() => GamepinUncheckedCreateNestedOneWithoutGameInputSchema).optional() +}).strict(); + +export const GameCreateOrConnectWithoutUsersInputSchema: z.ZodType = z.object({ + where: z.lazy(() => GameWhereUniqueInputSchema), + create: z.union([ z.lazy(() => GameCreateWithoutUsersInputSchema),z.lazy(() => GameUncheckedCreateWithoutUsersInputSchema) ]), +}).strict(); + +export const UserCreateWithoutGamesInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + name: z.string().optional().nullable(), + email: z.string().optional().nullable(), + emailVerified: z.coerce.date().optional().nullable(), + image: z.string().optional().nullable(), + createdAt: z.coerce.date().optional(), + updatedAt: z.coerce.date().optional(), + accounts: z.lazy(() => AccountCreateNestedManyWithoutUserInputSchema).optional(), + sessions: z.lazy(() => SessionCreateNestedManyWithoutUserInputSchema).optional() +}).strict(); + +export const UserUncheckedCreateWithoutGamesInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + name: z.string().optional().nullable(), + email: z.string().optional().nullable(), + emailVerified: z.coerce.date().optional().nullable(), + image: z.string().optional().nullable(), + createdAt: z.coerce.date().optional(), + updatedAt: z.coerce.date().optional(), + accounts: z.lazy(() => AccountUncheckedCreateNestedManyWithoutUserInputSchema).optional(), + sessions: z.lazy(() => SessionUncheckedCreateNestedManyWithoutUserInputSchema).optional() +}).strict(); + +export const UserCreateOrConnectWithoutGamesInputSchema: z.ZodType = z.object({ + where: z.lazy(() => UserWhereUniqueInputSchema), + create: z.union([ z.lazy(() => UserCreateWithoutGamesInputSchema),z.lazy(() => UserUncheckedCreateWithoutGamesInputSchema) ]), +}).strict(); + +export const MoveUpsertWithWhereUniqueWithoutUser_gameInputSchema: z.ZodType = z.object({ + where: z.lazy(() => MoveWhereUniqueInputSchema), + update: z.union([ z.lazy(() => MoveUpdateWithoutUser_gameInputSchema),z.lazy(() => MoveUncheckedUpdateWithoutUser_gameInputSchema) ]), + create: z.union([ z.lazy(() => MoveCreateWithoutUser_gameInputSchema),z.lazy(() => MoveUncheckedCreateWithoutUser_gameInputSchema) ]), +}).strict(); + +export const MoveUpdateWithWhereUniqueWithoutUser_gameInputSchema: z.ZodType = z.object({ + where: z.lazy(() => MoveWhereUniqueInputSchema), + data: z.union([ z.lazy(() => MoveUpdateWithoutUser_gameInputSchema),z.lazy(() => MoveUncheckedUpdateWithoutUser_gameInputSchema) ]), +}).strict(); + +export const MoveUpdateManyWithWhereWithoutUser_gameInputSchema: z.ZodType = z.object({ + where: z.lazy(() => MoveScalarWhereInputSchema), + data: z.union([ z.lazy(() => MoveUpdateManyMutationInputSchema),z.lazy(() => MoveUncheckedUpdateManyWithoutMovesInputSchema) ]), +}).strict(); + +export const MoveScalarWhereInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => MoveScalarWhereInputSchema),z.lazy(() => MoveScalarWhereInputSchema).array() ]).optional(), + OR: z.lazy(() => MoveScalarWhereInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => MoveScalarWhereInputSchema),z.lazy(() => MoveScalarWhereInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + createdAt: z.union([ z.lazy(() => DateTimeFilterSchema),z.coerce.date() ]).optional(), + index: z.union([ z.lazy(() => IntFilterSchema),z.number() ]).optional(), + type: z.union([ z.lazy(() => EnumMoveTypeFilterSchema),z.lazy(() => MoveTypeSchema) ]).optional(), + x: z.union([ z.lazy(() => IntFilterSchema),z.number() ]).optional(), + y: z.union([ z.lazy(() => IntFilterSchema),z.number() ]).optional(), + orientation: z.union([ z.lazy(() => EnumOrientationFilterSchema),z.lazy(() => OrientationSchema) ]).optional(), + user_game_id: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), +}).strict(); + +export const ShipUpsertWithWhereUniqueWithoutUser_GameInputSchema: z.ZodType = z.object({ + where: z.lazy(() => ShipWhereUniqueInputSchema), + update: z.union([ z.lazy(() => ShipUpdateWithoutUser_GameInputSchema),z.lazy(() => ShipUncheckedUpdateWithoutUser_GameInputSchema) ]), + create: z.union([ z.lazy(() => ShipCreateWithoutUser_GameInputSchema),z.lazy(() => ShipUncheckedCreateWithoutUser_GameInputSchema) ]), +}).strict(); + +export const ShipUpdateWithWhereUniqueWithoutUser_GameInputSchema: z.ZodType = z.object({ + where: z.lazy(() => ShipWhereUniqueInputSchema), + data: z.union([ z.lazy(() => ShipUpdateWithoutUser_GameInputSchema),z.lazy(() => ShipUncheckedUpdateWithoutUser_GameInputSchema) ]), +}).strict(); + +export const ShipUpdateManyWithWhereWithoutUser_GameInputSchema: z.ZodType = z.object({ + where: z.lazy(() => ShipScalarWhereInputSchema), + data: z.union([ z.lazy(() => ShipUpdateManyMutationInputSchema),z.lazy(() => ShipUncheckedUpdateManyWithoutShipsInputSchema) ]), +}).strict(); + +export const ShipScalarWhereInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => ShipScalarWhereInputSchema),z.lazy(() => ShipScalarWhereInputSchema).array() ]).optional(), + OR: z.lazy(() => ShipScalarWhereInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => ShipScalarWhereInputSchema),z.lazy(() => ShipScalarWhereInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + size: z.union([ z.lazy(() => IntFilterSchema),z.number() ]).optional(), + variant: z.union([ z.lazy(() => IntFilterSchema),z.number() ]).optional(), + x: z.union([ z.lazy(() => IntFilterSchema),z.number() ]).optional(), + y: z.union([ z.lazy(() => IntFilterSchema),z.number() ]).optional(), + orientation: z.union([ z.lazy(() => EnumOrientationFilterSchema),z.lazy(() => OrientationSchema) ]).optional(), + user_GameId: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), +}).strict(); + +export const HitUpsertWithWhereUniqueWithoutUser_GameInputSchema: z.ZodType = z.object({ + where: z.lazy(() => HitWhereUniqueInputSchema), + update: z.union([ z.lazy(() => HitUpdateWithoutUser_GameInputSchema),z.lazy(() => HitUncheckedUpdateWithoutUser_GameInputSchema) ]), + create: z.union([ z.lazy(() => HitCreateWithoutUser_GameInputSchema),z.lazy(() => HitUncheckedCreateWithoutUser_GameInputSchema) ]), +}).strict(); + +export const HitUpdateWithWhereUniqueWithoutUser_GameInputSchema: z.ZodType = z.object({ + where: z.lazy(() => HitWhereUniqueInputSchema), + data: z.union([ z.lazy(() => HitUpdateWithoutUser_GameInputSchema),z.lazy(() => HitUncheckedUpdateWithoutUser_GameInputSchema) ]), +}).strict(); + +export const HitUpdateManyWithWhereWithoutUser_GameInputSchema: z.ZodType = z.object({ + where: z.lazy(() => HitScalarWhereInputSchema), + data: z.union([ z.lazy(() => HitUpdateManyMutationInputSchema),z.lazy(() => HitUncheckedUpdateManyWithoutHitsInputSchema) ]), +}).strict(); + +export const HitScalarWhereInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => HitScalarWhereInputSchema),z.lazy(() => HitScalarWhereInputSchema).array() ]).optional(), + OR: z.lazy(() => HitScalarWhereInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => HitScalarWhereInputSchema),z.lazy(() => HitScalarWhereInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + x: z.union([ z.lazy(() => IntFilterSchema),z.number() ]).optional(), + y: z.union([ z.lazy(() => IntFilterSchema),z.number() ]).optional(), + hit: z.union([ z.lazy(() => BoolFilterSchema),z.boolean() ]).optional(), + user_GameId: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), +}).strict(); + +export const ChatUpsertWithWhereUniqueWithoutUser_gameInputSchema: z.ZodType = z.object({ + where: z.lazy(() => ChatWhereUniqueInputSchema), + update: z.union([ z.lazy(() => ChatUpdateWithoutUser_gameInputSchema),z.lazy(() => ChatUncheckedUpdateWithoutUser_gameInputSchema) ]), + create: z.union([ z.lazy(() => ChatCreateWithoutUser_gameInputSchema),z.lazy(() => ChatUncheckedCreateWithoutUser_gameInputSchema) ]), +}).strict(); + +export const ChatUpdateWithWhereUniqueWithoutUser_gameInputSchema: z.ZodType = z.object({ + where: z.lazy(() => ChatWhereUniqueInputSchema), + data: z.union([ z.lazy(() => ChatUpdateWithoutUser_gameInputSchema),z.lazy(() => ChatUncheckedUpdateWithoutUser_gameInputSchema) ]), +}).strict(); + +export const ChatUpdateManyWithWhereWithoutUser_gameInputSchema: z.ZodType = z.object({ + where: z.lazy(() => ChatScalarWhereInputSchema), + data: z.union([ z.lazy(() => ChatUpdateManyMutationInputSchema),z.lazy(() => ChatUncheckedUpdateManyWithoutChatsInputSchema) ]), +}).strict(); + +export const ChatScalarWhereInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => ChatScalarWhereInputSchema),z.lazy(() => ChatScalarWhereInputSchema).array() ]).optional(), + OR: z.lazy(() => ChatScalarWhereInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => ChatScalarWhereInputSchema),z.lazy(() => ChatScalarWhereInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + createdAt: z.union([ z.lazy(() => DateTimeFilterSchema),z.coerce.date() ]).optional(), + message: z.union([ z.lazy(() => StringNullableFilterSchema),z.string() ]).optional().nullable(), + event: z.union([ z.lazy(() => StringNullableFilterSchema),z.string() ]).optional().nullable(), + user_game_id: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), +}).strict(); + +export const GameUpsertWithoutUsersInputSchema: z.ZodType = z.object({ + update: z.union([ z.lazy(() => GameUpdateWithoutUsersInputSchema),z.lazy(() => GameUncheckedUpdateWithoutUsersInputSchema) ]), + create: z.union([ z.lazy(() => GameCreateWithoutUsersInputSchema),z.lazy(() => GameUncheckedCreateWithoutUsersInputSchema) ]), +}).strict(); + +export const GameUpdateWithoutUsersInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + updatedAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + state: z.union([ z.lazy(() => GameStateSchema),z.lazy(() => EnumGameStateFieldUpdateOperationsInputSchema) ]).optional(), + allowSpectators: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + allowSpecials: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + allowChat: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + allowMarkDraw: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + gamePin: z.lazy(() => GamepinUpdateOneWithoutGameNestedInputSchema).optional() +}).strict(); + +export const GameUncheckedUpdateWithoutUsersInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + updatedAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + state: z.union([ z.lazy(() => GameStateSchema),z.lazy(() => EnumGameStateFieldUpdateOperationsInputSchema) ]).optional(), + allowSpectators: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + allowSpecials: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + allowChat: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + allowMarkDraw: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), + gamePin: z.lazy(() => GamepinUncheckedUpdateOneWithoutGameNestedInputSchema).optional() +}).strict(); + +export const UserUpsertWithoutGamesInputSchema: z.ZodType = z.object({ + update: z.union([ z.lazy(() => UserUpdateWithoutGamesInputSchema),z.lazy(() => UserUncheckedUpdateWithoutGamesInputSchema) ]), + create: z.union([ z.lazy(() => UserCreateWithoutGamesInputSchema),z.lazy(() => UserUncheckedCreateWithoutGamesInputSchema) ]), +}).strict(); + +export const UserUpdateWithoutGamesInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + name: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + email: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + emailVerified: z.union([ z.coerce.date(),z.lazy(() => NullableDateTimeFieldUpdateOperationsInputSchema) ]).optional().nullable(), + image: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + updatedAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + accounts: z.lazy(() => AccountUpdateManyWithoutUserNestedInputSchema).optional(), + sessions: z.lazy(() => SessionUpdateManyWithoutUserNestedInputSchema).optional() +}).strict(); + +export const UserUncheckedUpdateWithoutGamesInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + name: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + email: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + emailVerified: z.union([ z.coerce.date(),z.lazy(() => NullableDateTimeFieldUpdateOperationsInputSchema) ]).optional().nullable(), + image: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + updatedAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + accounts: z.lazy(() => AccountUncheckedUpdateManyWithoutUserNestedInputSchema).optional(), + sessions: z.lazy(() => SessionUncheckedUpdateManyWithoutUserNestedInputSchema).optional() +}).strict(); + +export const User_GameCreateWithoutMovesInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + index: z.number().int(), + ships: z.lazy(() => ShipCreateNestedManyWithoutUser_GameInputSchema).optional(), + hits: z.lazy(() => HitCreateNestedManyWithoutUser_GameInputSchema).optional(), + chats: z.lazy(() => ChatCreateNestedManyWithoutUser_gameInputSchema).optional(), + game: z.lazy(() => GameCreateNestedOneWithoutUsersInputSchema), + user: z.lazy(() => UserCreateNestedOneWithoutGamesInputSchema) +}).strict(); + +export const User_GameUncheckedCreateWithoutMovesInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + gameId: z.string(), + userId: z.string(), + index: z.number().int(), + ships: z.lazy(() => ShipUncheckedCreateNestedManyWithoutUser_GameInputSchema).optional(), + hits: z.lazy(() => HitUncheckedCreateNestedManyWithoutUser_GameInputSchema).optional(), + chats: z.lazy(() => ChatUncheckedCreateNestedManyWithoutUser_gameInputSchema).optional() +}).strict(); + +export const User_GameCreateOrConnectWithoutMovesInputSchema: z.ZodType = z.object({ + where: z.lazy(() => User_GameWhereUniqueInputSchema), + create: z.union([ z.lazy(() => User_GameCreateWithoutMovesInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutMovesInputSchema) ]), +}).strict(); + +export const User_GameUpsertWithoutMovesInputSchema: z.ZodType = z.object({ + update: z.union([ z.lazy(() => User_GameUpdateWithoutMovesInputSchema),z.lazy(() => User_GameUncheckedUpdateWithoutMovesInputSchema) ]), + create: z.union([ z.lazy(() => User_GameCreateWithoutMovesInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutMovesInputSchema) ]), +}).strict(); + +export const User_GameUpdateWithoutMovesInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + index: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + ships: z.lazy(() => ShipUpdateManyWithoutUser_GameNestedInputSchema).optional(), + hits: z.lazy(() => HitUpdateManyWithoutUser_GameNestedInputSchema).optional(), + chats: z.lazy(() => ChatUpdateManyWithoutUser_gameNestedInputSchema).optional(), + game: z.lazy(() => GameUpdateOneRequiredWithoutUsersNestedInputSchema).optional(), + user: z.lazy(() => UserUpdateOneRequiredWithoutGamesNestedInputSchema).optional() +}).strict(); + +export const User_GameUncheckedUpdateWithoutMovesInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + gameId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + userId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + index: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + ships: z.lazy(() => ShipUncheckedUpdateManyWithoutUser_GameNestedInputSchema).optional(), + hits: z.lazy(() => HitUncheckedUpdateManyWithoutUser_GameNestedInputSchema).optional(), + chats: z.lazy(() => ChatUncheckedUpdateManyWithoutUser_gameNestedInputSchema).optional() +}).strict(); + +export const User_GameCreateWithoutChatsInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + index: z.number().int(), + moves: z.lazy(() => MoveCreateNestedManyWithoutUser_gameInputSchema).optional(), + ships: z.lazy(() => ShipCreateNestedManyWithoutUser_GameInputSchema).optional(), + hits: z.lazy(() => HitCreateNestedManyWithoutUser_GameInputSchema).optional(), + game: z.lazy(() => GameCreateNestedOneWithoutUsersInputSchema), + user: z.lazy(() => UserCreateNestedOneWithoutGamesInputSchema) +}).strict(); + +export const User_GameUncheckedCreateWithoutChatsInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + gameId: z.string(), + userId: z.string(), + index: z.number().int(), + moves: z.lazy(() => MoveUncheckedCreateNestedManyWithoutUser_gameInputSchema).optional(), + ships: z.lazy(() => ShipUncheckedCreateNestedManyWithoutUser_GameInputSchema).optional(), + hits: z.lazy(() => HitUncheckedCreateNestedManyWithoutUser_GameInputSchema).optional() +}).strict(); + +export const User_GameCreateOrConnectWithoutChatsInputSchema: z.ZodType = z.object({ + where: z.lazy(() => User_GameWhereUniqueInputSchema), + create: z.union([ z.lazy(() => User_GameCreateWithoutChatsInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutChatsInputSchema) ]), +}).strict(); + +export const User_GameUpsertWithoutChatsInputSchema: z.ZodType = z.object({ + update: z.union([ z.lazy(() => User_GameUpdateWithoutChatsInputSchema),z.lazy(() => User_GameUncheckedUpdateWithoutChatsInputSchema) ]), + create: z.union([ z.lazy(() => User_GameCreateWithoutChatsInputSchema),z.lazy(() => User_GameUncheckedCreateWithoutChatsInputSchema) ]), +}).strict(); + +export const User_GameUpdateWithoutChatsInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + index: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + moves: z.lazy(() => MoveUpdateManyWithoutUser_gameNestedInputSchema).optional(), + ships: z.lazy(() => ShipUpdateManyWithoutUser_GameNestedInputSchema).optional(), + hits: z.lazy(() => HitUpdateManyWithoutUser_GameNestedInputSchema).optional(), + game: z.lazy(() => GameUpdateOneRequiredWithoutUsersNestedInputSchema).optional(), + user: z.lazy(() => UserUpdateOneRequiredWithoutGamesNestedInputSchema).optional() +}).strict(); + +export const User_GameUncheckedUpdateWithoutChatsInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + gameId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + userId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + index: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + moves: z.lazy(() => MoveUncheckedUpdateManyWithoutUser_gameNestedInputSchema).optional(), + ships: z.lazy(() => ShipUncheckedUpdateManyWithoutUser_GameNestedInputSchema).optional(), + hits: z.lazy(() => HitUncheckedUpdateManyWithoutUser_GameNestedInputSchema).optional() +}).strict(); + +export const User_GameCreateManyUserInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + gameId: z.string(), + index: z.number().int() +}).strict(); + +export const AccountCreateManyUserInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + type: z.string(), + provider: z.string(), + providerAccountId: z.string(), + refresh_token: z.string().optional().nullable(), + access_token: z.string().optional().nullable(), + expires_at: z.number().int().optional().nullable(), + ext_expires_in: z.number().int().optional().nullable(), + token_type: z.string().optional().nullable(), + scope: z.string().optional().nullable(), + id_token: z.string().optional().nullable(), + session_state: z.string().optional().nullable(), + oauth_token_secret: z.string().optional().nullable(), + oauth_token: z.string().optional().nullable() +}).strict(); + +export const SessionCreateManyUserInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + sessionToken: z.string(), + expires: z.coerce.date() +}).strict(); + +export const User_GameUpdateWithoutUserInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + index: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + moves: z.lazy(() => MoveUpdateManyWithoutUser_gameNestedInputSchema).optional(), + ships: z.lazy(() => ShipUpdateManyWithoutUser_GameNestedInputSchema).optional(), + hits: z.lazy(() => HitUpdateManyWithoutUser_GameNestedInputSchema).optional(), + chats: z.lazy(() => ChatUpdateManyWithoutUser_gameNestedInputSchema).optional(), + game: z.lazy(() => GameUpdateOneRequiredWithoutUsersNestedInputSchema).optional() +}).strict(); + +export const User_GameUncheckedUpdateWithoutUserInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + gameId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + index: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + moves: z.lazy(() => MoveUncheckedUpdateManyWithoutUser_gameNestedInputSchema).optional(), + ships: z.lazy(() => ShipUncheckedUpdateManyWithoutUser_GameNestedInputSchema).optional(), + hits: z.lazy(() => HitUncheckedUpdateManyWithoutUser_GameNestedInputSchema).optional(), + chats: z.lazy(() => ChatUncheckedUpdateManyWithoutUser_gameNestedInputSchema).optional() +}).strict(); + +export const User_GameUncheckedUpdateManyWithoutGamesInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + gameId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + index: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const AccountUpdateWithoutUserInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + type: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + provider: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + providerAccountId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + refresh_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + access_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + expires_at: z.union([ z.number().int(),z.lazy(() => NullableIntFieldUpdateOperationsInputSchema) ]).optional().nullable(), + ext_expires_in: z.union([ z.number().int(),z.lazy(() => NullableIntFieldUpdateOperationsInputSchema) ]).optional().nullable(), + token_type: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + scope: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + id_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + session_state: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + oauth_token_secret: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + oauth_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), +}).strict(); + +export const AccountUncheckedUpdateWithoutUserInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + type: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + provider: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + providerAccountId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + refresh_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + access_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + expires_at: z.union([ z.number().int(),z.lazy(() => NullableIntFieldUpdateOperationsInputSchema) ]).optional().nullable(), + ext_expires_in: z.union([ z.number().int(),z.lazy(() => NullableIntFieldUpdateOperationsInputSchema) ]).optional().nullable(), + token_type: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + scope: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + id_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + session_state: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + oauth_token_secret: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + oauth_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), +}).strict(); + +export const AccountUncheckedUpdateManyWithoutAccountsInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + type: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + provider: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + providerAccountId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + refresh_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + access_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + expires_at: z.union([ z.number().int(),z.lazy(() => NullableIntFieldUpdateOperationsInputSchema) ]).optional().nullable(), + ext_expires_in: z.union([ z.number().int(),z.lazy(() => NullableIntFieldUpdateOperationsInputSchema) ]).optional().nullable(), + token_type: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + scope: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + id_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + session_state: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + oauth_token_secret: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + oauth_token: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), +}).strict(); + +export const SessionUpdateWithoutUserInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + sessionToken: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + expires: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const SessionUncheckedUpdateWithoutUserInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + sessionToken: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + expires: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const SessionUncheckedUpdateManyWithoutSessionsInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + sessionToken: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + expires: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const User_GameCreateManyGameInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + userId: z.string(), + index: z.number().int() +}).strict(); + +export const User_GameUpdateWithoutGameInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + index: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + moves: z.lazy(() => MoveUpdateManyWithoutUser_gameNestedInputSchema).optional(), + ships: z.lazy(() => ShipUpdateManyWithoutUser_GameNestedInputSchema).optional(), + hits: z.lazy(() => HitUpdateManyWithoutUser_GameNestedInputSchema).optional(), + chats: z.lazy(() => ChatUpdateManyWithoutUser_gameNestedInputSchema).optional(), + user: z.lazy(() => UserUpdateOneRequiredWithoutGamesNestedInputSchema).optional() +}).strict(); + +export const User_GameUncheckedUpdateWithoutGameInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + userId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + index: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + moves: z.lazy(() => MoveUncheckedUpdateManyWithoutUser_gameNestedInputSchema).optional(), + ships: z.lazy(() => ShipUncheckedUpdateManyWithoutUser_GameNestedInputSchema).optional(), + hits: z.lazy(() => HitUncheckedUpdateManyWithoutUser_GameNestedInputSchema).optional(), + chats: z.lazy(() => ChatUncheckedUpdateManyWithoutUser_gameNestedInputSchema).optional() +}).strict(); + +export const User_GameUncheckedUpdateManyWithoutUsersInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + userId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + index: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const MoveCreateManyUser_gameInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + index: z.number().int(), + type: z.lazy(() => MoveTypeSchema), + x: z.number().int(), + y: z.number().int(), + orientation: z.lazy(() => OrientationSchema) +}).strict(); + +export const ShipCreateManyUser_GameInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + size: z.number().int(), + variant: z.number().int(), + x: z.number().int(), + y: z.number().int(), + orientation: z.lazy(() => OrientationSchema) +}).strict(); + +export const HitCreateManyUser_GameInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + x: z.number().int(), + y: z.number().int(), + hit: z.boolean() +}).strict(); + +export const ChatCreateManyUser_gameInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + message: z.string().optional().nullable(), + event: z.string().optional().nullable() +}).strict(); + +export const MoveUpdateWithoutUser_gameInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + index: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + type: z.union([ z.lazy(() => MoveTypeSchema),z.lazy(() => EnumMoveTypeFieldUpdateOperationsInputSchema) ]).optional(), + x: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + y: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + orientation: z.union([ z.lazy(() => OrientationSchema),z.lazy(() => EnumOrientationFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const MoveUncheckedUpdateWithoutUser_gameInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + index: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + type: z.union([ z.lazy(() => MoveTypeSchema),z.lazy(() => EnumMoveTypeFieldUpdateOperationsInputSchema) ]).optional(), + x: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + y: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + orientation: z.union([ z.lazy(() => OrientationSchema),z.lazy(() => EnumOrientationFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const MoveUncheckedUpdateManyWithoutMovesInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + index: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + type: z.union([ z.lazy(() => MoveTypeSchema),z.lazy(() => EnumMoveTypeFieldUpdateOperationsInputSchema) ]).optional(), + x: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + y: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + orientation: z.union([ z.lazy(() => OrientationSchema),z.lazy(() => EnumOrientationFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const ShipUpdateWithoutUser_GameInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + size: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + variant: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + x: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + y: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + orientation: z.union([ z.lazy(() => OrientationSchema),z.lazy(() => EnumOrientationFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const ShipUncheckedUpdateWithoutUser_GameInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + size: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + variant: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + x: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + y: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + orientation: z.union([ z.lazy(() => OrientationSchema),z.lazy(() => EnumOrientationFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const ShipUncheckedUpdateManyWithoutShipsInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + size: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + variant: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + x: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + y: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + orientation: z.union([ z.lazy(() => OrientationSchema),z.lazy(() => EnumOrientationFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const HitUpdateWithoutUser_GameInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + x: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + y: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + hit: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const HitUncheckedUpdateWithoutUser_GameInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + x: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + y: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + hit: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const HitUncheckedUpdateManyWithoutHitsInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + x: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + y: z.union([ z.number().int(),z.lazy(() => IntFieldUpdateOperationsInputSchema) ]).optional(), + hit: z.union([ z.boolean(),z.lazy(() => BoolFieldUpdateOperationsInputSchema) ]).optional(), +}).strict(); + +export const ChatUpdateWithoutUser_gameInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + message: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + event: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), +}).strict(); + +export const ChatUncheckedUpdateWithoutUser_gameInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + message: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + event: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), +}).strict(); + +export const ChatUncheckedUpdateManyWithoutChatsInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + message: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), + event: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), +}).strict(); + +///////////////////////////////////////// +// ARGS +///////////////////////////////////////// + +export const AccountFindFirstArgsSchema: z.ZodType = z.object({ + select: AccountSelectSchema.optional(), + include: AccountIncludeSchema.optional(), + where: AccountWhereInputSchema.optional(), + orderBy: z.union([ AccountOrderByWithRelationInputSchema.array(),AccountOrderByWithRelationInputSchema ]).optional(), + cursor: AccountWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ AccountScalarFieldEnumSchema,AccountScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const AccountFindFirstOrThrowArgsSchema: z.ZodType = z.object({ + select: AccountSelectSchema.optional(), + include: AccountIncludeSchema.optional(), + where: AccountWhereInputSchema.optional(), + orderBy: z.union([ AccountOrderByWithRelationInputSchema.array(),AccountOrderByWithRelationInputSchema ]).optional(), + cursor: AccountWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ AccountScalarFieldEnumSchema,AccountScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const AccountFindManyArgsSchema: z.ZodType = z.object({ + select: AccountSelectSchema.optional(), + include: AccountIncludeSchema.optional(), + where: AccountWhereInputSchema.optional(), + orderBy: z.union([ AccountOrderByWithRelationInputSchema.array(),AccountOrderByWithRelationInputSchema ]).optional(), + cursor: AccountWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ AccountScalarFieldEnumSchema,AccountScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const AccountAggregateArgsSchema: z.ZodType = z.object({ + where: AccountWhereInputSchema.optional(), + orderBy: z.union([ AccountOrderByWithRelationInputSchema.array(),AccountOrderByWithRelationInputSchema ]).optional(), + cursor: AccountWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), +}).strict() + +export const AccountGroupByArgsSchema: z.ZodType = z.object({ + where: AccountWhereInputSchema.optional(), + orderBy: z.union([ AccountOrderByWithAggregationInputSchema.array(),AccountOrderByWithAggregationInputSchema ]).optional(), + by: AccountScalarFieldEnumSchema.array(), + having: AccountScalarWhereWithAggregatesInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), +}).strict() + +export const AccountFindUniqueArgsSchema: z.ZodType = z.object({ + select: AccountSelectSchema.optional(), + include: AccountIncludeSchema.optional(), + where: AccountWhereUniqueInputSchema, +}).strict() + +export const AccountFindUniqueOrThrowArgsSchema: z.ZodType = z.object({ + select: AccountSelectSchema.optional(), + include: AccountIncludeSchema.optional(), + where: AccountWhereUniqueInputSchema, +}).strict() + +export const SessionFindFirstArgsSchema: z.ZodType = z.object({ + select: SessionSelectSchema.optional(), + include: SessionIncludeSchema.optional(), + where: SessionWhereInputSchema.optional(), + orderBy: z.union([ SessionOrderByWithRelationInputSchema.array(),SessionOrderByWithRelationInputSchema ]).optional(), + cursor: SessionWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ SessionScalarFieldEnumSchema,SessionScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const SessionFindFirstOrThrowArgsSchema: z.ZodType = z.object({ + select: SessionSelectSchema.optional(), + include: SessionIncludeSchema.optional(), + where: SessionWhereInputSchema.optional(), + orderBy: z.union([ SessionOrderByWithRelationInputSchema.array(),SessionOrderByWithRelationInputSchema ]).optional(), + cursor: SessionWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ SessionScalarFieldEnumSchema,SessionScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const SessionFindManyArgsSchema: z.ZodType = z.object({ + select: SessionSelectSchema.optional(), + include: SessionIncludeSchema.optional(), + where: SessionWhereInputSchema.optional(), + orderBy: z.union([ SessionOrderByWithRelationInputSchema.array(),SessionOrderByWithRelationInputSchema ]).optional(), + cursor: SessionWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ SessionScalarFieldEnumSchema,SessionScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const SessionAggregateArgsSchema: z.ZodType = z.object({ + where: SessionWhereInputSchema.optional(), + orderBy: z.union([ SessionOrderByWithRelationInputSchema.array(),SessionOrderByWithRelationInputSchema ]).optional(), + cursor: SessionWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), +}).strict() + +export const SessionGroupByArgsSchema: z.ZodType = z.object({ + where: SessionWhereInputSchema.optional(), + orderBy: z.union([ SessionOrderByWithAggregationInputSchema.array(),SessionOrderByWithAggregationInputSchema ]).optional(), + by: SessionScalarFieldEnumSchema.array(), + having: SessionScalarWhereWithAggregatesInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), +}).strict() + +export const SessionFindUniqueArgsSchema: z.ZodType = z.object({ + select: SessionSelectSchema.optional(), + include: SessionIncludeSchema.optional(), + where: SessionWhereUniqueInputSchema, +}).strict() + +export const SessionFindUniqueOrThrowArgsSchema: z.ZodType = z.object({ + select: SessionSelectSchema.optional(), + include: SessionIncludeSchema.optional(), + where: SessionWhereUniqueInputSchema, +}).strict() + +export const UserFindFirstArgsSchema: z.ZodType = z.object({ + select: UserSelectSchema.optional(), + include: UserIncludeSchema.optional(), + where: UserWhereInputSchema.optional(), + orderBy: z.union([ UserOrderByWithRelationInputSchema.array(),UserOrderByWithRelationInputSchema ]).optional(), + cursor: UserWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ UserScalarFieldEnumSchema,UserScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const UserFindFirstOrThrowArgsSchema: z.ZodType = z.object({ + select: UserSelectSchema.optional(), + include: UserIncludeSchema.optional(), + where: UserWhereInputSchema.optional(), + orderBy: z.union([ UserOrderByWithRelationInputSchema.array(),UserOrderByWithRelationInputSchema ]).optional(), + cursor: UserWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ UserScalarFieldEnumSchema,UserScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const UserFindManyArgsSchema: z.ZodType = z.object({ + select: UserSelectSchema.optional(), + include: UserIncludeSchema.optional(), + where: UserWhereInputSchema.optional(), + orderBy: z.union([ UserOrderByWithRelationInputSchema.array(),UserOrderByWithRelationInputSchema ]).optional(), + cursor: UserWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ UserScalarFieldEnumSchema,UserScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const UserAggregateArgsSchema: z.ZodType = z.object({ + where: UserWhereInputSchema.optional(), + orderBy: z.union([ UserOrderByWithRelationInputSchema.array(),UserOrderByWithRelationInputSchema ]).optional(), + cursor: UserWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), +}).strict() + +export const UserGroupByArgsSchema: z.ZodType = z.object({ + where: UserWhereInputSchema.optional(), + orderBy: z.union([ UserOrderByWithAggregationInputSchema.array(),UserOrderByWithAggregationInputSchema ]).optional(), + by: UserScalarFieldEnumSchema.array(), + having: UserScalarWhereWithAggregatesInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), +}).strict() + +export const UserFindUniqueArgsSchema: z.ZodType = z.object({ + select: UserSelectSchema.optional(), + include: UserIncludeSchema.optional(), + where: UserWhereUniqueInputSchema, +}).strict() + +export const UserFindUniqueOrThrowArgsSchema: z.ZodType = z.object({ + select: UserSelectSchema.optional(), + include: UserIncludeSchema.optional(), + where: UserWhereUniqueInputSchema, +}).strict() + +export const VerificationTokenFindFirstArgsSchema: z.ZodType = z.object({ + select: VerificationTokenSelectSchema.optional(), + where: VerificationTokenWhereInputSchema.optional(), + orderBy: z.union([ VerificationTokenOrderByWithRelationInputSchema.array(),VerificationTokenOrderByWithRelationInputSchema ]).optional(), + cursor: VerificationTokenWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ VerificationTokenScalarFieldEnumSchema,VerificationTokenScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const VerificationTokenFindFirstOrThrowArgsSchema: z.ZodType = z.object({ + select: VerificationTokenSelectSchema.optional(), + where: VerificationTokenWhereInputSchema.optional(), + orderBy: z.union([ VerificationTokenOrderByWithRelationInputSchema.array(),VerificationTokenOrderByWithRelationInputSchema ]).optional(), + cursor: VerificationTokenWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ VerificationTokenScalarFieldEnumSchema,VerificationTokenScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const VerificationTokenFindManyArgsSchema: z.ZodType = z.object({ + select: VerificationTokenSelectSchema.optional(), + where: VerificationTokenWhereInputSchema.optional(), + orderBy: z.union([ VerificationTokenOrderByWithRelationInputSchema.array(),VerificationTokenOrderByWithRelationInputSchema ]).optional(), + cursor: VerificationTokenWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ VerificationTokenScalarFieldEnumSchema,VerificationTokenScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const VerificationTokenAggregateArgsSchema: z.ZodType = z.object({ + where: VerificationTokenWhereInputSchema.optional(), + orderBy: z.union([ VerificationTokenOrderByWithRelationInputSchema.array(),VerificationTokenOrderByWithRelationInputSchema ]).optional(), + cursor: VerificationTokenWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), +}).strict() + +export const VerificationTokenGroupByArgsSchema: z.ZodType = z.object({ + where: VerificationTokenWhereInputSchema.optional(), + orderBy: z.union([ VerificationTokenOrderByWithAggregationInputSchema.array(),VerificationTokenOrderByWithAggregationInputSchema ]).optional(), + by: VerificationTokenScalarFieldEnumSchema.array(), + having: VerificationTokenScalarWhereWithAggregatesInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), +}).strict() + +export const VerificationTokenFindUniqueArgsSchema: z.ZodType = z.object({ + select: VerificationTokenSelectSchema.optional(), + where: VerificationTokenWhereUniqueInputSchema, +}).strict() + +export const VerificationTokenFindUniqueOrThrowArgsSchema: z.ZodType = z.object({ + select: VerificationTokenSelectSchema.optional(), + where: VerificationTokenWhereUniqueInputSchema, +}).strict() + +export const GameFindFirstArgsSchema: z.ZodType = z.object({ + select: GameSelectSchema.optional(), + include: GameIncludeSchema.optional(), + where: GameWhereInputSchema.optional(), + orderBy: z.union([ GameOrderByWithRelationInputSchema.array(),GameOrderByWithRelationInputSchema ]).optional(), + cursor: GameWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ GameScalarFieldEnumSchema,GameScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const GameFindFirstOrThrowArgsSchema: z.ZodType = z.object({ + select: GameSelectSchema.optional(), + include: GameIncludeSchema.optional(), + where: GameWhereInputSchema.optional(), + orderBy: z.union([ GameOrderByWithRelationInputSchema.array(),GameOrderByWithRelationInputSchema ]).optional(), + cursor: GameWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ GameScalarFieldEnumSchema,GameScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const GameFindManyArgsSchema: z.ZodType = z.object({ + select: GameSelectSchema.optional(), + include: GameIncludeSchema.optional(), + where: GameWhereInputSchema.optional(), + orderBy: z.union([ GameOrderByWithRelationInputSchema.array(),GameOrderByWithRelationInputSchema ]).optional(), + cursor: GameWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ GameScalarFieldEnumSchema,GameScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const GameAggregateArgsSchema: z.ZodType = z.object({ + where: GameWhereInputSchema.optional(), + orderBy: z.union([ GameOrderByWithRelationInputSchema.array(),GameOrderByWithRelationInputSchema ]).optional(), + cursor: GameWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), +}).strict() + +export const GameGroupByArgsSchema: z.ZodType = z.object({ + where: GameWhereInputSchema.optional(), + orderBy: z.union([ GameOrderByWithAggregationInputSchema.array(),GameOrderByWithAggregationInputSchema ]).optional(), + by: GameScalarFieldEnumSchema.array(), + having: GameScalarWhereWithAggregatesInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), +}).strict() + +export const GameFindUniqueArgsSchema: z.ZodType = z.object({ + select: GameSelectSchema.optional(), + include: GameIncludeSchema.optional(), + where: GameWhereUniqueInputSchema, +}).strict() + +export const GameFindUniqueOrThrowArgsSchema: z.ZodType = z.object({ + select: GameSelectSchema.optional(), + include: GameIncludeSchema.optional(), + where: GameWhereUniqueInputSchema, +}).strict() + +export const GamepinFindFirstArgsSchema: z.ZodType = z.object({ + select: GamepinSelectSchema.optional(), + include: GamepinIncludeSchema.optional(), + where: GamepinWhereInputSchema.optional(), + orderBy: z.union([ GamepinOrderByWithRelationInputSchema.array(),GamepinOrderByWithRelationInputSchema ]).optional(), + cursor: GamepinWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ GamepinScalarFieldEnumSchema,GamepinScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const GamepinFindFirstOrThrowArgsSchema: z.ZodType = z.object({ + select: GamepinSelectSchema.optional(), + include: GamepinIncludeSchema.optional(), + where: GamepinWhereInputSchema.optional(), + orderBy: z.union([ GamepinOrderByWithRelationInputSchema.array(),GamepinOrderByWithRelationInputSchema ]).optional(), + cursor: GamepinWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ GamepinScalarFieldEnumSchema,GamepinScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const GamepinFindManyArgsSchema: z.ZodType = z.object({ + select: GamepinSelectSchema.optional(), + include: GamepinIncludeSchema.optional(), + where: GamepinWhereInputSchema.optional(), + orderBy: z.union([ GamepinOrderByWithRelationInputSchema.array(),GamepinOrderByWithRelationInputSchema ]).optional(), + cursor: GamepinWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ GamepinScalarFieldEnumSchema,GamepinScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const GamepinAggregateArgsSchema: z.ZodType = z.object({ + where: GamepinWhereInputSchema.optional(), + orderBy: z.union([ GamepinOrderByWithRelationInputSchema.array(),GamepinOrderByWithRelationInputSchema ]).optional(), + cursor: GamepinWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), +}).strict() + +export const GamepinGroupByArgsSchema: z.ZodType = z.object({ + where: GamepinWhereInputSchema.optional(), + orderBy: z.union([ GamepinOrderByWithAggregationInputSchema.array(),GamepinOrderByWithAggregationInputSchema ]).optional(), + by: GamepinScalarFieldEnumSchema.array(), + having: GamepinScalarWhereWithAggregatesInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), +}).strict() + +export const GamepinFindUniqueArgsSchema: z.ZodType = z.object({ + select: GamepinSelectSchema.optional(), + include: GamepinIncludeSchema.optional(), + where: GamepinWhereUniqueInputSchema, +}).strict() + +export const GamepinFindUniqueOrThrowArgsSchema: z.ZodType = z.object({ + select: GamepinSelectSchema.optional(), + include: GamepinIncludeSchema.optional(), + where: GamepinWhereUniqueInputSchema, +}).strict() + +export const ShipFindFirstArgsSchema: z.ZodType = z.object({ + select: ShipSelectSchema.optional(), + include: ShipIncludeSchema.optional(), + where: ShipWhereInputSchema.optional(), + orderBy: z.union([ ShipOrderByWithRelationInputSchema.array(),ShipOrderByWithRelationInputSchema ]).optional(), + cursor: ShipWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ ShipScalarFieldEnumSchema,ShipScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const ShipFindFirstOrThrowArgsSchema: z.ZodType = z.object({ + select: ShipSelectSchema.optional(), + include: ShipIncludeSchema.optional(), + where: ShipWhereInputSchema.optional(), + orderBy: z.union([ ShipOrderByWithRelationInputSchema.array(),ShipOrderByWithRelationInputSchema ]).optional(), + cursor: ShipWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ ShipScalarFieldEnumSchema,ShipScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const ShipFindManyArgsSchema: z.ZodType = z.object({ + select: ShipSelectSchema.optional(), + include: ShipIncludeSchema.optional(), + where: ShipWhereInputSchema.optional(), + orderBy: z.union([ ShipOrderByWithRelationInputSchema.array(),ShipOrderByWithRelationInputSchema ]).optional(), + cursor: ShipWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ ShipScalarFieldEnumSchema,ShipScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const ShipAggregateArgsSchema: z.ZodType = z.object({ + where: ShipWhereInputSchema.optional(), + orderBy: z.union([ ShipOrderByWithRelationInputSchema.array(),ShipOrderByWithRelationInputSchema ]).optional(), + cursor: ShipWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), +}).strict() + +export const ShipGroupByArgsSchema: z.ZodType = z.object({ + where: ShipWhereInputSchema.optional(), + orderBy: z.union([ ShipOrderByWithAggregationInputSchema.array(),ShipOrderByWithAggregationInputSchema ]).optional(), + by: ShipScalarFieldEnumSchema.array(), + having: ShipScalarWhereWithAggregatesInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), +}).strict() + +export const ShipFindUniqueArgsSchema: z.ZodType = z.object({ + select: ShipSelectSchema.optional(), + include: ShipIncludeSchema.optional(), + where: ShipWhereUniqueInputSchema, +}).strict() + +export const ShipFindUniqueOrThrowArgsSchema: z.ZodType = z.object({ + select: ShipSelectSchema.optional(), + include: ShipIncludeSchema.optional(), + where: ShipWhereUniqueInputSchema, +}).strict() + +export const HitFindFirstArgsSchema: z.ZodType = z.object({ + select: HitSelectSchema.optional(), + include: HitIncludeSchema.optional(), + where: HitWhereInputSchema.optional(), + orderBy: z.union([ HitOrderByWithRelationInputSchema.array(),HitOrderByWithRelationInputSchema ]).optional(), + cursor: HitWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ HitScalarFieldEnumSchema,HitScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const HitFindFirstOrThrowArgsSchema: z.ZodType = z.object({ + select: HitSelectSchema.optional(), + include: HitIncludeSchema.optional(), + where: HitWhereInputSchema.optional(), + orderBy: z.union([ HitOrderByWithRelationInputSchema.array(),HitOrderByWithRelationInputSchema ]).optional(), + cursor: HitWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ HitScalarFieldEnumSchema,HitScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const HitFindManyArgsSchema: z.ZodType = z.object({ + select: HitSelectSchema.optional(), + include: HitIncludeSchema.optional(), + where: HitWhereInputSchema.optional(), + orderBy: z.union([ HitOrderByWithRelationInputSchema.array(),HitOrderByWithRelationInputSchema ]).optional(), + cursor: HitWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ HitScalarFieldEnumSchema,HitScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const HitAggregateArgsSchema: z.ZodType = z.object({ + where: HitWhereInputSchema.optional(), + orderBy: z.union([ HitOrderByWithRelationInputSchema.array(),HitOrderByWithRelationInputSchema ]).optional(), + cursor: HitWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), +}).strict() + +export const HitGroupByArgsSchema: z.ZodType = z.object({ + where: HitWhereInputSchema.optional(), + orderBy: z.union([ HitOrderByWithAggregationInputSchema.array(),HitOrderByWithAggregationInputSchema ]).optional(), + by: HitScalarFieldEnumSchema.array(), + having: HitScalarWhereWithAggregatesInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), +}).strict() + +export const HitFindUniqueArgsSchema: z.ZodType = z.object({ + select: HitSelectSchema.optional(), + include: HitIncludeSchema.optional(), + where: HitWhereUniqueInputSchema, +}).strict() + +export const HitFindUniqueOrThrowArgsSchema: z.ZodType = z.object({ + select: HitSelectSchema.optional(), + include: HitIncludeSchema.optional(), + where: HitWhereUniqueInputSchema, +}).strict() + +export const User_GameFindFirstArgsSchema: z.ZodType = z.object({ + select: User_GameSelectSchema.optional(), + include: User_GameIncludeSchema.optional(), + where: User_GameWhereInputSchema.optional(), + orderBy: z.union([ User_GameOrderByWithRelationInputSchema.array(),User_GameOrderByWithRelationInputSchema ]).optional(), + cursor: User_GameWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ User_GameScalarFieldEnumSchema,User_GameScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const User_GameFindFirstOrThrowArgsSchema: z.ZodType = z.object({ + select: User_GameSelectSchema.optional(), + include: User_GameIncludeSchema.optional(), + where: User_GameWhereInputSchema.optional(), + orderBy: z.union([ User_GameOrderByWithRelationInputSchema.array(),User_GameOrderByWithRelationInputSchema ]).optional(), + cursor: User_GameWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ User_GameScalarFieldEnumSchema,User_GameScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const User_GameFindManyArgsSchema: z.ZodType = z.object({ + select: User_GameSelectSchema.optional(), + include: User_GameIncludeSchema.optional(), + where: User_GameWhereInputSchema.optional(), + orderBy: z.union([ User_GameOrderByWithRelationInputSchema.array(),User_GameOrderByWithRelationInputSchema ]).optional(), + cursor: User_GameWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ User_GameScalarFieldEnumSchema,User_GameScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const User_GameAggregateArgsSchema: z.ZodType = z.object({ + where: User_GameWhereInputSchema.optional(), + orderBy: z.union([ User_GameOrderByWithRelationInputSchema.array(),User_GameOrderByWithRelationInputSchema ]).optional(), + cursor: User_GameWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), +}).strict() + +export const User_GameGroupByArgsSchema: z.ZodType = z.object({ + where: User_GameWhereInputSchema.optional(), + orderBy: z.union([ User_GameOrderByWithAggregationInputSchema.array(),User_GameOrderByWithAggregationInputSchema ]).optional(), + by: User_GameScalarFieldEnumSchema.array(), + having: User_GameScalarWhereWithAggregatesInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), +}).strict() + +export const User_GameFindUniqueArgsSchema: z.ZodType = z.object({ + select: User_GameSelectSchema.optional(), + include: User_GameIncludeSchema.optional(), + where: User_GameWhereUniqueInputSchema, +}).strict() + +export const User_GameFindUniqueOrThrowArgsSchema: z.ZodType = z.object({ + select: User_GameSelectSchema.optional(), + include: User_GameIncludeSchema.optional(), + where: User_GameWhereUniqueInputSchema, +}).strict() + +export const MoveFindFirstArgsSchema: z.ZodType = z.object({ + select: MoveSelectSchema.optional(), + include: MoveIncludeSchema.optional(), + where: MoveWhereInputSchema.optional(), + orderBy: z.union([ MoveOrderByWithRelationInputSchema.array(),MoveOrderByWithRelationInputSchema ]).optional(), + cursor: MoveWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ MoveScalarFieldEnumSchema,MoveScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const MoveFindFirstOrThrowArgsSchema: z.ZodType = z.object({ + select: MoveSelectSchema.optional(), + include: MoveIncludeSchema.optional(), + where: MoveWhereInputSchema.optional(), + orderBy: z.union([ MoveOrderByWithRelationInputSchema.array(),MoveOrderByWithRelationInputSchema ]).optional(), + cursor: MoveWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ MoveScalarFieldEnumSchema,MoveScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const MoveFindManyArgsSchema: z.ZodType = z.object({ + select: MoveSelectSchema.optional(), + include: MoveIncludeSchema.optional(), + where: MoveWhereInputSchema.optional(), + orderBy: z.union([ MoveOrderByWithRelationInputSchema.array(),MoveOrderByWithRelationInputSchema ]).optional(), + cursor: MoveWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ MoveScalarFieldEnumSchema,MoveScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const MoveAggregateArgsSchema: z.ZodType = z.object({ + where: MoveWhereInputSchema.optional(), + orderBy: z.union([ MoveOrderByWithRelationInputSchema.array(),MoveOrderByWithRelationInputSchema ]).optional(), + cursor: MoveWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), +}).strict() + +export const MoveGroupByArgsSchema: z.ZodType = z.object({ + where: MoveWhereInputSchema.optional(), + orderBy: z.union([ MoveOrderByWithAggregationInputSchema.array(),MoveOrderByWithAggregationInputSchema ]).optional(), + by: MoveScalarFieldEnumSchema.array(), + having: MoveScalarWhereWithAggregatesInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), +}).strict() + +export const MoveFindUniqueArgsSchema: z.ZodType = z.object({ + select: MoveSelectSchema.optional(), + include: MoveIncludeSchema.optional(), + where: MoveWhereUniqueInputSchema, +}).strict() + +export const MoveFindUniqueOrThrowArgsSchema: z.ZodType = z.object({ + select: MoveSelectSchema.optional(), + include: MoveIncludeSchema.optional(), + where: MoveWhereUniqueInputSchema, +}).strict() + +export const ChatFindFirstArgsSchema: z.ZodType = z.object({ + select: ChatSelectSchema.optional(), + include: ChatIncludeSchema.optional(), + where: ChatWhereInputSchema.optional(), + orderBy: z.union([ ChatOrderByWithRelationInputSchema.array(),ChatOrderByWithRelationInputSchema ]).optional(), + cursor: ChatWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ ChatScalarFieldEnumSchema,ChatScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const ChatFindFirstOrThrowArgsSchema: z.ZodType = z.object({ + select: ChatSelectSchema.optional(), + include: ChatIncludeSchema.optional(), + where: ChatWhereInputSchema.optional(), + orderBy: z.union([ ChatOrderByWithRelationInputSchema.array(),ChatOrderByWithRelationInputSchema ]).optional(), + cursor: ChatWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ ChatScalarFieldEnumSchema,ChatScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const ChatFindManyArgsSchema: z.ZodType = z.object({ + select: ChatSelectSchema.optional(), + include: ChatIncludeSchema.optional(), + where: ChatWhereInputSchema.optional(), + orderBy: z.union([ ChatOrderByWithRelationInputSchema.array(),ChatOrderByWithRelationInputSchema ]).optional(), + cursor: ChatWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), + distinct: z.union([ ChatScalarFieldEnumSchema,ChatScalarFieldEnumSchema.array() ]).optional(), +}).strict() + +export const ChatAggregateArgsSchema: z.ZodType = z.object({ + where: ChatWhereInputSchema.optional(), + orderBy: z.union([ ChatOrderByWithRelationInputSchema.array(),ChatOrderByWithRelationInputSchema ]).optional(), + cursor: ChatWhereUniqueInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), +}).strict() + +export const ChatGroupByArgsSchema: z.ZodType = z.object({ + where: ChatWhereInputSchema.optional(), + orderBy: z.union([ ChatOrderByWithAggregationInputSchema.array(),ChatOrderByWithAggregationInputSchema ]).optional(), + by: ChatScalarFieldEnumSchema.array(), + having: ChatScalarWhereWithAggregatesInputSchema.optional(), + take: z.number().optional(), + skip: z.number().optional(), +}).strict() + +export const ChatFindUniqueArgsSchema: z.ZodType = z.object({ + select: ChatSelectSchema.optional(), + include: ChatIncludeSchema.optional(), + where: ChatWhereUniqueInputSchema, +}).strict() + +export const ChatFindUniqueOrThrowArgsSchema: z.ZodType = z.object({ + select: ChatSelectSchema.optional(), + include: ChatIncludeSchema.optional(), + where: ChatWhereUniqueInputSchema, +}).strict() + +export const AccountCreateArgsSchema: z.ZodType = z.object({ + select: AccountSelectSchema.optional(), + include: AccountIncludeSchema.optional(), + data: z.union([ AccountCreateInputSchema,AccountUncheckedCreateInputSchema ]), +}).strict() + +export const AccountUpsertArgsSchema: z.ZodType = z.object({ + select: AccountSelectSchema.optional(), + include: AccountIncludeSchema.optional(), + where: AccountWhereUniqueInputSchema, + create: z.union([ AccountCreateInputSchema,AccountUncheckedCreateInputSchema ]), + update: z.union([ AccountUpdateInputSchema,AccountUncheckedUpdateInputSchema ]), +}).strict() + +export const AccountCreateManyArgsSchema: z.ZodType = z.object({ + data: z.union([ AccountCreateManyInputSchema,AccountCreateManyInputSchema.array() ]), + skipDuplicates: z.boolean().optional(), +}).strict() + +export const AccountDeleteArgsSchema: z.ZodType = z.object({ + select: AccountSelectSchema.optional(), + include: AccountIncludeSchema.optional(), + where: AccountWhereUniqueInputSchema, +}).strict() + +export const AccountUpdateArgsSchema: z.ZodType = z.object({ + select: AccountSelectSchema.optional(), + include: AccountIncludeSchema.optional(), + data: z.union([ AccountUpdateInputSchema,AccountUncheckedUpdateInputSchema ]), + where: AccountWhereUniqueInputSchema, +}).strict() + +export const AccountUpdateManyArgsSchema: z.ZodType = z.object({ + data: z.union([ AccountUpdateManyMutationInputSchema,AccountUncheckedUpdateManyInputSchema ]), + where: AccountWhereInputSchema.optional(), +}).strict() + +export const AccountDeleteManyArgsSchema: z.ZodType = z.object({ + where: AccountWhereInputSchema.optional(), +}).strict() + +export const SessionCreateArgsSchema: z.ZodType = z.object({ + select: SessionSelectSchema.optional(), + include: SessionIncludeSchema.optional(), + data: z.union([ SessionCreateInputSchema,SessionUncheckedCreateInputSchema ]), +}).strict() + +export const SessionUpsertArgsSchema: z.ZodType = z.object({ + select: SessionSelectSchema.optional(), + include: SessionIncludeSchema.optional(), + where: SessionWhereUniqueInputSchema, + create: z.union([ SessionCreateInputSchema,SessionUncheckedCreateInputSchema ]), + update: z.union([ SessionUpdateInputSchema,SessionUncheckedUpdateInputSchema ]), +}).strict() + +export const SessionCreateManyArgsSchema: z.ZodType = z.object({ + data: z.union([ SessionCreateManyInputSchema,SessionCreateManyInputSchema.array() ]), + skipDuplicates: z.boolean().optional(), +}).strict() + +export const SessionDeleteArgsSchema: z.ZodType = z.object({ + select: SessionSelectSchema.optional(), + include: SessionIncludeSchema.optional(), + where: SessionWhereUniqueInputSchema, +}).strict() + +export const SessionUpdateArgsSchema: z.ZodType = z.object({ + select: SessionSelectSchema.optional(), + include: SessionIncludeSchema.optional(), + data: z.union([ SessionUpdateInputSchema,SessionUncheckedUpdateInputSchema ]), + where: SessionWhereUniqueInputSchema, +}).strict() + +export const SessionUpdateManyArgsSchema: z.ZodType = z.object({ + data: z.union([ SessionUpdateManyMutationInputSchema,SessionUncheckedUpdateManyInputSchema ]), + where: SessionWhereInputSchema.optional(), +}).strict() + +export const SessionDeleteManyArgsSchema: z.ZodType = z.object({ + where: SessionWhereInputSchema.optional(), +}).strict() + +export const UserCreateArgsSchema: z.ZodType = z.object({ + select: UserSelectSchema.optional(), + include: UserIncludeSchema.optional(), + data: z.union([ UserCreateInputSchema,UserUncheckedCreateInputSchema ]), +}).strict() + +export const UserUpsertArgsSchema: z.ZodType = z.object({ + select: UserSelectSchema.optional(), + include: UserIncludeSchema.optional(), + where: UserWhereUniqueInputSchema, + create: z.union([ UserCreateInputSchema,UserUncheckedCreateInputSchema ]), + update: z.union([ UserUpdateInputSchema,UserUncheckedUpdateInputSchema ]), +}).strict() + +export const UserCreateManyArgsSchema: z.ZodType = z.object({ + data: z.union([ UserCreateManyInputSchema,UserCreateManyInputSchema.array() ]), + skipDuplicates: z.boolean().optional(), +}).strict() + +export const UserDeleteArgsSchema: z.ZodType = z.object({ + select: UserSelectSchema.optional(), + include: UserIncludeSchema.optional(), + where: UserWhereUniqueInputSchema, +}).strict() + +export const UserUpdateArgsSchema: z.ZodType = z.object({ + select: UserSelectSchema.optional(), + include: UserIncludeSchema.optional(), + data: z.union([ UserUpdateInputSchema,UserUncheckedUpdateInputSchema ]), + where: UserWhereUniqueInputSchema, +}).strict() + +export const UserUpdateManyArgsSchema: z.ZodType = z.object({ + data: z.union([ UserUpdateManyMutationInputSchema,UserUncheckedUpdateManyInputSchema ]), + where: UserWhereInputSchema.optional(), +}).strict() + +export const UserDeleteManyArgsSchema: z.ZodType = z.object({ + where: UserWhereInputSchema.optional(), +}).strict() + +export const VerificationTokenCreateArgsSchema: z.ZodType = z.object({ + select: VerificationTokenSelectSchema.optional(), + data: z.union([ VerificationTokenCreateInputSchema,VerificationTokenUncheckedCreateInputSchema ]), +}).strict() + +export const VerificationTokenUpsertArgsSchema: z.ZodType = z.object({ + select: VerificationTokenSelectSchema.optional(), + where: VerificationTokenWhereUniqueInputSchema, + create: z.union([ VerificationTokenCreateInputSchema,VerificationTokenUncheckedCreateInputSchema ]), + update: z.union([ VerificationTokenUpdateInputSchema,VerificationTokenUncheckedUpdateInputSchema ]), +}).strict() + +export const VerificationTokenCreateManyArgsSchema: z.ZodType = z.object({ + data: z.union([ VerificationTokenCreateManyInputSchema,VerificationTokenCreateManyInputSchema.array() ]), + skipDuplicates: z.boolean().optional(), +}).strict() + +export const VerificationTokenDeleteArgsSchema: z.ZodType = z.object({ + select: VerificationTokenSelectSchema.optional(), + where: VerificationTokenWhereUniqueInputSchema, +}).strict() + +export const VerificationTokenUpdateArgsSchema: z.ZodType = z.object({ + select: VerificationTokenSelectSchema.optional(), + data: z.union([ VerificationTokenUpdateInputSchema,VerificationTokenUncheckedUpdateInputSchema ]), + where: VerificationTokenWhereUniqueInputSchema, +}).strict() + +export const VerificationTokenUpdateManyArgsSchema: z.ZodType = z.object({ + data: z.union([ VerificationTokenUpdateManyMutationInputSchema,VerificationTokenUncheckedUpdateManyInputSchema ]), + where: VerificationTokenWhereInputSchema.optional(), +}).strict() + +export const VerificationTokenDeleteManyArgsSchema: z.ZodType = z.object({ + where: VerificationTokenWhereInputSchema.optional(), +}).strict() + +export const GameCreateArgsSchema: z.ZodType = z.object({ + select: GameSelectSchema.optional(), + include: GameIncludeSchema.optional(), + data: z.union([ GameCreateInputSchema,GameUncheckedCreateInputSchema ]), +}).strict() + +export const GameUpsertArgsSchema: z.ZodType = z.object({ + select: GameSelectSchema.optional(), + include: GameIncludeSchema.optional(), + where: GameWhereUniqueInputSchema, + create: z.union([ GameCreateInputSchema,GameUncheckedCreateInputSchema ]), + update: z.union([ GameUpdateInputSchema,GameUncheckedUpdateInputSchema ]), +}).strict() + +export const GameCreateManyArgsSchema: z.ZodType = z.object({ + data: z.union([ GameCreateManyInputSchema,GameCreateManyInputSchema.array() ]), + skipDuplicates: z.boolean().optional(), +}).strict() + +export const GameDeleteArgsSchema: z.ZodType = z.object({ + select: GameSelectSchema.optional(), + include: GameIncludeSchema.optional(), + where: GameWhereUniqueInputSchema, +}).strict() + +export const GameUpdateArgsSchema: z.ZodType = z.object({ + select: GameSelectSchema.optional(), + include: GameIncludeSchema.optional(), + data: z.union([ GameUpdateInputSchema,GameUncheckedUpdateInputSchema ]), + where: GameWhereUniqueInputSchema, +}).strict() + +export const GameUpdateManyArgsSchema: z.ZodType = z.object({ + data: z.union([ GameUpdateManyMutationInputSchema,GameUncheckedUpdateManyInputSchema ]), + where: GameWhereInputSchema.optional(), +}).strict() + +export const GameDeleteManyArgsSchema: z.ZodType = z.object({ + where: GameWhereInputSchema.optional(), +}).strict() + +export const GamepinCreateArgsSchema: z.ZodType = z.object({ + select: GamepinSelectSchema.optional(), + include: GamepinIncludeSchema.optional(), + data: z.union([ GamepinCreateInputSchema,GamepinUncheckedCreateInputSchema ]), +}).strict() + +export const GamepinUpsertArgsSchema: z.ZodType = z.object({ + select: GamepinSelectSchema.optional(), + include: GamepinIncludeSchema.optional(), + where: GamepinWhereUniqueInputSchema, + create: z.union([ GamepinCreateInputSchema,GamepinUncheckedCreateInputSchema ]), + update: z.union([ GamepinUpdateInputSchema,GamepinUncheckedUpdateInputSchema ]), +}).strict() + +export const GamepinCreateManyArgsSchema: z.ZodType = z.object({ + data: z.union([ GamepinCreateManyInputSchema,GamepinCreateManyInputSchema.array() ]), + skipDuplicates: z.boolean().optional(), +}).strict() + +export const GamepinDeleteArgsSchema: z.ZodType = z.object({ + select: GamepinSelectSchema.optional(), + include: GamepinIncludeSchema.optional(), + where: GamepinWhereUniqueInputSchema, +}).strict() + +export const GamepinUpdateArgsSchema: z.ZodType = z.object({ + select: GamepinSelectSchema.optional(), + include: GamepinIncludeSchema.optional(), + data: z.union([ GamepinUpdateInputSchema,GamepinUncheckedUpdateInputSchema ]), + where: GamepinWhereUniqueInputSchema, +}).strict() + +export const GamepinUpdateManyArgsSchema: z.ZodType = z.object({ + data: z.union([ GamepinUpdateManyMutationInputSchema,GamepinUncheckedUpdateManyInputSchema ]), + where: GamepinWhereInputSchema.optional(), +}).strict() + +export const GamepinDeleteManyArgsSchema: z.ZodType = z.object({ + where: GamepinWhereInputSchema.optional(), +}).strict() + +export const ShipCreateArgsSchema: z.ZodType = z.object({ + select: ShipSelectSchema.optional(), + include: ShipIncludeSchema.optional(), + data: z.union([ ShipCreateInputSchema,ShipUncheckedCreateInputSchema ]), +}).strict() + +export const ShipUpsertArgsSchema: z.ZodType = z.object({ + select: ShipSelectSchema.optional(), + include: ShipIncludeSchema.optional(), + where: ShipWhereUniqueInputSchema, + create: z.union([ ShipCreateInputSchema,ShipUncheckedCreateInputSchema ]), + update: z.union([ ShipUpdateInputSchema,ShipUncheckedUpdateInputSchema ]), +}).strict() + +export const ShipCreateManyArgsSchema: z.ZodType = z.object({ + data: z.union([ ShipCreateManyInputSchema,ShipCreateManyInputSchema.array() ]), + skipDuplicates: z.boolean().optional(), +}).strict() + +export const ShipDeleteArgsSchema: z.ZodType = z.object({ + select: ShipSelectSchema.optional(), + include: ShipIncludeSchema.optional(), + where: ShipWhereUniqueInputSchema, +}).strict() + +export const ShipUpdateArgsSchema: z.ZodType = z.object({ + select: ShipSelectSchema.optional(), + include: ShipIncludeSchema.optional(), + data: z.union([ ShipUpdateInputSchema,ShipUncheckedUpdateInputSchema ]), + where: ShipWhereUniqueInputSchema, +}).strict() + +export const ShipUpdateManyArgsSchema: z.ZodType = z.object({ + data: z.union([ ShipUpdateManyMutationInputSchema,ShipUncheckedUpdateManyInputSchema ]), + where: ShipWhereInputSchema.optional(), +}).strict() + +export const ShipDeleteManyArgsSchema: z.ZodType = z.object({ + where: ShipWhereInputSchema.optional(), +}).strict() + +export const HitCreateArgsSchema: z.ZodType = z.object({ + select: HitSelectSchema.optional(), + include: HitIncludeSchema.optional(), + data: z.union([ HitCreateInputSchema,HitUncheckedCreateInputSchema ]), +}).strict() + +export const HitUpsertArgsSchema: z.ZodType = z.object({ + select: HitSelectSchema.optional(), + include: HitIncludeSchema.optional(), + where: HitWhereUniqueInputSchema, + create: z.union([ HitCreateInputSchema,HitUncheckedCreateInputSchema ]), + update: z.union([ HitUpdateInputSchema,HitUncheckedUpdateInputSchema ]), +}).strict() + +export const HitCreateManyArgsSchema: z.ZodType = z.object({ + data: z.union([ HitCreateManyInputSchema,HitCreateManyInputSchema.array() ]), + skipDuplicates: z.boolean().optional(), +}).strict() + +export const HitDeleteArgsSchema: z.ZodType = z.object({ + select: HitSelectSchema.optional(), + include: HitIncludeSchema.optional(), + where: HitWhereUniqueInputSchema, +}).strict() + +export const HitUpdateArgsSchema: z.ZodType = z.object({ + select: HitSelectSchema.optional(), + include: HitIncludeSchema.optional(), + data: z.union([ HitUpdateInputSchema,HitUncheckedUpdateInputSchema ]), + where: HitWhereUniqueInputSchema, +}).strict() + +export const HitUpdateManyArgsSchema: z.ZodType = z.object({ + data: z.union([ HitUpdateManyMutationInputSchema,HitUncheckedUpdateManyInputSchema ]), + where: HitWhereInputSchema.optional(), +}).strict() + +export const HitDeleteManyArgsSchema: z.ZodType = z.object({ + where: HitWhereInputSchema.optional(), +}).strict() + +export const User_GameCreateArgsSchema: z.ZodType = z.object({ + select: User_GameSelectSchema.optional(), + include: User_GameIncludeSchema.optional(), + data: z.union([ User_GameCreateInputSchema,User_GameUncheckedCreateInputSchema ]), +}).strict() + +export const User_GameUpsertArgsSchema: z.ZodType = z.object({ + select: User_GameSelectSchema.optional(), + include: User_GameIncludeSchema.optional(), + where: User_GameWhereUniqueInputSchema, + create: z.union([ User_GameCreateInputSchema,User_GameUncheckedCreateInputSchema ]), + update: z.union([ User_GameUpdateInputSchema,User_GameUncheckedUpdateInputSchema ]), +}).strict() + +export const User_GameCreateManyArgsSchema: z.ZodType = z.object({ + data: z.union([ User_GameCreateManyInputSchema,User_GameCreateManyInputSchema.array() ]), + skipDuplicates: z.boolean().optional(), +}).strict() + +export const User_GameDeleteArgsSchema: z.ZodType = z.object({ + select: User_GameSelectSchema.optional(), + include: User_GameIncludeSchema.optional(), + where: User_GameWhereUniqueInputSchema, +}).strict() + +export const User_GameUpdateArgsSchema: z.ZodType = z.object({ + select: User_GameSelectSchema.optional(), + include: User_GameIncludeSchema.optional(), + data: z.union([ User_GameUpdateInputSchema,User_GameUncheckedUpdateInputSchema ]), + where: User_GameWhereUniqueInputSchema, +}).strict() + +export const User_GameUpdateManyArgsSchema: z.ZodType = z.object({ + data: z.union([ User_GameUpdateManyMutationInputSchema,User_GameUncheckedUpdateManyInputSchema ]), + where: User_GameWhereInputSchema.optional(), +}).strict() + +export const User_GameDeleteManyArgsSchema: z.ZodType = z.object({ + where: User_GameWhereInputSchema.optional(), +}).strict() + +export const MoveCreateArgsSchema: z.ZodType = z.object({ + select: MoveSelectSchema.optional(), + include: MoveIncludeSchema.optional(), + data: z.union([ MoveCreateInputSchema,MoveUncheckedCreateInputSchema ]), +}).strict() + +export const MoveUpsertArgsSchema: z.ZodType = z.object({ + select: MoveSelectSchema.optional(), + include: MoveIncludeSchema.optional(), + where: MoveWhereUniqueInputSchema, + create: z.union([ MoveCreateInputSchema,MoveUncheckedCreateInputSchema ]), + update: z.union([ MoveUpdateInputSchema,MoveUncheckedUpdateInputSchema ]), +}).strict() + +export const MoveCreateManyArgsSchema: z.ZodType = z.object({ + data: z.union([ MoveCreateManyInputSchema,MoveCreateManyInputSchema.array() ]), + skipDuplicates: z.boolean().optional(), +}).strict() + +export const MoveDeleteArgsSchema: z.ZodType = z.object({ + select: MoveSelectSchema.optional(), + include: MoveIncludeSchema.optional(), + where: MoveWhereUniqueInputSchema, +}).strict() + +export const MoveUpdateArgsSchema: z.ZodType = z.object({ + select: MoveSelectSchema.optional(), + include: MoveIncludeSchema.optional(), + data: z.union([ MoveUpdateInputSchema,MoveUncheckedUpdateInputSchema ]), + where: MoveWhereUniqueInputSchema, +}).strict() + +export const MoveUpdateManyArgsSchema: z.ZodType = z.object({ + data: z.union([ MoveUpdateManyMutationInputSchema,MoveUncheckedUpdateManyInputSchema ]), + where: MoveWhereInputSchema.optional(), +}).strict() + +export const MoveDeleteManyArgsSchema: z.ZodType = z.object({ + where: MoveWhereInputSchema.optional(), +}).strict() + +export const ChatCreateArgsSchema: z.ZodType = z.object({ + select: ChatSelectSchema.optional(), + include: ChatIncludeSchema.optional(), + data: z.union([ ChatCreateInputSchema,ChatUncheckedCreateInputSchema ]), +}).strict() + +export const ChatUpsertArgsSchema: z.ZodType = z.object({ + select: ChatSelectSchema.optional(), + include: ChatIncludeSchema.optional(), + where: ChatWhereUniqueInputSchema, + create: z.union([ ChatCreateInputSchema,ChatUncheckedCreateInputSchema ]), + update: z.union([ ChatUpdateInputSchema,ChatUncheckedUpdateInputSchema ]), +}).strict() + +export const ChatCreateManyArgsSchema: z.ZodType = z.object({ + data: z.union([ ChatCreateManyInputSchema,ChatCreateManyInputSchema.array() ]), + skipDuplicates: z.boolean().optional(), +}).strict() + +export const ChatDeleteArgsSchema: z.ZodType = z.object({ + select: ChatSelectSchema.optional(), + include: ChatIncludeSchema.optional(), + where: ChatWhereUniqueInputSchema, +}).strict() + +export const ChatUpdateArgsSchema: z.ZodType = z.object({ + select: ChatSelectSchema.optional(), + include: ChatIncludeSchema.optional(), + data: z.union([ ChatUpdateInputSchema,ChatUncheckedUpdateInputSchema ]), + where: ChatWhereUniqueInputSchema, +}).strict() + +export const ChatUpdateManyArgsSchema: z.ZodType = z.object({ + data: z.union([ ChatUpdateManyMutationInputSchema,ChatUncheckedUpdateManyInputSchema ]), + where: ChatWhereInputSchema.optional(), +}).strict() + +export const ChatDeleteManyArgsSchema: z.ZodType = z.object({ + where: ChatWhereInputSchema.optional(), +}).strict() \ No newline at end of file diff --git a/leaky-ships/prisma/schema.prisma b/leaky-ships/prisma/schema.prisma index 8d033a5..9cde5db 100644 --- a/leaky-ships/prisma/schema.prisma +++ b/leaky-ships/prisma/schema.prisma @@ -50,13 +50,13 @@ model User { email String? @unique emailVerified DateTime? @map("email_verified") image String? - createdAt DateTime @default(now()) @map("created_at") - updatedAt DateTime @updatedAt @map("updated_at") + createdAt DateTime @default(now()) @map(name: "created_at") + updatedAt DateTime @updatedAt @map(name: "updated_at") games User_Game[] accounts Account[] sessions Session[] - @@map("users") + @@map(name: "users") } model VerificationToken { diff --git a/leaky-ships/public/fonts/cpfont_ote/CP_Font.otf b/leaky-ships/public/fonts/cpfont_ote/CP Font.otf similarity index 100% rename from leaky-ships/public/fonts/cpfont_ote/CP_Font.otf rename to leaky-ships/public/fonts/cpfont_ote/CP Font.otf diff --git a/leaky-ships/public/index2.html b/leaky-ships/public/index.html similarity index 100% rename from leaky-ships/public/index2.html rename to leaky-ships/public/index.html diff --git a/leaky-ships/src/app.tsx b/leaky-ships/src/app.tsx deleted file mode 100644 index 6a2aa6a..0000000 --- a/leaky-ships/src/app.tsx +++ /dev/null @@ -1,39 +0,0 @@ -// @refresh reload -import "@fortawesome/fontawesome-svg-core/styles.css" -import { Link, Meta, MetaProvider, Title } from "@solidjs/meta" -import { Router } from "@solidjs/router" -import { FileRoutes } from "@solidjs/start" -import { Suspense } from "solid-js" -import "./styles/App.scss" -import "./styles/globals.scss" -import "./styles/grid.scss" -import "./styles/grid2.scss" -import "./styles/root.css" - -export default function App() { - return ( - ( - - Leaky Ships - - - - - - - - - - - {props.children} - - )} - > - - - ) -} diff --git a/leaky-ships/src/components/FontAwesomeIcon.tsx b/leaky-ships/src/components/FontAwesomeIcon.tsx deleted file mode 100644 index f97acfd..0000000 --- a/leaky-ships/src/components/FontAwesomeIcon.tsx +++ /dev/null @@ -1,151 +0,0 @@ -import { - FaSymbol, - FlipProp, - IconDefinition, - IconProp, - PullProp, - RotateProp, - SizeProp, - Transform, -} from "@fortawesome/fontawesome-svg-core" -import { Show, type JSX } from "solid-js" - -export interface FontAwesomeIconProps - extends Omit< - JSX.SvgSVGAttributes, - "children" | "mask" | "transform" - > { - icon: IconDefinition - mask?: IconProp - maskId?: string - color?: string - spin?: boolean - spinPulse?: boolean - spinReverse?: boolean - pulse?: boolean - beat?: boolean - fade?: boolean - beatFade?: boolean - bounce?: boolean - shake?: boolean - flash?: boolean - border?: boolean - fixedWidth?: boolean - inverse?: boolean - listItem?: boolean - flip?: FlipProp - size?: SizeProp - pull?: PullProp - rotation?: RotateProp - transform?: string | Transform - symbol?: FaSymbol - style?: JSX.CSSProperties - tabIndex?: number - title?: string - titleId?: string - swapOpacity?: boolean -} - -const idPool = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" -function nextUniqueId() { - let size = 12 - let id = "" - - while (size-- > 0) { - id += idPool[(Math.random() * 62) | 0] - } - - return id -} - -function Path(props: { d: string | string[] }) { - return ( - <> - {typeof props.d === "string" ? ( - - ) : ( - <> - - - - )} - - ) -} - -export function FontAwesomeIcon(props: FontAwesomeIconProps) { - const titleId = () => - props.title - ? "svg-inline--fa-title-".concat(props.titleId || nextUniqueId()) - : undefined - // Get CSS class list from the props object - function attributes() { - const defaultClasses = { - "svg-inline--fa": true, - [`fa-${props.icon.iconName}`]: true, - [props.class ?? ""]: - typeof props.class !== "undefined" && props.class !== null, - ...props.classList, - } - - // map of CSS class names to properties - const faClasses = { - "fa-beat": props.beat, - "fa-fade": props.fade, - "fa-beat-fade": props.beatFade, - "fa-bounce": props.bounce, - "fa-shake": props.shake, - "fa-flash": props.flash, - "fa-spin": props.spin, - "fa-spin-reverse": props.spinReverse, - "fa-spin-pulse": props.spinPulse, - "fa-pulse": props.pulse, - "fa-fw": props.fixedWidth, - "fa-inverse": props.inverse, - "fa-border": props.border, - "fa-li": props.listItem, - "fa-flip": typeof props.flip !== "undefined" && props.flip !== null, - "fa-flip-horizontal": - props.flip === "horizontal" || props.flip === "both", - "fa-flip-vertical": props.flip === "vertical" || props.flip === "both", - [`fa-${props.size}`]: - typeof props.size !== "undefined" && props.size !== null, - [`fa-rotate-${props.rotation}`]: - typeof props.rotation !== "undefined" && props.size !== null, - [`fa-pull-${props.pull}`]: - typeof props.pull !== "undefined" && props.pull !== null, - "fa-swap-opacity": props.swapOpacity, - } - - const attributes = { - focusable: !!props.title, - "aria-hidden": !props.title, - role: "img", - xmlns: "http://www.w3.org/2000/svg", - "aria-labelledby": titleId(), - "data-prefix": props.icon.prefix, - "data-icon": props.icon.iconName, - "data-fa-transform": props.transform, - "data-fa-mask": props.mask, - "data-fa-mask-id": props.maskId, - "data-fa-symbol": props.symbol, - tabIndex: props.tabIndex, - classList: { ...defaultClasses, ...faClasses }, - color: props.color, - style: props.style, - viewBox: `0 0 ${props.icon.icon[0]} ${props.icon.icon[1]}`, - } as const - - // return the complete class list - return attributes - } - - return ( - - - {props.title} - - - - ) -} diff --git a/leaky-ships/src/components/Gamefield/BorderTiles.tsx b/leaky-ships/src/components/Gamefield/BorderTiles.tsx deleted file mode 100644 index 75ed04d..0000000 --- a/leaky-ships/src/components/Gamefield/BorderTiles.tsx +++ /dev/null @@ -1,169 +0,0 @@ -import { For } from "solid-js" -import { - gameProps, - mouseCursor, - removeShip, - setGameProps, - setMouseCursor, - setShips, - setTarget, - targetPreview, -} from "~/hooks/useGameProps" -import { useSession } from "~/hooks/useSession" -import { - borderCN, - compiledHits, - cornerCN, - fieldIndex, - intersectingShip, - isAlreadyHit, - overlapsWithAnyBorder, - shipProps, - targetList, -} from "~/lib/utils/helpers" -import { count } from "./Gamefield" - -type TilesType = { - key: number - isGameTile: boolean - className: string - x: number - y: number -} - -function settingTarget( - isGameTile: boolean, - x: number, - y: number, - index: 0 | 1, - { - activeIndex, - ships, - }: Pick, "activeIndex" | "ships">, -) { - if (gameProps.gameState === "running") { - const list = targetList(targetPreview(), gameProps.mode) - if ( - !isGameTile || - !list.filter( - ({ x, y }) => !isAlreadyHit(x, y, compiledHits(activeIndex())), - ).length - ) - return - if (!overlapsWithAnyBorder(targetPreview(), gameProps.mode)) - setTarget({ - show: true, - x, - y, - orientation: targetPreview().orientation, - }) - } else if ( - gameProps.gameState === "starting" && - targetPreview().show && - !intersectingShip( - ships(), - shipProps(ships(), gameProps.mode, targetPreview()), - ).score - ) { - setMouseCursor((e) => ({ ...e, shouldShow: false })) - setShips( - [...ships(), shipProps(ships(), gameProps.mode, targetPreview())], - index, - ) - } -} -function onClick( - props: TilesType, - { selfIndex, activeIndex, ships }: ReturnType, -) { - const sIndex = selfIndex() - if (!sIndex) return - if (gameProps.gameState === "running") { - settingTarget(props.isGameTile, props.x, props.y, sIndex.i, { - activeIndex, - ships, - }) - } else if (gameProps.gameState === "starting") { - const { index } = intersectingShip(ships(), { - ...mouseCursor(), - size: 1, - variant: 0, - orientation: "h", - }) - if (typeof index === "undefined") - settingTarget(props.isGameTile, props.x, props.y, sIndex.i, { - activeIndex, - ships, - }) - else { - const ship = ships()[index] - setGameProps("mode", ship.size - 2) - removeShip(ship, sIndex.i) - setMouseCursor((e) => ({ ...e, shouldShow: true })) - } - } -} - -function onMouseEnter( - props: TilesType, - { ships }: ReturnType, -) { - setMouseCursor({ - x: props.x, - y: props.y, - shouldShow: - props.isGameTile && - (gameProps.gameState === "starting" - ? intersectingShip( - ships(), - shipProps(ships(), gameProps.mode, { - x: props.x, - y: props.y, - orientation: targetPreview().orientation, - }), - true, - ).score < 2 - : true), - }) -} - -function BorderTiles() { - const sessionProps = useSession() - - const tilesProperties: TilesType[] = [] - - for (let y = 0; y < count + 2; y++) { - for (let x = 0; x < count + 2; x++) { - const key = fieldIndex(count, x, y) - const cornerReslt = cornerCN(count, x, y) - const borderType = cornerReslt ? cornerReslt : borderCN(count, x, y) - const isGameTile = x > 0 && x < count + 1 && y > 0 && y < count + 1 - const classNames = ["border-tile"] - if (borderType) classNames.push("edge", borderType) - if (isGameTile) classNames.push("game-tile") - const className = classNames.join(" ") - tilesProperties.push({ - key, - className, - isGameTile, - x: x + 1, - y: y + 1, - }) - } - } - - return ( - - {(props) => ( -
onClick(props, sessionProps)} - onMouseEnter={() => onMouseEnter(props, sessionProps)} - /> - )} - - ) -} - -export default BorderTiles diff --git a/leaky-ships/src/components/Gamefield/EventBar.tsx b/leaky-ships/src/components/Gamefield/EventBar.tsx deleted file mode 100644 index 5d3f19d..0000000 --- a/leaky-ships/src/components/Gamefield/EventBar.tsx +++ /dev/null @@ -1,369 +0,0 @@ -import { - faSquare2, - faSquare3, - faSquare4, -} from "@fortawesome/pro-regular-svg-icons" -import { - faBroomWide, - faCheck, - faComments, - faEye, - faEyeSlash, - faFlag, - faGlasses, - faLock, - faPalette, - faReply, - faRotate, - faScribble, - faShip, - faSparkles, - faSwords, - faXmark, -} from "@fortawesome/pro-solid-svg-icons" -import { socket } from "~/lib/socket" -import { modes } from "~/lib/utils/helpers" -// import { Icons, toast } from "react-toastify" -import { useNavigate } from "@solidjs/router" -import { For, Show, createEffect } from "solid-js" -import { clearDrawing } from "~/hooks/useDraw" -import { - color, - setEnable, - setShouldHide, - shouldHide, -} from "~/hooks/useDrawProps" -import { - gameProps, - reset, - setGameProps, - setGameSetting, - setIsReadyFor, - setTarget, - setTargetPreview, - target, - users, -} from "~/hooks/useGameProps" -import { useSession } from "~/hooks/useSession" -import { EventBarModes } from "../../interfaces/frontend" -import Item from "./Item" - -function EventBar() { - const { selfIndex, selfIsActiveIndex, selfUser, ships } = useSession() - const navigator = useNavigate() - - const items = (): EventBarModes => ({ - main: [ - { - icon: "burger-menu", - text: "Menu", - callback: () => { - setGameProps("menu", "menu") - }, - }, - { - icon: faSwords, - text: "Attack", - showWhen: () => - gameProps.gameState === "running" && - (selfIsActiveIndex() || gameProps.menu !== "main"), - callback: () => { - setGameProps("menu", "moves") - }, - }, - { - icon: faShip, - text: "Ships", - showWhen: () => gameProps.gameState !== "running", - callback: () => { - setGameProps("menu", "moves") - }, - }, - { - icon: "pen", - text: "Draw", - callback: () => { - setGameProps("menu", "draw") - }, - }, - { - icon: "gear", - text: "Settings", - callback: () => { - setGameProps("menu", "settings") - }, - }, - ], - menu: [ - { - icon: faFlag, - text: "Surrender", - iconColor: "darkred", - callback: () => { - setGameProps("menu", "surrender") - }, - }, - ], - moves: - gameProps.gameState === "running" - ? [ - { - icon: "scope", - text: "Fire missile", - enabled: gameProps.mode === 0, - callback: () => { - setGameProps("mode", 0) - setTarget((t) => ({ ...t, show: false })) - }, - }, - { - icon: "torpedo", - text: "Fire torpedo", - enabled: gameProps.mode === 1 || gameProps.mode === 2, - amount: - 2 - - (selfUser()?.moves.filter( - (e) => e.type === "htorpedo" || e.type === "vtorpedo", - ).length ?? 0), - callback: () => { - setGameProps("mode", 1) - setTarget((t) => ({ ...t, show: false })) - }, - }, - { - icon: "radar", - text: "Radar scan", - enabled: gameProps.mode === 3, - amount: - 1 - - (selfUser()?.moves.filter((e) => e.type === "radar").length ?? - 0), - callback: () => { - setGameProps("mode", 3) - setTarget((t) => ({ ...t, show: false })) - }, - }, - ] - : [ - { - icon: faSquare2, - text: "Minensucher", - amount: 1 - ships().filter((e) => e.size === 2).length, - callback: () => { - if (1 - ships().filter((e) => e.size === 2).length === 0) return - setGameProps("mode", 0) - }, - }, - { - icon: faSquare3, - text: "Kreuzer", - amount: 3 - ships().filter((e) => e.size === 3).length, - callback: () => { - if (3 - ships().filter((e) => e.size === 3).length === 0) return - setGameProps("mode", 1) - }, - }, - { - icon: faSquare4, - text: "Schlachtschiff", - amount: 2 - ships().filter((e) => e.size === 4).length, - callback: () => { - if (2 - ships().filter((e) => e.size === 4).length === 0) return - setGameProps("mode", 2) - }, - }, - { - icon: faRotate, - text: "Rotate", - callback: () => { - setTargetPreview((t) => ({ - ...t, - orientation: t.orientation === "h" ? "v" : "h", - })) - }, - }, - ], - draw: [ - { - icon: faBroomWide, - text: "Clear", - showWhen: selfIsActiveIndex, - callback: () => clearDrawing(selfIndex()), - }, - { - icon: faPalette, - text: "Color", - showWhen: selfIsActiveIndex, - iconColor: color(), - }, - { - icon: shouldHide() ? faEye : faEyeSlash, - text: shouldHide() ? "Show" : "Hide", - callback: () => { - setShouldHide((e) => !e) - }, - }, - ], - settings: [ - { - icon: faGlasses, - text: "Spectators", - disabled: !gameProps.allowSpectators, - callback: setGameSetting({ - allowSpectators: !gameProps.allowSpectators, - }), - }, - { - icon: faSparkles, - text: "Specials", - disabled: !gameProps.allowSpecials, - callback: setGameSetting({ - allowSpecials: !gameProps.allowSpecials, - }), - }, - { - icon: faComments, - text: "Chat", - disabled: !gameProps.allowChat, - callback: setGameSetting({ allowChat: !gameProps.allowChat }), - }, - { - icon: faScribble, - text: "Mark/Draw", - disabled: !gameProps.allowMarkDraw, - callback: setGameSetting({ - allowMarkDraw: !gameProps.allowMarkDraw, - }), - }, - ], - surrender: [ - { - icon: faCheck, - text: "Yes", - iconColor: "green", - callback: async () => { - socket.emit("gameState", "aborted") - navigator("/") - reset() - }, - }, - { - icon: faXmark, - text: "No", - iconColor: "red", - callback: () => { - setGameProps("menu", "main") - }, - }, - ], - }) - - createEffect(() => { - if ( - gameProps.menu !== "moves" || - gameProps.gameState !== "starting" || - gameProps.mode < 0 || - items().moves[gameProps.mode].amount - ) - return - const index = items().moves.findIndex((e) => e.amount) - setGameProps("mode", index) - }) - - createEffect(() => { - setEnable(gameProps.menu === "draw") - }) - - // createEffect(() => { - // if (gameProps.gameState !== "running") return - - // const toastId = "otherPlayer" - // if (selfIsActiveIndex) toast.dismiss(toastId) - // else - // toast.info("Waiting for other player...", { - // toastId, - // position: "top-right", - // icon: Icons.spinner(), - // autoClose: false, - // hideProgressBar: true, - // closeButton: false, - // }) - - // toastId = "connect_error" - // const isActive = toast.isActive(toastId) - // console.log(toastId, isActive) - // if (isActive) - // toast.update(toastId, { - // autoClose: 5000, - // }) - // else - // toast.warn("Spie", { toastId }) - // }) - - return ( -
- - { - setGameProps("menu", "main") - }, - }} - /> - - - {(e) => ( - - - - )} - - - = 0 - : undefined, - enabled: - gameProps.gameState === "running" && - gameProps.mode >= 0 && - target().show, - callback: () => { - const sIndex = selfIndex() - if (!sIndex) return - switch (gameProps.gameState) { - case "starting": - const isReady = !users[sIndex.i]?.isReady - setIsReadyFor({ isReady, i: sIndex.i }) - socket.emit("isReady", isReady) - break - - case "running": - const moves = selfUser()?.moves - const length = moves?.length - const props = { - type: modes[gameProps.mode].type, - x: target().x, - y: target().y, - orientation: target().orientation, - index: length ?? 0, - } - socket.emit("dispatchMove", props) - setTarget((t) => ({ ...t, show: false })) - break - } - }, - }} - /> - -
- ) -} - -export default EventBar diff --git a/leaky-ships/src/components/Gamefield/FogImages.tsx b/leaky-ships/src/components/Gamefield/FogImages.tsx deleted file mode 100644 index 1c55791..0000000 --- a/leaky-ships/src/components/Gamefield/FogImages.tsx +++ /dev/null @@ -1,13 +0,0 @@ -function FogImages() { - return ( - <> - {`fog1.png`} - {`fog1.png`} - {`fog1.png`} - {`fog1.png`} - {`fog4.png`} - - ) -} - -export default FogImages diff --git a/leaky-ships/src/components/Gamefield/Gamefield.tsx b/leaky-ships/src/components/Gamefield/Gamefield.tsx deleted file mode 100644 index 6a0eafb..0000000 --- a/leaky-ships/src/components/Gamefield/Gamefield.tsx +++ /dev/null @@ -1,139 +0,0 @@ -// import Bluetooth from "./Bluetooth" -// import FogImages from "./FogImages" -// import { toast } from "react-toastify" -import { useNavigate } from "@solidjs/router" -import { createEffect, onCleanup } from "solid-js" -import BorderTiles from "~/components/Gamefield/BorderTiles" -import EventBar from "~/components/Gamefield/EventBar" -import HitElems from "~/components/Gamefield/HitElems" -import Targets from "~/components/Gamefield/Targets" -import { DrawingCanvas } from "~/hooks/useDraw" -import { setFrameSize } from "~/hooks/useDrawProps" -import { - full, - gameProps, - mouseCursor, - reset, - setGameProps, - setMouseCursor, - setTargetPreview, - target, - users, -} from "~/hooks/useGameProps" -import { useSession } from "~/hooks/useSession" -import useSocket from "~/hooks/useSocket" -import { socket } from "~/lib/socket" -import { overlapsWithAnyBorder } from "~/lib/utils/helpers" -import Labeling from "./Labeling" -import Ships from "./Ships" - -export const count = 12 - -function Gamefield() { - let frameRef: HTMLDivElement - const { ships } = useSession() - const navigator = useNavigate() - const { isConnected } = useSocket() - - createEffect(() => { - if ( - gameProps.gameState !== "starting" || - !users[0]?.isReady || - !users[1]?.isReady - ) - return - socket.emit("ships", ships()) - socket.emit("gameState", "running") - }) - - createEffect(() => { - if (gameProps.gameId || !isConnected) return - socket.emit("update", full) - }) - - createEffect(() => { - if (gameProps.mode < 0) return - const { x, y, show } = target() - const { shouldShow, ...position } = mouseCursor() - if ( - !shouldShow || - (gameProps.gameState === "running" && - overlapsWithAnyBorder(position, gameProps.mode)) - ) - setTargetPreview((t) => ({ ...t, show: false })) - else { - setTargetPreview((t) => ({ - ...t, - ...position, - show: !show || x !== position.x || y !== position.y, - })) - const handleKeyPress = (event: KeyboardEvent) => { - if (event.key !== "r") return - if (gameProps.gameState === "starting") { - setTargetPreview((t) => ({ - ...t, - orientation: t.orientation === "h" ? "v" : "h", - })) - } - if ( - gameProps.gameState === "running" && - (gameProps.mode === 1 || gameProps.mode === 2) - ) - setGameProps("mode", gameProps.mode === 1 ? 2 : 1) - } - document.addEventListener("keydown", handleKeyPress) - onCleanup(() => { - document.removeEventListener("keydown", handleKeyPress) - }) - } - }) - - createEffect(() => { - if (gameProps.gameState !== "aborted") return - // toast.info("Enemy gave up!") - navigator("/") - reset() - }) - - createEffect(() => { - function handleResize() { - const rect = frameRef.getBoundingClientRect() - setFrameSize({ x: rect.width, y: rect.height }) - } - handleResize() - window.addEventListener("resize", handleResize) - onCleanup(() => removeEventListener("resize", handleResize)) - }) - - return ( -
- {/* */} -
- setMouseCursor((e) => ({ ...e, shouldShow: false })) - } - ref={frameRef!} - > - - - {/* Collumn lettes and row numbers */} - - - - - - - {/* */} - - - - -
- -
- ) -} - -export default Gamefield diff --git a/leaky-ships/src/components/Gamefield/GamefieldPointer.tsx b/leaky-ships/src/components/Gamefield/GamefieldPointer.tsx deleted file mode 100644 index fd102c9..0000000 --- a/leaky-ships/src/components/Gamefield/GamefieldPointer.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { faCrosshairs } from "@fortawesome/pro-solid-svg-icons" -import { faRadar } from "@fortawesome/pro-thin-svg-icons" -import classNames from "classnames" -import {} from "solid-js" -import { FontAwesomeIcon } from "~/components/FontAwesomeIcon" -import { PointerProps } from "../../interfaces/frontend" - -function GamefieldPointer( - props: PointerProps & { - preview?: boolean - }, -) { - const isRadar = () => props.type === "radar" - const style = () => - !(isRadar() && !props.edges.filter((s) => s).length) - ? { "--x": props.x, "--y": props.y } - : { - "--x1": props.x - 1, - "--x2": props.x + 2, - "--y1": props.y - 1, - "--y2": props.y + 2, - } - - return ( -
- -
- ) -} - -export default GamefieldPointer diff --git a/leaky-ships/src/components/Gamefield/HitElems.tsx b/leaky-ships/src/components/Gamefield/HitElems.tsx deleted file mode 100644 index 177a64b..0000000 --- a/leaky-ships/src/components/Gamefield/HitElems.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { faBurst, faXmark } from "@fortawesome/pro-solid-svg-icons" -import { For } from "solid-js" -import { FontAwesomeIcon } from "~/components/FontAwesomeIcon" -import { useSession } from "~/hooks/useSession" -import { compiledHits } from "~/lib/utils/helpers" -import { Hit } from "../../interfaces/frontend" - -function HitElems(props: { hits?: Hit[]; colorOverride?: string }) { - const { activeIndex } = useSession() - const hits = () => props?.hits - const colorOverride = () => props?.colorOverride - - return ( - - {(props) => ( -
- -
- )} -
- ) -} - -export default HitElems diff --git a/leaky-ships/src/components/Gamefield/Item.tsx b/leaky-ships/src/components/Gamefield/Item.tsx deleted file mode 100644 index 99a1a94..0000000 --- a/leaky-ships/src/components/Gamefield/Item.tsx +++ /dev/null @@ -1,63 +0,0 @@ -import classNames from "classnames" -import { BlockPicker } from "solid-color" -import { Show, createSignal } from "solid-js" -import { FontAwesomeIcon } from "~/components/FontAwesomeIcon" -import { color, colors, setColor } from "~/hooks/useDrawProps" -import { ItemProps } from "../../interfaces/frontend" - -function Item(props: ItemProps) { - const isColor = () => props.text === "Color" - const [active, setActive] = createSignal(false) - let cpRef: HTMLDivElement - - return ( -
- -
- setColor(e.hex)} - colors={colors} - triangle="hide" - /> -
-
- - {props.text} -
- ) -} - -export default Item diff --git a/leaky-ships/src/components/Gamefield/Ship.tsx b/leaky-ships/src/components/Gamefield/Ship.tsx deleted file mode 100644 index 30c96d2..0000000 --- a/leaky-ships/src/components/Gamefield/Ship.tsx +++ /dev/null @@ -1,71 +0,0 @@ -import classNames from "classnames" -import { createEffect } from "solid-js" -import { useSession } from "~/hooks/useSession" -import { ShipProps } from "../../interfaces/frontend" - -const sizes: { [n: number]: number } = { - 2: 96, - 3: 144, - 4: 196, -} - -function Ship( - props: ShipProps & { - preview?: boolean - warn?: boolean - color?: string - }, -) { - const { selfIndex } = useSession() - const filename = () => - `ship_${selfIndex()?.i === 1 ? "red" : "blue"}_${props.size}x_${ - props.variant - }.gif` - let canvasRef: HTMLCanvasElement - - createEffect(() => { - const canvas = canvasRef - const ctx = canvas?.getContext("2d") - if (!canvas || !ctx) return - const gif = new Image() - gif.src = "/assets/" + filename() - - // Load the GIF and start rendering - gif.onload = function () { - // Set the canvas size to match the GIF dimensions - canvas.width = props.orientation === "h" ? sizes[props.size] : 48 - canvas.height = props.orientation === "v" ? sizes[props.size] : 48 - - if (props.orientation === "v") - // Rotate the canvas by 90 degrees - ctx.rotate((90 * Math.PI) / 180) - - // Draw the rotated GIF - ctx.drawImage( - gif, - 0, - props.orientation === "h" ? 0 : -48, - sizes[props.size], - 48, - ) - } - }) - - return ( -
- -
- ) -} - -export default Ship diff --git a/leaky-ships/src/components/Gamefield/Ships.tsx b/leaky-ships/src/components/Gamefield/Ships.tsx deleted file mode 100644 index a86fdfd..0000000 --- a/leaky-ships/src/components/Gamefield/Ships.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { For, Show } from "solid-js" -import { gameProps } from "~/hooks/useGameProps" -import { useSession } from "~/hooks/useSession" -import Ship from "./Ship" - -function Ships() { - const { selfIsActiveIndex, selfUser } = useSession() - - return ( - - {(props) => } - - ) -} - -export default Ships diff --git a/leaky-ships/src/components/Gamefield/Targets.tsx b/leaky-ships/src/components/Gamefield/Targets.tsx deleted file mode 100644 index 2283c9b..0000000 --- a/leaky-ships/src/components/Gamefield/Targets.tsx +++ /dev/null @@ -1,81 +0,0 @@ -import { For, Match, Switch } from "solid-js" -import { gameProps, target, targetPreview } from "~/hooks/useGameProps" -import { useSession } from "~/hooks/useSession" -import { - compiledHits, - composeTargetTiles, - intersectingShip, - shipProps, -} from "~/lib/utils/helpers" -import GamefieldPointer from "./GamefieldPointer" -import HitElems from "./HitElems" -import Ship from "./Ship" - -function Targets() { - const { activeIndex, ships } = useSession() - - const ship = () => shipProps(ships(), gameProps.mode, targetPreview()) - const intersectionProps = () => intersectingShip(ships(), ship()) - - return ( - - - - {(props) => } - - - {(props) => } - - - = 0 && - targetPreview().show - } - > - 0} - color={ - intersectionProps().fields.length - ? "red" - : intersectionProps().borders.length - ? "orange" - : undefined - } - /> - ({ - ...e, - i, - hit: true, - }))} - /> - ({ - ...e, - i, - hit: true, - }))} - colorOverride={"orange"} - /> - - - ) -} - -export default Targets diff --git a/leaky-ships/src/components/Grid.tsx b/leaky-ships/src/components/Grid.tsx deleted file mode 100644 index 6372c8b..0000000 --- a/leaky-ships/src/components/Grid.tsx +++ /dev/null @@ -1,99 +0,0 @@ -import classNames from "classnames" -import { For, createEffect, createSignal, onCleanup } from "solid-js" - -function Grid() { - function floorClient(number: number) { - return Math.floor(number / 50) - } - - const [columns, setColumns] = createSignal(0) - const [rows, setRows] = createSignal(0) - const quantity = () => columns() * rows() - const [position, setPosition] = createSignal([0, 0]) - const [active, setActve] = createSignal(false) - const [count, setCount] = createSignal(0) - - createEffect(() => { - function handleResize() { - setColumns(floorClient(document.body.clientWidth)) - setRows(floorClient(document.body.clientHeight)) - } - handleResize() - window.addEventListener("resize", handleResize) - onCleanup(() => removeEventListener("resize", handleResize)) - }) - - function Tile(props: { index: number }) { - const x = () => props.index % columns() - const y = () => Math.floor(props.index / columns()) - const xDiff = () => (x() - position()[0]) / 20 - const yDiff = () => (y() - position()[1]) / 20 - const pos = () => - Math.sqrt(xDiff() * xDiff() + yDiff() * yDiff()).toFixed(2) - - function doEffect(posX: number, posY: number) { - if (active()) return - setPosition([posX, posY]) - setActve(true) - - function xDiff(x: number) { - return (x - posX) / 20 - } - function yDiff(y: number) { - return (y - posY) / 20 - } - function pos(x: number, y: number) { - return Math.sqrt(xDiff(x) * xDiff(x) + yDiff(y) * yDiff(y)) - } - const diagonals = [ - pos(0, 0), - pos(columns(), 0), - pos(0, rows()), - pos(columns(), rows()), - ] - - setTimeout( - () => { - setActve(false) - setCount((e) => e + 1) - }, - Math.max(...diagonals) * 1000 + 300, - ) - } - - return ( -
doEffect(x(), y())} - /> - ) - } - - const colors = [ - "rgb(229, 57, 53)", - "rgb(253, 216, 53)", - "rgb(244, 81, 30)", - "rgb(76, 175, 80)", - "rgb(33, 150, 243)", - "rgb(156, 39, 176)", - ] - - return ( -
- - {(_tile, i) => } - -
- ) -} - -export default Grid diff --git a/leaky-ships/src/components/Grid2.tsx b/leaky-ships/src/components/Grid2.tsx deleted file mode 100644 index 7eaecd5..0000000 --- a/leaky-ships/src/components/Grid2.tsx +++ /dev/null @@ -1,103 +0,0 @@ -import classNames from "classnames" -import { For, createEffect, createSignal, onCleanup } from "solid-js" - -function Grid2() { - function floorClient(number: number) { - return Math.floor(number / 50) - } - - const [columns, setColumns] = createSignal(0) - const [rows, setRows] = createSignal(0) - const quantity = () => columns() * rows() - const [position, setPosition] = createSignal([0, 0]) - const [active, setActve] = createSignal(false) - const [action, setAction] = createSignal(false) - const [count, setCount] = createSignal(0) - - createEffect(() => { - function handleResize() { - setColumns(floorClient(document.body.clientWidth)) - setRows(floorClient(document.body.clientHeight)) - } - handleResize() - window.addEventListener("resize", handleResize) - onCleanup(() => removeEventListener("resize", handleResize)) - }) - - const sentences = [ - "Ethem ...", - "hat ...", - "lange ...", - "Hörner 🐂", - "Grüße von Mallorca 🌊 🦦 ☀️", - ] - - function Tile(props: { index: number }) { - const x = () => props.index % columns() - const y = () => Math.floor(props.index / columns()) - const xDiff = () => (x() - position()[0]) / 20 - const yDiff = () => (y() - position()[1]) / 20 - const pos = () => - Math.sqrt(xDiff() * xDiff() + yDiff() * yDiff()).toFixed(2) - - function doEffect(posX: number, posY: number) { - if (action()) return - setPosition([posX, posY]) - setActve((e) => !e) - setAction(true) - - function xDiff(x: number) { - return (x - posX) / 20 - } - function yDiff(y: number) { - return (y - posY) / 20 - } - function pos(x: number, y: number) { - return Math.sqrt(xDiff(x) * xDiff(x) + yDiff(y) * yDiff(y)) - } - const diagonals = [ - pos(0, 0), - pos(columns(), 0), - pos(0, rows()), - pos(columns(), rows()), - ] - - setTimeout( - () => { - setAction(false) - if (active()) setCount((e) => e + 1) - }, - Math.max(...diagonals) * 1000 + 1000, - ) - } - - return ( -
doEffect(x(), y())} - /> - ) - } - - return ( -
-
-

- {sentences[count() % sentences.length]} -

-
- - {(_tile, i) => } - -
- ) -} - -export default Grid2 diff --git a/leaky-ships/src/components/Lobby/Icon.tsx b/leaky-ships/src/components/Lobby/Icon.tsx deleted file mode 100644 index 0d50a69..0000000 --- a/leaky-ships/src/components/Lobby/Icon.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { JSX } from "solid-js" - -function Icon(props: { - src: string - children: JSX.Element - onClick?: () => void -}) { - return ( - - ) -} - -export default Icon diff --git a/leaky-ships/src/components/Lobby/LobbyFrame.tsx b/leaky-ships/src/components/Lobby/LobbyFrame.tsx deleted file mode 100644 index 87c6d79..0000000 --- a/leaky-ships/src/components/Lobby/LobbyFrame.tsx +++ /dev/null @@ -1,139 +0,0 @@ -import { - faRightFromBracket, - faSpinnerThird, -} from "@fortawesome/pro-solid-svg-icons" -import { useNavigate } from "@solidjs/router" -import { JSX, Show, createEffect, createSignal, onCleanup } from "solid-js" -import { FontAwesomeIcon } from "~/components/FontAwesomeIcon" -import { full, gameProps, leave, reset, users } from "~/hooks/useGameProps" -import { useSession } from "~/hooks/useSession" -import useSocket from "~/hooks/useSocket" -import { socket } from "~/lib/socket" -import Button from "./Button" -import Icon from "./Icon" -import Player from "./Player" - -function WithDots(props: { children: JSX.Element }) { - const [dots, setDots] = createSignal(1) - - createEffect(() => { - const interval = setInterval(() => setDots((e) => (e % 3) + 1), 1000) - onCleanup(() => clearInterval(interval)) - }) - - return ( - <> - {props.children + " "} - {Array.from(Array(dots()), () => ".").join("")} - {Array.from(Array(3 - dots()), () => ( - <>  - ))} - - ) -} - -function LobbyFrame(props: { openSettings: () => void }) { - const { isConnected } = useSocket() - const navigator = useNavigate() - const { session } = useSession() - const [launchTime, setLaunchTime] = createSignal(3) - const launching = () => users[0]?.isReady && users[1]?.isReady - - createEffect(() => { - if (!launching() || launchTime() > 0) return - socket.emit("gameState", "starting") - }) - - createEffect(() => { - if (!launching()) return setLaunchTime(3) - if (launchTime() < 0) return - - const timeout = setTimeout(() => { - setLaunchTime((e) => e - 1) - }, 1000) - - onCleanup(() => clearTimeout(timeout)) - }) - - createEffect(() => { - if (gameProps.gameId || !isConnected) return - socket.emit("update", full) - }) - - createEffect(() => { - if (gameProps.gameState === "unknown" || gameProps.gameState === "lobby") - return - navigator("/gamefield") - }) - - return ( -
-
- Chat -

- - {launchTime() < 0 - ? "Game starts" - : "Game is starting in " + launchTime()} - - } - > - {"Game-PIN: "} - } - > - {gameProps.gamePin ?? "----"} - - -

- - Settings - -
-
- - Warte auf Verbindung -

- } - > - -

VS

- - Warte auf Spieler 2 -

- } - > - -
-
-
-
- -
-
- ) -} - -export default LobbyFrame diff --git a/leaky-ships/src/components/Lobby/Player.tsx b/leaky-ships/src/components/Lobby/Player.tsx deleted file mode 100644 index a5ea923..0000000 --- a/leaky-ships/src/components/Lobby/Player.tsx +++ /dev/null @@ -1,120 +0,0 @@ -import { - faCheck, - faHandPointer, - faHourglass1, - faHourglass2, - faHourglass3, - faHourglassClock, -} from "@fortawesome/pro-solid-svg-icons" -import { faCaretDown } from "@fortawesome/sharp-solid-svg-icons" -import classNames from "classnames" -import { Show, createEffect, createSignal, onCleanup } from "solid-js" -import { FontAwesomeIcon } from "~/components/FontAwesomeIcon" -import { setIsReadyFor, users } from "~/hooks/useGameProps" -import { socket } from "~/lib/socket" -import Button from "./Button" - -function HourGlass() { - const [count, setCount] = createSignal(3) - - createEffect(() => { - const interval = setInterval(() => setCount((e) => (e + 1) % 4), 1000) - onCleanup(() => clearInterval(interval)) - }) - - const icon = () => { - switch (count()) { - case 0: - return faHourglass3 - case 1: - return faHourglass1 - case 2: - return faHourglass2 - case 3: - return faHourglass3 - default: - return faHourglassClock - } - } - - return ( - - ) -} - -function Player(props: { src: string; i: 0 | 1; userId?: string }) { - const player = () => users[props.i] - const primary = () => props.userId && props.userId === player()?.id - - return ( -
-

- {player()?.name ?? "Spieler " + (props.i === 1 ? "2" : "1")} -

-
- {props.src} - - - -
- -
- ) -} - -export default Player diff --git a/leaky-ships/src/components/Lobby/SettingsFrame/Setting.tsx b/leaky-ships/src/components/Lobby/SettingsFrame/Setting.tsx deleted file mode 100644 index f0ec485..0000000 --- a/leaky-ships/src/components/Lobby/SettingsFrame/Setting.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { - faToggleLargeOff, - faToggleLargeOn, -} from "@fortawesome/pro-solid-svg-icons" -import classNames from "classnames" -import { JSX } from "solid-js" -import { FontAwesomeIcon } from "~/components/FontAwesomeIcon" -import { gameProps, setGameSetting } from "~/hooks/useGameProps" -import { GameSettingKeys } from "../../../interfaces/frontend" - -function Setting(props: { children: JSX.Element; key: GameSettingKeys }) { - const state = () => gameProps[props.key] - - return ( - - ) -} - -export default Setting diff --git a/leaky-ships/src/components/Lobby/SettingsFrame/Settings.tsx b/leaky-ships/src/components/Lobby/SettingsFrame/Settings.tsx deleted file mode 100644 index a752428..0000000 --- a/leaky-ships/src/components/Lobby/SettingsFrame/Settings.tsx +++ /dev/null @@ -1,72 +0,0 @@ -import { faRotateLeft } from "@fortawesome/pro-regular-svg-icons" -import { faXmark } from "@fortawesome/pro-solid-svg-icons" -import {} from "solid-js" -import { FontAwesomeIcon } from "~/components/FontAwesomeIcon" -import { full, setSetting } from "~/hooks/useGameProps" -import { socket } from "~/lib/socket" -import { GameSettings } from "../../../interfaces/frontend" -import Setting from "./Setting" - -function Settings(props: { closeSettings: () => void }) { - const gameSetting = (newSettings: GameSettings) => { - const hash = setSetting(newSettings) - socket.emit("gameSetting", newSettings, (newHash) => { - if (newHash === hash) return - console.log("hash", hash, newHash) - socket.emit("update", full) - }) - } - - return ( -
-
-
-
-

- Settings -

- -
-
-
- -
-
- Erlaube Zuschauer - Erlaube spezial Items - Erlaube den Chat - Erlaube zeichen/makieren -
-
-
-
-
- ) -} - -export default Settings diff --git a/leaky-ships/src/components/Logo.tsx b/leaky-ships/src/components/Logo.tsx deleted file mode 100644 index 539bd2e..0000000 --- a/leaky-ships/src/components/Logo.tsx +++ /dev/null @@ -1,81 +0,0 @@ -import classNames from "classnames" - -function Logo(props: { small?: boolean }) { - return ( - -
-

- Leaky - Ships -

- -
-
- ) -} - -function Screws(props: { small?: boolean }) { - return ( - <> - - - - - - ) -} - -function Screw(props: { - orientation: string - rotation: string - small?: boolean -}) { - return ( -
-
-
- ) -} - -export default Logo diff --git a/leaky-ships/src/components/OptionButton.tsx b/leaky-ships/src/components/OptionButton.tsx deleted file mode 100644 index badd46e..0000000 --- a/leaky-ships/src/components/OptionButton.tsx +++ /dev/null @@ -1,68 +0,0 @@ -import { IconDefinition } from "@fortawesome/fontawesome-svg-core" -import classNames from "classnames" -import { JSX } from "solid-js" -import { FontAwesomeIcon } from "./FontAwesomeIcon" - -const styles = { - wrapper: - "flex w-full flex-row items-center justify-between rounded-lg py-2 pl-8 pr-4 text-lg text-grayish duration-100 first:mt-4 last:mt-4 sm:rounded-xl sm:py-4 sm:pl-16 sm:pr-8 sm:text-4xl sm:first:mt-8 sm:last:mt-8", - enabled: - "border-b-4 border-shield-gray bg-voidDark active:border-b-0 active:border-t-4", - disabled: "border-4 border-dashed border-slate-600 bg-red-950", - icon: "ml-2 w-10 text-xl sm:ml-12 sm:text-4xl", -} - -export function OptionAnchor(props: { - text: string - icon: IconDefinition - href: string - disabled?: boolean -}) { - return ( - - {props.text} - - - ) -} - -export function OptionButton(props: { - text: string - icon: IconDefinition - callback: () => void - disabled?: boolean -}) { - return ( - - ) -} - -export function OptionDiv(props: { - icon: IconDefinition - children: JSX.Element -}) { - return ( -
- {props.children} - -
- ) -} diff --git a/leaky-ships/src/drizzle/index.ts b/leaky-ships/src/drizzle/index.ts deleted file mode 100644 index 4f0addc..0000000 --- a/leaky-ships/src/drizzle/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { drizzle } from "drizzle-orm/postgres-js" -import postgres from "postgres" -import * as schema from "./schemas/Tables" - -const queryClient = postgres(import.meta.env.VITE_DATABASE_URL ?? "") -const db = drizzle(queryClient, { - schema, -}) - -export default db diff --git a/leaky-ships/src/drizzle/schemas/Tables.ts b/leaky-ships/src/drizzle/schemas/Tables.ts deleted file mode 100644 index e2f417e..0000000 --- a/leaky-ships/src/drizzle/schemas/Tables.ts +++ /dev/null @@ -1,194 +0,0 @@ -import type { AdapterAccount } from "@auth/core/adapters" -import { relations } from "drizzle-orm" -import { - boolean, - integer, - pgTable, - primaryKey, - text, - timestamp, - unique, -} from "drizzle-orm/pg-core" -import { gameState, moveType, orientation } from "./Types" - -export const users = pgTable("user", { - id: text("id").notNull().primaryKey(), - name: text("name").notNull(), - email: text("email").notNull().unique(), - emailVerified: timestamp("emailVerified", { mode: "date" }), - image: text("image"), - createdAt: timestamp("created_at").defaultNow(), - updatedAt: timestamp("updated_at").notNull().defaultNow(), -}) - -export const accounts = pgTable( - "account", - { - userId: text("userId") - .notNull() - .references(() => users.id, { onDelete: "cascade" }), - type: text("type").$type().notNull(), - provider: text("provider").notNull(), - providerAccountId: text("providerAccountId").notNull(), - refresh_token: text("refresh_token"), - access_token: text("access_token"), - expires_at: integer("expires_at"), - extExpiresIn: integer("ext_expires_in"), - token_type: text("token_type"), - scope: text("scope"), - id_token: text("id_token"), - session_state: text("session_state"), - oauthTokenSecret: text("oauth_token_secret"), - oauthToken: text("oauth_token"), - }, - (account) => ({ - compoundKey: primaryKey(account.provider, account.providerAccountId), - }), -) - -export const sessions = pgTable("session", { - sessionToken: text("sessionToken").notNull().primaryKey(), - userId: text("userId") - .notNull() - .references(() => users.id, { onDelete: "cascade" }), - expires: timestamp("expires", { mode: "date" }).notNull(), -}) - -export const verificationTokens = pgTable( - "verificationToken", - { - identifier: text("identifier").notNull(), - token: text("token").notNull(), - expires: timestamp("expires", { mode: "date" }).notNull(), - }, - (vt) => ({ - compoundKey: primaryKey(vt.identifier, vt.token), - }), -) - -export const games = pgTable("game", { - id: text("id").notNull().primaryKey(), - createdAt: timestamp("created_at").defaultNow(), - updatedAt: timestamp("updated_at").notNull().defaultNow(), - state: gameState("state").notNull().default("lobby"), - allowSpectators: boolean("allow_spectators").notNull().default(true), - allowSpecials: boolean("allow_specials").notNull().default(true), - allowChat: boolean("allow_chat").notNull().default(true), - allowMarkDraw: boolean("allow_mark_draw").notNull().default(true), -}) - -export const gamepins = pgTable("gamepin", { - id: text("id").notNull().primaryKey(), - createdAt: timestamp("created_at").defaultNow(), - pin: text("pin").notNull().unique(), - gameId: text("game_id") - .notNull() - .unique() - .references(() => games.id, { onDelete: "cascade" }), -}) - -export const ships = pgTable("ship", { - id: text("id").notNull().primaryKey(), - size: integer("size").notNull(), - variant: integer("variant").notNull(), - x: integer("x").notNull(), - y: integer("y").notNull(), - orientation: orientation("orientation").notNull(), - user_game_id: text("user_game_id") - .notNull() - .references(() => user_games.id, { onDelete: "cascade" }), -}) - -export const moves = pgTable("move", { - id: text("id").notNull().primaryKey(), - createdAt: timestamp("created_at").defaultNow(), - index: integer("index").notNull(), - type: moveType("type").notNull(), - x: integer("x").notNull(), - y: integer("y").notNull(), - orientation: orientation("orientation").notNull(), - user_game_id: text("user_game_id") - .notNull() - .references(() => user_games.id, { onDelete: "cascade" }), -}) - -export const chats = pgTable("chat", { - id: text("id").notNull().primaryKey(), - createdAt: timestamp("created_at").notNull().defaultNow(), - message: text("message"), - event: text("event"), - user_game_id: text("user_game_id") - .notNull() - .references(() => user_games.id, { onDelete: "cascade" }), -}) - -export const user_games = pgTable( - "user_game", - { - id: text("id").notNull().primaryKey(), - createdAt: timestamp("created_at").defaultNow(), - gameId: text("game_id") - .notNull() - .references(() => games.id, { onDelete: "cascade" }), - userId: text("user_id") - .notNull() - .references(() => users.id, { onDelete: "cascade" }), - index: integer("index").notNull(), - }, - (t) => ({ - gameIndex: unique().on(t.gameId, t.index), - }), -) - -export const usersRelations = relations(users, ({ many }) => ({ - user_games: many(user_games), - sessions: many(sessions), -})) - -export const sessionsRelations = relations(sessions, ({ one }) => ({ - user: one(users, { - fields: [sessions.userId], - references: [users.id], - }), -})) - -export const gamesRelations = relations(games, ({ one, many }) => ({ - gamePin: one(gamepins, { - fields: [games.id], - references: [gamepins.gameId], - }), - users: many(user_games), -})) - -export const gamepinsRelations = relations(gamepins, ({ one }) => ({ - game: one(games, { fields: [gamepins.gameId], references: [games.id] }), -})) - -export const shipsRelations = relations(ships, ({ one }) => ({ - userGame: one(user_games, { - fields: [ships.user_game_id], - references: [user_games.id], - }), -})) - -export const userGamesRelations = relations(user_games, ({ one, many }) => ({ - user: one(users, { fields: [user_games.userId], references: [users.id] }), - game: one(games, { fields: [user_games.gameId], references: [games.id] }), - moves: many(moves), - ships: many(ships), - chats: many(chats), -})) - -export const movesRelations = relations(moves, ({ one }) => ({ - userGame: one(user_games, { - fields: [moves.user_game_id], - references: [user_games.id], - }), -})) - -export const chatsRelations = relations(chats, ({ one }) => ({ - userGame: one(user_games, { - fields: [chats.user_game_id], - references: [user_games.id], - }), -})) diff --git a/leaky-ships/src/drizzle/schemas/Types.ts b/leaky-ships/src/drizzle/schemas/Types.ts deleted file mode 100644 index 32cb3a8..0000000 --- a/leaky-ships/src/drizzle/schemas/Types.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { pgEnum } from "drizzle-orm/pg-core" - -export const gameState = pgEnum("game_state", [ - "unknown", - "lobby", - "starting", - "running", - "ended", - "aborted", -]) -export const moveType = pgEnum("move_type", [ - "missile", - "vtorpedo", - "htorpedo", - "radar", -]) -export const orientation = pgEnum("orientation", ["h", "v"]) diff --git a/leaky-ships/src/entry-client.tsx b/leaky-ships/src/entry-client.tsx deleted file mode 100644 index 38c681e..0000000 --- a/leaky-ships/src/entry-client.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import { mount, StartClient } from "@solidjs/start/client" - -mount(() => , document.getElementById("app")!) diff --git a/leaky-ships/src/entry-server.tsx b/leaky-ships/src/entry-server.tsx deleted file mode 100644 index 03a02d4..0000000 --- a/leaky-ships/src/entry-server.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { StartServer, createHandler } from "@solidjs/start/server" - -export default createHandler(() => ( - ( - - - - - - {assets} - - - {children} - {scripts} - - - )} - /> -)) diff --git a/leaky-ships/src/hooks/useDraw.tsx b/leaky-ships/src/hooks/useDraw.tsx deleted file mode 100644 index 3810845..0000000 --- a/leaky-ships/src/hooks/useDraw.tsx +++ /dev/null @@ -1,179 +0,0 @@ -import { createEffect, createSignal, onCleanup } from "solid-js" -import { socket } from "~/lib/socket" -import { DrawLineProps, PlayerEvent, Point } from "../interfaces/frontend" -import { color, enable, frameSize, shouldHide } from "./useDrawProps" -import { useSession } from "./useSession" - -let canvasRef: HTMLCanvasElement -const strokes: Record<0 | 1, DrawLineProps[]> = { 0: [], 1: [] } - -function drawLine( - { prevPoint, currentPoint, color }: DrawLineProps, - ctx: CanvasRenderingContext2D, - i: 0 | 1, -) { - strokes[i].push({ prevPoint, currentPoint, color }) - - const currX = currentPoint.x * frameSize().x - const currY = currentPoint.y * frameSize().y - - const startPoint = prevPoint ?? currentPoint - const startX = startPoint.x * frameSize().x - const startY = startPoint.y * frameSize().y - - const lineColor = color - const lineWidth = 5 - - ctx.beginPath() - ctx.lineWidth = lineWidth - ctx.strokeStyle = lineColor - ctx.moveTo(startX, startY) - ctx.lineTo(currX, currY) - ctx.stroke() - - ctx.fillStyle = lineColor - ctx.beginPath() - ctx.arc(startPoint.x, startPoint.y, 2, 0, 2 * Math.PI) - ctx.fill() -} - -function clear(sIndex?: { i: 0 | 1 }) { - const canvas = canvasRef - if (!canvas) return - - if (sIndex) strokes[sIndex.i] = [] - - const ctx = canvas.getContext("2d") - if (!ctx) return - - ctx.clearRect(0, 0, canvas.width, canvas.height) -} - -export function DrawingCanvas() { - const [mouseDown, setMouseDown] = createSignal(false) - const [stateIndex, setStateIndex] = createSignal<{ i: 0 | 1 } | null>(null) - const { selfIndex, selfIsActiveIndex, activeIndex } = useSession() - - createEffect(() => { - const i = activeIndex() - const canvas = canvasRef - if (!canvas || i === stateIndex()?.i) return - - const ctx = canvasRef?.getContext("2d") - if (!ctx) return - - clear() - strokes[i].forEach((props) => drawLine(props, ctx, i)) - setStateIndex({ i }) - }) - - createEffect(() => { - let prevPoint: null | Point - - const canvas = canvasRef - if (!canvas) return - - const handler = (e: MouseEvent) => { - const sIndex = selfIndex() - if (!mouseDown() || !selfIsActiveIndex() || !sIndex) return - - const rect = canvas.getBoundingClientRect() - const x = (e.clientX - rect.left) / frameSize().x - const y = (e.clientY - rect.top) / frameSize().y - - const currentPoint = { x, y } - - const ctx = canvasRef?.getContext("2d") - if (!ctx) return - - const props = { - currentPoint, - prevPoint, - color: color(), - } - socket.emit("draw-line", props) - drawLine(props, ctx, sIndex.i) - prevPoint = currentPoint - } - - const mouseUpHandler = () => { - setMouseDown(false) - prevPoint = null - } - - // Add event listeners - canvas.addEventListener("mousemove", handler) - window.addEventListener("mouseup", mouseUpHandler) - - // Remove event listeners - onCleanup(() => { - canvas.removeEventListener("mousemove", handler) - window.removeEventListener("mouseup", mouseUpHandler) - }) - }) - - createEffect(() => { - const sIndex = selfIndex() - const canvas = canvasRef - if (!canvas || !sIndex) return - - const ctx = canvas.getContext("2d") - if (!ctx) return - - const playerEvent = (event: PlayerEvent) => { - if ( - !strokes[sIndex.i].length || - !selfIsActiveIndex() || - event.type !== "connect" - ) - return - console.log("Sending canvas state.") - socket.emit("canvas-state", strokes[sIndex.i]) - } - - const canvasStateFromServer = (state: DrawLineProps[], i: 0 | 1) => { - console.log("Canvas state received.") - clear({ i }) - state.forEach((props) => drawLine(props, ctx, i)) - } - - const socketDrawLine = (props: DrawLineProps, i: 0 | 1) => { - drawLine(props, ctx, i) - } - - socket.on("playerEvent", playerEvent) - socket.on("canvas-state-from-server", canvasStateFromServer) - socket.on("draw-line", socketDrawLine) - socket.on("canvas-clear", clear) - - onCleanup(() => { - socket.off("playerEvent", playerEvent) - socket.off("canvas-state-from-server", canvasStateFromServer) - socket.off("draw-line", socketDrawLine) - socket.off("canvas-clear", clear) - }) - }) - - return ( - setMouseDown(true)} - width={frameSize().x} - height={frameSize().y} - /> - ) -} - -export function clearDrawing(sIndex: { i: 0 | 1 } | null) { - if (!sIndex) return - clear(sIndex) - socket.emit("canvas-clear") -} diff --git a/leaky-ships/src/hooks/useDrawProps.ts b/leaky-ships/src/hooks/useDrawProps.ts deleted file mode 100644 index 06d91f6..0000000 --- a/leaky-ships/src/hooks/useDrawProps.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { createSignal } from "solid-js" -import { Position } from "~/interfaces/frontend" - -export const colors = [ - "#ff4400", - "#fea800", - "#ffd635", - "#00a367", - "#7eed55", - "#2351a6", - "#3590ea", - "#52e9f3", - "#811e9f", - "#b34abf", - "#fe99a9", - "#9c6926", - // "#ffffff", - "#d3d7d8", - "#898d90", - "#000000", -] - -export const [enable, setEnable] = createSignal(false) -export const [shouldHide, setShouldHide] = createSignal(false) -export const [color, setColor] = createSignal("#b32aa9") -export const [frameSize, setFrameSize] = createSignal({ - x: 648, - y: 648, -}) - -export function reset() { - setEnable(false) - setShouldHide(false) - setColor("#b32aa9") -} diff --git a/leaky-ships/src/hooks/useGameProps.ts b/leaky-ships/src/hooks/useGameProps.ts deleted file mode 100644 index 80897d8..0000000 --- a/leaky-ships/src/hooks/useGameProps.ts +++ /dev/null @@ -1,235 +0,0 @@ -/* eslint-disable solid/reactivity */ -import { socket } from "~/lib/socket" -import { GamePropsSchema, GameState } from "~/lib/zodSchemas" -// import { toast } from "react-toastify" -import { createSignal } from "solid-js" -import { createStore, produce } from "solid-js/store" -import { getPayloadFromProps } from "~/lib/getPayloadFromProps" -import { getPayloadwithChecksum } from "~/lib/getPayloadwithChecksum" -import { - initlialMouseCursor, - initlialTarget, - initlialTargetPreview, -} from "~/lib/utils/helpers" -import { - EventBarModes, - GameSettings, - MouseCursor, - MoveDispatchProps, - Players, - ShipProps, - Target, - TargetPreview, - User, - Users, -} from "../interfaces/frontend" - -export interface GameProps { - hash: string | null - gamePin: string | null - gameId: string - gameState: GameState - allowChat: boolean - allowMarkDraw: boolean - allowSpecials: boolean - allowSpectators: boolean - menu: keyof EventBarModes - mode: number -} - -const initialGameProps = { - hash: null, - gamePin: null, - gameId: "", - gameState: "unknown", - allowChat: false, - allowMarkDraw: false, - allowSpecials: false, - allowSpectators: false, - menu: "moves", - mode: 0, -} satisfies GameProps - -export const [gameProps, setGameProps] = - createStore(initialGameProps) - -const initialUsers = { 0: null, 1: null } -export const [users, setUsersStore] = createStore(initialUsers) - -export function setUsers( - i: 0 | 1, - userInput: Players | Partial>, -): void { - setUsersStore(i, (state) => { - if (0 in userInput) { - const user = userInput[i] - if (!user && state) return null - else if (!state) - return { - ...user, - isReady: false, - isConnected: false, - } - else - return produce>((u) => { - Object.assign(u, user) - })(state) - } else { - const user = userInput - if (!state) { - console.error( - "Everything is fine! Still, this was unexpected and should probably be fixed. 😁", - userInput, - state, - ) - console.trace(userInput) - return null - } - return produce>((u) => { - Object.assign(u, user) - })(state) - } - }) -} - -export const [target, setTarget] = createSignal(initlialTarget) -export const [targetPreview, setTargetPreview] = createSignal( - initlialTargetPreview, -) -export const [mouseCursor, setMouseCursor] = - createSignal(initlialMouseCursor) - -export function DispatchMove(move: MoveDispatchProps, index: 0 | 1) { - setUsers(index, { - moves: [...(users[index]?.moves ?? []), move], - isReady: false, - }) -} - -export function setShips(ships: ShipProps[], index: 0 | 1) { - setUsers(index, { ships }) -} - -export function removeShip({ size, variant, x, y }: ShipProps, index: 0 | 1) { - const ships = users[index]?.ships ?? [] - const indexToRemove = users[index]?.ships.findIndex( - (ship) => - ship.size === size && - ship.variant === variant && - ship.x === x && - ship.y === y, - ) - setUsers(index, { - ships: ships.filter((_, i) => i !== indexToRemove), - }) -} - -export function setPlayer(newUsers: Players): string | null { - let hash: string | null = null - setUsers(0, newUsers) - setUsers(1, newUsers) - const body = getPayloadwithChecksum(getPayloadFromProps()) - hash = body.hash - setGameProps("hash", hash) - return hash -} - -export function setSetting(newSettings: GameSettings): string | null { - let hash: string | null = null - setGameProps("allowChat", (e) => newSettings.allowChat ?? e) - setGameProps("allowMarkDraw", (e) => newSettings.allowMarkDraw ?? e) - setGameProps("allowSpecials", (e) => newSettings.allowSpecials ?? e) - setGameProps("allowSpectators", (e) => newSettings.allowSpectators ?? e) - const body = getPayloadwithChecksum(getPayloadFromProps()) - if (!body.hash) { - console.log("Something is wrong... ") - // toast.warn("Something is wrong... ", { - // toastId: "st_wrong", - // theme: "colored", - // }) - return null - } - hash = body.hash - setGameProps("hash", hash) - return hash -} - -export function setGameSetting(newSettings: GameSettings) { - return () => { - const hash = setSetting(newSettings) - socket.emit("gameSetting", newSettings, (newHash) => { - if (newHash === hash) return - console.log("hash", hash, newHash) - socket.emit("update", full) - }) - } -} - -export function full(newProps: GamePropsSchema) { - if (gameProps.hash === newProps.hash) { - console.log("Everything up to date.") - } else { - console.log("Update was needed.", gameProps.hash, newProps.hash) - - if (gameProps.gameId !== newProps.payload?.game?.id) - console.warn( - "Different gameId detected on update: ", - gameProps.gameId, - newProps.payload?.game?.id, - ) - - setGameProps({ - hash: newProps.hash, - gamePin: newProps.payload.gamePin, - gameId: newProps.payload.game?.id ?? "", - gameState: newProps.payload.game?.state ?? "unknown", - allowChat: newProps.payload.game?.allowChat ?? false, - allowMarkDraw: newProps.payload.game?.allowMarkDraw ?? false, - allowSpecials: newProps.payload.game?.allowSpecials ?? false, - allowSpectators: newProps.payload.game?.allowSpectators ?? false, - }) - setUsers(0, newProps.payload.users) - setUsers(1, newProps.payload.users) - } -} - -export function leave(cb: () => void) { - socket.emit("leave", (ack) => { - if (!ack) { - console.log("Something is wrong... ") - // toast.error("Something is wrong...") - } - cb() - }) -} - -export function setIsReadyFor({ i, isReady }: { i: 0 | 1; isReady: boolean }) { - setUsers(i, { - isReady: isReady, - isConnected: true, - }) -} - -export function newGameState(newState: GameState) { - setGameProps("gameState", newState) - setUsers(0, { isReady: false }) - setUsers(1, { isReady: false }) -} - -export function setIsConnectedFor(props: { i: 0 | 1; isConnected: boolean }) { - setUsers(props.i, { - isConnected: props.isConnected, - }) - if (props.isConnected) return - setUsers(props.i, { - isReady: false, - }) -} - -export function reset() { - setGameProps(initialGameProps) - setTarget(initlialTarget) - setTargetPreview(initlialTargetPreview) - setMouseCursor(initlialMouseCursor) - setUsersStore(initialUsers) -} diff --git a/leaky-ships/src/hooks/useSession.tsx b/leaky-ships/src/hooks/useSession.tsx deleted file mode 100644 index 86a0321..0000000 --- a/leaky-ships/src/hooks/useSession.tsx +++ /dev/null @@ -1,126 +0,0 @@ -import { Session } from "@auth/core/types" -import { getSession } from "@auth/solid-start" -import { useIsRouting } from "@solidjs/router" -import status from "http-status" -import stringify from "json-stable-stringify" -import { - JSX, - createContext, - createEffect, - createResource, - createSignal, - useContext, -} from "solid-js" -import { getRequestEvent } from "solid-js/web" -import { authOptions } from "~/server/auth" -import { gameProps, setGameProps, users } from "./useGameProps" - -const [state, setState] = createSignal(undefined) - -function selfIndex(): { i: 0 | 1 } | null { - switch (state()?.user?.id) { - case users[0]?.id: - return { i: 0 } - case users[1]?.id: - return { i: 1 } - default: - return null - } -} - -const activeIndex = () => { - if (gameProps.gameState !== "running") return 0 - const l1 = users[0]?.moves.length ?? 0 - const l2 = users[1]?.moves.length ?? 0 - return l1 > l2 ? 1 : 0 -} - -const selfIsActiveIndex = () => { - const sIndex = selfIndex() - return !!sIndex && activeIndex() === sIndex.i -} - -const selfUser = () => { - const sIndex = selfIndex() - return sIndex ? users[sIndex.i] : null -} - -/** - * It should be the opposite of `activeIndex`. - * - * This is because `activeIndex` is attacking the `enemyUser`. - */ -const enemyUser = () => users[activeIndex() === 0 ? 1 : 0] - -const ships = () => selfUser()?.ships ?? [] - -const contextValue = { - session: state, - selfIndex, - activeIndex, - selfIsActiveIndex, - selfUser, - activeUser: enemyUser, - ships, -} -export const SessionCtx = createContext(contextValue) - -export async function getSessionFromServer() { - "use server" - const event = getRequestEvent() - if (!event) return - const session = await getSession(event.request, authOptions) - if (session) return session - else return null -} - -export function SessionProvider(props: { children: JSX.Element }) { - const [data, { refetch }] = createResource(() => getSessionFromServer()) - const isRouting = useIsRouting() - - createEffect(() => { - if (!isRouting()) return - refetch() - }) - - createEffect(() => { - const session = data() - const hashDiff = stringify(session) !== stringify(state()) - if (!session || !hashDiff) return - console.log("Session updated.") - // @ts-ignore - setState(session) - }) - - createEffect(() => { - if (gameProps.gameState !== "running") return - - const sIndex = selfIndex() - if (activeIndex() === sIndex?.i) { - setGameProps("menu", "moves") - setGameProps("mode", 0) - } else { - setGameProps("menu", "main") - setGameProps("mode", -1) - } - }) - - return ( - - {props.children} - - ) -} - -export const useSession = () => useContext(SessionCtx) - -export function isAuthenticated(res: Response) { - switch (status[`${res.status}_CLASS`]) { - case status.classes.SUCCESSFUL: - case status.classes.REDIRECTION: - return res.json() - } - - const resStatus = status[`${res.status}_CLASS`] - if (typeof resStatus !== "string") return -} diff --git a/leaky-ships/src/hooks/useSocket.ts b/leaky-ships/src/hooks/useSocket.ts deleted file mode 100644 index 27704bf..0000000 --- a/leaky-ships/src/hooks/useSocket.ts +++ /dev/null @@ -1,190 +0,0 @@ -import status from "http-status" -// import { toast } from "react-toastify" -import { useNavigate } from "@solidjs/router" -import { createEffect, createSignal, onCleanup } from "solid-js" -import { getPayloadFromProps } from "~/lib/getPayloadFromProps" -import { getPayloadwithChecksum } from "~/lib/getPayloadwithChecksum" -import { socket } from "~/lib/socket" -import { GamePropsSchema, GameState } from "~/lib/zodSchemas" -import { GameSettings, PlayerEvent } from "../interfaces/frontend" -import { - DispatchMove, - full, - gameProps, - setGameProps, - setIsConnectedFor, - setIsReadyFor, - setPlayer, - setSetting, - setShips, - users, -} from "./useGameProps" -import { isAuthenticated, useSession } from "./useSession" - -/** This function should only be called once per page, otherwise there will be multiple socket connections and duplicate event listeners. */ -function useSocket() { - const [isConnectedState, setIsConnectedState] = createSignal(false) - const { selfIndex } = useSession() - const navigator = useNavigate() - - const isConnected = () => { - const sIndex = selfIndex() - return sIndex - ? users[sIndex.i]?.isConnected && isConnectedState() - : isConnectedState() - } - - createEffect(() => { - const sIndex = selfIndex() - if (!sIndex) return - if (!users[sIndex.i]) return - setIsConnectedFor({ - i: sIndex.i, - isConnected: isConnectedState(), - }) - }) - - createEffect(() => { - const connect = () => { - console.log("connected") - // toast.dismiss("connect_error") - setIsConnectedState(true) - } - - const connectError = (error: Error) => { - console.log("Connection error:", error.message) - if (error.message === status["403"]) navigator("/") - if (error.message !== "xhr poll error") return - // const toastId = "connect_error" - // const isActive = toast.isActive(toastId) - // console.log(toastId, isActive) - // if (isActive) - // toast.update(toastId, { - // autoClose: 5000, - // }) - // else - // toast.warn("Es gibt Probleme mit der Echtzeitverbindung.", { toastId }) - } - - const playerEvent = (event: PlayerEvent) => { - const { type, i } = event - let message: string - if (type !== "disconnect") { - const { hash } = event - const hashAlreadyMatches = - hash === getPayloadwithChecksum(getPayloadFromProps()).hash - if (hashAlreadyMatches) return - const newHash = setPlayer(event.users) - if (newHash !== hash) { - console.log("hash", hash, newHash) - socket.emit("update", (body) => { - console.log("Update is needed after", type) - full(body) - }) - } - } - switch (type) { - case "disconnect": - setIsConnectedFor({ - i, - isConnected: false, - }) - message = "Player is disconnected." - break - - case "leave": - message = "Player has left the lobby." - break - - case "connect": - setIsConnectedFor({ - i, - isConnected: true, - }) - const sIndex = selfIndex() - if (sIndex) socket.emit("isReady", users[sIndex.i]?.isReady ?? false) - message = "Player has joined the lobby." - break - - default: - message = "Not defined yet." - break - } - // toast.info(message, { toastId: message }) - console.log(message) - } - - const setGameState = (state: GameState) => { - setGameProps("gameState", state) - setIsReadyFor({ i: 0, isReady: false }) - setIsReadyFor({ i: 1, isReady: false }) - } - - const gameSetting = (newSettings: GameSettings, hash: string) => { - const newHash = setSetting(newSettings) - if (!newHash || newHash === hash) return - console.log("hash", hash, newHash) - socket.emit("update", (body) => { - console.log("update") - full(body) - }) - } - - const disconnect = () => { - console.log("disconnect") - setIsConnectedState(false) - } - - socket.on("connect", connect) - socket.on("connect_error", connectError) - socket.on("gameSetting", gameSetting) - socket.on("playerEvent", playerEvent) - socket.on("isReady", setIsReadyFor) - socket.on("gameState", setGameState) - socket.on("dispatchMove", DispatchMove) - socket.on("ships", setShips) - socket.on("disconnect", disconnect) - - onCleanup(() => { - socket.off("connect", connect) - socket.off("connect_error", connectError) - socket.off("gameSetting", gameSetting) - socket.off("playerEvent", playerEvent) - socket.off("isReady", setIsReadyFor) - socket.off("gameState", setGameState) - socket.off("dispatchMove", DispatchMove) - socket.off("ships", setShips) - socket.off("disconnect", disconnect) - }) - }) - - createEffect(() => { - if (!gameProps.gameId) { - socket.disconnect() - fetch("/api/game/running", { - method: "GET", - }) - .then(isAuthenticated) - .then((game) => GamePropsSchema.parse(game)) - .then((res) => full(res)) - .catch((e) => { - console.log("Failed to get /api/game/running: ", e) - navigator("/") - }) - return - } - if (isConnected()) return - socket.connect() - const start = Date.now() - socket.volatile.emit("ping", () => { - const duration = Date.now() - start - console.log("ping", duration) - }) - }) - - return { - isConnected, - } -} - -export default useSocket diff --git a/leaky-ships/src/lib/backend/processRes.ts b/leaky-ships/src/lib/backend/processRes.ts deleted file mode 100644 index f86a174..0000000 --- a/leaky-ships/src/lib/backend/processRes.ts +++ /dev/null @@ -1,111 +0,0 @@ -import { and, eq, exists, ne } from "drizzle-orm" -import db from "~/drizzle" -import { games, user_games } from "~/drizzle/schemas/Tables" -import { getPayloadwithChecksum } from "~/lib/getPayloadwithChecksum" -import { GamePropsSchema } from "~/lib/zodSchemas" - -export const gameSelects = { - columns: { - id: true, - allowChat: true, - allowMarkDraw: true, - allowSpecials: true, - allowSpectators: true, - state: true, - }, - with: { - gamePin: { - columns: { - pin: true, - }, - }, - users: { - columns: { - id: true, - index: true, - }, - with: { - chats: { - columns: { - id: true, - event: true, - message: true, - createdAt: true, - }, - }, - moves: { - columns: { - index: true, - type: true, - x: true, - y: true, - orientation: true, - }, - }, - ships: { - columns: { - size: true, - variant: true, - x: true, - y: true, - orientation: true, - }, - }, - user: { - columns: { - id: true, - name: true, - }, - }, - }, - }, - }, -} as const - -export const getGameById = async (gameId: string) => { - return db.query.games.findFirst({ - where: and(ne(games.state, "ended"), eq(games.id, gameId)), - ...gameSelects, - }) -} - -export const getRunningGameToUser = async (userId: string) => { - return db.query.games.findFirst({ - where: (game) => - and( - ne(game.state, "ended"), - exists( - db - .select() - .from(user_games) - .where( - and( - eq(user_games.gameId, game.id), - eq(user_games.userId, userId), - ), - ), - ), - ), - ...gameSelects, - }) -} - -export function composeBody( - gameDB: NonNullable>>, -): GamePropsSchema { - const { gamePin, users, ...game } = gameDB - const mappedUsers = users.map(({ user, ...props }) => ({ - ...props, - ...user, - })) - const composedUsers = { - 0: mappedUsers.find((e) => e.index === 0) ?? null, - 1: mappedUsers.find((e) => e.index === 1) ?? null, - } - const payload = { - game: game, - gamePin: gamePin?.pin ?? null, - users: composedUsers, - } - return getPayloadwithChecksum(payload) -} diff --git a/leaky-ships/src/lib/backend/sendResponse.ts b/leaky-ships/src/lib/backend/sendResponse.ts deleted file mode 100644 index 47764ea..0000000 --- a/leaky-ships/src/lib/backend/sendResponse.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { redirect } from "@solidjs/router" -import { APIEvent } from "@solidjs/start/server/types" -import logging, { Logging } from "./logging" - -export interface Result { - message: string - statusCode?: number - body?: T - type?: Logging[] - redirectUrl?: string -} - -export default function sendResponse( - request: APIEvent["request"], - result: Result, -) { - if (result.redirectUrl) { - logging("Redirect | " + result.message, result.type ?? ["debug"], request) - return redirect(result.redirectUrl) - } else { - logging(result.message, result.type ?? ["debug"], request) - return new Response(JSON.stringify(result.body), { - status: result.statusCode ?? 200, - headers: { - "Content-Type": "application/json", - }, - }) - } -} diff --git a/leaky-ships/src/lib/getPayloadFromProps.ts b/leaky-ships/src/lib/getPayloadFromProps.ts deleted file mode 100644 index 78818aa..0000000 --- a/leaky-ships/src/lib/getPayloadFromProps.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { gameProps, users } from "~/hooks/useGameProps" - -export function getPayloadFromProps() { - const reducedUsers = [users[0], users[1]].map((user, i) => - user - ? { - index: i, - id: user.id, - name: user.name, - chats: user.chats, - moves: user.moves, - ships: user.ships, - } - : null, - ) - return { - game: { - id: gameProps.gameId, - state: gameProps.gameState, - allowChat: gameProps.allowChat, - allowMarkDraw: gameProps.allowMarkDraw, - allowSpecials: gameProps.allowSpecials, - allowSpectators: gameProps.allowSpectators, - }, - gamePin: gameProps.gamePin, - users: { 0: reducedUsers[0], 1: reducedUsers[1] }, - } -} diff --git a/leaky-ships/src/lib/getPayloadwithChecksum.ts b/leaky-ships/src/lib/getPayloadwithChecksum.ts deleted file mode 100644 index 46060e6..0000000 --- a/leaky-ships/src/lib/getPayloadwithChecksum.ts +++ /dev/null @@ -1,7 +0,0 @@ -import stringify from "json-stable-stringify" -import objectHash from "object-hash" -import { GamePropsSchema } from "./zodSchemas" - -export const getPayloadwithChecksum = ( - payload: GamePropsSchema["payload"], -): GamePropsSchema => ({ payload, hash: objectHash(stringify(payload)) }) diff --git a/leaky-ships/src/lib/utils/prizma.ts b/leaky-ships/src/lib/utils/prizma.ts deleted file mode 100644 index e790f99..0000000 --- a/leaky-ships/src/lib/utils/prizma.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { PgColumn, PgTableWithColumns } from "drizzle-orm/pg-core" -import * as schema from "../../drizzle/schemas/Tables" - -type FilteredKeys = { - [K in keyof T]: T[K] extends U ? K : never -}[keyof T] - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -type TableNames = FilteredKeys> -type ColumnNames = FilteredKeys< - (typeof schema)[T], - PgColumn -> - -type ColumnDataType< - T extends TableNames, - C extends ColumnNames, - // eslint-disable-next-line @typescript-eslint/no-explicit-any -> = (typeof schema)[T][C] extends PgColumn - ? Type["data"] - : never - -type Config> = { - table: T - where: Pick< - { - [C in ColumnNames]: ColumnDataType - }, - TT - > -} - -export const prism = { - findFirst>( - config: Config, - ) { - JSON.stringify(config) - }, -} - -prism.findFirst({ - table: "games", - where: { id: "123456" }, -}) diff --git a/leaky-ships/src/lib/zodSchemas.ts b/leaky-ships/src/lib/zodSchemas.ts deleted file mode 100644 index a905c9d..0000000 --- a/leaky-ships/src/lib/zodSchemas.ts +++ /dev/null @@ -1,111 +0,0 @@ -import { createSelectSchema } from "drizzle-zod" -import { z } from "zod" -import { - accounts, - chats, - gamepins, - games, - moves, - sessions, - ships, - user_games, - users, - verificationTokens, -} from "~/drizzle/schemas/Tables" -import { gameState, moveType, orientation } from "~/drizzle/schemas/Types" - -export const GameState = z.enum(gameState.enumValues) -export const MoveType = z.enum(moveType.enumValues) -export const Orientation = z.enum(orientation.enumValues) -export type GameState = z.infer -export type MoveType = z.infer -export type Orientation = z.infer - -export const usersSchema = createSelectSchema(users) -export const accountsSchema = createSelectSchema(accounts) -export const sessionsSchema = createSelectSchema(sessions) -export const verificationTokensSchema = createSelectSchema(verificationTokens) -export const gamesSchema = createSelectSchema(games) -export const gamepinsSchema = createSelectSchema(gamepins) -export const shipsSchema = createSelectSchema(ships) -export const movesSchema = createSelectSchema(moves) -export const chatsSchema = createSelectSchema(chats) -export const user_gamesSchema = createSelectSchema(user_games) - -export const ChatSchema = z.object({ - id: z.string(), - event: z.string().nullable(), - message: z.string().nullable(), - createdAt: z.coerce.date(), -}) - -export type ChatSchema = z.infer - -export const MoveSchema = z.object({ - index: z.number(), - type: MoveType, - x: z.number(), - y: z.number(), - orientation: Orientation, -}) - -export type MoveSchema = z.infer - -export const ShipShema = z.object({ - size: z.number(), - variant: z.number(), - x: z.number(), - y: z.number(), - orientation: Orientation, -}) - -export type ShipShema = z.infer - -export const HitSchema = z.object({ - x: z.number(), - y: z.number(), - hit: z.boolean(), -}) - -export type HitSchema = z.infer - -export const PlayerSchema = z - .object({ - id: z.string(), - name: z.string(), - index: z.number(), - chats: ChatSchema.array(), - moves: MoveSchema.array(), - ships: ShipShema.array(), - }) - .nullable() - -export type PlayerSchema = z.infer - -export const CreateSchema = z.object({ - game: z - .object({ - id: z.string(), - state: GameState, - allowSpectators: z.boolean(), - allowSpecials: z.boolean(), - allowChat: z.boolean(), - allowMarkDraw: z.boolean(), - }) - .nullable(), - gamePin: z.string().nullable(), - users: z.object({ 0: PlayerSchema, 1: PlayerSchema }), -}) - -export const GamePropsSchema = z.object({ - payload: CreateSchema, - hash: z.string(), -}) -export const optionalGamePropsSchema = z.object({ - payload: CreateSchema.nullable(), - hash: z.string().nullable(), -}) - -export type CreateSchema = z.infer -export type GamePropsSchema = z.infer -export type optionalGamePropsSchema = z.infer diff --git a/leaky-ships/src/routes/[...404].tsx b/leaky-ships/src/routes/[...404].tsx deleted file mode 100644 index c58ddf7..0000000 --- a/leaky-ships/src/routes/[...404].tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { Navigate } from "@solidjs/router" - -export default function NOT_FOUND() { - return -} diff --git a/leaky-ships/src/routes/api/auth/[...solidauth].ts b/leaky-ships/src/routes/api/auth/[...solidauth].ts deleted file mode 100644 index 724f269..0000000 --- a/leaky-ships/src/routes/api/auth/[...solidauth].ts +++ /dev/null @@ -1,4 +0,0 @@ -import { SolidAuth } from "@auth/solid-start" -import { authOptions } from "~/server/auth" - -export const { GET, POST } = SolidAuth(authOptions) diff --git a/leaky-ships/src/routes/api/game/[id].ts b/leaky-ships/src/routes/api/game/[id].ts deleted file mode 100644 index 63788e1..0000000 --- a/leaky-ships/src/routes/api/game/[id].ts +++ /dev/null @@ -1,45 +0,0 @@ -import { getSession } from "@auth/solid-start" -import { APIEvent } from "@solidjs/start/server/types" -import { eq } from "drizzle-orm" -import { z } from "zod" -import db from "~/drizzle" -import { games } from "~/drizzle/schemas/Tables" -import { rejectionErrors } from "~/lib/backend/errors" -import sendResponse from "~/lib/backend/sendResponse" -import { gamesSchema } from "~/lib/zodSchemas" -import { authOptions } from "~/server/auth" - -type Game = z.infer - -interface Data { - game: Game -} - -export async function GET({ request }: APIEvent) { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const body = request.json() as any //TODO - const gameId = body.query.id - const session = await getSession(request, authOptions) - - if (!session?.user || typeof gameId !== "string") { - return sendResponse(request, rejectionErrors.unauthorized) - } - - let game: Game | undefined - - if (request.method === "DELETE") - game = (await db.delete(games).where(eq(games.id, gameId)).returning())[0] - else - game = await db.query.games.findFirst({ - where: (game) => eq(game.id, gameId), - }) - - if (!game) { - return sendResponse(request, rejectionErrors.gameNotFound) - } - - sendResponse(request, { - message: "Here is the game.", - body: { game } as Data, - }) -} diff --git a/leaky-ships/src/routes/api/game/create.ts b/leaky-ships/src/routes/api/game/create.ts deleted file mode 100644 index 0b4d82d..0000000 --- a/leaky-ships/src/routes/api/game/create.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { getSession } from "@auth/solid-start" -import { createId } from "@paralleldrive/cuid2" -import { APIEvent } from "@solidjs/start/server/types" -import { eq } from "drizzle-orm" -import db from "~/drizzle" -import { chats, gamepins, games, user_games } from "~/drizzle/schemas/Tables" -import { rejectionErrors } from "~/lib/backend/errors" -import { - composeBody, - gameSelects, - getRunningGameToUser, -} from "~/lib/backend/processRes" -import sendResponse from "~/lib/backend/sendResponse" -import { authOptions } from "~/server/auth" - -export async function POST({ request }: APIEvent) { - const session = await getSession(request, authOptions) - - if (!session?.user) { - return sendResponse(request, rejectionErrors.unauthorized) - } - - // @ts-ignore - const { email, id } = session.user - - // Generate a random 4-digit code - const pin = Math.floor(Math.random() * 10000) - .toString() - .padStart(4, "0") - - const created = false - - let game = await getRunningGameToUser(id) - if (game) { - return sendResponse(request, { - redirectUrl: "/api/game/running", - message: "Running game already exists.", - }) - } else { - const gameId = ( - await db - .insert(games) - .values({ - id: createId(), - }) - .returning() - )[0].id - const user_Game = ( - await db - .insert(user_games) - .values({ - id: createId(), - gameId, - userId: id, - index: 0, - }) - .returning() - )[0] - await db.insert(gamepins).values({ - id: createId(), - gameId, - pin, - }) - await db.insert(chats).values({ - id: createId(), - user_game_id: user_Game.id, - event: "created", - }) - game = await db.query.games.findFirst({ - where: eq(games.id, gameId), - ...gameSelects, - }) - } - - if (!game) return - - const body = composeBody(game) - - return sendResponse(request, { - message: `User <${email}> created game: ${game.id}`, - statusCode: created ? 201 : 200, - body, - type: ["debug", "infoCyan"], - }) -} diff --git a/leaky-ships/src/routes/api/game/join.ts b/leaky-ships/src/routes/api/game/join.ts deleted file mode 100644 index 21ab4fb..0000000 --- a/leaky-ships/src/routes/api/game/join.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { getSession } from "@auth/solid-start" -import { createId } from "@paralleldrive/cuid2" -import { APIEvent } from "@solidjs/start/server/types" -import { and, eq } from "drizzle-orm" -import db from "~/drizzle" -import { user_games } from "~/drizzle/schemas/Tables" -import { rejectionErrors } from "~/lib/backend/errors" -import getPinFromBody from "~/lib/backend/getPinFromBody" -import logging from "~/lib/backend/logging" -import { composeBody, gameSelects, getGameById } from "~/lib/backend/processRes" -import sendError from "~/lib/backend/sendError" -import sendResponse from "~/lib/backend/sendResponse" -import { authOptions } from "~/server/auth" - -export async function POST({ request }: APIEvent) { - const session = await getSession(request, authOptions) - const pin = await getPinFromBody(request) - - if (!session?.user) { - return sendResponse(request, rejectionErrors.unauthorized) - } - - // @ts-ignore - const { email, id } = session.user - - try { - const gamePin = await db.query.gamepins.findFirst({ - where: (gamePin) => eq(gamePin.pin, pin ?? ""), - with: { game: true }, - }) - if (!gamePin?.game) { - return sendResponse(request, { - message: "Spiel existiert nicht", - statusCode: 404, - type: ["infoCyan"], - }) - } - - const user_Game = await db.query.user_games.findFirst({ - where: and( - eq(user_games.userId, id), - eq(user_games.gameId, gamePin.gameId), - ), - with: { game: gameSelects }, - }) - - if (user_Game) { - return sendResponse(request, { - message: "Spieler ist bereits in Spiel!", - redirectUrl: "/api/game/running", - type: ["infoCyan"], - }) - } - - await db - .insert(user_games) - .values({ - id: createId(), - gameId: gamePin.gameId, - userId: id, - index: 1, - }) - .returning() - - const game = await getGameById(gamePin.gameId) - - if (!game) return - - const body = composeBody(game) - - return sendResponse(request, { - message: `User <${email}> joined game: ${game.id}`, - body, - type: ["debug", "infoCyan"], - }) - // eslint-disable-next-line @typescript-eslint/no-explicit-any - } catch (err: any) { - await logging(err.code + err.meta + err.message, ["error"], request) - console.log(err) - throw sendError(request, rejectionErrors.gameNotFound) - } -} diff --git a/leaky-ships/src/routes/api/game/running.ts b/leaky-ships/src/routes/api/game/running.ts deleted file mode 100644 index c01ac33..0000000 --- a/leaky-ships/src/routes/api/game/running.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { getSession } from "@auth/solid-start" -import { APIEvent } from "@solidjs/start/server/types" -import { eq, notExists } from "drizzle-orm" -import db from "~/drizzle" -import { games, user_games } from "~/drizzle/schemas/Tables" -import { rejectionErrors } from "~/lib/backend/errors" -import logging from "~/lib/backend/logging" -import { composeBody, getRunningGameToUser } from "~/lib/backend/processRes" -import sendResponse from "~/lib/backend/sendResponse" -import { authOptions } from "~/server/auth" - -export async function GET({ request }: APIEvent) { - const session = await getSession(request, authOptions) - - if (!session?.user) { - return sendResponse(request, rejectionErrors.unauthorized) - } - - const abandonedGames = await db - .delete(games) - .where( - notExists( - db.select().from(user_games).where(eq(user_games.gameId, games.id)), - ), - ) - .returning() - if (abandonedGames.length) { - logging( - "Games were deleted because of missing players. Id's: " + - JSON.stringify( - abandonedGames.map((e) => e.id), - null, - 2, - ), - ["error"], - ) - } - - // @ts-ignore - const { email, id } = session.user - - const game = await getRunningGameToUser(id) - - if (!game) - return sendResponse(request, { - message: `User <${email}> is in no game.`, - statusCode: 204, - type: ["debug", "infoCyan"], - }) - - const body = composeBody(game) - - return sendResponse(request, { - message: `User <${email}> asked for game: ${game.id}`, - statusCode: 200, - body, - type: ["debug", "infoCyan"], - }) -} diff --git a/leaky-ships/src/routes/api/ws.ts b/leaky-ships/src/routes/api/ws.ts deleted file mode 100644 index 69fb927..0000000 --- a/leaky-ships/src/routes/api/ws.ts +++ /dev/null @@ -1,299 +0,0 @@ -import { getSession } from "@auth/solid-start" -import { createId } from "@paralleldrive/cuid2" -import { APIEvent } from "@solidjs/start/server/types" -import colors from "colors" -import { and, eq } from "drizzle-orm" -import status from "http-status" -import { Server } from "socket.io" -import db from "~/drizzle" -import { games, moves, ships, user_games } from "~/drizzle/schemas/Tables" -import { SocketWithIO, sServer } from "~/interfaces/ApiSocket" -import logging from "~/lib/backend/logging" -import { - composeBody, - gameSelects, - getGameById, - getRunningGameToUser, -} from "~/lib/backend/processRes" -import { GamePropsSchema } from "~/lib/zodSchemas" -import { authOptions } from "~/server/auth" - -colors.enable() - -export async function GET({ request, nativeEvent }: APIEvent) { - const socket = nativeEvent.node.res.socket as SocketWithIO - if (socket.server.io) { - logging("Socket is already running " + request.url, ["infoCyan"], request) - } else { - logging("Socket is initializing " + request.url, ["infoCyan"], request) - const io: sServer = new Server(socket.server, { - path: "/api/ws", - cors: { - origin: import.meta.env.VITE_AUTH_URL, - }, - }) - - socket.server.io = io - - // io.use(authenticate) - io.use(async (socket, next) => { - const request = socket.request - try { - const url = import.meta.env.VITE_AUTH_URL! + request.url - const session = await getSession( - new Request(url, { - headers: request.headers as Record, - }), - authOptions, - ) - if (!session) return next(new Error(status["401"])) - - // @ts-ignore - socket.data.user = session.user - - const game = await getRunningGameToUser(socket.data.user?.id ?? "") - if (!game) { - logging( - "Authentication forbidden, no game found for user: " + - JSON.stringify([socket.data.user?.id, session.user]), - ["debug"], - request, - ) - return next(new Error(status["403"])) - } - - const { payload, hash } = composeBody(game) - const index = payload.users[0]?.id === socket.data.user?.id ? 0 : 1 - if (index !== 0 && index !== 1) return next(new Error(status["401"])) - socket.data.index = { i: index } - socket.data.gameId = game.id - socket.join(game.id) - socket.to(game.id).emit("playerEvent", { - type: "connect", - i: socket.data.index.i, - users: payload.users, - hash, - }) - - next() - } catch { - logging("Unkonwn error - " + status["401"], ["warn"], request) - next(new Error(status["401"])) - } - }) - - io.on("connection", async (socket) => { - logging( - `User connected <${socket.data.user?.email}>`.green + - ", " + - socket.id.cyan, - ["infoGreen"], - request, - ) - - socket.on("update", async (cb) => { - const game = await getGameById(socket.data.gameId ?? "") - if (!game || !socket.data.index) return - if (socket.data.index.i === 1 && game.users.length === 1) - socket.data.index.i = 0 - const body = composeBody(game) - cb(body) - }) - - socket.on("gameSetting", async (newSettings, cb) => { - const game = await db - .update(games) - .set(newSettings) - .where(eq(games.id, socket.data.gameId)) - .returning() - .then((updatedGame) => - db.query.games.findFirst({ - where: eq(games.id, updatedGame[0].id), - ...gameSelects, - }), - ) - if (!game) return - const { hash } = composeBody(game) - if (!hash) return - cb(hash) - socket.to(game?.id).emit("gameSetting", newSettings, hash) - }) - - socket.on("ping", (callback) => callback()) - - socket.on("leave", async (cb) => { - if (!socket.data.index) return - const user_Game = ( - await db - .delete(user_games) - .where( - and( - eq(user_games.gameId, socket.data.gameId), - eq(user_games.userId, socket.data.user?.id ?? ""), - ), - ) - .returning() - )[0] - if (!user_Game) return - const enemy = await db.query.user_games.findFirst({ - where: eq(user_games.gameId, socket.data.gameId), - }) - let body: GamePropsSchema - if (user_Game.index === 0 && enemy) { - const game = await db - .update(user_games) - .set({ - index: 0, - }) - .where( - and( - eq(user_games.gameId, socket.data.gameId), - eq(user_games.index, 1), - ), - ) - .returning() - .then((user_Game) => - db.query.games.findFirst({ - where: eq(games.id, user_Game[0].gameId), - ...gameSelects, - }), - ) - if (!game) return - body = composeBody(game) - } else { - const game = await db.query.games.findFirst({ - where: eq(games.id, socket.data.gameId), - ...gameSelects, - }) - if (!game) return cb(false) - body = composeBody(game) - } - const { payload, hash } = body - socket.to(socket.data.gameId).emit("playerEvent", { - type: "leave", - i: socket.data.index.i, - users: payload.users, - hash, - }) - socket.data.gameId = "" - cb(true) - - if (!payload.users[0] && !payload.users[1]) { - await db.delete(games).where(eq(games.id, socket.data.gameId)) - } - }) - - socket.on("isReady", async (isReady) => { - if (!socket.data.index || !socket.data.gameId) return - socket - .to(socket.data.gameId) - .emit("isReady", { i: socket.data.index.i, isReady }) - }) - - socket.on("canvas-state", (state) => { - if (!socket.data.gameId || !socket.data.index) return - console.log("received canvas state") - socket - .to(socket.data.gameId) - .emit("canvas-state-from-server", state, socket.data.index.i) - }) - - socket.on("draw-line", ({ prevPoint, currentPoint, color }) => { - if (!socket.data.gameId || !socket.data.index) return - socket - .to(socket.data.gameId) - .emit( - "draw-line", - { prevPoint, currentPoint, color }, - socket.data.index.i, - ) - }) - - socket.on("canvas-clear", () => { - if (!socket.data.gameId || !socket.data.index) return - socket.to(socket.data.gameId).emit("canvas-clear", socket.data.index) - }) - - socket.on("gameState", async (newState) => { - if (socket.data.index?.i !== 0 || !socket.data.gameId) return - await db - .update(games) - .set({ - state: newState, - }) - .where(eq(games.id, socket.data.gameId)) - io.to(socket.data.gameId).emit("gameState", newState) - }) - - socket.on("ships", async (shipsData) => { - if (!socket.data.gameId || !socket.data.user?.id || !socket.data.index) - return - - const user_Game = await db.query.user_games.findFirst({ - where: and( - eq(user_games.gameId, socket.data.gameId), - eq(user_games.userId, socket.data.user?.id ?? ""), - ), - }) - - if (!user_Game) return - await db.delete(ships).where(eq(ships.user_game_id, user_Game.id)) - await db.insert(ships).values( - shipsData.map((ship) => ({ - id: createId(), - user_game_id: user_Game.id, - ...ship, - })), - ) - - socket - .to(socket.data.gameId) - .emit("ships", shipsData, socket.data.index.i) - }) - - socket.on("dispatchMove", async (props) => { - if (!socket.data.gameId || !socket.data.user?.id || !socket.data.index) - return - - const user_Game = await db.query.user_games.findFirst({ - where: (uG) => - and( - eq(uG.gameId, socket.data.gameId), - eq(uG.userId, socket.data.user?.id ?? ""), - ), - with: { game: gameSelects }, - }) - - if (!user_Game?.game) return - await db - .insert(moves) - .values({ ...props, id: createId(), user_game_id: user_Game.id }) - .returning() - - io.to(socket.data.gameId).emit( - "dispatchMove", - props, - socket.data.index.i, - ) - }) - - socket.on("disconnecting", async () => { - logging( - "Disconnecting: " + JSON.stringify(Array.from(socket.rooms)), - ["debug"], - request, - ) - if (!socket.data.gameId || !socket.data.index) return - socket.to(socket.data.gameId).emit("playerEvent", { - type: "disconnect", - i: socket.data.index.i, - }) - }) - - socket.on("disconnect", () => { - logging("Disconnect: " + socket.id, ["debug"], request) - }) - }) - } - return new Response() -} diff --git a/leaky-ships/src/routes/gamefield.tsx b/leaky-ships/src/routes/gamefield.tsx deleted file mode 100644 index e857088..0000000 --- a/leaky-ships/src/routes/gamefield.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { Link, Meta, Title } from "@solidjs/meta" -import Gamefield from "~/components/Gamefield/Gamefield" - -export default function Home() { - return ( - <> - Create Next App - - - -
-
-
- -
-
-
- - ) -} diff --git a/leaky-ships/src/routes/grid.tsx b/leaky-ships/src/routes/grid.tsx deleted file mode 100644 index 2486f4c..0000000 --- a/leaky-ships/src/routes/grid.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { Link, Meta, Title } from "@solidjs/meta" -import Grid from "~/components/Grid" - -export default function Home() { - return ( - <> - Create Next App - - - -
-
-
- -
-
-
- - ) -} diff --git a/leaky-ships/src/routes/grid2.tsx b/leaky-ships/src/routes/grid2.tsx deleted file mode 100644 index e16df30..0000000 --- a/leaky-ships/src/routes/grid2.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { Link, Meta, Title } from "@solidjs/meta" -import Grid2 from "~/components/Grid2" - -export default function Home() { - return ( - <> - Create Next App - - - -
-
-
- -
-
-
- - ) -} diff --git a/leaky-ships/src/routes/index.tsx b/leaky-ships/src/routes/index.tsx deleted file mode 100644 index 4fd2fbf..0000000 --- a/leaky-ships/src/routes/index.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import BurgerMenu from "~/components/BurgerMenu" -import Logo from "~/components/Logo" - -export default function Home() { - return ( -
-
- - -
-
- - START - -
-
- ) -} diff --git a/leaky-ships/src/routes/lobby.tsx b/leaky-ships/src/routes/lobby.tsx deleted file mode 100644 index a970e4f..0000000 --- a/leaky-ships/src/routes/lobby.tsx +++ /dev/null @@ -1,41 +0,0 @@ -// import Head from "next/head" -import classNames from "classnames" -import { Show, createSignal } from "solid-js" -import BurgerMenu from "~/components/BurgerMenu" -import LobbyFrame from "~/components/Lobby/LobbyFrame" -import Settings from "~/components/Lobby/SettingsFrame/Settings" -import Logo from "~/components/Logo" - -export default function Lobby() { - const [settings, setSettings] = createSignal(false) - - return ( -
- {/* - Lobby - - - - - */} -
- - setSettings(true)} /> -
- - - setSettings(false)} /> - -
- ) -} diff --git a/leaky-ships/src/routes/signin.tsx b/leaky-ships/src/routes/signin.tsx deleted file mode 100644 index 123cfc8..0000000 --- a/leaky-ships/src/routes/signin.tsx +++ /dev/null @@ -1,165 +0,0 @@ -import { signIn } from "@auth/solid-start/client" -import { faLeftLong } from "@fortawesome/pro-solid-svg-icons" -import { useNavigate, useSearchParams } from "@solidjs/router" -import classNames from "classnames" -import { Show, createEffect, createSignal } from "solid-js" -import { FontAwesomeIcon } from "~/components/FontAwesomeIcon" -import { useSession } from "~/hooks/useSession" - -// import { toast } from "react-toastify" - -type SignInErrorTypes = - | "Signin" - | "OAuthSignin" - | "OAuthCallback" - | "OAuthCreateAccount" - | "EmailCreateAccount" - | "Callback" - | "OAuthAccountNotLinked" - | "EmailSignin" - | "CredentialsSignin" - | "SessionRequired" - | "default" - -const errors: Record = { - Signin: "Try signing in with a different account.", - OAuthSignin: "Try signing in with a different account.", - OAuthCallback: "Try signing in with a different account.", - OAuthCreateAccount: "Try signing in with a different account.", - EmailCreateAccount: "Try signing in with a different account.", - Callback: "Try signing in with a different account.", - OAuthAccountNotLinked: - "To confirm your identity, sign in with the same account you used originally.", - EmailSignin: "The e-mail could not be sent.", - CredentialsSignin: - "Sign in failed. Check the details you provided are correct.", - SessionRequired: "Please sign in to access this page.", - default: "Unable to sign in.", -} - -function Login() { - const [email, setEmail] = createSignal("") - const { session } = useSession() - const navigator = useNavigate() - const [searchParams] = useSearchParams() - - const errorType = searchParams["error"] as SignInErrorTypes - - createEffect(() => { - if (!errorType) return - console.error(errors[errorType] ?? errors.default) - // toast.error(errors[errorType] ?? errors.default, { theme: "colored" }) - }) - - createEffect(() => { - if (session()) navigator("/signout") - }) - - const login = (provider: "discord") => - signIn(provider, { email: email(), callbackUrl: "/" }) - - return ( -
-
-
- Avatar -

Leaky Ships

- - {errorType ? errors[errorType] : "Choose Login Method"} - -
- {errorType &&
} -
-
{ - e.preventDefault() - if (!email()) return - // login("email") - }} - > - - setEmail(e.target.value)} - /> - -
- -
-
- or -
-
- -
- - Gewerbliche Berufsbildende Schulen - - -
-
- -
- -
-
-
- ) -} - -export default Login diff --git a/leaky-ships/src/routes/signout.tsx b/leaky-ships/src/routes/signout.tsx deleted file mode 100644 index d46c8a6..0000000 --- a/leaky-ships/src/routes/signout.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import { signOut } from "@auth/solid-start/client" -import { faLeftLong } from "@fortawesome/pro-solid-svg-icons" -import { useNavigate } from "@solidjs/router" -import { createEffect } from "solid-js" -import { FontAwesomeIcon } from "~/components/FontAwesomeIcon" -import { useSession } from "~/hooks/useSession" - -function Logout() { - const { session } = useSession() - const navigator = useNavigate() - - createEffect(() => { - if (session() === null) navigator("/signin") - }) - - return ( -
-
-
-
- Avatar -

Leaky Ships

- Signout -
-
- Are you sure you want to sign out? - -
-
-
- -
-
-
-
- ) -} - -export default Logout diff --git a/leaky-ships/src/routes/start.tsx b/leaky-ships/src/routes/start.tsx deleted file mode 100644 index 274466f..0000000 --- a/leaky-ships/src/routes/start.tsx +++ /dev/null @@ -1,190 +0,0 @@ -import { faEye, faLeftLong } from "@fortawesome/pro-regular-svg-icons" -import { faPlus, faUserPlus } from "@fortawesome/pro-solid-svg-icons" -import { useNavigate, useSearchParams } from "@solidjs/router" -import { Show, createEffect, createSignal } from "solid-js" -import BurgerMenu from "~/components/BurgerMenu" -import { FontAwesomeIcon } from "~/components/FontAwesomeIcon" -import Logo from "~/components/Logo" -import { - OptionAnchor, - OptionButton, - OptionDiv, -} from "~/components/OptionButton" -import { full } from "~/hooks/useGameProps" -import { - SessionProvider, - isAuthenticated, - useSession, -} from "~/hooks/useSession" -import { GamePropsSchema } from "~/lib/zodSchemas" - -export default function Start() { - const [otp, setOtp] = createSignal("") - const navigator = useNavigate() - const { session } = useSession() - const [searchParams] = useSearchParams() - - const query = () => { - const q = searchParams["q"] - return { - get join() { - return q === "join" - }, - get watch() { - return q === "watch" - }, - get available() { - return !!q - }, - } - } - - const gameFetch = async (pin?: string) => { - const gameRequestPromise = fetch( - "/api/game/" + (!pin ? "create" : "join"), - { - method: "POST", - body: JSON.stringify({ pin }), - }, - ) - .then(isAuthenticated) - .then((game) => GamePropsSchema.parse(game)) - - // const move = !pin ? "erstellt" : "angefragt" - // const toastId = "pageLoad" - // toast("Raum wird " + move, { - // icon: Icons.spinner(), - // toastId, - // autoClose: false, - // hideProgressBar: true, - // closeButton: false, - // }) - const res = await gameRequestPromise.catch((err) => { - console.log(err) - // toast.update(toastId, { - // render: "Es ist ein Fehler aufgetreten bei der Anfrage 🤯", - // type: "error", - // icon: Icons.error, - // theme: "colored", - // autoClose: 5000, - // hideProgressBar: false, - // closeButton: true, - // }) - }) - if (!res) return - full(res) - - // toast.update(toastId, { - // render: "Weiterleitung", - // }) - - navigator("/lobby") - // .then(() => - // toast.update(toastId, { - // render: "Raum begetreten 👌", - // type: "info", - // icon: Icons.success, - // autoClose: 5000, - // hideProgressBar: false, - // closeButton: true, - // }), - // ) - // .catch(() => - // toast.update(toastId, { - // render: "Es ist ein Fehler aufgetreten beim Seiten wechsel 🤯", - // type: "error", - // icon: Icons.error, - // theme: "colored", - // autoClose: 5000, - // hideProgressBar: false, - // closeButton: true, - // }), - // ) - } - - createEffect(() => { - if (otp().length !== 4) return - gameFetch(otp()) - }) - - return ( - -
-
- - -
- -
- - - } - > - - - setOtp((otp) => { - const value = e.target.value - return /^\d{0,4}$/.test(value) ? value : otp - }) - } - /> - - - - } - > - - - setOtp((otp) => { - const value = e.target.value - return /^\d{0,4}$/.test(value) ? value : otp - }) - } - /> - - -
-
-
-
-
- ) -} diff --git a/leaky-ships/src/styles/root.css b/leaky-ships/src/styles/root.css deleted file mode 100644 index b5c61c9..0000000 --- a/leaky-ships/src/styles/root.css +++ /dev/null @@ -1,3 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; diff --git a/leaky-ships/src/types/authjs.d.ts b/leaky-ships/src/types/authjs.d.ts deleted file mode 100644 index 18d303c..0000000 --- a/leaky-ships/src/types/authjs.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { DefaultSession as DSession } from "@auth/core/types" - -declare module "@auth/core/types" { - /** - * Returned by `useSession`, `getSession` and received as a prop on the `SessionProvider` React Context - */ - interface Session extends DSession { - user?: { - id: string - name?: string | null - email?: string | null - image?: string | null - } - } -} diff --git a/leaky-ships/src/types/env.d.ts b/leaky-ships/src/types/env.d.ts deleted file mode 100644 index c0ab932..0000000 --- a/leaky-ships/src/types/env.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -/// - -interface ImportMetaEnv { - readonly VITE_DISCORD_CLIENT_ID: string - readonly VITE_DISCORD_CLIENT_SECRET: string - - readonly VITE_AUTH_SECRET: string - readonly VITE_AUTH_URL: string | undefined - - readonly VITE_DATABASE_URL: string -} - -// eslint-disable-next-line no-unused-vars -interface ImportMeta { - readonly env: ImportMetaEnv -} diff --git a/leaky-ships/src/styles/App.scss b/leaky-ships/styles/App.scss similarity index 97% rename from leaky-ships/src/styles/App.scss rename to leaky-ships/styles/App.scss index c1f8701..361639c 100644 --- a/leaky-ships/src/styles/App.scss +++ b/leaky-ships/styles/App.scss @@ -395,12 +395,12 @@ body { width: 128px; position: relative; - .color-picker-wrapper { + .react-colorful-wrapper { pointer-events: none; opacity: 0; transition: 0.2s; position: absolute; - bottom: 105%; + top: -225px; left: 50%; transform: translateX(-50%); z-index: 1; @@ -454,10 +454,6 @@ body { color: black; font-size: 0.75em; font-weight: bold; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; } } } diff --git a/leaky-ships/src/styles/globals.scss b/leaky-ships/styles/globals.scss similarity index 94% rename from leaky-ships/src/styles/globals.scss rename to leaky-ships/styles/globals.scss index bb3522a..0d9b62d 100644 --- a/leaky-ships/src/styles/globals.scss +++ b/leaky-ships/styles/globals.scss @@ -5,7 +5,7 @@ @import url("https://fonts.googleapis.com/css2?family=Farro:wght@300;400;500;700&display=swap"); @font-face { font-family: "CP_Font"; - src: url("/fonts/cpfont_ote/CP_Font.otf") format("opentype"); + src: url("/fonts/cpfont_ote/CP Font.otf") format("opentype"); font-display: swap; } diff --git a/leaky-ships/src/styles/grid.scss b/leaky-ships/styles/grid.scss similarity index 100% rename from leaky-ships/src/styles/grid.scss rename to leaky-ships/styles/grid.scss diff --git a/leaky-ships/src/styles/grid2.scss b/leaky-ships/styles/grid2.scss similarity index 100% rename from leaky-ships/src/styles/grid2.scss rename to leaky-ships/styles/grid2.scss diff --git a/leaky-ships/src/styles/mixins/display.scss b/leaky-ships/styles/mixins/display.scss similarity index 100% rename from leaky-ships/src/styles/mixins/display.scss rename to leaky-ships/styles/mixins/display.scss diff --git a/leaky-ships/src/styles/mixins/effects.scss b/leaky-ships/styles/mixins/effects.scss similarity index 100% rename from leaky-ships/src/styles/mixins/effects.scss rename to leaky-ships/styles/mixins/effects.scss diff --git a/leaky-ships/src/styles/mixins/variables.scss b/leaky-ships/styles/mixins/variables.scss similarity index 100% rename from leaky-ships/src/styles/mixins/variables.scss rename to leaky-ships/styles/mixins/variables.scss diff --git a/leaky-ships/tailwind.config.cjs b/leaky-ships/tailwind.config.js similarity index 77% rename from leaky-ships/tailwind.config.cjs rename to leaky-ships/tailwind.config.js index f3d1eec..b6af3bc 100644 --- a/leaky-ships/tailwind.config.cjs +++ b/leaky-ships/tailwind.config.js @@ -1,7 +1,10 @@ /** @type {import('tailwindcss').Config} */ module.exports = { - content: ["./src/**/*.{html,js,jsx,ts,tsx}"], + content: [ + "./pages/**/*.{js,ts,jsx,tsx}", + "./components/**/*.{js,ts,jsx,tsx}", + ], theme: { extend: { colors: { diff --git a/leaky-ships/tsconfig.json b/leaky-ships/tsconfig.json index 1b4d6d3..55146cf 100644 --- a/leaky-ships/tsconfig.json +++ b/leaky-ships/tsconfig.json @@ -1,19 +1,26 @@ { "compilerOptions": { - "target": "ESNext", - "module": "ESNext", - "moduleResolution": "node", - "allowSyntheticDefaultImports": true, - "esModuleInterop": true, - "jsx": "preserve", - "jsxImportSource": "solid-js", + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], "allowJs": true, + "skipLibCheck": true, "strict": true, + "forceConsistentCasingInFileNames": true, "noEmit": true, - "types": ["vinxi/client"], + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, "isolatedModules": true, + "jsx": "preserve", + "incremental": true, "paths": { - "~/*": ["./src/*"] + "@lib/*": ["./lib/*"], + "@hooks/*": ["./hooks/*"], + "@components/*": ["./components/*"], + "@backend/*": ["./lib/backend/*"] } - } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], + "exclude": ["node_modules"] } diff --git a/leaky-ships/types/next-auth.d.ts b/leaky-ships/types/next-auth.d.ts new file mode 100644 index 0000000..7576620 --- /dev/null +++ b/leaky-ships/types/next-auth.d.ts @@ -0,0 +1,12 @@ +import { DefaultSession } from "next-auth" + +declare module "next-auth" { + /** + * Returned by `useSession`, `getSession` and received as a prop on the `SessionProvider` React Context + */ + interface Session { + user: { + id: string + } & DefaultSession["user"] + } +} diff --git a/leaky-ships/vite.config.ts b/leaky-ships/vite.config.ts deleted file mode 100644 index 04794fb..0000000 --- a/leaky-ships/vite.config.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { defineConfig } from "@solidjs/start/config" - -export default defineConfig({})