fix zod v4

This commit is contained in:
Aman Varshney
2025-05-21 16:02:33 +05:30
parent 01d745a3e5
commit 5cfd3d38dd
28 changed files with 42 additions and 30 deletions

View File

@@ -0,0 +1,5 @@
---
"create-better-t-stack": patch
---
fix zod v4 madness

View File

@@ -76,10 +76,11 @@ export const dependencyVersionMap = {
turbo: "^2.4.2", turbo: "^2.4.2",
ai: "^4.2.8", ai: "^4.3.16",
"@ai-sdk/google": "^1.2.3", "@ai-sdk/google": "^1.2.3",
"@ai-sdk/vue": "^1.2.8", "@ai-sdk/vue": "^1.2.8",
"@ai-sdk/svelte": "^2.1.9", "@ai-sdk/svelte": "^2.1.9",
"@ai-sdk/react": "^1.2.12",
"@prisma/extension-accelerate": "^1.3.0", "@prisma/extension-accelerate": "^1.3.0",

View File

@@ -24,6 +24,11 @@ export async function setupExamples(config: ProjectConfig): Promise<void> {
const hasNuxt = frontend.includes("nuxt"); const hasNuxt = frontend.includes("nuxt");
const hasSvelte = frontend.includes("svelte"); const hasSvelte = frontend.includes("svelte");
const hasReact =
frontend.includes("react-router") ||
frontend.includes("tanstack-router") ||
frontend.includes("next") ||
frontend.includes("tanstack-start");
if (clientDirExists) { if (clientDirExists) {
const dependencies: AvailableDependencies[] = ["ai"]; const dependencies: AvailableDependencies[] = ["ai"];
@@ -31,7 +36,8 @@ export async function setupExamples(config: ProjectConfig): Promise<void> {
dependencies.push("@ai-sdk/vue"); dependencies.push("@ai-sdk/vue");
} else if (hasSvelte) { } else if (hasSvelte) {
dependencies.push("@ai-sdk/svelte"); dependencies.push("@ai-sdk/svelte");
} else { } else if (hasReact) {
dependencies.push("@ai-sdk/react");
} }
await addPackageDependency({ await addPackageDependency({
dependencies, dependencies,

View File

@@ -1,5 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import { z } from 'zod' import z from 'zod/v4'
const {$authClient} = useNuxtApp() const {$authClient} = useNuxtApp()
import type { FormSubmitEvent } from '#ui/types' import type { FormSubmitEvent } from '#ui/types'

View File

@@ -1,5 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import { z } from 'zod' import z from 'zod/v4'
import type { FormSubmitEvent } from '#ui/types' import type { FormSubmitEvent } from '#ui/types'
const {$authClient} = useNuxtApp() const {$authClient} = useNuxtApp()

View File

@@ -1,7 +1,7 @@
import { authClient } from "@/lib/auth-client"; import { authClient } from "@/lib/auth-client";
import { useForm } from "@tanstack/react-form"; import { useForm } from "@tanstack/react-form";
import { toast } from "sonner"; import { toast } from "sonner";
import { z } from "zod"; import z from "zod/v4";
import Loader from "./loader"; import Loader from "./loader";
import { Button } from "./ui/button"; import { Button } from "./ui/button";
import { Input } from "./ui/input"; import { Input } from "./ui/input";

View File

@@ -1,7 +1,7 @@
import { authClient } from "@/lib/auth-client"; import { authClient } from "@/lib/auth-client";
import { useForm } from "@tanstack/react-form"; import { useForm } from "@tanstack/react-form";
import { toast } from "sonner"; import { toast } from "sonner";
import { z } from "zod"; import z from "zod/v4";
import Loader from "./loader"; import Loader from "./loader";
import { Button } from "./ui/button"; import { Button } from "./ui/button";
import { Input } from "./ui/input"; import { Input } from "./ui/input";

View File

@@ -2,7 +2,7 @@ import { authClient } from "@/lib/auth-client";
import { useForm } from "@tanstack/react-form"; import { useForm } from "@tanstack/react-form";
import { useNavigate } from "react-router"; import { useNavigate } from "react-router";
import { toast } from "sonner"; import { toast } from "sonner";
import { z } from "zod"; import z from "zod/v4";
import Loader from "./loader"; import Loader from "./loader";
import { Button } from "./ui/button"; import { Button } from "./ui/button";
import { Input } from "./ui/input"; import { Input } from "./ui/input";

View File

@@ -2,7 +2,7 @@ import { authClient } from "@/lib/auth-client";
import { useForm } from "@tanstack/react-form"; import { useForm } from "@tanstack/react-form";
import { useNavigate } from "react-router"; import { useNavigate } from "react-router";
import { toast } from "sonner"; import { toast } from "sonner";
import { z } from "zod"; import z from "zod/v4";
import Loader from "./loader"; import Loader from "./loader";
import { Button } from "./ui/button"; import { Button } from "./ui/button";
import { Input } from "./ui/input"; import { Input } from "./ui/input";

View File

@@ -2,7 +2,7 @@ import { authClient } from "@/lib/auth-client";
import { useForm } from "@tanstack/react-form"; import { useForm } from "@tanstack/react-form";
import { useNavigate } from "@tanstack/react-router"; import { useNavigate } from "@tanstack/react-router";
import { toast } from "sonner"; import { toast } from "sonner";
import { z } from "zod"; import z from "zod/v4";
import Loader from "./loader"; import Loader from "./loader";
import { Button } from "./ui/button"; import { Button } from "./ui/button";
import { Input } from "./ui/input"; import { Input } from "./ui/input";

View File

@@ -2,7 +2,7 @@ import { authClient } from "@/lib/auth-client";
import { useForm } from "@tanstack/react-form"; import { useForm } from "@tanstack/react-form";
import { useNavigate } from "@tanstack/react-router"; import { useNavigate } from "@tanstack/react-router";
import { toast } from "sonner"; import { toast } from "sonner";
import { z } from "zod"; import z from "zod/v4";
import Loader from "./loader"; import Loader from "./loader";
import { Button } from "./ui/button"; import { Button } from "./ui/button";
import { Input } from "./ui/input"; import { Input } from "./ui/input";

View File

@@ -2,7 +2,7 @@ import { authClient } from "@/lib/auth-client";
import { useForm } from "@tanstack/react-form"; import { useForm } from "@tanstack/react-form";
import { useNavigate } from "@tanstack/react-router"; import { useNavigate } from "@tanstack/react-router";
import { toast } from "sonner"; import { toast } from "sonner";
import { z } from "zod"; import z from "zod/v4";
import Loader from "./loader"; import Loader from "./loader";
import { Button } from "./ui/button"; import { Button } from "./ui/button";
import { Input } from "./ui/input"; import { Input } from "./ui/input";

View File

@@ -2,7 +2,7 @@ import { authClient } from "@/lib/auth-client";
import { useForm } from "@tanstack/react-form"; import { useForm } from "@tanstack/react-form";
import { useNavigate } from "@tanstack/react-router"; import { useNavigate } from "@tanstack/react-router";
import { toast } from "sonner"; import { toast } from "sonner";
import { z } from "zod"; import z from "zod/v4";
import Loader from "./loader"; import Loader from "./loader";
import { Button } from "./ui/button"; import { Button } from "./ui/button";
import { Input } from "./ui/input"; import { Input } from "./ui/input";

View File

@@ -1,7 +1,7 @@
import { authClient } from "@/lib/auth-client"; import { authClient } from "@/lib/auth-client";
import { createForm } from "@tanstack/solid-form"; import { createForm } from "@tanstack/solid-form";
import { useNavigate } from "@tanstack/solid-router"; import { useNavigate } from "@tanstack/solid-router";
import { z } from "zod"; import z from "zod/v4";
import { For } from "solid-js"; import { For } from "solid-js";
export default function SignInForm({ export default function SignInForm({

View File

@@ -1,7 +1,7 @@
import { authClient } from "@/lib/auth-client"; import { authClient } from "@/lib/auth-client";
import { createForm } from "@tanstack/solid-form"; import { createForm } from "@tanstack/solid-form";
import { useNavigate } from "@tanstack/solid-router"; import { useNavigate } from "@tanstack/solid-router";
import { z } from "zod"; import z from "zod/v4";
import { For } from "solid-js"; import { For } from "solid-js";
export default function SignUpForm({ export default function SignUpForm({

View File

@@ -1,6 +1,6 @@
<script lang="ts"> <script lang="ts">
import { createForm } from '@tanstack/svelte-form'; import { createForm } from '@tanstack/svelte-form';
import { z } from 'zod'; import z from 'zod/v4';
import { authClient } from '$lib/auth-client'; import { authClient } from '$lib/auth-client';
import { goto } from '$app/navigation'; import { goto } from '$app/navigation';

View File

@@ -1,6 +1,6 @@
<script lang="ts"> <script lang="ts">
import { createForm } from '@tanstack/svelte-form'; import { createForm } from '@tanstack/svelte-form';
import { z } from 'zod'; import z from 'zod/v4';
import { authClient } from '$lib/auth-client'; import { authClient } from '$lib/auth-client';
import { goto } from '$app/navigation'; import { goto } from '$app/navigation';

View File

@@ -14,7 +14,7 @@
{{/if}} {{/if}}
"dependencies": { "dependencies": {
"dotenv": "^16.4.7", "dotenv": "^16.4.7",
"zod": "^3.24.2" "zod": "^3.25.16"
}, },
"devDependencies": { "devDependencies": {
"tsc-alias": "^1.8.11", "tsc-alias": "^1.8.11",

View File

@@ -1,6 +1,6 @@
{{#if (eq api "orpc")}} {{#if (eq api "orpc")}}
import { eq } from "drizzle-orm"; import { eq } from "drizzle-orm";
import { z } from "zod"; import z from "zod/v4";
import { db } from "../db"; import { db } from "../db";
import { todo } from "../db/schema/todo"; import { todo } from "../db/schema/todo";
import { publicProcedure } from "../lib/orpc"; import { publicProcedure } from "../lib/orpc";
@@ -42,7 +42,7 @@ export const todoRouter = {
{{/if}} {{/if}}
{{#if (eq api "trpc")}} {{#if (eq api "trpc")}}
import { z } from "zod"; import z from "zod/v4";
import { router, publicProcedure } from "../lib/trpc"; import { router, publicProcedure } from "../lib/trpc";
import { todo } from "../db/schema/todo"; import { todo } from "../db/schema/todo";
import { eq } from "drizzle-orm"; import { eq } from "drizzle-orm";

View File

@@ -1,5 +1,5 @@
{{#if (eq api "orpc")}} {{#if (eq api "orpc")}}
import { z } from "zod"; import z from "zod/v4";
import { publicProcedure } from "../lib/orpc"; import { publicProcedure } from "../lib/orpc";
import { Todo } from "../db/models/todo.model"; import { Todo } from "../db/models/todo.model";
@@ -33,7 +33,7 @@ export const todoRouter = {
{{/if}} {{/if}}
{{#if (eq api "trpc")}} {{#if (eq api "trpc")}}
import { z } from "zod"; import z from "zod/v4";
import { router, publicProcedure } from "../lib/trpc"; import { router, publicProcedure } from "../lib/trpc";
import { Todo } from "../db/models/todo.model"; import { Todo } from "../db/models/todo.model";

View File

@@ -1,5 +1,5 @@
{{#if (eq api "orpc")}} {{#if (eq api "orpc")}}
import { z } from "zod"; import z from "zod/v4";
import prisma from "../../prisma"; import prisma from "../../prisma";
import { publicProcedure } from "../lib/orpc"; import { publicProcedure } from "../lib/orpc";
@@ -53,7 +53,7 @@ export const todoRouter = {
{{#if (eq api "trpc")}} {{#if (eq api "trpc")}}
import { TRPCError } from "@trpc/server"; import { TRPCError } from "@trpc/server";
import { z } from "zod"; import z from "zod/v4";
import prisma from "../../prisma"; import prisma from "../../prisma";
import { publicProcedure, router } from "../lib/trpc"; import { publicProcedure, router } from "../lib/trpc";

View File

@@ -16,7 +16,7 @@
"typescript": "^5.6.3", "typescript": "^5.6.3",
"vue": "^3.5.13", "vue": "^3.5.13",
"vue-router": "^4.5.0", "vue-router": "^4.5.0",
"zod": "^3.24.3" "zod": "^3.25.16"
}, },
"devDependencies": { "devDependencies": {
"@tanstack/vue-query-devtools": "^5.74.5", "@tanstack/vue-query-devtools": "^5.74.5",

View File

@@ -24,7 +24,7 @@
"sonner": "^2.0.3", "sonner": "^2.0.3",
"tailwind-merge": "^3.2.0", "tailwind-merge": "^3.2.0",
"tw-animate-css": "^1.2.5", "tw-animate-css": "^1.2.5",
"zod": "^3.24.2" "zod": "^3.25.16"
}, },
"devDependencies": { "devDependencies": {
"@tailwindcss/postcss": "^4", "@tailwindcss/postcss": "^4",

View File

@@ -28,7 +28,7 @@
"sonner": "^2.0.3", "sonner": "^2.0.3",
"tailwind-merge": "^3.1.0", "tailwind-merge": "^3.1.0",
"tw-animate-css": "^1.2.5", "tw-animate-css": "^1.2.5",
"zod": "^3.24.3" "zod": "^3.25.16"
}, },
"devDependencies": { "devDependencies": {
"@react-router/dev": "^7.4.1", "@react-router/dev": "^7.4.1",

View File

@@ -39,6 +39,6 @@
"sonner": "^1.7.4", "sonner": "^1.7.4",
"tailwind-merge": "^2.6.0", "tailwind-merge": "^2.6.0",
"tw-animate-css": "^1.2.5", "tw-animate-css": "^1.2.5",
"zod": "^3.24.2" "zod": "^3.25.16"
} }
} }

View File

@@ -32,7 +32,7 @@
"tw-animate-css": "^1.2.5", "tw-animate-css": "^1.2.5",
"vinxi": "^0.5.3", "vinxi": "^0.5.3",
"vite-tsconfig-paths": "^5.1.4", "vite-tsconfig-paths": "^5.1.4",
"zod": "^3.24.2" "zod": "^3.25.16"
}, },
"devDependencies": { "devDependencies": {
"@tanstack/react-router-devtools": "^1.114.3", "@tanstack/react-router-devtools": "^1.114.3",

View File

@@ -23,7 +23,7 @@
"lucide-solid": "^0.507.0", "lucide-solid": "^0.507.0",
"solid-js": "^1.9.4", "solid-js": "^1.9.4",
"tailwindcss": "^4.0.6", "tailwindcss": "^4.0.6",
"zod": "^3.24.3" "zod": "^3.25.16"
}, },
"devDependencies": { "devDependencies": {
"typescript": "^5.7.2", "typescript": "^5.7.2",

View File

@@ -26,6 +26,6 @@
"dependencies": { "dependencies": {
"@tanstack/svelte-form": "^1.7.0", "@tanstack/svelte-form": "^1.7.0",
"@tanstack/svelte-query": "^5.74.4", "@tanstack/svelte-query": "^5.74.4",
"zod": "^3.24.3" "zod": "^3.25.16"
} }
} }