secure: bump next version

This commit is contained in:
Oleg Proskurin 2025-12-14 23:55:47 +07:00
parent d798faec41
commit 257131c12d
22 changed files with 115 additions and 190 deletions

View File

@ -12,7 +12,7 @@
"dependencies": { "dependencies": {
"@banatie/database": "workspace:*", "@banatie/database": "workspace:*",
"lucide-react": "^0.400.0", "lucide-react": "^0.400.0",
"next": "15.5.4", "next": "15.5.9",
"react": "19.1.0", "react": "19.1.0",
"react-dom": "19.1.0" "react-dom": "19.1.0"
}, },

View File

@ -1,19 +1,14 @@
'use client'; 'use client';
import { ReactNode } from 'react';
import { usePathname } from 'next/navigation'; import { usePathname } from 'next/navigation';
import { SubsectionNav } from '@/components/shared/SubsectionNav'; import { SubsectionNav } from '@/components/shared/SubsectionNav';
interface AdminLayoutProps {
children: ReactNode;
}
const navItems = [ const navItems = [
{ label: 'Master Key', href: '/admin/master' }, { label: 'Master Key', href: '/admin/master' },
{ label: 'API Keys', href: '/admin/apikeys' }, { label: 'API Keys', href: '/admin/apikeys' },
]; ];
export default function AdminLayout({ children }: AdminLayoutProps) { export default function AdminLayout({ children }: { children: React.ReactNode }) {
const pathname = usePathname(); const pathname = usePathname();
return ( return (

View File

@ -1,22 +1,17 @@
'use client'; 'use client';
import { ReactNode } from 'react';
import { usePathname } from 'next/navigation'; import { usePathname } from 'next/navigation';
import { ApiKeyWidget } from '@/components/shared/ApiKeyWidget/apikey-widget'; import { ApiKeyWidget } from '@/components/shared/ApiKeyWidget/apikey-widget';
import { ApiKeyProvider } from '@/components/shared/ApiKeyWidget/apikey-context'; import { ApiKeyProvider } from '@/components/shared/ApiKeyWidget/apikey-context';
import { PageProvider } from '@/contexts/page-context'; import { PageProvider } from '@/contexts/page-context';
interface DemoLayoutProps {
children: ReactNode;
}
const navItems = [ const navItems = [
{ label: 'Text to Image', href: '/demo/tti' }, { label: 'Text to Image', href: '/demo/tti' },
{ label: 'Upload', href: '/demo/upload' }, { label: 'Upload', href: '/demo/upload' },
{ label: 'Gallery', href: '/demo/gallery' }, { label: 'Gallery', href: '/demo/gallery' },
]; ];
export default function DemoLayout({ children }: DemoLayoutProps) { export default function DemoLayout({ children }: { children: React.ReactNode }) {
const pathname = usePathname(); const pathname = usePathname();
return ( return (

View File

@ -1,6 +1,5 @@
'use client'; 'use client';
import { ReactNode } from 'react';
import { usePathname } from 'next/navigation'; import { usePathname } from 'next/navigation';
import { DocsSidebar } from '@/components/docs/layout/DocsSidebar'; import { DocsSidebar } from '@/components/docs/layout/DocsSidebar';
import { ThreeColumnLayout } from '@/components/layout/ThreeColumnLayout'; import { ThreeColumnLayout } from '@/components/layout/ThreeColumnLayout';
@ -8,41 +7,13 @@ import { ApiKeyWidget } from '@/components/shared/ApiKeyWidget/apikey-widget';
import { ApiKeyProvider } from '@/components/shared/ApiKeyWidget/apikey-context'; import { ApiKeyProvider } from '@/components/shared/ApiKeyWidget/apikey-context';
import { PageProvider } from '@/contexts/page-context'; import { PageProvider } from '@/contexts/page-context';
/**
* Root Documentation Layout
*
* Provides shared layout elements for all documentation pages:
* - SubsectionNav at the top
* - Three-column layout (left sidebar + content + right TOC via DocPage)
* - Background gradients
*
* Uses ThreeColumnLayout for consistent column structure:
* - Left: DocsSidebar (w-64, hidden lg:block)
* - Center: Page content (flex-1)
* - Right: Handled by DocPage component
*
* Pages handle their own:
* - Breadcrumbs (manually specified)
* - Article content
* - TOC sidebar (on the right via DocPage)
*
* Features:
* - Animated gradient background matching landing page
* - Automatic active page detection via pathname
* - Responsive layout (mobile tablet desktop)
*/
interface DocsRootLayoutProps {
children: ReactNode;
}
const navItems = [ const navItems = [
{ label: 'Documentation', href: '/docs' }, { label: 'Documentation', href: '/docs' },
{ label: 'Demo', href: '/demo' }, { label: 'Demo', href: '/demo' },
{ label: 'Examples', href: '/docs/examples' }, { label: 'Examples', href: '/docs/examples' },
]; ];
export default function DocsRootLayout({ children }: DocsRootLayoutProps) { export default function DocsRootLayout({ children }: { children: React.ReactNode }) {
const pathname = usePathname(); const pathname = usePathname();
return ( return (

View File

@ -1,6 +1,6 @@
import { useState, useEffect, ReactNode } from 'react'; import { useState, useEffect } from 'react';
export default function GlowEffect({ children }: { children: ReactNode }) { export default function GlowEffect({ children }: { children: React.ReactNode }) {
const [isPropertyRegistered, setIsPropertyRegistered] = useState(false); const [isPropertyRegistered, setIsPropertyRegistered] = useState(false);
// Register CSS property in component body (before render) // Register CSS property in component body (before render)

View File

@ -129,8 +129,6 @@
* /> * />
*/ */
import { ReactNode } from 'react';
/** /**
* Size variant determining the visual scale of the hero * Size variant determining the visual scale of the hero
*/ */
@ -143,7 +141,7 @@ export interface HeroProps {
/** The main page title (renders as h1) */ /** The main page title (renders as h1) */
title: string; title: string;
/** Supporting description or context */ /** Supporting description or context */
subtitle: string | ReactNode; subtitle: string | React.ReactNode;
/** Size variant (default: 'default') */ /** Size variant (default: 'default') */
size?: HeroSize; size?: HeroSize;
/** Optional CSS class name for additional styling */ /** Optional CSS class name for additional styling */

View File

@ -103,8 +103,6 @@
* <InlineCode color="primary">apiKey</InlineCode> * <InlineCode color="primary">apiKey</InlineCode>
*/ */
import { ReactNode } from 'react';
/** /**
* Semantic color variants for inline code * Semantic color variants for inline code
*/ */
@ -115,7 +113,7 @@ export type InlineCodeColor = 'primary' | 'success' | 'error' | 'neutral';
*/ */
export interface InlineCodeProps { export interface InlineCodeProps {
/** The code content to display */ /** The code content to display */
children: ReactNode; children: React.ReactNode;
/** Semantic color variant (default: 'primary') */ /** Semantic color variant (default: 'primary') */
color?: InlineCodeColor; color?: InlineCodeColor;
/** Optional CSS class name for additional styling */ /** Optional CSS class name for additional styling */

View File

@ -167,8 +167,6 @@
* </LinkCardGrid> * </LinkCardGrid>
*/ */
import { ReactNode } from 'react';
/** /**
* Column configuration for the grid * Column configuration for the grid
*/ */
@ -181,7 +179,7 @@ export interface LinkCardGridProps {
/** Number of columns at tablet/desktop breakpoints */ /** Number of columns at tablet/desktop breakpoints */
columns?: GridColumns; columns?: GridColumns;
/** LinkCard components to display in the grid */ /** LinkCard components to display in the grid */
children: ReactNode; children: React.ReactNode;
/** Optional CSS class name for additional styling */ /** Optional CSS class name for additional styling */
className?: string; className?: string;
} }

View File

@ -103,7 +103,6 @@
* <MethodBadge method="POST" size="md" /> * <MethodBadge method="POST" size="md" />
*/ */
import { ReactNode } from 'react';
/** /**
* HTTP method types following REST conventions * HTTP method types following REST conventions

View File

@ -137,8 +137,6 @@
* </SectionHeader> * </SectionHeader>
*/ */
import { ReactNode } from 'react';
/** /**
* Heading level determining HTML tag and visual styling * Heading level determining HTML tag and visual styling
*/ */
@ -151,7 +149,7 @@ export interface SectionHeaderProps {
/** Heading level (h2 or h3) for semantic structure */ /** Heading level (h2 or h3) for semantic structure */
level: SectionHeaderLevel; level: SectionHeaderLevel;
/** The heading text content */ /** The heading text content */
children: ReactNode; children: React.ReactNode;
/** Optional ID for anchor linking and table of contents */ /** Optional ID for anchor linking and table of contents */
id?: string; id?: string;
/** Optional CSS class name for additional styling (e.g., custom margins) */ /** Optional CSS class name for additional styling (e.g., custom margins) */

View File

@ -95,8 +95,6 @@
* <StatusBadge status="success" size="md">200 Success</StatusBadge> * <StatusBadge status="success" size="md">200 Success</StatusBadge>
*/ */
import { ReactNode } from 'react';
/** /**
* Semantic status type representing the meaning/severity of the badge * Semantic status type representing the meaning/severity of the badge
*/ */
@ -114,7 +112,7 @@ export interface StatusBadgeProps {
/** The semantic status that determines color and meaning */ /** The semantic status that determines color and meaning */
status: StatusType; status: StatusType;
/** The content to display inside the badge */ /** The content to display inside the badge */
children: ReactNode; children: React.ReactNode;
/** Size variant (default: 'md') */ /** Size variant (default: 'md') */
size?: StatusSize; size?: StatusSize;
/** Optional CSS class name for additional styling */ /** Optional CSS class name for additional styling */

View File

@ -29,7 +29,6 @@
* ``` * ```
*/ */
import { ReactNode } from 'react';
import { Breadcrumb } from '@/components/docs/shared/Breadcrumb'; import { Breadcrumb } from '@/components/docs/shared/Breadcrumb';
import { DocsTOC } from '@/components/docs/layout/DocsTOC'; import { DocsTOC } from '@/components/docs/layout/DocsTOC';
import { SectionHeader, LinkCard, LinkCardGrid } from '@/components/docs/blocks'; import { SectionHeader, LinkCard, LinkCardGrid } from '@/components/docs/blocks';
@ -81,7 +80,7 @@ export interface DocPageProps {
}; };
/** Page content (Hero, sections, etc.) */ /** Page content (Hero, sections, etc.) */
children: ReactNode; children: React.ReactNode;
} }
/** /**

View File

@ -24,12 +24,10 @@
* - Accessibility compliant (WCAG 2.1 AA) * - Accessibility compliant (WCAG 2.1 AA)
*/ */
import { ReactNode } from 'react';
interface DocsLayoutProps { interface DocsLayoutProps {
sidebar: ReactNode; sidebar: React.ReactNode;
children: ReactNode; children: React.ReactNode;
toc: ReactNode; toc: React.ReactNode;
} }
export const DocsLayout = ({ sidebar, children, toc }: DocsLayoutProps) => { export const DocsLayout = ({ sidebar, children, toc }: DocsLayoutProps) => {

View File

@ -21,11 +21,9 @@
* /> * />
*/ */
import { ReactNode } from 'react';
interface TableProps { interface TableProps {
headers: string[]; headers: string[];
rows: (string | ReactNode)[][]; rows: (string | React.ReactNode)[][];
sortable?: boolean; sortable?: boolean;
} }

View File

@ -30,13 +30,11 @@
* </TipBox> * </TipBox>
*/ */
import { ReactNode } from 'react';
type TipType = 'info' | 'warning' | 'success'; type TipType = 'info' | 'warning' | 'success';
type TipVariant = 'compact' | 'prominent'; type TipVariant = 'compact' | 'prominent';
interface TipBoxProps { interface TipBoxProps {
children: ReactNode; children: React.ReactNode;
variant?: TipVariant; variant?: TipVariant;
type?: TipType; type?: TipType;
} }

View File

@ -39,20 +39,18 @@
* - Optional columns enable 1, 2, or 3 column layouts * - Optional columns enable 1, 2, or 3 column layouts
*/ */
import { ReactNode } from 'react';
/** /**
* Props for ThreeColumnLayout component * Props for ThreeColumnLayout component
*/ */
export interface ThreeColumnLayoutProps { export interface ThreeColumnLayoutProps {
/** Left column content (w-64, hidden until lg breakpoint) */ /** Left column content (w-64, hidden until lg breakpoint) */
left?: ReactNode; left?: React.ReactNode;
/** Center column content (flex-1, always visible) */ /** Center column content (flex-1, always visible) */
center: ReactNode; center: React.ReactNode;
/** Right column content (w-56, hidden until xl breakpoint) */ /** Right column content (w-56, hidden until xl breakpoint) */
right?: ReactNode; right?: React.ReactNode;
/** Additional classes for left column */ /** Additional classes for left column */
leftClassName?: string; leftClassName?: string;

View File

@ -1,7 +1,5 @@
import { ReactNode } from 'react';
interface NarrowSectionProps { interface NarrowSectionProps {
children: ReactNode; children: React.ReactNode;
className?: string; className?: string;
bgClassName?: string; bgClassName?: string;
} }

View File

@ -1,7 +1,5 @@
import { ReactNode } from 'react';
interface SectionProps { interface SectionProps {
children: ReactNode; children: React.ReactNode;
className?: string; className?: string;
bgClassName?: string; bgClassName?: string;
} }

View File

@ -23,7 +23,7 @@
* /> * />
*/ */
import { useState, ReactNode } from 'react'; import { useState } from 'react';
import { ThreeColumnLayout } from '@/components/layout/ThreeColumnLayout'; import { ThreeColumnLayout } from '@/components/layout/ThreeColumnLayout';
interface NavItem { interface NavItem {
@ -38,9 +38,9 @@ interface SubsectionNavProps {
ctaHref?: string; ctaHref?: string;
onCtaClick?: () => void; onCtaClick?: () => void;
/** Optional content for left column (w-64, hidden until lg) */ /** Optional content for left column (w-64, hidden until lg) */
leftSlot?: ReactNode; leftSlot?: React.ReactNode;
/** Optional content for right column (w-56, hidden until xl) */ /** Optional content for right column (w-56, hidden until xl) */
rightSlot?: ReactNode; rightSlot?: React.ReactNode;
} }
export const SubsectionNav = ({ items, currentPath, leftSlot, rightSlot }: SubsectionNavProps) => { export const SubsectionNav = ({ items, currentPath, leftSlot, rightSlot }: SubsectionNavProps) => {

View File

@ -1,6 +1,6 @@
'use client'; 'use client';
import { createContext, useContext, useState, useEffect, ReactNode } from 'react'; import { createContext, useContext, useState, useEffect } from 'react';
import { usePathname } from 'next/navigation'; import { usePathname } from 'next/navigation';
import { SubsectionNav } from '@/components/shared/SubsectionNav'; import { SubsectionNav } from '@/components/shared/SubsectionNav';
import { CompactFooter } from '@/components/shared/CompactFooter'; import { CompactFooter } from '@/components/shared/CompactFooter';
@ -13,15 +13,15 @@ type NavItem = {
type PageContextValue = { type PageContextValue = {
isOpen: boolean; isOpen: boolean;
openModal: (content: ReactNode) => void; openModal: (content: React.ReactNode) => void;
closeModal: () => void; closeModal: () => void;
}; };
type PageProviderProps = { type PageProviderProps = {
navItems: NavItem[]; navItems: NavItem[];
currentPath: string; currentPath: string;
rightSlot?: ReactNode; rightSlot?: React.ReactNode;
children: ReactNode; children: React.ReactNode;
}; };
const PageContext = createContext<PageContextValue | null>(null); const PageContext = createContext<PageContextValue | null>(null);
@ -36,10 +36,10 @@ export const usePageContext = () => {
export const PageProvider = ({ navItems, currentPath, rightSlot, children }: PageProviderProps) => { export const PageProvider = ({ navItems, currentPath, rightSlot, children }: PageProviderProps) => {
const [isOpen, setIsOpen] = useState(false); const [isOpen, setIsOpen] = useState(false);
const [modalContent, setModalContent] = useState<ReactNode | null>(null); const [modalContent, setModalContent] = useState<React.ReactNode | null>(null);
const pathname = usePathname(); const pathname = usePathname();
const openModal = (content: ReactNode) => { const openModal = (content: React.ReactNode) => {
setIsOpen(true); setIsOpen(true);
setModalContent(content); setModalContent(content);
}; };

View File

@ -34,6 +34,12 @@
], ],
"author": "", "author": "",
"license": "MIT", "license": "MIT",
"pnpm": {
"overrides": {
"@types/react": "19.1.6",
"@types/react-dom": "19.1.5"
}
},
"devDependencies": { "devDependencies": {
"@vitest/ui": "^3.2.4", "@vitest/ui": "^3.2.4",
"eslint-config-prettier": "^9.1.2", "eslint-config-prettier": "^9.1.2",

View File

@ -4,6 +4,10 @@ settings:
autoInstallPeers: true autoInstallPeers: true
excludeLinksFromLockfile: false excludeLinksFromLockfile: false
overrides:
'@types/react': 19.1.6
'@types/react-dom': 19.1.5
importers: importers:
.: .:
@ -42,11 +46,11 @@ importers:
specifier: ^20.0.0 specifier: ^20.0.0
version: 20.19.17 version: 20.19.17
'@types/react': '@types/react':
specifier: ^18.2.0 specifier: 19.1.6
version: 18.3.24 version: 19.1.6
'@types/react-dom': '@types/react-dom':
specifier: ^18.2.0 specifier: 19.1.5
version: 18.3.7(@types/react@18.3.24) version: 19.1.5(@types/react@19.1.6)
lucide-react: lucide-react:
specifier: ^0.400.0 specifier: ^0.400.0
version: 0.400.0(react@18.3.1) version: 0.400.0(react@18.3.1)
@ -104,7 +108,7 @@ importers:
version: 17.2.2 version: 17.2.2
drizzle-orm: drizzle-orm:
specifier: ^0.36.4 specifier: ^0.36.4
version: 0.36.4(@types/react@19.1.16)(postgres@3.4.7)(react@19.1.0) version: 0.36.4(@types/react@19.1.6)(postgres@3.4.7)(react@19.1.0)
express: express:
specifier: ^5.1.0 specifier: ^5.1.0
version: 5.1.0 version: 5.1.0
@ -200,8 +204,8 @@ importers:
specifier: ^0.400.0 specifier: ^0.400.0
version: 0.400.0(react@19.1.0) version: 0.400.0(react@19.1.0)
next: next:
specifier: 15.5.4 specifier: 15.5.9
version: 15.5.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) version: 15.5.9(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
react: react:
specifier: 19.1.0 specifier: 19.1.0
version: 19.1.0 version: 19.1.0
@ -216,11 +220,11 @@ importers:
specifier: ^20 specifier: ^20
version: 20.19.17 version: 20.19.17
'@types/react': '@types/react':
specifier: ^19 specifier: 19.1.6
version: 19.1.16 version: 19.1.6
'@types/react-dom': '@types/react-dom':
specifier: ^19 specifier: 19.1.5
version: 19.1.9(@types/react@19.1.16) version: 19.1.5(@types/react@19.1.6)
tailwindcss: tailwindcss:
specifier: ^4 specifier: ^4
version: 4.1.13 version: 4.1.13
@ -243,11 +247,11 @@ importers:
specifier: ^20.0.0 specifier: ^20.0.0
version: 20.19.17 version: 20.19.17
'@types/react': '@types/react':
specifier: ^18.2.0 specifier: 19.1.6
version: 18.3.24 version: 19.1.6
'@types/react-dom': '@types/react-dom':
specifier: ^18.2.0 specifier: 19.1.5
version: 18.3.7(@types/react@18.3.24) version: 19.1.5(@types/react@19.1.6)
next: next:
specifier: ^14.2.0 specifier: ^14.2.0
version: 14.2.33(react-dom@18.3.1(react@18.3.1))(react@18.3.1) version: 14.2.33(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@ -290,7 +294,7 @@ importers:
dependencies: dependencies:
drizzle-orm: drizzle-orm:
specifier: ^0.36.4 specifier: ^0.36.4
version: 0.36.4(@types/react@19.1.16)(postgres@3.4.7)(react@19.1.0) version: 0.36.4(@types/react@19.1.6)(postgres@3.4.7)(react@19.1.0)
postgres: postgres:
specifier: ^3.4.3 specifier: ^3.4.3
version: 3.4.7 version: 3.4.7
@ -1271,8 +1275,8 @@ packages:
'@next/env@14.2.33': '@next/env@14.2.33':
resolution: {integrity: sha512-CgVHNZ1fRIlxkLhIX22flAZI/HmpDaZ8vwyJ/B0SDPTBuLZ1PJ+DWMjCHhqnExfmSQzA/PbZi8OAc7PAq2w9IA==} resolution: {integrity: sha512-CgVHNZ1fRIlxkLhIX22flAZI/HmpDaZ8vwyJ/B0SDPTBuLZ1PJ+DWMjCHhqnExfmSQzA/PbZi8OAc7PAq2w9IA==}
'@next/env@15.5.4': '@next/env@15.5.9':
resolution: {integrity: sha512-27SQhYp5QryzIT5uO8hq99C69eLQ7qkzkDPsk3N+GuS2XgOgoYEeOav7Pf8Tn4drECOVDsDg8oj+/DVy8qQL2A==} resolution: {integrity: sha512-4GlTZ+EJM7WaW2HEZcyU317tIQDjkQIyENDLxYJfSWlfqguN+dHkZgyQTV/7ykvobU7yEH5gKvreNrH4B6QgIg==}
'@next/eslint-plugin-next@14.2.33': '@next/eslint-plugin-next@14.2.33':
resolution: {integrity: sha512-DQTJFSvlB+9JilwqMKJ3VPByBNGxAGFTfJ7BuFj25cVcbBy7jm88KfUN+dngM4D3+UxZ8ER2ft+WH9JccMvxyg==} resolution: {integrity: sha512-DQTJFSvlB+9JilwqMKJ3VPByBNGxAGFTfJ7BuFj25cVcbBy7jm88KfUN+dngM4D3+UxZ8ER2ft+WH9JccMvxyg==}
@ -1283,8 +1287,8 @@ packages:
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
'@next/swc-darwin-arm64@15.5.4': '@next/swc-darwin-arm64@15.5.7':
resolution: {integrity: sha512-nopqz+Ov6uvorej8ndRX6HlxCYWCO3AHLfKK2TYvxoSB2scETOcfm/HSS3piPqc3A+MUgyHoqE6je4wnkjfrOA==} resolution: {integrity: sha512-IZwtxCEpI91HVU/rAUOOobWSZv4P2DeTtNaCdHqLcTJU4wdNXgAySvKa/qJCgR5m6KI8UsKDXtO2B31jcaw1Yw==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
@ -1295,8 +1299,8 @@ packages:
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
'@next/swc-darwin-x64@15.5.4': '@next/swc-darwin-x64@15.5.7':
resolution: {integrity: sha512-QOTCFq8b09ghfjRJKfb68kU9k2K+2wsC4A67psOiMn849K9ZXgCSRQr0oVHfmKnoqCbEmQWG1f2h1T2vtJJ9mA==} resolution: {integrity: sha512-UP6CaDBcqaCBuiq/gfCEJw7sPEoX1aIjZHnBWN9v9qYHQdMKvCKcAVs4OX1vIjeE+tC5EIuwDTVIoXpUes29lg==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
@ -1307,8 +1311,8 @@ packages:
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@next/swc-linux-arm64-gnu@15.5.4': '@next/swc-linux-arm64-gnu@15.5.7':
resolution: {integrity: sha512-eRD5zkts6jS3VfE/J0Kt1VxdFqTnMc3QgO5lFE5GKN3KDI/uUpSyK3CjQHmfEkYR4wCOl0R0XrsjpxfWEA++XA==} resolution: {integrity: sha512-NCslw3GrNIw7OgmRBxHtdWFQYhexoUCq+0oS2ccjyYLtcn1SzGzeM54jpTFonIMUjNbHmpKpziXnpxhSWLcmBA==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
@ -1319,8 +1323,8 @@ packages:
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@next/swc-linux-arm64-musl@15.5.4': '@next/swc-linux-arm64-musl@15.5.7':
resolution: {integrity: sha512-TOK7iTxmXFc45UrtKqWdZ1shfxuL4tnVAOuuJK4S88rX3oyVV4ZkLjtMT85wQkfBrOOvU55aLty+MV8xmcJR8A==} resolution: {integrity: sha512-nfymt+SE5cvtTrG9u1wdoxBr9bVB7mtKTcj0ltRn6gkP/2Nu1zM5ei8rwP9qKQP0Y//umK+TtkKgNtfboBxRrw==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
@ -1331,8 +1335,8 @@ packages:
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@next/swc-linux-x64-gnu@15.5.4': '@next/swc-linux-x64-gnu@15.5.7':
resolution: {integrity: sha512-7HKolaj+481FSW/5lL0BcTkA4Ueam9SPYWyN/ib/WGAFZf0DGAN8frNpNZYFHtM4ZstrHZS3LY3vrwlIQfsiMA==} resolution: {integrity: sha512-hvXcZvCaaEbCZcVzcY7E1uXN9xWZfFvkNHwbe/n4OkRhFWrs1J1QV+4U1BN06tXLdaS4DazEGXwgqnu/VMcmqw==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
@ -1343,8 +1347,8 @@ packages:
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@next/swc-linux-x64-musl@15.5.4': '@next/swc-linux-x64-musl@15.5.7':
resolution: {integrity: sha512-nlQQ6nfgN0nCO/KuyEUwwOdwQIGjOs4WNMjEUtpIQJPR2NUfmGpW2wkJln1d4nJ7oUzd1g4GivH5GoEPBgfsdw==} resolution: {integrity: sha512-4IUO539b8FmF0odY6/SqANJdgwn1xs1GkPO5doZugwZ3ETF6JUdckk7RGmsfSf7ws8Qb2YB5It33mvNL/0acqA==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
@ -1355,8 +1359,8 @@ packages:
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
'@next/swc-win32-arm64-msvc@15.5.4': '@next/swc-win32-arm64-msvc@15.5.7':
resolution: {integrity: sha512-PcR2bN7FlM32XM6eumklmyWLLbu2vs+D7nJX8OAIoWy69Kef8mfiN4e8TUv2KohprwifdpFKPzIP1njuCjD0YA==} resolution: {integrity: sha512-CpJVTkYI3ZajQkC5vajM7/ApKJUOlm6uP4BknM3XKvJ7VXAvCqSjSLmM0LKdYzn6nBJVSjdclx8nYJSa3xlTgQ==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
@ -1373,8 +1377,8 @@ packages:
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
'@next/swc-win32-x64-msvc@15.5.4': '@next/swc-win32-x64-msvc@15.5.7':
resolution: {integrity: sha512-1ur2tSHZj8Px/KMAthmuI9FMp/YFusMMGoRNJaRZMOlSkgvLjzosSdQI0cJAKogdHl3qXUQKL9MGaYvKwA7DXg==} resolution: {integrity: sha512-gMzgBX164I6DN+9/PGA+9dQiwmTkE4TloBNx8Kv9UiGARsr9Nba7IpcBRA1iTV9vwlYnrE3Uy6I7Aj6qLjQuqw==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
@ -1843,30 +1847,19 @@ packages:
'@types/phoenix@1.6.6': '@types/phoenix@1.6.6':
resolution: {integrity: sha512-PIzZZlEppgrpoT2QgbnDU+MMzuR6BbCjllj0bM70lWoejMeNJAxCchxnv7J3XFkI8MpygtRpzXrIlmWUBclP5A==} resolution: {integrity: sha512-PIzZZlEppgrpoT2QgbnDU+MMzuR6BbCjllj0bM70lWoejMeNJAxCchxnv7J3XFkI8MpygtRpzXrIlmWUBclP5A==}
'@types/prop-types@15.7.15':
resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==}
'@types/qs@6.14.0': '@types/qs@6.14.0':
resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==}
'@types/range-parser@1.2.7': '@types/range-parser@1.2.7':
resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
'@types/react-dom@18.3.7': '@types/react-dom@19.1.5':
resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==} resolution: {integrity: sha512-CMCjrWucUBZvohgZxkjd6S9h0nZxXjzus6yDfUb+xLxYM7VvjKNH1tQrE9GWLql1XoOP4/Ds3bwFqShHUYraGg==}
peerDependencies: peerDependencies:
'@types/react': ^18.0.0 '@types/react': 19.1.6
'@types/react-dom@19.1.9': '@types/react@19.1.6':
resolution: {integrity: sha512-qXRuZaOsAdXKFyOhRBg6Lqqc0yay13vN7KrIg4L7N4aaHN68ma9OK3NE1BoDFgFOTfM7zg+3/8+2n8rLUH3OKQ==} resolution: {integrity: sha512-JeG0rEWak0N6Itr6QUx+X60uQmN+5t3j9r/OVDtWzFXKaj6kD1BwJzOksD0FF6iWxZlbE1kB0q9vtnU2ekqa1Q==}
peerDependencies:
'@types/react': ^19.0.0
'@types/react@18.3.24':
resolution: {integrity: sha512-0dLEBsA1kI3OezMBF8nSsb7Nk19ZnsyE1LLhB8r27KbgU5H4pvuqZLdtE+aUkJVoXgTVuA+iLIwmZ0TuK4tx6A==}
'@types/react@19.1.16':
resolution: {integrity: sha512-WBM/nDbEZmDUORKnh5i1bTnAz6vTohUf9b8esSMu+b24+srbaxa04UbJgWx78CVfNXA20sNu0odEIluZDFdCog==}
'@types/send@0.17.5': '@types/send@0.17.5':
resolution: {integrity: sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==} resolution: {integrity: sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==}
@ -2484,8 +2477,8 @@ packages:
engines: {node: '>=4'} engines: {node: '>=4'}
hasBin: true hasBin: true
csstype@3.1.3: csstype@3.2.3:
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==}
d3-array@3.2.4: d3-array@3.2.4:
resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==}
@ -2661,7 +2654,7 @@ packages:
'@tidbcloud/serverless': '*' '@tidbcloud/serverless': '*'
'@types/better-sqlite3': '*' '@types/better-sqlite3': '*'
'@types/pg': '*' '@types/pg': '*'
'@types/react': '>=18' '@types/react': 19.1.6
'@types/sql.js': '*' '@types/sql.js': '*'
'@vercel/postgres': '>=0.8.0' '@vercel/postgres': '>=0.8.0'
'@xata.io/client': '*' '@xata.io/client': '*'
@ -4060,8 +4053,8 @@ packages:
sass: sass:
optional: true optional: true
next@15.5.4: next@15.5.9:
resolution: {integrity: sha512-xH4Yjhb82sFYQfY3vbkJfgSDgXvBB6a8xPs9i35k6oZJRoQRihZH+4s9Yo2qsWpzBmZ3lPXaJ2KPXLfkvW4LnA==} resolution: {integrity: sha512-agNLK89seZEtC5zUHwtut0+tNrc0Xw4FT/Dg+B/VLEo9pAcS9rtTKpek3V6kVcVwsB2YlqMaHdfZL4eLEVYuCg==}
engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
@ -6132,7 +6125,7 @@ snapshots:
'@next/env@14.2.33': {} '@next/env@14.2.33': {}
'@next/env@15.5.4': {} '@next/env@15.5.9': {}
'@next/eslint-plugin-next@14.2.33': '@next/eslint-plugin-next@14.2.33':
dependencies: dependencies:
@ -6141,43 +6134,43 @@ snapshots:
'@next/swc-darwin-arm64@14.2.33': '@next/swc-darwin-arm64@14.2.33':
optional: true optional: true
'@next/swc-darwin-arm64@15.5.4': '@next/swc-darwin-arm64@15.5.7':
optional: true optional: true
'@next/swc-darwin-x64@14.2.33': '@next/swc-darwin-x64@14.2.33':
optional: true optional: true
'@next/swc-darwin-x64@15.5.4': '@next/swc-darwin-x64@15.5.7':
optional: true optional: true
'@next/swc-linux-arm64-gnu@14.2.33': '@next/swc-linux-arm64-gnu@14.2.33':
optional: true optional: true
'@next/swc-linux-arm64-gnu@15.5.4': '@next/swc-linux-arm64-gnu@15.5.7':
optional: true optional: true
'@next/swc-linux-arm64-musl@14.2.33': '@next/swc-linux-arm64-musl@14.2.33':
optional: true optional: true
'@next/swc-linux-arm64-musl@15.5.4': '@next/swc-linux-arm64-musl@15.5.7':
optional: true optional: true
'@next/swc-linux-x64-gnu@14.2.33': '@next/swc-linux-x64-gnu@14.2.33':
optional: true optional: true
'@next/swc-linux-x64-gnu@15.5.4': '@next/swc-linux-x64-gnu@15.5.7':
optional: true optional: true
'@next/swc-linux-x64-musl@14.2.33': '@next/swc-linux-x64-musl@14.2.33':
optional: true optional: true
'@next/swc-linux-x64-musl@15.5.4': '@next/swc-linux-x64-musl@15.5.7':
optional: true optional: true
'@next/swc-win32-arm64-msvc@14.2.33': '@next/swc-win32-arm64-msvc@14.2.33':
optional: true optional: true
'@next/swc-win32-arm64-msvc@15.5.4': '@next/swc-win32-arm64-msvc@15.5.7':
optional: true optional: true
'@next/swc-win32-ia32-msvc@14.2.33': '@next/swc-win32-ia32-msvc@14.2.33':
@ -6186,7 +6179,7 @@ snapshots:
'@next/swc-win32-x64-msvc@14.2.33': '@next/swc-win32-x64-msvc@14.2.33':
optional: true optional: true
'@next/swc-win32-x64-msvc@15.5.4': '@next/swc-win32-x64-msvc@15.5.7':
optional: true optional: true
'@noble/hashes@1.8.0': {} '@noble/hashes@1.8.0': {}
@ -6634,28 +6627,17 @@ snapshots:
'@types/phoenix@1.6.6': {} '@types/phoenix@1.6.6': {}
'@types/prop-types@15.7.15': {}
'@types/qs@6.14.0': {} '@types/qs@6.14.0': {}
'@types/range-parser@1.2.7': {} '@types/range-parser@1.2.7': {}
'@types/react-dom@18.3.7(@types/react@18.3.24)': '@types/react-dom@19.1.5(@types/react@19.1.6)':
dependencies: dependencies:
'@types/react': 18.3.24 '@types/react': 19.1.6
'@types/react-dom@19.1.9(@types/react@19.1.16)': '@types/react@19.1.6':
dependencies: dependencies:
'@types/react': 19.1.16 csstype: 3.2.3
'@types/react@18.3.24':
dependencies:
'@types/prop-types': 15.7.15
csstype: 3.1.3
'@types/react@19.1.16':
dependencies:
csstype: 3.1.3
'@types/send@0.17.5': '@types/send@0.17.5':
dependencies: dependencies:
@ -7398,7 +7380,7 @@ snapshots:
cssesc@3.0.0: {} cssesc@3.0.0: {}
csstype@3.1.3: {} csstype@3.2.3: {}
d3-array@3.2.4: d3-array@3.2.4:
dependencies: dependencies:
@ -7522,7 +7504,7 @@ snapshots:
dom-helpers@5.2.1: dom-helpers@5.2.1:
dependencies: dependencies:
'@babel/runtime': 7.28.4 '@babel/runtime': 7.28.4
csstype: 3.1.3 csstype: 3.2.3
dotenv@17.2.2: {} dotenv@17.2.2: {}
@ -7535,9 +7517,9 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
drizzle-orm@0.36.4(@types/react@19.1.16)(postgres@3.4.7)(react@19.1.0): drizzle-orm@0.36.4(@types/react@19.1.6)(postgres@3.4.7)(react@19.1.0):
optionalDependencies: optionalDependencies:
'@types/react': 19.1.16 '@types/react': 19.1.6
postgres: 3.4.7 postgres: 3.4.7
react: 19.1.0 react: 19.1.0
@ -7783,7 +7765,7 @@ snapshots:
eslint: 8.57.1 eslint: 8.57.1
eslint-import-resolver-node: 0.3.9 eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.44.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1))(eslint@8.57.1) eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.44.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1))(eslint@8.57.1)
eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.44.0(eslint@8.57.1)(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.44.0(eslint@8.57.1)(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.44.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1)
eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1)
eslint-plugin-react: 7.37.5(eslint@8.57.1) eslint-plugin-react: 7.37.5(eslint@8.57.1)
eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.57.1) eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.57.1)
@ -7817,7 +7799,7 @@ snapshots:
tinyglobby: 0.2.15 tinyglobby: 0.2.15
unrs-resolver: 1.11.1 unrs-resolver: 1.11.1
optionalDependencies: optionalDependencies:
eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.44.0(eslint@8.57.1)(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.44.0(eslint@8.57.1)(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.44.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -7832,7 +7814,7 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.44.0(eslint@8.57.1)(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.44.0(eslint@8.57.1)(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.44.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1):
dependencies: dependencies:
'@rtsao/scc': 1.1.0 '@rtsao/scc': 1.1.0
array-includes: 3.1.9 array-includes: 3.1.9
@ -9344,9 +9326,9 @@ snapshots:
- '@babel/core' - '@babel/core'
- babel-plugin-macros - babel-plugin-macros
next@15.5.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0): next@15.5.9(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
dependencies: dependencies:
'@next/env': 15.5.4 '@next/env': 15.5.9
'@swc/helpers': 0.5.15 '@swc/helpers': 0.5.15
caniuse-lite: 1.0.30001743 caniuse-lite: 1.0.30001743
postcss: 8.4.31 postcss: 8.4.31
@ -9354,14 +9336,14 @@ snapshots:
react-dom: 19.1.0(react@19.1.0) react-dom: 19.1.0(react@19.1.0)
styled-jsx: 5.1.6(react@19.1.0) styled-jsx: 5.1.6(react@19.1.0)
optionalDependencies: optionalDependencies:
'@next/swc-darwin-arm64': 15.5.4 '@next/swc-darwin-arm64': 15.5.7
'@next/swc-darwin-x64': 15.5.4 '@next/swc-darwin-x64': 15.5.7
'@next/swc-linux-arm64-gnu': 15.5.4 '@next/swc-linux-arm64-gnu': 15.5.7
'@next/swc-linux-arm64-musl': 15.5.4 '@next/swc-linux-arm64-musl': 15.5.7
'@next/swc-linux-x64-gnu': 15.5.4 '@next/swc-linux-x64-gnu': 15.5.7
'@next/swc-linux-x64-musl': 15.5.4 '@next/swc-linux-x64-musl': 15.5.7
'@next/swc-win32-arm64-msvc': 15.5.4 '@next/swc-win32-arm64-msvc': 15.5.7
'@next/swc-win32-x64-msvc': 15.5.4 '@next/swc-win32-x64-msvc': 15.5.7
sharp: 0.34.4 sharp: 0.34.4
transitivePeerDependencies: transitivePeerDependencies:
- '@babel/core' - '@babel/core'