mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-04-26 17:27:09 -05:00
Upgrade zod package to 4 (#2677)
This commit is contained in:
parent
81483de0db
commit
658421d899
|
|
@ -3,7 +3,7 @@ import * as React from "react";
|
||||||
import { type DefaultValues, FormProvider, useForm } from "react-hook-form";
|
import { type DefaultValues, FormProvider, useForm } from "react-hook-form";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { useFetcher } from "react-router";
|
import { useFetcher } from "react-router";
|
||||||
import type { z } from "zod/v4";
|
import type { z } from "zod";
|
||||||
import { logger } from "~/utils/logger";
|
import { logger } from "~/utils/logger";
|
||||||
import type { ActionError } from "~/utils/remix.server";
|
import type { ActionError } from "~/utils/remix.server";
|
||||||
import { LinkButton } from "../elements/Button";
|
import { LinkButton } from "../elements/Button";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import type { ActionFunctionArgs } from "react-router";
|
import type { ActionFunctionArgs } from "react-router";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import * as AdminRepository from "~/features/admin/AdminRepository.server";
|
import * as AdminRepository from "~/features/admin/AdminRepository.server";
|
||||||
import { requireUser } from "~/features/auth/core/user.server";
|
import { requireUser } from "~/features/auth/core/user.server";
|
||||||
import { refreshBannedCache } from "~/features/ban/core/banned.server";
|
import { refreshBannedCache } from "~/features/ban/core/banned.server";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { friendCode } from "~/utils/zod";
|
import { friendCode } from "~/utils/zod";
|
||||||
|
|
||||||
export const adminActionSearchParamsSchema = z.object({
|
export const adminActionSearchParamsSchema = z.object({
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import type { ActionFunction } from "react-router";
|
import type { ActionFunction } from "react-router";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { seed } from "~/db/seed";
|
import { seed } from "~/db/seed";
|
||||||
import { DANGEROUS_CAN_ACCESS_DEV_CONTROLS } from "~/features/admin/core/dev-controls";
|
import { DANGEROUS_CAN_ACCESS_DEV_CONTROLS } from "~/features/admin/core/dev-controls";
|
||||||
import { SEED_VARIATIONS } from "~/features/api-private/constants";
|
import { SEED_VARIATIONS } from "~/features/api-private/constants";
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import type { LoaderFunctionArgs } from "react-router";
|
import type { LoaderFunctionArgs } from "react-router";
|
||||||
import { cors } from "remix-utils/cors";
|
import { cors } from "remix-utils/cors";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { db } from "~/db/sql";
|
import { db } from "~/db/sql";
|
||||||
import {
|
import {
|
||||||
databaseTimestampToDate,
|
databaseTimestampToDate,
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { jsonArrayFrom } from "kysely/helpers/sqlite";
|
import { jsonArrayFrom } from "kysely/helpers/sqlite";
|
||||||
import type { LoaderFunctionArgs } from "react-router";
|
import type { LoaderFunctionArgs } from "react-router";
|
||||||
import { cors } from "remix-utils/cors";
|
import { cors } from "remix-utils/cors";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { db } from "~/db/sql";
|
import { db } from "~/db/sql";
|
||||||
import { concatUserSubmittedImagePrefix } from "~/utils/kysely.server";
|
import { concatUserSubmittedImagePrefix } from "~/utils/kysely.server";
|
||||||
import { notFoundIfFalsy, parseParams } from "~/utils/remix.server";
|
import { notFoundIfFalsy, parseParams } from "~/utils/remix.server";
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import type { LoaderFunctionArgs } from "react-router";
|
import type { LoaderFunctionArgs } from "react-router";
|
||||||
import { cors } from "remix-utils/cors";
|
import { cors } from "remix-utils/cors";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { SendouQ } from "~/features/sendouq/core/SendouQ.server";
|
import { SendouQ } from "~/features/sendouq/core/SendouQ.server";
|
||||||
import { parseParams } from "~/utils/remix.server";
|
import { parseParams } from "~/utils/remix.server";
|
||||||
import { id } from "~/utils/zod";
|
import { id } from "~/utils/zod";
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import type { LoaderFunctionArgs } from "react-router";
|
import type { LoaderFunctionArgs } from "react-router";
|
||||||
import { cors } from "remix-utils/cors";
|
import { cors } from "remix-utils/cors";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import * as SQMatchRepository from "~/features/sendouq-match/SQMatchRepository.server";
|
import * as SQMatchRepository from "~/features/sendouq-match/SQMatchRepository.server";
|
||||||
import { i18next } from "~/modules/i18n/i18next.server";
|
import { i18next } from "~/modules/i18n/i18next.server";
|
||||||
import { notFoundIfFalsy, parseParams } from "~/utils/remix.server";
|
import { notFoundIfFalsy, parseParams } from "~/utils/remix.server";
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import type { LoaderFunctionArgs } from "react-router";
|
import type { LoaderFunctionArgs } from "react-router";
|
||||||
import { cors } from "remix-utils/cors";
|
import { cors } from "remix-utils/cors";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { db } from "~/db/sql";
|
import { db } from "~/db/sql";
|
||||||
import { concatUserSubmittedImagePrefix } from "~/utils/kysely.server";
|
import { concatUserSubmittedImagePrefix } from "~/utils/kysely.server";
|
||||||
import { notFoundIfFalsy, parseParams } from "~/utils/remix.server";
|
import { notFoundIfFalsy, parseParams } from "~/utils/remix.server";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { jsonArrayFrom } from "kysely/helpers/sqlite";
|
import { jsonArrayFrom } from "kysely/helpers/sqlite";
|
||||||
import type { LoaderFunctionArgs } from "react-router";
|
import type { LoaderFunctionArgs } from "react-router";
|
||||||
import { cors } from "remix-utils/cors";
|
import { cors } from "remix-utils/cors";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { db } from "~/db/sql";
|
import { db } from "~/db/sql";
|
||||||
import * as TournamentRepository from "~/features/tournament/TournamentRepository.server";
|
import * as TournamentRepository from "~/features/tournament/TournamentRepository.server";
|
||||||
import * as TournamentTeamRepository from "~/features/tournament/TournamentTeamRepository.server";
|
import * as TournamentTeamRepository from "~/features/tournament/TournamentTeamRepository.server";
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import type { LoaderFunctionArgs } from "react-router";
|
import type { LoaderFunctionArgs } from "react-router";
|
||||||
import { cors } from "remix-utils/cors";
|
import { cors } from "remix-utils/cors";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { tournamentFromDB } from "~/features/tournament-bracket/core/Tournament.server";
|
import { tournamentFromDB } from "~/features/tournament-bracket/core/Tournament.server";
|
||||||
import { notFoundIfFalsy, parseParams } from "~/utils/remix.server";
|
import { notFoundIfFalsy, parseParams } from "~/utils/remix.server";
|
||||||
import { id } from "~/utils/zod";
|
import { id } from "~/utils/zod";
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import type { LoaderFunctionArgs } from "react-router";
|
import type { LoaderFunctionArgs } from "react-router";
|
||||||
import { cors } from "remix-utils/cors";
|
import { cors } from "remix-utils/cors";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import type { Bracket } from "~/features/tournament-bracket/core/Bracket";
|
import type { Bracket } from "~/features/tournament-bracket/core/Bracket";
|
||||||
import { tournamentFromDB } from "~/features/tournament-bracket/core/Tournament.server";
|
import { tournamentFromDB } from "~/features/tournament-bracket/core/Tournament.server";
|
||||||
import { notFoundIfFalsy, parseParams } from "~/utils/remix.server";
|
import { notFoundIfFalsy, parseParams } from "~/utils/remix.server";
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import type { LoaderFunctionArgs } from "react-router";
|
import type { LoaderFunctionArgs } from "react-router";
|
||||||
import { cors } from "remix-utils/cors";
|
import { cors } from "remix-utils/cors";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { db } from "~/db/sql";
|
import { db } from "~/db/sql";
|
||||||
import { notFoundIfFalsy, parseParams } from "~/utils/remix.server";
|
import { notFoundIfFalsy, parseParams } from "~/utils/remix.server";
|
||||||
import { id } from "~/utils/zod";
|
import { id } from "~/utils/zod";
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import type { LoaderFunctionArgs } from "react-router";
|
import type { LoaderFunctionArgs } from "react-router";
|
||||||
import { cors } from "remix-utils/cors";
|
import { cors } from "remix-utils/cors";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import * as TournamentMatchRepository from "~/features/tournament-bracket/TournamentMatchRepository.server";
|
import * as TournamentMatchRepository from "~/features/tournament-bracket/TournamentMatchRepository.server";
|
||||||
import { parseParams } from "~/utils/remix.server";
|
import { parseParams } from "~/utils/remix.server";
|
||||||
import { id } from "~/utils/zod";
|
import { id } from "~/utils/zod";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { jsonArrayFrom, jsonObjectFrom } from "kysely/helpers/sqlite";
|
import { jsonArrayFrom, jsonObjectFrom } from "kysely/helpers/sqlite";
|
||||||
import type { LoaderFunctionArgs } from "react-router";
|
import type { LoaderFunctionArgs } from "react-router";
|
||||||
import { cors } from "remix-utils/cors";
|
import { cors } from "remix-utils/cors";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { db } from "~/db/sql";
|
import { db } from "~/db/sql";
|
||||||
import { ordinalToSp } from "~/features/mmr/mmr-utils";
|
import { ordinalToSp } from "~/features/mmr/mmr-utils";
|
||||||
import * as TournamentRepository from "~/features/tournament/TournamentRepository.server";
|
import * as TournamentRepository from "~/features/tournament/TournamentRepository.server";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { jsonArrayFrom } from "kysely/helpers/sqlite";
|
import { jsonArrayFrom } from "kysely/helpers/sqlite";
|
||||||
import type { LoaderFunctionArgs } from "react-router";
|
import type { LoaderFunctionArgs } from "react-router";
|
||||||
import { cors } from "remix-utils/cors";
|
import { cors } from "remix-utils/cors";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { db } from "~/db/sql";
|
import { db } from "~/db/sql";
|
||||||
import { databaseTimestampToDate } from "~/utils/dates";
|
import { databaseTimestampToDate } from "~/utils/dates";
|
||||||
import { notFoundIfFalsy, parseParams } from "~/utils/remix.server";
|
import { notFoundIfFalsy, parseParams } from "~/utils/remix.server";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { jsonArrayFrom } from "kysely/helpers/sqlite";
|
import { jsonArrayFrom } from "kysely/helpers/sqlite";
|
||||||
import type { LoaderFunctionArgs } from "react-router";
|
import type { LoaderFunctionArgs } from "react-router";
|
||||||
import { cors } from "remix-utils/cors";
|
import { cors } from "remix-utils/cors";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { db } from "~/db/sql";
|
import { db } from "~/db/sql";
|
||||||
import * as Seasons from "~/features/mmr/core/Seasons";
|
import * as Seasons from "~/features/mmr/core/Seasons";
|
||||||
import { userSkills as _userSkills } from "~/features/mmr/tiered.server";
|
import { userSkills as _userSkills } from "~/features/mmr/tiered.server";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import type { ActionFunctionArgs } from "react-router";
|
import type { ActionFunctionArgs } from "react-router";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { refreshApiTokensCache } from "~/features/api-public/api-public-utils.server";
|
import { refreshApiTokensCache } from "~/features/api-public/api-public-utils.server";
|
||||||
import { requireUser } from "~/features/auth/core/user.server";
|
import { requireUser } from "~/features/auth/core/user.server";
|
||||||
import { parseRequestPayload, successToast } from "~/utils/remix.server";
|
import { parseRequestPayload, successToast } from "~/utils/remix.server";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import {
|
import {
|
||||||
_action,
|
_action,
|
||||||
checkboxValueToDbBoolean,
|
checkboxValueToDbBoolean,
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
|
|
||||||
const authorName = z.string().min(1);
|
const authorName = z.string().min(1);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import fs from "node:fs";
|
import fs from "node:fs";
|
||||||
import path from "node:path";
|
import path from "node:path";
|
||||||
import matter from "gray-matter";
|
import matter from "gray-matter";
|
||||||
import { ZodError, type z } from "zod/v4";
|
import { ZodError, type z } from "zod";
|
||||||
import { ARTICLES_FOLDER_PATH } from "../articles-constants";
|
import { ARTICLES_FOLDER_PATH } from "../articles-constants";
|
||||||
import { articleDataSchema } from "../articles-schemas.server";
|
import { articleDataSchema } from "../articles-schemas.server";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { _action, id, inviteCode, safeStringSchema } from "~/utils/zod";
|
import { _action, id, inviteCode, safeStringSchema } from "~/utils/zod";
|
||||||
import { ASSOCIATION } from "./associations-constants";
|
import { ASSOCIATION } from "./associations-constants";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import type { z } from "zod/v4";
|
import type { z } from "zod";
|
||||||
import { SendouDialog } from "~/components/elements/Dialog";
|
import { SendouDialog } from "~/components/elements/Dialog";
|
||||||
import { InputFormField } from "~/components/form/InputFormField";
|
import { InputFormField } from "~/components/form/InputFormField";
|
||||||
import { SendouForm } from "~/components/form/SendouForm";
|
import { SendouForm } from "~/components/form/SendouForm";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { OAuth2Strategy } from "remix-auth-oauth2";
|
import { OAuth2Strategy } from "remix-auth-oauth2";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import * as UserRepository from "~/features/user-page/UserRepository.server";
|
import * as UserRepository from "~/features/user-page/UserRepository.server";
|
||||||
import invariant from "~/utils/invariant";
|
import invariant from "~/utils/invariant";
|
||||||
import { logger } from "~/utils/logger";
|
import { logger } from "~/utils/logger";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { isbot } from "isbot";
|
import { isbot } from "isbot";
|
||||||
import type { ActionFunction, LoaderFunction } from "react-router";
|
import type { ActionFunction, LoaderFunction } from "react-router";
|
||||||
import { redirect } from "react-router";
|
import { redirect } from "react-router";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { DANGEROUS_CAN_ACCESS_DEV_CONTROLS } from "~/features/admin/core/dev-controls";
|
import { DANGEROUS_CAN_ACCESS_DEV_CONTROLS } from "~/features/admin/core/dev-controls";
|
||||||
import * as UserRepository from "~/features/user-page/UserRepository.server";
|
import * as UserRepository from "~/features/user-page/UserRepository.server";
|
||||||
import { requireRole } from "~/modules/permissions/guards.server";
|
import { requireRole } from "~/modules/permissions/guards.server";
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import type { ActionFunction } from "react-router";
|
import type { ActionFunction } from "react-router";
|
||||||
import { redirect } from "react-router";
|
import { redirect } from "react-router";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { requireUser } from "~/features/auth/core/user.server";
|
import { requireUser } from "~/features/auth/core/user.server";
|
||||||
import { notify } from "~/features/notifications/core/notify.server";
|
import { notify } from "~/features/notifications/core/notify.server";
|
||||||
import {
|
import {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { _action, id, noDuplicates, safeJSONParse } from "~/utils/zod";
|
import { _action, id, noDuplicates, safeJSONParse } from "~/utils/zod";
|
||||||
|
|
||||||
export const editBadgeActionSchema = z.union([
|
export const editBadgeActionSchema = z.union([
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { ability, modeShort, safeJSONParse } from "~/utils/zod";
|
import { ability, modeShort, safeJSONParse } from "~/utils/zod";
|
||||||
import { MAX_BUILD_FILTERS } from "./builds-constants";
|
import { MAX_BUILD_FILTERS } from "./builds-constants";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import type { ActionFunction } from "react-router";
|
import type { ActionFunction } from "react-router";
|
||||||
import { redirect } from "react-router";
|
import { redirect } from "react-router";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { requireUserId } from "~/features/auth/core/user.server";
|
import { requireUserId } from "~/features/auth/core/user.server";
|
||||||
import * as CalendarRepository from "~/features/calendar/CalendarRepository.server";
|
import * as CalendarRepository from "~/features/calendar/CalendarRepository.server";
|
||||||
import * as ShowcaseTournaments from "~/features/front-page/core/ShowcaseTournaments.server";
|
import * as ShowcaseTournaments from "~/features/front-page/core/ShowcaseTournaments.server";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import * as CalendarRepository from "~/features/calendar/CalendarRepository.server";
|
import * as CalendarRepository from "~/features/calendar/CalendarRepository.server";
|
||||||
import { MapPool } from "~/features/map-list-generator/core/map-pool";
|
import { MapPool } from "~/features/map-list-generator/core/map-pool";
|
||||||
import { rankedModesShort } from "~/modules/in-game-lists/modes";
|
import { rankedModesShort } from "~/modules/in-game-lists/modes";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { type CalendarEventTag, TOURNAMENT_STAGE_TYPES } from "~/db/tables";
|
import { type CalendarEventTag, TOURNAMENT_STAGE_TYPES } from "~/db/tables";
|
||||||
import { TOURNAMENT } from "~/features/tournament/tournament-constants";
|
import { TOURNAMENT } from "~/features/tournament/tournament-constants";
|
||||||
import * as Progression from "~/features/tournament-bracket/core/Progression";
|
import * as Progression from "~/features/tournament-bracket/core/Progression";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import type { z } from "zod/v4";
|
import type { z } from "zod";
|
||||||
import type { CalendarEventTag, Tables } from "~/db/tables";
|
import type { CalendarEventTag, Tables } from "~/db/tables";
|
||||||
import type { calendarFiltersSearchParamsSchema } from "~/features/calendar/calendar-schemas";
|
import type { calendarFiltersSearchParamsSchema } from "~/features/calendar/calendar-schemas";
|
||||||
import type { ModeShortWithSpecial } from "~/modules/in-game-lists/types";
|
import type { ModeShortWithSpecial } from "~/modules/in-game-lists/types";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { formatDistance } from "date-fns";
|
import { formatDistance } from "date-fns";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { logger } from "~/utils/logger";
|
import { logger } from "~/utils/logger";
|
||||||
|
|
||||||
const BSKY_URL =
|
const BSKY_URL =
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import type { FileUpload } from "@remix-run/form-data-parser";
|
||||||
import { parseFormData } from "@remix-run/form-data-parser";
|
import { parseFormData } from "@remix-run/form-data-parser";
|
||||||
import type { ActionFunctionArgs } from "react-router";
|
import type { ActionFunctionArgs } from "react-router";
|
||||||
import { redirect } from "react-router";
|
import { redirect } from "react-router";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { requireUser } from "~/features/auth/core/user.server";
|
import { requireUser } from "~/features/auth/core/user.server";
|
||||||
import * as TeamRepository from "~/features/team/TeamRepository.server";
|
import * as TeamRepository from "~/features/team/TeamRepository.server";
|
||||||
import { isTeamManager } from "~/features/team/team-utils";
|
import { isTeamManager } from "~/features/team/team-utils";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { _action, id, safeJSONParse } from "~/utils/zod";
|
import { _action, id, safeJSONParse } from "~/utils/zod";
|
||||||
|
|
||||||
const validateManySchema = z.object({
|
const validateManySchema = z.object({
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import type { ActionFunctionArgs } from "react-router";
|
import type { ActionFunctionArgs } from "react-router";
|
||||||
import { redirect } from "react-router";
|
import { redirect } from "react-router";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { requireUser } from "~/features/auth/core/user.server";
|
import { requireUser } from "~/features/auth/core/user.server";
|
||||||
import * as UserRepository from "~/features/user-page/UserRepository.server";
|
import * as UserRepository from "~/features/user-page/UserRepository.server";
|
||||||
import { errorToastIfFalsy, parseRequestPayload } from "~/utils/remix.server";
|
import { errorToastIfFalsy, parseRequestPayload } from "~/utils/remix.server";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import type { ActionFunctionArgs } from "react-router";
|
import type { ActionFunctionArgs } from "react-router";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { requireUser } from "~/features/auth/core/user.server";
|
import { requireUser } from "~/features/auth/core/user.server";
|
||||||
import { errorToastIfFalsy, parseRequestPayload } from "~/utils/remix.server";
|
import { errorToastIfFalsy, parseRequestPayload } from "~/utils/remix.server";
|
||||||
import { _action, id } from "~/utils/zod";
|
import { _action, id } from "~/utils/zod";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import type { LoaderFunctionArgs } from "react-router";
|
import type { LoaderFunctionArgs } from "react-router";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { requireUser } from "~/features/auth/core/user.server";
|
import { requireUser } from "~/features/auth/core/user.server";
|
||||||
import * as QSettingsRepository from "~/features/sendouq-settings/QSettingsRepository.server";
|
import * as QSettingsRepository from "~/features/sendouq-settings/QSettingsRepository.server";
|
||||||
import * as UserRepository from "~/features/user-page/UserRepository.server";
|
import * as UserRepository from "~/features/user-page/UserRepository.server";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { id } from "~/utils/zod";
|
import { id } from "~/utils/zod";
|
||||||
import { NOTIFICATIONS } from "./notifications-contants";
|
import { NOTIFICATIONS } from "./notifications-contants";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { _action, actualNumber, trimmedString } from "~/utils/zod";
|
import { _action, actualNumber, trimmedString } from "~/utils/zod";
|
||||||
import { PLUS_SUGGESTION, PLUS_TIERS } from "./plus-suggestions-constants";
|
import { PLUS_SUGGESTION, PLUS_TIERS } from "./plus-suggestions-constants";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import type { PlusVoteFromFE } from "~/features/plus-voting/core";
|
import type { PlusVoteFromFE } from "~/features/plus-voting/core";
|
||||||
import { assertType } from "~/utils/types";
|
import { assertType } from "~/utils/types";
|
||||||
import { safeJSONParse } from "~/utils/zod";
|
import { safeJSONParse } from "~/utils/zod";
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { add } from "date-fns";
|
import { add } from "date-fns";
|
||||||
import { type ActionFunctionArgs, redirect } from "react-router";
|
import { type ActionFunctionArgs, redirect } from "react-router";
|
||||||
import type { z } from "zod/v4";
|
import type { z } from "zod";
|
||||||
import type { Tables } from "~/db/tables";
|
import type { Tables } from "~/db/tables";
|
||||||
import { requireUser } from "~/features/auth/core/user.server";
|
import { requireUser } from "~/features/auth/core/user.server";
|
||||||
import { userIsBanned } from "~/features/ban/core/banned.server";
|
import { userIsBanned } from "~/features/ban/core/banned.server";
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import clsx from "clsx";
|
||||||
import * as React from "react";
|
import * as React from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { Link, useLoaderData } from "react-router";
|
import { Link, useLoaderData } from "react-router";
|
||||||
import type { z } from "zod/v4";
|
import type { z } from "zod";
|
||||||
import { Alert } from "~/components/Alert";
|
import { Alert } from "~/components/Alert";
|
||||||
import { SendouButton } from "~/components/elements/Button";
|
import { SendouButton } from "~/components/elements/Button";
|
||||||
import { SendouDialog } from "~/components/elements/Dialog";
|
import { SendouDialog } from "~/components/elements/Dialog";
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import * as React from "react";
|
||||||
import { Controller, useFormContext, useWatch } from "react-hook-form";
|
import { Controller, useFormContext, useWatch } from "react-hook-form";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { useLoaderData } from "react-router";
|
import { useLoaderData } from "react-router";
|
||||||
import type { z } from "zod/v4";
|
import type { z } from "zod";
|
||||||
import { TournamentSearch } from "~/components/elements/TournamentSearch";
|
import { TournamentSearch } from "~/components/elements/TournamentSearch";
|
||||||
import { DateFormField } from "~/components/form/DateFormField";
|
import { DateFormField } from "~/components/form/DateFormField";
|
||||||
import { SelectFormField } from "~/components/form/SelectFormField";
|
import { SelectFormField } from "~/components/form/SelectFormField";
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import { useTranslation } from "react-i18next";
|
||||||
import type { MetaFunction } from "react-router";
|
import type { MetaFunction } from "react-router";
|
||||||
import { useLoaderData } from "react-router";
|
import { useLoaderData } from "react-router";
|
||||||
import * as R from "remeda";
|
import * as R from "remeda";
|
||||||
import type { z } from "zod/v4";
|
import type { z } from "zod";
|
||||||
import { AddNewButton } from "~/components/AddNewButton";
|
import { AddNewButton } from "~/components/AddNewButton";
|
||||||
import { LinkButton, SendouButton } from "~/components/elements/Button";
|
import { LinkButton, SendouButton } from "~/components/elements/Button";
|
||||||
import { useUser } from "~/features/auth/core/user";
|
import { useUser } from "~/features/auth/core/user";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { add, sub } from "date-fns";
|
import { add, sub } from "date-fns";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import {
|
import {
|
||||||
_action,
|
_action,
|
||||||
date,
|
date,
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { SENDOUQ, SENDOUQ_BEST_OF } from "~/features/sendouq/q-constants";
|
import { SENDOUQ, SENDOUQ_BEST_OF } from "~/features/sendouq/q-constants";
|
||||||
import {
|
import {
|
||||||
_action,
|
_action,
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { languagesUnified } from "~/modules/i18n/config";
|
import { languagesUnified } from "~/modules/i18n/config";
|
||||||
import {
|
import {
|
||||||
_action,
|
_action,
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import {
|
import {
|
||||||
_action,
|
_action,
|
||||||
deduplicate,
|
deduplicate,
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { _action } from "~/utils/zod";
|
import { _action } from "~/utils/zod";
|
||||||
|
|
||||||
export const settingsEditSchema = z.union([
|
export const settingsEditSchema = z.union([
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import {
|
import {
|
||||||
_action,
|
_action,
|
||||||
customCssVarObject,
|
customCssVarObject,
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import { arrayMove } from "@dnd-kit/sortable";
|
||||||
import JSONCrush from "jsoncrush";
|
import JSONCrush from "jsoncrush";
|
||||||
import * as React from "react";
|
import * as React from "react";
|
||||||
import { useSearchParams } from "react-router";
|
import { useSearchParams } from "react-router";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import {
|
import {
|
||||||
useSearchParamState,
|
useSearchParamState,
|
||||||
useSearchParamStateEncoder,
|
useSearchParamStateEncoder,
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { assertType } from "~/utils/types";
|
import { assertType } from "~/utils/types";
|
||||||
import {
|
import {
|
||||||
hexCode,
|
hexCode,
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import {
|
import {
|
||||||
_action,
|
_action,
|
||||||
checkboxValueToBoolean,
|
checkboxValueToBoolean,
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import type { z } from "zod/v4";
|
import type { z } from "zod";
|
||||||
import { SendouButton } from "~/components/elements/Button";
|
import { SendouButton } from "~/components/elements/Button";
|
||||||
import { SendouDialog } from "~/components/elements/Dialog";
|
import { SendouDialog } from "~/components/elements/Dialog";
|
||||||
import { DateFormField } from "~/components/form/DateFormField";
|
import { DateFormField } from "~/components/form/DateFormField";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import type { LoaderFunctionArgs } from "react-router";
|
import type { LoaderFunctionArgs } from "react-router";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { getUser } from "~/features/auth/core/user.server";
|
import { getUser } from "~/features/auth/core/user.server";
|
||||||
import type { SerializeFrom } from "~/utils/remix";
|
import type { SerializeFrom } from "~/utils/remix";
|
||||||
import { parseSafeSearchParams } from "~/utils/remix.server";
|
import { parseSafeSearchParams } from "~/utils/remix.server";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { Controller, useFieldArray, useFormContext } from "react-hook-form";
|
import { Controller, useFieldArray, useFormContext } from "react-hook-form";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { Link, useLoaderData } from "react-router";
|
import { Link, useLoaderData } from "react-router";
|
||||||
import type { z } from "zod/v4";
|
import type { z } from "zod";
|
||||||
import { FormMessage } from "~/components/FormMessage";
|
import { FormMessage } from "~/components/FormMessage";
|
||||||
import { AddFieldButton } from "~/components/form/AddFieldButton";
|
import { AddFieldButton } from "~/components/form/AddFieldButton";
|
||||||
import { FormFieldset } from "~/components/form/FormFieldset";
|
import { FormFieldset } from "~/components/form/FormFieldset";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import type { z } from "zod/v4";
|
import type { z } from "zod";
|
||||||
import { Alert } from "~/components/Alert";
|
import { Alert } from "~/components/Alert";
|
||||||
import { InputFormField } from "~/components/form/InputFormField";
|
import { InputFormField } from "~/components/form/InputFormField";
|
||||||
import { SendouForm } from "~/components/form/SendouForm";
|
import { SendouForm } from "~/components/form/SendouForm";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { isFuture } from "date-fns";
|
import { isFuture } from "date-fns";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { TOURNAMENT_ORGANIZATION_ROLES } from "~/db/tables";
|
import { TOURNAMENT_ORGANIZATION_ROLES } from "~/db/tables";
|
||||||
import { TOURNAMENT_ORGANIZATION } from "~/features/tournament-organization/tournament-organization-constants";
|
import { TOURNAMENT_ORGANIZATION } from "~/features/tournament-organization/tournament-organization-constants";
|
||||||
import { dayMonthYearToDate } from "~/utils/dates";
|
import { dayMonthYearToDate } from "~/utils/dates";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import type { LoaderFunctionArgs } from "react-router";
|
import type { LoaderFunctionArgs } from "react-router";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { notFoundIfFalsy, parseParams } from "~/utils/remix.server";
|
import { notFoundIfFalsy, parseParams } from "~/utils/remix.server";
|
||||||
import * as TournamentOrganizationRepository from "./TournamentOrganizationRepository.server";
|
import * as TournamentOrganizationRepository from "./TournamentOrganizationRepository.server";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import {
|
import {
|
||||||
id,
|
id,
|
||||||
processMany,
|
processMany,
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import {
|
import {
|
||||||
_action,
|
_action,
|
||||||
checkboxValueToBoolean,
|
checkboxValueToBoolean,
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { type ActionFunction, redirect } from "react-router";
|
import { type ActionFunction, redirect } from "react-router";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { requireUser } from "~/features/auth/core/user.server";
|
import { requireUser } from "~/features/auth/core/user.server";
|
||||||
import * as BuildRepository from "~/features/builds/BuildRepository.server";
|
import * as BuildRepository from "~/features/builds/BuildRepository.server";
|
||||||
import { BUILD } from "~/features/builds/builds-constants";
|
import { BUILD } from "~/features/builds/builds-constants";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { type ActionFunction, redirect } from "react-router";
|
import { type ActionFunction, redirect } from "react-router";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { BUILD_SORT_IDENTIFIERS } from "~/db/tables";
|
import { BUILD_SORT_IDENTIFIERS } from "~/db/tables";
|
||||||
import { requireUser } from "~/features/auth/core/user.server";
|
import { requireUser } from "~/features/auth/core/user.server";
|
||||||
import * as BuildRepository from "~/features/builds/BuildRepository.server";
|
import * as BuildRepository from "~/features/builds/BuildRepository.server";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import type { LoaderFunctionArgs } from "react-router";
|
import type { LoaderFunctionArgs } from "react-router";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { requireUserId } from "~/features/auth/core/user.server";
|
import { requireUserId } from "~/features/auth/core/user.server";
|
||||||
import * as BuildRepository from "~/features/builds/BuildRepository.server";
|
import * as BuildRepository from "~/features/builds/BuildRepository.server";
|
||||||
import type { Ability } from "~/modules/in-game-lists/types";
|
import type { Ability } from "~/modules/in-game-lists/types";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { useLoaderData } from "react-router";
|
import { useLoaderData } from "react-router";
|
||||||
import type { z } from "zod/v4";
|
import type { z } from "zod";
|
||||||
import { Divider } from "~/components/Divider";
|
import { Divider } from "~/components/Divider";
|
||||||
import { SendouButton } from "~/components/elements/Button";
|
import { SendouButton } from "~/components/elements/Button";
|
||||||
import { SendouDialog } from "~/components/elements/Dialog";
|
import { SendouDialog } from "~/components/elements/Dialog";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { BADGE } from "~/features/badges/badges-constants";
|
import { BADGE } from "~/features/badges/badges-constants";
|
||||||
import { isCustomUrl } from "~/utils/urls";
|
import { isCustomUrl } from "~/utils/urls";
|
||||||
import {
|
import {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import type { LoaderFunctionArgs } from "react-router";
|
import type { LoaderFunctionArgs } from "react-router";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { DANGEROUS_CAN_ACCESS_DEV_CONTROLS } from "~/features/admin/core/dev-controls";
|
import { DANGEROUS_CAN_ACCESS_DEV_CONTROLS } from "~/features/admin/core/dev-controls";
|
||||||
import { getUserId } from "~/features/auth/core/user.server";
|
import { getUserId } from "~/features/auth/core/user.server";
|
||||||
import * as UserRepository from "~/features/user-page/UserRepository.server";
|
import * as UserRepository from "~/features/user-page/UserRepository.server";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import type { LoaderFunctionArgs } from "react-router";
|
import type { LoaderFunctionArgs } from "react-router";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { requireUser } from "~/features/auth/core/user.server";
|
import { requireUser } from "~/features/auth/core/user.server";
|
||||||
import { notFoundIfFalsy } from "~/utils/remix.server";
|
import { notFoundIfFalsy } from "~/utils/remix.server";
|
||||||
import { actualNumber, id } from "~/utils/zod";
|
import { actualNumber, id } from "~/utils/zod";
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import {
|
||||||
} from "react-hook-form";
|
} from "react-hook-form";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { useLoaderData } from "react-router";
|
import { useLoaderData } from "react-router";
|
||||||
import type { z } from "zod/v4";
|
import type { z } from "zod";
|
||||||
import { SendouButton } from "~/components/elements/Button";
|
import { SendouButton } from "~/components/elements/Button";
|
||||||
import { UserSearch } from "~/components/elements/UserSearch";
|
import { UserSearch } from "~/components/elements/UserSearch";
|
||||||
import { FormMessage } from "~/components/FormMessage";
|
import { FormMessage } from "~/components/FormMessage";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { add } from "date-fns";
|
import { add } from "date-fns";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import {
|
import {
|
||||||
dayMonthYear,
|
dayMonthYear,
|
||||||
id,
|
id,
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import type { z } from "zod/v4";
|
import type { z } from "zod";
|
||||||
import type { Tables } from "~/db/tables";
|
import type { Tables } from "~/db/tables";
|
||||||
import type { MainWeaponId } from "~/modules/in-game-lists/types";
|
import type { MainWeaponId } from "~/modules/in-game-lists/types";
|
||||||
import type { videoSchema } from "./vods-schemas";
|
import type { videoSchema } from "./vods-schemas";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import {
|
import {
|
||||||
TIER_1_ID,
|
TIER_1_ID,
|
||||||
TIER_2_ID,
|
TIER_2_ID,
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import type { z } from "zod/v4";
|
import type { z } from "zod";
|
||||||
import { STAFF_DISCORD_IDS } from "~/features/admin/admin-constants";
|
import { STAFF_DISCORD_IDS } from "~/features/admin/admin-constants";
|
||||||
import * as UserRepository from "~/features/user-page/UserRepository.server";
|
import * as UserRepository from "~/features/user-page/UserRepository.server";
|
||||||
import { dateToDatabaseTimestamp } from "~/utils/dates";
|
import { dateToDatabaseTimestamp } from "~/utils/dates";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import type { Unpacked } from "~/utils/types";
|
import type { Unpacked } from "~/utils/types";
|
||||||
|
|
||||||
export const streamsSchema = z.object({
|
export const streamsSchema = z.object({
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import type {
|
||||||
Params,
|
Params,
|
||||||
} from "react-router";
|
} from "react-router";
|
||||||
import { expect } from "vitest";
|
import { expect } from "vitest";
|
||||||
import type { z } from "zod/v4";
|
import type { z } from "zod";
|
||||||
import { REGULAR_USER_TEST_ID } from "~/db/seed/constants";
|
import { REGULAR_USER_TEST_ID } from "~/db/seed/constants";
|
||||||
import { db, sql } from "~/db/sql";
|
import { db, sql } from "~/db/sql";
|
||||||
import { ADMIN_ID } from "~/features/admin/admin-constants";
|
import { ADMIN_ID } from "~/features/admin/admin-constants";
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import { nanoid } from "nanoid";
|
||||||
import type { Ok, Result } from "neverthrow";
|
import type { Ok, Result } from "neverthrow";
|
||||||
import type { Params, UIMatch } from "react-router";
|
import type { Params, UIMatch } from "react-router";
|
||||||
import { data, redirect } from "react-router";
|
import { data, redirect } from "react-router";
|
||||||
import type { z } from "zod/v4";
|
import type { z } from "zod";
|
||||||
import type { navItems } from "~/components/layout/nav-items";
|
import type { navItems } from "~/components/layout/nav-items";
|
||||||
import { uploadStreamToS3 } from "~/features/img-upload/s3.server";
|
import { uploadStreamToS3 } from "~/features/img-upload/s3.server";
|
||||||
import invariant from "./invariant";
|
import invariant from "./invariant";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import type { ZodType } from "zod/v4";
|
import type { ZodType } from "zod";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { CUSTOM_CSS_VAR_COLORS } from "~/features/user-page/user-page-constants";
|
import { CUSTOM_CSS_VAR_COLORS } from "~/features/user-page/user-page-constants";
|
||||||
import {
|
import {
|
||||||
abilities,
|
abilities,
|
||||||
|
|
|
||||||
18
package-lock.json
generated
18
package-lock.json
generated
|
|
@ -67,7 +67,7 @@
|
||||||
"slugify": "^1.6.6",
|
"slugify": "^1.6.6",
|
||||||
"swr": "^2.3.8",
|
"swr": "^2.3.8",
|
||||||
"web-push": "^3.6.7",
|
"web-push": "^3.6.7",
|
||||||
"zod": "^3.25.61"
|
"zod": "^4.2.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@biomejs/biome": "2.3.10",
|
"@biomejs/biome": "2.3.10",
|
||||||
|
|
@ -10808,16 +10808,6 @@
|
||||||
"js-yaml": "bin/js-yaml.js"
|
"js-yaml": "bin/js-yaml.js"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/knip/node_modules/zod": {
|
|
||||||
"version": "4.2.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/zod/-/zod-4.2.1.tgz",
|
|
||||||
"integrity": "sha512-0wZ1IRqGGhMP76gLqz8EyfBXKk0J2qo2+H3fi4mcUP/KtTocoX08nmIAHl1Z2kJIZbZee8KOpBCSNPRgauucjw==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/colinhacks"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/kysely": {
|
"node_modules/kysely": {
|
||||||
"version": "0.28.9",
|
"version": "0.28.9",
|
||||||
"resolved": "https://registry.npmjs.org/kysely/-/kysely-0.28.9.tgz",
|
"resolved": "https://registry.npmjs.org/kysely/-/kysely-0.28.9.tgz",
|
||||||
|
|
@ -15026,9 +15016,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/zod": {
|
"node_modules/zod": {
|
||||||
"version": "3.25.76",
|
"version": "4.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
|
"resolved": "https://registry.npmjs.org/zod/-/zod-4.2.1.tgz",
|
||||||
"integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
|
"integrity": "sha512-0wZ1IRqGGhMP76gLqz8EyfBXKk0J2qo2+H3fi4mcUP/KtTocoX08nmIAHl1Z2kJIZbZee8KOpBCSNPRgauucjw==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"funding": {
|
"funding": {
|
||||||
"url": "https://github.com/sponsors/colinhacks"
|
"url": "https://github.com/sponsors/colinhacks"
|
||||||
|
|
|
||||||
|
|
@ -89,7 +89,7 @@
|
||||||
"slugify": "^1.6.6",
|
"slugify": "^1.6.6",
|
||||||
"swr": "^2.3.8",
|
"swr": "^2.3.8",
|
||||||
"web-push": "^3.6.7",
|
"web-push": "^3.6.7",
|
||||||
"zod": "^3.25.61"
|
"zod": "^4.2.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@biomejs/biome": "2.3.10",
|
"@biomejs/biome": "2.3.10",
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/** biome-ignore-all lint/suspicious/noConsole: Biome v2 migration */
|
/** biome-ignore-all lint/suspicious/noConsole: Biome v2 migration */
|
||||||
import fs from "node:fs";
|
import fs from "node:fs";
|
||||||
import path from "node:path";
|
import path from "node:path";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import badgesJson from "../app/features/badges/homemade.json" with {
|
import badgesJson from "../app/features/badges/homemade.json" with {
|
||||||
type: "json",
|
type: "json",
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
import fs from "node:fs";
|
import fs from "node:fs";
|
||||||
import path from "node:path";
|
import path from "node:path";
|
||||||
import { fileURLToPath } from "node:url";
|
import { fileURLToPath } from "node:url";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import type {
|
import type {
|
||||||
MainWeaponParams,
|
MainWeaponParams,
|
||||||
ParamsJson,
|
ParamsJson,
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
// for testing use the command `npx tsx ./scripts/create-league-divisions.ts 6 'https://gist.githubusercontent.com/sendou-ink/38aa4d5d8426035ce178c09598ae627f/raw/17be9bb53a9f017c2097d0624f365d1c5a029f01/league.csv'`
|
// for testing use the command `npx tsx ./scripts/create-league-divisions.ts 6 'https://gist.githubusercontent.com/sendou-ink/38aa4d5d8426035ce178c09598ae627f/raw/17be9bb53a9f017c2097d0624f365d1c5a029f01/league.csv'`
|
||||||
|
|
||||||
import "dotenv/config";
|
import "dotenv/config";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
import { db } from "~/db/sql";
|
import { db } from "~/db/sql";
|
||||||
import { ADMIN_ID } from "~/features/admin/admin-constants";
|
import { ADMIN_ID } from "~/features/admin/admin-constants";
|
||||||
import * as CalendarRepository from "~/features/calendar/CalendarRepository.server";
|
import * as CalendarRepository from "~/features/calendar/CalendarRepository.server";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod";
|
||||||
|
|
||||||
const placements = z.object({
|
const placements = z.object({
|
||||||
edges: z.array(
|
edges: z.array(
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user