+ {steps.map((step, index) => (
+
+
+
step.number
+ ? "bg-emerald-100 text-emerald-700"
+ : "bg-gray-200 text-gray-600"
+ }`}
+ >
+ {step.number}
+
+ {index < steps.length - 1 && (
+
step.number ? "bg-emerald-600" : "bg-gray-200"
+ }`}
+ />
+ )}
+
+
+ {step.title}
+
+
+ ))}
+
+
+ {/* Step 1: Basic Info */}
+ {currentStep === 1 && (
+
+
+
+
+ updateFormData("propertyName", e.target.value)}
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ updateFormData("address", e.target.value)}
+ />
+
+
+
+
+ )}
+
+ {/* Step 2: Property Details */}
+ {currentStep === 2 && (
+
+
+
+
+
+
+ updateFormData("bathrooms", e.target.value)}
+ />
+
+
+
+
+
+
+
+ )}
+
+ {/* Step 3: Financial Info */}
+ {currentStep === 3 && (
+
+ )}
+
+ {/* Step 4: Geolocation */}
+ {currentStep === 4 && (
+
+
+
+ Enter the geographic coordinates of the property for map display. You can find these using Google Maps or
+ similar services.
+
+
+ )}
+
+ {/* Step 5: Documents */}
+ {currentStep === 5 && (
+
+
+
+
+
+ Upload or list all relevant property documents. These will be available to potential investors for
+ verification.
+
+
+ )}
+
+ {/* Navigation Buttons */}
+
+
+ {currentStep < 5 ? (
+
+ ) : (
+
+ )}
+
+
+
+ )
+}
diff --git a/packages/nextjs/components/realtor-dashboard/commission-chart.tsx b/packages/nextjs/components/realtor-dashboard/commission-chart.tsx
new file mode 100644
index 0000000..6f1b1a3
--- /dev/null
+++ b/packages/nextjs/components/realtor-dashboard/commission-chart.tsx
@@ -0,0 +1,91 @@
+"use client"
+
+import { useState } from "react"
+import { Card } from "~~/components/ui/card"
+import { Button } from "~~/components/ui/button"
+import { Area, AreaChart, ResponsiveContainer, Tooltip, XAxis, YAxis } from "recharts"
+
+const data7d = [
+ { day: "Mon", earnings: 2.5 },
+ { day: "Tue", earnings: 3.2 },
+ { day: "Wed", earnings: 2.8 },
+ { day: "Thu", earnings: 4.1 },
+ { day: "Fri", earnings: 3.6 },
+ { day: "Sat", earnings: 5.2 },
+ { day: "Sun", earnings: 4.8 },
+]
+
+const data30d = [
+ { day: "Week 1", earnings: 18.5 },
+ { day: "Week 2", earnings: 22.3 },
+ { day: "Week 3", earnings: 19.8 },
+ { day: "Week 4", earnings: 25.6 },
+]
+
+const data90d = [
+ { day: "Month 1", earnings: 65.2 },
+ { day: "Month 2", earnings: 72.8 },
+ { day: "Month 3", earnings: 78.5 },
+]
+
+export function CommissionChart() {
+ const [period, setPeriod] = useState<"7d" | "30d" | "90d">("7d")
+
+ const data = period === "7d" ? data7d : period === "30d" ? data30d : data90d
+
+ return (
+
+
+
Commission Performance
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [`${value} STRK`, "Earnings"]}
+ />
+
+
+
+
+
+ )
+}
diff --git a/packages/nextjs/components/realtor-dashboard/monthly-stats.tsx b/packages/nextjs/components/realtor-dashboard/monthly-stats.tsx
new file mode 100644
index 0000000..695534d
--- /dev/null
+++ b/packages/nextjs/components/realtor-dashboard/monthly-stats.tsx
@@ -0,0 +1,24 @@
+import { Card } from "~~/components/ui/card"
+
+export function MonthlyStats() {
+ const stats = [
+ { label: "Properties Listed", value: "5" },
+ { label: "Total Investments", value: "485 STRK" },
+ { label: "Commission Earned", value: "38.8 STRK" },
+ { label: "New Investors", value: "38" },
+ ]
+
+ return (
+
+ This Month
+
+ {stats.map((stat, index) => (
+
+
{stat.label}
+
{stat.value}
+
+ ))}
+
+
+ )
+}
diff --git a/packages/nextjs/components/realtor-dashboard/quick-actions-realtor.tsx b/packages/nextjs/components/realtor-dashboard/quick-actions-realtor.tsx
new file mode 100644
index 0000000..201db46
--- /dev/null
+++ b/packages/nextjs/components/realtor-dashboard/quick-actions-realtor.tsx
@@ -0,0 +1,68 @@
+"use client"
+
+import { Plus, BarChart3, FileText, Users } from "lucide-react"
+import { Card } from "~~/components/ui/card"
+import { Button } from "~~/components/ui/button"
+
+interface QuickActionsRealtorProps {
+ onAddPropertyClick?: () => void
+}
+
+export function QuickActionsRealtor({ onAddPropertyClick }: QuickActionsRealtorProps) {
+ const actions = [
+ {
+ icon: Plus,
+ iconBg: "bg-emerald-600",
+ title: "Add Property",
+ description: "List a new property for tokenization",
+ onClick: onAddPropertyClick,
+ },
+ {
+ icon: BarChart3,
+ iconBg: "bg-blue-600",
+ title: "View Analytics",
+ description: "Check detailed performance metrics",
+ onClick: () => {}, // Placeholder for future functionality
+ },
+ {
+ icon: FileText,
+ iconBg: "bg-purple-600",
+ title: "Manage Documents",
+ description: "Upload and organize property documents",
+ onClick: () => {}, // Placeholder for future functionality
+ },
+ {
+ icon: Users,
+ iconBg: "bg-orange-600",
+ title: "Investor Relations",
+ description: "Communicate with your investors",
+ onClick: () => {}, // Placeholder for future functionality
+ },
+ ]
+
+ return (
+
+ Quick Actions
+
+ {actions.map((action, index) => (
+
+ ))}
+
+
+ )
+}
diff --git a/packages/nextjs/components/realtor-dashboard/realtor-dashboard-client.tsx b/packages/nextjs/components/realtor-dashboard/realtor-dashboard-client.tsx
new file mode 100644
index 0000000..2889c3b
--- /dev/null
+++ b/packages/nextjs/components/realtor-dashboard/realtor-dashboard-client.tsx
@@ -0,0 +1,157 @@
+"use client"
+
+import { useState } from "react"
+import { Search, Filter, Plus, Eye, Calendar } from "lucide-react"
+import { Card } from "~~/components/ui/card"
+import { Button } from "~~/components/ui/button"
+import { Input } from "~~/components/ui/input"
+import { Badge } from "~~/components/ui/badge"
+import { Progress } from "~~/components/ui/progress"
+import { properties } from "~~/data/properties-data"
+import { RealtorStats } from "./realtor-stats"
+import { CommissionChart } from "./commission-chart"
+import { RecentActivity } from "./recent-activity"
+import { QuickActionsRealtor } from "./quick-actions-realtor"
+import { MonthlyStats } from "./monthly-stats"
+import { AddPropertyModal } from "./add-property-modal"
+
+
+export function RealtorDashboardClient({ userName }: { userName: string }) {
+ const [searchQuery, setSearchQuery] = useState("")
+ const [isAddPropertyOpen, setIsAddPropertyOpen] = useState(false)
+
+ // Use our existing properties data
+ const realtorProperties = properties.map((property, index) => ({
+ ...property,
+ title: property.name, // Add this line to create a title field from name
+ investors: [45, 67, 23, 38, 52][index] || 30,
+ fundingProgress: [85, 92, 68, 75, 88][index] || 70,
+ addedDate: ["2024-01-15", "2024-01-10", "2024-01-20", "2024-01-08", "2024-01-12"][index] || "2024-01-15",
+ status: index < 2 ? "Active" : index === 2 ? "Funding" : "Active",
+}))
+
+ const filteredProperties = realtorProperties.filter((property) =>
+ property.title.toLowerCase().includes(searchQuery.toLowerCase()),
+ )
+
+ return (
+
+
+
+
Welcome back, {userName}
+
+ Manage your property listings, track commissions, and grow your business.
+
+
+
+
+
+
+
+
+
+
+
+
My Property Listings
+
+
+
+
+
+
+ setSearchQuery(e.target.value)}
+ className="pl-10 h-12"
+ />
+
+
+
+
+
+ {filteredProperties.map((property) => (
+
+
+
+
+
{property.title}
+
+ {property.status}
+
+
+
+ 📍
+ {property.location}
+
+
+
+
+
Value
+
{property.totalValue} STRK
+
+
+
+
Investors
+
{property.investors}
+
+
+
+
+
+
Funding Progress
+
{property.fundingProgress}%
+
+
+
+
+
+
+
+ Added {property.addedDate}
+
+
+
+
+
+
+ ))}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
diff --git a/packages/nextjs/components/realtor-dashboard/realtor-stats.tsx b/packages/nextjs/components/realtor-dashboard/realtor-stats.tsx
new file mode 100644
index 0000000..a858de6
--- /dev/null
+++ b/packages/nextjs/components/realtor-dashboard/realtor-stats.tsx
@@ -0,0 +1,58 @@
+import { Building2, DollarSign, Users, TrendingUp } from "lucide-react"
+import { Card } from "~~/components/ui/card"
+
+export function RealtorStats() {
+ const stats = [
+ {
+ title: "Total Properties",
+ value: "5",
+ change: "+2 this month",
+ icon: Building2,
+ iconBg: "bg-blue-100",
+ iconColor: "text-blue-600",
+ },
+ {
+ title: "Total Value",
+ value: "485 STRK",
+ change: "+15% this quarter",
+ icon: DollarSign,
+ iconBg: "bg-emerald-100",
+ iconColor: "text-emerald-600",
+ },
+ {
+ title: "Active Investors",
+ value: "225",
+ change: "+38 this week",
+ icon: Users,
+ iconBg: "bg-purple-100",
+ iconColor: "text-purple-600",
+ },
+ {
+ title: "Avg. ROI",
+ value: "8.2%",
+ change: "+0.3% vs last month",
+ icon: TrendingUp,
+ iconBg: "bg-orange-100",
+ iconColor: "text-orange-600",
+ },
+ ]
+
+ return (
+
+ {stats.map((stat) => (
+
+
+
+
{stat.title}
+
{stat.value}
+
{stat.change}
+
+
+
+
+
+
+ ))}
+
+ )
+}
diff --git a/packages/nextjs/components/realtor-dashboard/recent-activity.tsx b/packages/nextjs/components/realtor-dashboard/recent-activity.tsx
new file mode 100644
index 0000000..a53ce5d
--- /dev/null
+++ b/packages/nextjs/components/realtor-dashboard/recent-activity.tsx
@@ -0,0 +1,54 @@
+import { DollarSign, Target, Users, FileText } from "lucide-react"
+import { Card } from "~~/components/ui/card"
+
+export function RecentActivity() {
+ const activities = [
+ {
+ icon: DollarSign,
+ iconBg: "bg-emerald-100",
+ iconColor: "text-emerald-600",
+ title: "New investment of 50 STRK in Lagos Luxury Duplex",
+ time: "2 hours ago",
+ },
+ {
+ icon: Target,
+ iconBg: "bg-blue-100",
+ iconColor: "text-blue-600",
+ title: "Abuja Executive Apartments reached 92% funding",
+ time: "5 hours ago",
+ },
+ {
+ icon: Users,
+ iconBg: "bg-purple-100",
+ iconColor: "text-purple-600",
+ title: "15 new investors joined your properties today",
+ time: "1 day ago",
+ },
+ {
+ icon: FileText,
+ iconBg: "bg-orange-100",
+ iconColor: "text-orange-600",
+ title: "Property documents updated for Lekki Modern Terrace",
+ time: "2 days ago",
+ },
+ ]
+
+ return (
+
+ Recent Activity
+
+ {activities.map((activity, index) => (
+
+
+
+
{activity.title}
+
{activity.time}
+
+
+ ))}
+
+
+ )
+}
diff --git a/packages/nextjs/components/ui/radio-group.tsx b/packages/nextjs/components/ui/radio-group.tsx
new file mode 100644
index 0000000..0ddb7fc
--- /dev/null
+++ b/packages/nextjs/components/ui/radio-group.tsx
@@ -0,0 +1,44 @@
+"use client"
+
+import * as React from "react"
+import * as RadioGroupPrimitive from "@radix-ui/react-radio-group"
+import { Circle } from "lucide-react"
+
+import { cn } from "~~/lib/utils"
+
+const RadioGroup = React.forwardRef<
+ React.ElementRef
,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => {
+ return (
+
+ )
+})
+RadioGroup.displayName = RadioGroupPrimitive.Root.displayName
+
+const RadioGroupItem = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => {
+ return (
+
+
+
+
+
+ )
+})
+RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName
+
+export { RadioGroup, RadioGroupItem }
diff --git a/packages/nextjs/components/ui/select.tsx b/packages/nextjs/components/ui/select.tsx
new file mode 100644
index 0000000..c36b4ea
--- /dev/null
+++ b/packages/nextjs/components/ui/select.tsx
@@ -0,0 +1,159 @@
+"use client"
+
+import * as React from "react"
+import * as SelectPrimitive from "@radix-ui/react-select"
+import { Check, ChevronDown, ChevronUp } from "lucide-react"
+
+import { cn } from "~~/lib/utils"
+
+const Select = SelectPrimitive.Root
+
+const SelectGroup = SelectPrimitive.Group
+
+const SelectValue = SelectPrimitive.Value
+
+const SelectTrigger = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, children, ...props }, ref) => (
+ span]:line-clamp-1",
+ className
+ )}
+ {...props}
+ >
+ {children}
+
+
+
+
+))
+SelectTrigger.displayName = SelectPrimitive.Trigger.displayName
+
+const SelectScrollUpButton = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+
+
+))
+SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName
+
+const SelectScrollDownButton = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+
+
+))
+SelectScrollDownButton.displayName =
+ SelectPrimitive.ScrollDownButton.displayName
+
+const SelectContent = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, children, position = "popper", ...props }, ref) => (
+
+
+
+
+ {children}
+
+
+
+
+))
+SelectContent.displayName = SelectPrimitive.Content.displayName
+
+const SelectLabel = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+))
+SelectLabel.displayName = SelectPrimitive.Label.displayName
+
+const SelectItem = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, children, ...props }, ref) => (
+
+
+
+
+
+
+ {children}
+
+))
+SelectItem.displayName = SelectPrimitive.Item.displayName
+
+const SelectSeparator = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+))
+SelectSeparator.displayName = SelectPrimitive.Separator.displayName
+
+export {
+ Select,
+ SelectGroup,
+ SelectValue,
+ SelectTrigger,
+ SelectContent,
+ SelectLabel,
+ SelectItem,
+ SelectSeparator,
+ SelectScrollUpButton,
+ SelectScrollDownButton,
+}
diff --git a/packages/nextjs/components/ui/textarea.tsx b/packages/nextjs/components/ui/textarea.tsx
new file mode 100644
index 0000000..996d115
--- /dev/null
+++ b/packages/nextjs/components/ui/textarea.tsx
@@ -0,0 +1,22 @@
+import * as React from "react"
+
+import { cn } from "~~/lib/utils"
+
+const Textarea = React.forwardRef<
+ HTMLTextAreaElement,
+ React.ComponentProps<"textarea">
+>(({ className, ...props }, ref) => {
+ return (
+
+ )
+})
+Textarea.displayName = "Textarea"
+
+export { Textarea }
diff --git a/packages/nextjs/lib/mongodb.ts b/packages/nextjs/lib/mongodb.ts
new file mode 100644
index 0000000..9406a2d
--- /dev/null
+++ b/packages/nextjs/lib/mongodb.ts
@@ -0,0 +1,39 @@
+import { MongoClient, ServerApiVersion } from "mongodb"
+
+if (!process.env.MONGODB_URL) {
+ throw new Error('Invalid/Missing environment variable: "MONGODB_URL"')
+}
+
+const uri = process.env.MONGODB_URL
+const options = {
+ serverApi: {
+ version: ServerApiVersion.v1,
+ strict: true,
+ deprecationErrors: true,
+ },
+}
+
+let client: MongoClient
+const clientPromise: Promise = (() => {
+ if (process.env.NODE_ENV === "development") {
+ const globalWithMongo = global as typeof globalThis & {
+ _mongoClient?: MongoClient
+ }
+
+ if (!globalWithMongo._mongoClient) {
+ globalWithMongo._mongoClient = new MongoClient(uri, options)
+ }
+ client = globalWithMongo._mongoClient
+ } else {
+ client = new MongoClient(uri, options)
+ }
+
+ return client.connect()
+})()
+
+export async function getDb() {
+ const connectedClient = await clientPromise
+ return connectedClient.db(process.env.MONGODB_DB)
+}
+
+export default clientPromise
diff --git a/packages/nextjs/middleware.tsx b/packages/nextjs/middleware.tsx
new file mode 100644
index 0000000..6f3ad63
--- /dev/null
+++ b/packages/nextjs/middleware.tsx
@@ -0,0 +1,46 @@
+import { auth } from "~~/auth"
+import { NextResponse } from "next/server"
+
+export default auth((req) => {
+ const { nextUrl } = req
+ const isLoggedIn = !!req.auth
+ const userRole = req.auth?.user?.role
+
+ const isOnDashboard = nextUrl.pathname.startsWith("/dashboard")
+ const isOnInvestorDashboard = nextUrl.pathname.startsWith("/dashboard/investor")
+ const isOnRealtorDashboard = nextUrl.pathname.startsWith("/dashboard/realtor")
+ const isOnLoginPage = nextUrl.pathname === "/login"
+ const isOnSignupPage = nextUrl.pathname.startsWith("/signup")
+
+ // Allow access to login and signup pages
+ if (isOnLoginPage || isOnSignupPage) {
+ if (isLoggedIn) {
+ const dashboardUrl = userRole === "realtor" ? "/dashboard/realtor" : "/dashboard/investor"
+ return NextResponse.redirect(new URL(dashboardUrl, nextUrl))
+ }
+ return NextResponse.next()
+ }
+
+ // Protect dashboard routes
+ if (isOnDashboard) {
+ if (!isLoggedIn) {
+ const loginUrl = new URL("/login", nextUrl)
+ loginUrl.searchParams.set("callbackUrl", nextUrl.pathname)
+ return NextResponse.redirect(loginUrl)
+ }
+
+ if (isOnInvestorDashboard && userRole !== "investor") {
+ return NextResponse.redirect(new URL("/dashboard/realtor", nextUrl))
+ }
+
+ if (isOnRealtorDashboard && userRole !== "realtor") {
+ return NextResponse.redirect(new URL("/dashboard/investor", nextUrl))
+ }
+ }
+
+ return NextResponse.next()
+})
+
+export const config = {
+ matcher: ["/dashboard/:path*", "/login", "/signup/:path*"],
+}
diff --git a/packages/nextjs/package.json b/packages/nextjs/package.json
index b497d96..381ad74 100644
--- a/packages/nextjs/package.json
+++ b/packages/nextjs/package.json
@@ -17,6 +17,7 @@
"vercel:yolo": "vercel --build-env NEXT_PUBLIC_IGNORE_BUILD_ERROR=true"
},
"dependencies": {
+ "@auth/mongodb-adapter": "^3.11.1",
"@heroicons/react": "^2.1.3",
"@hookform/resolvers": "^5.2.2",
"@keplr-wallet/common": "^0.12.175",
@@ -29,6 +30,8 @@
"@radix-ui/react-icons": "1.3.0",
"@radix-ui/react-label": "^2.1.7",
"@radix-ui/react-progress": "^1.1.7",
+ "@radix-ui/react-radio-group": "^1.3.8",
+ "@radix-ui/react-select": "^2.2.6",
"@radix-ui/react-slot": "^1.2.3",
"@radix-ui/themes": "2.0.3",
"@scaffold-stark/stark-burner": "^0.1.13",
@@ -37,6 +40,7 @@
"@starknet-react/core": "^5.0.1",
"@starknet-react/typescript-config": "0.0.2",
"abi-wan-kanabi": "^2.2.4",
+ "bcryptjs": "^3.0.2",
"blo": "^1.1.1",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
@@ -44,18 +48,22 @@
"get-starknet-core": "^4.0.0",
"lucide-react": "^0.548.0",
"minimatch": "^10.0.0",
+ "mongodb": "^6.20.0",
"next": "15.2.4",
+ "next-auth": "5.0.0-beta.30",
"next-pwa": "^5.6.0",
"next-themes": "^0.2.1",
"nprogress": "^0.2.0",
"prettier": "^3.4.2",
"prettier-standalone": "^1.3.1-0",
"qrcode.react": "^3.1.0",
- "react": "19.0.0",
+ "react": "^18.0.0 || ^19.0.0",
"react-copy-to-clipboard": "^5.1.0",
- "react-dom": "19.0.0",
+ "react-dom": "^18.0.0 || ^19.0.0",
"react-hook-form": "^7.65.0",
"react-hot-toast": "^2.4.1",
+ "recharts": "^3.3.0",
+ "sonner": "^2.0.7",
"starknet": "8.5.3",
"tailwind-merge": "^3.3.1",
"tailwindcss-animate": "^1.0.7",
diff --git a/packages/nextjs/pnpm-lock.yaml b/packages/nextjs/pnpm-lock.yaml
index 2672629..30929d2 100644
--- a/packages/nextjs/pnpm-lock.yaml
+++ b/packages/nextjs/pnpm-lock.yaml
@@ -8,6 +8,9 @@ importers:
.:
dependencies:
+ '@auth/mongodb-adapter':
+ specifier: ^3.11.1
+ version: 3.11.1(mongodb@6.20.0)
'@babel/core':
specifier: ^7.0.0
version: 7.28.5
@@ -47,6 +50,12 @@ importers:
'@radix-ui/react-progress':
specifier: ^1.1.7
version: 1.1.7(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+ '@radix-ui/react-radio-group':
+ specifier: ^1.3.8
+ version: 1.3.8(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+ '@radix-ui/react-select':
+ specifier: ^2.2.6
+ version: 2.2.6(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
'@radix-ui/react-slot':
specifier: ^1.2.3
version: 1.2.3(@types/react@19.0.12)(react@19.0.0)
@@ -71,6 +80,9 @@ importers:
abi-wan-kanabi:
specifier: ^2.2.4
version: 2.2.4
+ bcryptjs:
+ specifier: ^3.0.2
+ version: 3.0.2
blo:
specifier: ^1.1.1
version: 1.2.0
@@ -92,9 +104,15 @@ importers:
minimatch:
specifier: ^10.0.0
version: 10.0.3
+ mongodb:
+ specifier: ^6.20.0
+ version: 6.20.0
next:
specifier: 15.2.4
version: 15.2.4(@babel/core@7.28.5)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+ next-auth:
+ specifier: 5.0.0-beta.30
+ version: 5.0.0-beta.30(next@15.2.4(@babel/core@7.28.5)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)
next-pwa:
specifier: ^5.6.0
version: 5.6.0(@babel/core@7.28.5)(@types/babel__core@7.20.5)(next@15.2.4(@babel/core@7.28.5)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(webpack@5.102.1)
@@ -114,13 +132,13 @@ importers:
specifier: ^3.1.0
version: 3.2.0(react@19.0.0)
react:
- specifier: 19.0.0
+ specifier: ^18.0.0 || ^19.0.0
version: 19.0.0
react-copy-to-clipboard:
specifier: ^5.1.0
version: 5.1.0(react@19.0.0)
react-dom:
- specifier: 19.0.0
+ specifier: ^18.0.0 || ^19.0.0
version: 19.0.0(react@19.0.0)
react-hook-form:
specifier: ^7.65.0
@@ -128,6 +146,12 @@ importers:
react-hot-toast:
specifier: ^2.4.1
version: 2.6.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+ recharts:
+ specifier: ^3.3.0
+ version: 3.3.0(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react-is@17.0.2)(react@19.0.0)(redux@5.0.1)
+ sonner:
+ specifier: ^2.0.7
+ version: 2.0.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
starknet:
specifier: 8.5.3
version: 8.5.3
@@ -148,7 +172,7 @@ importers:
version: 4.1.12
zustand:
specifier: ^4.1.2
- version: 4.5.7(@types/react@19.0.12)(react@19.0.0)
+ version: 4.5.7(@types/react@19.0.12)(immer@10.2.0)(react@19.0.0)
devDependencies:
'@tailwindcss/postcss':
specifier: ^4
@@ -257,6 +281,39 @@ packages:
'@asamuzakjp/css-color@3.2.0':
resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==}
+ '@auth/core@0.41.0':
+ resolution: {integrity: sha512-Wd7mHPQ/8zy6Qj7f4T46vg3aoor8fskJm6g2Zyj064oQ3+p0xNZXAV60ww0hY+MbTesfu29kK14Zk5d5JTazXQ==}
+ peerDependencies:
+ '@simplewebauthn/browser': ^9.0.1
+ '@simplewebauthn/server': ^9.0.2
+ nodemailer: ^6.8.0
+ peerDependenciesMeta:
+ '@simplewebauthn/browser':
+ optional: true
+ '@simplewebauthn/server':
+ optional: true
+ nodemailer:
+ optional: true
+
+ '@auth/core@0.41.1':
+ resolution: {integrity: sha512-t9cJ2zNYAdWMacGRMT6+r4xr1uybIdmYa49calBPeTqwgAFPV/88ac9TEvCR85pvATiSPt8VaNf+Gt24JIT/uw==}
+ peerDependencies:
+ '@simplewebauthn/browser': ^9.0.1
+ '@simplewebauthn/server': ^9.0.2
+ nodemailer: ^7.0.7
+ peerDependenciesMeta:
+ '@simplewebauthn/browser':
+ optional: true
+ '@simplewebauthn/server':
+ optional: true
+ nodemailer:
+ optional: true
+
+ '@auth/mongodb-adapter@3.11.1':
+ resolution: {integrity: sha512-xY+VUkC3CNXct8UwQgBAQqXASqolSlIARg6oAm1378CtRN2650tQUCOEnGLNLmroVefUeP73M6t+TpGXq72vwQ==}
+ peerDependencies:
+ mongodb: ^6
+
'@babel/code-frame@7.27.1':
resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
engines: {node: '>=6.9.0'}
@@ -1244,6 +1301,9 @@ packages:
resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==}
hasBin: true
+ '@mongodb-js/saslprep@1.3.2':
+ resolution: {integrity: sha512-QgA5AySqB27cGTXBFmnpifAi7HxoGUeezwo6p9dI03MuDB6Pp33zgclqVb6oVK3j6I9Vesg0+oojW2XxB59SGg==}
+
'@napi-rs/wasm-runtime@0.2.12':
resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==}
@@ -1405,6 +1465,9 @@ packages:
resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==}
engines: {node: '>=12.4.0'}
+ '@panva/hkdf@1.2.1':
+ resolution: {integrity: sha512-6oclG6Y3PiDFcoyk8srjLfVKyMfVCKJ27JwNPViuXziFpmdz+MZnZN/aKY0JGXgYuO/VghU0jcOAZgWXZ1Dmrw==}
+
'@pkgjs/parseargs@0.11.0':
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
@@ -2094,6 +2157,17 @@ packages:
'@types/react-dom':
optional: true
+ '@reduxjs/toolkit@2.9.2':
+ resolution: {integrity: sha512-ZAYu/NXkl/OhqTz7rfPaAhY0+e8Fr15jqNxte/2exKUxvHyQ/hcqmdekiN1f+Lcw3pE+34FCgX+26zcUE3duCg==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18 || ^19
+ react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0
+ peerDependenciesMeta:
+ react:
+ optional: true
+ react-redux:
+ optional: true
+
'@rolldown/pluginutils@1.0.0-beta.27':
resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==}
@@ -2271,6 +2345,9 @@ packages:
'@sinclair/typebox@0.25.24':
resolution: {integrity: sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==}
+ '@standard-schema/spec@1.0.0':
+ resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==}
+
'@standard-schema/utils@0.3.0':
resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==}
@@ -2467,6 +2544,33 @@ packages:
'@types/chai@5.2.3':
resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==}
+ '@types/d3-array@3.2.2':
+ resolution: {integrity: sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==}
+
+ '@types/d3-color@3.1.3':
+ resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==}
+
+ '@types/d3-ease@3.0.2':
+ resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==}
+
+ '@types/d3-interpolate@3.0.4':
+ resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==}
+
+ '@types/d3-path@3.1.1':
+ resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==}
+
+ '@types/d3-scale@4.0.9':
+ resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==}
+
+ '@types/d3-shape@3.1.7':
+ resolution: {integrity: sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==}
+
+ '@types/d3-time@3.0.4':
+ resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==}
+
+ '@types/d3-timer@3.0.2':
+ resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==}
+
'@types/deep-eql@4.0.2':
resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==}
@@ -2533,6 +2637,15 @@ packages:
'@types/trusted-types@2.0.7':
resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
+ '@types/use-sync-external-store@0.0.6':
+ resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==}
+
+ '@types/webidl-conversions@7.0.3':
+ resolution: {integrity: sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==}
+
+ '@types/whatwg-url@11.0.5':
+ resolution: {integrity: sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==}
+
'@typescript-eslint/eslint-plugin@8.46.2':
resolution: {integrity: sha512-ZGBMToy857/NIPaaCucIUQgqueOiq7HeAKkhlvqVV4lm089zUFW6ikRySx2v+cAhKeUCPuWVHeimyk6Dw1iY3w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -3134,6 +3247,10 @@ packages:
resolution: {integrity: sha512-JMWsdF+O8Orq3EMukbUN1QfbLK9mX2CkUmQBcW2T0s8OmdAUL5LLM/6wFwSrqXzlXB13yhyK9gTKS1rIizOduQ==}
hasBin: true
+ bcryptjs@3.0.2:
+ resolution: {integrity: sha512-k38b3XOZKv60C4E2hVsXTolJWfkGRMbILBIe2IBITXciy5bOsTKot5kDrf3ZfufQtQOUN5mXceUEpU1rTl9Uog==}
+ hasBin: true
+
bech32@1.1.4:
resolution: {integrity: sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==}
@@ -3209,6 +3326,10 @@ packages:
bs58check@3.0.1:
resolution: {integrity: sha512-hjuuJvoWEybo7Hn/0xOrczQKKEKD63WguEjlhLExYs2wUBcebDC1jDNK17eEAD2lYfw82d5ASC1d7K3SWszjaQ==}
+ bson@6.10.4:
+ resolution: {integrity: sha512-WIsKqkSC0ABoBJuT1LEX+2HEvNmNKKgnTAyd0fL8qzK4SH2i9NXg+t08YtdZp/V9IZ33cxe3iV4yM0qg8lMQng==}
+ engines: {node: '>=16.20.1'}
+
buffer-crc32@0.2.13:
resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
@@ -3413,6 +3534,50 @@ packages:
csstype@3.1.3:
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
+ d3-array@3.2.4:
+ resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==}
+ engines: {node: '>=12'}
+
+ d3-color@3.1.0:
+ resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==}
+ engines: {node: '>=12'}
+
+ d3-ease@3.0.1:
+ resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==}
+ engines: {node: '>=12'}
+
+ d3-format@3.1.0:
+ resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==}
+ engines: {node: '>=12'}
+
+ d3-interpolate@3.0.1:
+ resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==}
+ engines: {node: '>=12'}
+
+ d3-path@3.1.0:
+ resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==}
+ engines: {node: '>=12'}
+
+ d3-scale@4.0.2:
+ resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==}
+ engines: {node: '>=12'}
+
+ d3-shape@3.2.0:
+ resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==}
+ engines: {node: '>=12'}
+
+ d3-time-format@4.1.0:
+ resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==}
+ engines: {node: '>=12'}
+
+ d3-time@3.1.0:
+ resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==}
+ engines: {node: '>=12'}
+
+ d3-timer@3.0.1:
+ resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==}
+ engines: {node: '>=12'}
+
daisyui@5.3.10:
resolution: {integrity: sha512-vmjyPmm0hvFhA95KB6uiGmWakziB2pBv6CUcs5Ka/3iMBMn9S+C3SZYx9G9l2JrgTZ1EFn61F/HrPcwaUm2kLQ==}
@@ -3461,6 +3626,9 @@ packages:
supports-color:
optional: true
+ decimal.js-light@2.5.1:
+ resolution: {integrity: sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==}
+
decimal.js@10.6.0:
resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==}
@@ -3625,6 +3793,9 @@ packages:
resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
engines: {node: '>= 0.4'}
+ es-toolkit@1.41.0:
+ resolution: {integrity: sha512-bDd3oRmbVgqZCJS6WmeQieOrzpl3URcWBUVDXxOELlUW2FuW+0glPOz1n0KnRie+PdyvUZcXz2sOn00c6pPRIA==}
+
esbuild-android-64@0.14.47:
resolution: {integrity: sha512-R13Bd9+tqLVFndncMHssZrPWe6/0Kpv2/dt4aA69soX4PRxlzsVpCvoJeFE8sOEoeVEiBkI0myjlkDodXlHa0g==}
engines: {node: '>=12'}
@@ -4255,6 +4426,9 @@ packages:
resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
engines: {node: '>= 4'}
+ immer@10.2.0:
+ resolution: {integrity: sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==}
+
import-fresh@3.3.1:
resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
engines: {node: '>=6'}
@@ -4286,6 +4460,10 @@ packages:
resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
engines: {node: '>= 0.4'}
+ internmap@2.0.3:
+ resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==}
+ engines: {node: '>=12'}
+
interpret@1.4.0:
resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==}
engines: {node: '>= 0.10'}
@@ -4515,6 +4693,9 @@ packages:
resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==}
hasBin: true
+ jose@6.1.0:
+ resolution: {integrity: sha512-TTQJyoEoKcC1lscpVDCSsVgYzUDg/0Bt3WE//WiTPK6uOCQC2KZS4MpugbMWt/zyjkopgZoXhZuCi00gLudfUA==}
+
js-sha3@0.8.0:
resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==}
@@ -4765,6 +4946,9 @@ packages:
md5.js@1.3.5:
resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==}
+ memory-pager@1.5.0:
+ resolution: {integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==}
+
merge-stream@2.0.0:
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
@@ -4852,6 +5036,36 @@ packages:
engines: {node: '>=10'}
hasBin: true
+ mongodb-connection-string-url@3.0.2:
+ resolution: {integrity: sha512-rMO7CGo/9BFwyZABcKAWL8UJwH/Kc2x0g72uhDWzG48URRax5TCIcJ7Rc3RZqffZzO/Gwff/jyKwCU9TN8gehA==}
+
+ mongodb@6.20.0:
+ resolution: {integrity: sha512-Tl6MEIU3K4Rq3TSHd+sZQqRBoGlFsOgNrH5ltAcFBV62Re3Fd+FcaVf8uSEQFOJ51SDowDVttBTONMfoYWrWlQ==}
+ engines: {node: '>=16.20.1'}
+ peerDependencies:
+ '@aws-sdk/credential-providers': ^3.188.0
+ '@mongodb-js/zstd': ^1.1.0 || ^2.0.0
+ gcp-metadata: ^5.2.0
+ kerberos: ^2.0.1
+ mongodb-client-encryption: '>=6.0.0 <7'
+ snappy: ^7.3.2
+ socks: ^2.7.1
+ peerDependenciesMeta:
+ '@aws-sdk/credential-providers':
+ optional: true
+ '@mongodb-js/zstd':
+ optional: true
+ gcp-metadata:
+ optional: true
+ kerberos:
+ optional: true
+ mongodb-client-encryption:
+ optional: true
+ snappy:
+ optional: true
+ socks:
+ optional: true
+
mri@1.2.0:
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
engines: {node: '>=4'}
@@ -4881,6 +5095,22 @@ packages:
neo-async@2.6.2:
resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
+ next-auth@5.0.0-beta.30:
+ resolution: {integrity: sha512-+c51gquM3F6nMVmoAusRJ7RIoY0K4Ts9HCCwyy/BRoe4mp3msZpOzYMyb5LAYc1wSo74PMQkGDcaghIO7W6Xjg==}
+ peerDependencies:
+ '@simplewebauthn/browser': ^9.0.1
+ '@simplewebauthn/server': ^9.0.2
+ next: ^14.0.0-0 || ^15.0.0 || ^16.0.0
+ nodemailer: ^7.0.7
+ react: ^18.2.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@simplewebauthn/browser':
+ optional: true
+ '@simplewebauthn/server':
+ optional: true
+ nodemailer:
+ optional: true
+
next-pwa@5.6.0:
resolution: {integrity: sha512-XV8g8C6B7UmViXU8askMEYhWwQ4qc/XqJGnexbLV68hzKaGHZDMtHsm2TNxFcbR7+ypVuth/wwpiIlMwpRJJ5A==}
peerDependencies:
@@ -4993,6 +5223,9 @@ packages:
nwsapi@2.2.22:
resolution: {integrity: sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==}
+ oauth4webapi@3.8.2:
+ resolution: {integrity: sha512-FzZZ+bht5X0FKe7Mwz3DAVAmlH1BV5blSak/lHMBKz0/EBMhX6B10GlQYI51+oRp8ObJaX0g6pXrAxZh5s8rjw==}
+
object-assign@4.1.1:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines: {node: '>=0.10.0'}
@@ -5206,6 +5439,14 @@ packages:
resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
engines: {node: ^10 || ^12 || >=14}
+ preact-render-to-string@6.5.11:
+ resolution: {integrity: sha512-ubnauqoGczeGISiOh6RjX0/cdaF8v/oDXIjO85XALCQjwQP+SB4RDXXtvZ6yTYSjG+PC1QRP2AhPgCEsM2EvUw==}
+ peerDependencies:
+ preact: '>=10'
+
+ preact@10.24.3:
+ resolution: {integrity: sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==}
+
prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
@@ -5294,6 +5535,18 @@ packages:
react-is@17.0.2:
resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
+ react-redux@9.2.0:
+ resolution: {integrity: sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==}
+ peerDependencies:
+ '@types/react': ^18.2.25 || ^19
+ react: ^18.0 || ^19
+ redux: ^5.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ redux:
+ optional: true
+
react-refresh@0.17.0:
resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==}
engines: {node: '>=0.10.0'}
@@ -5343,6 +5596,14 @@ packages:
resolution: {integrity: sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==}
engines: {node: '>=8.10.0'}
+ recharts@3.3.0:
+ resolution: {integrity: sha512-Vi0qmTB0iz1+/Cz9o5B7irVyUjX2ynvEgImbgMt/3sKRREcUM07QiYjS1QpAVrkmVlXqy5gykq4nGWMz9AS4Rg==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ react-is: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
rechoir@0.6.2:
resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
engines: {node: '>= 0.10'}
@@ -5358,6 +5619,14 @@ packages:
redeyed@2.1.1:
resolution: {integrity: sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==}
+ redux-thunk@3.1.0:
+ resolution: {integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==}
+ peerDependencies:
+ redux: ^5.0.0
+
+ redux@5.0.1:
+ resolution: {integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==}
+
reflect.getprototypeof@1.0.10:
resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
engines: {node: '>= 0.4'}
@@ -5392,6 +5661,9 @@ packages:
resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
engines: {node: '>=0.10.0'}
+ reselect@5.1.1:
+ resolution: {integrity: sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==}
+
resolve-cwd@3.0.0:
resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
engines: {node: '>=8'}
@@ -5610,6 +5882,12 @@ packages:
resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
engines: {node: '>=8'}
+ sonner@2.0.7:
+ resolution: {integrity: sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==}
+ peerDependencies:
+ react: ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+
source-list-map@2.0.1:
resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==}
@@ -5633,6 +5911,9 @@ packages:
resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
deprecated: Please use @jridgewell/sourcemap-codec instead
+ sparse-bitfield@3.0.3:
+ resolution: {integrity: sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==}
+
stable-hash@0.0.5:
resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==}
@@ -5847,6 +6128,9 @@ packages:
resolution: {integrity: sha512-MyqZCTGLDZ77u4k+jqg4UlrzPTPZ49NDlaekU6uuFaJLzPIN1woaRXCbGeqOfxwc3Y37ZROGAJ614Rdv7Olt+g==}
engines: {node: '>=10'}
+ tiny-invariant@1.3.3:
+ resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
+
tiny-secp256k1@1.1.7:
resolution: {integrity: sha512-eb+F6NabSnjbLwNoC+2o5ItbmP1kg7HliWue71JgLegQt6A5mTN8YbvTLCazdlg6e5SV6A+r8OGvZYskdlmhqQ==}
engines: {node: '>=6.0.0'}
@@ -6123,6 +6407,9 @@ packages:
engines: {node: '>= 16'}
hasBin: true
+ victory-vendor@37.3.6:
+ resolution: {integrity: sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==}
+
viem@2.38.4:
resolution: {integrity: sha512-qnyPNg6Lz1EEC86si/1dq7GlOyZVFHSgAW+p8Q31R5idnAYCOdTM2q5KLE4/ykMeMXzY0bnp5MWTtR/wjCtWmQ==}
peerDependencies:
@@ -6520,6 +6807,31 @@ snapshots:
'@csstools/css-tokenizer': 3.0.4
lru-cache: 10.4.3
+ '@auth/core@0.41.0':
+ dependencies:
+ '@panva/hkdf': 1.2.1
+ jose: 6.1.0
+ oauth4webapi: 3.8.2
+ preact: 10.24.3
+ preact-render-to-string: 6.5.11(preact@10.24.3)
+
+ '@auth/core@0.41.1':
+ dependencies:
+ '@panva/hkdf': 1.2.1
+ jose: 6.1.0
+ oauth4webapi: 3.8.2
+ preact: 10.24.3
+ preact-render-to-string: 6.5.11(preact@10.24.3)
+
+ '@auth/mongodb-adapter@3.11.1(mongodb@6.20.0)':
+ dependencies:
+ '@auth/core': 0.41.1
+ mongodb: 6.20.0
+ transitivePeerDependencies:
+ - '@simplewebauthn/browser'
+ - '@simplewebauthn/server'
+ - nodemailer
+
'@babel/code-frame@7.27.1':
dependencies:
'@babel/helper-validator-identifier': 7.28.5
@@ -7614,6 +7926,10 @@ snapshots:
- encoding
- supports-color
+ '@mongodb-js/saslprep@1.3.2':
+ dependencies:
+ sparse-bitfield: 3.0.3
+
'@napi-rs/wasm-runtime@0.2.12':
dependencies:
'@emnapi/core': 1.6.0
@@ -7718,6 +8034,8 @@ snapshots:
'@nolyfill/is-core-module@1.0.39': {}
+ '@panva/hkdf@1.2.1': {}
+
'@pkgjs/parseargs@0.11.0':
optional: true
@@ -8424,6 +8742,18 @@ snapshots:
'@types/react': 19.0.12
'@types/react-dom': 19.0.4(@types/react@19.0.12)
+ '@reduxjs/toolkit@2.9.2(react-redux@9.2.0(@types/react@19.0.12)(react@19.0.0)(redux@5.0.1))(react@19.0.0)':
+ dependencies:
+ '@standard-schema/spec': 1.0.0
+ '@standard-schema/utils': 0.3.0
+ immer: 10.2.0
+ redux: 5.0.1
+ redux-thunk: 3.1.0(redux@5.0.1)
+ reselect: 5.1.1
+ optionalDependencies:
+ react: 19.0.0
+ react-redux: 9.2.0(@types/react@19.0.12)(react@19.0.0)(redux@5.0.1)
+
'@rolldown/pluginutils@1.0.0-beta.27': {}
'@rollup/plugin-babel@5.3.1(@babel/core@7.28.5)(@types/babel__core@7.20.5)(rollup@2.79.2)':
@@ -8564,6 +8894,8 @@ snapshots:
'@sinclair/typebox@0.25.24': {}
+ '@standard-schema/spec@1.0.0': {}
+
'@standard-schema/utils@0.3.0': {}
'@starknet-io/types-js@0.7.10': {}
@@ -8766,6 +9098,30 @@ snapshots:
'@types/deep-eql': 4.0.2
assertion-error: 2.0.1
+ '@types/d3-array@3.2.2': {}
+
+ '@types/d3-color@3.1.3': {}
+
+ '@types/d3-ease@3.0.2': {}
+
+ '@types/d3-interpolate@3.0.4':
+ dependencies:
+ '@types/d3-color': 3.1.3
+
+ '@types/d3-path@3.1.1': {}
+
+ '@types/d3-scale@4.0.9':
+ dependencies:
+ '@types/d3-time': 3.0.4
+
+ '@types/d3-shape@3.1.7':
+ dependencies:
+ '@types/d3-path': 3.1.1
+
+ '@types/d3-time@3.0.4': {}
+
+ '@types/d3-timer@3.0.2': {}
+
'@types/deep-eql@4.0.2': {}
'@types/eslint-scope@3.7.7':
@@ -8846,6 +9202,14 @@ snapshots:
'@types/trusted-types@2.0.7': {}
+ '@types/use-sync-external-store@0.0.6': {}
+
+ '@types/webidl-conversions@7.0.3': {}
+
+ '@types/whatwg-url@11.0.5':
+ dependencies:
+ '@types/webidl-conversions': 7.0.3
+
'@typescript-eslint/eslint-plugin@8.46.2(@typescript-eslint/parser@8.46.2(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)':
dependencies:
'@eslint-community/regexpp': 4.12.2
@@ -9594,6 +9958,8 @@ snapshots:
baseline-browser-mapping@2.8.20: {}
+ bcryptjs@3.0.2: {}
+
bech32@1.1.4: {}
bech32@2.0.0: {}
@@ -9681,6 +10047,8 @@ snapshots:
'@noble/hashes': 1.8.0
bs58: 5.0.0
+ bson@6.10.4: {}
+
buffer-crc32@0.2.13: {}
buffer-from@1.1.2: {}
@@ -9890,6 +10258,44 @@ snapshots:
csstype@3.1.3: {}
+ d3-array@3.2.4:
+ dependencies:
+ internmap: 2.0.3
+
+ d3-color@3.1.0: {}
+
+ d3-ease@3.0.1: {}
+
+ d3-format@3.1.0: {}
+
+ d3-interpolate@3.0.1:
+ dependencies:
+ d3-color: 3.1.0
+
+ d3-path@3.1.0: {}
+
+ d3-scale@4.0.2:
+ dependencies:
+ d3-array: 3.2.4
+ d3-format: 3.1.0
+ d3-interpolate: 3.0.1
+ d3-time: 3.1.0
+ d3-time-format: 4.1.0
+
+ d3-shape@3.2.0:
+ dependencies:
+ d3-path: 3.1.0
+
+ d3-time-format@4.1.0:
+ dependencies:
+ d3-time: 3.1.0
+
+ d3-time@3.1.0:
+ dependencies:
+ d3-array: 3.2.4
+
+ d3-timer@3.0.1: {}
+
daisyui@5.3.10: {}
damerau-levenshtein@1.0.8: {}
@@ -9929,6 +10335,8 @@ snapshots:
dependencies:
ms: 2.1.3
+ decimal.js-light@2.5.1: {}
+
decimal.js@10.6.0: {}
deep-eql@5.0.2: {}
@@ -10159,6 +10567,8 @@ snapshots:
is-date-object: 1.1.0
is-symbol: 1.1.1
+ es-toolkit@1.41.0: {}
+
esbuild-android-64@0.14.47:
optional: true
@@ -10905,6 +11315,8 @@ snapshots:
ignore@7.0.5: {}
+ immer@10.2.0: {}
+
import-fresh@3.3.1:
dependencies:
parent-module: 1.0.1
@@ -10934,6 +11346,8 @@ snapshots:
hasown: 2.0.2
side-channel: 1.1.0
+ internmap@2.0.3: {}
+
interpret@1.4.0: {}
interpret@3.1.1: {}
@@ -11167,6 +11581,8 @@ snapshots:
jiti@2.6.1: {}
+ jose@6.1.0: {}
+
js-sha3@0.8.0: {}
js-tokens@4.0.0: {}
@@ -11398,6 +11814,8 @@ snapshots:
inherits: 2.0.4
safe-buffer: 5.2.1
+ memory-pager@1.5.0: {}
+
merge-stream@2.0.0: {}
merge2@1.4.1: {}
@@ -11473,6 +11891,17 @@ snapshots:
mkdirp@1.0.4: {}
+ mongodb-connection-string-url@3.0.2:
+ dependencies:
+ '@types/whatwg-url': 11.0.5
+ whatwg-url: 14.2.0
+
+ mongodb@6.20.0:
+ dependencies:
+ '@mongodb-js/saslprep': 1.3.2
+ bson: 6.10.4
+ mongodb-connection-string-url: 3.0.2
+
mri@1.2.0: {}
ms@2.1.1: {}
@@ -11489,6 +11918,12 @@ snapshots:
neo-async@2.6.2: {}
+ next-auth@5.0.0-beta.30(next@15.2.4(@babel/core@7.28.5)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0):
+ dependencies:
+ '@auth/core': 0.41.0
+ next: 15.2.4(@babel/core@7.28.5)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+ react: 19.0.0
+
next-pwa@5.6.0(@babel/core@7.28.5)(@types/babel__core@7.20.5)(next@15.2.4(@babel/core@7.28.5)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(webpack@5.102.1):
dependencies:
babel-loader: 8.4.1(@babel/core@7.28.5)(webpack@5.102.1)
@@ -11606,6 +12041,8 @@ snapshots:
nwsapi@2.2.22: {}
+ oauth4webapi@3.8.2: {}
+
object-assign@4.1.1: {}
object-inspect@1.13.4: {}
@@ -11806,6 +12243,12 @@ snapshots:
picocolors: 1.1.1
source-map-js: 1.2.1
+ preact-render-to-string@6.5.11(preact@10.24.3):
+ dependencies:
+ preact: 10.24.3
+
+ preact@10.24.3: {}
+
prelude-ls@1.2.1: {}
prettier-standalone@1.3.1-0: {}
@@ -11900,6 +12343,15 @@ snapshots:
react-is@17.0.2: {}
+ react-redux@9.2.0(@types/react@19.0.12)(react@19.0.0)(redux@5.0.1):
+ dependencies:
+ '@types/use-sync-external-store': 0.0.6
+ react: 19.0.0
+ use-sync-external-store: 1.6.0(react@19.0.0)
+ optionalDependencies:
+ '@types/react': 19.0.12
+ redux: 5.0.1
+
react-refresh@0.17.0: {}
react-remove-scroll-bar@2.3.8(@types/react@19.0.12)(react@19.0.0):
@@ -11951,6 +12403,26 @@ snapshots:
dependencies:
picomatch: 2.3.1
+ recharts@3.3.0(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react-is@17.0.2)(react@19.0.0)(redux@5.0.1):
+ dependencies:
+ '@reduxjs/toolkit': 2.9.2(react-redux@9.2.0(@types/react@19.0.12)(react@19.0.0)(redux@5.0.1))(react@19.0.0)
+ clsx: 2.1.1
+ decimal.js-light: 2.5.1
+ es-toolkit: 1.41.0
+ eventemitter3: 5.0.1
+ immer: 10.2.0
+ react: 19.0.0
+ react-dom: 19.0.0(react@19.0.0)
+ react-is: 17.0.2
+ react-redux: 9.2.0(@types/react@19.0.12)(react@19.0.0)(redux@5.0.1)
+ reselect: 5.1.1
+ tiny-invariant: 1.3.3
+ use-sync-external-store: 1.6.0(react@19.0.0)
+ victory-vendor: 37.3.6
+ transitivePeerDependencies:
+ - '@types/react'
+ - redux
+
rechoir@0.6.2:
dependencies:
resolve: 1.22.11
@@ -11968,6 +12440,12 @@ snapshots:
dependencies:
esprima: 4.0.1
+ redux-thunk@3.1.0(redux@5.0.1):
+ dependencies:
+ redux: 5.0.1
+
+ redux@5.0.1: {}
+
reflect.getprototypeof@1.0.10:
dependencies:
call-bind: 1.0.8
@@ -12013,6 +12491,8 @@ snapshots:
require-from-string@2.0.2: {}
+ reselect@5.1.1: {}
+
resolve-cwd@3.0.0:
dependencies:
resolve-from: 5.0.0
@@ -12288,6 +12768,11 @@ snapshots:
slash@3.0.0: {}
+ sonner@2.0.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
+ dependencies:
+ react: 19.0.0
+ react-dom: 19.0.0(react@19.0.0)
+
source-list-map@2.0.1: {}
source-map-js@1.2.1: {}
@@ -12305,6 +12790,10 @@ snapshots:
sourcemap-codec@1.4.8: {}
+ sparse-bitfield@3.0.3:
+ dependencies:
+ memory-pager: 1.5.0
+
stable-hash@0.0.5: {}
stackback@0.0.2: {}
@@ -12539,6 +13028,8 @@ snapshots:
dependencies:
convert-hrtime: 3.0.0
+ tiny-invariant@1.3.3: {}
+
tiny-secp256k1@1.1.7:
dependencies:
bindings: 1.5.0
@@ -12823,6 +13314,23 @@ snapshots:
- encoding
- supports-color
+ victory-vendor@37.3.6:
+ dependencies:
+ '@types/d3-array': 3.2.2
+ '@types/d3-ease': 3.0.2
+ '@types/d3-interpolate': 3.0.4
+ '@types/d3-scale': 4.0.9
+ '@types/d3-shape': 3.1.7
+ '@types/d3-time': 3.0.4
+ '@types/d3-timer': 3.0.2
+ d3-array: 3.2.4
+ d3-ease: 3.0.1
+ d3-interpolate: 3.0.1
+ d3-scale: 4.0.2
+ d3-shape: 3.2.0
+ d3-time: 3.1.0
+ d3-timer: 3.0.1
+
viem@2.38.4(typescript@5.9.3)(zod@3.24.1):
dependencies:
'@noble/curves': 1.9.1
@@ -13288,9 +13796,10 @@ snapshots:
zod@4.1.12: {}
- zustand@4.5.7(@types/react@19.0.12)(react@19.0.0):
+ zustand@4.5.7(@types/react@19.0.12)(immer@10.2.0)(react@19.0.0):
dependencies:
use-sync-external-store: 1.6.0(react@19.0.0)
optionalDependencies:
'@types/react': 19.0.12
+ immer: 10.2.0
react: 19.0.0
diff --git a/packages/nextjs/types/next-auth.d.ts b/packages/nextjs/types/next-auth.d.ts
new file mode 100644
index 0000000..499d53d
--- /dev/null
+++ b/packages/nextjs/types/next-auth.d.ts
@@ -0,0 +1,24 @@
+import type { DefaultSession } from "next-auth"
+
+declare module "next-auth" {
+ interface Session {
+ user: {
+ id: string
+ role: string
+ provider?: string
+ } & DefaultSession["user"]
+ }
+
+ interface User {
+ role: string
+ provider?: string
+ }
+}
+
+declare module "next-auth/jwt" {
+ interface JWT {
+ role: string
+ id: string
+ provider?: string
+ }
+}
diff --git a/yarn.lock b/yarn.lock
index b8b5242..f17d0b8 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -50,6 +50,35 @@
"@csstools/css-tokenizer" "^3.0.3"
lru-cache "^10.4.3"
+"@auth/core@0.41.0":
+ version "0.41.0"
+ resolved "https://registry.npmjs.org/@auth/core/-/core-0.41.0.tgz"
+ integrity sha512-Wd7mHPQ/8zy6Qj7f4T46vg3aoor8fskJm6g2Zyj064oQ3+p0xNZXAV60ww0hY+MbTesfu29kK14Zk5d5JTazXQ==
+ dependencies:
+ "@panva/hkdf" "^1.2.1"
+ jose "^6.0.6"
+ oauth4webapi "^3.3.0"
+ preact "10.24.3"
+ preact-render-to-string "6.5.11"
+
+"@auth/core@0.41.1":
+ version "0.41.1"
+ resolved "https://registry.npmjs.org/@auth/core/-/core-0.41.1.tgz"
+ integrity sha512-t9cJ2zNYAdWMacGRMT6+r4xr1uybIdmYa49calBPeTqwgAFPV/88ac9TEvCR85pvATiSPt8VaNf+Gt24JIT/uw==
+ dependencies:
+ "@panva/hkdf" "^1.2.1"
+ jose "^6.0.6"
+ oauth4webapi "^3.3.0"
+ preact "10.24.3"
+ preact-render-to-string "6.5.11"
+
+"@auth/mongodb-adapter@^3.11.1":
+ version "3.11.1"
+ resolved "https://registry.npmjs.org/@auth/mongodb-adapter/-/mongodb-adapter-3.11.1.tgz"
+ integrity sha512-xY+VUkC3CNXct8UwQgBAQqXASqolSlIARg6oAm1378CtRN2650tQUCOEnGLNLmroVefUeP73M6t+TpGXq72vwQ==
+ dependencies:
+ "@auth/core" "0.41.1"
+
"@babel/code-frame@^7.10.4", "@babel/code-frame@^7.27.1":
version "7.27.1"
resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz"
@@ -64,7 +93,7 @@
resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz"
integrity sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==
-"@babel/core@^7.11.1", "@babel/core@^7.23.9", "@babel/core@^7.28.0":
+"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.0.0-0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.11.1", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.23.9", "@babel/core@^7.28.0", "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0":
version "7.28.5"
resolved "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz"
integrity sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==
@@ -881,12 +910,12 @@
"@csstools/color-helpers" "^5.1.0"
"@csstools/css-calc" "^2.1.4"
-"@csstools/css-parser-algorithms@^3.0.4":
+"@csstools/css-parser-algorithms@^3.0.4", "@csstools/css-parser-algorithms@^3.0.5":
version "3.0.5"
resolved "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz"
integrity sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==
-"@csstools/css-tokenizer@^3.0.3":
+"@csstools/css-tokenizer@^3.0.3", "@csstools/css-tokenizer@^3.0.4":
version "3.0.4"
resolved "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz"
integrity sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==
@@ -916,7 +945,7 @@
resolved "https://registry.npmjs.org/@edge-runtime/primitives/-/primitives-4.1.0.tgz"
integrity sha512-Vw0lbJ2lvRUqc7/soqygUX216Xb8T3WBZ987oywz6aJqRxcwSVWwr9e+Nqo2m9bxobA9mdbWNNoRY6S9eko1EQ==
-"@edge-runtime/vm@3.2.0":
+"@edge-runtime/vm@*", "@edge-runtime/vm@3.2.0":
version "3.2.0"
resolved "https://registry.npmjs.org/@edge-runtime/vm/-/vm-3.2.0.tgz"
integrity sha512-0dEVyRLM/lG4gp1R/Ik5bfPl/1wX00xFwd5KcNH602tzBa09oF7pbTKETEhR1GjZ75K6OJnYFu8II2dyMhONMw==
@@ -1505,6 +1534,13 @@
semver "^7.3.5"
tar "^6.1.11"
+"@mongodb-js/saslprep@^1.3.0":
+ version "1.3.2"
+ resolved "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.3.2.tgz"
+ integrity sha512-QgA5AySqB27cGTXBFmnpifAi7HxoGUeezwo6p9dI03MuDB6Pp33zgclqVb6oVK3j6I9Vesg0+oojW2XxB59SGg==
+ dependencies:
+ sparse-bitfield "^3.0.3"
+
"@napi-rs/wasm-runtime@^0.2.11", "@napi-rs/wasm-runtime@^1.0.7":
version "0.2.12"
resolved "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz"
@@ -1702,6 +1738,11 @@
resolved "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz"
integrity sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==
+"@panva/hkdf@^1.2.1":
+ version "1.2.1"
+ resolved "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.2.1.tgz"
+ integrity sha512-6oclG6Y3PiDFcoyk8srjLfVKyMfVCKJ27JwNPViuXziFpmdz+MZnZN/aKY0JGXgYuO/VghU0jcOAZgWXZ1Dmrw==
+
"@pkgjs/parseargs@^0.11.0":
version "0.11.0"
resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz"
@@ -2112,7 +2153,7 @@
"@radix-ui/react-context" "1.1.2"
"@radix-ui/react-primitive" "2.1.3"
-"@radix-ui/react-radio-group@^1.1.3":
+"@radix-ui/react-radio-group@^1.1.3", "@radix-ui/react-radio-group@^1.3.8":
version "1.3.8"
resolved "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.3.8.tgz"
integrity sha512-VBKYIYImA5zsxACdisNQ3BjCBfmbGH3kQlnFVqlWU4tXwjy7cGX8ta80BcrO+WJXIn5iBylEH3K6ZTlee//lgQ==
@@ -2158,7 +2199,7 @@
"@radix-ui/react-use-callback-ref" "1.1.1"
"@radix-ui/react-use-layout-effect" "1.1.1"
-"@radix-ui/react-select@^2.0.0":
+"@radix-ui/react-select@^2.0.0", "@radix-ui/react-select@^2.2.6":
version "2.2.6"
resolved "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.2.6.tgz"
integrity sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==
@@ -2379,6 +2420,18 @@
"@radix-ui/react-visually-hidden" "^1.0.3"
classnames "^2.3.2"
+"@reduxjs/toolkit@1.x.x || 2.x.x":
+ version "2.9.2"
+ resolved "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.9.2.tgz"
+ integrity sha512-ZAYu/NXkl/OhqTz7rfPaAhY0+e8Fr15jqNxte/2exKUxvHyQ/hcqmdekiN1f+Lcw3pE+34FCgX+26zcUE3duCg==
+ dependencies:
+ "@standard-schema/spec" "^1.0.0"
+ "@standard-schema/utils" "^0.3.0"
+ immer "^10.0.3"
+ redux "^5.0.1"
+ redux-thunk "^3.1.0"
+ reselect "^5.1.0"
+
"@rolldown/pluginutils@1.0.0-beta.27":
version "1.0.0-beta.27"
resolved "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz"
@@ -2612,6 +2665,8 @@
"@radix-ui/react-icons" "1.3.0"
"@radix-ui/react-label" "^2.1.7"
"@radix-ui/react-progress" "^1.1.7"
+ "@radix-ui/react-radio-group" "^1.3.8"
+ "@radix-ui/react-select" "^2.2.6"
"@radix-ui/react-slot" "^1.2.3"
"@radix-ui/themes" "2.0.3"
"@scaffold-stark/stark-burner" "^0.1.13"
@@ -2627,6 +2682,7 @@
get-starknet-core "^4.0.0"
lucide-react "^0.548.0"
minimatch "^10.0.0"
+ mongodb "^6.20.0"
next "15.2.4"
next-pwa "^5.6.0"
next-themes "^0.2.1"
@@ -2639,6 +2695,8 @@
react-dom "19.0.0"
react-hook-form "^7.65.0"
react-hot-toast "^2.4.1"
+ recharts "^3.3.0"
+ sonner "^2.0.7"
starknet "8.5.3"
tailwind-merge "^3.3.1"
tailwindcss-animate "^1.0.7"
@@ -2647,6 +2705,11 @@
zod "^4.1.12"
zustand "^4.1.2"
+"@standard-schema/spec@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz"
+ integrity sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==
+
"@standard-schema/utils@^0.3.0":
version "0.3.0"
resolved "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz"
@@ -2850,7 +2913,7 @@
dependencies:
"@tanstack/query-core" "5.90.5"
-"@testing-library/dom@^10.4.0":
+"@testing-library/dom@^10.0.0", "@testing-library/dom@^10.4.0":
version "10.4.1"
resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz"
integrity sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==
@@ -2930,7 +2993,7 @@
resolved "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz"
integrity sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==
-"@types/babel__core@^7.20.5":
+"@types/babel__core@^7.1.9", "@types/babel__core@^7.20.5":
version "7.20.5"
resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz"
integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==
@@ -2971,6 +3034,57 @@
"@types/deep-eql" "*"
assertion-error "^2.0.1"
+"@types/d3-array@^3.0.3":
+ version "3.2.2"
+ resolved "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz"
+ integrity sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==
+
+"@types/d3-color@*":
+ version "3.1.3"
+ resolved "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz"
+ integrity sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==
+
+"@types/d3-ease@^3.0.0":
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz"
+ integrity sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==
+
+"@types/d3-interpolate@^3.0.1":
+ version "3.0.4"
+ resolved "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz"
+ integrity sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==
+ dependencies:
+ "@types/d3-color" "*"
+
+"@types/d3-path@*":
+ version "3.1.1"
+ resolved "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz"
+ integrity sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==
+
+"@types/d3-scale@^4.0.2":
+ version "4.0.9"
+ resolved "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz"
+ integrity sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==
+ dependencies:
+ "@types/d3-time" "*"
+
+"@types/d3-shape@^3.1.0":
+ version "3.1.7"
+ resolved "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz"
+ integrity sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==
+ dependencies:
+ "@types/d3-path" "*"
+
+"@types/d3-time@*", "@types/d3-time@^3.0.0":
+ version "3.0.4"
+ resolved "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz"
+ integrity sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==
+
+"@types/d3-timer@^3.0.0":
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz"
+ integrity sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==
+
"@types/deep-eql@*":
version "4.0.2"
resolved "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz"
@@ -3041,7 +3155,7 @@
next "^12.2.5 || ^13.0.0"
workbox-build "^6.5.4"
-"@types/node@*", "@types/node@^22", "@types/node@>=13.7.0":
+"@types/node@*", "@types/node@^18.0.0 || ^20.0.0 || >=22.0.0", "@types/node@^22", "@types/node@>=13.7.0":
version "22.18.13"
resolved "https://registry.npmjs.org/@types/node/-/node-22.18.13.tgz"
integrity sha512-Bo45YKIjnmFtv6I1TuC8AaHBbqXtIo+Om5fE4QiU1Tj8QR/qt+8O3BAtOimG5IFmwaWiPmB3Mv3jtYzBA4Us2A==
@@ -3077,12 +3191,12 @@
dependencies:
"@types/react" "*"
-"@types/react-dom@*", "@types/react-dom@19.0.4":
+"@types/react-dom@*", "@types/react-dom@^18.0.0 || ^19.0.0", "@types/react-dom@19.0.4":
version "19.0.4"
resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.4.tgz"
integrity sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==
-"@types/react@*", "@types/react@19.0.12":
+"@types/react@*", "@types/react@^18.0.0 || ^19.0.0", "@types/react@^18.2.25 || ^19", "@types/react@^19.0.0", "@types/react@>=16.8", "@types/react@19.0.12":
version "19.0.12"
resolved "https://registry.npmjs.org/@types/react/-/react-19.0.12.tgz"
integrity sha512-V6Ar115dBDrjbtXSrS+/Oruobc+qVbbUxDFC1RSbRqLt5SYvxxyIDrSC85RWml54g+jfNeEMZhEj7wW07ONQhA==
@@ -3101,6 +3215,23 @@
resolved "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz"
integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==
+"@types/use-sync-external-store@^0.0.6":
+ version "0.0.6"
+ resolved "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz"
+ integrity sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==
+
+"@types/webidl-conversions@*":
+ version "7.0.3"
+ resolved "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz"
+ integrity sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==
+
+"@types/whatwg-url@^11.0.2":
+ version "11.0.5"
+ resolved "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.5.tgz"
+ integrity sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==
+ dependencies:
+ "@types/webidl-conversions" "*"
+
"@typescript-eslint/eslint-plugin@^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0":
version "8.46.2"
resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.2.tgz"
@@ -3116,7 +3247,7 @@
natural-compare "^1.4.0"
ts-api-utils "^2.1.0"
-"@typescript-eslint/parser@^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0":
+"@typescript-eslint/parser@^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/parser@^8.46.2":
version "8.46.2"
resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.2.tgz"
integrity sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g==
@@ -3772,7 +3903,7 @@ acorn-walk@^8.1.1:
dependencies:
acorn "^8.11.0"
-acorn@^8.11.0, acorn@^8.15.0, acorn@^8.4.1, acorn@^8.6.0, acorn@^8.9.0:
+"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8, acorn@^8.11.0, acorn@^8.14.0, acorn@^8.15.0, acorn@^8.4.1, acorn@^8.6.0, acorn@^8.9.0:
version "8.15.0"
resolved "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz"
integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==
@@ -3813,7 +3944,7 @@ ajv-keywords@^5.1.0:
dependencies:
fast-deep-equal "^3.1.3"
-ajv@^6.0.0, ajv@^6.12.4:
+ajv@^6.0.0, ajv@^6.12.4, ajv@^6.9.1, ajv@>=8:
version "6.12.6"
resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
@@ -3843,7 +3974,7 @@ ajv@^8.6.0:
json-schema-traverse "^1.0.0"
require-from-string "^2.0.2"
-ajv@^8.9.0:
+ajv@^8.8.2, ajv@^8.9.0:
version "8.17.1"
resolved "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz"
integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==
@@ -4181,6 +4312,11 @@ baseline-browser-mapping@^2.8.19:
resolved "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.21.tgz"
integrity sha512-JU0h5APyQNsHOlAM7HnQnPToSDQoEBZqzu/YBlqDnEeymPnZDREeXJA3KBMQee+dKteAxZ2AtvQEvVYdZf241Q==
+bcryptjs@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/bcryptjs/-/bcryptjs-3.0.2.tgz"
+ integrity sha512-k38b3XOZKv60C4E2hVsXTolJWfkGRMbILBIe2IBITXciy5bOsTKot5kDrf3ZfufQtQOUN5mXceUEpU1rTl9Uog==
+
bech32@^1.1.4:
version "1.1.4"
resolved "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz"
@@ -4275,7 +4411,7 @@ brorand@^1.1.0:
resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz"
integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==
-browserslist@^4.24.0, browserslist@^4.26.3:
+browserslist@^4.24.0, browserslist@^4.26.3, "browserslist@>= 4.21.0":
version "4.27.0"
resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.27.0.tgz"
integrity sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==
@@ -4302,6 +4438,11 @@ bs58check@^2.1.1, bs58check@^2.1.2, bs58check@<3.0.0:
create-hash "^1.1.0"
safe-buffer "^5.1.2"
+bson@^6.10.4:
+ version "6.10.4"
+ resolved "https://registry.npmjs.org/bson/-/bson-6.10.4.tgz"
+ integrity sha512-WIsKqkSC0ABoBJuT1LEX+2HEvNmNKKgnTAyd0fL8qzK4SH2i9NXg+t08YtdZp/V9IZ33cxe3iV4yM0qg8lMQng==
+
buffer-crc32@~0.2.3:
version "0.2.13"
resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz"
@@ -4402,7 +4543,7 @@ chai@^5.2.0:
loupe "^3.1.0"
pathval "^2.0.0"
-chalk@^4.0.0:
+chalk@5.3.0:
version "5.3.0"
resolved "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz"
integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==
@@ -4508,14 +4649,14 @@ code-block-writer@^10.1.1:
resolved "https://registry.npmjs.org/code-block-writer/-/code-block-writer-10.1.1.tgz"
integrity sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw==
-color-convert@^2.0.1:
+color-convert@^2.0.1, color-convert@2.0.1:
version "2.0.1"
resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
dependencies:
color-name "~1.1.4"
-color-name@^1.0.0, color-name@~1.1.4:
+color-name@^1.0.0, color-name@1.1.4:
version "1.1.4"
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
@@ -4689,7 +4830,7 @@ cssstyle@^4.2.1:
"@asamuzakjp/css-color" "^3.2.0"
rrweb-cssom "^0.8.0"
-csstype@^3.0.2, csstype@^3.1.3:
+csstype@^3.0.10, csstype@^3.0.2, csstype@^3.1.3:
version "3.1.3"
resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz"
integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
@@ -4699,6 +4840,77 @@ culori@^3:
resolved "https://registry.npmjs.org/culori/-/culori-3.3.0.tgz"
integrity sha512-pHJg+jbuFsCjz9iclQBqyL3B2HLCBF71BwVNujUYEvCeQMvV97R59MNK3R2+jgJ3a1fcZgI9B3vYgz8lzr/BFQ==
+d3-array@^3.1.6, "d3-array@2 - 3", "d3-array@2.10.0 - 3":
+ version "3.2.4"
+ resolved "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz"
+ integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==
+ dependencies:
+ internmap "1 - 2"
+
+"d3-color@1 - 3":
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz"
+ integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==
+
+d3-ease@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz"
+ integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==
+
+"d3-format@1 - 3":
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz"
+ integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==
+
+d3-interpolate@^3.0.1, "d3-interpolate@1.2.0 - 3":
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz"
+ integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==
+ dependencies:
+ d3-color "1 - 3"
+
+d3-path@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz"
+ integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==
+
+d3-scale@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz"
+ integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==
+ dependencies:
+ d3-array "2.10.0 - 3"
+ d3-format "1 - 3"
+ d3-interpolate "1.2.0 - 3"
+ d3-time "2.1.1 - 3"
+ d3-time-format "2 - 4"
+
+d3-shape@^3.1.0:
+ version "3.2.0"
+ resolved "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz"
+ integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==
+ dependencies:
+ d3-path "^3.1.0"
+
+"d3-time-format@2 - 4":
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz"
+ integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==
+ dependencies:
+ d3-time "1 - 3"
+
+d3-time@^3.0.0, "d3-time@1 - 3", "d3-time@2.1.1 - 3":
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz"
+ integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==
+ dependencies:
+ d3-array "2 - 3"
+
+d3-timer@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz"
+ integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==
+
daisyui@^4.7.3, daisyui@latest:
version "4.12.24"
resolved "https://registry.npmjs.org/daisyui/-/daisyui-4.12.24.tgz"
@@ -4770,6 +4982,11 @@ debug@4.1.1:
dependencies:
ms "^2.1.1"
+decimal.js-light@^2.5.1:
+ version "2.5.1"
+ resolved "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz"
+ integrity sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==
+
decimal.js@^10.5.0:
version "10.6.0"
resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz"
@@ -5132,6 +5349,11 @@ es-to-primitive@^1.3.0:
is-date-object "^1.0.5"
is-symbol "^1.0.4"
+es-toolkit@^1.39.3:
+ version "1.41.0"
+ resolved "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.41.0.tgz"
+ integrity sha512-bDd3oRmbVgqZCJS6WmeQieOrzpl3URcWBUVDXxOELlUW2FuW+0glPOz1n0KnRie+PdyvUZcXz2sOn00c6pPRIA==
+
esbuild-android-64@0.14.47:
version "0.14.47"
resolved "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.47.tgz"
@@ -5345,7 +5567,7 @@ eslint-module-utils@^2.12.1:
dependencies:
debug "^3.2.7"
-eslint-plugin-import@^2.31.0:
+eslint-plugin-import@*, eslint-plugin-import@^2.31.0:
version "2.32.0"
resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz"
integrity sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==
@@ -5446,7 +5668,7 @@ eslint-visitor-keys@^4.2.1:
resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz"
integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==
-eslint@^8:
+eslint@*, "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7", "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.23.0 || ^8.0.0 || ^9.0.0", eslint@^8, "eslint@^8.57.0 || ^9.0.0":
version "8.57.1"
resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz"
integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==
@@ -6249,6 +6471,11 @@ ignore@^7.0.0:
resolved "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz"
integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==
+immer@^10.0.3, immer@^10.1.1, immer@>=9.0.6:
+ version "10.2.0"
+ resolved "https://registry.npmjs.org/immer/-/immer-10.2.0.tgz"
+ integrity sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==
+
import-fresh@^3.2.1:
version "3.3.1"
resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz"
@@ -6302,6 +6529,11 @@ internal-slot@^1.1.0:
hasown "^2.0.2"
side-channel "^1.1.0"
+"internmap@1 - 2":
+ version "2.0.3"
+ resolved "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz"
+ integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==
+
interpret@^1.0.0:
version "1.4.0"
resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz"
@@ -6371,7 +6603,7 @@ is-callable@^1.2.7:
resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz"
integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
-is-core-module@^2.13.0, is-core-module@^2.16.1:
+is-core-module@^2.13.0, is-core-module@^2.16.1, is-core-module@2.13.1:
version "2.13.1"
resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz"
integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==
@@ -6700,11 +6932,16 @@ jest-worker@^27.4.5:
merge-stream "^2.0.0"
supports-color "^8.0.0"
-jiti@^2.6.1:
+jiti@^2.6.1, jiti@>=1.21.0:
version "2.6.1"
resolved "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz"
integrity sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==
+jose@^6.0.6:
+ version "6.1.0"
+ resolved "https://registry.npmjs.org/jose/-/jose-6.1.0.tgz"
+ integrity sha512-TTQJyoEoKcC1lscpVDCSsVgYzUDg/0Bt3WE//WiTPK6uOCQC2KZS4MpugbMWt/zyjkopgZoXhZuCi00gLudfUA==
+
js-sha3@0.8.0:
version "0.8.0"
resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz"
@@ -6727,7 +6964,7 @@ js-yaml@^4.1.0:
dependencies:
argparse "^2.0.1"
-jsdom@^26.0.0:
+jsdom@*, jsdom@^26.0.0:
version "26.1.0"
resolved "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz"
integrity sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==
@@ -6931,7 +7168,7 @@ lightningcss-win32-x64-msvc@1.30.2:
resolved "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.2.tgz"
integrity sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==
-lightningcss@1.30.2:
+lightningcss@^1.21.0, lightningcss@1.30.2:
version "1.30.2"
resolved "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz"
integrity sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==
@@ -7124,6 +7361,11 @@ md5.js@^1.3.4:
inherits "^2.0.1"
safe-buffer "^5.1.2"
+memory-pager@^1.0.2:
+ version "1.5.0"
+ resolved "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz"
+ integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==
+
merge-stream@^2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz"
@@ -7299,6 +7541,23 @@ mkdirp@^1.0.4:
resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
+mongodb-connection-string-url@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.2.tgz"
+ integrity sha512-rMO7CGo/9BFwyZABcKAWL8UJwH/Kc2x0g72uhDWzG48URRax5TCIcJ7Rc3RZqffZzO/Gwff/jyKwCU9TN8gehA==
+ dependencies:
+ "@types/whatwg-url" "^11.0.2"
+ whatwg-url "^14.1.0 || ^13.0.0"
+
+mongodb@^6, mongodb@^6.20.0:
+ version "6.20.0"
+ resolved "https://registry.npmjs.org/mongodb/-/mongodb-6.20.0.tgz"
+ integrity sha512-Tl6MEIU3K4Rq3TSHd+sZQqRBoGlFsOgNrH5ltAcFBV62Re3Fd+FcaVf8uSEQFOJ51SDowDVttBTONMfoYWrWlQ==
+ dependencies:
+ "@mongodb-js/saslprep" "^1.3.0"
+ bson "^6.10.4"
+ mongodb-connection-string-url "^3.0.2"
+
mri@1.2.0:
version "1.2.0"
resolved "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz"
@@ -7339,6 +7598,13 @@ neo-async@^2.6.2:
resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz"
integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
+next-auth@5.0.0-beta.30:
+ version "5.0.0-beta.30"
+ resolved "https://registry.npmjs.org/next-auth/-/next-auth-5.0.0-beta.30.tgz"
+ integrity sha512-+c51gquM3F6nMVmoAusRJ7RIoY0K4Ts9HCCwyy/BRoe4mp3msZpOzYMyb5LAYc1wSo74PMQkGDcaghIO7W6Xjg==
+ dependencies:
+ "@auth/core" "0.41.0"
+
next-pwa@^5.6.0:
version "5.6.0"
resolved "https://registry.npmjs.org/next-pwa/-/next-pwa-5.6.0.tgz"
@@ -7356,6 +7622,29 @@ next-themes@^0.2.1:
resolved "https://registry.npmjs.org/next-themes/-/next-themes-0.2.1.tgz"
integrity sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==
+next@*, "next@^14.0.0-0 || ^15.0.0 || ^16.0.0", next@>=9.0.0, next@15.2.4:
+ version "15.2.4"
+ resolved "https://registry.npmjs.org/next/-/next-15.2.4.tgz"
+ integrity sha512-VwL+LAaPSxEkd3lU2xWbgEOtrM8oedmyhBqaVNmgKB+GvZlCy9rgaEc+y2on0wv+l0oSFqLtYD6dcC1eAedUaQ==
+ dependencies:
+ "@next/env" "15.2.4"
+ "@swc/counter" "0.1.3"
+ "@swc/helpers" "0.5.15"
+ busboy "1.6.0"
+ caniuse-lite "^1.0.30001579"
+ postcss "8.4.31"
+ styled-jsx "5.1.6"
+ optionalDependencies:
+ "@next/swc-darwin-arm64" "15.2.4"
+ "@next/swc-darwin-x64" "15.2.4"
+ "@next/swc-linux-arm64-gnu" "15.2.4"
+ "@next/swc-linux-arm64-musl" "15.2.4"
+ "@next/swc-linux-x64-gnu" "15.2.4"
+ "@next/swc-linux-x64-musl" "15.2.4"
+ "@next/swc-win32-arm64-msvc" "15.2.4"
+ "@next/swc-win32-x64-msvc" "15.2.4"
+ sharp "^0.33.5"
+
"next@^12.2.5 || ^13.0.0":
version "13.5.11"
resolved "https://registry.npmjs.org/next/-/next-13.5.11.tgz"
@@ -7379,29 +7668,6 @@ next-themes@^0.2.1:
"@next/swc-win32-ia32-msvc" "13.5.9"
"@next/swc-win32-x64-msvc" "13.5.9"
-next@15.2.4:
- version "15.2.4"
- resolved "https://registry.npmjs.org/next/-/next-15.2.4.tgz"
- integrity sha512-VwL+LAaPSxEkd3lU2xWbgEOtrM8oedmyhBqaVNmgKB+GvZlCy9rgaEc+y2on0wv+l0oSFqLtYD6dcC1eAedUaQ==
- dependencies:
- "@next/env" "15.2.4"
- "@swc/counter" "0.1.3"
- "@swc/helpers" "0.5.15"
- busboy "1.6.0"
- caniuse-lite "^1.0.30001579"
- postcss "8.4.31"
- styled-jsx "5.1.6"
- optionalDependencies:
- "@next/swc-darwin-arm64" "15.2.4"
- "@next/swc-darwin-x64" "15.2.4"
- "@next/swc-linux-arm64-gnu" "15.2.4"
- "@next/swc-linux-arm64-musl" "15.2.4"
- "@next/swc-linux-x64-gnu" "15.2.4"
- "@next/swc-linux-x64-musl" "15.2.4"
- "@next/swc-win32-arm64-msvc" "15.2.4"
- "@next/swc-win32-x64-msvc" "15.2.4"
- sharp "^0.33.5"
-
nice-try@^1.0.4:
version "1.0.5"
resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz"
@@ -7477,6 +7743,11 @@ nwsapi@^2.2.16:
resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.22.tgz"
integrity sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==
+oauth4webapi@^3.3.0:
+ version "3.8.2"
+ resolved "https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.2.tgz"
+ integrity sha512-FzZZ+bht5X0FKe7Mwz3DAVAmlH1BV5blSak/lHMBKz0/EBMhX6B10GlQYI51+oRp8ObJaX0g6pXrAxZh5s8rjw==
+
object-assign@^4.0.1, object-assign@^4.1.1:
version "4.1.1"
resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
@@ -7784,7 +8055,7 @@ picocolors@1.0.0:
resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
-picomatch@^2.0.4, picomatch@^2.0.7, picomatch@^2.2.2, picomatch@^2.3.1:
+picomatch@^2.0.4, picomatch@^2.0.7, picomatch@^2.2.2, picomatch@^2.3.1, "picomatch@^3 || ^4":
version "2.3.1"
resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
@@ -7840,7 +8111,7 @@ postcss-js@^4:
dependencies:
camelcase-css "^2.0.1"
-postcss@^8.4.38, postcss@^8.4.41, postcss@^8.5.3, postcss@^8.5.6:
+postcss@^8.4.21, postcss@^8.4.38, postcss@^8.4.41, postcss@^8.5.3, postcss@^8.5.6:
version "8.5.6"
resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz"
integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==
@@ -7858,6 +8129,16 @@ postcss@8.4.31:
picocolors "^1.0.0"
source-map-js "^1.0.2"
+preact-render-to-string@6.5.11:
+ version "6.5.11"
+ resolved "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-6.5.11.tgz"
+ integrity sha512-ubnauqoGczeGISiOh6RjX0/cdaF8v/oDXIjO85XALCQjwQP+SB4RDXXtvZ6yTYSjG+PC1QRP2AhPgCEsM2EvUw==
+
+preact@>=10, preact@10.24.3:
+ version "10.24.3"
+ resolved "https://registry.npmjs.org/preact/-/preact-10.24.3.tgz"
+ integrity sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==
+
prelude-ls@^1.2.1:
version "1.2.1"
resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz"
@@ -7980,14 +8261,14 @@ react-copy-to-clipboard@^5.1.0:
copy-to-clipboard "^3.3.1"
prop-types "^15.8.1"
-react-dom@19.0.0:
+react-dom@*, "react-dom@^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom@^16.8 || ^17.0 || ^18.0", "react-dom@^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom@^18.0.0 || ^19.0.0", "react-dom@^18.0.0 || ^19.0.0 || ^19.0.0-rc", react-dom@^18.2.0, "react-dom@^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", react-dom@>=16, react-dom@>=16.8.0:
version "19.0.0"
resolved "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz"
integrity sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==
dependencies:
scheduler "^0.25.0"
-react-hook-form@^7.65.0:
+react-hook-form@^7.55.0, react-hook-form@^7.65.0:
version "7.65.0"
resolved "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.65.0.tgz"
integrity sha512-xtOzDz063WcXvGWaHgLNrNzlsdFgtUWcb32E6WFaGTd7kPZG3EeDusjdZfUsPwKCKVXy1ZlntifaHZ4l8pAsmw==
@@ -8005,11 +8286,19 @@ react-is@^16.13.1:
resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
-react-is@^17.0.1:
+"react-is@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", react-is@^17.0.1:
version "17.0.2"
resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz"
integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
+"react-redux@^7.2.1 || ^8.1.3 || ^9.0.0", "react-redux@8.x.x || 9.x.x":
+ version "9.2.0"
+ resolved "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz"
+ integrity sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==
+ dependencies:
+ "@types/use-sync-external-store" "^0.0.6"
+ use-sync-external-store "^1.4.0"
+
react-refresh@^0.17.0:
version "0.17.0"
resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz"
@@ -8042,7 +8331,7 @@ react-style-singleton@^2.2.2, react-style-singleton@^2.2.3:
get-nonce "^1.0.0"
tslib "^2.0.0"
-react@19.0.0:
+react@*, "react@^15.3.0 || 16 || 17 || 18", "react@^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.8 || ^17.0 || ^18.0", "react@^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react@^16.8.0 || ^17 || ^18", "react@^16.8.0 || ^17 || ^18 || ^19", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react@^16.9.0 || ^17.0.0 || ^18 || ^19", "react@^16.x || ^17.x || ^18.x", "react@^18 || ^19", react@^18.0, "react@^18.0 || ^19", "react@^18.0.0 || ^19.0.0", "react@^18.0.0 || ^19.0.0 || ^19.0.0-rc", react@^18.2.0, "react@^18.2.0 || ^19.0.0", "react@^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", react@^19.0.0, "react@>= 16 || ^19.0.0-rc", "react@>= 16.8.0 || 17.x.x || ^18.0.0-0", "react@>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0", react@>=16, react@>=16.8, react@>=16.8.0:
version "19.0.0"
resolved "https://registry.npmjs.org/react/-/react-19.0.0.tgz"
integrity sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==
@@ -8076,6 +8365,23 @@ readdirp@~3.3.0:
dependencies:
picomatch "^2.0.7"
+recharts@^3.3.0:
+ version "3.3.0"
+ resolved "https://registry.npmjs.org/recharts/-/recharts-3.3.0.tgz"
+ integrity sha512-Vi0qmTB0iz1+/Cz9o5B7irVyUjX2ynvEgImbgMt/3sKRREcUM07QiYjS1QpAVrkmVlXqy5gykq4nGWMz9AS4Rg==
+ dependencies:
+ "@reduxjs/toolkit" "1.x.x || 2.x.x"
+ clsx "^2.1.1"
+ decimal.js-light "^2.5.1"
+ es-toolkit "^1.39.3"
+ eventemitter3 "^5.0.1"
+ immer "^10.1.1"
+ react-redux "8.x.x || 9.x.x"
+ reselect "5.1.1"
+ tiny-invariant "^1.3.3"
+ use-sync-external-store "^1.2.2"
+ victory-vendor "^37.0.2"
+
rechoir@^0.6.2:
version "0.6.2"
resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz"
@@ -8105,6 +8411,16 @@ redeyed@~2.1.0:
dependencies:
esprima "~4.0.0"
+redux-thunk@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz"
+ integrity sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==
+
+redux@^5.0.0, redux@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz"
+ integrity sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==
+
reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.9:
version "1.0.10"
resolved "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz"
@@ -8177,6 +8493,11 @@ require-from-string@^2.0.2:
resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz"
integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
+reselect@^5.1.0, reselect@5.1.1:
+ version "5.1.1"
+ resolved "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz"
+ integrity sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==
+
resolve-cwd@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz"
@@ -8254,14 +8575,7 @@ rollup-plugin-terser@^7.0.0:
serialize-javascript "^4.0.0"
terser "^5.0.0"
-rollup@^2.43.1:
- version "2.79.2"
- resolved "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz"
- integrity sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==
- optionalDependencies:
- fsevents "~2.3.2"
-
-rollup@^4.34.9:
+"rollup@^1.20.0 || ^2.0.0", rollup@^1.20.0||^2.0.0, rollup@^2.0.0, rollup@^4.34.9:
version "4.52.5"
resolved "https://registry.npmjs.org/rollup/-/rollup-4.52.5.tgz"
integrity sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==
@@ -8292,6 +8606,13 @@ rollup@^4.34.9:
"@rollup/rollup-win32-x64-msvc" "4.52.5"
fsevents "~2.3.2"
+rollup@^2.43.1:
+ version "2.79.2"
+ resolved "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz"
+ integrity sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==
+ optionalDependencies:
+ fsevents "~2.3.2"
+
rrweb-cssom@^0.8.0:
version "0.8.0"
resolved "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz"
@@ -8654,6 +8975,11 @@ slash@^3.0.0:
resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz"
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
+sonner@^2.0.7:
+ version "2.0.7"
+ resolved "https://registry.npmjs.org/sonner/-/sonner-2.0.7.tgz"
+ integrity sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==
+
source-list-map@^2.0.0:
version "2.0.1"
resolved "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz"
@@ -8689,6 +9015,13 @@ sourcemap-codec@^1.4.8:
resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz"
integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
+sparse-bitfield@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz"
+ integrity sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==
+ dependencies:
+ memory-pager "^1.0.2"
+
stable-hash@^0.0.5:
version "0.0.5"
resolved "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz"
@@ -8699,7 +9032,7 @@ stackback@0.0.2:
resolved "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz"
integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==
-starknet@8.5.3:
+starknet@^7, starknet@^8.1.2, starknet@^8.5.3, starknet@8.5.3:
version "8.5.3"
resolved "https://registry.npmjs.org/starknet/-/starknet-8.5.3.tgz"
integrity sha512-E0Z4Jk3W0hS8FgMFjS4mPown6zrFfR7rUwGBlskgUc4X7ZqEfOO15s90kXIFI2letcM3bI6APRytYfBMhBKoPQ==
@@ -8877,7 +9210,7 @@ stringify-object@^3.3.0:
dependencies:
ansi-regex "^5.0.1"
-strip-ansi@^6.0.0, strip-ansi@^6.0.1, strip-ansi@^7.0.1:
+strip-ansi@^6.0.0, strip-ansi@^6.0.1, strip-ansi@^7.0.1, strip-ansi@7.1.0:
version "7.1.0"
resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz"
integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==
@@ -8971,7 +9304,7 @@ tailwindcss-animate@^1.0.7:
resolved "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz"
integrity sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==
-tailwindcss@^4, tailwindcss@4.1.16:
+tailwindcss@^4, "tailwindcss@>=3.0.0 || insiders", tailwindcss@4.1.16:
version "4.1.16"
resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.16.tgz"
integrity sha512-pONL5awpaQX4LN5eiv7moSiSPd/DLDzKVRJz8Q9PgzmAdd1R4307GQS2ZpfiN7ZmekdQrfhZZiSE5jkLR4WNaA==
@@ -9032,7 +9365,7 @@ terser-webpack-plugin@^5.3.11, terser-webpack-plugin@^5.3.3:
serialize-javascript "^6.0.2"
terser "^5.31.1"
-terser@^5.0.0, terser@^5.31.1:
+terser@^5.0.0, terser@^5.16.0, terser@^5.31.1:
version "5.44.0"
resolved "https://registry.npmjs.org/terser/-/terser-5.44.0.tgz"
integrity sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==
@@ -9063,6 +9396,11 @@ time-span@4.0.0:
dependencies:
convert-hrtime "^3.0.0"
+tiny-invariant@^1.3.3:
+ version "1.3.3"
+ resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz"
+ integrity sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==
+
tiny-secp256k1@^1.1.3:
version "1.1.7"
resolved "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.7.tgz"
@@ -9315,12 +9653,12 @@ typeforce@^1.11.5, typeforce@^1.18.0:
resolved "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz"
integrity sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==
-typescript@^5:
+typescript@^5, typescript@>=3.3.1, typescript@>=4.8.4, "typescript@>=4.8.4 <6.0.0", typescript@>=5.0.4, typescript@>=5.4.0:
version "5.9.3"
resolved "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz"
integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==
-typescript@4.9.5:
+typescript@>=2.7, typescript@4.9.5:
version "4.9.5"
resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz"
integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==
@@ -9464,7 +9802,7 @@ use-sidecar@^1.1.3:
detect-node-es "^1.1.0"
tslib "^2.0.0"
-use-sync-external-store@^1.2.2, use-sync-external-store@^1.5.0:
+use-sync-external-store@^1.2.2, use-sync-external-store@^1.4.0, use-sync-external-store@^1.5.0:
version "1.6.0"
resolved "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz"
integrity sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==
@@ -9519,6 +9857,26 @@ vercel@^33.7.1:
"@vercel/static-build" "2.4.6"
chokidar "3.3.1"
+victory-vendor@^37.0.2:
+ version "37.3.6"
+ resolved "https://registry.npmjs.org/victory-vendor/-/victory-vendor-37.3.6.tgz"
+ integrity sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==
+ dependencies:
+ "@types/d3-array" "^3.0.3"
+ "@types/d3-ease" "^3.0.0"
+ "@types/d3-interpolate" "^3.0.1"
+ "@types/d3-scale" "^4.0.2"
+ "@types/d3-shape" "^3.1.0"
+ "@types/d3-time" "^3.0.0"
+ "@types/d3-timer" "^3.0.0"
+ d3-array "^3.1.6"
+ d3-ease "^3.0.1"
+ d3-interpolate "^3.0.1"
+ d3-scale "^4.0.2"
+ d3-shape "^3.1.0"
+ d3-time "^3.0.0"
+ d3-timer "^3.0.1"
+
viem@^2.21.1:
version "2.38.5"
resolved "https://registry.npmjs.org/viem/-/viem-2.38.5.tgz"
@@ -9544,7 +9902,7 @@ vite-node@3.2.4:
pathe "^2.0.3"
vite "^5.0.0 || ^6.0.0 || ^7.0.0-0"
-"vite@^5.0.0 || ^6.0.0 || ^7.0.0-0", vite@^6.2.3:
+"vite@^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", "vite@^5.0.0 || ^6.0.0 || ^7.0.0-0", vite@^6.2.3:
version "6.4.1"
resolved "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz"
integrity sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==
@@ -9558,7 +9916,7 @@ vite-node@3.2.4:
optionalDependencies:
fsevents "~2.3.3"
-vitest@^3.0.9:
+vitest@^3.0.9, vitest@2.1.9:
version "3.2.4"
resolved "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz"
integrity sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==
@@ -9630,7 +9988,7 @@ webidl-conversions@^7.0.0:
resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz"
integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==
-webpack-cli@^6.0.1:
+webpack-cli@^6.0.1, webpack-cli@6.x.x:
version "6.0.1"
resolved "https://registry.npmjs.org/webpack-cli/-/webpack-cli-6.0.1.tgz"
integrity sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw==
@@ -9671,7 +10029,7 @@ webpack-sources@^3.3.3:
resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz"
integrity sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==
-webpack@^5.97.1:
+"webpack@^4.4.0 || ^5.9.0", webpack@^5.1.0, webpack@^5.82.0, webpack@^5.97.1, webpack@>=2, "webpack@>=4.0.0 <6.0.0":
version "5.102.1"
resolved "https://registry.npmjs.org/webpack/-/webpack-5.102.1.tgz"
integrity sha512-7h/weGm9d/ywQ6qzJ+Xy+r9n/3qgp/thalBbpOi5i223dPXKi04IBtqPN9nTd+jBc7QKfvDbaBnFipYp4sJAUQ==
@@ -9714,7 +10072,7 @@ whatwg-mimetype@^4.0.0:
resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz"
integrity sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==
-whatwg-url@^14.0.0, whatwg-url@^14.1.1:
+whatwg-url@^14.0.0, "whatwg-url@^14.1.0 || ^13.0.0", whatwg-url@^14.1.1:
version "14.2.0"
resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz"
integrity sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==
@@ -10039,16 +10397,16 @@ wrappy@1:
resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
+ws@*, ws@8.17.1:
+ version "8.17.1"
+ resolved "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz"
+ integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==
+
ws@^8.18.0:
version "8.18.3"
resolved "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz"
integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==
-ws@8.17.1:
- version "8.17.1"
- resolved "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz"
- integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==
-
ws@8.18.3:
version "8.18.3"
resolved "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz"
@@ -10144,16 +10502,16 @@ yocto-queue@^0.1.0:
resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
+"zod@^3.22.0 || ^4.0.0", zod@^4.1.12:
+ version "4.1.12"
+ resolved "https://registry.npmjs.org/zod/-/zod-4.1.12.tgz"
+ integrity sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==
+
zod@^3.22.4:
version "3.25.76"
resolved "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz"
integrity sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==
-zod@^4.1.12:
- version "4.1.12"
- resolved "https://registry.npmjs.org/zod/-/zod-4.1.12.tgz"
- integrity sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==
-
zustand@^4.1.2:
version "4.5.7"
resolved "https://registry.npmjs.org/zustand/-/zustand-4.5.7.tgz"