diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index ce1022b..0000000 --- a/.eslintignore +++ /dev/null @@ -1,8 +0,0 @@ -# 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 7b2437c..d860e09 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: 18 + node-version: 20 - uses: pnpm/action-setup@v2 name: Install pnpm with: - version: 8.6.10 + version: 8.7.4 run_install: false - name: Get pnpm store directory @@ -41,8 +41,8 @@ jobs: - name: Add FA token run: | - echo "@fortawesome:registry=https://npm.fontawesome.com/" > .npmrc - npm config set '//npm.fontawesome.com/:_authToken' "${{ secrets.FONTAWESOME_NPM_AUTH_TOKEN }}" + npm config set "@fortawesome:registry" "https://npm.fontawesome.com/" + npm config set "//npm.fontawesome.com/:_authToken" "${{ secrets.FONTAWESOME_NPM_AUTH_TOKEN }}" - name: Install dependencies run: pnpm install --frozen-lockfile @@ -53,8 +53,7 @@ jobs: - name: 'Compiling page' run: | echo "${{ secrets.ENV_FILE }}" > .env - pnpm prisma generate - pnpm run build + pnpm build - name: Run Playwright tests run: pnpm playwright test diff --git a/README.md b/README.md index 9d8b856..9314081 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # leaky-ships -Battleship web app with react frontend and ASP.NET Core backend + +Battleship web app made with SolidJS using solid-start. ## Bluetooth diff --git a/leaky-ships/.eslintrc.json b/leaky-ships/.eslintrc.json index ed20e77..bf919bc 100644 --- a/leaky-ships/.eslintrc.json +++ b/leaky-ships/.eslintrc.json @@ -1,6 +1,11 @@ { - "extends": ["next/core-web-vitals", "prettier"], - "rules": { - "@next/next/no-img-element": "off" - } + "parser": "@typescript-eslint/parser", + "env": { + "node": true + }, + "plugins": ["solid"], + "extends": [ + "plugin:@typescript-eslint/recommended", + "plugin:solid/typescript" + ] } diff --git a/leaky-ships/.gitignore b/leaky-ships/.gitignore index 8f793d8..404e93b 100644 --- a/leaky-ships/.gitignore +++ b/leaky-ships/.gitignore @@ -1,48 +1,35 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# logs /log +src/drizzle/migrations -# prisma -/prisma/migrations +dist +.vinxi +.output +.vercel +.netlify +netlify -# dependencies -/node_modules -/.pnp -.pnp.js - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* -.pnpm-debug.log* - -# local env files +# Environment .env .env*.local -# vercel -.vercel +# dependencies +/node_modules -# typescript -*.tsbuildinfo -next-env.d.ts +# IDEs and editors +/.idea +.project +.classpath +*.launch +.settings/ + +# Temp +gitignore + +# System Files +.DS_Store +Thumbs.db # playwright /test-results/ /playwright-report/ -/playwright/.cache/ +/playwright/.cache/ \ No newline at end of file diff --git a/leaky-ships/components/Gamefield/BorderTiles.tsx b/leaky-ships/components/Gamefield/BorderTiles.tsx deleted file mode 100644 index 6400aed..0000000 --- a/leaky-ships/components/Gamefield/BorderTiles.tsx +++ /dev/null @@ -1,151 +0,0 @@ -import { useGameProps } from "@hooks/useGameProps" -import useIndex from "@hooks/useIndex" -import useShips from "@hooks/useShips" -import { - borderCN, - cornerCN, - fieldIndex, - intersectingShip, - isAlreadyHit, - overlapsWithAnyBorder, - shipProps, - targetList, -} from "@lib/utils/helpers" -import { CSSProperties, useCallback } from "react" -import { count } from "./Gamefield" - -type TilesType = { - key: number - isGameTile: boolean - className: string - x: number - y: number -} - -function BorderTiles() { - const { activeUser } = useIndex() - const { - payload, - mode, - targetPreview, - mouseCursor, - setTarget, - setMouseCursor, - } = useGameProps() - const { ships, setShips, removeShip } = useShips() - - const settingTarget = useCallback( - (isGameTile: boolean, x: number, y: number) => { - if (payload?.game?.state === "running") { - const list = targetList(targetPreview, mode) - if ( - !isGameTile || - !list.filter( - ({ x, y }) => !isAlreadyHit(x, y, activeUser?.hits ?? []), - ).length - ) - return - if (!overlapsWithAnyBorder(targetPreview, mode)) - setTarget({ - show: true, - x, - y, - orientation: targetPreview.orientation, - }) - } else if ( - payload?.game?.state === "starting" && - targetPreview.show && - !intersectingShip(ships, shipProps(ships, mode, targetPreview)).score - ) { - setMouseCursor((e) => ({ ...e, shouldShow: false })) - setShips([...ships, shipProps(ships, mode, targetPreview)]) - } - }, - [ - activeUser?.hits, - mode, - payload?.game?.state, - setMouseCursor, - setShips, - setTarget, - ships, - targetPreview, - ], - ) - let 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 ( - <> - {tilesProperties.map(({ key, className, isGameTile, x, y }) => { - return ( -
{ - if (payload?.game?.state === "running") { - settingTarget(isGameTile, x, y) - } else if (payload?.game?.state === "starting") { - const { index } = intersectingShip(ships, { - ...mouseCursor, - size: 1, - variant: 0, - orientation: "h", - }) - if (typeof index === "undefined") - settingTarget(isGameTile, x, y) - else { - const ship = ships[index] - useGameProps.setState({ mode: ship.size - 2 }) - removeShip(ship) - setMouseCursor((e) => ({ ...e, shouldShow: true })) - } - } - }} - onMouseEnter={() => - setMouseCursor({ - x, - y, - shouldShow: - isGameTile && - (payload?.game?.state === "starting" - ? intersectingShip( - ships, - shipProps(ships, mode, { - x, - y, - orientation: targetPreview.orientation, - }), - true, - ).score < 2 - : true), - }) - } - /> - ) - })} - - ) -} - -export default BorderTiles diff --git a/leaky-ships/components/Gamefield/EventBar.tsx b/leaky-ships/components/Gamefield/EventBar.tsx deleted file mode 100644 index 530bb56..0000000 --- a/leaky-ships/components/Gamefield/EventBar.tsx +++ /dev/null @@ -1,395 +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 { useDrawProps } from "@hooks/useDrawProps" -import { useGameProps } from "@hooks/useGameProps" -import useIndex from "@hooks/useIndex" -import useShips from "@hooks/useShips" -import { socket } from "@lib/socket" -import { modes } from "@lib/utils/helpers" -import { GamePropsSchema } from "@lib/zodSchemas" -import { useRouter } from "next/router" -import { useCallback, useEffect, useMemo } from "react" -import { Icons, toast } from "react-toastify" -import { EventBarModes, GameSettings } from "../../interfaces/frontend" -import Item from "./Item" - -export function setGameSetting( - payload: GameSettings, - setSetting: (settings: GameSettings) => string | null, - full: (payload: GamePropsSchema) => void, -) { - return () => { - const hash = setSetting(payload) - socket.emit("gameSetting", payload, (newHash) => { - if (newHash === hash) return - console.log("hash", hash, newHash) - socket.emit("update", full) - }) - } -} - -function EventBar({ clear }: { clear: () => void }) { - const { shouldHide, color } = useDrawProps() - const { selfIndex, isActiveIndex, selfUser } = useIndex() - const { ships } = useShips() - const router = useRouter() - const { - payload, - userStates, - menu, - mode, - setSetting, - full, - target, - setTarget, - setTargetPreview, - setIsReady, - reset, - } = useGameProps() - const gameSetting = useCallback( - (payload: GameSettings) => setGameSetting(payload, setSetting, full), - [full, setSetting], - ) - - const items = useMemo( - () => ({ - main: [ - { - icon: "burger-menu", - text: "Menu", - callback: () => { - useGameProps.setState({ menu: "menu" }) - }, - }, - payload?.game?.state === "running" - ? { - icon: faSwords, - text: "Attack", - callback: () => { - useGameProps.setState({ menu: "moves" }) - }, - } - : { - icon: faShip, - text: "Ships", - callback: () => { - useGameProps.setState({ menu: "moves" }) - }, - }, - { - icon: "pen", - text: "Draw", - callback: () => { - useGameProps.setState({ menu: "draw" }) - }, - }, - { - icon: "gear", - text: "Settings", - callback: () => { - useGameProps.setState({ menu: "settings" }) - }, - }, - ], - menu: [ - { - icon: faFlag, - text: "Surrender", - iconColor: "darkred", - callback: () => { - useGameProps.setState({ menu: "surrender" }) - }, - }, - ], - moves: - payload?.game?.state === "running" - ? [ - { - icon: "scope", - text: "Fire missile", - enabled: mode === 0, - callback: () => { - useGameProps.setState({ mode: 0 }) - setTarget((e) => ({ ...e, show: false })) - }, - }, - { - icon: "torpedo", - text: "Fire torpedo", - enabled: mode === 1 || mode === 2, - amount: - 2 - - ((selfUser?.moves ?? []).filter( - (e) => e.type === "htorpedo" || e.type === "vtorpedo", - ).length ?? 0), - callback: () => { - useGameProps.setState({ mode: 1 }) - setTarget((e) => ({ ...e, show: false })) - }, - }, - { - icon: "radar", - text: "Radar scan", - enabled: mode === 3, - amount: - 1 - - ((selfUser?.moves ?? []).filter((e) => e.type === "radar") - .length ?? 0), - callback: () => { - useGameProps.setState({ mode: 3 }) - setTarget((e) => ({ ...e, 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 - useGameProps.setState({ 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 - useGameProps.setState({ 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 - useGameProps.setState({ mode: 2 }) - }, - }, - { - icon: faRotate, - text: "Rotate", - callback: () => { - setTargetPreview((t) => ({ - ...t, - orientation: t.orientation === "h" ? "v" : "h", - })) - }, - }, - ], - draw: [ - { icon: faBroomWide, text: "Clear", callback: clear }, - { icon: faPalette, text: "Color", iconColor: color }, - { - icon: shouldHide ? faEye : faEyeSlash, - text: shouldHide ? "Show" : "Hide", - callback: () => { - useDrawProps.setState({ shouldHide: !shouldHide }) - }, - }, - ], - settings: [ - { - icon: faGlasses, - text: "Spectators", - disabled: !payload?.game?.allowSpectators, - callback: gameSetting({ - allowSpectators: !payload?.game?.allowSpectators, - }), - }, - { - icon: faSparkles, - text: "Specials", - disabled: !payload?.game?.allowSpecials, - callback: gameSetting({ - allowSpecials: !payload?.game?.allowSpecials, - }), - }, - { - icon: faComments, - text: "Chat", - disabled: !payload?.game?.allowChat, - callback: gameSetting({ allowChat: !payload?.game?.allowChat }), - }, - { - icon: faScribble, - text: "Mark/Draw", - disabled: !payload?.game?.allowMarkDraw, - callback: gameSetting({ - allowMarkDraw: !payload?.game?.allowMarkDraw, - }), - }, - ], - surrender: [ - { - icon: faCheck, - text: "Yes", - iconColor: "green", - callback: async () => { - socket.emit("gameState", "aborted") - await router.push("/") - reset() - }, - }, - { - icon: faXmark, - text: "No", - iconColor: "red", - callback: () => { - useGameProps.setState({ menu: "main" }) - }, - }, - ], - }), - [ - payload?.game?.state, - payload?.game?.allowSpectators, - payload?.game?.allowSpecials, - payload?.game?.allowChat, - payload?.game?.allowMarkDraw, - mode, - selfUser?.moves, - ships, - clear, - color, - shouldHide, - gameSetting, - setTarget, - setTargetPreview, - router, - reset, - ], - ) - - useEffect(() => { - if ( - menu !== "moves" || - payload?.game?.state !== "starting" || - mode < 0 || - items.moves[mode].amount - ) - return - const index = items.moves.findIndex((e) => e.amount) - useGameProps.setState({ mode: index }) - }, [items.moves, menu, mode, payload?.game?.state]) - - useEffect(() => { - useDrawProps.setState({ enable: menu === "draw" }) - }, [menu]) - - useEffect(() => { - if (payload?.game?.state !== "running") return - - let toastId = "otherPlayer" - if (isActiveIndex) 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 }) - }, [isActiveIndex, menu, payload?.game?.state]) - - return ( -
- {menu !== "main" ? ( - { - useGameProps.setState({ menu: "main" }) - }, - }} - /> - ) : null} - {items[menu].map((e, i) => { - if (!isActiveIndex && menu === "main" && i === 1) return - return - })} - {menu === "moves" ? ( - = 0 && userStates[selfIndex].isReady - ? faLock - : faCheck, - text: - selfIndex >= 0 && userStates[selfIndex].isReady - ? "unready" - : "Done", - disabled: - payload?.game?.state === "starting" ? mode >= 0 : undefined, - enabled: - payload?.game?.state === "running" && mode >= 0 && target.show, - callback: () => { - if (selfIndex < 0) return - switch (payload?.game?.state) { - case "starting": - const isReady = !userStates[selfIndex].isReady - setIsReady({ isReady, i: selfIndex }) - socket.emit("isReady", isReady) - break - - case "running": - const i = (selfUser?.moves ?? []) - .map((e) => e.index) - .reduce((prev, curr) => (curr > prev ? curr : prev), 0) - const props = { - type: modes[mode].type, - x: target.x, - y: target.y, - orientation: target.orientation, - index: (selfUser?.moves ?? []).length ? i + 1 : 0, - } - socket.emit("dispatchMove", props) - setTarget((t) => ({ ...t, show: false })) - break - } - }, - }} - /> - ) : null} -
- ) -} - -export default EventBar diff --git a/leaky-ships/components/Gamefield/FogImages.tsx b/leaky-ships/components/Gamefield/FogImages.tsx deleted file mode 100644 index 3d455c9..0000000 --- a/leaky-ships/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/components/Gamefield/Gamefield.tsx b/leaky-ships/components/Gamefield/Gamefield.tsx deleted file mode 100644 index b51e92c..0000000 --- a/leaky-ships/components/Gamefield/Gamefield.tsx +++ /dev/null @@ -1,145 +0,0 @@ -// import Bluetooth from "./Bluetooth" -// import FogImages from "./FogImages" -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 { useDraw } from "@hooks/useDraw" -import { useDrawProps } from "@hooks/useDrawProps" -import { useGameProps } from "@hooks/useGameProps" -import useIndex from "@hooks/useIndex" -import useSocket from "@hooks/useSocket" -import { socket } from "@lib/socket" -import { overlapsWithAnyBorder } from "@lib/utils/helpers" -import { useRouter } from "next/router" -import { CSSProperties, useEffect } from "react" -import { toast } from "react-toastify" -import Labeling from "./Labeling" -import Ships from "./Ships" - -export const count = 12 - -function Gamefield() { - const { selfUser } = useIndex() - const router = useRouter() - const { - userStates, - mode, - target, - mouseCursor, - setMouseCursor, - payload, - setTargetPreview, - full, - reset, - } = useGameProps() - const { isConnected } = useSocket() - - const { canvasRef, onMouseDown, clear } = useDraw() - const { enable, color, shouldHide } = useDrawProps() - - useEffect(() => { - if ( - payload?.game?.state !== "starting" || - userStates.reduce((prev, curr) => prev || !curr.isReady, false) - ) - return - socket.emit("ships", selfUser?.ships ?? []) - socket.emit("gameState", "running") - }, [payload?.game?.state, selfUser?.ships, userStates]) - - useEffect(() => { - if (payload?.game?.id || !isConnected) return - socket.emit("update", full) - }, [full, payload?.game?.id, isConnected]) - - useEffect(() => { - if (mode < 0) return - const { x, y, show } = target - const { shouldShow, ...position } = mouseCursor - if ( - !shouldShow || - (payload?.game?.state === "running" && - overlapsWithAnyBorder(position, 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 (payload?.game?.state === "starting") { - setTargetPreview((t) => ({ - ...t, - orientation: t.orientation === "h" ? "v" : "h", - })) - } - if (payload?.game?.state === "running" && (mode === 1 || mode === 2)) - useGameProps.setState({ mode: mode === 1 ? 2 : 1 }) - } - document.addEventListener("keydown", handleKeyPress) - return () => { - document.removeEventListener("keydown", handleKeyPress) - } - } - }, [mode, mouseCursor, payload?.game?.state, setTargetPreview, target]) - - useEffect(() => { - if (payload?.game?.state !== "aborted") return - toast.info("Enemy gave up!") - router.push("/") - reset() - }, [payload?.game?.state, reset, router]) - - useEffect(() => { - if (payload?.game?.id) return - const timeout = setTimeout(() => router.push("/"), 5000) - return () => clearTimeout(timeout) - }, [payload?.game?.id, router]) - - return ( -
- {/* */} -
- setMouseCursor((e) => ({ ...e, shouldShow: false })) - } - > - - - {/* Collumn lettes and row numbers */} - - - - - - - {/* */} - - - - -
- -
- ) -} - -export default Gamefield diff --git a/leaky-ships/components/Gamefield/GamefieldPointer.tsx b/leaky-ships/components/Gamefield/GamefieldPointer.tsx deleted file mode 100644 index df07577..0000000 --- a/leaky-ships/components/Gamefield/GamefieldPointer.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { faCrosshairs } from "@fortawesome/pro-solid-svg-icons" -import { faRadar } from "@fortawesome/pro-thin-svg-icons" -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome" -import classNames from "classnames" -import { CSSProperties } from "react" -import { PointerProps } from "../../interfaces/frontend" - -function GamefieldPointer({ - props: { x, y, show, type, edges, imply }, - preview, -}: { - props: PointerProps - preview?: boolean -}) { - const isRadar = type === "radar" - const style = !(isRadar && !edges.filter((s) => s).length) - ? { "--x": x, "--y": y } - : { "--x1": x - 1, "--x2": x + 2, "--y1": y - 1, "--y2": y + 2 } - return ( -
- -
- ) -} - -export default GamefieldPointer diff --git a/leaky-ships/components/Gamefield/HitElems.tsx b/leaky-ships/components/Gamefield/HitElems.tsx deleted file mode 100644 index 4a580eb..0000000 --- a/leaky-ships/components/Gamefield/HitElems.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import { faBurst, faXmark } from "@fortawesome/pro-solid-svg-icons" -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome" -import useIndex from "@hooks/useIndex" -import { CSSProperties } from "react" -import { Hit } from "../../interfaces/frontend" - -function HitElems({ - props, -}: { - props?: { hits: Hit[]; colorOverride?: string } -}) { - const { activeUser } = useIndex() - - return ( - <> - {(props?.hits ?? activeUser?.hits ?? []).map(({ hit, x, y }, i) => ( -
- -
- ))} - - ) -} - -export default HitElems diff --git a/leaky-ships/components/Gamefield/Item.tsx b/leaky-ships/components/Gamefield/Item.tsx deleted file mode 100644 index ef6ba83..0000000 --- a/leaky-ships/components/Gamefield/Item.tsx +++ /dev/null @@ -1,73 +0,0 @@ -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome" -import { useDrawProps } from "@hooks/useDrawProps" -import classNames from "classnames" -import { CSSProperties, useEffect, useRef, useState } from "react" -import { HexColorPicker } from "react-colorful" -import { ItemProps } from "../../interfaces/frontend" - -function Item({ - props: { icon, text, amount, iconColor, disabled, enabled, callback }, -}: { - props: ItemProps -}) { - const isColor = text === "Color" - const { color, setColor } = useDrawProps() - const [active, setActive] = useState(false) - const cpRef = useRef(null) - - useEffect(() => { - const inActive = (e: MouseEvent) => { - if (cpRef.current && !cpRef.current.contains(e.target as Node)) - setActive(false) - } - - // Add event listeners - if (!isColor) return - setTimeout(() => window.addEventListener("click", inActive), 200) - - // Remove event listeners - return () => { - window.removeEventListener("click", inActive) - } - }, [active, isColor]) - - return ( -
setActive(true) : callback}> - {isColor ? ( -
- -
- ) : null} -
- {typeof icon === "string" ? ( - {`${icon}.png`} - ) : ( - - )} -
- {text} -
- ) -} - -export default Item diff --git a/leaky-ships/components/Gamefield/Ship.tsx b/leaky-ships/components/Gamefield/Ship.tsx deleted file mode 100644 index e1436d3..0000000 --- a/leaky-ships/components/Gamefield/Ship.tsx +++ /dev/null @@ -1,62 +0,0 @@ -import classNames from "classnames" -import { CSSProperties, useEffect, useRef } from "react" -import { ShipProps } from "../../interfaces/frontend" - -const sizes: { [n: number]: number } = { - 2: 96, - 3: 144, - 4: 196, -} - -function Ship({ - props: { size, variant, x, y, orientation }, - preview, - warn, - color, -}: { - props: ShipProps - preview?: boolean - warn?: boolean - color?: string -}) { - const filename = `ship_blue_${size}x_${variant}.gif` - const canvasRef = useRef(null) - - useEffect(() => { - const canvas = canvasRef.current - 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 = orientation === "h" ? sizes[size] : 48 - canvas.height = orientation === "v" ? sizes[size] : 48 - - if (orientation === "v") - // Rotate the canvas by 90 degrees - ctx.rotate((90 * Math.PI) / 180) - - // Draw the rotated GIF - ctx.drawImage(gif, 0, orientation === "h" ? 0 : -48, sizes[size], 48) - } - }, [filename, orientation, size, x, y]) - - return ( -
- -
- ) -} - -export default Ship diff --git a/leaky-ships/components/Gamefield/Ships.tsx b/leaky-ships/components/Gamefield/Ships.tsx deleted file mode 100644 index 2932a4f..0000000 --- a/leaky-ships/components/Gamefield/Ships.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { useGameProps } from "@hooks/useGameProps" -import useIndex from "@hooks/useIndex" -import Ship from "./Ship" - -function Ships() { - const { payload } = useGameProps() - const { isActiveIndex, selfUser } = useIndex() - - if (payload?.game?.state === "running" && isActiveIndex) return null - - return ( - <>{selfUser?.ships.map((props, i) => )} - ) -} - -export default Ships diff --git a/leaky-ships/components/Gamefield/Targets.tsx b/leaky-ships/components/Gamefield/Targets.tsx deleted file mode 100644 index ef8fe3b..0000000 --- a/leaky-ships/components/Gamefield/Targets.tsx +++ /dev/null @@ -1,71 +0,0 @@ -import { useGameProps } from "@hooks/useGameProps" -import useIndex from "@hooks/useIndex" -import useShips from "@hooks/useShips" -import { - composeTargetTiles, - intersectingShip, - shipProps, -} from "@lib/utils/helpers" -import GamefieldPointer from "./GamefieldPointer" -import HitElems from "./HitElems" -import Ship from "./Ship" - -function Targets() { - const { activeUser } = useIndex() - const { payload, target, targetPreview, mode } = useGameProps() - const { ships } = useShips() - - switch (payload?.game?.state) { - case "running": - return ( - <> - {[ - ...composeTargetTiles(target, mode, activeUser?.hits ?? []).map( - (props, i) => , - ), - ...composeTargetTiles( - targetPreview, - mode, - activeUser?.hits ?? [], - ).map((props, i) => ( - - )), - ]} - - ) - - case "starting": - if (mode < 0 && !targetPreview.show) return null - const ship = shipProps(ships, mode, targetPreview) - const { fields, borders, score } = intersectingShip(ships, ship) - return ( - <> - 0} - color={ - fields.length ? "red" : borders.length ? "orange" : undefined - } - key={targetPreview.orientation} - props={ship} - /> - ({ ...e, i, hit: true })), - }} - /> - ({ ...e, i, hit: true })), - colorOverride: "orange", - }} - /> - - ) - - default: - return null - } -} - -export default Targets diff --git a/leaky-ships/components/Grid.tsx b/leaky-ships/components/Grid.tsx deleted file mode 100644 index db2e8be..0000000 --- a/leaky-ships/components/Grid.tsx +++ /dev/null @@ -1,115 +0,0 @@ -import classNames from "classnames" -import { CSSProperties, useEffect, useMemo, useState } from "react" - -function Grid() { - function floorClient(number: number) { - return Math.floor(number / 50) - } - - const [columns, setColumns] = useState(0) - const [rows, setRows] = useState(0) - const [params, setParams] = useState({ - columns, - rows, - quantity: columns * rows, - }) - const [position, setPosition] = useState([0, 0]) - const [active, setActve] = useState(false) - const [count, setCount] = useState(0) - - useEffect(() => { - function handleResize() { - setColumns(floorClient(document.body.clientWidth)) - setRows(floorClient(document.body.clientHeight)) - } - handleResize() - window.addEventListener("resize", handleResize) - }, []) - - useEffect(() => { - const timeout = setTimeout(() => { - setParams({ columns, rows, quantity: columns * rows }) - }, 500) - return () => clearTimeout(timeout) - }, [columns, rows]) - - const createTiles = useMemo(() => { - 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)", - ] - - function createTile(index: number) { - const x = index % params.columns - const y = Math.floor(index / params.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(params.columns, 0), - pos(0, params.rows), - pos(params.columns, params.rows), - ] - - setTimeout( - () => { - setActve(false) - setCount((e) => e + 1) - }, - Math.max(...diagonals) * 1000 + 300, - ) - } - - return ( -
doEffect(x, y)} - /> - ) - } - - return ( -
- {Array.from(Array(params.quantity), (_tile, index) => - createTile(index), - )} -
- ) - }, [params, position, active, count]) - - return createTiles -} - -export default Grid diff --git a/leaky-ships/components/Grid2.tsx b/leaky-ships/components/Grid2.tsx deleted file mode 100644 index 65a3f2e..0000000 --- a/leaky-ships/components/Grid2.tsx +++ /dev/null @@ -1,121 +0,0 @@ -import classNames from "classnames" -import { CSSProperties, useEffect, useMemo, useState } from "react" - -function Grid2() { - function floorClient(number: number) { - return Math.floor(number / 50) - } - - const [columns, setColumns] = useState(0) - const [rows, setRows] = useState(0) - const [params, setParams] = useState({ - columns, - rows, - quantity: columns * rows, - }) - const [position, setPosition] = useState([0, 0]) - const [active, setActve] = useState(false) - const [action, setAction] = useState(false) - const [count, setCount] = useState(0) - - useEffect(() => { - function handleResize() { - setColumns(floorClient(document.body.clientWidth)) - setRows(floorClient(document.body.clientHeight)) - } - handleResize() - window.addEventListener("resize", handleResize) - }, []) - - useEffect(() => { - const timeout = setTimeout(() => { - setParams({ columns, rows, quantity: columns * rows }) - }, 500) - return () => clearTimeout(timeout) - }, [columns, rows]) - - const createTiles = useMemo(() => { - const sentences = [ - "Ethem ...", - "hat ...", - "lange ...", - "Hörner 🐂", - "Grüße von Mallorca 🌊 🦦 ☀️", - ] - - function createTile(index: number) { - const x = index % params.columns - const y = Math.floor(index / params.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(params.columns, 0), - pos(0, params.rows), - pos(params.columns, params.rows), - ] - - setTimeout( - () => { - setAction(false) - if (active) setCount((e) => e + 1) - }, - Math.max(...diagonals) * 1000 + 1000, - ) - } - - return ( -
doEffect(x, y)} - /> - ) - } - - return ( -
-
-

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

-
- {Array.from(Array(params.quantity), (_tile, index) => - createTile(index), - )} -
- ) - }, [params, position, active, action, count]) - - return createTiles -} - -export default Grid2 diff --git a/leaky-ships/components/Lobby/Icon.tsx b/leaky-ships/components/Lobby/Icon.tsx deleted file mode 100644 index de4c9c4..0000000 --- a/leaky-ships/components/Lobby/Icon.tsx +++ /dev/null @@ -1,27 +0,0 @@ -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 deleted file mode 100644 index 1eb7dc0..0000000 --- a/leaky-ships/components/Lobby/LobbyFrame.tsx +++ /dev/null @@ -1,143 +0,0 @@ -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 deleted file mode 100644 index 5f6d25c..0000000 --- a/leaky-ships/components/Lobby/Player.tsx +++ /dev/null @@ -1,125 +0,0 @@ -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 deleted file mode 100644 index 9734523..0000000 --- a/leaky-ships/components/Lobby/SettingsFrame/Setting.tsx +++ /dev/null @@ -1,58 +0,0 @@ -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 deleted file mode 100644 index 6c3c05b..0000000 --- a/leaky-ships/components/Lobby/SettingsFrame/Settings.tsx +++ /dev/null @@ -1,77 +0,0 @@ -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 deleted file mode 100644 index 5f1ef32..0000000 --- a/leaky-ships/components/Logo.tsx +++ /dev/null @@ -1,83 +0,0 @@ -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 deleted file mode 100644 index 41ff4bf..0000000 --- a/leaky-ships/components/OptionButton.tsx +++ /dev/null @@ -1,41 +0,0 @@ -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/drizzle.config.ts b/leaky-ships/drizzle.config.ts new file mode 100644 index 0000000..f0f8e09 --- /dev/null +++ b/leaky-ships/drizzle.config.ts @@ -0,0 +1,11 @@ +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 a0d435f..80738f0 100644 --- a/leaky-ships/e2e/auth.spec.ts +++ b/leaky-ships/e2e/auth.spec.ts @@ -1,6 +1,5 @@ import { expect, test, type BrowserContext, type Page } from "@playwright/test" -const callbackUrl = process.env.NEXTAUTH_URL + "/" let context: BrowserContext let page: Page @@ -16,36 +15,36 @@ test.describe.serial("Check Azure AD auth", () => { }) test("Login process...", async () => { - await page.goto(callbackUrl + "signin") + await page.goto("/signin") - await page.waitForLoadState("domcontentloaded") - - await page.click("button#microsoft") + await page.locator("button#microsoft").click() // Indicates email can be filled in await page.waitForSelector("a#cantAccessAccount") // Fill email input - await page.fill("input#i0116", process.env.AUTH_EMAIL ?? "") + await page.locator("input#i0116").fill(process.env.AUTH_EMAIL!) // Click the "Next" button - await page.click("input#idSIButton9") + await page.locator("input#idSIButton9").click() // Indicates password can be filled in await page.waitForSelector("a#idA_PWD_ForgotPassword") // Fill password input - await page.fill("input#i0118", process.env.AUTH_PW ?? "") + await page.locator("input#i0118").fill(process.env.AUTH_PW!) // Click the "Sign in" button - await page.click("input#idSIButton9") + await page.locator("input#idSIButton9").click() // Click the "No" button - await page.click("input#idBtn_Back") + await page.locator("input#idBtn_Back").click() await page.waitForSelector("#start") }) test("Is logged in", async () => { - await page.goto(callbackUrl + "signin") + await page.goto("/signin") + await page.waitForSelector("button#signout") + await page.goto("/") await page.waitForSelector("#start") await page.evaluate(() => document.fonts.ready) @@ -55,11 +54,9 @@ test.describe.serial("Check Azure AD auth", () => { }) test("Is logged out", async () => { - await page.goto(callbackUrl + "signout") + await page.goto("/signout") - await page.waitForLoadState("domcontentloaded") - - await page.click("button#signout") + await page.locator("button#signout").click() await page.waitForSelector("#start") diff --git a/leaky-ships/e2e/email.spec.ts b/leaky-ships/e2e/email.spec.ts index fd88fbf..dece2a0 100644 --- a/leaky-ships/e2e/email.spec.ts +++ b/leaky-ships/e2e/email.spec.ts @@ -5,9 +5,10 @@ import { type Page, } from "@playwright/test" import { createHash, randomBytes } from "crypto" -import prisma from "../lib/prisma" +import { and, desc, eq } from "drizzle-orm" +import db from "~/drizzle" +import { verificationTokens } from "~/drizzle/schemas/Tables" -const callbackUrl = process.env.NEXTAUTH_URL + "/" const player1Email = (browser: Browser) => browser.browserType().name() + "-player-1@example.com" @@ -25,51 +26,51 @@ test.describe.serial("Check Email auth", () => { }) test("Email login process...", async ({ browser }) => { - await page.goto(callbackUrl + "signin") + await page.goto("/signin") - await page.waitForSelector("input#email") - await page.fill("input#email", player1Email(browser)) - await page.click("button#email-submit") + await page.locator("input#email").fill(player1Email(browser)) + await page.locator("button#email-submit").click() - await page.waitForURL( - callbackUrl + "api/auth/verify-request?provider=email&type=email", - ) + await page.waitForURL("/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.NEXTAUTH_SECRET}`) + .update(`${token}${process.env.AUTH_SECRET}`) .digest("hex") - // 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 }, + // 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)], }) + await db + .update(verificationTokens) + .set({ token: hash }) + .where( + and( + eq(verificationTokens.identifier, player1Email(browser)), + eq(verificationTokens.token, latestToken?.token ?? ""), + ), + ) const params = new URLSearchParams({ - callbackUrl, + callbackUrl: process.env.AUTH_URL!, token, email: player1Email(browser), }) - const url = callbackUrl + "api/auth/callback/email?" + params - await page.goto(url) + await page.goto("/api/auth/callback/email?" + params) + }) - await page.waitForLoadState("domcontentloaded") + 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") }) }) diff --git a/leaky-ships/global.d.ts b/leaky-ships/global.d.ts deleted file mode 100644 index 4e697e9..0000000 --- a/leaky-ships/global.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import "@total-typescript/ts-reset" - -declare global { - var prismaClient: PrismaClient -} diff --git a/leaky-ships/hooks/useDraw.ts b/leaky-ships/hooks/useDraw.ts deleted file mode 100644 index fe360b1..0000000 --- a/leaky-ships/hooks/useDraw.ts +++ /dev/null @@ -1,126 +0,0 @@ -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 deleted file mode 100644 index f7ddff0..0000000 --- a/leaky-ships/hooks/useDrawProps.ts +++ /dev/null @@ -1,40 +0,0 @@ -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 deleted file mode 100644 index 0d532d5..0000000 --- a/leaky-ships/hooks/useGameProps.ts +++ /dev/null @@ -1,274 +0,0 @@ -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 deleted file mode 100644 index 81924be..0000000 --- a/leaky-ships/hooks/useIndex.ts +++ /dev/null @@ -1,24 +0,0 @@ -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 deleted file mode 100644 index 54d7ab4..0000000 --- a/leaky-ships/hooks/useShips.ts +++ /dev/null @@ -1,27 +0,0 @@ -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 deleted file mode 100644 index 72d08b3..0000000 --- a/leaky-ships/hooks/useSocket.ts +++ /dev/null @@ -1,192 +0,0 @@ -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/jest-puppeteer.config.js b/leaky-ships/jest-puppeteer.config.js deleted file mode 100644 index 0271d4c..0000000 --- a/leaky-ships/jest-puppeteer.config.js +++ /dev/null @@ -1,6 +0,0 @@ -/** @type {import('jest-environment-puppeteer').JestPuppeteerConfig} */ -module.exports = { - launch: { - headless: "new", - }, -} diff --git a/leaky-ships/lib/backend/sendResponse.ts b/leaky-ships/lib/backend/sendResponse.ts deleted file mode 100644 index e4d4b7d..0000000 --- a/leaky-ships/lib/backend/sendResponse.ts +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index 97541f2..0000000 --- a/leaky-ships/lib/getPayloadwithChecksum.ts +++ /dev/null @@ -1,10 +0,0 @@ -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 deleted file mode 100644 index 5f7a05b..0000000 --- a/leaky-ships/lib/prisma.ts +++ /dev/null @@ -1,15 +0,0 @@ -// 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/lib/zodSchemas.ts b/leaky-ships/lib/zodSchemas.ts deleted file mode 100644 index 1917809..0000000 --- a/leaky-ships/lib/zodSchemas.ts +++ /dev/null @@ -1,73 +0,0 @@ -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 deleted file mode 100644 index a843cbe..0000000 --- a/leaky-ships/next.config.js +++ /dev/null @@ -1,6 +0,0 @@ -/** @type {import('next').NextConfig} */ -const nextConfig = { - reactStrictMode: true, -} - -module.exports = nextConfig diff --git a/leaky-ships/package.json b/leaky-ships/package.json index 62c6a46..cc4f04c 100644 --- a/leaky-ships/package.json +++ b/leaky-ships/package.json @@ -1,64 +1,80 @@ { "name": "leaky-ships", - "version": "0.1.0", - "private": true, "scripts": { - "dev": "next dev", - "build": "next build", - "start": "next start", - "lint": "next lint", - "test": "pnpm playwright test --ui" + "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" }, + "type": "module", "dependencies": { - "@fortawesome/fontawesome-svg-core": "^6.4.0", - "@fortawesome/pro-duotone-svg-icons": "^6.4.0", - "@fortawesome/pro-light-svg-icons": "^6.4.0", - "@fortawesome/pro-regular-svg-icons": "^6.4.0", - "@fortawesome/pro-solid-svg-icons": "^6.4.0", - "@fortawesome/pro-thin-svg-icons": "^6.4.0", - "@fortawesome/react-fontawesome": "^0.2.0", - "@fortawesome/sharp-solid-svg-icons": "^6.4.0", - "@next-auth/prisma-adapter": "^1.0.7", - "@next/font": "13.1.1", - "@prisma/client": "^4.16.2", - "classnames": "^2.3.2", + "@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", "colors": "^1.4.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.22.3", - "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.1", - "socket.io-client": "^4.7.1", - "typescript": "4.9.4", + "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", "unique-names-generator": "^4.7.1", - "zod": "3.21.1", - "zod-prisma-types": "^2.7.4", - "zustand": "^4.3.9" + "vinxi": "^0.3.3", + "zod": "3.22.4" }, + "packageManager": "pnpm@8.7.4", "devDependencies": { - "@playwright/test": "^1.36.2", - "@total-typescript/ts-reset": "^0.3.7", - "@types/node": "^18.17.0", - "@types/react": "^18.2.15", - "@types/react-dom": "^18.2.7", - "@types/web-bluetooth": "^0.0.16", - "autoprefixer": "^10.4.14", - "dotenv": "^16.3.1", - "eslint-config-prettier": "^8.8.0", - "postcss": "^8.4.27", - "prettier": "^3.0.0", - "prettier-plugin-organize-imports": "^3.2.3", - "prettier-plugin-tailwindcss": "^0.4.1", - "sass": "^1.64.1", - "tailwindcss": "^3.3.3" + "@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" + } } } diff --git a/leaky-ships/pages/_app.tsx b/leaky-ships/pages/_app.tsx deleted file mode 100644 index 39f833e..0000000 --- a/leaky-ships/pages/_app.tsx +++ /dev/null @@ -1,21 +0,0 @@ -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 deleted file mode 100644 index 519bd99..0000000 --- a/leaky-ships/pages/_document.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { Head, Html, Main, NextScript } from "next/document" - -export default function Document() { - return ( - - - -
- - - - ) -} diff --git a/leaky-ships/pages/api/game/[id].ts b/leaky-ships/pages/api/game/[id].ts deleted file mode 100644 index 6428d5f..0000000 --- a/leaky-ships/pages/api/game/[id].ts +++ /dev/null @@ -1,46 +0,0 @@ -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 deleted file mode 100644 index 80db044..0000000 --- a/leaky-ships/pages/api/game/create.ts +++ /dev/null @@ -1,66 +0,0 @@ -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 deleted file mode 100644 index 91d5e68..0000000 --- a/leaky-ships/pages/api/game/join.ts +++ /dev/null @@ -1,89 +0,0 @@ -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 deleted file mode 100644 index ba7212f..0000000 --- a/leaky-ships/pages/api/game/running.ts +++ /dev/null @@ -1,155 +0,0 @@ -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 deleted file mode 100644 index 8cef0d8..0000000 --- a/leaky-ships/pages/api/ws.ts +++ /dev/null @@ -1,299 +0,0 @@ -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 deleted file mode 100644 index 712591e..0000000 --- a/leaky-ships/pages/game.tsx +++ /dev/null @@ -1,44 +0,0 @@ -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 deleted file mode 100644 index 8149bd9..0000000 --- a/leaky-ships/pages/gamefield.tsx +++ /dev/null @@ -1,22 +0,0 @@ -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 deleted file mode 100644 index a417714..0000000 --- a/leaky-ships/pages/grid.tsx +++ /dev/null @@ -1,22 +0,0 @@ -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 deleted file mode 100644 index 9390e58..0000000 --- a/leaky-ships/pages/grid2.tsx +++ /dev/null @@ -1,22 +0,0 @@ -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 deleted file mode 100644 index d3e0e71..0000000 --- a/leaky-ships/pages/index.tsx +++ /dev/null @@ -1,30 +0,0 @@ -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 deleted file mode 100644 index 4aa3e0d..0000000 --- a/leaky-ships/pages/lobby.tsx +++ /dev/null @@ -1,39 +0,0 @@ -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 deleted file mode 100644 index 0d91cb2..0000000 --- a/leaky-ships/pages/signin.tsx +++ /dev/null @@ -1,152 +0,0 @@ -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 deleted file mode 100644 index e945862..0000000 --- a/leaky-ships/pages/signout.tsx +++ /dev/null @@ -1,43 +0,0 @@ -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 deleted file mode 100644 index 1e241f8..0000000 --- a/leaky-ships/pages/start.tsx +++ /dev/null @@ -1,231 +0,0 @@ -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 3cf623a..a593aea 100644 --- a/leaky-ships/playwright.config.ts +++ b/leaky-ships/playwright.config.ts @@ -1,10 +1,11 @@ import { defineConfig, devices } from "@playwright/test" +import dotenv from "dotenv" /** * Read environment variables from file. * https://github.com/motdotla/dotenv */ -require("dotenv").config() +dotenv.config() /** * See https://playwright.dev/docs/test-configuration. @@ -24,7 +25,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: 'http://127.0.0.1:3000', + baseURL: process.env.AUTH_URL!, /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ trace: "on-first-retry", @@ -70,8 +71,8 @@ export default defineConfig({ /* Run your local dev server before starting the tests */ webServer: { - command: "pnpm run start", - url: process.env.NEXTAUTH_URL, + command: "pnpm start", + url: process.env.AUTH_URL, reuseExistingServer: !process.env.CI, }, }) diff --git a/leaky-ships/pnpm-lock.yaml b/leaky-ships/pnpm-lock.yaml index 1c775aa..2a861dd 100644 --- a/leaky-ships/pnpm-lock.yaml +++ b/leaky-ships/pnpm-lock.yaml @@ -4,277 +4,2116 @@ 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.4.0 - version: 6.4.0 + specifier: ^6.5.1 + version: 6.5.1 '@fortawesome/pro-duotone-svg-icons': - specifier: ^6.4.0 - version: 6.4.0 + specifier: ^6.5.1 + version: 6.5.1 '@fortawesome/pro-light-svg-icons': - specifier: ^6.4.0 - version: 6.4.0 + specifier: ^6.5.1 + version: 6.5.1 '@fortawesome/pro-regular-svg-icons': - specifier: ^6.4.0 - version: 6.4.0 + specifier: ^6.5.1 + version: 6.5.1 '@fortawesome/pro-solid-svg-icons': - specifier: ^6.4.0 - version: 6.4.0 + specifier: ^6.5.1 + version: 6.5.1 '@fortawesome/pro-thin-svg-icons': - specifier: ^6.4.0 - version: 6.4.0 - '@fortawesome/react-fontawesome': - specifier: ^0.2.0 - version: 0.2.0(@fortawesome/fontawesome-svg-core@6.4.0)(react@18.2.0) + specifier: ^6.5.1 + version: 6.5.1 '@fortawesome/sharp-solid-svg-icons': - specifier: ^6.4.0 - version: 6.4.0 - '@next-auth/prisma-adapter': - specifier: ^1.0.7 - version: 1.0.7(@prisma/client@4.16.2)(next-auth@4.22.3) - '@next/font': - specifier: 13.1.1 - version: 13.1.1 - '@prisma/client': - specifier: ^4.16.2 - version: 4.16.2(prisma@4.16.2) + 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) classnames: - specifier: ^2.3.2 - version: 2.3.2 + specifier: ^2.5.1 + version: 2.5.1 colors: specifier: ^1.4.0 version: 1.4.0 - 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) + 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) http-status: - 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.64.1) - next-auth: - specifier: ^4.22.3 - version: 4.22.3(next@13.1.1)(nodemailer@6.9.4)(react-dom@18.2.0)(react@18.2.0) + 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 nodemailer: - 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) + 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 socket.io: - specifier: ^4.7.1 - version: 4.7.1 + specifier: ^4.7.4 + version: 4.7.4 socket.io-client: - specifier: ^4.7.1 - version: 4.7.1 - typescript: - specifier: 4.9.4 - version: 4.9.4 + 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 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.21.1 - version: 3.21.1 - zod-prisma-types: - specifier: ^2.7.4 - version: 2.7.4 - zustand: - specifier: ^4.3.9 - version: 4.3.9(immer@10.0.2)(react@18.2.0) + specifier: 3.22.4 + version: 3.22.4 devDependencies: '@playwright/test': - specifier: ^1.36.2 - version: 1.36.2 + specifier: ^1.41.2 + version: 1.41.2 '@total-typescript/ts-reset': - specifier: ^0.3.7 - version: 0.3.7 + specifier: ^0.5.1 + version: 0.5.1 + '@types/json-stable-stringify': + specifier: ^1.0.36 + version: 1.0.36 '@types/node': - specifier: ^18.17.0 - version: 18.17.0 - '@types/react': - specifier: ^18.2.15 - version: 18.2.15 - '@types/react-dom': - specifier: ^18.2.7 - version: 18.2.7 + 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 '@types/web-bluetooth': - specifier: ^0.0.16 - version: 0.0.16 + 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) autoprefixer: - specifier: ^10.4.14 - version: 10.4.14(postcss@8.4.27) + specifier: ^10.4.17 + version: 10.4.17(postcss@8.4.35) dotenv: - specifier: ^16.3.1 - version: 16.3.1 + 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 eslint-config-prettier: - specifier: ^8.8.0 - version: 8.8.0(eslint@8.31.0) + 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 postcss: - specifier: ^8.4.27 - version: 8.4.27 + specifier: ^8.4.35 + version: 8.4.35 prettier: - specifier: ^3.0.0 - version: 3.0.0 + specifier: ^3.2.5 + version: 3.2.5 prettier-plugin-organize-imports: - specifier: ^3.2.3 - version: 3.2.3(prettier@3.0.0)(typescript@4.9.4) + specifier: ^3.2.4 + version: 3.2.4(prettier@3.2.5)(typescript@5.3.3) prettier-plugin-tailwindcss: - specifier: ^0.4.1 - version: 0.4.1(prettier-plugin-organize-imports@3.2.3)(prettier@3.0.0) + specifier: ^0.5.11 + version: 0.5.11(prettier-plugin-organize-imports@3.2.4)(prettier@3.2.5) sass: - specifier: ^1.64.1 - version: 1.64.1 + 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) tailwindcss: - specifier: ^3.3.3 - version: 3.3.3 + 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) 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 - /@babel/runtime@7.22.6: - resolution: {integrity: sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==} - engines: {node: '>=6.9.0'} + /@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + engines: {node: '>=6.0.0'} dependencies: - regenerator-runtime: 0.13.11 + '@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) dev: false - /@eslint/eslintrc@1.4.1: - resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} + /@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==} 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.20.0 - ignore: 5.2.4 + globals: 13.24.0 + ignore: 5.3.1 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 - /@fortawesome/fontawesome-common-types@6.4.0: - resolution: {integrity: sha512-HNii132xfomg5QVZw0HwXXpN22s7VBHQBv9CeOu9tfJnhsWQNd2lmTNi8CSrnw5B+5YOmzu1UoPAyxaXsJ6RgQ==, tarball: https://npm.fontawesome.com/@fortawesome/fontawesome-common-types/-/6.4.0/fontawesome-common-types-6.4.0.tgz} + /@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} engines: {node: '>=6'} requiresBuild: true dev: false - /@fortawesome/fontawesome-svg-core@6.4.0: - resolution: {integrity: sha512-Bertv8xOiVELz5raB2FlXDPKt+m94MQ3JgDfsVbrqNpLU9+UE2E18GKjLKw+d3XbeYPqg1pzyQKGsrzbw+pPaw==, tarball: https://npm.fontawesome.com/@fortawesome/fontawesome-svg-core/-/6.4.0/fontawesome-svg-core-6.4.0.tgz} + /@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} engines: {node: '>=6'} requiresBuild: true dependencies: - '@fortawesome/fontawesome-common-types': 6.4.0 + '@fortawesome/fontawesome-common-types': 6.5.1 dev: false - /@fortawesome/pro-duotone-svg-icons@6.4.0: - resolution: {integrity: sha512-cTuIgDDhU/kB4UCOSN7Tdt0WQ5pcTMmxUY9KvcMZ1dqa68fWAL2q+6ztpVzYOMpYvErYN0+86t6xyJ7E58f3wg==, tarball: https://npm.fontawesome.com/@fortawesome/pro-duotone-svg-icons/-/6.4.0/pro-duotone-svg-icons-6.4.0.tgz} + /@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} engines: {node: '>=6'} requiresBuild: true dependencies: - '@fortawesome/fontawesome-common-types': 6.4.0 + '@fortawesome/fontawesome-common-types': 6.5.1 dev: false - /@fortawesome/pro-light-svg-icons@6.4.0: - resolution: {integrity: sha512-LAK1nUBWhXz8wrNBP+GwpZPqDSHfj7Xp9hhKqhF0Gd2lYtjgl67IvQSf1Vv1o75LK+odq6rkt6RfzBv0quwH/g==, tarball: https://npm.fontawesome.com/@fortawesome/pro-light-svg-icons/-/6.4.0/pro-light-svg-icons-6.4.0.tgz} + /@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} engines: {node: '>=6'} requiresBuild: true dependencies: - '@fortawesome/fontawesome-common-types': 6.4.0 + '@fortawesome/fontawesome-common-types': 6.5.1 dev: false - /@fortawesome/pro-regular-svg-icons@6.4.0: - resolution: {integrity: sha512-yEJgoA/31qfIsD27kAg31BODCD+bvgievPp4R39F3kUp/+mu05qX6xgW366RUfs4CnTWSw0fFpc4AhFwC7xbJw==, tarball: https://npm.fontawesome.com/@fortawesome/pro-regular-svg-icons/-/6.4.0/pro-regular-svg-icons-6.4.0.tgz} + /@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} engines: {node: '>=6'} requiresBuild: true dependencies: - '@fortawesome/fontawesome-common-types': 6.4.0 + '@fortawesome/fontawesome-common-types': 6.5.1 dev: false - /@fortawesome/pro-solid-svg-icons@6.4.0: - resolution: {integrity: sha512-R54gxoqHAZdlSCmE7JYpQKT64Jgw59nQIyabT6oh3jsb70O4A3ea+ojVBCKsvoW4UhYe1IOXS1o4PqDEW8Y7Tg==, tarball: https://npm.fontawesome.com/@fortawesome/pro-solid-svg-icons/-/6.4.0/pro-solid-svg-icons-6.4.0.tgz} + /@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} engines: {node: '>=6'} requiresBuild: true dependencies: - '@fortawesome/fontawesome-common-types': 6.4.0 + '@fortawesome/fontawesome-common-types': 6.5.1 dev: false - /@fortawesome/pro-thin-svg-icons@6.4.0: - resolution: {integrity: sha512-OVRndqHJNYFtFLUX4p9nDgIAHGs1DdR7EtVKq+oepfCH4kkTM/flsI1gjEty6VV6/FifrWCzEXyDvOzdjgqwRA==, tarball: https://npm.fontawesome.com/@fortawesome/pro-thin-svg-icons/-/6.4.0/pro-thin-svg-icons-6.4.0.tgz} + /@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} engines: {node: '>=6'} requiresBuild: true dependencies: - '@fortawesome/fontawesome-common-types': 6.4.0 + '@fortawesome/fontawesome-common-types': 6.5.1 dev: false - /@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@6.4.0)(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.0 - prop-types: 15.8.1 - react: 18.2.0 - dev: false - - /@fortawesome/sharp-solid-svg-icons@6.4.0: - resolution: {integrity: sha512-7fpvOwhFlJSuHKeYON8nz9N4PQ30RMtMN9TlO9et3vBQgDGVFDyfKEu3rOmJhv+xLKJWLpd0cx5VvViGg1FXzg==, tarball: https://npm.fontawesome.com/@fortawesome/sharp-solid-svg-icons/-/6.4.0/sharp-solid-svg-icons-6.4.0.tgz} + /@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} engines: {node: '>=6'} requiresBuild: true dependencies: - '@fortawesome/fontawesome-common-types': 6.4.0 + '@fortawesome/fontawesome-common-types': 6.5.1 dev: false - /@humanwhocodes/config-array@0.11.10: - resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} + /@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==} engines: {node: '>=10.10.0'} dependencies: - '@humanwhocodes/object-schema': 1.2.1 + '@humanwhocodes/object-schema': 2.0.2 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@1.2.1: - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + /@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 /@jridgewell/gen-mapping@0.3.3: resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} @@ -282,174 +2121,73 @@ packages: dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.18 - dev: true + '@jridgewell/trace-mapping': 0.3.22 - /@jridgewell/resolve-uri@3.1.0: - resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - dev: true /@jridgewell/set-array@1.1.2: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} - dev: true - /@jridgewell/sourcemap-codec@1.4.14: - resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} - dev: true + /@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 /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - dev: true - /@jridgewell/trace-mapping@0.3.18: - resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} + /@jridgewell/trace-mapping@0.3.22: + resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==} dependencies: - '@jridgewell/resolve-uri': 3.1.0 - '@jridgewell/sourcemap-codec': 1.4.14 - dev: true + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 - /@next-auth/prisma-adapter@1.0.7(@prisma/client@4.16.2)(next-auth@4.22.3): - resolution: {integrity: sha512-Cdko4KfcmKjsyHFrWwZ//lfLUbcLqlyFqjd/nYE2m3aZ7tjMNUjpks47iw7NTCnXf+5UWz5Ypyt1dSs1EP5QJw==} - peerDependencies: - '@prisma/client': '>=2.26.0 || >=3' - next-auth: ^4 + /@mapbox/node-pre-gyp@1.0.11: + resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} + hasBin: true dependencies: - '@prisma/client': 4.16.2(prisma@4.16.2) - next-auth: 4.22.3(next@13.1.1)(nodemailer@6.9.4)(react-dom@18.2.0)(react@18.2.0) + 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 dev: false - /@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==} + /@netlify/functions@2.6.0: + resolution: {integrity: sha512-vU20tij0fb4nRGACqb+5SQvKd50JYyTyEhQetCMHdakcJFzjLDivvRR16u1G2Oy4A7xNAtGJF1uz8reeOtTVcQ==} + engines: {node: '>=14.0.0'} dependencies: - glob: 7.1.7 + '@netlify/serverless-functions-api': 1.14.0 dev: false - /@next/font@13.1.1: - resolution: {integrity: sha512-amygRorS05hYK1/XQRZo5qBl7l2fpHnezeKU/cNveWU5QJg+sg8gMGkUXHtvesNKpiKIJshBRH1TzvO+2sKpvQ==} + /@netlify/node-cookies@0.1.0: + resolution: {integrity: sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g==} + engines: {node: ^14.16.0 || >=16.0.0} dev: false - /@next/swc-android-arm-eabi@13.1.1: - resolution: {integrity: sha512-qnFCx1kT3JTWhWve4VkeWuZiyjG0b5T6J2iWuin74lORCupdrNukxkq9Pm+Z7PsatxuwVJMhjUoYz7H4cWzx2A==} - engines: {node: '>= 10'} - cpu: [arm] - os: [android] - requiresBuild: true + /@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 dev: false - optional: true - /@next/swc-android-arm64@13.1.1: - resolution: {integrity: sha512-eCiZhTzjySubNqUnNkQCjU3Fh+ep3C6b5DCM5FKzsTH/3Gr/4Y7EiaPZKILbvnXmhWtKPIdcY6Zjx51t4VeTfA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [android] - requiresBuild: true + /@noble/hashes@1.3.3: + resolution: {integrity: sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==} + engines: {node: '>= 16'} 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==} @@ -467,216 +2205,1047 @@ packages: engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 + fastq: 1.17.1 /@panva/hkdf@1.1.1: resolution: {integrity: sha512-dhPeilub1NuIG0X5Kvhh9lH4iW3ZsHlnzwgwbOlgwQ2wG1IqFzsgHqmKPk3WzsdWAeaxKJxgM0+W433RmN45GA==} dev: false - /@pkgr/utils@2.4.2: - resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + /@paralleldrive/cuid2@2.2.2: + resolution: {integrity: sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==} dependencies: - cross-spawn: 7.0.3 - fast-glob: 3.3.1 - is-glob: 4.0.3 - open: 9.1.0 - picocolors: 1.0.0 - tslib: 2.6.0 + '@noble/hashes': 1.3.3 dev: false - /@playwright/test@1.36.2: - resolution: {integrity: sha512-2rVZeyPRjxfPH6J0oGJqE8YxiM1IBRyM8hyrXYK7eSiAqmbNhxwcLa7dZ7fy9Kj26V7FYia5fh9XJRq4Dqme+g==} + /@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==} engines: {node: '>=16'} hasBin: true dependencies: - '@types/node': 18.17.0 - playwright-core: 1.36.2 - optionalDependencies: - fsevents: 2.3.2 + playwright: 1.41.2 dev: true - /@prisma/client@4.16.2(prisma@4.16.2): - resolution: {integrity: sha512-qCoEyxv1ZrQ4bKy39GnylE8Zq31IRmm8bNhNbZx7bF2cU5aiCCnSa93J2imF88MBjn7J9eUQneNxUQVJdl/rPQ==} - engines: {node: '>=14.17'} - requiresBuild: 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==} peerDependencies: - prisma: '*' + '@babel/core': 7.x + vite: 2.x || 3.x || 4.x || 5.x + 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) + 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) + 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: - prisma: + rollup: optional: true dependencies: - '@prisma/engines-version': 4.16.1-1.4bc8b6e1b66cb932731fb1bdbbc550d1e010de81 - prisma: 4.16.2 + rollup: 4.12.0 + slash: 4.0.0 dev: false - /@prisma/debug@4.16.2: - resolution: {integrity: sha512-7L7WbG0qNNZYgLpsVB8rCHCXEyHFyIycRlRDNwkVfjQmACC2OW6AWCYCbfdjQhkF/t7+S3njj8wAWAocSs+Brw==} + /@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: - '@types/debug': 4.1.8 - debug: 4.3.4 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - supports-color + '@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 dev: false - /@prisma/engines-version@4.16.1-1.4bc8b6e1b66cb932731fb1bdbbc550d1e010de81: - resolution: {integrity: sha512-q617EUWfRIDTriWADZ4YiWRZXCa/WuhNgLTVd+HqWLffjMSPzyM5uOWoauX91wvQClSKZU4pzI4JJLQ9Kl62Qg==} + /@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 + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.12.0) + estree-walker: 2.0.2 + magic-string: 0.30.7 + rollup: 4.12.0 dev: false - /@prisma/engines@4.16.2: - resolution: {integrity: sha512-vx1nxVvN4QeT/cepQce68deh/Turxy5Mr+4L4zClFuK1GlxN3+ivxfuv+ej/gvidWn1cE1uAhW7ALLNlYbRUAw==} + /@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 - dev: false + optional: true - /@prisma/generator-helper@4.16.2: - resolution: {integrity: sha512-bMOH7y73Ui7gpQrioFeavMQA+Tf8ksaVf8Nhs9rQNzuSg8SSV6E9baczob0L5KGZTSgYoqnrRxuo03kVJYrnIg==} + /@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: - '@prisma/debug': 4.16.2 - '@types/cross-spawn': 6.0.2 - cross-spawn: 7.0.3 - kleur: 4.1.5 - transitivePeerDependencies: - - supports-color - dev: false + '@hapi/hoek': 9.3.0 - /@rushstack/eslint-patch@1.3.2: - resolution: {integrity: sha512-V+MvGwaHH03hYhY+k6Ef/xKd6RYlc4q8WBx+2ANmipHJcKuktNcI/NgEsJgdSUF6Lw32njT6OnrRsKYCdgHjYw==} + /@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'} dev: false /@socket.io/component-emitter@3.1.0: resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==} dev: false - /@swc/helpers@0.4.14: - resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==} + /@solidjs/meta@0.29.3(solid-js@1.8.15): + resolution: {integrity: sha512-R2uirgjgyh3FPFh+rb840plF701N6GvM5w81/QeI61QwjXb4QzLkyI/uzXfC5UW8favpUn9KK9ILQeoTl6pX0A==} + peerDependencies: + solid-js: '>=1.8.4' dependencies: - tslib: 2.6.0 + 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 dev: false - /@total-typescript/ts-reset@0.3.7: - resolution: {integrity: sha512-yXt2BRRVCJVvzWaxac5n0nCXzIrQEBE/MeYlNQ8/Iq7UeelNmm/AdnUAu18ilSS893mbEQ4u6whPt/HvOPc4rw==} + /@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==} 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/cors@2.8.13: - resolution: {integrity: sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==} - dependencies: - '@types/node': 18.17.0 + /@types/cookie@0.5.4: + resolution: {integrity: sha512-7z/eR6O859gyWIAjuvBWFzNURmf2oPBmJlfVWkwehU5nzIyjwBsTh7WMmEEV4JFnHuQ3ex4oyTvfKzcyJVDBNA==} + + /@types/cookie@0.6.0: + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} dev: false - /@types/cross-spawn@6.0.2: - resolution: {integrity: sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw==} + /@types/cors@2.8.17: + resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} dependencies: - '@types/node': 18.17.0 + '@types/node': 20.11.19 dev: false - /@types/debug@4.1.8: - resolution: {integrity: sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==} + /@types/debug@4.1.12: + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} dependencies: - '@types/ms': 0.7.31 + '@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==} dev: false - /@types/json5@0.0.29: - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + /@types/http-proxy@1.17.14: + resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} + dependencies: + '@types/node': 20.11.19 dev: false - /@types/ms@0.7.31: - resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + dev: true + + /@types/json-stable-stringify@1.0.36: + resolution: {integrity: sha512-b7bq23s4fgBB76n34m2b3RBf6M369B0Z9uRR8aHTMd8kZISRkmDEpPD8hhpYvDFzr3bJCPES96cm3Q6qRNDbQw==} + dev: true + + /@types/micromatch@4.0.6: + resolution: {integrity: sha512-2eulCHWqjEpk9/vyic4tBhI8a9qQEl6DaK2n/sF7TweX9YESlypgKyhXMDGt4DAOy/jhLPvVrZc8pTDAMsplJA==} + dependencies: + '@types/braces': 3.0.4 dev: false - /@types/node@18.17.0: - resolution: {integrity: sha512-GXZxEtOxYGFchyUzxvKI14iff9KZ2DI+A6a37o6EQevtg6uO9t+aUZKcaC1Te5Ng1OnLM7K9NVVj+FbecD9cJg==} + /@types/mime@3.0.4: + resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} + dev: false - /@types/prop-types@15.7.5: - resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} - dev: true + /@types/ms@0.7.34: + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - /@types/react-dom@18.2.7: - resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==} + /@types/node@20.11.19: + resolution: {integrity: sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ==} dependencies: - '@types/react': 18.2.15 - dev: true + undici-types: 5.26.5 - /@types/react@18.2.15: - resolution: {integrity: sha512-oEjE7TQt1fFTFSbf8kkNuc798ahTUzn3Le67/PWjE8MAfYAD/qB7O8hSTcromLFqHCt9bcdOg5GXMokzTjJ5SA==} + /@types/nodemailer@6.4.14: + resolution: {integrity: sha512-fUWthHO9k9DSdPCSPRqcu6TWhYyxTBg382vlNIttSe9M7XfsT06y0f24KHXtbnijPGGRIcVvdKHTNikOI6qiHA==} dependencies: - '@types/prop-types': 15.7.5 - '@types/scheduler': 0.16.3 - csstype: 3.1.2 + '@types/node': 20.11.19 dev: true - /@types/scheduler@0.16.3: - resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} + /@types/object-hash@3.0.6: + resolution: {integrity: sha512-fOBV8C1FIu2ELinoILQ+ApxcUKz4ngq+IWUYrxSGjXzzjUALijilampwkMgEtJ+h2njAW3pi853QpzNVCHB73w==} dev: true - /@types/web-bluetooth@0.0.16: - resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} + /@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 - /@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} + /@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} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.4) + '@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 debug: 4.3.4 - eslint: 8.31.0 - typescript: 4.9.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 transitivePeerDependencies: - supports-color - dev: false + dev: 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} + /@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 dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - dev: false + '@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: - resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.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/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} + /@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} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.5.4 - tsutils: 3.21.0(typescript@4.9.4) - typescript: 4.9.4 + 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/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 + 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 + 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 - /@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} + /@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: - '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.1 + '@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: @@ -685,20 +3254,43 @@ packages: dependencies: mime-types: 2.1.35 negotiator: 0.6.3 - dev: false - /acorn-jsx@5.3.2(acorn@8.10.0): + /acorn-jsx@5.3.2(acorn@8.11.3): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.10.0 + acorn: 8.11.3 - /acorn@8.10.0: - resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + /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==} 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: @@ -706,17 +3298,43 @@ 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 @@ -728,6 +3346,43 @@ 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 @@ -735,136 +3390,191 @@ 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: false + dev: true - /array.prototype.flat@1.3.1: - resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} - engines: {node: '>= 0.4'} + /assert@2.1.0: + resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 - es-shim-unscopables: 1.0.0 + call-bind: 1.0.7 + is-nan: 1.3.2 + object-is: 1.1.5 + object.assign: 4.1.5 + util: 0.12.5 dev: false - /array.prototype.flatmap@1.3.1: - resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} - engines: {node: '>= 0.4'} + /ast-types@0.16.1: + resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} + engines: {node: '>=4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 - es-shim-unscopables: 1.0.0 + tslib: 2.6.2 dev: false - /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 + /astring@1.8.6: + resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} + hasBin: true dev: false - /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 + /async-sema@3.1.1: + resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} dev: false - /ast-types-flow@0.0.7: - resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} + /async@3.2.5: + resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} dev: false - /autoprefixer@10.4.14(postcss@8.4.27): - resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} + /autoprefixer@10.4.17(postcss@8.4.35): + resolution: {integrity: sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.21.9 - caniuse-lite: 1.0.30001517 - fraction.js: 4.2.0 + browserslist: 4.23.0 + caniuse-lite: 1.0.30001589 + fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.27 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + /available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - dev: false - - /axe-core@4.7.2: - resolution: {integrity: sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==} - engines: {node: '>=4'} - dev: false - - /axobject-query@3.2.1: - resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} dependencies: - dequal: 2.0.3 + 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==} + 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 + 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 + 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.51: - resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} + /big-integer@1.6.52: + resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} engines: {node: '>=0.6'} - dev: false /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.51 - dev: false + big-integer: 1.6.52 /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -872,48 +3582,104 @@ packages: 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.21.9: - resolution: {integrity: sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==} + /browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001517 - electron-to-chromium: 1.4.468 - node-releases: 2.0.13 - update-browserslist-db: 1.0.11(browserslist@4.21.9) - dev: true + 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) + + /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'} 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.2: - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} dependencies: - function-bind: 1.1.1 - get-intrinsic: 1.2.1 + 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 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 - /caniuse-lite@1.0.30001517: - resolution: {integrity: sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==} + /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 /chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -921,9 +3687,14 @@ packages: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 + dev: true - /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + /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==} engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 @@ -934,47 +3705,168 @@ packages: normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 - /classnames@2.3.2: - resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==} + /chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} dev: false - /client-only@0.0.1: - resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + /citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + dependencies: + consola: 3.2.3 dev: false - /clsx@1.2.1: - resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} - engines: {node: '>=6'} + /classnames@2.5.1: + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} dev: false - /code-block-writer@11.0.3: - resolution: {integrity: sha512-NiujjUFB4SwScJq2bwbYUtXbZhBSlY6vYzm++3Q6oC+U+injTqfPYFK8wS9COOmb2lueqp0ZRB4nK1VYeHgNyw==} + /cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} 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'} @@ -985,6 +3877,27 @@ 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'} @@ -993,6 +3906,20 @@ 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'} @@ -1001,30 +3928,57 @@ 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.2: - resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + /d@1.0.1: + resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==} + dependencies: + es5-ext: 0.10.62 + type: 1.2.0 dev: true - /damerau-levenshtein@1.0.8: - resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + /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 dev: false - /debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: supports-color: '*' peerDependenciesMeta: supports-color: optional: true dependencies: - ms: 2.1.3 - dev: false + ms: 2.0.0 /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} @@ -1039,6 +3993,11 @@ 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==} @@ -1046,7 +4005,6 @@ packages: dependencies: bplist-parser: 0.2.0 untildify: 4.0.0 - dev: false /default-browser@4.0.0: resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} @@ -1054,75 +4012,302 @@ packages: dependencies: bundle-name: 3.0.0 default-browser-id: 3.0.0 - execa: 7.1.1 + execa: 7.2.0 titleize: 3.0.0 + + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + 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'} - dev: false - /define-properties@1.2.0: - resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} dependencies: - has-property-descriptors: 1.0.0 + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 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: false + dev: true /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 - /dotenv@16.3.1: - resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} + /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==} 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 - /electron-to-chromium@1.4.468: - resolution: {integrity: sha512-6M1qyhaJOt7rQtNti1lBA0GwclPH+oKCmsra/hkcWs5INLxfXXD/dtdnaKUYQu/pjOBP/8Osoe4mAcNvvzoFag==} + /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 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 - /engine.io-client@6.5.1: - resolution: {integrity: sha512-hE5wKXH8Ru4L19MbM1GgYV/2Qo54JSMh1rlJbfpa40bEWkCKNo3ol2eOtGmowcr+ysgbI7+SGL+by42Q3pt/Ng==} + /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==} dependencies: '@socket.io/component-emitter': 3.1.0 debug: 4.3.4 - engine.io-parser: 5.1.0 + engine.io-parser: 5.2.2 ws: 8.11.0 xmlhttprequest-ssl: 2.0.0 transitivePeerDependencies: @@ -1131,24 +4316,24 @@ packages: - utf-8-validate dev: false - /engine.io-parser@5.1.0: - resolution: {integrity: sha512-enySgNiK5tyZFynt3z7iqBR+Bto9EVVVvDFuTT0ioHCGbzirZVGDGiQjZzEp8hWl6hd5FSVytJGuScX1C1C35w==} + /engine.io-parser@5.2.2: + resolution: {integrity: sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==} engines: {node: '>=10.0.0'} dev: false - /engine.io@6.5.1: - resolution: {integrity: sha512-mGqhI+D7YxS9KJMppR6Iuo37Ed3abhU8NdfgSvJSDUafQutrN+sPTncJYTyM9+tkhSmWodKtVYGPPHyXJEwEQA==} - engines: {node: '>=10.0.0'} + /engine.io@6.5.4: + resolution: {integrity: sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==} + engines: {node: '>=10.2.0'} dependencies: '@types/cookie': 0.4.1 - '@types/cors': 2.8.13 - '@types/node': 18.17.0 + '@types/cors': 2.8.17 + '@types/node': 20.11.19 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.4.2 cors: 2.8.5 debug: 4.3.4 - engine.io-parser: 5.1.0 + engine.io-parser: 5.2.2 ws: 8.11.0 transitivePeerDependencies: - bufferutil @@ -1156,323 +4341,268 @@ packages: - utf-8-validate dev: false - /enhanced-resolve@5.15.0: - resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} - engines: {node: '>=10.13.0'} - dependencies: - graceful-fs: 4.2.11 - tapable: 2.2.1 + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} dev: false - /es-abstract@1.22.1: - resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} - engines: {node: '>= 0.4'} - dependencies: - 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-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-shim-unscopables@1.0.0: - resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} - dependencies: - has: 1.0.3 - dev: false - - /es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} - dependencies: - is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 - dev: false - - /escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} + /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==} + dependencies: + stackframe: 1.3.4 + dev: false + + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + dev: false + + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + 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 + dependencies: + es6-iterator: 2.0.3 + es6-symbol: 3.1.3 + next-tick: 1.1.0 + dev: true + + /es6-iterator@2.0.3: + resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} + dependencies: + d: 1.0.1 + es5-ext: 0.10.62 + es6-symbol: 3.1.3 + dev: true + + /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==} + 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'} + /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} + dev: true - /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.2 - '@typescript-eslint/parser': 5.62.0(eslint@8.31.0)(typescript@4.9.4) - eslint: 8.31.0 - eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.31.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.31.0) - eslint-plugin-jsx-a11y: 6.7.1(eslint@8.31.0) - eslint-plugin-react: 7.33.0(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 + /escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} dev: false - /eslint-config-prettier@8.8.0(eslint@8.31.0): - resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} + /eslint-config-prettier@9.1.0(eslint@8.56.0): + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.31.0 + eslint: 8.56.0 dev: true - /eslint-import-resolver-node@0.3.7: - resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} + /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 dependencies: - debug: 3.2.7 - is-core-module: 2.12.1 - resolve: 1.22.2 + '@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 transitivePeerDependencies: - supports-color - dev: false + - typescript + dev: true - /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.31.0): - resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==} - 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.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.31.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.31.0) - get-tsconfig: 4.6.2 - globby: 13.2.2 - is-core-module: 2.12.1 - is-glob: 4.0.3 - synckit: 0.8.5 - 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.7)(eslint-import-resolver-typescript@3.5.5)(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.7 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.31.0) - transitivePeerDependencies: - - supports-color - dev: false - - /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.31.0): - resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} - 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.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.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.31.0) - has: 1.0.3 - is-core-module: 2.12.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.values: 1.1.6 - resolve: 1.22.2 - 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.6 - 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.4 - 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.0(eslint@8.31.0): - resolution: {integrity: sha512-qewL/8P34WkY8jAqdQxsiL82pDUeT7nhs8IsuXgfgnsEloKCT4miAV9N9kGtx7/KM9NH/NCGUE7Edt9iGxLXFw==} - 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.4 - 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.1: - resolution: {integrity: sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA==} + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 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.1: - resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} + /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.31.0: - resolution: {integrity: sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==} + /eslint@8.56.0: + resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.4.1 - '@humanwhocodes/config-array': 0.11.10 + '@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 '@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 debug: 4.3.4 doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.1 - eslint-utils: 3.0.0(eslint@8.31.0) - eslint-visitor-keys: 3.4.1 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 espree: 9.6.1 esquery: 1.5.0 esutils: 2.0.3 @@ -1480,14 +4610,12 @@ packages: file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.20.0 - grapheme-splitter: 1.0.4 - ignore: 5.2.4 - import-fresh: 3.3.0 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.1 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 @@ -1495,41 +4623,75 @@ 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.10.0 - acorn-jsx: 5.3.2(acorn@8.10.0) - eslint-visitor-keys: 3.4.1 + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) + 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'} @@ -1543,10 +4705,9 @@ packages: onetime: 5.1.2 signal-exit: 3.0.7 strip-final-newline: 2.0.0 - dev: false - /execa@7.1.1: - resolution: {integrity: sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==} + /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 @@ -1554,17 +4715,42 @@ packages: human-signals: 4.3.1 is-stream: 3.0.0 merge-stream: 2.0.0 - npm-run-path: 5.1.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-glob@3.3.1: - resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + /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==} engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -1575,12 +4761,14 @@ 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.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: reusify: 1.0.4 @@ -1588,7 +4776,12 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flat-cache: 3.0.4 + 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 /fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} @@ -1596,22 +4789,56 @@ 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.0.4: - resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.2.7 + flatted: 3.3.1 + keyv: 4.5.4 rimraf: 3.0.2 + dev: true - /flatted@3.2.7: - resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + /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 /for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -1619,10 +4846,38 @@ packages: is-callable: 1.2.7 dev: false - /fraction.js@4.2.0: - resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} + /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 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==} @@ -1631,51 +4886,88 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true + dev: true optional: true - /function-bind@1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /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.prototype.name@1.1.5: - resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + /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==} engines: {node: '>= 0.4'} dependencies: - 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 + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 has-symbols: 1.0.3 + hasown: 2.0.1 dev: false + /get-port-please@3.1.2: + resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==} + 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-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-tsconfig@4.6.2: - resolution: {integrity: sha512-E5XrT4CbbXcXWy+1jChlZmrmCwd5KGx502kDCXJJ7y898TtWW9FwoG5HfOLVRKmlmDGkWN2HM9Ho+/Y8F0sJDg==} + /get-tsconfig@4.7.2: + resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} 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: @@ -1689,28 +4981,19 @@ 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@7.1.7: - resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + /glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true 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: false + foreground-child: 3.1.1 + jackspeak: 2.3.6 + minimatch: 9.0.3 + minipass: 7.0.4 + path-scurry: 1.10.1 + dev: true /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} @@ -1722,17 +5005,29 @@ packages: once: 1.4.0 path-is-absolute: 1.0.1 - /globals@13.20.0: - resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} + /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==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 + dev: true - /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} - dependencies: - define-properties: 1.2.0 + /globalyzer@0.1.0: + resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} dev: false /globby@11.1.0: @@ -1741,52 +5036,86 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.1 - ignore: 5.2.4 + fast-glob: 3.3.2 + ignore: 5.3.1 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 - /globby@13.2.2: - resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - dir-glob: 3.0.1 - fast-glob: 3.3.1 - ignore: 5.2.4 - merge2: 1.4.1 - slash: 4.0.0 + /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.1 + get-intrinsic: 1.2.4 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 - /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==} + /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 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.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} dependencies: - get-intrinsic: 1.2.1 + es-define-property: 1.0.0 dev: false - /has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} engines: {node: '>= 0.4'} dev: false @@ -1795,44 +5124,113 @@ packages: engines: {node: '>= 0.4'} dev: false - /has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + /has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 dev: false - /has@1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} - dependencies: - function-bind: 1.1.1 + /has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + dev: false - /http-status@1.6.2: - resolution: {integrity: sha512-oUExvfNckrpTpDazph7kNG8sQi5au3BeTo0idaZFXEhTaJKu7GNJCLHI0rYY2wljm548MSTM+Ljj/c6anqu2zQ==} + /hasown@2.0.1: + resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + + /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==} 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'} - dev: false /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.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} - /immer@10.0.2: - resolution: {integrity: sha512-Rx3CqeqQ19sxUtYV9CU911Vhy8/721wRFnJv3REVGWUmoAcIwzifTsdmJte/MV+0/XpM35LZdQMBGkRIoLPwQA==} - dev: false - - /immutable@4.3.1: - resolution: {integrity: sha512-lj9cnmB/kVS0QHsJnYKD1uo3o39nrbKxszjnqS9Fr6NB7bZzW45U6WSGBPKXDL/CvDKqDNPA4r3DoDQ8GTxo2A==} + /immutable@4.3.5: + resolution: {integrity: sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==} /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} @@ -1840,10 +5238,12 @@ 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==} @@ -1854,27 +5254,37 @@ packages: /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - /internal-slot@1.0.5: - resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + /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==} engines: {node: '>= 0.4'} dependencies: - 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 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 dev: false /is-binary-path@2.1.0: @@ -1883,71 +5293,76 @@ packages: dependencies: binary-extensions: 2.2.0 - /is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} + /is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 - dev: false + builtin-modules: 3.3.0 /is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} dev: false - /is-core-module@2.12.1: - resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: - has: 1.0.3 - - /is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: false + hasown: 2.0.1 /is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} hasBin: true - dev: false /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 - 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-inside-container@1.0.0: resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} engines: {node: '>=14.16'} hasBin: true dependencies: is-docker: 3.0.0 - dev: false - /is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} - engines: {node: '>= 0.4'} - dev: false + /is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} - /is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + /is-nan@1.3.2: + resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + call-bind: 1.0.7 + define-properties: 1.2.1 dev: false /is-number@7.0.0: @@ -1957,63 +5372,63 @@ packages: /is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} + dev: true - /is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 + /is-primitive@3.0.1: + resolution: {integrity: sha512-GljRxhWvlCNRfZyORiH77FwdFwGcMO620o37EOYC0ORWdq+WYNVqW0w2Juzew4M+L81l6/QS3t5gkkihyRqv9w==} + engines: {node: '>=0.10.0'} dev: false - /is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + /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: - call-bind: 1.0.2 - dev: false + '@types/estree': 1.0.5 /is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} - dev: false /is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false - /is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + /is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + which-typed-array: 1.1.14 dev: false - /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 + /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'} 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 + dev: false + + /is64bit@2.0.0: + resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} + engines: {node: '>=18'} + dependencies: + system-architecture: 0.1.0 + dev: false + + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} dev: false /isarray@2.0.5: @@ -2023,21 +5438,43 @@ packages: /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - /jiti@1.19.1: - resolution: {integrity: sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==} - hasBin: true - dev: true - - /jose@4.14.4: - resolution: {integrity: sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g==} + /isexe@3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} dev: false - /js-sdsl@4.4.2: - resolution: {integrity: sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w==} + /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 + 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==} + dev: false + + /jose@5.2.2: + resolution: {integrity: sha512-/WByRr4jDcsKlvMd1dRJnPfS1GVO3WuKyaurJ/vvXcOaUQO8rnNObCQMlv/5uCceVQIq5Q4WLF44ohsdiTohdg==} + dev: false /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - dev: false /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} @@ -2045,42 +5482,103 @@ 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 - /json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + /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'} hasBin: true - dependencies: - minimist: 1.2.8 + + /jsonc-parser@3.2.1: + resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} dev: false - /jsx-ast-utils@3.3.4: - resolution: {integrity: sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw==} - engines: {node: '>=4.0'} + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: - array-includes: 3.1.6 - array.prototype.flat: 1.3.1 - object.assign: 4.1.4 - object.values: 1.1.6 + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + /jsonify@0.0.1: + resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} 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 - /language-subtag-registry@0.3.22: - resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} + /klona@2.0.6: + resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} + engines: {node: '>= 8'} dev: false - /language-tags@1.0.5: - resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==} + /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'} dependencies: - language-subtag-registry: 0.3.22 + readable-stream: 2.3.8 dev: false /levn@0.4.1: @@ -2089,46 +5587,168 @@ 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 - /loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true + /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==} dependencies: - js-tokens: 4.0.0 - dev: false + yallist: 3.1.1 /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==} - dev: false /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} @@ -2141,37 +5761,118 @@ 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'} - dev: false /mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} - dev: false /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==} @@ -2187,99 +5888,168 @@ packages: thenify-all: 1.6.0 dev: true - /nanoid@3.3.6: - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 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-auth@4.22.3(next@13.1.1)(nodemailer@6.9.4)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-XAgy9xV3J2eJOXrQhmxdjV6MLM29ibm6WtMXc3KY6IPZeApf+SuBuPvlqCUfbu5YsAzlg9WSw6u01dChTfeZOA==} - 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.6 - '@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.64.1) - nodemailer: 6.9.4 - oauth: 0.9.15 - openid-client: 5.4.3 - preact: 10.16.0 - preact-render-to-string: 5.2.6(preact@10.16.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.64.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.30001517 - postcss: 8.4.14 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - sass: 1.64.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==} + /next-tick@1.1.0: + resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} dev: true - /nodemailer@6.9.4: - resolution: {integrity: sha512-CXjQvrQZV4+6X5wP6ZIgdehJamI63MFoYFGGPtHudWym9qaEHDNdPzaj5bfMCvxG1vhAileSWW90q7nL0N36mA==} + /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==} 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'} @@ -2294,35 +6064,57 @@ packages: engines: {node: '>=8'} dependencies: path-key: 3.1.1 - dev: false - /npm-run-path@5.1.0: - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + /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 - /oauth@0.9.15: - resolution: {integrity: sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==} + /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==} 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-inspect@1.12.3: - resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + /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 dev: false /object-keys@1.1.1: @@ -2330,54 +6122,44 @@ packages: engines: {node: '>= 0.4'} dev: false - /object.assign@4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 + call-bind: 1.0.7 + define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 dev: false - /object.entries@1.1.6: - resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} - engines: {node: '>= 0.4'} + /ofetch@1.3.3: + resolution: {integrity: sha512-s1ZCMmQWXy4b5K/TW9i/DtiN8Ku+xCiHcjQ6/J/nDdssirrQNOoB165Zu8EqLMA2lln1JUth9a0aW9Ap2ctrUg==} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 + destr: 2.0.3 + node-fetch-native: 1.6.2 + ufo: 1.4.0 dev: false - /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 + /ohash@1.1.3: + resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} dev: false - /object.hasown@1.1.2: - resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} + /on-finished@2.3.0: + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} + engines: {node: '>= 0.8'} dependencies: - define-properties: 1.2.0 - es-abstract: 1.22.1 + 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 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 + /on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -2389,14 +6171,20 @@ packages: engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 - dev: false /onetime@6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} dependencies: mimic-fn: 4.0.0 - dev: false + + /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==} @@ -2406,15 +6194,17 @@ packages: define-lazy-prop: 3.0.0 is-inside-container: 1.0.0 is-wsl: 2.2.0 - dev: false - /openid-client@5.4.3: - resolution: {integrity: sha512-sVQOvjsT/sbSfYsQI/9liWQGVZH/Pp3rrtlGEwgk/bbHfrUDZ24DN57lAagIwFtuEu+FM9Ev7r85s8S/yPjimQ==} + /openapi-typescript@6.7.4: + resolution: {integrity: sha512-EZyeW9Wy7UDCKv0iYmKrq2pVZtquXiD/YHiUClAKqiMi42nodx/EQH11K6fLqjt1IZlJmVokrAsExsBMM2RROQ==} + hasBin: true dependencies: - jose: 4.14.4 - lru-cache: 6.0.0 - object-hash: 2.2.0 - oidc-token-hash: 5.0.3 + 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 dev: false /optionator@0.9.3: @@ -2427,28 +6217,43 @@ 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==} @@ -2461,16 +6266,96 @@ packages: /path-key@4.0.0: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} engines: {node: '>=12'} - dev: false /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==} @@ -2488,36 +6373,66 @@ packages: engines: {node: '>= 6'} dev: true - /playwright-core@1.36.2: - resolution: {integrity: sha512-sQYZt31dwkqxOrP7xy2ggDfEzUxM1lodjhsQ3NMMv5uGTRDsLxU0e4xf4wwMkF2gplIxf17QMBCodSFgm6bFVQ==} + /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==} engines: {node: '>=16'} hasBin: true dev: true - /postcss-import@15.1.0(postcss@8.4.27): + /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): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.27 + postcss: 8.4.35 postcss-value-parser: 4.2.0 read-cache: 1.0.0 - resolve: 1.22.2 + resolve: 1.22.8 dev: true - /postcss-js@4.0.1(postcss@8.4.27): + /postcss-js@4.0.1(postcss@8.4.35): 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.27 + postcss: 8.4.35 dev: true - /postcss-load-config@4.0.1(postcss@8.4.27): - resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} + /postcss-load-config@4.0.2(postcss@8.4.35): + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} engines: {node: '>= 14'} peerDependencies: postcss: '>=8.0.9' @@ -2528,23 +6443,23 @@ packages: ts-node: optional: true dependencies: - lilconfig: 2.1.0 - postcss: 8.4.27 - yaml: 2.3.1 + lilconfig: 3.1.1 + postcss: 8.4.35 + yaml: 2.3.4 dev: true - /postcss-nested@6.0.1(postcss@8.4.27): + /postcss-nested@6.0.1(postcss@8.4.35): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.27 - postcss-selector-parser: 6.0.13 + postcss: 8.4.35 + postcss-selector-parser: 6.0.15 dev: true - /postcss-selector-parser@6.0.13: - resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} + /postcss-selector-parser@6.0.15: + resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} engines: {node: '>=4'} dependencies: cssesc: 3.0.0 @@ -2555,43 +6470,61 @@ packages: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true - /postcss@8.4.14: - resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} + /postcss@8.4.35: + resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.6 + nanoid: 3.3.7 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 - /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.16.0): - resolution: {integrity: sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==} + /preact-render-to-string@5.2.3(preact@10.11.3): + resolution: {integrity: sha512-aPDxUn5o3GhWdtJtW0svRC2SS/l8D9MAgo2+AWml+BhDImb27ALf04Q2d+AHqUUOc6RdSXFIBVa2gxzgMKgtZA==} peerDependencies: preact: '>=10' dependencies: - preact: 10.16.0 + preact: 10.11.3 pretty-format: 3.8.0 dev: false - /preact@10.16.0: - resolution: {integrity: sha512-XTSj3dJ4roKIC93pald6rWuB2qQJO9gO2iLLyTe87MrjQN+HklueLsmskbywEWqCHlclgz3/M4YLL2iBr9UmMA==} + /preact@10.11.3: + resolution: {integrity: sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg==} + dev: false + + /preact@10.19.6: + resolution: {integrity: sha512-gympg+T2Z1fG1unB8NH29yHJwnEaCH37Z32diPDku316OTnRPeMbiRV9kTrfZpocXjdfnWuFUl/Mj4BHaf6gnw==} 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.3(prettier@3.0.0)(typescript@4.9.4): - resolution: {integrity: sha512-KFvk8C/zGyvUaE3RvxN2MhCLwzV6OBbFSkwZ2OamCrs9ZY4i5L77jQ/w4UmUr+lqX8qbaqVq6bZZkApn+IgJSg==} + /prettier-plugin-organize-imports@3.2.4(prettier@3.2.5)(typescript@5.3.3): + resolution: {integrity: sha512-6m8WBhIp0dfwu0SkgfOxJqh+HpdyfqSSLfKKRZSFbDuEQXDDndb8fTpRWkUrX/uBenkex3MgnVk0J3b3Y5byog==} peerDependencies: '@volar/vue-language-plugin-pug': ^1.0.4 '@volar/vue-typescript': ^1.0.4 @@ -2603,20 +6536,19 @@ packages: '@volar/vue-typescript': optional: true dependencies: - prettier: 3.0.0 - typescript: 4.9.4 + prettier: 3.2.5 + typescript: 5.3.3 dev: true - /prettier-plugin-tailwindcss@0.4.1(prettier-plugin-organize-imports@3.2.3)(prettier@3.0.0): - resolution: {integrity: sha512-hwn2EiJmv8M+AW4YDkbjJ6HlZCTzLyz1QlySn9sMuKV/Px0fjwldlB7tol8GzdgqtkdPtzT3iJ4UzdnYXP25Ag==} - engines: {node: '>=12.17.0'} + /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'} peerDependencies: '@ianvs/prettier-plugin-sort-imports': '*' '@prettier/plugin-pug': '*' '@shopify/prettier-plugin-liquid': '*' - '@shufo/prettier-plugin-blade': '*' '@trivago/prettier-plugin-sort-imports': '*' - prettier: ^2.2 || ^3.0 + prettier: ^3.0 prettier-plugin-astro: '*' prettier-plugin-css-order: '*' prettier-plugin-import-sort: '*' @@ -2634,8 +6566,6 @@ 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: @@ -2659,94 +6589,62 @@ packages: prettier-plugin-twig-melody: optional: true dependencies: - prettier: 3.0.0 - prettier-plugin-organize-imports: 3.2.3(prettier@3.0.0)(typescript@4.9.4) + prettier: 3.2.5 + prettier-plugin-organize-imports: 3.2.4(prettier@3.2.5)(typescript@5.3.3) dev: true - /prettier@3.0.0: - resolution: {integrity: sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==} + /prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} 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 - /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 + /process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: false - /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==} + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + dev: true /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - /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: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + /queue-tick@1.0.1: + resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} dev: false - /react-dom@18.2.0(react@18.2.0): - resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} - peerDependencies: - react: ^18.2.0 - dependencies: - loose-envify: 1.4.0 - react: 18.2.0 - scheduler: 0.23.0 + /radix3@1.1.0: + resolution: {integrity: sha512-pNsHDxbGORSvuSScqNJ+3Km6QAVqk8CfsCBIEoDgpqLrkD2f3QM4I7d1ozJJ172OmIcoUcerZaNWqtLkRXTV3A==} dev: false - /react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + /randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + dependencies: + safe-buffer: 5.2.1 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) + /range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} 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' + /rc9@2.1.1: + resolution: {integrity: sha512-lNeOl38Ws0eNxpO3+wD1I9rkHGQyj1NU1jlzv4go2CtEnEQEUfqnIvZG7W+bC/aXdJ27n5x/yUjb6RoT9tko+Q==} 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 + defu: 6.1.4 + destr: 2.0.3 + flat: 5.0.2 dev: false /read-cache@1.0.0: @@ -2755,54 +6653,130 @@ 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 - /regenerator-runtime@0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - dev: false - - /regexp.prototype.flags@1.5.0: - resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} - engines: {node: '>= 0.4'} + /recast@0.23.4: + resolution: {integrity: sha512-qtEDqIZGVcSZCHniWwZWbRy79Dc6Wp3kT/UmDA2RJKBPg7+7k51aQBZirHmUGn5uvHf2rg8DkjizrN26k61ATw==} + engines: {node: '>= 4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - functions-have-names: 1.2.3 + assert: 2.1.0 + ast-types: 0.16.1 + esprima: 4.0.1 + source-map: 0.6.1 + tslib: 2.6.2 dev: false - /regexpp@3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} + /redis-errors@1.2.0: + resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} + engines: {node: '>=4'} + 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 /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: false + dev: true - /resolve@1.22.2: - resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true dependencies: - is-core-module: 2.12.1 + is-core-module: 2.13.1 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.12.1 - 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'} @@ -2813,62 +6787,212 @@ 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 - dev: false /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 - /safe-array-concat@1.0.0: - resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==} - engines: {node: '>=0.4'} + /rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - has-symbols: 1.0.3 - isarray: 2.0.5 + 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==} dev: false - /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.64.1: - resolution: {integrity: sha512-16rRACSOFEE8VN7SCgBu1MpYCyN7urj9At898tyzdXFhC+a+yOX5dXwAR7L8/IdPJ1NB8OYoXmD55DM30B2kEQ==} + /sass@1.71.1: + resolution: {integrity: sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==} engines: {node: '>=14.0.0'} hasBin: true dependencies: - chokidar: 3.5.3 - immutable: 4.3.1 + chokidar: 3.6.0 + immutable: 4.3.5 source-map-js: 1.0.2 - /scheduler@0.23.0: - resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} - dependencies: - loose-envify: 1.4.0 + /scule@1.3.0: + resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} dev: false /semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - dev: false - /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} 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: @@ -2881,44 +7005,72 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - /side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + /shikiji-core@0.9.19: + resolution: {integrity: sha512-AFJu/vcNT21t0e6YrfadZ+9q86gvPum6iywRyt1OtIPjPFe25RQnYJyxHQPMLKCCWA992TPxmEmbNcOZCAJclw==} + dev: false + + /shikiji@0.9.19: + resolution: {integrity: sha512-Kw2NHWktdcdypCj1GkKpXH4o6Vxz8B8TykPlPuLHOGSV8VkhoCLcFOH4k19K4LXAQYRQmxg+0X/eM+m2sLhAkg==} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - object-inspect: 1.12.3 + shikiji-core: 0.9.19 dev: false /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - dev: false + + /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: false + dev: true /slash@4.0.0: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} engines: {node: '>=12'} dev: false - /socket.io-adapter@2.5.2: - resolution: {integrity: sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==} + /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==} dependencies: + debug: 4.3.4 ws: 8.11.0 transitivePeerDependencies: - bufferutil + - supports-color - utf-8-validate dev: false - /socket.io-client@4.7.1: - resolution: {integrity: sha512-Qk3Xj8ekbnzKu3faejo4wk2MzXA029XppiXtTF/PkbTg+fcwaTw1PlDrTrrrU4mKoYC4dvlApOnSeyLCKwek2w==} + /socket.io-client@4.7.4: + resolution: {integrity: sha512-wh+OkeF0rAVCrABWQBaEjLfb7DVPotMbu0cgWgyR0v6eA4EoVnAwcIeIbcdTE3GT/H3kbdLl7OoH2+asoDRIIg==} engines: {node: '>=10.0.0'} dependencies: '@socket.io/component-emitter': 3.1.0 debug: 4.3.4 - engine.io-client: 6.5.1 + engine.io-client: 6.5.3 socket.io-parser: 4.2.4 transitivePeerDependencies: - bufferutil @@ -2936,16 +7088,16 @@ packages: - supports-color dev: false - /socket.io@4.7.1: - resolution: {integrity: sha512-W+utHys2w//dhFjy7iQQu9sGd3eokCjGbl2r59tyLqNiJJBdIebn3GAKEXBr3osqHTObJi2die/25bCx2zsaaw==} - engines: {node: '>=10.0.0'} + /socket.io@4.7.4: + resolution: {integrity: sha512-DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw==} + 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.1 - socket.io-adapter: 2.5.2 + engine.io: 6.5.4 + socket.io-adapter: 2.5.4 socket.io-parser: 4.2.4 transitivePeerDependencies: - bufferutil @@ -2953,46 +7105,214 @@ 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'} - /string.prototype.matchall@4.0.8: - resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} dependencies: - 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 + 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==} dev: false - /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 + /standard-as-callback@2.1.0: + resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} dev: false - /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 + /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'} dev: false - /string.prototype.trimstart@1.0.6: - resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + /std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + dev: false + + /streamx@2.16.1: + resolution: {integrity: sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 + 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 dev: false /strip-ansi@6.0.1: @@ -3001,112 +7321,159 @@ packages: dependencies: ansi-regex: 5.0.1 - /strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - dev: false + /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'} - dev: false /strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} - dev: false /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + dev: true - /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 + /strip-literal@1.3.0: + resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} dependencies: - client-only: 0.0.1 - react: 18.2.0 + acorn: 8.11.3 dev: false - /sucrase@3.34.0: - resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} - engines: {node: '>=8'} + /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'} hasBin: true dependencies: '@jridgewell/gen-mapping': 0.3.3 commander: 4.1.1 - glob: 7.1.6 + glob: 10.3.10 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'} - /synckit@0.8.5: - resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} - engines: {node: ^14.18.0 || >=16.0.0} - dependencies: - '@pkgr/utils': 2.4.2 - tslib: 2.6.0 + /system-architecture@0.1.0: + resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} + engines: {node: '>=18'} dev: false - /tailwindcss@3.3.3: - resolution: {integrity: sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==} + /tailwindcss@3.4.1: + resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==} engines: {node: '>=14.0.0'} hasBin: true dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 - chokidar: 3.5.3 + chokidar: 3.6.0 didyoumean: 1.2.2 dlv: 1.1.3 - fast-glob: 3.3.1 + fast-glob: 3.3.2 glob-parent: 6.0.2 is-glob: 4.0.3 - jiti: 1.19.1 + jiti: 1.21.0 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.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.2 - sucrase: 3.34.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 transitivePeerDependencies: - ts-node dev: true - /tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} + /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 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==} @@ -3121,10 +7488,31 @@ 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'} - dev: false + + /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==} @@ -3132,97 +7520,194 @@ packages: 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 - /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.0: - resolution: {integrity: sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==} - 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 + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} /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 - /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 + /type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} dev: false - /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 + /type-fest@3.13.1: + resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} + engines: {node: '>=14.16'} dev: false - /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@1.2.0: + resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} + 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 + /type@2.7.2: + resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} + dev: true - /typescript@4.9.4: - resolution: {integrity: sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==} - engines: {node: '>=4.2.0'} + /typescript@5.0.4: + resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} + engines: {node: '>=12.20'} hasBin: true + dev: false - /unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + /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==} dependencies: - call-bind: 1.0.2 - has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 + 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 dev: false /unique-names-generator@4.7.1: @@ -3230,68 +7715,470 @@ 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.11(browserslist@4.21.9): - resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} + /update-browserslist-db@1.0.13(browserslist@4.23.0): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.21.9 - escalade: 3.1.1 + browserslist: 4.23.0 + escalade: 3.1.2 picocolors: 1.0.0 - dev: true + + /uqr@0.1.2: + resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} + dev: false /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: - punycode: 2.3.0 + punycode: 2.3.1 + dev: true - /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 + /urlpattern-polyfill@8.0.2: + resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} dev: false /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - dev: true - /uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: 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 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'} - dev: false - /which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + /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: - 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 + '@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 - /which-typed-array@1.1.11: - resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} + /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 + 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 + 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==} engines: {node: '>= 0.4'} dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 dev: false /which@2.0.2: @@ -3301,6 +8188,47 @@ 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==} @@ -3317,53 +8245,72 @@ 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.1: - resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} + /yaml@2.3.4: + resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} 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 - /zod-prisma-types@2.7.4: - resolution: {integrity: sha512-D+mUndT6r/H9E9ZMtA9+A1WfHHrluWwRqcBq0ayw5EHax8WBuDStgkdw1H6pWMW06AtKd95Yv2ugY3Y/exSeFw==} - hasBin: true + /zip-stream@5.0.1: + resolution: {integrity: sha512-UfZ0oa0C8LI58wJ+moL46BDIMgCQbnsb+2PoiJYtonhBsMh2bq1eRBVkvjfVsqbEHd9/EgKPUuL9saSSsec8OA==} + engines: {node: '>= 12.0.0'} dependencies: - '@prisma/generator-helper': 4.16.2 - code-block-writer: 11.0.3 - lodash: 4.17.21 - zod: 3.21.1 - transitivePeerDependencies: - - supports-color + archiver-utils: 4.0.1 + compress-commons: 5.0.1 + readable-stream: 3.6.2 dev: false - /zod@3.21.1: - resolution: {integrity: sha512-+dTu2m6gmCbO9Ahm4ZBDapx2O6ZY9QSPXst2WXjcznPMwf2YNpn3RevLx4KkZp1OPW/ouFcoBtBzFz/LeY69oA==} - dev: false - - /zustand@4.3.9(immer@10.0.2)(react@18.2.0): - resolution: {integrity: sha512-Tat5r8jOMG1Vcsj8uldMyqYKC5IZvQif8zetmLHs9WoZlntTHmIoNM8TpLRY31ExncuUvUOXehd0kvahkuHjDw==} - engines: {node: '>=12.7.0'} - peerDependencies: - immer: '>=9.0' - react: '>=16.8' - peerDependenciesMeta: - immer: - optional: true - react: - optional: true - dependencies: - immer: 10.0.2 - react: 18.2.0 - use-sync-external-store: 1.2.0(react@18.2.0) - dev: false + /zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} diff --git a/leaky-ships/postcss.config.js b/leaky-ships/postcss.config.cjs similarity index 100% rename from leaky-ships/postcss.config.js rename to leaky-ships/postcss.config.cjs diff --git a/leaky-ships/prettier.config.js b/leaky-ships/prettier.config.cjs similarity index 100% rename from leaky-ships/prettier.config.js rename to leaky-ships/prettier.config.cjs diff --git a/leaky-ships/prisma/generated/zod/index.ts b/leaky-ships/prisma/generated/zod/index.ts deleted file mode 100644 index 2a6d385..0000000 --- a/leaky-ships/prisma/generated/zod/index.ts +++ /dev/null @@ -1,5820 +0,0 @@ -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 9cde5db..8d033a5 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(name: "created_at") - updatedAt DateTime @updatedAt @map(name: "updated_at") + createdAt DateTime @default(now()) @map("created_at") + updatedAt DateTime @updatedAt @map("updated_at") games User_Game[] accounts Account[] sessions Session[] - @@map(name: "users") + @@map("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/index.html b/leaky-ships/public/index2.html similarity index 100% rename from leaky-ships/public/index.html rename to leaky-ships/public/index2.html diff --git a/leaky-ships/src/app.tsx b/leaky-ships/src/app.tsx new file mode 100644 index 0000000..6a2aa6a --- /dev/null +++ b/leaky-ships/src/app.tsx @@ -0,0 +1,39 @@ +// @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/components/Bluetooth.tsx b/leaky-ships/src/components/Bluetooth.tsx similarity index 91% rename from leaky-ships/components/Bluetooth.tsx rename to leaky-ships/src/components/Bluetooth.tsx index f2ea535..e726498 100644 --- a/leaky-ships/components/Bluetooth.tsx +++ b/leaky-ships/src/components/Bluetooth.tsx @@ -1,8 +1,8 @@ -import { useState } from "react" +import { createSignal } from "solid-js" function Bluetooth() { - const [startDisabled, setStartDisabled] = useState(true) - const [stopDisabled, setStopDisabled] = useState(true) + const [startDisabled, setStartDisabled] = createSignal(true) + const [stopDisabled, setStopDisabled] = createSignal(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/components/BurgerMenu.tsx b/leaky-ships/src/components/BurgerMenu.tsx similarity index 66% rename from leaky-ships/components/BurgerMenu.tsx rename to leaky-ships/src/components/BurgerMenu.tsx index 0c18f42..12d5833 100644 --- a/leaky-ships/components/BurgerMenu.tsx +++ b/leaky-ships/src/components/BurgerMenu.tsx @@ -1,23 +1,17 @@ import classNames from "classnames" -function BurgerMenu({ - onClick, - blur, -}: { - onClick?: () => void - blur?: boolean -}) { +function BurgerMenu(props: { onClick?: () => void; blur?: boolean }) { return ( + {props.text} +

+ ) +} + +export default Item diff --git a/leaky-ships/components/Gamefield/Labeling.tsx b/leaky-ships/src/components/Gamefield/Labeling.tsx similarity index 73% rename from leaky-ships/components/Gamefield/Labeling.tsx rename to leaky-ships/src/components/Gamefield/Labeling.tsx index 3eac3fa..55fc71e 100644 --- a/leaky-ships/components/Gamefield/Labeling.tsx +++ b/leaky-ships/src/components/Gamefield/Labeling.tsx @@ -1,6 +1,6 @@ -import { fieldIndex } from "@lib/utils/helpers" import classNames from "classnames" -import { CSSProperties } from "react" +import { For } from "solid-js" +import { fieldIndex } from "~/lib/utils/helpers" import { Field } from "../../interfaces/frontend" import { count } from "./Gamefield" @@ -34,17 +34,16 @@ function Labeling() { (a, b) => fieldIndex(count, a.x, a.y) - fieldIndex(count, b.x, b.y), ) return ( - <> - {elems.map(({ field, x, y, orientation }, i) => ( + + {(props) => ( - {field} + {props.field} - ))} - + )} + ) } diff --git a/leaky-ships/src/components/Gamefield/Ship.tsx b/leaky-ships/src/components/Gamefield/Ship.tsx new file mode 100644 index 0000000..30c96d2 --- /dev/null +++ b/leaky-ships/src/components/Gamefield/Ship.tsx @@ -0,0 +1,71 @@ +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 new file mode 100644 index 0000000..a86fdfd --- /dev/null +++ b/leaky-ships/src/components/Gamefield/Ships.tsx @@ -0,0 +1,16 @@ +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 new file mode 100644 index 0000000..2283c9b --- /dev/null +++ b/leaky-ships/src/components/Gamefield/Targets.tsx @@ -0,0 +1,81 @@ +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 new file mode 100644 index 0000000..6372c8b --- /dev/null +++ b/leaky-ships/src/components/Grid.tsx @@ -0,0 +1,99 @@ +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 new file mode 100644 index 0000000..7eaecd5 --- /dev/null +++ b/leaky-ships/src/components/Grid2.tsx @@ -0,0 +1,103 @@ +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/components/Lobby/Button.tsx b/leaky-ships/src/components/Lobby/Button.tsx similarity index 50% rename from leaky-ships/components/Lobby/Button.tsx rename to leaky-ships/src/components/Lobby/Button.tsx index 93970ff..febd10e 100644 --- a/leaky-ships/components/Lobby/Button.tsx +++ b/leaky-ships/src/components/Lobby/Button.tsx @@ -1,43 +1,36 @@ import classNames from "classnames" -import { ReactNode } from "react" +import { JSX } from "solid-js" -function Button({ - type, - disabled, - onClick, - children, - latching, - isLatched, -}: { +function Button(props: { type: "red" | "orange" | "green" | "gray" disabled?: boolean onClick: () => void - children: ReactNode + children: JSX.Element latching?: boolean isLatched?: boolean }) { return ( ) } diff --git a/leaky-ships/src/components/Lobby/Icon.tsx b/leaky-ships/src/components/Lobby/Icon.tsx new file mode 100644 index 0000000..0d50a69 --- /dev/null +++ b/leaky-ships/src/components/Lobby/Icon.tsx @@ -0,0 +1,23 @@ +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 new file mode 100644 index 0000000..87c6d79 --- /dev/null +++ b/leaky-ships/src/components/Lobby/LobbyFrame.tsx @@ -0,0 +1,139 @@ +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 new file mode 100644 index 0000000..a5ea923 --- /dev/null +++ b/leaky-ships/src/components/Lobby/Player.tsx @@ -0,0 +1,120 @@ +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 new file mode 100644 index 0000000..f0ec485 --- /dev/null +++ b/leaky-ships/src/components/Lobby/SettingsFrame/Setting.tsx @@ -0,0 +1,46 @@ +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 new file mode 100644 index 0000000..a752428 --- /dev/null +++ b/leaky-ships/src/components/Lobby/SettingsFrame/Settings.tsx @@ -0,0 +1,72 @@ +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 new file mode 100644 index 0000000..539bd2e --- /dev/null +++ b/leaky-ships/src/components/Logo.tsx @@ -0,0 +1,81 @@ +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 new file mode 100644 index 0000000..badd46e --- /dev/null +++ b/leaky-ships/src/components/OptionButton.tsx @@ -0,0 +1,68 @@ +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/components/profileImg.tsx b/leaky-ships/src/components/profileImg.tsx similarity index 67% rename from leaky-ships/components/profileImg.tsx rename to leaky-ships/src/components/profileImg.tsx index 756e432..a7898a4 100644 --- a/leaky-ships/components/profileImg.tsx +++ b/leaky-ships/src/components/profileImg.tsx @@ -1,7 +1,7 @@ function profileImg(src: string) { return ( profile picture diff --git a/leaky-ships/src/drizzle/index.ts b/leaky-ships/src/drizzle/index.ts new file mode 100644 index 0000000..4f0addc --- /dev/null +++ b/leaky-ships/src/drizzle/index.ts @@ -0,0 +1,10 @@ +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 new file mode 100644 index 0000000..e2f417e --- /dev/null +++ b/leaky-ships/src/drizzle/schemas/Tables.ts @@ -0,0 +1,194 @@ +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 new file mode 100644 index 0000000..32cb3a8 --- /dev/null +++ b/leaky-ships/src/drizzle/schemas/Types.ts @@ -0,0 +1,17 @@ +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 new file mode 100644 index 0000000..38c681e --- /dev/null +++ b/leaky-ships/src/entry-client.tsx @@ -0,0 +1,3 @@ +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 new file mode 100644 index 0000000..03a02d4 --- /dev/null +++ b/leaky-ships/src/entry-server.tsx @@ -0,0 +1,20 @@ +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 new file mode 100644 index 0000000..3810845 --- /dev/null +++ b/leaky-ships/src/hooks/useDraw.tsx @@ -0,0 +1,179 @@ +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 new file mode 100644 index 0000000..06d91f6 --- /dev/null +++ b/leaky-ships/src/hooks/useDrawProps.ts @@ -0,0 +1,35 @@ +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 new file mode 100644 index 0000000..80897d8 --- /dev/null +++ b/leaky-ships/src/hooks/useGameProps.ts @@ -0,0 +1,235 @@ +/* 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 new file mode 100644 index 0000000..86a0321 --- /dev/null +++ b/leaky-ships/src/hooks/useSession.tsx @@ -0,0 +1,126 @@ +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 new file mode 100644 index 0000000..27704bf --- /dev/null +++ b/leaky-ships/src/hooks/useSocket.ts @@ -0,0 +1,190 @@ +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/interfaces/NextApiSocket.ts b/leaky-ships/src/interfaces/ApiSocket.d.ts similarity index 62% rename from leaky-ships/interfaces/NextApiSocket.ts rename to leaky-ships/src/interfaces/ApiSocket.d.ts index 0565e7d..4b82bbf 100644 --- a/leaky-ships/interfaces/NextApiSocket.ts +++ b/leaky-ships/src/interfaces/ApiSocket.d.ts @@ -1,15 +1,14 @@ -import { GamePropsSchema } from "@lib/zodSchemas" -import { GameState } from "@prisma/client" +import { Session } from "@auth/core/types" 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, @@ -22,30 +21,22 @@ interface SocketServer extends HTTPServer { io?: IOServer } -interface SocketWithIO extends NetSocket { +export 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: number; isReady: boolean }) => void - isConnected: (payload: { i: number; isConnected: boolean }) => void + isReady: (payload: { i: 0 | 1; isReady: boolean }) => void + isConnected: (payload: { i: 0 | 1; isConnected: boolean }) => void "get-canvas-state": () => void - "canvas-state-from-server": (state: string, userIndex: number) => void - "draw-line": (props: DrawLineProps, userIndex: number) => void - "canvas-clear": () => 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 gameState: (newState: GameState) => void - ships: (ships: ShipProps[], index: number) => void - activeIndex: (index: number) => void - dispatchMove: (props: MoveDispatchProps, i: number) => void + ships: (ships: ShipProps[], index: 0 | 1) => void + dispatchMove: (props: MoveDispatchProps, i: 0 | 1) => void } export interface ClientToServerEvents { @@ -56,7 +47,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: string) => void + "canvas-state": (state: DrawLineProps[]) => void "draw-line": (props: DrawLineProps) => void "canvas-clear": () => void gameState: (newState: GameState) => void @@ -69,14 +60,9 @@ interface InterServerEvents { } interface SocketData { - props: { - userId: string - gameId: string - index: number - } user: Session["user"] - gameId: string | null - index: number + gameId: string + index: { i: 0 | 1 } | null } export type sServer = Server< diff --git a/leaky-ships/interfaces/frontend.ts b/leaky-ships/src/interfaces/frontend.ts similarity index 79% rename from leaky-ships/interfaces/frontend.ts rename to leaky-ships/src/interfaces/frontend.ts index b8ed0c9..b7fe3ee 100644 --- a/leaky-ships/interfaces/frontend.ts +++ b/leaky-ships/src/interfaces/frontend.ts @@ -1,6 +1,5 @@ import { IconDefinition } from "@fortawesome/pro-solid-svg-icons" -import { PlayerSchema } from "@lib/zodSchemas" -import { MoveType, Orientation } from "@prisma/client" +import { MoveType, Orientation, PlayerSchema } from "~/lib/zodSchemas" export interface Position { x: number @@ -23,7 +22,7 @@ export interface TargetList extends Position { edges: string[] } export interface Mode { - pointerGrid: any[][] + pointerGrid: void[][] type: MoveType } export interface ItemProps { @@ -32,6 +31,7 @@ export interface ItemProps { amount?: number iconColor?: string disabled?: boolean + showWhen?: () => boolean enabled?: boolean callback?: () => void } @@ -55,9 +55,6 @@ export interface DrawLineProps { prevPoint: Point | null color: string } -export interface Draw extends DrawLineProps { - ctx: CanvasRenderingContext2D -} export interface ShipProps extends Position { size: number variant: number @@ -77,15 +74,20 @@ export type GameSettingKeys = | "allowChat" | "allowMarkDraw" -export type GameSettings = { [key in GameSettingKeys]?: boolean } +export type GameSettings = Partial> export type PlayerEvent = | { type: "connect" | "leave" - i: number - payload: { users: PlayerSchema[] } + i: 0 | 1 + users: Players hash: string } | { type: "disconnect" - i: number + i: 0 | 1 } +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/lib/backend/errors.ts b/leaky-ships/src/lib/backend/errors.ts similarity index 100% rename from leaky-ships/lib/backend/errors.ts rename to leaky-ships/src/lib/backend/errors.ts diff --git a/leaky-ships/lib/backend/getPinFromBody.ts b/leaky-ships/src/lib/backend/getPinFromBody.ts similarity index 60% rename from leaky-ships/lib/backend/getPinFromBody.ts rename to leaky-ships/src/lib/backend/getPinFromBody.ts index dc0c949..5d2478b 100644 --- a/leaky-ships/lib/backend/getPinFromBody.ts +++ b/leaky-ships/src/lib/backend/getPinFromBody.ts @@ -1,4 +1,4 @@ -import { NextApiRequest, NextApiResponse } from "next" +import { APIEvent } from "@solidjs/start/server/types" import { z } from "zod" import sendError from "./sendError" @@ -6,13 +6,13 @@ const pinBodySchema = z.object({ pin: z.string(), }) -async function getPinFromBody(req: NextApiRequest, res: NextApiResponse) { +async function getPinFromBody(request: APIEvent["request"]) { try { - const body = JSON.parse(req.body) + const body = await request.json() const { pin } = pinBodySchema.parse(body) return pin - } catch (err: any) { - sendError(req, res, { + } catch { + sendError(request, { message: "No pin in request body!", statusCode: 401, solved: true, diff --git a/leaky-ships/lib/backend/logging.ts b/leaky-ships/src/lib/backend/logging.ts similarity index 79% rename from leaky-ships/lib/backend/logging.ts rename to leaky-ships/src/lib/backend/logging.ts index 8bc7231..69822de 100644 --- a/leaky-ships/lib/backend/logging.ts +++ b/leaky-ships/src/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[], - req?: NextApiRequest | IncomingMessage, + request?: APIEvent["request"] | IncomingMessage, ) { if (!started) await logStartup() const messages = { console: message, file: message } @@ -55,10 +55,14 @@ async function logging( messages.console = `[${new Date().toString().slice(0, 33)}] ` + messages.console messages.file = `[${new Date().toString().slice(0, 33)}] ` + messages.file - 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 + 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 messages.console = [ip[0].yellow, route?.green, messages.console].join( " - ", ) diff --git a/leaky-ships/src/lib/backend/processRes.ts b/leaky-ships/src/lib/backend/processRes.ts new file mode 100644 index 0000000..f86a174 --- /dev/null +++ b/leaky-ships/src/lib/backend/processRes.ts @@ -0,0 +1,111 @@ +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/lib/backend/sendError.ts b/leaky-ships/src/lib/backend/sendError.ts similarity index 52% rename from leaky-ships/lib/backend/sendError.ts rename to leaky-ships/src/lib/backend/sendError.ts index b23bf6e..e57cda4 100644 --- a/leaky-ships/lib/backend/sendError.ts +++ b/leaky-ships/src/lib/backend/sendError.ts @@ -1,20 +1,21 @@ -import type { NextApiRequest, NextApiResponse } from "next" +import { APIEvent } from "@solidjs/start/server/types" import { rejectionError } from "./errors" import logging from "./logging" -export default function sendError( - req: NextApiRequest, - res: NextApiResponse, +export default function sendError( + request: APIEvent["request"], 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"], - req, + request, ) - if ("name" in err) console.log(err) + 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, + }) } diff --git a/leaky-ships/src/lib/backend/sendResponse.ts b/leaky-ships/src/lib/backend/sendResponse.ts new file mode 100644 index 0000000..47764ea --- /dev/null +++ b/leaky-ships/src/lib/backend/sendResponse.ts @@ -0,0 +1,29 @@ +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 new file mode 100644 index 0000000..78818aa --- /dev/null +++ b/leaky-ships/src/lib/getPayloadFromProps.ts @@ -0,0 +1,28 @@ +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 new file mode 100644 index 0000000..46060e6 --- /dev/null +++ b/leaky-ships/src/lib/getPayloadwithChecksum.ts @@ -0,0 +1,7 @@ +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/lib/socket.ts b/leaky-ships/src/lib/socket.ts similarity index 68% rename from leaky-ships/lib/socket.ts rename to leaky-ships/src/lib/socket.ts index 64d0c98..f32ab59 100644 --- a/leaky-ships/lib/socket.ts +++ b/leaky-ships/src/lib/socket.ts @@ -1,5 +1,5 @@ import { io } from "socket.io-client" -import { cSocket } from "../interfaces/NextApiSocket" +import { cSocket } from "../interfaces/ApiSocket" export const socket: cSocket = io({ path: "/api/ws", diff --git a/leaky-ships/lib/utils/helpers.ts b/leaky-ships/src/lib/utils/helpers.ts similarity index 85% rename from leaky-ships/lib/utils/helpers.ts rename to leaky-ships/src/lib/utils/helpers.ts index 8a6002d..0cecfde 100644 --- a/leaky-ships/lib/utils/helpers.ts +++ b/leaky-ships/src/lib/utils/helpers.ts @@ -1,5 +1,5 @@ -import { count } from "@components/Gamefield/Gamefield" -import { Orientation } from "@prisma/client" +import { count } from "~/components/Gamefield/Gamefield" +import { users } from "~/hooks/useGameProps" import type { Hit, IndexedPosition, @@ -9,7 +9,9 @@ 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" @@ -115,13 +117,13 @@ export const initlialTarget = { x: 2, y: 2, show: false, - orientation: Orientation.h, + orientation: Orientation.Enum.h, } export const initlialTargetPreview = { x: 2, y: 2, show: false, - orientation: Orientation.h, + orientation: Orientation.Enum.h, } export const initlialMouseCursor = { shouldShow: false, @@ -132,7 +134,7 @@ export const initlialMouseCursor = { export const shipProps = ( ships: ShipProps[], mode: number, - targetPreview: Position & { orientation: Orientation }, + targetPreview: Omit, ) => ({ size: mode + 2, variant: @@ -153,8 +155,8 @@ export const shipProps = ( orientation: targetPreview.orientation, }) export function shipFields(ship: ShipProps, i?: number) { - let fields: IndexedPosition[] = [] - let borders: IndexedPosition[] = [] + const fields: IndexedPosition[] = [] + const borders: IndexedPosition[] = [] for ( let x = ship.x; x <= (ship.orientation === "h" ? ship.x + ship.size - 1 : ship.x); @@ -220,3 +222,25 @@ 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/src/lib/utils/prizma.ts b/leaky-ships/src/lib/utils/prizma.ts new file mode 100644 index 0000000..e790f99 --- /dev/null +++ b/leaky-ships/src/lib/utils/prizma.ts @@ -0,0 +1,44 @@ +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 new file mode 100644 index 0000000..a905c9d --- /dev/null +++ b/leaky-ships/src/lib/zodSchemas.ts @@ -0,0 +1,111 @@ +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 new file mode 100644 index 0000000..c58ddf7 --- /dev/null +++ b/leaky-ships/src/routes/[...404].tsx @@ -0,0 +1,5 @@ +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 new file mode 100644 index 0000000..724f269 --- /dev/null +++ b/leaky-ships/src/routes/api/auth/[...solidauth].ts @@ -0,0 +1,4 @@ +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 new file mode 100644 index 0000000..63788e1 --- /dev/null +++ b/leaky-ships/src/routes/api/game/[id].ts @@ -0,0 +1,45 @@ +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 new file mode 100644 index 0000000..0b4d82d --- /dev/null +++ b/leaky-ships/src/routes/api/game/create.ts @@ -0,0 +1,85 @@ +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 new file mode 100644 index 0000000..21ab4fb --- /dev/null +++ b/leaky-ships/src/routes/api/game/join.ts @@ -0,0 +1,82 @@ +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 new file mode 100644 index 0000000..c01ac33 --- /dev/null +++ b/leaky-ships/src/routes/api/game/running.ts @@ -0,0 +1,59 @@ +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 new file mode 100644 index 0000000..69fb927 --- /dev/null +++ b/leaky-ships/src/routes/api/ws.ts @@ -0,0 +1,299 @@ +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 new file mode 100644 index 0000000..e857088 --- /dev/null +++ b/leaky-ships/src/routes/gamefield.tsx @@ -0,0 +1,20 @@ +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 new file mode 100644 index 0000000..2486f4c --- /dev/null +++ b/leaky-ships/src/routes/grid.tsx @@ -0,0 +1,20 @@ +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 new file mode 100644 index 0000000..e16df30 --- /dev/null +++ b/leaky-ships/src/routes/grid2.tsx @@ -0,0 +1,20 @@ +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 new file mode 100644 index 0000000..4fd2fbf --- /dev/null +++ b/leaky-ships/src/routes/index.tsx @@ -0,0 +1,23 @@ +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 new file mode 100644 index 0000000..a970e4f --- /dev/null +++ b/leaky-ships/src/routes/lobby.tsx @@ -0,0 +1,41 @@ +// 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 new file mode 100644 index 0000000..123cfc8 --- /dev/null +++ b/leaky-ships/src/routes/signin.tsx @@ -0,0 +1,165 @@ +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 new file mode 100644 index 0000000..d46c8a6 --- /dev/null +++ b/leaky-ships/src/routes/signout.tsx @@ -0,0 +1,57 @@ +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 new file mode 100644 index 0000000..274466f --- /dev/null +++ b/leaky-ships/src/routes/start.tsx @@ -0,0 +1,190 @@ +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/pages/api/auth/[...nextauth].ts b/leaky-ships/src/server/auth.ts similarity index 57% rename from leaky-ships/pages/api/auth/[...nextauth].ts rename to leaky-ships/src/server/auth.ts index c631cde..20773c8 100644 --- a/leaky-ships/pages/api/auth/[...nextauth].ts +++ b/leaky-ships/src/server/auth.ts @@ -1,15 +1,13 @@ -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 Discord from "@auth/core/providers/discord" +import { DrizzleAdapter } from "@auth/drizzle-adapter" +import { type SolidAuthConfig } from "@auth/solid-start" import { animals, Config, NumberDictionary, uniqueNamesGenerator, } from "unique-names-generator" +import db from "~/drizzle" const numberDictionary = NumberDictionary.generate({ min: 0, max: 9999 }) const customConfig: Config = { @@ -19,20 +17,16 @@ const customConfig: Config = { length: 2, } -const options: NextAuthOptions = { +export const authOptions: SolidAuthConfig = { providers: [ - 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, + // @ts-ignore + Discord({ + clientId: import.meta.env.VITE_DISCORD_CLIENT_ID, + clientSecret: import.meta.env.VITE_DISCORD_CLIENT_SECRET, }), ], - adapter: PrismaAdapter(prisma), - secret: process.env.NEXTAUTH_SECRET, + adapter: DrizzleAdapter(db), + secret: import.meta.env.VITE_AUTH_SECRET, callbacks: { signIn: ({ user, account }) => { // Custom signIn callback to add username to email provider @@ -43,6 +37,7 @@ const options: NextAuthOptions = { }, session: ({ session, user }) => { if (session?.user) { + // @ts-ignore session.user.id = user.id } return session @@ -56,8 +51,3 @@ const options: NextAuthOptions = { // 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/styles/App.scss b/leaky-ships/src/styles/App.scss similarity index 97% rename from leaky-ships/styles/App.scss rename to leaky-ships/src/styles/App.scss index 361639c..c1f8701 100644 --- a/leaky-ships/styles/App.scss +++ b/leaky-ships/src/styles/App.scss @@ -395,12 +395,12 @@ body { width: 128px; position: relative; - .react-colorful-wrapper { + .color-picker-wrapper { pointer-events: none; opacity: 0; transition: 0.2s; position: absolute; - top: -225px; + bottom: 105%; left: 50%; transform: translateX(-50%); z-index: 1; @@ -454,6 +454,10 @@ 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/styles/globals.scss b/leaky-ships/src/styles/globals.scss similarity index 94% rename from leaky-ships/styles/globals.scss rename to leaky-ships/src/styles/globals.scss index 0d9b62d..bb3522a 100644 --- a/leaky-ships/styles/globals.scss +++ b/leaky-ships/src/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/styles/grid.scss b/leaky-ships/src/styles/grid.scss similarity index 100% rename from leaky-ships/styles/grid.scss rename to leaky-ships/src/styles/grid.scss diff --git a/leaky-ships/styles/grid2.scss b/leaky-ships/src/styles/grid2.scss similarity index 100% rename from leaky-ships/styles/grid2.scss rename to leaky-ships/src/styles/grid2.scss diff --git a/leaky-ships/styles/mixins/display.scss b/leaky-ships/src/styles/mixins/display.scss similarity index 100% rename from leaky-ships/styles/mixins/display.scss rename to leaky-ships/src/styles/mixins/display.scss diff --git a/leaky-ships/styles/mixins/effects.scss b/leaky-ships/src/styles/mixins/effects.scss similarity index 100% rename from leaky-ships/styles/mixins/effects.scss rename to leaky-ships/src/styles/mixins/effects.scss diff --git a/leaky-ships/styles/mixins/variables.scss b/leaky-ships/src/styles/mixins/variables.scss similarity index 100% rename from leaky-ships/styles/mixins/variables.scss rename to leaky-ships/src/styles/mixins/variables.scss diff --git a/leaky-ships/src/styles/root.css b/leaky-ships/src/styles/root.css new file mode 100644 index 0000000..b5c61c9 --- /dev/null +++ b/leaky-ships/src/styles/root.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/leaky-ships/src/types/authjs.d.ts b/leaky-ships/src/types/authjs.d.ts new file mode 100644 index 0000000..18d303c --- /dev/null +++ b/leaky-ships/src/types/authjs.d.ts @@ -0,0 +1,15 @@ +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 new file mode 100644 index 0000000..c0ab932 --- /dev/null +++ b/leaky-ships/src/types/env.d.ts @@ -0,0 +1,16 @@ +/// + +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/tailwind.config.js b/leaky-ships/tailwind.config.cjs similarity index 77% rename from leaky-ships/tailwind.config.js rename to leaky-ships/tailwind.config.cjs index b6af3bc..f3d1eec 100644 --- a/leaky-ships/tailwind.config.js +++ b/leaky-ships/tailwind.config.cjs @@ -1,10 +1,7 @@ /** @type {import('tailwindcss').Config} */ module.exports = { - content: [ - "./pages/**/*.{js,ts,jsx,tsx}", - "./components/**/*.{js,ts,jsx,tsx}", - ], + content: ["./src/**/*.{html,js,jsx,ts,tsx}"], theme: { extend: { colors: { diff --git a/leaky-ships/tsconfig.json b/leaky-ships/tsconfig.json index 55146cf..1b4d6d3 100644 --- a/leaky-ships/tsconfig.json +++ b/leaky-ships/tsconfig.json @@ -1,26 +1,19 @@ { "compilerOptions": { - "target": "es5", - "lib": ["dom", "dom.iterable", "esnext"], - "allowJs": true, - "skipLibCheck": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "noEmit": true, - "esModuleInterop": true, - "module": "esnext", + "target": "ESNext", + "module": "ESNext", "moduleResolution": "node", - "resolveJsonModule": true, - "isolatedModules": true, + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, "jsx": "preserve", - "incremental": true, + "jsxImportSource": "solid-js", + "allowJs": true, + "strict": true, + "noEmit": true, + "types": ["vinxi/client"], + "isolatedModules": true, "paths": { - "@lib/*": ["./lib/*"], - "@hooks/*": ["./hooks/*"], - "@components/*": ["./components/*"], - "@backend/*": ["./lib/backend/*"] + "~/*": ["./src/*"] } - }, - "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 deleted file mode 100644 index 7576620..0000000 --- a/leaky-ships/types/next-auth.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -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 new file mode 100644 index 0000000..04794fb --- /dev/null +++ b/leaky-ships/vite.config.ts @@ -0,0 +1,3 @@ +import { defineConfig } from "@solidjs/start/config" + +export default defineConfig({})