From 3cc07c06f741f849a167bbf4c3bf3444cc6ba43d Mon Sep 17 00:00:00 2001 From: BlankParticle Date: Fri, 23 May 2025 17:53:56 +0530 Subject: [PATCH] feat: fix eslint --- .env.example | 1 + apps/mail/app/(full-width)/contributors.tsx | 24 +- .../mail/components/cookies/cookie-dialog.tsx | 267 ------ apps/mail/components/magicui/file-tree.tsx | 4 +- .../motion-primitives/text-effect.tsx | 2 - apps/mail/components/ui/switch.tsx | 2 - apps/mail/eslint.config.mjs | 36 - apps/mail/eslint.config.ts | 3 + apps/mail/lib/cookie-utils.ts | 137 --- apps/mail/lib/cookies.ts | 48 - apps/mail/lib/flags.ts | 18 - apps/mail/package.json | 13 +- apps/mail/providers/cookie-provider.tsx | 142 --- apps/mail/tsconfig.json | 15 +- apps/server/eslint.config.ts | 3 + apps/server/package.json | 8 +- apps/server/src/lib/utils.ts | 115 --- apps/server/src/overrides.d.ts | 8 + apps/server/tsconfig.json | 32 +- packages/cli/package.json | 1 + packages/cli/tsconfig.json | 11 +- packages/db/tsconfig.json | 13 +- packages/eslint-config/config.ts | 16 + packages/eslint-config/eslint.config.mjs | 76 -- packages/eslint-config/index.js | 1 - packages/eslint-config/package.json | 21 +- packages/eslint-config/tsconfig.json | 6 +- packages/tailwind-config/tsconfig.json | 2 +- packages/tsconfig/base.json | 32 +- packages/tsconfig/nextjs.json | 12 - packages/tsconfig/package.json | 6 +- packages/tsconfig/react-library.json | 7 - pnpm-lock.yaml | 886 ++++++++---------- pnpm-workspace.yaml | 18 +- tsconfig.json | 2 +- 35 files changed, 485 insertions(+), 1503 deletions(-) delete mode 100644 apps/mail/components/cookies/cookie-dialog.tsx delete mode 100644 apps/mail/eslint.config.mjs create mode 100644 apps/mail/eslint.config.ts delete mode 100644 apps/mail/lib/cookie-utils.ts delete mode 100644 apps/mail/lib/cookies.ts delete mode 100644 apps/mail/lib/flags.ts delete mode 100644 apps/mail/providers/cookie-provider.tsx create mode 100644 apps/server/eslint.config.ts create mode 100644 apps/server/src/overrides.d.ts create mode 100644 packages/eslint-config/config.ts delete mode 100644 packages/eslint-config/eslint.config.mjs delete mode 100644 packages/eslint-config/index.js delete mode 100644 packages/tsconfig/nextjs.json delete mode 100644 packages/tsconfig/react-library.json diff --git a/.env.example b/.env.example index 2c52d08e5..3915d4070 100644 --- a/.env.example +++ b/.env.example @@ -22,6 +22,7 @@ RESEND_API_KEY= # OpenAI API Key OPENAI_API_KEY= +PERPLEXITY_API_KEY= #AI PROMPT AI_SYSTEM_PROMPT="" diff --git a/apps/mail/app/(full-width)/contributors.tsx b/apps/mail/app/(full-width)/contributors.tsx index 9896d8226..d77166e89 100644 --- a/apps/mail/app/(full-width)/contributors.tsx +++ b/apps/mail/app/(full-width)/contributors.tsx @@ -166,22 +166,23 @@ export default function OpenPage() { }, [initialContributors, additionalContributors]); const { data: repoData, error: repoError } = useQuery({ - queryFn: () => fetch(`https://api.github.com/repos/${REPOSITORY}`).then((res) => res.json()), + queryFn: () => + fetch(`https://api.github.com/repos/${REPOSITORY}`).then((res) => res.json() as any), queryKey: ['repo-data', REPOSITORY], }); const { data: commitsData, error: commitsError } = useQuery({ queryFn: () => - fetch(`https://api.github.com/repos/${REPOSITORY}/commits?per_page=100`).then((res) => - res.json(), + fetch(`https://api.github.com/repos/${REPOSITORY}/commits?per_page=100`).then( + (res) => res.json() as any, ), queryKey: ['commits-data', REPOSITORY], }); const { data: prsData, error: prsError } = useQuery({ queryFn: () => - fetch(`https://api.github.com/repos/${REPOSITORY}/pulls?state=open`).then((res) => - res.json(), + fetch(`https://api.github.com/repos/${REPOSITORY}/pulls?state=open`).then( + (res) => res.json() as any, ), queryKey: ['prs-data', REPOSITORY], }); @@ -746,19 +747,6 @@ export default function OpenPage() { - -
diff --git a/apps/mail/components/cookies/cookie-dialog.tsx b/apps/mail/components/cookies/cookie-dialog.tsx deleted file mode 100644 index 34623e16c..000000000 --- a/apps/mail/components/cookies/cookie-dialog.tsx +++ /dev/null @@ -1,267 +0,0 @@ -import { - Dialog, - DialogContent, - DialogDescription, - DialogHeader, - DialogTitle, - DialogTrigger, -} from '@/components/ui/dialog'; -import { - Accordion, - AccordionContent, - AccordionItem, - AccordionTrigger, -} from '@/components/ui/accordion'; -import { COOKIE_CATEGORIES, type CookieCategory } from '@/lib/cookies'; -import { useCookies } from '@/providers/cookie-provider'; -import { CookieTrigger } from './cookie-trigger'; -import { Button } from '@/components/ui/button'; -import { Switch } from '@/components/ui/switch'; -import { Label } from '@/components/ui/label'; -import { Card } from '@/components/ui/card'; -import { useState, useEffect } from 'react'; -import { X, Cookie } from 'lucide-react'; - -interface CookieConsentProps { - children?: React.ReactNode; - showFloatingButton?: boolean; -} - -export function CookieConsent({ children, showFloatingButton = true }: CookieConsentProps) { - const [open, setOpen] = useState(false); - const [showBanner, setShowBanner] = useState(false); - const { preferences, updatePreference, acceptAll, rejectAll, isLoaded } = useCookies(); - - useEffect(() => { - if (isLoaded && !Object.values(preferences).some((value) => value)) { - const timer = setTimeout(() => { - setShowBanner(true); - }, 1000); - return () => clearTimeout(timer); - } - }, [isLoaded, preferences]); - - const handleSavePreferences = () => { - setOpen(false); - setShowBanner(false); - }; - - const handleAcceptAll = () => { - acceptAll(); - setOpen(false); - setShowBanner(false); - }; - - const handleRejectAll = () => { - rejectAll(); - setOpen(false); - setShowBanner(false); - }; - - return ( - <> - {showFloatingButton && ( -
- setOpen(true)} /> -
- )} - - - {children && ( - setOpen(true)}> - {children} - - )} - -
- - - Cookie Settings - - - - We use cookies and similar technologies to help personalize content, tailor and - measure ads, and provide a better experience. By clicking "Accept All", you - consent to all cookies. You can customize your choices by clicking "Customize" or - reject all optional cookies by clicking "Reject All". - - - For California residents (CCPA): We do not sell your personal information. - However, some cookies collect data for targeted advertising. To opt out of the - sale of your data for targeted advertising purposes, click "Reject All" or disable - Marketing cookies below. - - - You can change your preferences at any time by clicking the cookie settings button - in the corner of the screen. For more information about how we use cookies, please - see our{' '} - - Privacy Policy - - . - - - -
- -
-
- - {( - Object.entries(COOKIE_CATEGORIES) as [ - CookieCategory, - (typeof COOKIE_CATEGORIES)[CookieCategory], - ][] - ).map(([category, info]) => ( - -
-
- -
- updatePreference(category, checked)} - className="data-[state=checked]:bg-blue-600" - /> -
- - More information - - -
-

- {info.description} -

-
-

- Duration: -

-

- {category === 'necessary' - ? 'Session - These cookies are deleted when you close your browser' - : category === 'functional' - ? '1 year - To remember your preferences' - : category === 'analytics' - ? '2 years - To maintain consistent analytics data' - : '90 days - Regular refresh of marketing preferences'} -

-
-
-

- Provider: -

-

- {category === 'necessary' - ? 'First party - Set by us' - : category === 'functional' - ? 'First party and selected third parties' - : category === 'analytics' - ? 'Google Analytics and similar services' - : 'Various advertising partners'} -

-
-
-
-
- ))} -
-
-
- -
-
-
- - -
- -
-
-
-
- - {showBanner && ( - -
-
- -

Cookie Preferences

-
- -
-

- We use cookies to enhance your experience. By continuing to visit this site you agree to - our use of cookies. For California residents: We do not sell personal information, but - some cookies enable targeted advertising. -

-
- - - -
-
- )} - - ); -} diff --git a/apps/mail/components/magicui/file-tree.tsx b/apps/mail/components/magicui/file-tree.tsx index 7ac594e3d..5beaa5e83 100644 --- a/apps/mail/components/magicui/file-tree.tsx +++ b/apps/mail/components/magicui/file-tree.tsx @@ -1,5 +1,3 @@ -'use client'; - import React, { createContext, forwardRef, @@ -229,7 +227,7 @@ const Folder = forwardRef
= new Map(); - - static registerCookie(name: string, category: CookieCategory) { - this.cookieRegistry.set(name, category); - } - - static getCookieCategory(name: string): CookieCategory | undefined { - return this.cookieRegistry.get(name); - } - - static setCookie(name: string, value: string, options: CookieOptions): void { - const cookieString = `${encodeURIComponent(name)}=${encodeURIComponent(value)}`; - const cookieOptions: string[] = []; - - if (options.path) cookieOptions.push(`path=${options.path}`); - if (options.domain) cookieOptions.push(`domain=${options.domain}`); - if (options.secure) cookieOptions.push('secure'); - if (options.sameSite) cookieOptions.push(`samesite=${options.sameSite}`); - if (options.expires) cookieOptions.push(`expires=${options.expires.toUTCString()}`); - - document.cookie = `${cookieString}${cookieOptions.length ? '; ' + cookieOptions.join('; ') : ''}`; - } - - static getCookie(name: string): string | null { - const cookies = document.cookie.split(';'); - for (const cookie of cookies) { - const parts = cookie.split('=').map((c) => c.trim()); - const cookieName = parts[0]; - const cookieValue = parts[1]; - if (cookieName === name && cookieValue !== undefined) { - return decodeURIComponent(cookieValue); - } - } - return null; - } - - static deleteCookie(name: string, options?: Pick): void { - const opts: CookieOptions = { - ...options, - category: 'necessary', - expires: new Date(0), - }; - this.setCookie(name, '', opts); - } - - static getAllCookies(): { [key: string]: string } { - return document.cookie.split(';').reduce( - (acc, cookie) => { - const [name, value] = cookie.split('=').map((c) => c.trim()); - if (name && value) { - acc[name] = decodeURIComponent(value); - } - return acc; - }, - {} as { [key: string]: string }, - ); - } - - static removeAllCookiesByCategory(category: CookieCategory) { - const allCookies = this.getAllCookies(); - - Object.keys(allCookies).forEach((cookieName) => { - const cookieCategory = this.getCookieCategory(cookieName); - if (cookieCategory === category) { - this.deleteCookie(cookieName, { path: '/' }); - } - }); - } - - static cleanupRejectedCookies(acceptedCategories: CookieCategory[]): void { - const cookieMapping: Record = { - _ga: 'analytics', - _gid: 'analytics', - _fbp: 'marketing', - // TODO: Add more cookie mappings as needed - }; - - const cookies = document.cookie.split(';'); - for (const cookie of cookies) { - const parts = cookie.split('=').map((c) => c.trim()); - const cookieName = parts[0]; - if ( - cookieName && - cookieMapping[cookieName] && - !acceptedCategories.includes(cookieMapping[cookieName]) - ) { - this.deleteCookie(cookieName, { path: '/' }); - } - } - } - - static cleanupMarketingCookies(): void { - const marketingCookies = [ - '_fbp', - '_gcl_au', - '_uetsid', - '_uetvid', - // TODO: Add more marketing cookie names as needed - ]; - - marketingCookies.forEach((cookieName) => { - this.deleteCookie(cookieName, { path: '/' }); - }); - } - - static getCookiesByCategory(category: CookieCategory): string[] { - const cookieMapping: Record = { - _ga: 'analytics', - _gid: 'analytics', - _fbp: 'marketing', - // TODO:Add more cookie mappings as needed - }; - - return Object.entries(cookieMapping) - .filter(([_, cookieCategory]) => cookieCategory === category) - .map(([cookieName]) => cookieName); - } -} - -export default CookieUtils; diff --git a/apps/mail/lib/cookies.ts b/apps/mail/lib/cookies.ts deleted file mode 100644 index e7895b639..000000000 --- a/apps/mail/lib/cookies.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { TrackingCategory } from '@coinbase/cookie-manager'; - -export type CookieCategory = 'necessary' | 'functional' | 'analytics' | 'marketing'; - -export interface CategoryInfo { - name: string; - description: string; - required?: boolean; - trackingCategory: TrackingCategory; -} - -export interface CookiePreferences { - necessary: boolean; - analytics: boolean; - marketing: boolean; - preferences: boolean; -} - -export const COOKIE_CATEGORIES: Record = { - necessary: { - name: 'Strictly Necessary', - description: - 'These cookies are essential for the website to function properly and cannot be switched off. They are usually only set in response to actions made by you such as setting your privacy preferences, logging in, or filling in forms.', - required: true, - trackingCategory: TrackingCategory.NECESSARY, - }, - functional: { - name: 'Functional', - description: - 'These cookies enable the website to provide enhanced functionality and personalization. They may be set by us or by third-party providers whose services we have added to our pages. If you do not allow these cookies, some or all of these services may not function properly.', - trackingCategory: TrackingCategory.FUNCTIONAL, - }, - analytics: { - name: 'Analytics & Performance', - description: - 'These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us to know which pages are the most and least popular and see how visitors move around the site. All information these cookies collect is aggregated and therefore anonymous. If you do not allow these cookies we will not know when you have visited our site.', - trackingCategory: TrackingCategory.PERFORMANCE, - }, - marketing: { - name: 'Marketing & Targeting', - description: - 'These cookies may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant adverts on other sites. They do not store directly personal information but are based on uniquely identifying your browser and internet device. If you do not allow these cookies, you will experience less targeted advertising.', - trackingCategory: TrackingCategory.TARGETING, - }, -}; - -export const COOKIE_CONSENT_KEY = 'cookieConsent'; -export const COOKIE_PREFERENCES_KEY = 'cookiePreferences'; diff --git a/apps/mail/lib/flags.ts b/apps/mail/lib/flags.ts deleted file mode 100644 index 07ca4de31..000000000 --- a/apps/mail/lib/flags.ts +++ /dev/null @@ -1,18 +0,0 @@ -// add flags.ts -import { statsigAdapter, type StatsigUser } from "@flags-sdk/statsig"; -import { flag, dedupe } from "flags/next"; -import type { Identify } from "flags"; - -export const identify = dedupe((async () => ({ - customIDs: { userID: Math.random().toString(36).slice(2) }, - // add any additional user properties you collect here -})) satisfies Identify); - -export const createFeatureGate = (key: string) => flag({ - key, - adapter: statsigAdapter.featureGate((gate) => gate.value, { exposureLogging: true }), - identify, - decide() { - return Math.random() > 0.1; - }, -}); \ No newline at end of file diff --git a/apps/mail/package.json b/apps/mail/package.json index 459ac5b7b..80a4dca21 100644 --- a/apps/mail/package.json +++ b/apps/mail/package.json @@ -8,7 +8,8 @@ "build": "react-router build", "start": "wrangler dev --port 3000 --show-interactive-dev-session=false", "types": "wrangler types", - "deploy": "wrangler deploy" + "deploy": "wrangler deploy", + "lint": "eslint ." }, "dependencies": { "@11labs/react": "^0.1.3", @@ -43,7 +44,6 @@ "@trpc/server": "catalog:", "@trpc/tanstack-react-query": "catalog:", "@zero/db": "workspace:*", - "@zero/eslint-config": "workspace:*", "@zero/server": "workspace:*", "accept-language-parser": "^1.5.0", "ai": "^4.3.9", @@ -110,7 +110,6 @@ }, "devDependencies": { "@cloudflare/vite-plugin": "^1.2.0", - "@eslint/eslintrc": "3.3.0", "@tailwindcss/typography": "0.5.16", "@types/accept-language-parser": "^1.5.8", "@types/canvas-confetti": "1.9.0", @@ -119,13 +118,11 @@ "@types/react": "19.0.10", "@types/react-dom": "19.0.4", "@types/sanitize-html": "2.13.0", - "@typescript-eslint/eslint-plugin": "8.26.1", - "@typescript-eslint/parser": "8.26.1", + "@zero/eslint-config": "workspace:*", "@zero/tsconfig": "workspace:*", "drizzle-kit": "0.31.1", - "eslint": "9.22.0", - "eslint-plugin-react": "7.33.2", - "eslint-plugin-react-hooks": "5.2.0", + "eslint": "^9.27.0", + "jiti": "2.4.2", "postcss": "8.5.3", "remeda": "2.21.3", "tailwind-scrollbar": "3.1.0", diff --git a/apps/mail/providers/cookie-provider.tsx b/apps/mail/providers/cookie-provider.tsx deleted file mode 100644 index 3a0198f1e..000000000 --- a/apps/mail/providers/cookie-provider.tsx +++ /dev/null @@ -1,142 +0,0 @@ -import { createContext, useContext, useEffect, useMemo, useState } from 'react'; -import { COOKIE_CATEGORIES, type CookieCategory } from '@/lib/cookies'; -import CookieUtils from '@/lib/cookie-utils'; - -interface CookiePreferences { - [key: string]: boolean; -} - -interface CookieContextType { - preferences: CookiePreferences; - isLoaded: boolean; - updatePreference: (category: CookieCategory, value: boolean) => void; - acceptAll: () => void; - rejectAll: () => void; - hasConsent: boolean; -} - -const CookieContext = createContext(null); - -const PREFERENCES_COOKIE = 'cookie_preferences'; - -export function CookieProvider({ children }: { children: React.ReactNode }) { - const [preferences, setPreferences] = useState(() => - Object.keys(COOKIE_CATEGORIES).reduce( - (acc, key) => ({ - ...acc, - [key]: COOKIE_CATEGORIES[key as CookieCategory].required || false, - }), - {}, - ), - ); - const [isLoaded, setIsLoaded] = useState(false); - - useEffect(() => { - const loadPreferences = () => { - const storedPrefs = CookieUtils.getCookie(PREFERENCES_COOKIE); - if (storedPrefs) { - try { - const parsedPrefs = JSON.parse(storedPrefs); - Object.entries(COOKIE_CATEGORIES).forEach(([key, info]) => { - if (info.required) { - parsedPrefs[key] = true; - } - }); - setPreferences(parsedPrefs); - } catch (error) { - console.error('Error parsing cookie preferences:', error); - } - } - setIsLoaded(true); - }; - - loadPreferences(); - }, []); - - const savePreferences = (newPreferences: CookiePreferences) => { - // Store preferences with a 1-year expiry for GDPR compliance - const oneYear = 365 * 24 * 60 * 60 * 1000; - CookieUtils.setCookie(PREFERENCES_COOKIE, JSON.stringify(newPreferences), { - category: 'necessary', - expires: new Date(Date.now() + oneYear), - sameSite: 'Lax', - secure: true, - }); - - const acceptedCategories = Object.entries(newPreferences) - .filter(([_, accepted]) => accepted) - .map(([category]) => category as CookieCategory); - - CookieUtils.cleanupRejectedCookies(acceptedCategories); - logConsent(newPreferences); - }; - - const logConsent = (preferences: CookiePreferences) => { - const consentData = { - timestamp: new Date().toISOString(), - preferences, - userAgent: navigator.userAgent, - // TODO: Add any other relevant data for compliance - }; - - console.log('Cookie consent logged:', consentData); - }; - - const updatePreference = (category: CookieCategory, value: boolean) => { - const categoryInfo = COOKIE_CATEGORIES[category]; - if (categoryInfo.required) return; - - const newPreferences = { ...preferences, [category]: value }; - setPreferences(newPreferences); - savePreferences(newPreferences); - - if (category === 'marketing' && !value) { - CookieUtils.cleanupMarketingCookies(); - } - }; - - const acceptAll = () => { - const newPreferences = Object.keys(COOKIE_CATEGORIES).reduce( - (acc, key) => ({ ...acc, [key]: true }), - {}, - ); - setPreferences(newPreferences); - savePreferences(newPreferences); - }; - - const rejectAll = () => { - const newPreferences = Object.keys(COOKIE_CATEGORIES).reduce( - (acc, key) => ({ - ...acc, - [key]: COOKIE_CATEGORIES[key as CookieCategory].required || false, - }), - {}, - ); - setPreferences(newPreferences); - savePreferences(newPreferences); - }; - - const hasConsent = useMemo( - () => Object.values(preferences).some((value) => value), - [preferences], - ); - - const value = { - preferences, - isLoaded, - updatePreference, - acceptAll, - rejectAll, - hasConsent, - }; - - return {children}; -} - -export function useCookies() { - const context = useContext(CookieContext); - if (!context) { - throw new Error('useCookies must be used within a CookieProvider'); - } - return context; -} diff --git a/apps/mail/tsconfig.json b/apps/mail/tsconfig.json index ff79e2777..776dc2d4d 100644 --- a/apps/mail/tsconfig.json +++ b/apps/mail/tsconfig.json @@ -1,21 +1,8 @@ { + "extends": "@zero/tsconfig/base", "compilerOptions": { - "target": "ESNext", "lib": ["dom", "dom.iterable", "esnext"], "types": ["node", "vite/client"], - "allowJs": true, - "checkJs": true, - "skipLibCheck": true, - "strict": true, - "noEmit": true, - "esModuleInterop": true, - "module": "esnext", - "moduleResolution": "bundler", - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "preserve", - "incremental": true, - "verbatimModuleSyntax": true, "paths": { "@/*": ["./*"] }, diff --git a/apps/server/eslint.config.ts b/apps/server/eslint.config.ts new file mode 100644 index 000000000..a0022ebb9 --- /dev/null +++ b/apps/server/eslint.config.ts @@ -0,0 +1,3 @@ +import config from '@zero/eslint-config'; + +export default config; diff --git a/apps/server/package.json b/apps/server/package.json index 260055ca2..0d5ba91f6 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -5,7 +5,8 @@ "scripts": { "dev": "wrangler dev --show-interactive-dev-session=false --experimental-vectorize-bind-to-prod --env local", "deploy": "wrangler deploy", - "types": "wrangler types --env local" + "types": "wrangler types --env local", + "lint": "eslint ." }, "exports": { "./trpc": "./src/trpc/index.ts", @@ -15,6 +16,7 @@ "dependencies": { "@ai-sdk/google": "^1.2.18", "@ai-sdk/openai": "^1.3.21", + "@ai-sdk/ui-utils": "1.2.11", "@coinbase/cookie-manager": "1.1.8", "@googleapis/gmail": "12.0.0", "@googleapis/people": "3.0.9", @@ -58,6 +60,10 @@ "@types/node": "^22.9.0", "@types/react": "19.0.10", "@types/sanitize-html": "2.13.0", + "@zero/eslint-config": "workspace:*", + "@zero/tsconfig": "workspace:*", + "eslint": "^9.27.0", + "jiti": "2.4.2", "typescript": "catalog:" } } diff --git a/apps/server/src/lib/utils.ts b/apps/server/src/lib/utils.ts index 8b5c155a8..fc07ff64d 100644 --- a/apps/server/src/lib/utils.ts +++ b/apps/server/src/lib/utils.ts @@ -1,5 +1,3 @@ -import { isToday, isThisMonth, differenceInCalendarMonths } from 'date-fns'; -import type { JSONContent } from 'novel'; import type { Sender } from '../types'; export const FOLDERS = { @@ -43,13 +41,6 @@ export const getFolderTags = (folder: string): string[] => { return FOLDER_TAGS[folder] || []; }; -export const getCookie = (key: string): string | null => { - const cookies = Object.fromEntries( - document.cookie.split('; ').map((v) => v.split(/=(.*)/s).map(decodeURIComponent)), - ); - return cookies?.[key] ?? null; -}; - export const cleanEmailAddress = (email: string = '') => { return email.replace(/[<>]/g, '').trim(); }; @@ -101,112 +92,6 @@ export const getFileIcon = (mimeType: string): string => { return '📎'; // Default icon }; -export const createAIJsonContent = (text: string): JSONContent => { - // Try to identify common sign-off patterns with a more comprehensive regex - const signOffPatterns = [ - /\b((?:Best regards|Regards|Sincerely|Thanks|Thank you|Cheers|Best|All the best|Yours truly|Yours sincerely|Kind regards|Cordially)(?:,)?)\s*\n+\s*([A-Za-z][A-Za-z\s.]*)$/i, - ]; - - let mainContent = text; - let signatureLines: string[] = []; - - // Extract sign-off if found - for (const pattern of signOffPatterns) { - const match = text.match(pattern); - if (match) { - // Find the index where the sign-off starts - const signOffIndex = text.lastIndexOf(match[0]); - if (signOffIndex > 0) { - // Split the content - mainContent = text.substring(0, signOffIndex).trim(); - - // Split the signature part into separate lines - const signature = text.substring(signOffIndex).trim(); - signatureLines = signature - .split(/\n+/) - .map((line) => line.trim()) - .filter(Boolean); - break; - } - } - } - - // If no signature was found with regex but there are newlines at the end, - // check if the last lines could be a signature - if (signatureLines.length === 0) { - const allLines = text.split(/\n+/); - if (allLines.length > 1) { - // Check if last 1-3 lines might be a signature (short lines at the end) - const potentialSigLines = allLines - .slice(-3) - .filter( - (line) => - line.trim().length < 60 && !line.trim().endsWith('?') && !line.trim().endsWith('.'), - ); - - if (potentialSigLines.length > 0) { - signatureLines = potentialSigLines; - mainContent = allLines - .slice(0, allLines.length - potentialSigLines.length) - .join('\n') - .trim(); - } - } - } - - // Split the main content into paragraphs - const paragraphs = mainContent - .split(/\n\s*\n/) - .map((p) => p.trim()) - .filter(Boolean); - - if (paragraphs.length === 0 && signatureLines.length === 0) { - // If no paragraphs and no signature were found, treat the whole text as one paragraph - paragraphs.push(text); - } - - // Create a content array with appropriate spacing between paragraphs - const content = []; - - paragraphs.forEach((paragraph, index) => { - // Add the content paragraph - content.push({ - type: 'paragraph', - content: [{ type: 'text', text: paragraph }], - }); - - // Add an empty paragraph between main paragraphs - if (index < paragraphs.length - 1) { - content.push({ - type: 'paragraph', - }); - } - }); - - // If we found a signature, add it with proper spacing - if (signatureLines.length > 0) { - // Add spacing before the signature if there was content - if (paragraphs.length > 0) { - content.push({ - type: 'paragraph', - }); - } - - // Add each line of the signature as a separate paragraph - signatureLines.forEach((line) => { - content.push({ - type: 'paragraph', - content: [{ type: 'text', text: line }], - }); - }); - } - - return { - type: 'doc', - content: content, - }; -}; - export const generateConversationId = (): string => { return `conv_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`; }; diff --git a/apps/server/src/overrides.d.ts b/apps/server/src/overrides.d.ts new file mode 100644 index 000000000..240e0fb7d --- /dev/null +++ b/apps/server/src/overrides.d.ts @@ -0,0 +1,8 @@ +declare namespace Cloudflare { + declare interface Env { + zero: Fetcher & { + subscribe: (data: { connectionId: string; providerId: string }) => Promise; + unsubscribe: (data: { connectionId: string; providerId: string }) => Promise; + }; + } +} diff --git a/apps/server/tsconfig.json b/apps/server/tsconfig.json index 5f9006189..1df62ecb3 100644 --- a/apps/server/tsconfig.json +++ b/apps/server/tsconfig.json @@ -1,32 +1,4 @@ { - "compilerOptions": { - // Environment setup & latest features - "lib": ["ESNext", "DOM"], - "target": "ESNext", - "module": "ESNext", - "moduleDetection": "force", - "jsx": "preserve", - "allowJs": true, - - // Bundler mode - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "verbatimModuleSyntax": true, - "emitDeclarationOnly": true, - - // Best practices - "strict": true, - "skipLibCheck": true, - "noFallthroughCasesInSwitch": true, - "noUncheckedIndexedAccess": true, - - // Some stricter flags (disabled by default) - "noUnusedLocals": true, - "noUnusedParameters": true, - "noPropertyAccessFromIndexSignature": true, - - "composite": true, - "types": ["@types/node"] - }, - "include": ["src/**/*.ts", "worker-configuration.d.ts"] + "extends": "@zero/tsconfig/base", + "include": ["src/**/*.ts", "src/overrides.d.ts", "worker-configuration.d.ts"] } diff --git a/packages/cli/package.json b/packages/cli/package.json index fe11d2699..b2c48a928 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -6,6 +6,7 @@ "packageManager": "pnpm@10.11.0", "devDependencies": { "@clack/prompts": "0.10.1", + "@zero/tsconfig": "workspace:*", "tiny-glob": "0.2.9" } } diff --git a/packages/cli/tsconfig.json b/packages/cli/tsconfig.json index 7127ce0c0..1f1a71446 100644 --- a/packages/cli/tsconfig.json +++ b/packages/cli/tsconfig.json @@ -1,12 +1,3 @@ { - "compilerOptions": { - "module": "ESNext", - "moduleResolution": "bundler", - "strict": true, - "target": "ESNext", - "verbatimModuleSyntax": true, - "noEmit": true, - "skipLibCheck": true, - "esModuleInterop": true - } + "extends": "@zero/tsconfig/base" } diff --git a/packages/db/tsconfig.json b/packages/db/tsconfig.json index e4efa67a0..b81a861ce 100644 --- a/packages/db/tsconfig.json +++ b/packages/db/tsconfig.json @@ -1,10 +1,5 @@ { - "extends": "@zero/tsconfig/react-library.json", - "include": [ - "src", - "migrations" - ], - "exclude": [ - "node_modules" - ] -} \ No newline at end of file + "extends": "@zero/tsconfig/base", + "include": ["src", "migrations"], + "exclude": ["node_modules"] +} diff --git a/packages/eslint-config/config.ts b/packages/eslint-config/config.ts new file mode 100644 index 000000000..84a47ecd2 --- /dev/null +++ b/packages/eslint-config/config.ts @@ -0,0 +1,16 @@ +import { defineConfig, globalIgnores } from 'eslint/config'; +import reactHooksPlugin from 'eslint-plugin-react-hooks'; +import tseslint from 'typescript-eslint'; + +export default defineConfig([ + globalIgnores([ + '**/node_modules/**', + '**/dist/**', + '**/build/**', + '**/.react-router/**', + '**/.well-known/**', + ]), + // @ts-expect-error + tseslint.configs.recommended, + reactHooksPlugin.configs['recommended-latest'], +]); diff --git a/packages/eslint-config/eslint.config.mjs b/packages/eslint-config/eslint.config.mjs deleted file mode 100644 index a7c66e4c1..000000000 --- a/packages/eslint-config/eslint.config.mjs +++ /dev/null @@ -1,76 +0,0 @@ -import reactHooksPlugin from "eslint-plugin-react-hooks"; -import tsPlugin from "@typescript-eslint/eslint-plugin"; -import tsParser from "@typescript-eslint/parser"; -import eslint from "eslint"; - -/** @type {import("eslint").Linter.Config[]} */ -const config = [ - { - ignores: ["**/node_modules/**", "**/dist/**", "**/.next/**", "**/.well-known/**"], - }, - { - files: ["**/*.{js,mjs,cjs}"], - languageOptions: { - ecmaVersion: "latest", - sourceType: "module", - }, - }, - { - files: ["**/*.{ts,tsx,js,jsx}"], - languageOptions: { - parser: tsParser, - parserOptions: { - ecmaVersion: "latest", - sourceType: "module", - project: true, - }, - }, - plugins: { - // @ts-expect-error - tsPlugin doesn't exactly match the type ESLint.Plugin - "@typescript-eslint": tsPlugin, - "react-hooks": reactHooksPlugin, - }, - rules: { - // Recommended lints - "react-hooks/exhaustive-deps": "warn", - "@typescript-eslint/no-misused-promises": [ - 2, - { - checksVoidReturn: { - attributes: false, - }, - }, - ], - "@typescript-eslint/no-unused-vars": [ - "warn", - { - vars: "all", - args: "after-used", - caughtErrors: "all", - argsIgnorePattern: "^_", - varsIgnorePattern: "^_", - ignoreRestSiblings: false, - destructuredArrayIgnorePattern: "^_", - }, - ], - - // Strict lints - "@typescript-eslint/consistent-type-imports": [ - "error", - { - prefer: "type-imports", - fixStyle: "inline-type-imports", - disallowTypeAnnotations: true, // This makes non-type imports for types an error - }, - ], - "react-hooks/rules-of-hooks": "error", - "@typescript-eslint/await-thenable": "error", - "@typescript-eslint/no-explicit-any": "error", - "@typescript-eslint/no-floating-promises": "error", - "@typescript-eslint/no-non-null-assertion": "error", - "@typescript-eslint/no-unnecessary-type-assertion": "error", - }, - }, -]; - -export default config; diff --git a/packages/eslint-config/index.js b/packages/eslint-config/index.js deleted file mode 100644 index 5117c7b54..000000000 --- a/packages/eslint-config/index.js +++ /dev/null @@ -1 +0,0 @@ -export { default } from "./eslint.config.mjs"; diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index afed8e8a6..0f82c3652 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -1,19 +1,20 @@ { "name": "@zero/eslint-config", - "version": "0.0.0", "private": true, - "main": "index.js", "type": "module", + "exports": { + ".": "./config.ts" + }, "devDependencies": { - "@types/eslint": "^9.6.1", - "@typescript-eslint/eslint-plugin": "^8.26.1", - "@typescript-eslint/parser": "^8.26.1", - "eslint": "^9.22.0", - "eslint-config-next": "^14.1.0", - "eslint-config-prettier": "^9.1.0", - "eslint-import-resolver-typescript": "^3.6.1", + "@typescript-eslint/eslint-plugin": "^8.32.1", + "@typescript-eslint/parser": "^8.32.1", + "eslint": "^9.27.0", + "eslint-import-resolver-typescript": "^4.3.5", "eslint-plugin-import": "^2.29.1", - "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^5.2.0" + }, + "dependencies": { + "typescript-eslint": "8.32.1" } } diff --git a/packages/eslint-config/tsconfig.json b/packages/eslint-config/tsconfig.json index 94475e7bd..5bb725a63 100644 --- a/packages/eslint-config/tsconfig.json +++ b/packages/eslint-config/tsconfig.json @@ -1,10 +1,10 @@ { - "extends": "@zero/tsconfig/base.json", + "extends": "@zero/tsconfig/base", "compilerOptions": { "allowJs": true, "checkJs": true, "noEmit": true }, - "include": ["eslint.config.mjs", "index.js"], - "exclude": ["node_modules", "dist"] + "include": ["**/*.ts"], + "exclude": ["node_modules"] } diff --git a/packages/tailwind-config/tsconfig.json b/packages/tailwind-config/tsconfig.json index f9971036d..44e864f5a 100644 --- a/packages/tailwind-config/tsconfig.json +++ b/packages/tailwind-config/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "@zero/tsconfig/base.json", + "extends": "@zero/tsconfig/base", "include": ["."], "exclude": ["dist", "build", "node_modules"] } diff --git a/packages/tsconfig/base.json b/packages/tsconfig/base.json index 1ff54e67d..258cd1d89 100644 --- a/packages/tsconfig/base.json +++ b/packages/tsconfig/base.json @@ -1,23 +1,23 @@ { "$schema": "https://json.schemastore.org/tsconfig", "compilerOptions": { - "declaration": false, - "esModuleInterop": true, - "incremental": false, - "isolatedModules": true, - "lib": [ - "es2022", - "DOM", - "DOM.Iterable" - ], - "module": "NodeNext", - "moduleDetection": "force", - "moduleResolution": "NodeNext", - "noUncheckedIndexedAccess": true, - "resolveJsonModule": true, + "target": "ESNext", + "lib": ["EsNext"], + "allowJs": true, + "checkJs": true, "skipLibCheck": true, "strict": true, - "target": "ES2022", - "verbatimModuleSyntax": false + "noEmit": true, + "esModuleInterop": true, + "module": "ESNext", + "moduleResolution": "Bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "verbatimModuleSyntax": true, + "allowImportingTsExtensions": true, + "allowArbitraryExtensions": true, + "types": ["node"] } } diff --git a/packages/tsconfig/nextjs.json b/packages/tsconfig/nextjs.json deleted file mode 100644 index 3ca488b96..000000000 --- a/packages/tsconfig/nextjs.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "extends": "./base.json", - "compilerOptions": { - "plugins": [{ "name": "next" }], - "module": "ESNext", - "moduleResolution": "Bundler", - "allowJs": true, - "jsx": "preserve", - "noEmit": true - } - } \ No newline at end of file diff --git a/packages/tsconfig/package.json b/packages/tsconfig/package.json index f0ea839d7..bde9bfd95 100644 --- a/packages/tsconfig/package.json +++ b/packages/tsconfig/package.json @@ -1,9 +1,7 @@ { "name": "@zero/tsconfig", - "version": "1.0.0", "private": true, - "license": "MIT", - "publishConfig": { - "access": "public" + "exports": { + "./base": "./base.json" } } diff --git a/packages/tsconfig/react-library.json b/packages/tsconfig/react-library.json deleted file mode 100644 index 599cb70da..000000000 --- a/packages/tsconfig/react-library.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "extends": "./base.json", - "compilerOptions": { - "jsx": "react-jsx" - } - } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 20fc7745a..30f1a99f2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -120,13 +120,13 @@ importers: version: 9.19.0(react@19.0.0) '@tanstack/query-sync-storage-persister': specifier: ^5.75.0 - version: 5.76.1 + version: 5.76.2 '@tanstack/react-query': specifier: ^5.74.4 - version: 5.76.1(react@19.0.0) + version: 5.76.2(react@19.0.0) '@tanstack/react-query-persist-client': specifier: ^5.75.2 - version: 5.76.1(@tanstack/react-query@5.76.1(react@19.0.0))(react@19.0.0) + version: 5.76.2(@tanstack/react-query@5.76.2(react@19.0.0))(react@19.0.0) '@tiptap/core': specifier: 2.11.5 version: 2.11.5(@tiptap/pm@2.11.5) @@ -168,13 +168,10 @@ importers: version: 11.1.2(typescript@5.8.3) '@trpc/tanstack-react-query': specifier: 'catalog:' - version: 11.1.2(@tanstack/react-query@5.76.1(react@19.0.0))(@trpc/client@11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3))(@trpc/server@11.1.2(typescript@5.8.3))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + version: 11.1.2(@tanstack/react-query@5.76.2(react@19.0.0))(@trpc/client@11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3))(@trpc/server@11.1.2(typescript@5.8.3))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) '@zero/db': specifier: workspace:* version: link:../../packages/db - '@zero/eslint-config': - specifier: workspace:* - version: link:../../packages/eslint-config '@zero/server': specifier: workspace:* version: link:../server @@ -183,7 +180,7 @@ importers: version: 1.5.0 ai: specifier: ^4.3.9 - version: 4.3.15(react@19.0.0)(zod@3.24.4) + version: 4.3.16(react@19.0.0)(zod@3.24.4) autumn-js: specifier: 'catalog:' version: 0.0.36(react@19.0.0) @@ -222,7 +219,7 @@ importers: version: 4.0.11 dompurify: specifier: ^3.2.5 - version: 3.2.5 + version: 3.2.6 email-addresses: specifier: 5.0.0 version: 5.0.0 @@ -367,10 +364,7 @@ importers: devDependencies: '@cloudflare/vite-plugin': specifier: ^1.2.0 - version: 1.2.0(rollup@4.40.2)(vite@6.3.5(@types/node@22.13.8)(jiti@2.4.2)(terser@5.39.2)(tsx@4.19.4)(yaml@2.7.1))(workerd@1.20250508.0)(wrangler@4.16.0(@cloudflare/workers-types@4.20250514.0)) - '@eslint/eslintrc': - specifier: 3.3.0 - version: 3.3.0 + version: 1.2.4(rollup@4.40.2)(vite@6.3.5(@types/node@22.13.8)(jiti@2.4.2)(terser@5.39.2)(tsx@4.19.4)(yaml@2.7.1))(workerd@1.20250508.0)(wrangler@4.16.0(@cloudflare/workers-types@4.20250514.0)) '@tailwindcss/typography': specifier: 0.5.16 version: 0.5.16(tailwindcss@3.4.17) @@ -395,12 +389,9 @@ importers: '@types/sanitize-html': specifier: 2.13.0 version: 2.13.0 - '@typescript-eslint/eslint-plugin': - specifier: 8.26.1 - version: 8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/parser': - specifier: 8.26.1 - version: 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3) + '@zero/eslint-config': + specifier: workspace:* + version: link:../../packages/eslint-config '@zero/tsconfig': specifier: workspace:* version: link:../../packages/tsconfig @@ -408,14 +399,11 @@ importers: specifier: 0.31.1 version: 0.31.1 eslint: - specifier: 9.22.0 - version: 9.22.0(jiti@2.4.2) - eslint-plugin-react: - specifier: 7.33.2 - version: 7.33.2(eslint@9.22.0(jiti@2.4.2)) - eslint-plugin-react-hooks: - specifier: 5.2.0 - version: 5.2.0(eslint@9.22.0(jiti@2.4.2)) + specifier: ^9.27.0 + version: 9.27.0(jiti@2.4.2) + jiti: + specifier: 2.4.2 + version: 2.4.2 postcss: specifier: 8.5.3 version: 8.5.3 @@ -449,6 +437,9 @@ importers: '@ai-sdk/openai': specifier: ^1.3.21 version: 1.3.22(zod@3.24.4) + '@ai-sdk/ui-utils': + specifier: 1.2.11 + version: 1.2.11(zod@3.24.4) '@coinbase/cookie-manager': specifier: 1.1.8 version: 1.1.8 @@ -460,7 +451,7 @@ importers: version: 3.0.9 '@hono/trpc-server': specifier: ^0.3.4 - version: 0.3.4(@trpc/server@11.1.2(typescript@5.8.3))(hono@4.7.9) + version: 0.3.4(@trpc/server@11.1.2(typescript@5.8.3))(hono@4.7.10) '@microsoft/microsoft-graph-client': specifier: ^3.0.7 version: 3.0.7 @@ -490,7 +481,7 @@ importers: version: link:../../packages/db ai: specifier: ^4.3.13 - version: 4.3.15(react@19.0.0)(zod@3.24.4) + version: 4.3.16(react@19.0.0)(zod@3.24.4) autumn-js: specifier: 'catalog:' version: 0.0.36(react@19.0.0) @@ -520,10 +511,10 @@ importers: version: 1.2.0 hono: specifier: ^4.7.8 - version: 4.7.9 + version: 4.7.10 hono-party: specifier: ^0.0.12 - version: 0.0.12(@cloudflare/workers-types@4.20250514.0)(hono@4.7.9)(partyserver@0.0.71(@cloudflare/workers-types@4.20250514.0)) + version: 0.0.12(@cloudflare/workers-types@4.20250514.0)(hono@4.7.10)(partyserver@0.0.71(@cloudflare/workers-types@4.20250514.0)) jsonrepair: specifier: ^3.12.0 version: 3.12.0 @@ -547,7 +538,7 @@ importers: version: 4.5.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) sanitize-html: specifier: ^2.16.0 - version: 2.16.0 + version: 2.17.0 string-strip-html: specifier: ^13.4.12 version: 13.4.12 @@ -573,6 +564,18 @@ importers: '@types/sanitize-html': specifier: 2.13.0 version: 2.13.0 + '@zero/eslint-config': + specifier: workspace:* + version: link:../../packages/eslint-config + '@zero/tsconfig': + specifier: workspace:* + version: link:../../packages/tsconfig + eslint: + specifier: ^9.27.0 + version: 9.27.0(jiti@2.4.2) + jiti: + specifier: 2.4.2 + version: 2.4.2 typescript: specifier: 'catalog:' version: 5.8.3 @@ -582,6 +585,9 @@ importers: '@clack/prompts': specifier: 0.10.1 version: 0.10.1 + '@zero/tsconfig': + specifier: workspace:* + version: link:../tsconfig tiny-glob: specifier: 0.2.9 version: 0.2.9 @@ -615,37 +621,32 @@ importers: version: 5.8.2 packages/eslint-config: + dependencies: + typescript-eslint: + specifier: 8.32.1 + version: 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) devDependencies: - '@types/eslint': - specifier: ^9.6.1 - version: 9.6.1 '@typescript-eslint/eslint-plugin': - specifier: ^8.26.1 - version: 8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3) + specifier: ^8.32.1 + version: 8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/parser': - specifier: ^8.26.1 - version: 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3) + specifier: ^8.32.1 + version: 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) eslint: - specifier: ^9.22.0 - version: 9.22.0(jiti@2.4.2) - eslint-config-next: - specifier: ^14.1.0 - version: 14.2.28(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3) - eslint-config-prettier: - specifier: ^9.1.0 - version: 9.1.0(eslint@9.22.0(jiti@2.4.2)) + specifier: ^9.27.0 + version: 9.27.0(jiti@2.4.2) eslint-import-resolver-typescript: - specifier: ^3.6.1 - version: 3.10.1(eslint-plugin-import@2.31.0)(eslint@9.22.0(jiti@2.4.2)) + specifier: ^4.3.5 + version: 4.3.5(eslint-plugin-import@2.31.0)(eslint@9.27.0(jiti@2.4.2)) eslint-plugin-import: specifier: ^2.29.1 - version: 2.31.0(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.22.0(jiti@2.4.2)) + version: 2.31.0(@typescript-eslint/parser@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@4.3.5)(eslint@9.27.0(jiti@2.4.2)) eslint-plugin-react: - specifier: ^7.33.2 - version: 7.33.2(eslint@9.22.0(jiti@2.4.2)) + specifier: ^7.37.5 + version: 7.37.5(eslint@9.27.0(jiti@2.4.2)) eslint-plugin-react-hooks: specifier: ^5.2.0 - version: 5.2.0(eslint@9.22.0(jiti@2.4.2)) + version: 5.2.0(eslint@9.27.0(jiti@2.4.2)) packages/tailwind-config: devDependencies: @@ -872,15 +873,6 @@ packages: resolution: {integrity: sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==} engines: {node: '>=18.0.0'} - '@cloudflare/unenv-preset@2.3.1': - resolution: {integrity: sha512-Xq57Qd+ADpt6hibcVBO0uLG9zzRgyRhfCUgBT9s+g3+3Ivg5zDyVgLFy40ES1VdNcu8rPNSivm9A+kGP5IVaPg==} - peerDependencies: - unenv: 2.0.0-rc.15 - workerd: ^1.20250320.0 - peerDependenciesMeta: - workerd: - optional: true - '@cloudflare/unenv-preset@2.3.2': resolution: {integrity: sha512-MtUgNl+QkQyhQvv5bbWP+BpBC1N0me4CHHuP2H4ktmOMKdB/6kkz/lo+zqiA4mEazb4y+1cwyNjVrQ2DWeE4mg==} peerDependencies: @@ -890,8 +882,8 @@ packages: workerd: optional: true - '@cloudflare/vite-plugin@1.2.0': - resolution: {integrity: sha512-Qj7hlwTPJ3bSoVta3L7gpdpEsgdYocDihMueXyQ+Bnmg8gnxrzW13yRqC8qgHdwigf3qmAzm2ZhfPY825VZUnA==} + '@cloudflare/vite-plugin@1.2.4': + resolution: {integrity: sha512-Oc5P4cicZrqGAmlCX9DA8KmMK85rXczZBZU7IjnUeOxsPqh/KVgDy2XOVqYvXbbznm1LHceTG6fPMCMcAcj7DQ==} peerDependencies: vite: ^6.1.0 wrangler: ^3.101.0 || ^4.0.0 @@ -1291,36 +1283,32 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.19.2': - resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} + '@eslint/config-array@0.20.0': + resolution: {integrity: sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/config-helpers@0.1.0': - resolution: {integrity: sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==} + '@eslint/config-helpers@0.2.2': + resolution: {integrity: sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.12.0': - resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==} + '@eslint/core@0.14.0': + resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.13.0': - resolution: {integrity: sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==} + '@eslint/eslintrc@3.3.1': + resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@3.3.0': - resolution: {integrity: sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/js@9.22.0': - resolution: {integrity: sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==} + '@eslint/js@9.27.0': + resolution: {integrity: sha512-G5JD9Tu5HJEu4z2Uo4aHY2sLV64B7CDMXxFzqzjl3NKd6RVzSXNoE80jk7Y0lJkTTkjiIhBAqmlYwjuBY3tvpA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.8': - resolution: {integrity: sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==} + '@eslint/plugin-kit@0.3.1': + resolution: {integrity: sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@fastify/busboy@2.1.1': @@ -1412,8 +1400,8 @@ packages: cpu: [arm64] os: [darwin] - '@img/sharp-darwin-arm64@0.34.1': - resolution: {integrity: sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==} + '@img/sharp-darwin-arm64@0.34.2': + resolution: {integrity: sha512-OfXHZPppddivUJnqyKoi5YVeHRkkNE2zUFT2gbpKxp/JZCFYEYubnMg+gOp6lWfasPrTS+KPosKqdI+ELYVDtg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] @@ -1424,8 +1412,8 @@ packages: cpu: [x64] os: [darwin] - '@img/sharp-darwin-x64@0.34.1': - resolution: {integrity: sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q==} + '@img/sharp-darwin-x64@0.34.2': + resolution: {integrity: sha512-dYvWqmjU9VxqXmjEtjmvHnGqF8GrVjM2Epj9rJ6BUIXvk8slvNDJbhGFvIoXzkDhrJC2jUxNLz/GUjjvSzfw+g==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] @@ -1521,8 +1509,8 @@ packages: cpu: [arm64] os: [linux] - '@img/sharp-linux-arm64@0.34.1': - resolution: {integrity: sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==} + '@img/sharp-linux-arm64@0.34.2': + resolution: {integrity: sha512-D8n8wgWmPDakc83LORcfJepdOSN6MvWNzzz2ux0MnIbOqdieRZwVYY32zxVx+IFUT8er5KPcyU3XXsn+GzG/0Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] @@ -1533,8 +1521,8 @@ packages: cpu: [arm] os: [linux] - '@img/sharp-linux-arm@0.34.1': - resolution: {integrity: sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==} + '@img/sharp-linux-arm@0.34.2': + resolution: {integrity: sha512-0DZzkvuEOqQUP9mo2kjjKNok5AmnOr1jB2XYjkaoNRwpAYMDzRmAqUIa1nRi58S2WswqSfPOWLNOr0FDT3H5RQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] @@ -1545,8 +1533,8 @@ packages: cpu: [s390x] os: [linux] - '@img/sharp-linux-s390x@0.34.1': - resolution: {integrity: sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==} + '@img/sharp-linux-s390x@0.34.2': + resolution: {integrity: sha512-EGZ1xwhBI7dNISwxjChqBGELCWMGDvmxZXKjQRuqMrakhO8QoMgqCrdjnAqJq/CScxfRn+Bb7suXBElKQpPDiw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] @@ -1557,8 +1545,8 @@ packages: cpu: [x64] os: [linux] - '@img/sharp-linux-x64@0.34.1': - resolution: {integrity: sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==} + '@img/sharp-linux-x64@0.34.2': + resolution: {integrity: sha512-sD7J+h5nFLMMmOXYH4DD9UtSNBD05tWSSdWAcEyzqW8Cn5UxXvsHAxmxSesYUsTOBmUnjtxghKDl15EvfqLFbQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] @@ -1569,8 +1557,8 @@ packages: cpu: [arm64] os: [linux] - '@img/sharp-linuxmusl-arm64@0.34.1': - resolution: {integrity: sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==} + '@img/sharp-linuxmusl-arm64@0.34.2': + resolution: {integrity: sha512-NEE2vQ6wcxYav1/A22OOxoSOGiKnNmDzCYFOZ949xFmrWZOVII1Bp3NqVVpvj+3UeHMFyN5eP/V5hzViQ5CZNA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] @@ -1581,8 +1569,8 @@ packages: cpu: [x64] os: [linux] - '@img/sharp-linuxmusl-x64@0.34.1': - resolution: {integrity: sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==} + '@img/sharp-linuxmusl-x64@0.34.2': + resolution: {integrity: sha512-DOYMrDm5E6/8bm/yQLCWyuDJwUnlevR8xtF8bs+gjZ7cyUNYXiSf/E8Kp0Ss5xasIaXSHzb888V1BE4i1hFhAA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] @@ -1592,19 +1580,25 @@ packages: engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] - '@img/sharp-wasm32@0.34.1': - resolution: {integrity: sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg==} + '@img/sharp-wasm32@0.34.2': + resolution: {integrity: sha512-/VI4mdlJ9zkaq53MbIG6rZY+QRN3MLbR6usYlgITEzi4Rpx5S6LFKsycOQjkOGmqTNmkIdLjEvooFKwww6OpdQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] + '@img/sharp-win32-arm64@0.34.2': + resolution: {integrity: sha512-cfP/r9FdS63VA5k0xiqaNaEoGxBg9k7uE+RQGzuK9fHt7jib4zAVVseR9LsE4gJcNWgT6APKMNnCcnyOtmSEUQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [win32] + '@img/sharp-win32-ia32@0.33.5': resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] - '@img/sharp-win32-ia32@0.34.1': - resolution: {integrity: sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw==} + '@img/sharp-win32-ia32@0.34.2': + resolution: {integrity: sha512-QLjGGvAbj0X/FXl8n1WbtQ6iVBpWU7JO94u/P2M4a8CFYsvQi4GW2mRy/JqkRx0qpBzaOdKJKw8uc930EX2AHw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] @@ -1615,8 +1609,8 @@ packages: cpu: [x64] os: [win32] - '@img/sharp-win32-x64@0.34.1': - resolution: {integrity: sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw==} + '@img/sharp-win32-x64@0.34.2': + resolution: {integrity: sha512-aUdT6zEYtDKCaxkofmmJDJYGCf0+pJg3eU9/oBuqvEeoB9dKI6ZLc/1iLJCTuJQDO4ptntAlkUmHgGjyuobZbw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [win32] @@ -1679,15 +1673,12 @@ packages: '@mjackson/node-fetch-server@0.6.1': resolution: {integrity: sha512-9ZJnk/DJjt805uv5PPv11haJIW+HHf3YEEyVXv+8iLQxLD/iXA68FH220XoiTPBC4gCg5q+IMadDw8qPqlA5wg==} - '@napi-rs/wasm-runtime@0.2.9': - resolution: {integrity: sha512-OKRBiajrrxB9ATokgEQoG87Z25c67pCpYcCwmXYX8PBftC9pBfN18gnm/fh1wurSLEKIAt+QRFLFCQISrb66Jg==} + '@napi-rs/wasm-runtime@0.2.10': + resolution: {integrity: sha512-bCsCyeZEwVErsGmyPNSzwfwFn4OdxBj0mmv6hOFucB/k81Ojdu68RbZdxYsRQUPc9l6SU5F/cG+bXgWs3oUgsQ==} '@next/env@15.3.2': resolution: {integrity: sha512-xURk++7P7qR9JG1jJtLzPzf0qEvqCN0A/T3DXf8IPMKo9/6FfjxtEffRJIIew/bIL4T3C2jLLqBor8B/zVlx6g==} - '@next/eslint-plugin-next@14.2.28': - resolution: {integrity: sha512-GQUPA1bTZy5qZdPV5MOHB18465azzhg8xm5o2SqxMF+h1rWNjB43y6xmIPHG5OV2OiU3WxuINpusXom49DdaIQ==} - '@next/swc-darwin-arm64@15.3.2': resolution: {integrity: sha512-2DR6kY/OGcokbnCsjHpNeQblqCZ85/1j6njYSkzRdpLn5At7OkSdmk7WyAmB9G0k25+VgqVZ/u356OSoQZ3z0g==} engines: {node: '>= 10'} @@ -1755,10 +1746,6 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@nolyfill/is-core-module@1.0.39': - resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} - engines: {node: '>=12.4.0'} - '@npmcli/git@4.1.0': resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -3137,9 +3124,6 @@ packages: '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - '@rushstack/eslint-patch@1.11.0': - resolution: {integrity: sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==} - '@scena/dragscroll@1.4.0': resolution: {integrity: sha512-3O8daaZD9VXA9CP3dra6xcgt/qrm0mg0xJCwiX6druCteQ9FFsXffkF8PrqxY4Z4VJ58fFKEa0RlKqbsi/XnRA==} @@ -3214,23 +3198,23 @@ packages: peerDependencies: tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1' - '@tanstack/query-core@5.76.0': - resolution: {integrity: sha512-FN375hb8ctzfNAlex5gHI6+WDXTNpe0nbxp/d2YJtnP+IBM6OUm7zcaoCW6T63BawGOYZBbKC0iPvr41TteNVg==} + '@tanstack/query-core@5.76.2': + resolution: {integrity: sha512-PFGwWh5ss9cJQ67l6bZ7hqXbisX2gy13G2jP+VGY1bgdbCfOMWh6UBVnN62QbFXro6CCoX9hYzTnZHr6Rz00YQ==} - '@tanstack/query-persist-client-core@5.76.1': - resolution: {integrity: sha512-BkNL5QMXLwTMv5po6Ex68/xWCWdnjxx2rWeRf/we6hCI5dCN5Yf+GCbsJcSuc27I2paQJ1xFbfYs18Zmc1kJmA==} + '@tanstack/query-persist-client-core@5.76.2': + resolution: {integrity: sha512-aue39xihS9bK2pg+Tg+WMneysQAV3HhrWsFJhOQ0WL6is+ybpBoSFACny/opxroOWGK6uRHHEQ/oS1n/6Dh23Q==} - '@tanstack/query-sync-storage-persister@5.76.1': - resolution: {integrity: sha512-SFGP+MdZ8UDhIuD0rRI+QOVPIQF9rRJL0RzdGqGSB1i1BwhD/Gxgnyk1oMEUKQDGEWYKHjLWRVDNioGW0kSwkw==} + '@tanstack/query-sync-storage-persister@5.76.2': + resolution: {integrity: sha512-4BcqeKZy/fguj8tmk4wONuvQDah2abDpp4JuBIbAY7oY07dv41AC1L/VAIYqxCui5m3rSbTqy/6slBMqqqcGDQ==} - '@tanstack/react-query-persist-client@5.76.1': - resolution: {integrity: sha512-LN8LLBDyQLTBifbL3HIAOPh48MNw2y5ff49nBUsJO6nwpl3iRKp6qwQ58rGUqHflvuAfKQKeJIvwSXMvckxJMg==} + '@tanstack/react-query-persist-client@5.76.2': + resolution: {integrity: sha512-Zi0THj+7SRcNzSur28SEHs8UfByfX6vYWIG8V1ItregHGw8jswAiLB64HIGmaJqwewNJhHANJictIxXkz3k8ug==} peerDependencies: - '@tanstack/react-query': ^5.76.1 + '@tanstack/react-query': ^5.76.2 react: ^18 || ^19 - '@tanstack/react-query@5.76.1': - resolution: {integrity: sha512-YxdLZVGN4QkT5YT1HKZQWiIlcgauIXEIsMOTSjvyD5wLYK8YVvKZUPAysMqossFJJfDpJW3pFn7WNZuPOqq+fw==} + '@tanstack/react-query@5.76.2': + resolution: {integrity: sha512-rGkWberCrFdIxMdvSAJM/UOKeu0O/JVTbMmfhQoJpiU9Uq0EDx2EMCadnNuJWbXR4smDA2t7DY3NKkYFmDVS5A==} peerDependencies: react: ^18 || ^19 @@ -3504,9 +3488,6 @@ packages: '@types/diff-match-patch@1.0.36': resolution: {integrity: sha512-xFdR6tkm0MWvBfO8xXCSsinYxHcqkQUlcHeSpMC2ukzOb6lwQAfDmW+Qt0AvlGd8HpsS28qKsB+oPeJn9I39jg==} - '@types/eslint@9.6.1': - resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} @@ -3593,51 +3574,51 @@ packages: '@types/use-sync-external-store@0.0.6': resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==} - '@typescript-eslint/eslint-plugin@8.26.1': - resolution: {integrity: sha512-2X3mwqsj9Bd3Ciz508ZUtoQQYpOhU/kWoUqIf49H8Z0+Vbh6UF/y0OEYp0Q0axOGzaBGs7QxRwq0knSQ8khQNA==} + '@typescript-eslint/eslint-plugin@8.32.1': + resolution: {integrity: sha512-6u6Plg9nP/J1GRpe/vcjjabo6Uc5YQPAMxsgQyGC/I0RuukiG1wIe3+Vtg3IrSCVJDmqK3j8adrtzXSENRtFgg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.26.1': - resolution: {integrity: sha512-w6HZUV4NWxqd8BdeFf81t07d7/YV9s7TCWrQQbG5uhuvGUAW+fq1usZ1Hmz9UPNLniFnD8GLSsDpjP0hm1S4lQ==} + '@typescript-eslint/parser@8.32.1': + resolution: {integrity: sha512-LKMrmwCPoLhM45Z00O1ulb6jwyVr2kr3XJp+G+tSEZcbauNnScewcQwtJqXDhXeYPDEjZ8C1SjXm015CirEmGg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/scope-manager@8.26.1': - resolution: {integrity: sha512-6EIvbE5cNER8sqBu6V7+KeMZIC1664d2Yjt+B9EWUXrsyWpxx4lEZrmvxgSKRC6gX+efDL/UY9OpPZ267io3mg==} + '@typescript-eslint/scope-manager@8.32.1': + resolution: {integrity: sha512-7IsIaIDeZn7kffk7qXC3o6Z4UblZJKV3UBpkvRNpr5NSyLji7tvTcvmnMNYuYLyh26mN8W723xpo3i4MlD33vA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.26.1': - resolution: {integrity: sha512-Kcj/TagJLwoY/5w9JGEFV0dclQdyqw9+VMndxOJKtoFSjfZhLXhYjzsQEeyza03rwHx2vFEGvrJWJBXKleRvZg==} + '@typescript-eslint/type-utils@8.32.1': + resolution: {integrity: sha512-mv9YpQGA8iIsl5KyUPi+FGLm7+bA4fgXaeRcFKRDRwDMu4iwrSHeDPipwueNXhdIIZltwCJv+NkxftECbIZWfA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/types@8.26.1': - resolution: {integrity: sha512-n4THUQW27VmQMx+3P+B0Yptl7ydfceUj4ON/AQILAASwgYdZ/2dhfymRMh5egRUrvK5lSmaOm77Ry+lmXPOgBQ==} + '@typescript-eslint/types@8.32.1': + resolution: {integrity: sha512-YmybwXUJcgGqgAp6bEsgpPXEg6dcCyPyCSr0CAAueacR/CCBi25G3V8gGQ2kRzQRBNol7VQknxMs9HvVa9Rvfg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.26.1': - resolution: {integrity: sha512-yUwPpUHDgdrv1QJ7YQal3cMVBGWfnuCdKbXw1yyjArax3353rEJP1ZA+4F8nOlQ3RfS2hUN/wze3nlY+ZOhvoA==} + '@typescript-eslint/typescript-estree@8.32.1': + resolution: {integrity: sha512-Y3AP9EIfYwBb4kWGb+simvPaqQoT5oJuzzj9m0i6FCY6SPvlomY2Ei4UEMm7+FXtlNJbor80ximyslzaQF6xhg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.26.1': - resolution: {integrity: sha512-V4Urxa/XtSUroUrnI7q6yUTD3hDtfJ2jzVfeT3VK0ciizfK2q/zGC0iDh1lFMUZR8cImRrep6/q0xd/1ZGPQpg==} + '@typescript-eslint/utils@8.32.1': + resolution: {integrity: sha512-DsSFNIgLSrc89gpq1LJB7Hm1YpuhK086DRDJSNrewcGvYloWW1vZLHBTIvarKZDcAORIy/uWNx8Gad+4oMpkSA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/visitor-keys@8.26.1': - resolution: {integrity: sha512-AjOC3zfnxd6S4Eiy3jwktJPclqhFHNyd8L6Gycf9WUPoKZpgM5PjkxY1X7uSy61xVpiJDhhk7XT2NVsN3ALTWg==} + '@typescript-eslint/visitor-keys@8.32.1': + resolution: {integrity: sha512-ar0tjQfObzhSaW3C3QNmTc5ofj0hDoNQ5XWrCy6zDyabdr0TWhCkClp+rywGNj/odAFBVzzJrK4tEq5M4Hmu4w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': @@ -3777,8 +3758,8 @@ packages: resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} - ai@4.3.15: - resolution: {integrity: sha512-TYKRzbWg6mx/pmTadlAEIhuQtzfHUV0BbLY72+zkovXwq/9xhcH24IlQmkyBpElK6/4ArS0dHdOOtR1jOPVwtg==} + ai@4.3.16: + resolution: {integrity: sha512-KUDwlThJ5tr2Vw0A1ZkbDKNME3wzWhuVfAOwIvFUzl1TPVDFAXDFTXio3p+jaKneB+dKNCvFFlolYmmgHttG1g==} engines: {node: '>=18'} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc @@ -3823,10 +3804,6 @@ packages: resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} engines: {node: '>=10'} - aria-query@5.3.2: - resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} - engines: {node: '>= 0.4'} - array-buffer-byte-length@1.0.2: resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} @@ -3842,6 +3819,10 @@ packages: resolution: {integrity: sha512-H3Of6NIn2nNU1gsVDqDnYKY/LCdWvCMMOWifNGhKcVQgiZ6nOek39aESOvro6zmueP07exSl93YLvkN4fZOkSg==} engines: {node: '>=10'} + array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + array.prototype.findlastindex@1.2.6: resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==} engines: {node: '>= 0.4'} @@ -3869,9 +3850,6 @@ packages: resolution: {integrity: sha512-UOCGPYbl0tv8+006qks/dTgV9ajs97X2p0FAbyS2iyCRrmLSRolDaHdp+v/CLgnzHc3fVB+CwYiUmei7ndFcgA==} engines: {node: '>=12.0.0'} - ast-types-flow@0.0.8: - resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - async-function@1.0.0: resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} engines: {node: '>= 0.4'} @@ -3883,14 +3861,6 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - axe-core@4.10.3: - resolution: {integrity: sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==} - engines: {node: '>=4'} - - axobject-query@4.1.0: - resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} - engines: {node: '>= 0.4'} - babel-dead-code-elimination@1.0.10: resolution: {integrity: sha512-DV5bdJZTzZ0zn0DC24v3jD7Mnidh6xhKa4GfKCbq3sfW8kaWhDdZjP3i81geA8T33tdYqWKw4D3fVv0CwEgKVA==} @@ -4249,9 +4219,6 @@ packages: resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} engines: {node: '>=12'} - damerau-levenshtein@1.0.8: - resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} - data-uri-to-buffer@2.0.2: resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} @@ -4386,8 +4353,8 @@ packages: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} - dompurify@3.2.5: - resolution: {integrity: sha512-mLPd29uoRe9HpvwP2TxClGQBzGXeEC/we/q+bFlmPPmj2p2Ugl3r6ATu/UU1v77DXNcehiBg9zsr1dREyA/dJQ==} + dompurify@3.2.6: + resolution: {integrity: sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==} domutils@3.2.2: resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} @@ -4558,6 +4525,10 @@ packages: error-stack-parser@2.1.4: resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + es-abstract@1.23.10: + resolution: {integrity: sha512-MtUbM072wlJNyeYAe0mhzrD+M6DIJa96CZAOBBrhDbgKnB4MApIKefcyAB1eOdYn8cUNZgvwBvEzdoAYsxgEIw==} + engines: {node: '>= 0.4'} + es-abstract@1.23.9: resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} engines: {node: '>= 0.4'} @@ -4619,27 +4590,12 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - eslint-config-next@14.2.28: - resolution: {integrity: sha512-UxJMRQ4uaEdLp3mVQoIbRIlEF0S2rTlyZhI/2yEMVdAWmgFfPY4iJZ68jCbhLvXMnKeHMkmqTGjEhFH5Vm9h+A==} - peerDependencies: - eslint: ^7.23.0 || ^8.0.0 - typescript: '>=3.3.1' - peerDependenciesMeta: - typescript: - optional: true - - eslint-config-prettier@9.1.0: - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - eslint-import-resolver-typescript@3.10.1: - resolution: {integrity: sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==} - engines: {node: ^14.18.0 || >=16.0.0} + eslint-import-resolver-typescript@4.3.5: + resolution: {integrity: sha512-QGwhLrwn/WGOsdrWvjhm9n8BvKN/Wr41SQERMV7DQ2hm9+Ozas39CyQUxum///l2G2vefQVr7VbIaCFS5h9g5g==} + engines: {node: ^16.17.0 || >=18.6.0} peerDependencies: eslint: '*' eslint-plugin-import: '*' @@ -4681,29 +4637,17 @@ packages: '@typescript-eslint/parser': optional: true - eslint-plugin-jsx-a11y@6.10.2: - resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} - engines: {node: '>=4.0'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - - eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705: - resolution: {integrity: sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - eslint-plugin-react-hooks@5.2.0: resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - eslint-plugin-react@7.33.2: - resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} + eslint-plugin-react@7.37.5: + resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} engines: {node: '>=4'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 eslint-scope@8.3.0: resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==} @@ -4717,8 +4661,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.22.0: - resolution: {integrity: sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==} + eslint@9.27.0: + resolution: {integrity: sha512-ixRawFQuMB9DZ7fjU3iGGganFDp3+45bPOdaRurcFHSXO1e/sYwUX/FtQZpLZJR6SjMoJH8hR2pPEAfDyCoU2Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -4940,6 +4884,9 @@ packages: get-tsconfig@4.10.0: resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} + get-tsconfig@4.10.1: + resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -4951,11 +4898,6 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - glob@10.4.5: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true @@ -5059,8 +5001,8 @@ packages: hono: ^4.6.17 partyserver: ^0.0.71 - hono@4.7.9: - resolution: {integrity: sha512-/EsCoR5h7N4yu01TDu9GMCCJa6ZLk5ZJIWFFGNawAXmd1Tp53+Wir4xm0D2X19bbykWUlzQG0+BvPAji6p9E8Q==} + hono@4.7.10: + resolution: {integrity: sha512-QkACju9MiN59CKSY5JsGZCYmPZkA6sIW6OFCUp7qDjZu6S6KHtJHhAc9Uy9mV9F8PJ1/HQ3ybZF2yjCa/73fvQ==} engines: {node: '>=16.9.0'} hosted-git-info@6.1.3: @@ -5107,6 +5049,10 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} + ignore@7.0.4: + resolution: {integrity: sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==} + engines: {node: '>= 4'} + import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} @@ -5304,10 +5250,6 @@ packages: resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} engines: {node: '>= 0.4'} - jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} - jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} @@ -5431,13 +5373,6 @@ packages: resolution: {integrity: sha512-4YAVLoF0Sf0UTqlhgQMFU9iQECdah7n+13ANkiuVfRvlK+uI0Etbgd7bVP36dKlG+NXWbhGua8vnGt+sdhvT7A==} engines: {node: '>=18.0.0'} - language-subtag-registry@0.3.23: - resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} - - language-tags@1.0.9: - resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} - engines: {node: '>=0.10'} - leac@0.6.0: resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==} @@ -5670,11 +5605,6 @@ packages: mimetext@3.0.27: resolution: {integrity: sha512-mUhWAsZD1N/K6dbN4+a5Yq78OPnYQw1ubOSMasBntsLQ2S7KVNlvDEA8dwpr4a7PszWMzeslKahAprtwYMgaBA==} - miniflare@4.20250508.0: - resolution: {integrity: sha512-NvA1W8l7CRSOoaxKoRUpE4YfkNlalekShcV96o9KqGctWd9wydUXAhg4q0KqkDS04CjMNRSKG2kSI3B2BsOxXA==} - engines: {node: '>=18.0.0'} - hasBin: true - miniflare@4.20250508.3: resolution: {integrity: sha512-43oTmZ0CCmUcieetI5YDDyX0IiwhOcVIWzdBBCqWXK3F1XgQwg4d3fTqRyJnCmHIoaYx9CE1kTEKZC1UahPQhA==} engines: {node: '>=18.0.0'} @@ -5897,10 +5827,6 @@ packages: resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} engines: {node: '>= 0.4'} - object.hasown@1.1.4: - resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} - engines: {node: '>= 0.4'} - object.values@1.2.1: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} @@ -6664,8 +6590,8 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sanitize-html@2.16.0: - resolution: {integrity: sha512-0s4caLuHHaZFVxFTG74oW91+j6vW7gKbGD6CD2+miP73CE6z6YtOBN0ArtLd2UGyi4IC7K47v3ENUbQX4jV3Mg==} + sanitize-html@2.17.0: + resolution: {integrity: sha512-dLAADUSS8rBwhaevT12yCezvioCA+bmUTPH/u57xKPT8d++voeYE6HeluA/bPbQ15TwDBG2ii+QZIEmYx8VdxA==} satori@0.10.14: resolution: {integrity: sha512-abovcqmwl97WKioxpkfuMeZmndB1TuDFY/R+FymrZyiGP+pMYomvgSzVPnbNMWHHESOPosVHGL352oFbdAnJcA==} @@ -6730,8 +6656,8 @@ packages: resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - sharp@0.34.1: - resolution: {integrity: sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==} + sharp@0.34.2: + resolution: {integrity: sha512-lszvBmB9QURERtyKT2bNmsgxXK0ShJrL/fvqlonCo7e6xBF8nT8xU6pW+PMIbLsz0RxQk3rgH9kd8UmvOzlMJg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} shebang-command@2.0.0: @@ -6864,14 +6790,13 @@ packages: string.prototype.codepointat@0.2.1: resolution: {integrity: sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==} - string.prototype.includes@2.0.1: - resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} - engines: {node: '>= 0.4'} - string.prototype.matchall@4.0.12: resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} engines: {node: '>= 0.4'} + string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + string.prototype.trim@1.2.10: resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} engines: {node: '>= 0.4'} @@ -7137,6 +7062,13 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} + typescript-eslint@8.32.1: + resolution: {integrity: sha512-D7el+eaDHAmXvrZBy1zpzSNIRqnCOrkwTgZxTu3MUqRWk8k0q9m9Ho4+vPf7iHtgUfrK/o8IZaEApsxPlHTFCg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + typescript@5.8.2: resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} engines: {node: '>=14.17'} @@ -7171,9 +7103,6 @@ packages: resolution: {integrity: sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==} engines: {node: '>=18.17'} - unenv@2.0.0-rc.15: - resolution: {integrity: sha512-J/rEIZU8w6FOfLNz/hNKsnY+fFHWnu9MH4yRbSZF3xbbGHovcetXPs7sD+9p8L6CeNC//I9bhRYAOsBt2u7/OA==} - unenv@2.0.0-rc.17: resolution: {integrity: sha512-B06u0wXkEd+o5gOCMl/ZHl5cfpYbDZKAT+HWTL+Hws6jWu7dCiqBBXXXzMFcFVJb8D4ytAnYmxJA83uwOQRSsg==} @@ -7781,28 +7710,22 @@ snapshots: dependencies: mime: 3.0.0 - '@cloudflare/unenv-preset@2.3.1(unenv@2.0.0-rc.15)(workerd@1.20250508.0)': - dependencies: - unenv: 2.0.0-rc.15 - optionalDependencies: - workerd: 1.20250508.0 - '@cloudflare/unenv-preset@2.3.2(unenv@2.0.0-rc.17)(workerd@1.20250508.0)': dependencies: unenv: 2.0.0-rc.17 optionalDependencies: workerd: 1.20250508.0 - '@cloudflare/vite-plugin@1.2.0(rollup@4.40.2)(vite@6.3.5(@types/node@22.13.8)(jiti@2.4.2)(terser@5.39.2)(tsx@4.19.4)(yaml@2.7.1))(workerd@1.20250508.0)(wrangler@4.16.0(@cloudflare/workers-types@4.20250514.0))': + '@cloudflare/vite-plugin@1.2.4(rollup@4.40.2)(vite@6.3.5(@types/node@22.13.8)(jiti@2.4.2)(terser@5.39.2)(tsx@4.19.4)(yaml@2.7.1))(workerd@1.20250508.0)(wrangler@4.16.0(@cloudflare/workers-types@4.20250514.0))': dependencies: - '@cloudflare/unenv-preset': 2.3.1(unenv@2.0.0-rc.15)(workerd@1.20250508.0) + '@cloudflare/unenv-preset': 2.3.2(unenv@2.0.0-rc.17)(workerd@1.20250508.0) '@mjackson/node-fetch-server': 0.6.1 '@rollup/plugin-replace': 6.0.2(rollup@4.40.2) get-port: 7.1.0 - miniflare: 4.20250508.0 + miniflare: 4.20250508.3 picocolors: 1.1.1 tinyglobby: 0.2.13 - unenv: 2.0.0-rc.15 + unenv: 2.0.0-rc.17 vite: 6.3.5(@types/node@22.13.8)(jiti@2.4.2)(terser@5.39.2)(tsx@4.19.4)(yaml@2.7.1) wrangler: 4.16.0(@cloudflare/workers-types@4.20250514.0) ws: 8.18.0 @@ -7907,7 +7830,7 @@ snapshots: '@esbuild-kit/esm-loader@2.6.5': dependencies: '@esbuild-kit/core-utils': 3.3.2 - get-tsconfig: 4.10.0 + get-tsconfig: 4.10.1 '@esbuild/aix-ppc64@0.25.4': optional: true @@ -8050,14 +7973,14 @@ snapshots: '@esbuild/win32-x64@0.25.4': optional: true - '@eslint-community/eslint-utils@4.7.0(eslint@9.22.0(jiti@2.4.2))': + '@eslint-community/eslint-utils@4.7.0(eslint@9.27.0(jiti@2.4.2))': dependencies: - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.27.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.19.2': + '@eslint/config-array@0.20.0': dependencies: '@eslint/object-schema': 2.1.6 debug: 4.4.1 @@ -8065,17 +7988,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.1.0': {} + '@eslint/config-helpers@0.2.2': {} - '@eslint/core@0.12.0': + '@eslint/core@0.14.0': dependencies: '@types/json-schema': 7.0.15 - '@eslint/core@0.13.0': - dependencies: - '@types/json-schema': 7.0.15 - - '@eslint/eslintrc@3.3.0': + '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 debug: 4.4.1 @@ -8089,13 +8008,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.22.0': {} + '@eslint/js@9.27.0': {} '@eslint/object-schema@2.1.6': {} - '@eslint/plugin-kit@0.2.8': + '@eslint/plugin-kit@0.3.1': dependencies: - '@eslint/core': 0.13.0 + '@eslint/core': 0.14.0 levn: 0.4.1 '@fastify/busboy@2.1.1': {} @@ -8163,10 +8082,10 @@ snapshots: '@hexagon/base64@1.1.28': {} - '@hono/trpc-server@0.3.4(@trpc/server@11.1.2(typescript@5.8.3))(hono@4.7.9)': + '@hono/trpc-server@0.3.4(@trpc/server@11.1.2(typescript@5.8.3))(hono@4.7.10)': dependencies: '@trpc/server': 11.1.2(typescript@5.8.3) - hono: 4.7.9 + hono: 4.7.10 '@hookform/resolvers@4.1.2(react-hook-form@7.54.2(react@19.0.0))': dependencies: @@ -8191,7 +8110,7 @@ snapshots: '@img/sharp-libvips-darwin-arm64': 1.0.4 optional: true - '@img/sharp-darwin-arm64@0.34.1': + '@img/sharp-darwin-arm64@0.34.2': optionalDependencies: '@img/sharp-libvips-darwin-arm64': 1.1.0 optional: true @@ -8201,7 +8120,7 @@ snapshots: '@img/sharp-libvips-darwin-x64': 1.0.4 optional: true - '@img/sharp-darwin-x64@0.34.1': + '@img/sharp-darwin-x64@0.34.2': optionalDependencies: '@img/sharp-libvips-darwin-x64': 1.1.0 optional: true @@ -8262,7 +8181,7 @@ snapshots: '@img/sharp-libvips-linux-arm64': 1.0.4 optional: true - '@img/sharp-linux-arm64@0.34.1': + '@img/sharp-linux-arm64@0.34.2': optionalDependencies: '@img/sharp-libvips-linux-arm64': 1.1.0 optional: true @@ -8272,7 +8191,7 @@ snapshots: '@img/sharp-libvips-linux-arm': 1.0.5 optional: true - '@img/sharp-linux-arm@0.34.1': + '@img/sharp-linux-arm@0.34.2': optionalDependencies: '@img/sharp-libvips-linux-arm': 1.1.0 optional: true @@ -8282,7 +8201,7 @@ snapshots: '@img/sharp-libvips-linux-s390x': 1.0.4 optional: true - '@img/sharp-linux-s390x@0.34.1': + '@img/sharp-linux-s390x@0.34.2': optionalDependencies: '@img/sharp-libvips-linux-s390x': 1.1.0 optional: true @@ -8292,7 +8211,7 @@ snapshots: '@img/sharp-libvips-linux-x64': 1.0.4 optional: true - '@img/sharp-linux-x64@0.34.1': + '@img/sharp-linux-x64@0.34.2': optionalDependencies: '@img/sharp-libvips-linux-x64': 1.1.0 optional: true @@ -8302,7 +8221,7 @@ snapshots: '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 optional: true - '@img/sharp-linuxmusl-arm64@0.34.1': + '@img/sharp-linuxmusl-arm64@0.34.2': optionalDependencies: '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 optional: true @@ -8312,7 +8231,7 @@ snapshots: '@img/sharp-libvips-linuxmusl-x64': 1.0.4 optional: true - '@img/sharp-linuxmusl-x64@0.34.1': + '@img/sharp-linuxmusl-x64@0.34.2': optionalDependencies: '@img/sharp-libvips-linuxmusl-x64': 1.1.0 optional: true @@ -8322,21 +8241,24 @@ snapshots: '@emnapi/runtime': 1.4.3 optional: true - '@img/sharp-wasm32@0.34.1': + '@img/sharp-wasm32@0.34.2': dependencies: '@emnapi/runtime': 1.4.3 optional: true + '@img/sharp-win32-arm64@0.34.2': + optional: true + '@img/sharp-win32-ia32@0.33.5': optional: true - '@img/sharp-win32-ia32@0.34.1': + '@img/sharp-win32-ia32@0.34.2': optional: true '@img/sharp-win32-x64@0.33.5': optional: true - '@img/sharp-win32-x64@0.34.1': + '@img/sharp-win32-x64@0.34.2': optional: true '@isaacs/cliui@8.0.2': @@ -8389,7 +8311,7 @@ snapshots: '@mjackson/node-fetch-server@0.6.1': {} - '@napi-rs/wasm-runtime@0.2.9': + '@napi-rs/wasm-runtime@0.2.10': dependencies: '@emnapi/core': 1.4.3 '@emnapi/runtime': 1.4.3 @@ -8399,10 +8321,6 @@ snapshots: '@next/env@15.3.2': optional: true - '@next/eslint-plugin-next@14.2.28': - dependencies: - glob: 10.3.10 - '@next/swc-darwin-arm64@15.3.2': optional: true @@ -8443,8 +8361,6 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.1 - '@nolyfill/is-core-module@1.0.39': {} - '@npmcli/git@4.1.0': dependencies: '@npmcli/promise-spawn': 6.0.2 @@ -9932,8 +9848,6 @@ snapshots: '@rtsao/scc@1.1.0': {} - '@rushstack/eslint-patch@1.11.0': {} - '@scena/dragscroll@1.4.0': dependencies: '@daybrush/utils': 1.13.0 @@ -10028,26 +9942,26 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 3.4.17 - '@tanstack/query-core@5.76.0': {} + '@tanstack/query-core@5.76.2': {} - '@tanstack/query-persist-client-core@5.76.1': + '@tanstack/query-persist-client-core@5.76.2': dependencies: - '@tanstack/query-core': 5.76.0 + '@tanstack/query-core': 5.76.2 - '@tanstack/query-sync-storage-persister@5.76.1': + '@tanstack/query-sync-storage-persister@5.76.2': dependencies: - '@tanstack/query-core': 5.76.0 - '@tanstack/query-persist-client-core': 5.76.1 + '@tanstack/query-core': 5.76.2 + '@tanstack/query-persist-client-core': 5.76.2 - '@tanstack/react-query-persist-client@5.76.1(@tanstack/react-query@5.76.1(react@19.0.0))(react@19.0.0)': + '@tanstack/react-query-persist-client@5.76.2(@tanstack/react-query@5.76.2(react@19.0.0))(react@19.0.0)': dependencies: - '@tanstack/query-persist-client-core': 5.76.1 - '@tanstack/react-query': 5.76.1(react@19.0.0) + '@tanstack/query-persist-client-core': 5.76.2 + '@tanstack/react-query': 5.76.2(react@19.0.0) react: 19.0.0 - '@tanstack/react-query@5.76.1(react@19.0.0)': + '@tanstack/react-query@5.76.2(react@19.0.0)': dependencies: - '@tanstack/query-core': 5.76.0 + '@tanstack/query-core': 5.76.2 react: 19.0.0 '@tiptap/core@2.11.5(@tiptap/pm@2.11.5)': @@ -10278,9 +10192,9 @@ snapshots: dependencies: typescript: 5.8.3 - '@trpc/tanstack-react-query@11.1.2(@tanstack/react-query@5.76.1(react@19.0.0))(@trpc/client@11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3))(@trpc/server@11.1.2(typescript@5.8.3))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3)': + '@trpc/tanstack-react-query@11.1.2(@tanstack/react-query@5.76.2(react@19.0.0))(@trpc/client@11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3))(@trpc/server@11.1.2(typescript@5.8.3))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3)': dependencies: - '@tanstack/react-query': 5.76.1(react@19.0.0) + '@tanstack/react-query': 5.76.2(react@19.0.0) '@trpc/client': 11.1.2(@trpc/server@11.1.2(typescript@5.8.3))(typescript@5.8.3) '@trpc/server': 11.1.2(typescript@5.8.3) react: 19.0.0 @@ -10326,11 +10240,6 @@ snapshots: '@types/diff-match-patch@1.0.36': {} - '@types/eslint@9.6.1': - dependencies: - '@types/estree': 1.0.7 - '@types/json-schema': 7.0.15 - '@types/estree-jsx@1.0.5': dependencies: '@types/estree': 1.0.7 @@ -10415,57 +10324,57 @@ snapshots: '@types/use-sync-external-store@0.0.6': {} - '@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.26.1 - '@typescript-eslint/type-utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.26.1 - eslint: 9.22.0(jiti@2.4.2) + '@typescript-eslint/parser': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.32.1 + '@typescript-eslint/type-utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.32.1 + eslint: 9.27.0(jiti@2.4.2) graphemer: 1.4.0 - ignore: 5.3.2 + ignore: 7.0.4 natural-compare: 1.4.0 ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/parser@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 8.26.1 - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.26.1 + '@typescript-eslint/scope-manager': 8.32.1 + '@typescript-eslint/types': 8.32.1 + '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.32.1 debug: 4.4.1 - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.27.0(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.26.1': + '@typescript-eslint/scope-manager@8.32.1': dependencies: - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/visitor-keys': 8.26.1 + '@typescript-eslint/types': 8.32.1 + '@typescript-eslint/visitor-keys': 8.32.1 - '@typescript-eslint/type-utils@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) + '@typescript-eslint/utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) debug: 4.4.1 - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.27.0(jiti@2.4.2) ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.26.1': {} + '@typescript-eslint/types@8.32.1': {} - '@typescript-eslint/typescript-estree@8.26.1(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.32.1(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/visitor-keys': 8.26.1 + '@typescript-eslint/types': 8.32.1 + '@typescript-eslint/visitor-keys': 8.32.1 debug: 4.4.1 fast-glob: 3.3.3 is-glob: 4.0.3 @@ -10476,20 +10385,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/utils@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.22.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.26.1 - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.3) - eslint: 9.22.0(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) + '@typescript-eslint/scope-manager': 8.32.1 + '@typescript-eslint/types': 8.32.1 + '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) + eslint: 9.27.0(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.26.1': + '@typescript-eslint/visitor-keys@8.32.1': dependencies: - '@typescript-eslint/types': 8.26.1 + '@typescript-eslint/types': 8.32.1 eslint-visitor-keys: 4.2.0 '@ungap/structured-clone@1.3.0': {} @@ -10535,7 +10444,7 @@ snapshots: '@unrs/resolver-binding-wasm32-wasi@1.7.2': dependencies: - '@napi-rs/wasm-runtime': 0.2.9 + '@napi-rs/wasm-runtime': 0.2.10 optional: true '@unrs/resolver-binding-win32-arm64-msvc@1.7.2': @@ -10584,7 +10493,7 @@ snapshots: agent-base@7.1.3: {} - ai@4.3.15(react@19.0.0)(zod@3.24.4): + ai@4.3.16(react@19.0.0)(zod@3.24.4): dependencies: '@ai-sdk/provider': 1.1.3 '@ai-sdk/provider-utils': 2.2.8(zod@3.24.4) @@ -10628,8 +10537,6 @@ snapshots: dependencies: tslib: 2.8.1 - aria-query@5.3.2: {} - array-buffer-byte-length@1.0.2: dependencies: call-bound: 1.0.4 @@ -10642,13 +10549,22 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.23.10 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 is-string: 1.1.1 array-move@3.0.1: {} + array.prototype.findlast@1.2.5: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.10 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-shim-unscopables: 1.1.0 + array.prototype.findlastindex@1.2.6: dependencies: call-bind: 1.0.8 @@ -10670,14 +10586,14 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.23.10 es-shim-unscopables: 1.1.0 array.prototype.tosorted@1.1.4: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.23.10 es-errors: 1.3.0 es-shim-unscopables: 1.1.0 @@ -10701,8 +10617,6 @@ snapshots: pvutils: 1.1.3 tslib: 2.8.1 - ast-types-flow@0.0.8: {} - async-function@1.0.0: {} autumn-js@0.0.36(react@19.0.0): @@ -10716,10 +10630,6 @@ snapshots: dependencies: possible-typed-array-names: 1.1.0 - axe-core@4.10.3: {} - - axobject-query@4.1.0: {} - babel-dead-code-elimination@1.0.10: dependencies: '@babel/core': 7.27.1 @@ -11108,8 +11018,6 @@ snapshots: d3-timer@3.0.1: {} - damerau-levenshtein@1.0.8: {} - data-uri-to-buffer@2.0.2: {} data-view-buffer@1.0.2: @@ -11222,7 +11130,7 @@ snapshots: dependencies: domelementtype: 2.3.0 - dompurify@3.2.5: + dompurify@3.2.6: optionalDependencies: '@types/trusted-types': 2.0.7 @@ -11324,6 +11232,60 @@ snapshots: dependencies: stackframe: 1.3.4 + es-abstract@1.23.10: + dependencies: + array-buffer-byte-length: 1.0.2 + arraybuffer.prototype.slice: 1.0.4 + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 + data-view-buffer: 1.0.2 + data-view-byte-length: 1.0.2 + data-view-byte-offset: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-set-tostringtag: 2.1.0 + es-to-primitive: 1.3.0 + function.prototype.name: 1.1.8 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + get-symbol-description: 1.1.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + internal-slot: 1.1.0 + is-array-buffer: 3.0.5 + is-callable: 1.2.7 + is-data-view: 1.0.2 + is-regex: 1.2.1 + is-shared-array-buffer: 1.0.4 + is-string: 1.1.1 + is-typed-array: 1.1.15 + is-weakref: 1.1.1 + math-intrinsics: 1.1.0 + object-inspect: 1.13.4 + object-keys: 1.1.1 + object.assign: 4.1.7 + own-keys: 1.0.1 + regexp.prototype.flags: 1.5.4 + safe-array-concat: 1.1.3 + safe-push-apply: 1.0.0 + safe-regex-test: 1.1.0 + set-proto: 1.0.0 + string.prototype.trim: 1.2.10 + string.prototype.trimend: 1.0.9 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.3 + typed-array-byte-length: 1.0.3 + typed-array-byte-offset: 1.0.4 + typed-array-length: 1.0.7 + unbox-primitive: 1.1.0 + which-typed-array: 1.1.19 + es-abstract@1.23.9: dependencies: array-buffer-byte-length: 1.0.2 @@ -11387,7 +11349,7 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.23.10 es-errors: 1.3.0 es-set-tostringtag: 2.1.0 function-bind: 1.1.2 @@ -11490,30 +11452,6 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-next@14.2.28(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3): - dependencies: - '@next/eslint-plugin-next': 14.2.28 - '@rushstack/eslint-patch': 1.11.0 - '@typescript-eslint/eslint-plugin': 8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/parser': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.22.0(jiti@2.4.2) - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0)(eslint@9.22.0(jiti@2.4.2)) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.22.0(jiti@2.4.2)) - eslint-plugin-jsx-a11y: 6.10.2(eslint@9.22.0(jiti@2.4.2)) - eslint-plugin-react: 7.33.2(eslint@9.22.0(jiti@2.4.2)) - eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@9.22.0(jiti@2.4.2)) - optionalDependencies: - typescript: 5.8.3 - transitivePeerDependencies: - - eslint-import-resolver-webpack - - eslint-plugin-import-x - - supports-color - - eslint-config-prettier@9.1.0(eslint@9.22.0(jiti@2.4.2)): - dependencies: - eslint: 9.22.0(jiti@2.4.2) - eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 @@ -11522,33 +11460,32 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.31.0)(eslint@9.22.0(jiti@2.4.2)): + eslint-import-resolver-typescript@4.3.5(eslint-plugin-import@2.31.0)(eslint@9.27.0(jiti@2.4.2)): dependencies: - '@nolyfill/is-core-module': 1.0.39 debug: 4.4.1 - eslint: 9.22.0(jiti@2.4.2) - get-tsconfig: 4.10.0 + eslint: 9.27.0(jiti@2.4.2) + get-tsconfig: 4.10.1 is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.13 unrs-resolver: 1.7.2 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.22.0(jiti@2.4.2)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@4.3.5)(eslint@9.27.0(jiti@2.4.2)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.22.0(jiti@2.4.2)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.3.5)(eslint@9.27.0(jiti@2.4.2)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.22.0(jiti@2.4.2) + '@typescript-eslint/parser': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.27.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0)(eslint@9.22.0(jiti@2.4.2)) + eslint-import-resolver-typescript: 4.3.5(eslint-plugin-import@2.31.0)(eslint@9.27.0(jiti@2.4.2)) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.22.0(jiti@2.4.2)): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@4.3.5)(eslint@9.27.0(jiti@2.4.2)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -11557,9 +11494,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.27.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.22.0(jiti@2.4.2)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.3.5)(eslint@9.27.0(jiti@2.4.2)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -11571,58 +11508,37 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsx-a11y@6.10.2(eslint@9.22.0(jiti@2.4.2)): + eslint-plugin-react-hooks@5.2.0(eslint@9.27.0(jiti@2.4.2)): dependencies: - aria-query: 5.3.2 - array-includes: 3.1.8 - array.prototype.flatmap: 1.3.3 - ast-types-flow: 0.0.8 - axe-core: 4.10.3 - axobject-query: 4.1.0 - damerau-levenshtein: 1.0.8 - emoji-regex: 9.2.2 - eslint: 9.22.0(jiti@2.4.2) - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - language-tags: 1.0.9 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - safe-regex-test: 1.1.0 - string.prototype.includes: 2.0.1 + eslint: 9.27.0(jiti@2.4.2) - eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705(eslint@9.22.0(jiti@2.4.2)): - dependencies: - eslint: 9.22.0(jiti@2.4.2) - - eslint-plugin-react-hooks@5.2.0(eslint@9.22.0(jiti@2.4.2)): - dependencies: - eslint: 9.22.0(jiti@2.4.2) - - eslint-plugin-react@7.33.2(eslint@9.22.0(jiti@2.4.2)): + eslint-plugin-react@7.37.5(eslint@9.27.0(jiti@2.4.2)): dependencies: array-includes: 3.1.8 + array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.3 array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.1 - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.27.0(jiti@2.4.2) estraverse: 5.3.0 + hasown: 2.0.2 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 object.entries: 1.1.9 object.fromentries: 2.0.8 - object.hasown: 1.1.4 object.values: 1.2.1 prop-types: 15.8.1 resolve: 2.0.0-next.5 semver: 6.3.1 string.prototype.matchall: 4.0.12 + string.prototype.repeat: 1.0.0 eslint-scope@8.3.0: dependencies: @@ -11633,16 +11549,16 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.22.0(jiti@2.4.2): + eslint@9.27.0(jiti@2.4.2): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.22.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.19.2 - '@eslint/config-helpers': 0.1.0 - '@eslint/core': 0.12.0 - '@eslint/eslintrc': 3.3.0 - '@eslint/js': 9.22.0 - '@eslint/plugin-kit': 0.2.8 + '@eslint/config-array': 0.20.0 + '@eslint/config-helpers': 0.2.2 + '@eslint/core': 0.14.0 + '@eslint/eslintrc': 3.3.1 + '@eslint/js': 9.27.0 + '@eslint/plugin-kit': 0.3.1 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 @@ -11929,6 +11845,10 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 + get-tsconfig@4.10.1: + dependencies: + resolve-pkg-maps: 1.0.0 + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -11939,14 +11859,6 @@ snapshots: glob-to-regexp@0.4.1: {} - glob@10.3.10: - dependencies: - foreground-child: 3.3.1 - jackspeak: 2.3.6 - minimatch: 9.0.5 - minipass: 7.1.2 - path-scurry: 1.11.1 - glob@10.4.5: dependencies: foreground-child: 3.3.1 @@ -12065,13 +11977,13 @@ snapshots: dependencies: react-is: 16.13.1 - hono-party@0.0.12(@cloudflare/workers-types@4.20250514.0)(hono@4.7.9)(partyserver@0.0.71(@cloudflare/workers-types@4.20250514.0)): + hono-party@0.0.12(@cloudflare/workers-types@4.20250514.0)(hono@4.7.10)(partyserver@0.0.71(@cloudflare/workers-types@4.20250514.0)): dependencies: '@cloudflare/workers-types': 4.20250514.0 - hono: 4.7.9 + hono: 4.7.10 partyserver: 0.0.71(@cloudflare/workers-types@4.20250514.0) - hono@4.7.9: {} + hono@4.7.10: {} hosted-git-info@6.1.3: dependencies: @@ -12125,6 +12037,8 @@ snapshots: ignore@5.3.2: {} + ignore@7.0.4: {} + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 @@ -12319,12 +12233,6 @@ snapshots: has-symbols: 1.1.0 set-function-name: 2.0.2 - jackspeak@2.3.6: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 @@ -12333,8 +12241,7 @@ snapshots: jiti@1.21.7: {} - jiti@2.4.2: - optional: true + jiti@2.4.2: {} jose@5.10.0: {} @@ -12438,12 +12345,6 @@ snapshots: kysely@0.28.2: {} - language-subtag-registry@0.3.23: {} - - language-tags@1.0.9: - dependencies: - language-subtag-registry: 0.3.23 - leac@0.6.0: {} levn@0.4.1: @@ -12793,23 +12694,6 @@ snapshots: js-base64: 3.7.7 mime-types: 2.1.35 - miniflare@4.20250508.0: - dependencies: - '@cspotcode/source-map-support': 0.8.1 - acorn: 8.14.0 - acorn-walk: 8.3.2 - exit-hook: 2.2.1 - glob-to-regexp: 0.4.1 - stoppable: 1.1.0 - undici: 5.29.0 - workerd: 1.20250508.0 - ws: 8.18.0 - youch: 3.3.4 - zod: 3.22.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - miniflare@4.20250508.3: dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -12939,7 +12823,7 @@ snapshots: '@next/swc-win32-arm64-msvc': 15.3.2 '@next/swc-win32-x64-msvc': 15.3.2 '@opentelemetry/api': 1.9.0 - sharp: 0.34.1 + sharp: 0.34.2 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -13071,12 +12955,6 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.23.9 - object.hasown@1.1.4: - dependencies: - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - object.values@1.2.1: dependencies: call-bind: 1.0.8 @@ -13963,7 +13841,7 @@ snapshots: safer-buffer@2.1.2: optional: true - sanitize-html@2.16.0: + sanitize-html@2.17.0: dependencies: deepmerge: 4.3.1 escape-string-regexp: 4.0.0 @@ -14096,14 +13974,14 @@ snapshots: '@img/sharp-win32-ia32': 0.33.5 '@img/sharp-win32-x64': 0.33.5 - sharp@0.34.1: + sharp@0.34.2: dependencies: color: 4.2.3 detect-libc: 2.0.4 semver: 7.7.2 optionalDependencies: - '@img/sharp-darwin-arm64': 0.34.1 - '@img/sharp-darwin-x64': 0.34.1 + '@img/sharp-darwin-arm64': 0.34.2 + '@img/sharp-darwin-x64': 0.34.2 '@img/sharp-libvips-darwin-arm64': 1.1.0 '@img/sharp-libvips-darwin-x64': 1.1.0 '@img/sharp-libvips-linux-arm': 1.1.0 @@ -14113,15 +13991,16 @@ snapshots: '@img/sharp-libvips-linux-x64': 1.1.0 '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 '@img/sharp-libvips-linuxmusl-x64': 1.1.0 - '@img/sharp-linux-arm': 0.34.1 - '@img/sharp-linux-arm64': 0.34.1 - '@img/sharp-linux-s390x': 0.34.1 - '@img/sharp-linux-x64': 0.34.1 - '@img/sharp-linuxmusl-arm64': 0.34.1 - '@img/sharp-linuxmusl-x64': 0.34.1 - '@img/sharp-wasm32': 0.34.1 - '@img/sharp-win32-ia32': 0.34.1 - '@img/sharp-win32-x64': 0.34.1 + '@img/sharp-linux-arm': 0.34.2 + '@img/sharp-linux-arm64': 0.34.2 + '@img/sharp-linux-s390x': 0.34.2 + '@img/sharp-linux-x64': 0.34.2 + '@img/sharp-linuxmusl-arm64': 0.34.2 + '@img/sharp-linuxmusl-x64': 0.34.2 + '@img/sharp-wasm32': 0.34.2 + '@img/sharp-win32-arm64': 0.34.2 + '@img/sharp-win32-ia32': 0.34.2 + '@img/sharp-win32-x64': 0.34.2 optional: true shebang-command@2.0.0: @@ -14265,18 +14144,12 @@ snapshots: string.prototype.codepointat@0.2.1: {} - string.prototype.includes@2.0.1: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - string.prototype.matchall@4.0.12: dependencies: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.23.10 es-errors: 1.3.0 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 @@ -14287,6 +14160,11 @@ snapshots: set-function-name: 2.0.2 side-channel: 1.1.0 + string.prototype.repeat@1.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.10 + string.prototype.trim@1.2.10: dependencies: call-bind: 1.0.8 @@ -14585,6 +14463,16 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 + typescript-eslint@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.27.0(jiti@2.4.2) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + typescript@5.8.2: {} typescript@5.8.3: {} @@ -14610,14 +14498,6 @@ snapshots: undici@6.21.3: {} - unenv@2.0.0-rc.15: - dependencies: - defu: 6.1.4 - exsolve: 1.0.5 - ohash: 2.0.11 - pathe: 2.0.3 - ufo: 1.6.1 - unenv@2.0.0-rc.17: dependencies: defu: 6.1.4 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 00d0f87a8..358901b4d 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -3,14 +3,14 @@ packages: - packages/* - scripts/* catalog: - zod: "^3.24.4" - better-auth: "^1.2.8" - autumn-js: "^0.0.36" - superjson: "^2.2.2" - "@trpc/server": "^11.1.2" - "@trpc/client": "^11.1.2" - "@trpc/tanstack-react-query": "^11.1.2" - wrangler: "^4.16.0" - typescript: "^5.8.3" + zod: ^3.24.4 + better-auth: ^1.2.8 + autumn-js: ^0.0.36 + superjson: ^2.2.2 + '@trpc/server': ^11.1.2 + '@trpc/client': ^11.1.2 + '@trpc/tanstack-react-query': ^11.1.2 + wrangler: ^4.16.0 + typescript: ^5.8.3 patchedDependencies: novel: patches/novel.patch \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 98e8ff3de..1f1a71446 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,3 +1,3 @@ { - "extends": "@zero/tsconfig/base.json" + "extends": "@zero/tsconfig/base" }