Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions apps/unsubscriber/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,21 @@
},
"devDependencies": {
"@types/dotenv": "8.2.3",
"@types/node": "24.3.0",
"playwright": "1.55.0",
"tsx": "4.20.5",
"typescript": "5.9.2"
"@types/node": "24.9.1",
"playwright": "1.56.1",
"tsx": "4.20.6",
"typescript": "5.9.3"
},
"dependencies": {
"@ai-sdk/amazon-bedrock": "2.2.9",
"@ai-sdk/anthropic": "1.2.12",
"@ai-sdk/google": "1.2.18",
"@ai-sdk/openai": "1.3.22",
"@fastify/cors": "11.0.1",
"@t3-oss/env-core": "0.13.6",
"ai": "4.3.16",
"dotenv": "17.2.1",
"fastify": "5.5.0",
"zod": "3.25.46"
"@ai-sdk/amazon-bedrock": "3.0.45",
"@ai-sdk/anthropic": "2.0.35",
"@ai-sdk/google": "2.0.23",
"@ai-sdk/openai": "2.0.53",
"@fastify/cors": "11.1.0",
"@t3-oss/env-core": "0.13.8",
"ai": "5.0.76",
"dotenv": "17.2.3",
"fastify": "5.6.1",
"zod": "4.1.12"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ export function BulkUnsubscribeRowDesktop({
onChange={() => onToggleSelect?.(item.name)}
/>
</TableCell>
<TableCell className="max-w-[250px] truncate min-[1550px]:max-w-[300px] min-[1650px]:max-w-[400px] py-3">
<TableCell className="max-w-[250px] truncate min-[1550px]:max-w-[300px] py-3">
<div className="flex flex-col">
<span className="font-medium">{item.fromName || item.name}</span>
{item.fromName && (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {
CardTitle,
} from "@/components/ui/card";
import { Button } from "@/components/ui/button";
import { Trash2, CheckCircle, XCircle } from "lucide-react";
import { Trash2, XCircle } from "lucide-react";
import { CalendarList } from "./CalendarList";
import { useAction } from "next-safe-action/hooks";
import {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ export const ComposeEmailForm = ({
// this assumes last value given by combobox is user typed value
const lastValue = values[values.length - 1];

const { success } = z.string().email().safeParse(lastValue);
const { success } = z.email().safeParse(lastValue);
if (success) {
setValue("to", values.join(","));
setSearchQuery("");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ const digestScheduleFormSchema = z.object({
dayOfWeek: z.string().min(1, "Please select a day"),
hour: z.string().min(1, "Please select an hour"),
minute: z.string().min(1, "Please select minutes"),
ampm: z.enum(["AM", "PM"], { required_error: "Please select AM or PM" }),
ampm: z.enum(["AM", "PM"], { error: "Please select AM or PM" }),
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify the "error" parameter for z.enum().

The change from required_error to error in the z.enum() configuration may not be valid. Standard Zod documentation indicates that z.enum() accepts errorMap, invalid_type_error, and required_error, but not a generic error property.


🌐 Web query:

Zod z.enum error message configuration options

💡 Result:

Short answer — you have three ways to control z.enum error text:

  1. Per-schema generic message
  • Pass a message param when creating the enum: z.enum(['A','B'], { message: 'must be A or B' }). This becomes the schema’s default message. [1]
  1. Schema-level errorMap
  • Attach an error map to the specific schema: z.enum(['A','B']).errorMap((issue, ctx) => issue.code === z.ZodIssueCode.invalid_enum_value ? { message: 'invalid choice' } : { message: ctx.defaultError }). Use this to handle specific issue codes (invalid_enum_value, invalid_type, etc.). [2][3]
  1. Global errorMap
  • Set z.setErrorMap(...) to provide app-wide/customized messages based on issue.code and issue params (useful for i18n or consistent phrasing). [2]

Notes

  • For enum-specific failures look for the Zod issue code invalid_enum_value (and sometimes invalid_type/required when input is missing). Use errorMap to distinguish them. [3]
  • Behavior/formatting changed between Zod v3 → v4 for enum messages (see related GH discussion). If you rely on the exact built-in phrasing, verify your Zod version. [4]

References

  • Zod error handling / custom messages. [1]
  • ZodErrorMap / setErrorMap and .errorMap usage. [2]
  • Examples / community tips for enums (invalid_enum_value) . [3]
  • GH issue about enum message changes between versions. [4]



🏁 Script executed:

#!/bin/bash
# Inspect the actual file to confirm the parameter being used
fd "DigestScheduleForm.tsx" --type f --exec cat {}

Length of output: 11466


🏁 Script executed:

#!/bin/bash
# Search for other z.enum usages in the codebase to see patterns
rg "z\.enum" --type ts --type tsx -B2 -A2

Length of output: 27


🏁 Script executed:

#!/bin/bash
# Check if there's package.json to determine Zod version
cat package.json | grep -A 2 -B 2 '"zod"'

Length of output: 0


🏁 Script executed:

#!/bin/bash
# Also check workspace root package.json
fd "package.json" --max-depth 1 --type f --exec cat {}

Length of output: 1062


Change error to message parameter in z.enum() configuration.

The error parameter is not valid for z.enum(). Zod's z.enum() accepts a message parameter, not error. The correct usage is z.enum(["AM", "PM"], { message: "Please select AM or PM" }).

Currently, the custom error message will be ignored and Zod will use its default message instead.

🤖 Prompt for AI Agents
In apps/web/app/(app)/[emailAccountId]/settings/DigestScheduleForm.tsx around
line 34, the z.enum call uses an invalid `error` option so the custom message is
ignored; replace the `error` property with `message` (i.e., pass { message:
"Please select AM or PM" }) so Zod will use the provided validation message.

});

type DigestScheduleFormValues = z.infer<typeof digestScheduleFormSchema>;
Expand Down
4 changes: 2 additions & 2 deletions apps/web/app/(app)/admin/validation.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { z } from "zod";
import { PremiumTier } from "@prisma/client";

export const changePremiumStatusSchema = z.object({
email: z.string().email(),
email: z.email(),
lemonSqueezyCustomerId: z.coerce.number().optional(),
emailAccountsAccess: z.coerce.number().optional(),
period: z.nativeEnum(PremiumTier),
Expand All @@ -14,7 +14,7 @@ export type ChangePremiumStatusOptions = z.infer<
>;

export const adminProcessHistorySchema = z.object({
email: z.string().email(),
email: z.email(),
historyId: z.number().optional(),
startHistoryId: z.number().optional(),
});
Expand Down
3 changes: 1 addition & 2 deletions apps/web/app/api/sso/signin/route.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,9 @@
},
}));

import { NextRequest, NextResponse } from "next/server";
import { NextRequest } from "next/server";
import { beforeEach, describe, expect, test, vi } from "vitest";
import { betterAuthConfig } from "@/utils/auth";
import { SafeError } from "@/utils/error";
import { createScopedLogger } from "@/utils/logger";
import prisma from "@/utils/prisma";
import { GET } from "./route";
Expand Down Expand Up @@ -67,7 +66,7 @@
const responseBody = await response.json();

expect(response.status).toBe(400);
expect(responseBody).toEqual({

Check failure on line 69 in apps/web/app/api/sso/signin/route.test.ts

View workflow job for this annotation

GitHub Actions / test

app/api/sso/signin/route.test.ts > SSO Signin Route > Parameter validation > should return 400 when email parameter is missing

AssertionError: expected { …(2) } to deeply equal { …(2) } - Expected + Received @@ -2,15 +2,14 @@ "error": { "issues": [ { "code": "invalid_type", "expected": "string", - "message": "Expected string, received null", + "message": "Invalid input: expected string, received null", "path": [ "email", ], - "received": "null", }, ], }, "isKnownError": true, } ❯ app/api/sso/signin/route.test.ts:69:28
error: {
issues: [
{
Expand All @@ -90,7 +89,7 @@
const responseBody = await response.json();

expect(response.status).toBe(400);
expect(responseBody).toEqual({

Check failure on line 92 in apps/web/app/api/sso/signin/route.test.ts

View workflow job for this annotation

GitHub Actions / test

app/api/sso/signin/route.test.ts > SSO Signin Route > Parameter validation > should return 400 when organization name parameter is missing

AssertionError: expected { …(2) } to deeply equal { …(2) } - Expected + Received @@ -2,15 +2,14 @@ "error": { "issues": [ { "code": "invalid_type", "expected": "string", - "message": "Expected string, received null", + "message": "Invalid input: expected string, received null", "path": [ "organizationSlug", ], - "received": "null", }, ], }, "isKnownError": true, } ❯ app/api/sso/signin/route.test.ts:92:28
error: {
issues: [
{
Expand Down
2 changes: 1 addition & 1 deletion apps/web/app/api/sso/signin/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { withError } from "@/utils/middleware";
import prisma from "@/utils/prisma";

const getSsoSignInSchema = z.object({
email: z.string().email(),
email: z.email(),
organizationSlug: z.string(),
});
export type GetSsoSignInParams = z.infer<typeof getSsoSignInSchema>;
Expand Down
1 change: 0 additions & 1 deletion apps/web/components/NavUser.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import {
RibbonIcon,
LogOutIcon,
PaletteIcon,
SettingsIcon,
ChromeIcon,
Building2Icon,
} from "lucide-react";
Expand Down
1 change: 0 additions & 1 deletion apps/web/components/SideNavWithTopNav.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import { Suspense } from "react";
import dynamic from "next/dynamic";
import { usePathname } from "next/navigation";
import { Toaster } from "@/components/Toast";
import { NavBottom } from "@/components/NavBottom";
import {
SidebarInset,
Expand Down
138 changes: 69 additions & 69 deletions apps/web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,33 +6,33 @@
"dev": "cross-env NODE_OPTIONS=--max_old_space_size=16384 next dev --turbopack",
"build": "cross-env NODE_OPTIONS=--max_old_space_size=16384 prisma migrate deploy && next build",
"start": "next start",
"lint": "next lint",
"lint": "biome check .",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Missing Biome devDependency — lint script will fail.

The lint script was changed to "biome check ." (line 9), but Biome is not listed in devDependencies. The lint script will fail at runtime without it. Ensure Biome is added to devDependencies with an appropriate version.

To verify and fix this issue, run the following script:

Add Biome to devDependencies, for example:

  "devDependencies": {
+   "biome": "^1.9.0",
    "@headlessui/tailwindcss": "0.2.2",
    ...

Also applies to: 169-199


🏁 Script executed:

#!/bin/bash
# Check if biome is referenced in the lint script but missing from devDependencies
LINT_SCRIPT=$(jq -r '.scripts.lint' apps/web/package.json)
echo "Lint script: $LINT_SCRIPT"

# Check if biome exists in devDependencies
if jq -e '.devDependencies.biome' apps/web/package.json > /dev/null 2>&1; then
  echo "✓ Biome found in devDependencies"
else
  echo "✗ Biome NOT found in devDependencies"
fi

Length of output: 63


Missing Biome devDependency — lint script will fail at runtime.

The lint script references biome check . but Biome is not listed in devDependencies. Add Biome with an appropriate version:

  "devDependencies": {
+   "biome": "^1.9.0",
    "@headlessui/tailwindcss": "0.2.2",
    ...

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In apps/web/package.json around line 9 the "lint" script uses `biome check .`
but Biome is not listed in devDependencies; add a devDependency entry for Biome
(for example "biome": "^1.2.0" or the agreed project version) to devDependencies
and run npm/yarn/pnpm install to ensure the lint script works at runtime.

Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot Oct 21, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Switching the web package’s lint script to biome will fail because this package doesn’t depend on @biomejs/biome, so pnpm can’t find the CLI. Restore a working command or add the dependency to apps/web.

Prompt for AI agents
Address the following comment on apps/web/package.json at line 9:

<comment>Switching the web package’s lint script to biome will fail because this package doesn’t depend on @biomejs/biome, so pnpm can’t find the CLI. Restore a working command or add the dependency to apps/web.</comment>

<file context>
@@ -6,33 +6,33 @@
     &quot;build&quot;: &quot;cross-env NODE_OPTIONS=--max_old_space_size=16384 prisma migrate deploy &amp;&amp; next build&quot;,
     &quot;start&quot;: &quot;next start&quot;,
-    &quot;lint&quot;: &quot;next lint&quot;,
+    &quot;lint&quot;: &quot;biome check .&quot;,
     &quot;test&quot;: &quot;cross-env RUN_AI_TESTS=false vitest&quot;,
     &quot;test-ai&quot;: &quot;cross-env RUN_AI_TESTS=true vitest --run&quot;,
</file context>
Suggested change
"lint": "biome check .",
"lint": "next lint",
Fix with Cubic

Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot Oct 21, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new lint script depends on the biome CLI, but this package does not declare @biomejs/biome, so the command will fail when run in the apps/web workspace.

Prompt for AI agents
Address the following comment on apps/web/package.json at line 9:

<comment>The new lint script depends on the biome CLI, but this package does not declare @biomejs/biome, so the command will fail when run in the apps/web workspace.</comment>

<file context>
@@ -6,33 +6,33 @@
     &quot;build&quot;: &quot;cross-env NODE_OPTIONS=--max_old_space_size=16384 prisma migrate deploy &amp;&amp; next build&quot;,
     &quot;start&quot;: &quot;next start&quot;,
-    &quot;lint&quot;: &quot;next lint&quot;,
+    &quot;lint&quot;: &quot;biome check .&quot;,
     &quot;test&quot;: &quot;cross-env RUN_AI_TESTS=false vitest&quot;,
     &quot;test-ai&quot;: &quot;cross-env RUN_AI_TESTS=true vitest --run&quot;,
</file context>
Fix with Cubic

"test": "cross-env RUN_AI_TESTS=false vitest",
"test-ai": "cross-env RUN_AI_TESTS=true vitest --run",
"test-e2e": "cross-env RUN_E2E_TESTS=true vitest --run",
"preinstall": "npx only-allow pnpm",
"postinstall": "prisma generate"
},
"dependencies": {
"@ai-sdk/amazon-bedrock": "3.0.13",
"@ai-sdk/anthropic": "2.0.9",
"@ai-sdk/gateway": "1.0.15",
"@ai-sdk/google": "2.0.11",
"@ai-sdk/groq": "2.0.16",
"@ai-sdk/openai": "2.0.23",
"@ai-sdk/amazon-bedrock": "3.0.45",
"@ai-sdk/anthropic": "2.0.35",
"@ai-sdk/gateway": "2.0.0",
"@ai-sdk/google": "2.0.23",
"@ai-sdk/groq": "2.0.24",
"@ai-sdk/openai": "2.0.53",
"@ai-sdk/provider": "2.0.0",
"@ai-sdk/react": "2.0.28",
"@ai-sdk/react": "2.0.76",
"@asteasolutions/zod-to-openapi": "8.1.0",
"@better-auth/sso": "1.3.7",
"@better-auth/sso": "1.3.28",
"@date-fns/tz": "1.4.1",
"@dub/analytics": "0.0.30",
"@formkit/auto-animate": "0.8.4",
"@googleapis/calendar": "^11.0.1",
"@googleapis/gmail": "14.0.1",
"@googleapis/people": "5.0.1",
"gaxios": "7.1.1",
"@headlessui/react": "2.2.7",
"@hookform/resolvers": "5.2.1",
"@dub/analytics": "0.0.32",
"@formkit/auto-animate": "0.9.0",
"@googleapis/calendar": "^12.0.0",
"@googleapis/gmail": "15.0.0",
"@googleapis/people": "6.0.0",
"gaxios": "7.1.2",
"@headlessui/react": "2.2.9",
"@hookform/resolvers": "5.2.2",
"@inboxzero/loops": "workspace:*",
"@inboxzero/resend": "workspace:*",
"@inboxzero/tinybird": "workspace:*",
Expand All @@ -41,12 +41,12 @@
"@mdx-js/loader": "3.1.1",
"@mdx-js/react": "3.1.1",
"@microsoft/microsoft-graph-client": "3.0.7",
"@modelcontextprotocol/sdk": "^1.18.2",
"@mux/mux-player-react": "3.5.3",
"@next/mdx": "15.5.2",
"@next/third-parties": "15.5.2",
"@openrouter/ai-sdk-provider": "1.1.2",
"@portabletext/react": "4.0.2",
"@modelcontextprotocol/sdk": "^1.20.1",
"@mux/mux-player-react": "3.6.1",
"@next/mdx": "15.5.6",
"@next/third-parties": "15.5.6",
"@openrouter/ai-sdk-provider": "1.2.0",
"@portabletext/react": "4.0.3",
"@prisma/client": "6.6.0",
"@radix-ui/react-alert-dialog": "1.1.15",
"@radix-ui/react-avatar": "1.1.10",
Expand All @@ -69,14 +69,14 @@
"@radix-ui/react-toggle": "1.1.10",
"@radix-ui/react-tooltip": "1.2.8",
"@radix-ui/react-use-controllable-state": "1.2.2",
"@react-email/render": "1.2.1",
"@sentry/nextjs": "10.8.0",
"@serwist/next": "9.2.0",
"@stripe/stripe-js": "7.9.0",
"@react-email/render": "1.4.0",
"@sentry/nextjs": "10.20.0",
"@serwist/next": "9.2.1",
"@stripe/stripe-js": "8.1.0",
"@t3-oss/env-nextjs": "0.13.8",
"@tailwindcss/forms": "0.5.10",
"@tailwindcss/typography": "0.5.16",
"@tanstack/react-query": "5.85.6",
"@tailwindcss/typography": "0.5.19",
"@tanstack/react-query": "5.90.5",
"@tanstack/react-table": "8.21.3",
"@tanstack/react-virtual": "3.13.12",
"@tiptap/extension-mention": "2.26.1",
Expand All @@ -86,61 +86,61 @@
"@tiptap/starter-kit": "2.26.1",
"@tiptap/suggestion": "2.26.1",
"@tremor/react": "3.18.7",
"@upstash/qstash": "2.8.2",
"@upstash/redis": "1.35.3",
"@upstash/qstash": "2.8.4",
"@upstash/redis": "1.35.6",
"@vercel/analytics": "1.5.0",
"@vercel/speed-insights": "1.2.0",
"ai": "5.0.28",
"better-auth": "1.3.7",
"braintrust": "0.3.6",
"ai": "5.0.76",
"better-auth": "1.3.28",
"braintrust": "0.4.6",
"capital-case": "2.0.0",
"cheerio": "1.0.0",
"class-variance-authority": "0.7.1",
"clsx": "2.1.1",
"cmdk": "1.1.1",
"crisp-sdk-web": "1.0.25",
"crisp-sdk-web": "1.0.26",
"date-fns": "4.1.0",
"diff": "7.0.0",
"dompurify": "3.2.6",
"dub": "0.66.1",
"dompurify": "3.3.0",
"dub": "0.67.0",
"easymde": "^2.20.0",
"email-reply-parser": "1.9.4",
"embla-carousel-react": "8.6.0",
"encoding": "0.1.13",
"fast-deep-equal": "3.1.3",
"fast-xml-parser": "5.2.5",
"fast-xml-parser": "5.3.0",
"gmail-api-parse-message": "2.1.2",
"google": "link:@next/third-parties/google",
"he": "1.2.0",
"html-to-text": "9.0.5",
"ioredis": "5.7.0",
"jotai": "2.13.1",
"jsdom": "26.1.0",
"ioredis": "5.8.2",
"jotai": "2.15.0",
"jsdom": "27.0.1",
"json5": "2.2.3",
"jsonrepair": "3.13.0",
"jsonrepair": "3.13.1",
"linkify-react": "4.3.2",
"linkifyjs": "4.3.2",
"lodash": "4.17.21",
"lucide-react": "0.542.0",
"lucide-react": "0.546.0",
"motion": "12.23.24",
"next": "15.5.2",
"next-axiom": "1.9.2",
"next-safe-action": "7.10.8",
"next": "15.5.6",
"next-axiom": "1.9.3",
"next-safe-action": "8.0.11",
"next-themes": "0.4.6",
"nodemailer": "6.10.1",
"nuqs": "2.5.2",
"nodemailer": "7.0.9",
"nuqs": "2.7.2",
"ollama-ai-provider": "1.2.0",
"openai": "5.16.0",
"p-queue": "8.1.0",
"p-retry": "7.0.0",
"openai": "6.6.0",
"p-queue": "9.0.0",
"p-retry": "7.1.0",
"posthog-js": "1.261.0",
"posthog-node": "5.8.1",
"react": "19.1.1",
"react-day-picker": "8.10.1",
"react-dom": "19.1.1",
"react-dom-confetti": "0.2.0",
"react-hook-form": "7.62.0",
"react-hotkeys-hook": "5.1.0",
"react-hook-form": "7.65.0",
"react-hotkeys-hook": "5.2.1",
"react-markdown": "10.1.0",
"react-resizable-panels": "2.1.7",
"react-syntax-highlighter": "15.6.6",
Expand All @@ -153,44 +153,44 @@
"server-only": "0.0.1",
"shiki": "3.13.0",
"sonner": "2.0.7",
"streamdown": "1.1.6",
"streamdown": "1.4.0",
"string-similarity": "4.0.4",
"strip-indent": "4.0.0",
"stripe": "18.5.0",
"strip-indent": "4.1.1",
"stripe": "19.1.0",
"swr": "2.3.6",
"tailwind-merge": "2.6.0",
"tailwindcss-animate": "1.0.7",
"tiptap-markdown": "0.8.10",
"typescript": "5.9.2",
"typescript": "5.9.3",
"use-stick-to-bottom": "1.1.1",
"usehooks-ts": "3.1.1",
"zod": "3.25.46"
"zod": "4.1.12"
},
"devDependencies": {
"@headlessui/tailwindcss": "0.2.2",
"@microsoft/microsoft-graph-types": "^2.40.0",
"@microsoft/microsoft-graph-types": "^2.43.1",
"@testing-library/react": "16.3.0",
"@types/diff": "7.0.2",
"@types/diff": "8.0.0",
"@types/email-reply-parser": "1.4.2",
"@types/he": "1.2.3",
"@types/html-to-text": "9.0.4",
"@types/jsdom": "21.1.7",
"@types/jsdom": "27.0.0",
"@types/lodash": "4.17.20",
"@types/mdx": "2.0.13",
"@types/node": "24.3.0",
"@types/nodemailer": "6.4.17",
"@types/node": "24.9.1",
"@types/nodemailer": "7.0.2",
"@types/react": "19.1.12",
"@types/react-dom": "19.1.9",
"@types/react-syntax-highlighter": "15.5.13",
"@types/string-similarity": "4.0.2",
"@vitest/coverage-v8": "3.2.4",
"@vitest/ui": "3.2.4",
"autoprefixer": "10.4.21",
"cross-env": "7.0.3",
"dotenv": "17.2.1",
"cross-env": "10.1.0",
"dotenv": "17.2.3",
"postcss": "8.5.6",
"prisma": "6.6.0",
"serwist": "9.2.0",
"serwist": "9.2.1",
"tailwindcss": "3.4.17",
"tsconfig": "workspace:*",
"vite-tsconfig-paths": "5.1.4",
Expand All @@ -201,11 +201,11 @@
"node": ">=22.0.0"
},
"optionalDependencies": {
"@sanity/client": "7.10.0",
"@sanity/client": "7.12.0",
"@sanity/icons": "3.7.4",
"@sanity/image-url": "1",
"@sanity/vision": "4",
"next-sanity": "10",
"sanity": "4.6.0"
"next-sanity": "11",
"sanity": "4.10.3"
}
}
1 change: 0 additions & 1 deletion apps/web/utils/action-display.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import {
TagIcon,
WebhookIcon,
FileTextIcon,
EyeIcon,
MailIcon,
NewspaperIcon,
} from "lucide-react";
Expand Down
2 changes: 1 addition & 1 deletion apps/web/utils/actions/permissions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ export const checkPermissionsAction = actionClient

export const adminCheckPermissionsAction = adminActionClient
.metadata({ name: "adminCheckPermissions" })
.schema(z.object({ email: z.string().email() }))
.schema(z.object({ email: z.email() }))
.action(async ({ parsedInput: { email }, ctx: { logger } }) => {
try {
const emailAccount = await prisma.emailAccount.findUnique({
Expand Down
Loading
Loading