diff --git a/docs/.gitignore b/docs/.gitignore
deleted file mode 100644
index fd3dbb5..0000000
--- a/docs/.gitignore
+++ /dev/null
@@ -1,36 +0,0 @@
-# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
-
-# dependencies
-/node_modules
-/.pnp
-.pnp.js
-.yarn/install-state.gz
-
-# testing
-/coverage
-
-# next.js
-/.next/
-/out/
-
-# production
-/build
-
-# misc
-.DS_Store
-*.pem
-
-# debug
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-
-# local env files
-.env*.local
-
-# vercel
-.vercel
-
-# typescript
-*.tsbuildinfo
-next-env.d.ts
diff --git a/docs/DOCS_GUIDE.md b/docs/DOCS_GUIDE.md
deleted file mode 100644
index 160be49..0000000
--- a/docs/DOCS_GUIDE.md
+++ /dev/null
@@ -1,291 +0,0 @@
-# Starknode-kit Documentation Guide
-
-This guide explains how to run and develop the starknode-kit documentation site.
-
-## Quick Start
-
-### Installation
-
-```bash
-cd docs
-npm install
-```
-
-### Development Server
-
-Run the development server:
-
-```bash
-npm run dev
-```
-
-Open [http://localhost:3000](http://localhost:3000) in your browser to see the documentation.
-
-The page auto-updates as you edit files.
-
-### Production Build
-
-Build for production:
-
-```bash
-npm run build
-npm start
-```
-
-## Documentation Structure
-
-```
-docs/
-├── src/
-│ ├── app/ # Next.js pages (App Router)
-│ │ ├── page.tsx # Homepage
-│ │ ├── layout.tsx # Root layout with sidebar/header
-│ │ ├── globals.css # Global styles
-│ │ ├── getting-started/ # Getting started guide
-│ │ ├── installation/ # Installation guide
-│ │ ├── configuration/ # Configuration docs
-│ │ ├── commands/ # Command reference
-│ │ ├── clients/ # Client documentation
-│ │ ├── validator/ # Validator setup guide
-│ │ ├── requirements/ # Requirements page
-│ │ └── contributing/ # Contributing guide
-│ └── components/ # Reusable components
-│ ├── Sidebar.tsx # Navigation sidebar
-│ ├── Header.tsx # Top header with search
-│ └── CodeBlock.tsx # Code block component
-├── public/ # Static assets
-├── package.json # Dependencies
-└── README.md # Documentation README
-
-```
-
-## Features
-
-### GitBook-Style Layout
-
-- **Fixed Sidebar** - Navigation always visible on the left
-- **Header** - Search and links at the top
-- **Content Area** - Main documentation content
-- **Responsive** - Works on mobile and desktop
-
-### Components
-
-#### Sidebar (`components/Sidebar.tsx`)
-
-- Hierarchical navigation
-- Active page highlighting
-- Collapsible sections
-- Links to all documentation pages
-
-#### Header (`components/Header.tsx`)
-
-- Search bar (placeholder, can be enhanced)
-- GitHub link
-- Telegram link
-- Dark mode support
-
-#### CodeBlock (`components/CodeBlock.tsx`)
-
-- Syntax-highlighted code blocks
-- Copy-to-clipboard button
-- Language support
-- Dark theme optimized
-
-### Styling
-
-- **Tailwind CSS** - Utility-first CSS framework
-- **Dark Mode** - Automatic based on system preference
-- **Custom Scrollbars** - Styled for better UX
-- **Prose** - Typography optimized for documentation
-
-## Adding New Pages
-
-### 1. Create Page File
-
-Create a new `page.tsx` in the appropriate directory:
-
-```bash
-mkdir -p src/app/your-page
-```
-
-```tsx
-// src/app/your-page/page.tsx
-import CodeBlock from '@/components/CodeBlock';
-
-export default function YourPage() {
- return (
-
-
Your Page Title
-
Your content here...
-
-
-
- );
-}
-```
-
-### 2. Add to Navigation
-
-Update `src/components/Sidebar.tsx`:
-
-```tsx
-const navigation: NavItem[] = [
- // ... existing items
- { title: 'Your Page', href: '/your-page' },
-];
-```
-
-### 3. Test
-
-```bash
-npm run dev
-```
-
-Visit `http://localhost:3000/your-page`
-
-## Deployment
-
-### Vercel (Recommended)
-
-1. Push to GitHub
-2. Import project in Vercel
-3. Deploy automatically
-
-### Self-Hosted
-
-```bash
-npm run build
-npm start
-```
-
-Or use a process manager like PM2:
-
-```bash
-pm2 start npm --name "starknode-docs" -- start
-```
-
-### Static Export
-
-For static hosting (GitHub Pages, etc.):
-
-```bash
-# Add to next.config.ts:
-# output: 'export'
-
-npm run build
-# Output will be in 'out/' directory
-```
-
-## Customization
-
-### Colors
-
-Edit `src/app/globals.css`:
-
-```css
-:root {
- --background: #ffffff;
- --foreground: #171717;
-}
-```
-
-### Fonts
-
-Edit `src/app/layout.tsx`:
-
-```tsx
-import { Inter } from "next/font/google";
-
-const inter = Inter({
- subsets: ["latin"],
- variable: "--font-inter",
-});
-```
-
-### Navigation
-
-Edit `src/components/Sidebar.tsx`:
-
-```tsx
-const navigation: NavItem[] = [
- // Add/remove/reorder items
-];
-```
-
-## Tips
-
-### Use CodeBlock Component
-
-```tsx
-import CodeBlock from '@/components/CodeBlock';
-
-
-```
-
-### Use Prose Styling
-
-Always wrap content in prose div:
-
-```tsx
-
- {/* Your content */}
-
-```
-
-### Add Info Boxes
-
-```tsx
-
-
💡 Tip
-
Your tip here
-
-```
-
-### Link Between Pages
-
-```tsx
-import Link from 'next/link';
-
- Other Page
-```
-
-## Troubleshooting
-
-### Port Already in Use
-
-```bash
-# Kill process on port 3000
-lsof -i :3000
-kill -9 [PID]
-
-# Or use different port
-PORT=3001 npm run dev
-```
-
-### Build Errors
-
-```bash
-# Clean and rebuild
-rm -rf .next node_modules
-npm install
-npm run build
-```
-
-### Styling Not Updating
-
-```bash
-# Clear Next.js cache
-rm -rf .next
-npm run dev
-```
-
-## Resources
-
-- [Next.js Documentation](https://nextjs.org/docs)
-- [Tailwind CSS](https://tailwindcss.com/docs)
-- [React Documentation](https://react.dev/)
-
-## Contributing
-
-See the main [Contributing Guide](../CONTRIBUTING.md) for guidelines on contributing to the documentation.
-
diff --git a/docs/README.md b/docs/README.md
index f787ecc..d394eff 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -72,4 +72,4 @@ This project is licensed under the MIT License - see the [LICENSE](https://githu
---
-*Built with ❤️ by The Buidl Grid*
+*Built with ❤️ by The Buidl Grid*
\ No newline at end of file
diff --git a/docs/next.config.ts b/docs/next.config.ts
deleted file mode 100644
index e9ffa30..0000000
--- a/docs/next.config.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import type { NextConfig } from "next";
-
-const nextConfig: NextConfig = {
- /* config options here */
-};
-
-export default nextConfig;
diff --git a/docs/package-lock.json b/docs/package-lock.json
deleted file mode 100644
index 281b15d..0000000
--- a/docs/package-lock.json
+++ /dev/null
@@ -1,1667 +0,0 @@
-{
- "name": "docs",
- "version": "0.1.0",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "name": "docs",
- "version": "0.1.0",
- "dependencies": {
- "next": "15.5.4",
- "react": "19.1.0",
- "react-dom": "19.1.0"
- },
- "devDependencies": {
- "@tailwindcss/postcss": "^4",
- "@types/node": "^20",
- "@types/react": "^19",
- "@types/react-dom": "^19",
- "tailwindcss": "^4",
- "typescript": "^5"
- }
- },
- "node_modules/@alloc/quick-lru": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
- "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@emnapi/runtime": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz",
- "integrity": "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==",
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@img/colour": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz",
- "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==",
- "license": "MIT",
- "optional": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@img/sharp-darwin-arm64": {
- "version": "0.34.4",
- "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.4.tgz",
- "integrity": "sha512-sitdlPzDVyvmINUdJle3TNHl+AG9QcwiAMsXmccqsCOMZNIdW2/7S26w0LyU8euiLVzFBL3dXPwVCq/ODnf2vA==",
- "cpu": [
- "arm64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-darwin-arm64": "1.2.3"
- }
- },
- "node_modules/@img/sharp-darwin-x64": {
- "version": "0.34.4",
- "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.4.tgz",
- "integrity": "sha512-rZheupWIoa3+SOdF/IcUe1ah4ZDpKBGWcsPX6MT0lYniH9micvIU7HQkYTfrx5Xi8u+YqwLtxC/3vl8TQN6rMg==",
- "cpu": [
- "x64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-darwin-x64": "1.2.3"
- }
- },
- "node_modules/@img/sharp-libvips-darwin-arm64": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.3.tgz",
- "integrity": "sha512-QzWAKo7kpHxbuHqUC28DZ9pIKpSi2ts2OJnoIGI26+HMgq92ZZ4vk8iJd4XsxN+tYfNJxzH6W62X5eTcsBymHw==",
- "cpu": [
- "arm64"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "darwin"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-darwin-x64": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.3.tgz",
- "integrity": "sha512-Ju+g2xn1E2AKO6YBhxjj+ACcsPQRHT0bhpglxcEf+3uyPY+/gL8veniKoo96335ZaPo03bdDXMv0t+BBFAbmRA==",
- "cpu": [
- "x64"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "darwin"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-linux-arm": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.3.tgz",
- "integrity": "sha512-x1uE93lyP6wEwGvgAIV0gP6zmaL/a0tGzJs/BIDDG0zeBhMnuUPm7ptxGhUbcGs4okDJrk4nxgrmxpib9g6HpA==",
- "cpu": [
- "arm"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "linux"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-linux-arm64": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.3.tgz",
- "integrity": "sha512-I4RxkXU90cpufazhGPyVujYwfIm9Nk1QDEmiIsaPwdnm013F7RIceaCc87kAH+oUB1ezqEvC6ga4m7MSlqsJvQ==",
- "cpu": [
- "arm64"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "linux"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-linux-ppc64": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.3.tgz",
- "integrity": "sha512-Y2T7IsQvJLMCBM+pmPbM3bKT/yYJvVtLJGfCs4Sp95SjvnFIjynbjzsa7dY1fRJX45FTSfDksbTp6AGWudiyCg==",
- "cpu": [
- "ppc64"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "linux"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-linux-s390x": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.3.tgz",
- "integrity": "sha512-RgWrs/gVU7f+K7P+KeHFaBAJlNkD1nIZuVXdQv6S+fNA6syCcoboNjsV2Pou7zNlVdNQoQUpQTk8SWDHUA3y/w==",
- "cpu": [
- "s390x"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "linux"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-linux-x64": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.3.tgz",
- "integrity": "sha512-3JU7LmR85K6bBiRzSUc/Ff9JBVIFVvq6bomKE0e63UXGeRw2HPVEjoJke1Yx+iU4rL7/7kUjES4dZ/81Qjhyxg==",
- "cpu": [
- "x64"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "linux"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-linuxmusl-arm64": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.3.tgz",
- "integrity": "sha512-F9q83RZ8yaCwENw1GieztSfj5msz7GGykG/BA+MOUefvER69K/ubgFHNeSyUu64amHIYKGDs4sRCMzXVj8sEyw==",
- "cpu": [
- "arm64"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "linux"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-linuxmusl-x64": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.3.tgz",
- "integrity": "sha512-U5PUY5jbc45ANM6tSJpsgqmBF/VsL6LnxJmIf11kB7J5DctHgqm0SkuXzVWtIY90GnJxKnC/JT251TDnk1fu/g==",
- "cpu": [
- "x64"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "linux"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-linux-arm": {
- "version": "0.34.4",
- "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.4.tgz",
- "integrity": "sha512-Xyam4mlqM0KkTHYVSuc6wXRmM7LGN0P12li03jAnZ3EJWZqj83+hi8Y9UxZUbxsgsK1qOEwg7O0Bc0LjqQVtxA==",
- "cpu": [
- "arm"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linux-arm": "1.2.3"
- }
- },
- "node_modules/@img/sharp-linux-arm64": {
- "version": "0.34.4",
- "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.4.tgz",
- "integrity": "sha512-YXU1F/mN/Wu786tl72CyJjP/Ngl8mGHN1hST4BGl+hiW5jhCnV2uRVTNOcaYPs73NeT/H8Upm3y9582JVuZHrQ==",
- "cpu": [
- "arm64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linux-arm64": "1.2.3"
- }
- },
- "node_modules/@img/sharp-linux-ppc64": {
- "version": "0.34.4",
- "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.4.tgz",
- "integrity": "sha512-F4PDtF4Cy8L8hXA2p3TO6s4aDt93v+LKmpcYFLAVdkkD3hSxZzee0rh6/+94FpAynsuMpLX5h+LRsSG3rIciUQ==",
- "cpu": [
- "ppc64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linux-ppc64": "1.2.3"
- }
- },
- "node_modules/@img/sharp-linux-s390x": {
- "version": "0.34.4",
- "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.4.tgz",
- "integrity": "sha512-qVrZKE9Bsnzy+myf7lFKvng6bQzhNUAYcVORq2P7bDlvmF6u2sCmK2KyEQEBdYk+u3T01pVsPrkj943T1aJAsw==",
- "cpu": [
- "s390x"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linux-s390x": "1.2.3"
- }
- },
- "node_modules/@img/sharp-linux-x64": {
- "version": "0.34.4",
- "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.4.tgz",
- "integrity": "sha512-ZfGtcp2xS51iG79c6Vhw9CWqQC8l2Ot8dygxoDoIQPTat/Ov3qAa8qpxSrtAEAJW+UjTXc4yxCjNfxm4h6Xm2A==",
- "cpu": [
- "x64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linux-x64": "1.2.3"
- }
- },
- "node_modules/@img/sharp-linuxmusl-arm64": {
- "version": "0.34.4",
- "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.4.tgz",
- "integrity": "sha512-8hDVvW9eu4yHWnjaOOR8kHVrew1iIX+MUgwxSuH2XyYeNRtLUe4VNioSqbNkB7ZYQJj9rUTT4PyRscyk2PXFKA==",
- "cpu": [
- "arm64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linuxmusl-arm64": "1.2.3"
- }
- },
- "node_modules/@img/sharp-linuxmusl-x64": {
- "version": "0.34.4",
- "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.4.tgz",
- "integrity": "sha512-lU0aA5L8QTlfKjpDCEFOZsTYGn3AEiO6db8W5aQDxj0nQkVrZWmN3ZP9sYKWJdtq3PWPhUNlqehWyXpYDcI9Sg==",
- "cpu": [
- "x64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linuxmusl-x64": "1.2.3"
- }
- },
- "node_modules/@img/sharp-wasm32": {
- "version": "0.34.4",
- "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.4.tgz",
- "integrity": "sha512-33QL6ZO/qpRyG7woB/HUALz28WnTMI2W1jgX3Nu2bypqLIKx/QKMILLJzJjI+SIbvXdG9fUnmrxR7vbi1sTBeA==",
- "cpu": [
- "wasm32"
- ],
- "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT",
- "optional": true,
- "dependencies": {
- "@emnapi/runtime": "^1.5.0"
- },
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-win32-arm64": {
- "version": "0.34.4",
- "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.4.tgz",
- "integrity": "sha512-2Q250do/5WXTwxW3zjsEuMSv5sUU4Tq9VThWKlU2EYLm4MB7ZeMwF+SFJutldYODXF6jzc6YEOC+VfX0SZQPqA==",
- "cpu": [
- "arm64"
- ],
- "license": "Apache-2.0 AND LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-win32-ia32": {
- "version": "0.34.4",
- "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.4.tgz",
- "integrity": "sha512-3ZeLue5V82dT92CNL6rsal6I2weKw1cYu+rGKm8fOCCtJTR2gYeUfY3FqUnIJsMUPIH68oS5jmZ0NiJ508YpEw==",
- "cpu": [
- "ia32"
- ],
- "license": "Apache-2.0 AND LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-win32-x64": {
- "version": "0.34.4",
- "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.4.tgz",
- "integrity": "sha512-xIyj4wpYs8J18sVN3mSQjwrw7fKUqRw+Z5rnHNCy5fYTxigBz81u5mOMPmFumwjcn8+ld1ppptMBCLic1nz6ig==",
- "cpu": [
- "x64"
- ],
- "license": "Apache-2.0 AND LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@isaacs/fs-minipass": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz",
- "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "minipass": "^7.0.4"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.13",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
- "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.0",
- "@jridgewell/trace-mapping": "^0.3.24"
- }
- },
- "node_modules/@jridgewell/remapping": {
- "version": "2.3.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
- "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.24"
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
- "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.31",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
- "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
- }
- },
- "node_modules/@next/env": {
- "version": "15.5.4",
- "resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.4.tgz",
- "integrity": "sha512-27SQhYp5QryzIT5uO8hq99C69eLQ7qkzkDPsk3N+GuS2XgOgoYEeOav7Pf8Tn4drECOVDsDg8oj+/DVy8qQL2A==",
- "license": "MIT"
- },
- "node_modules/@next/swc-darwin-arm64": {
- "version": "15.5.4",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.5.4.tgz",
- "integrity": "sha512-nopqz+Ov6uvorej8ndRX6HlxCYWCO3AHLfKK2TYvxoSB2scETOcfm/HSS3piPqc3A+MUgyHoqE6je4wnkjfrOA==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-darwin-x64": {
- "version": "15.5.4",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.5.4.tgz",
- "integrity": "sha512-QOTCFq8b09ghfjRJKfb68kU9k2K+2wsC4A67psOiMn849K9ZXgCSRQr0oVHfmKnoqCbEmQWG1f2h1T2vtJJ9mA==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-arm64-gnu": {
- "version": "15.5.4",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.5.4.tgz",
- "integrity": "sha512-eRD5zkts6jS3VfE/J0Kt1VxdFqTnMc3QgO5lFE5GKN3KDI/uUpSyK3CjQHmfEkYR4wCOl0R0XrsjpxfWEA++XA==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-arm64-musl": {
- "version": "15.5.4",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.5.4.tgz",
- "integrity": "sha512-TOK7iTxmXFc45UrtKqWdZ1shfxuL4tnVAOuuJK4S88rX3oyVV4ZkLjtMT85wQkfBrOOvU55aLty+MV8xmcJR8A==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-x64-gnu": {
- "version": "15.5.4",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.5.4.tgz",
- "integrity": "sha512-7HKolaj+481FSW/5lL0BcTkA4Ueam9SPYWyN/ib/WGAFZf0DGAN8frNpNZYFHtM4ZstrHZS3LY3vrwlIQfsiMA==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-x64-musl": {
- "version": "15.5.4",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.5.4.tgz",
- "integrity": "sha512-nlQQ6nfgN0nCO/KuyEUwwOdwQIGjOs4WNMjEUtpIQJPR2NUfmGpW2wkJln1d4nJ7oUzd1g4GivH5GoEPBgfsdw==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-win32-arm64-msvc": {
- "version": "15.5.4",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.5.4.tgz",
- "integrity": "sha512-PcR2bN7FlM32XM6eumklmyWLLbu2vs+D7nJX8OAIoWy69Kef8mfiN4e8TUv2KohprwifdpFKPzIP1njuCjD0YA==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-win32-x64-msvc": {
- "version": "15.5.4",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.5.4.tgz",
- "integrity": "sha512-1ur2tSHZj8Px/KMAthmuI9FMp/YFusMMGoRNJaRZMOlSkgvLjzosSdQI0cJAKogdHl3qXUQKL9MGaYvKwA7DXg==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@swc/helpers": {
- "version": "0.5.15",
- "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz",
- "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==",
- "license": "Apache-2.0",
- "dependencies": {
- "tslib": "^2.8.0"
- }
- },
- "node_modules/@tailwindcss/node": {
- "version": "4.1.14",
- "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.14.tgz",
- "integrity": "sha512-hpz+8vFk3Ic2xssIA3e01R6jkmsAhvkQdXlEbRTk6S10xDAtiQiM3FyvZVGsucefq764euO/b8WUW9ysLdThHw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/remapping": "^2.3.4",
- "enhanced-resolve": "^5.18.3",
- "jiti": "^2.6.0",
- "lightningcss": "1.30.1",
- "magic-string": "^0.30.19",
- "source-map-js": "^1.2.1",
- "tailwindcss": "4.1.14"
- }
- },
- "node_modules/@tailwindcss/oxide": {
- "version": "4.1.14",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.14.tgz",
- "integrity": "sha512-23yx+VUbBwCg2x5XWdB8+1lkPajzLmALEfMb51zZUBYaYVPDQvBSD/WYDqiVyBIo2BZFa3yw1Rpy3G2Jp+K0dw==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "dependencies": {
- "detect-libc": "^2.0.4",
- "tar": "^7.5.1"
- },
- "engines": {
- "node": ">= 10"
- },
- "optionalDependencies": {
- "@tailwindcss/oxide-android-arm64": "4.1.14",
- "@tailwindcss/oxide-darwin-arm64": "4.1.14",
- "@tailwindcss/oxide-darwin-x64": "4.1.14",
- "@tailwindcss/oxide-freebsd-x64": "4.1.14",
- "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.14",
- "@tailwindcss/oxide-linux-arm64-gnu": "4.1.14",
- "@tailwindcss/oxide-linux-arm64-musl": "4.1.14",
- "@tailwindcss/oxide-linux-x64-gnu": "4.1.14",
- "@tailwindcss/oxide-linux-x64-musl": "4.1.14",
- "@tailwindcss/oxide-wasm32-wasi": "4.1.14",
- "@tailwindcss/oxide-win32-arm64-msvc": "4.1.14",
- "@tailwindcss/oxide-win32-x64-msvc": "4.1.14"
- }
- },
- "node_modules/@tailwindcss/oxide-android-arm64": {
- "version": "4.1.14",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.14.tgz",
- "integrity": "sha512-a94ifZrGwMvbdeAxWoSuGcIl6/DOP5cdxagid7xJv6bwFp3oebp7y2ImYsnZBMTwjn5Ev5xESvS3FFYUGgPODQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@tailwindcss/oxide-darwin-arm64": {
- "version": "4.1.14",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.14.tgz",
- "integrity": "sha512-HkFP/CqfSh09xCnrPJA7jud7hij5ahKyWomrC3oiO2U9i0UjP17o9pJbxUN0IJ471GTQQmzwhp0DEcpbp4MZTA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@tailwindcss/oxide-darwin-x64": {
- "version": "4.1.14",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.14.tgz",
- "integrity": "sha512-eVNaWmCgdLf5iv6Qd3s7JI5SEFBFRtfm6W0mphJYXgvnDEAZ5sZzqmI06bK6xo0IErDHdTA5/t7d4eTfWbWOFw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@tailwindcss/oxide-freebsd-x64": {
- "version": "4.1.14",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.14.tgz",
- "integrity": "sha512-QWLoRXNikEuqtNb0dhQN6wsSVVjX6dmUFzuuiL09ZeXju25dsei2uIPl71y2Ic6QbNBsB4scwBoFnlBfabHkEw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": {
- "version": "4.1.14",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.14.tgz",
- "integrity": "sha512-VB4gjQni9+F0VCASU+L8zSIyjrLLsy03sjcR3bM0V2g4SNamo0FakZFKyUQ96ZVwGK4CaJsc9zd/obQy74o0Fw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@tailwindcss/oxide-linux-arm64-gnu": {
- "version": "4.1.14",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.14.tgz",
- "integrity": "sha512-qaEy0dIZ6d9vyLnmeg24yzA8XuEAD9WjpM5nIM1sUgQ/Zv7cVkharPDQcmm/t/TvXoKo/0knI3me3AGfdx6w1w==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@tailwindcss/oxide-linux-arm64-musl": {
- "version": "4.1.14",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.14.tgz",
- "integrity": "sha512-ISZjT44s59O8xKsPEIesiIydMG/sCXoMBCqsphDm/WcbnuWLxxb+GcvSIIA5NjUw6F8Tex7s5/LM2yDy8RqYBQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@tailwindcss/oxide-linux-x64-gnu": {
- "version": "4.1.14",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.14.tgz",
- "integrity": "sha512-02c6JhLPJj10L2caH4U0zF8Hji4dOeahmuMl23stk0MU1wfd1OraE7rOloidSF8W5JTHkFdVo/O7uRUJJnUAJg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@tailwindcss/oxide-linux-x64-musl": {
- "version": "4.1.14",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.14.tgz",
- "integrity": "sha512-TNGeLiN1XS66kQhxHG/7wMeQDOoL0S33x9BgmydbrWAb9Qw0KYdd8o1ifx4HOGDWhVmJ+Ul+JQ7lyknQFilO3Q==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@tailwindcss/oxide-wasm32-wasi": {
- "version": "4.1.14",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.14.tgz",
- "integrity": "sha512-uZYAsaW/jS/IYkd6EWPJKW/NlPNSkWkBlaeVBi/WsFQNP05/bzkebUL8FH1pdsqx4f2fH/bWFcUABOM9nfiJkQ==",
- "bundleDependencies": [
- "@napi-rs/wasm-runtime",
- "@emnapi/core",
- "@emnapi/runtime",
- "@tybys/wasm-util",
- "@emnapi/wasi-threads",
- "tslib"
- ],
- "cpu": [
- "wasm32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "@emnapi/core": "^1.5.0",
- "@emnapi/runtime": "^1.5.0",
- "@emnapi/wasi-threads": "^1.1.0",
- "@napi-rs/wasm-runtime": "^1.0.5",
- "@tybys/wasm-util": "^0.10.1",
- "tslib": "^2.4.0"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/@tailwindcss/oxide-win32-arm64-msvc": {
- "version": "4.1.14",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.14.tgz",
- "integrity": "sha512-Az0RnnkcvRqsuoLH2Z4n3JfAef0wElgzHD5Aky/e+0tBUxUhIeIqFBTMNQvmMRSP15fWwmvjBxZ3Q8RhsDnxAA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@tailwindcss/oxide-win32-x64-msvc": {
- "version": "4.1.14",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.14.tgz",
- "integrity": "sha512-ttblVGHgf68kEE4om1n/n44I0yGPkCPbLsqzjvybhpwa6mKKtgFfAzy6btc3HRmuW7nHe0OOrSeNP9sQmmH9XA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@tailwindcss/postcss": {
- "version": "4.1.14",
- "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.1.14.tgz",
- "integrity": "sha512-BdMjIxy7HUNThK87C7BC8I1rE8BVUsfNQSI5siQ4JK3iIa3w0XyVvVL9SXLWO//CtYTcp1v7zci0fYwJOjB+Zg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@alloc/quick-lru": "^5.2.0",
- "@tailwindcss/node": "4.1.14",
- "@tailwindcss/oxide": "4.1.14",
- "postcss": "^8.4.41",
- "tailwindcss": "4.1.14"
- }
- },
- "node_modules/@types/node": {
- "version": "20.19.19",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.19.tgz",
- "integrity": "sha512-pb1Uqj5WJP7wrcbLU7Ru4QtA0+3kAXrkutGiD26wUKzSMgNNaPARTUDQmElUXp64kh3cWdou3Q0C7qwwxqSFmg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "undici-types": "~6.21.0"
- }
- },
- "node_modules/@types/react": {
- "version": "19.2.0",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.0.tgz",
- "integrity": "sha512-1LOH8xovvsKsCBq1wnT4ntDUdCJKmnEakhsuoUSy6ExlHCkGP2hqnatagYTgFk6oeL0VU31u7SNjunPN+GchtA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "csstype": "^3.0.2"
- }
- },
- "node_modules/@types/react-dom": {
- "version": "19.2.0",
- "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.0.tgz",
- "integrity": "sha512-brtBs0MnE9SMx7px208g39lRmC5uHZs96caOJfTjFcYSLHNamvaSMfJNagChVNkup2SdtOxKX1FDBkRSJe1ZAg==",
- "dev": true,
- "license": "MIT",
- "peerDependencies": {
- "@types/react": "^19.2.0"
- }
- },
- "node_modules/caniuse-lite": {
- "version": "1.0.30001747",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001747.tgz",
- "integrity": "sha512-mzFa2DGIhuc5490Nd/G31xN1pnBnYMadtkyTjefPI7wzypqgCEpeWu9bJr0OnDsyKrW75zA9ZAt7pbQFmwLsQg==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "CC-BY-4.0"
- },
- "node_modules/chownr": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz",
- "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/client-only": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
- "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==",
- "license": "MIT"
- },
- "node_modules/csstype": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
- "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/detect-libc": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.1.tgz",
- "integrity": "sha512-ecqj/sy1jcK1uWrwpR67UhYrIFQ+5WlGxth34WquCbamhFA6hkkwiu37o6J5xCHdo1oixJRfVRw+ywV+Hq/0Aw==",
- "devOptional": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/enhanced-resolve": {
- "version": "5.18.3",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz",
- "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "graceful-fs": "^4.2.4",
- "tapable": "^2.2.0"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/graceful-fs": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/jiti": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz",
- "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "jiti": "lib/jiti-cli.mjs"
- }
- },
- "node_modules/lightningcss": {
- "version": "1.30.1",
- "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz",
- "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==",
- "dev": true,
- "license": "MPL-2.0",
- "dependencies": {
- "detect-libc": "^2.0.3"
- },
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- },
- "optionalDependencies": {
- "lightningcss-darwin-arm64": "1.30.1",
- "lightningcss-darwin-x64": "1.30.1",
- "lightningcss-freebsd-x64": "1.30.1",
- "lightningcss-linux-arm-gnueabihf": "1.30.1",
- "lightningcss-linux-arm64-gnu": "1.30.1",
- "lightningcss-linux-arm64-musl": "1.30.1",
- "lightningcss-linux-x64-gnu": "1.30.1",
- "lightningcss-linux-x64-musl": "1.30.1",
- "lightningcss-win32-arm64-msvc": "1.30.1",
- "lightningcss-win32-x64-msvc": "1.30.1"
- }
- },
- "node_modules/lightningcss-darwin-arm64": {
- "version": "1.30.1",
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz",
- "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-darwin-x64": {
- "version": "1.30.1",
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz",
- "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-freebsd-x64": {
- "version": "1.30.1",
- "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz",
- "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm-gnueabihf": {
- "version": "1.30.1",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz",
- "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm64-gnu": {
- "version": "1.30.1",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz",
- "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm64-musl": {
- "version": "1.30.1",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz",
- "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-x64-gnu": {
- "version": "1.30.1",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz",
- "integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-x64-musl": {
- "version": "1.30.1",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz",
- "integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-win32-arm64-msvc": {
- "version": "1.30.1",
- "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz",
- "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-win32-x64-msvc": {
- "version": "1.30.1",
- "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz",
- "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/magic-string": {
- "version": "0.30.19",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz",
- "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.5"
- }
- },
- "node_modules/minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/minizlib": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz",
- "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "minipass": "^7.1.2"
- },
- "engines": {
- "node": ">= 18"
- }
- },
- "node_modules/nanoid": {
- "version": "3.3.11",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
- "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/next": {
- "version": "15.5.4",
- "resolved": "https://registry.npmjs.org/next/-/next-15.5.4.tgz",
- "integrity": "sha512-xH4Yjhb82sFYQfY3vbkJfgSDgXvBB6a8xPs9i35k6oZJRoQRihZH+4s9Yo2qsWpzBmZ3lPXaJ2KPXLfkvW4LnA==",
- "license": "MIT",
- "dependencies": {
- "@next/env": "15.5.4",
- "@swc/helpers": "0.5.15",
- "caniuse-lite": "^1.0.30001579",
- "postcss": "8.4.31",
- "styled-jsx": "5.1.6"
- },
- "bin": {
- "next": "dist/bin/next"
- },
- "engines": {
- "node": "^18.18.0 || ^19.8.0 || >= 20.0.0"
- },
- "optionalDependencies": {
- "@next/swc-darwin-arm64": "15.5.4",
- "@next/swc-darwin-x64": "15.5.4",
- "@next/swc-linux-arm64-gnu": "15.5.4",
- "@next/swc-linux-arm64-musl": "15.5.4",
- "@next/swc-linux-x64-gnu": "15.5.4",
- "@next/swc-linux-x64-musl": "15.5.4",
- "@next/swc-win32-arm64-msvc": "15.5.4",
- "@next/swc-win32-x64-msvc": "15.5.4",
- "sharp": "^0.34.3"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.1.0",
- "@playwright/test": "^1.51.1",
- "babel-plugin-react-compiler": "*",
- "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0",
- "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0",
- "sass": "^1.3.0"
- },
- "peerDependenciesMeta": {
- "@opentelemetry/api": {
- "optional": true
- },
- "@playwright/test": {
- "optional": true
- },
- "babel-plugin-react-compiler": {
- "optional": true
- },
- "sass": {
- "optional": true
- }
- }
- },
- "node_modules/next/node_modules/postcss": {
- "version": "8.4.31",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
- "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "nanoid": "^3.3.6",
- "picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
- "node_modules/picocolors": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
- "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
- "license": "ISC"
- },
- "node_modules/postcss": {
- "version": "8.5.6",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
- "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "nanoid": "^3.3.11",
- "picocolors": "^1.1.1",
- "source-map-js": "^1.2.1"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
- "node_modules/react": {
- "version": "19.1.0",
- "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz",
- "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/react-dom": {
- "version": "19.1.0",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz",
- "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==",
- "license": "MIT",
- "dependencies": {
- "scheduler": "^0.26.0"
- },
- "peerDependencies": {
- "react": "^19.1.0"
- }
- },
- "node_modules/scheduler": {
- "version": "0.26.0",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz",
- "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==",
- "license": "MIT"
- },
- "node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
- "license": "ISC",
- "optional": true,
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/sharp": {
- "version": "0.34.4",
- "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.4.tgz",
- "integrity": "sha512-FUH39xp3SBPnxWvd5iib1X8XY7J0K0X7d93sie9CJg2PO8/7gmg89Nve6OjItK53/MlAushNNxteBYfM6DEuoA==",
- "hasInstallScript": true,
- "license": "Apache-2.0",
- "optional": true,
- "dependencies": {
- "@img/colour": "^1.0.0",
- "detect-libc": "^2.1.0",
- "semver": "^7.7.2"
- },
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-darwin-arm64": "0.34.4",
- "@img/sharp-darwin-x64": "0.34.4",
- "@img/sharp-libvips-darwin-arm64": "1.2.3",
- "@img/sharp-libvips-darwin-x64": "1.2.3",
- "@img/sharp-libvips-linux-arm": "1.2.3",
- "@img/sharp-libvips-linux-arm64": "1.2.3",
- "@img/sharp-libvips-linux-ppc64": "1.2.3",
- "@img/sharp-libvips-linux-s390x": "1.2.3",
- "@img/sharp-libvips-linux-x64": "1.2.3",
- "@img/sharp-libvips-linuxmusl-arm64": "1.2.3",
- "@img/sharp-libvips-linuxmusl-x64": "1.2.3",
- "@img/sharp-linux-arm": "0.34.4",
- "@img/sharp-linux-arm64": "0.34.4",
- "@img/sharp-linux-ppc64": "0.34.4",
- "@img/sharp-linux-s390x": "0.34.4",
- "@img/sharp-linux-x64": "0.34.4",
- "@img/sharp-linuxmusl-arm64": "0.34.4",
- "@img/sharp-linuxmusl-x64": "0.34.4",
- "@img/sharp-wasm32": "0.34.4",
- "@img/sharp-win32-arm64": "0.34.4",
- "@img/sharp-win32-ia32": "0.34.4",
- "@img/sharp-win32-x64": "0.34.4"
- }
- },
- "node_modules/source-map-js": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
- "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/styled-jsx": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz",
- "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==",
- "license": "MIT",
- "dependencies": {
- "client-only": "0.0.1"
- },
- "engines": {
- "node": ">= 12.0.0"
- },
- "peerDependencies": {
- "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0"
- },
- "peerDependenciesMeta": {
- "@babel/core": {
- "optional": true
- },
- "babel-plugin-macros": {
- "optional": true
- }
- }
- },
- "node_modules/tailwindcss": {
- "version": "4.1.14",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.14.tgz",
- "integrity": "sha512-b7pCxjGO98LnxVkKjaZSDeNuljC4ueKUddjENJOADtubtdo8llTaJy7HwBMeLNSSo2N5QIAgklslK1+Ir8r6CA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/tapable": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz",
- "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/tar": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.1.tgz",
- "integrity": "sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "@isaacs/fs-minipass": "^4.0.0",
- "chownr": "^3.0.0",
- "minipass": "^7.1.2",
- "minizlib": "^3.1.0",
- "yallist": "^5.0.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tslib": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
- "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
- "license": "0BSD"
- },
- "node_modules/typescript": {
- "version": "5.9.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
- "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
- "dev": true,
- "license": "Apache-2.0",
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=14.17"
- }
- },
- "node_modules/undici-types": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
- "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/yallist": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz",
- "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "engines": {
- "node": ">=18"
- }
- }
- }
-}
diff --git a/docs/package.json b/docs/package.json
index 38c5f8e..60823cd 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -30,4 +30,4 @@
"engines": {
"node": ">=16.0.0"
}
-}
+}
\ No newline at end of file
diff --git a/docs/postcss.config.mjs b/docs/postcss.config.mjs
deleted file mode 100644
index c7bcb4b..0000000
--- a/docs/postcss.config.mjs
+++ /dev/null
@@ -1,5 +0,0 @@
-const config = {
- plugins: ["@tailwindcss/postcss"],
-};
-
-export default config;
diff --git a/docs/public/file.svg b/docs/public/file.svg
deleted file mode 100644
index 004145c..0000000
--- a/docs/public/file.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/public/globe.svg b/docs/public/globe.svg
deleted file mode 100644
index 567f17b..0000000
--- a/docs/public/globe.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/public/next.svg b/docs/public/next.svg
deleted file mode 100644
index 5174b28..0000000
--- a/docs/public/next.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/public/vercel.svg b/docs/public/vercel.svg
deleted file mode 100644
index 7705396..0000000
--- a/docs/public/vercel.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/public/window.svg b/docs/public/window.svg
deleted file mode 100644
index b2b2a44..0000000
--- a/docs/public/window.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/src/app/clients/page.tsx b/docs/src/app/clients/page.tsx
deleted file mode 100644
index e83e87c..0000000
--- a/docs/src/app/clients/page.tsx
+++ /dev/null
@@ -1,254 +0,0 @@
-import Link from 'next/link';
-
-export default function Clients() {
- return (
-
-
Supported Clients
-
-
- starknode-kit supports multiple client implementations for both Ethereum
- and Starknet networks.
-
-
-
Why Multiple Clients?
-
-
- Running diverse client implementations is crucial for network health and
- resilience. Client diversity prevents single points of failure and
- reduces the impact of bugs in any one implementation.
-
-
-
Ethereum Clients
-
-
- To run an Ethereum node, you need both an{" "}
- execution client and a consensus client
- . They work together to validate and process Ethereum blocks post-merge.
-
-
-
-
-
Execution Clients
-
Handle transaction execution and state management
-
- • Geth (Go)
- • Reth (Rust)
-
-
-
-
-
Consensus Clients
-
Handle proof-of-stake consensus mechanism
-
- • Lighthouse (Rust)
- • Prysm (Go)
-
-
-
-
-
Starknet Clients
-
-
- Starknet clients allow you to run a Starknet full node, enabling interaction with the Starknet Layer 2 network.
-
-
-
-
-
Starknet Clients
-
Full node implementations for Starknet
-
- • Juno (Go) - Full node client
- • Starknet Validator - Validator client for staking
-
-
-
-
-
Client Combinations
-
-
Popular client combinations for Ethereum nodes:
-
-
-
-
-
- Execution
- Consensus
- Characteristics
-
-
-
-
- Geth
- Lighthouse
- Most popular, well-tested
-
-
- Reth
- Lighthouse
- High performance, modern
-
-
- Geth
- Prysm
- Stable, feature-rich
-
-
- Reth
- Prysm
- Performance-focused
-
-
-
-
-
-
Choosing Clients
-
-
Execution Clients
-
-
Geth
-
- ✅ Most widely used and tested
- ✅ Excellent documentation
- ✅ Large community support
- ✅ Stable and reliable
- ⚠️ Higher resource usage
- ⚠️ Larger disk footprint
-
-
-
Reth
-
- ✅ Excellent performance
- ✅ Lower disk usage
- ✅ Modern codebase (Rust)
- ✅ Fast sync times
- ⚠️ Newer, less battle-tested
- ⚠️ Smaller community
-
-
-
Consensus Clients
-
-
Lighthouse
-
- ✅ Fast and efficient
- ✅ Low resource usage
- ✅ Great documentation
- ✅ Active development
- ✅ Written in Rust
-
-
-
Prysm
-
- ✅ Feature-rich
- ✅ Good performance
- ✅ Strong community
- ✅ Comprehensive tooling
- ✅ Written in Go
-
-
-
Starknet Clients
-
-
Juno
-
- ✅ Official full node client
- ✅ Well-maintained
- ✅ Fast sync
- ✅ Active community
- ✅ Required for Starknet validator
-
-
-
Resource Requirements by Client
-
-
-
-
-
- Client
- RAM
- Disk
- CPU
-
-
-
-
- Geth
- 16+ GB
- ~1.2 TB
- 4+ cores
-
-
- Reth
- 16+ GB
- ~900 GB
- 4+ cores
-
-
- Lighthouse
- 8+ GB
- ~200 GB
- 2+ cores
-
-
- Prysm
- 8+ GB
- ~250 GB
- 2+ cores
-
-
- Juno
- 8+ GB
- ~300 GB
- 2+ cores
-
-
-
-
-
-
-
💡 Recommendation
-
- For most users, we recommend Reth + Lighthouse for Ethereum (best performance)
- and Juno for Starknet.
-
-
-
-
Client Diversity
-
-
- Client diversity is critical for network health. If a single client has a bug and it's used by the majority of nodes,
- it could cause network issues or even finality problems.
-
-
-
Current client distribution matters! Consider using minority clients to help decentralize the network.
-
-
Switching Clients
-
-
You can switch clients at any time:
-
-
- Stop your current clients: starknode-kit stop
- Remove old client: starknode-kit remove --execution_client geth
- Add new client: starknode-kit add --execution_client reth
- Start nodes: starknode-kit start
-
-
-
-
⚠️ Note
-
- Switching clients may require re-syncing from scratch, which can take several days.
- Plan accordingly and ensure you have sufficient disk space.
-
-
-
-
-
📖 Next Steps
-
- Ready to dive deeper? Check out our validator guide:
-
-
- Validator Guide
-
-
-
- );
-}
-
diff --git a/docs/src/app/commands/page.tsx b/docs/src/app/commands/page.tsx
deleted file mode 100644
index 3fd0b4f..0000000
--- a/docs/src/app/commands/page.tsx
+++ /dev/null
@@ -1,157 +0,0 @@
-import Link from 'next/link';
-import CodeBlock from '@/components/CodeBlock';
-
-export default function Commands() {
- return (
-
-
Commands Reference
-
-
- Complete reference for all starknode-kit commands. Each command helps
- you manage different aspects of your Ethereum and Starknet nodes.
-
-
-
Command Overview
-
-
-
-
-
- Command
- Description
-
-
-
-
- add
- Add an Ethereum or Starknet client to the config
-
-
- completion
- Generate the autocompletion script for the specified shell
-
-
- config
- Create, show, and update your Starknet node configuration
-
-
- monitor
- Launch real-time monitoring dashboard
-
-
- remove
- Remove a specified resource
-
-
- run
- Run a specific local infrastructure service
-
-
- start
- Run the configured Ethereum clients
-
-
- status
- Display status of running clients
-
-
- stop
- Stop the configured Ethereum clients
-
-
- update
- Check for and install client updates
-
-
- validator
- Manage the Starknet validator client
-
-
- version
- Show version of starknode-kit or a specific client
-
-
-
-
-
-
Quick Examples
-
-
Add Clients
-
-
-
Configure Network
-
-
-
- Start Ethereum Clients
-
-
-
-
Monitor Nodes
-
-
-
Check Status
-
-
-
- Run Individual Client
-
-
-
-
- Stop Ethereum Clients
-
-
-
-
Check Version
-
-
-
Getting Help
-
-
- For any command, you can use the --help flag to get
- detailed usage information:
-
-
-
-
-
Shell Completion
-
-
- Generate autocompletion scripts for your shell:
-
-
-
/etc/bash_completion.d/starknode-kit
-
-# Zsh
-starknode-kit completion zsh > "\${fpath[1]}/_starknode-kit"
-
-# Fish
-starknode-kit completion fish > ~/.config/fish/completions/starknode-kit.fish`}
- />
-
-
-
📖 Next Steps
-
- Ready to dive deeper? Check out our comprehensive guides:
-
-
- Supported Clients
-
-
-
- );
-}
-
diff --git a/docs/src/app/configuration/page.tsx b/docs/src/app/configuration/page.tsx
deleted file mode 100644
index 3cee155..0000000
--- a/docs/src/app/configuration/page.tsx
+++ /dev/null
@@ -1,331 +0,0 @@
-import CodeBlock from '@/components/CodeBlock';
-import Link from 'next/link';
-
-export default function Configuration() {
- return (
-
-
Configuration
-
-
- Learn how to configure starknode-kit for your Ethereum and Starknet
- nodes.
-
-
-
Configuration File
-
-
- starknode-kit stores its configuration in a YAML file located at:
-
-
-
-
-
- Creating a Configuration
-
-
-
- Generate a new configuration file with default settings:
-
-
-
-
-
- Viewing Configuration
-
-
-
View your entire configuration:
-
-
-
-
View specific sections:
-
-
-
-
- Configuration Structure
-
-
-
- The configuration file has the following structure:
-
-
-
-
-
- Modifying Configuration
-
-
-
Change Network
-
-
- Switch between mainnet, sepolia, or custom networks:
-
-
-
-
-
- Configure Execution Client
-
-
-
Set execution client and ports:
-
-
-
-
- Configure Consensus Client
-
-
-
Set consensus client and checkpoint:
-
-
-
-
- Configure Juno (Starknet)
-
-
-
Configure your Juno Starknet client:
-
-
-
-
Network Settings
-
-
starknode-kit supports multiple networks:
-
-
-
- mainnet - Ethereum and Starknet mainnet
-
-
- sepolia - Ethereum Sepolia and Starknet Sepolia
- testnet
-
-
-
-
-
⚠️ Important
-
- Changing the network will affect all clients. Make sure to stop your
- nodes before changing networks.
-
-
-
-
- Port Configuration
-
-
-
Default Ports
-
-
Default ports for each client:
-
-
-
-
-
- Client
- Ports
- Purpose
-
-
-
-
- Geth
- 8545, 8546, 30303
- HTTP RPC, WS RPC, P2P
-
-
- Reth
- 8545, 8546, 30303
- HTTP RPC, WS RPC, P2P
-
-
- Lighthouse
- 5052, 9000
- HTTP API, P2P
-
-
- Prysm
- 4000, 13000
- HTTP API, P2P
-
-
- Juno
- 6060
- RPC
-
-
-
-
-
-
- Validator Configuration
-
-
-
- For validator nodes, additional configuration is required. See the
- Validator Setup page for details.
-
-
-
- Environment Variables
-
-
-
- Some sensitive data can be stored as environment variables:
-
-
-
-
- STARKNET_WALLET - Wallet address
-
-
- STARKNET_PRIVATE_KEY - Private key
-
-
- STARKNET_PUBLIC_KEY - Public key
-
-
- STARKNET_CLASS_HASH - Class hash
-
-
- STARKNET_SALT - Salt value
-
-
-
-
- Configuration Best Practices
-
-
-
-
- Backup your config - Keep a backup of your
- configuration file
-
-
- Use environment variables - Store sensitive data in
- environment variables
-
-
- Document changes - Keep notes of any custom
- configurations
-
-
- Test on testnet - Always test configuration changes
- on a testnet first
-
-
-
-
Troubleshooting
-
-
- Configuration not loading
-
-
-
- If your configuration isn't loading, check:
-
-
-
-
- File exists at ~/.starknode-kit/starknode.yml
-
- File has correct YAML syntax
-
- File has correct permissions (readable by your user)
-
-
-
-
Port conflicts
-
-
If you get port conflicts:
-
-
-
- Check if ports are already in use: lsof -i :[port]
-
- Configure different ports in your config
- Stop conflicting services
-
-
-
-
📖 Next Steps
-
- Ready to dive deeper? Check out our comprehensive guides:
-
-
- Commands Reference
-
-
-
- );
-}
-
diff --git a/docs/src/app/contributing/page.tsx b/docs/src/app/contributing/page.tsx
deleted file mode 100644
index d003597..0000000
--- a/docs/src/app/contributing/page.tsx
+++ /dev/null
@@ -1,265 +0,0 @@
-import CodeBlock from '@/components/CodeBlock';
-import Link from 'next/link';
-
-export default function Contributing() {
- return (
-
-
Contributing
-
-
- We welcome contributions to starknode-kit! This guide will help you get
- started with contributing to the project.
-
-
-
Ways to Contribute
-
-
There are many ways to contribute to starknode-kit:
-
-
- 🐛 Report bugs - Help us identify and fix issues
- 💡 Suggest features - Share your ideas for improvements
- 📝 Improve documentation - Help others understand and use the tool
- 💻 Write code - Implement new features or fix bugs
- 🧪 Test - Test new releases and provide feedback
- 🌍 Community support - Help other users in issues and discussions
-
-
-
Getting Started
-
-
1. Fork the Repository
-
-
Start by forking the repository on GitHub:
-
-
-
-
2. Clone Your Fork
-
-
-
-
3. Set Up Development Environment
-
-
Make sure you have the required tools:
-
-
- Go 1.24 or later
- Make
- Git
-
-
-
-
-
4. Create a Branch
-
-
Create a branch for your changes:
-
-
-
-
Development Workflow
-
-
Project Structure
-
-
-
-
Making Changes
-
-
- Write your code - Implement your feature or fix
- Follow Go conventions - Use gofmt and follow Go best practices
- Add tests - Write tests for your changes when applicable
- Update documentation - Update README or add docs as needed
-
-
-
Testing
-
-
Run tests before submitting:
-
-
-
-
Code Style
-
-
Format your code with gofmt:
-
-
-
-
Submitting Changes
-
-
1. Commit Your Changes
-
-
Write clear, descriptive commit messages:
-
-
-
-
2. Push to Your Fork
-
-
-
-
3. Create a Pull Request
-
-
- Go to the original repository on GitHub
- Click "New Pull Request"
- Select your fork and branch
- Fill out the PR template with:
-
- Description of changes
- Related issues
- Testing performed
- Screenshots (if UI changes)
-
-
- Submit the pull request
-
-
-
Pull Request Guidelines
-
-
To increase the chances of your PR being accepted:
-
-
- ✅ Make focused, single-purpose changes
- ✅ Write clear commit messages
- ✅ Include tests for new features
- ✅ Update documentation as needed
- ✅ Follow existing code style
- ✅ Respond to review feedback promptly
- ❌ Don't include unrelated changes
- ❌ Don't submit untested code
- ❌ Don't break existing functionality
-
-
-
Reporting Bugs
-
-
When reporting bugs, include:
-
-
- Description - Clear description of the bug
- Steps to reproduce - How to trigger the bug
- Expected behavior - What should happen
- Actual behavior - What actually happens
- Environment - OS, Go version, starknode-kit version
- Logs - Relevant log output or error messages
-
-
-
-
-
Suggesting Features
-
-
When suggesting features, include:
-
-
- Clear description of the feature
- Use case and motivation
- Proposed implementation (if applicable)
- Potential impact on existing functionality
-
-
-
Code of Conduct
-
-
We are committed to providing a welcoming and inclusive environment. Please:
-
-
- ✅ Be respectful and considerate
- ✅ Welcome newcomers and help them learn
- ✅ Accept constructive criticism gracefully
- ✅ Focus on what's best for the community
- ❌ Don't harass or discriminate
- ❌ Don't be disruptive or disrespectful
-
-
-
Getting Help
-
-
If you need help with contributing:
-
-
-
-
Resources
-
-
-
-
-
🎉 Thank You!
-
- Thank you for considering contributing to starknode-kit! Your contributions help make this tool better for everyone.
-
-
-
-
-
- );
-}
-
diff --git a/docs/src/app/favicon.ico b/docs/src/app/favicon.ico
deleted file mode 100644
index 718d6fe..0000000
Binary files a/docs/src/app/favicon.ico and /dev/null differ
diff --git a/docs/src/app/getting-started/page.tsx b/docs/src/app/getting-started/page.tsx
deleted file mode 100644
index f7e0251..0000000
--- a/docs/src/app/getting-started/page.tsx
+++ /dev/null
@@ -1,228 +0,0 @@
-import Link from "next/link";
-import CodeBlock from "@/components/CodeBlock";
-
-export default function GettingStarted() {
- return (
-
-
Getting Started
-
-
- Welcome to starknode-kit! This guide will help you get up and running
- with your Ethereum and Starknet nodes in just a few minutes.
-
-
-
Prerequisites
-
-
Before you begin, make sure you have:
-
-
-
- Operating System: Linux or macOS (Windows via WSL)
-
-
- Go: Version 1.24 or later (if building from source)
-
-
- Storage: At least 2TB of free SSD space
-
-
- RAM: Minimum 32GB recommended
-
-
- Network: Stable internet connection
-
-
-
-
-
📝 Note
-
- For detailed hardware requirements, check out our{" "}
-
- Requirements page
-
- .
-
-
-
-
Installation
-
-
- The quickest way to install starknode-kit is using the installation
- script:
-
-
-
-
-
This script will:
-
-
- Download the latest version of starknode-kit
-
-
- Install it to /usr/local/bin/
-
-
- Create necessary configuration directories
-
-
-
-
- Initial Configuration
-
-
-
- After installation, generate your initial configuration file:
-
-
-
-
-
- This creates a configuration file at{" "}
- ~/.starknode-kit/starknode.yml with default settings.
-
-
-
- Add Your First Clients
-
-
-
- Ethereum Clients (Execution + Consensus)
-
-
-
- To run an Ethereum node, you need both an execution client and a
- consensus client:
-
-
-
-
-
Or with Reth and Prysm:
-
-
-
-
Starknet Client
-
-
To add a Starknet client (Juno):
-
-
-
-
Configure Network
-
-
- By default, starknode-kit is configured for mainnet. To change to a
- test network:
-
-
-
-
-
Start Your Nodes
-
-
- Start Ethereum Clients
-
-
-
- To start your configured Ethereum execution and consensus clients:
-
-
-
-
-
-
⚠️ Important
-
- The start command only launches Ethereum clients
- (execution + consensus). It does not start Starknet clients.
-
-
-
-
- Run Individual Clients
-
-
-
To run a specific client:
-
-
-
-
Monitor Your Nodes
-
-
- Launch the real-time monitoring dashboard to see the status of your
- nodes:
-
-
-
-
-
The monitoring dashboard provides real-time insights:
-
-
-
-
-
🔄
-
-
Node Sync Status
-
Real-time synchronization progress and health
-
-
-
-
-
-
-
📊
-
-
Current Block Height
-
Latest block number and sync progress
-
-
-
-
-
-
-
🌐
-
-
Network Statistics
-
Peer connections and network performance
-
-
-
-
-
-
-
💻
-
-
System Resources
-
CPU, RAM, and disk usage metrics
-
-
-
-
-
-
Check Status
-
-
- For a quick status check of all running clients:
-
-
-
-
-
-
📖 Next Steps
-
- Ready to dive deeper? Check out our installation guide:
-
-
- Installation Guide
-
-
-
- );
-}
-
diff --git a/docs/src/app/globals.css b/docs/src/app/globals.css
deleted file mode 100644
index b60e14f..0000000
--- a/docs/src/app/globals.css
+++ /dev/null
@@ -1,93 +0,0 @@
-@import "tailwindcss";
-
-body {
- font-family: var(--font-inter), system-ui, -apple-system, sans-serif;
- line-height: 1.7;
-}
-
-/* Scrollbar styling */
-::-webkit-scrollbar {
- width: 8px;
- height: 8px;
-}
-
-::-webkit-scrollbar-track {
- background: transparent;
-}
-
-::-webkit-scrollbar-thumb {
- background: #cbd5e0;
- border-radius: 4px;
-}
-
-::-webkit-scrollbar-thumb:hover {
- background: #a0aec0;
-}
-
-/* Prose styling for documentation */
-.prose {
- max-width: none;
- line-height: 1.8;
-}
-
-.prose p {
- margin-bottom: 1.5rem;
-}
-
-.prose h2 {
- margin-top: 3rem;
- margin-bottom: 1.5rem;
-}
-
-.prose h3 {
- margin-bottom: 1.25rem;
-}
-
-.prose a {
- color: #2563eb;
- text-decoration: none;
- transition: color 0.2s;
-}
-
-.prose a:hover {
- color: #1d4ed8;
- text-decoration: none;
-}
-
-.prose code {
- background: #f3f4f6;
- padding: 0.2em 0.4em;
- border-radius: 0.25rem;
- font-size: 0.875em;
- font-family: 'Courier New', monospace;
-}
-
-.prose pre {
- background: #1a202c !important;
- padding: 1rem;
- border-radius: 0.5rem;
- overflow-x: auto;
-}
-
-.prose pre code {
- background: transparent;
- padding: 0;
- color: #e2e8f0;
-}
-
-.prose table {
- width: 100%;
- border-collapse: collapse;
-}
-
-.prose th {
- text-align: left;
- font-weight: 600;
-}
-
-.prose blockquote {
- border-left: 4px solid #e5e7eb;
- padding-left: 1rem;
- font-style: italic;
- color: #6b7280;
-}
diff --git a/docs/src/app/installation/page.tsx b/docs/src/app/installation/page.tsx
deleted file mode 100644
index 9dcd313..0000000
--- a/docs/src/app/installation/page.tsx
+++ /dev/null
@@ -1,179 +0,0 @@
-import Link from 'next/link';
-import CodeBlock from '@/components/CodeBlock';
-
-export default function Installation() {
- return (
-
-
Installation
-
-
- There are multiple ways to install starknode-kit. Choose the method that
- best suits your needs.
-
-
-
- Option 1: Install Script (Recommended)
-
-
-
- The easiest and recommended way to install starknode-kit:
-
-
-
-
-
- Or download the script first and then run it:
-
-
-
-
-
- Option 2: Install using Go
-
-
-
- If you have Go installed (version 1.24 or later), you can install
- starknode-kit directly:
-
-
-
-
-
- This installs the latest version from the main branch.
-
-
-
- Option 3: Manual Installation from Source
-
-
-
- 1. Clone the Repository
-
-
-
-
-
2. Build and Install
-
-
-
-
Verify Installation
-
-
- After installation, verify that starknode-kit is working correctly:
-
-
-
-
-
You should see output similar to:
-
-
-
-
Initial Setup
-
-
- After successful installation, generate your configuration file:
-
-
-
-
-
- This creates a configuration file at{" "}
- ~/.starknode-kit/starknode.yml.
-
-
-
Uninstallation
-
-
- To uninstall starknode-kit, remove the binary and configuration
- directory:
-
-
-
-
-
-
⚠️ Note
-
- This will not remove any client data (e.g., blockchain data). The data
- is stored in the locations specified in your{" "}
- ~/.starknode-kit/starknode.yml file.
-
-
-
-
Troubleshooting
-
-
Command not found
-
-
- If you get a "command not found" error, make sure{" "}
- /usr/local/bin is in your PATH:
-
-
-
-
-
- Add this to your ~/.bashrc or ~/.zshrc to make
- it permanent.
-
-
-
Permission denied
-
-
- If you encounter permission issues during installation, make sure you
- have sudo access or contact your system administrator.
-
-
-
-
📖 Next Steps
-
- Ready to dive deeper? Check out our configuration guide:
-
-
- Configuration Guide
-
-
-
- );
-}
-
diff --git a/docs/src/app/layout.tsx b/docs/src/app/layout.tsx
deleted file mode 100644
index 66099db..0000000
--- a/docs/src/app/layout.tsx
+++ /dev/null
@@ -1,40 +0,0 @@
-import type { Metadata } from "next";
-import { Inter, Source_Code_Pro } from "next/font/google";
-import "./globals.css";
-import Sidebar from "@/components/Sidebar";
-import Header from "@/components/Header";
-
-const inter = Inter({
- subsets: ["latin"],
- variable: "--font-inter",
-});
-
-const source_code_pro = Source_Code_Pro({
- subsets: ["latin"],
- variable: "--font-source-code"
-})
-
-export const metadata: Metadata = {
- title: "starknode-kit Documentation",
- description: "Complete documentation for starknode-kit - A CLI tool for setting up and managing Ethereum and Starknet nodes",
-};
-
-export default function RootLayout({
- children,
-}: Readonly<{
- children: React.ReactNode;
-}>) {
- return (
-
-
-
-
-
-
- {children}
-
-
-
-
- );
-}
diff --git a/docs/src/app/page.tsx b/docs/src/app/page.tsx
deleted file mode 100644
index ea7a66d..0000000
--- a/docs/src/app/page.tsx
+++ /dev/null
@@ -1,144 +0,0 @@
-import Link from "next/link";
-import CodeBlock from "@/components/CodeBlock";
-
-export default function Home() {
- return (
-
-
Welcome to starknode-kit
-
-
- A powerful command-line tool to help developers and node operators
- easily set up, manage, and maintain Ethereum and Starknet nodes.
-
-
-
-
-
- 🚀 Getting Started
-
-
- Learn how to install and configure starknode-kit for your node
- setup.
-
-
-
-
-
- 📘 Commands
-
-
- Explore all available commands and their usage.
-
-
-
-
-
- ⚙️ Configuration
-
-
- Configure your Ethereum and Starknet clients.
-
-
-
-
-
- 🔐 Validator Setup
-
-
- Set up and manage your Starknet validator node.
-
-
-
-
-
Quick Start
-
-
Install starknode-kit with a single command:
-
-
-
-
Generate your configuration file:
-
-
-
-
Add your first client pair:
-
-
-
-
Key Features
-
-
-
- ✅ Easy Setup - Get your node running in minutes
-
-
- ✅ Multi-Client Support - Works with Geth, Reth,
- Lighthouse, Prysm, and Juno
-
-
- ✅ Real-time Monitoring - Built-in dashboard to
- monitor your nodes
-
-
- ✅ Auto Updates - Keep your clients up to date
- automatically
-
-
- ✅ Validator Management - Simplified Starknet
- validator operations
-
-
- ✅ Network Flexibility - Support for mainnet,
- sepolia, and custom networks
-
-
-
-
Supported Clients
-
-
-
-
-
Consensus Layer
-
- • Lighthouse
- • Prysm
-
-
-
-
Starknet
-
- • Juno
- • Starknet Validator
-
-
-
-
-
-
📖 Next Steps
-
- Ready to dive deeper? Check out our comprehensive guides:
-
-
- Installation Guide
-
-
-
- );
-}
diff --git a/docs/src/app/requirements/page.tsx b/docs/src/app/requirements/page.tsx
deleted file mode 100644
index 8ef1256..0000000
--- a/docs/src/app/requirements/page.tsx
+++ /dev/null
@@ -1,319 +0,0 @@
-import Link from 'next/link';
-import CodeBlock from '@/components/CodeBlock';
-
-export default function Requirements() {
- return (
-
-
Requirements
-
-
- Hardware and software requirements for running Ethereum and Starknet
- nodes with starknode-kit.
-
-
-
Hardware Requirements
-
-
-
-
Minimum Requirements
-
-
-
-
-
- Component
- Requirement
- Notes
-
-
-
-
- CPU
- 4+ cores
- Intel i3/i5 or AMD equivalent. Avoid Celeron.
-
-
- RAM
- 32 GB
- Minimum 16GB, 32GB recommended for comfort
-
-
- Storage
- 2+ TB NVMe SSD
- Must have DRAM cache, no QLC NAND
-
-
- Network
- 100+ Mbps
- Stable connection, unlimited data preferred
-
-
- Power
- 24/7 uptime
- UPS recommended for validators
-
-
-
-
-
-
Recommended Specifications
-
-
- CPU: Intel i5/i7 or AMD Ryzen 5/7 (6+ cores)
- RAM: 64 GB DDR4
- Storage: 4 TB NVMe SSD with DRAM cache
- Network: 1 Gbps fiber connection
- Backup Power: UPS with 30+ minutes runtime
-
-
-
Storage Requirements
-
-
Storage is the most critical component for node operation.
-
-
Storage Size
-
-
-
-
-
- Client
- Current Size
- Growth Rate
-
-
-
-
- Ethereum (Geth)
- ~1.2 TB
- ~150 GB/year
-
-
- Ethereum (Reth)
- ~900 GB
- ~120 GB/year
-
-
- Lighthouse
- ~200 GB
- ~50 GB/year
-
-
- Prysm
- ~250 GB
- ~60 GB/year
-
-
- Juno (Starknet)
- ~300 GB
- ~100 GB/year
-
-
-
-
-
-
SSD Requirements
-
-
Your SSD must have :
-
-
- ✅ DRAM cache - Essential for performance
- ✅ TLC or better NAND - No QLC (Quad-Level Cell)
- ✅ High endurance rating - 600+ TBW recommended
- ✅ NVMe interface - SATA SSDs are too slow
-
-
-
-
⚠️ Warning
-
- Using a QLC SSD or SSD without DRAM cache will result in poor performance and potential node failures.
- See the tested SSD list for recommendations.
-
-
-
-
Software Requirements
-
-
Operating System
-
-
Supported operating systems:
-
-
- Linux: Ubuntu 20.04+, Debian 11+, or other modern distributions
- macOS: macOS 12 (Monterey) or later
- Windows: Windows 10/11 with WSL2 (Ubuntu)
-
-
-
Linux is highly recommended for production use.
-
-
Required Software
-
-
Go (for building from source)
-
-
Version 1.24 or later required:
-
-
-
-
Install from: https://go.dev/dl/
-
-
Rust (for Starknet clients)
-
-
Recommended for building Juno and other Starknet clients:
-
-
-
-
Make
-
-
Required for building certain clients:
-
-
-
-
Network Requirements
-
-
Bandwidth
-
-
- Download: 100+ Mbps
- Upload: 25+ Mbps
- Data Cap: Unlimited (or 2+ TB/month)
-
-
-
Ports
-
-
Ensure these ports are accessible:
-
-
-
-
-
- Port
- Protocol
- Purpose
-
-
-
-
- 30303
- TCP/UDP
- Ethereum execution P2P
-
-
- 9000
- TCP/UDP
- Lighthouse consensus P2P
-
-
- 13000
- TCP
- Prysm consensus P2P
-
-
- 6060
- TCP
- Juno RPC (localhost only)
-
-
-
-
-
-
For Validator Nodes
-
-
Additional requirements for running a validator:
-
-
- Uptime: 99.9%+ availability required
- Backup Power: UPS mandatory
- Monitoring: 24/7 monitoring and alerting
- Backup Internet: Secondary connection recommended
- Dedicated Hardware: No shared resources
-
-
-
Tested Hardware Configurations
-
-
Budget Build (~$800)
-
-
- Intel NUC 13 PRO (i5)
- 32 GB DDR4 RAM
- 2 TB NVMe SSD (Samsung 980 PRO)
- Ubuntu 22.04 LTS
-
-
-
Recommended Build (~$1500)
-
-
- Custom build: AMD Ryzen 7 or Intel i7
- 64 GB DDR4 RAM
- 4 TB NVMe SSD (Samsung 990 PRO)
- 1 Gbps fiber connection
- UPS with 30min+ runtime
- Ubuntu 22.04 LTS
-
-
-
Pro Build (~$3000+)
-
-
- High-end workstation or server
- 128 GB ECC RAM
- 8 TB NVMe SSD (enterprise grade)
- Redundant power supplies
- Redundant network connections
- Professional monitoring and alerting
-
-
-
Cloud Providers
-
-
If running in the cloud, recommended specifications:
-
-
-
-
-
- Provider
- Instance Type
- Est. Cost/Month
-
-
-
-
- AWS
- m5.2xlarge + 4TB gp3
- ~$500-700
-
-
- Google Cloud
- n2-standard-8 + 4TB SSD
- ~$600-800
-
-
- Azure
- Standard_D8s_v3 + 4TB Premium SSD
- ~$550-750
-
-
-
-
-
-
-
💡 Cost Consideration
-
- Running on dedicated hardware is often more cost-effective long-term than cloud hosting, especially for validators.
-
-
-
- );
-}
-
diff --git a/docs/src/app/validator/page.tsx b/docs/src/app/validator/page.tsx
deleted file mode 100644
index 156aa27..0000000
--- a/docs/src/app/validator/page.tsx
+++ /dev/null
@@ -1,239 +0,0 @@
-import CodeBlock from '@/components/CodeBlock';
-import Link from 'next/link';
-export default function Validator() {
- return (
-
-
Validator Setup
-
-
- Set up and manage your Starknet validator node using starknode-kit.
-
-
-
-
⚠️ Important
-
- Running a validator requires significant responsibility. Make sure you
- understand the requirements and risks before proceeding.
-
-
-
-
Prerequisites
-
-
Before setting up a validator, ensure you have:
-
-
- ✅ A fully synced Juno (Starknet) node
- ✅ A Starknet wallet with sufficient funds for staking
- ✅ Stable internet connection with 99.9%+ uptime
- ✅ Understanding of validator responsibilities
-
-
-
Installation
-
-
The validator client is managed through starknode-kit. First, ensure you have starknode-kit installed and configured.
-
-
Validator Commands
-
-
Check Validator Status
-
-
Check the status of your validator:
-
-
-
-
Get Validator Version
-
-
Check the installed version of the validator client:
-
-
-
-
Set Juno RPC Endpoint
-
-
Configure the Juno RPC endpoint for your validator:
-
-
-
-
Or use a remote Juno node:
-
-
-
-
Configuration
-
-
Validator configuration is stored in your starknode-kit config file. Key settings include:
-
-
-
-
Setting Up Environment Variables
-
-
Store sensitive validator data in environment variables:
-
-
-
-
Add these to your ~/.bashrc or ~/.zshrc to make them persistent.
-
-
Starting Your Validator
-
-
Step 1: Ensure Juno is Running
-
-
Your Juno node must be fully synced and running:
-
-
-
-
Step 2: Verify Configuration
-
-
Check your validator configuration:
-
-
-
-
Step 3: Start the Validator
-
-
Start your validator client:
-
-
-
-
Monitoring Your Validator
-
-
Monitor your validator status:
-
-
-
-
Validator Responsibilities
-
-
- Uptime - Maintain high availability (99.9%+)
- Security - Keep your keys secure and never share them
- Updates - Keep your validator software up to date
- Monitoring - Actively monitor your validator performance
- Backup - Maintain secure backups of your keys
-
-
-
Security Best Practices
-
-
- ✅ Use hardware wallets when possible
- ✅ Store keys in environment variables, not in config files
- ✅ Use firewall to restrict access to validator ports
- ✅ Enable SSH key-based authentication
- ✅ Keep your server updated with security patches
- ✅ Monitor for unusual activity
- ✅ Have a disaster recovery plan
- ❌ Never share your private keys
- ❌ Don't run validators on shared hosting
- ❌ Avoid storing keys in version control
-
-
-
Staking and Commission
-
-
Configure your validator's commission rate:
-
-
-
-
This sets a 10% commission on staking rewards. Validators typically charge 5-15% commission.
-
-
Troubleshooting
-
-
Validator Not Connecting to Juno
-
-
Check that:
-
- Juno is running: starknode-kit status
- RPC endpoint is correct in config
- Firewall allows connections to Juno port
-
-
-
Keys Not Loading
-
-
Verify environment variables are set:
-
-
-
-
If empty, add to your shell profile and reload.
-
-
Validator Offline
-
-
If your validator goes offline:
-
- ✅ Check system resources
- ✅ Check network connectivity
- ✅ Review validator logs
- ✅ Restart validator if needed
-
-
-
Performance Metrics
-
-
Monitor these key metrics:
-
-
- Attestation rate - Percentage of successful attestations
- Block proposals - Number of blocks proposed
- Uptime - Validator availability percentage
- Rewards - Staking rewards earned
-
-
-
Validator Economics
-
-
Understand the economics:
-
-
- Minimum Stake - Required amount to become a validator
- Rewards - Earned from successful validation
- Commission - Your fee for running the validator
- Penalties - For downtime or malicious behavior
-
-
-
-
💡 Tip
-
- Start on the testnet (Sepolia) to familiarize yourself with validator operations before running on mainnet.
-
-
-
-
Resources
-
-
-
-
-
📖 Next Steps
-
- Ready to dive deeper? Check out our comprehensive guides:
-
-
- System Requirements
-
-
-
- );
-}
-
diff --git a/docs/src/components/CodeBlock.tsx b/docs/src/components/CodeBlock.tsx
deleted file mode 100644
index 8f6f33e..0000000
--- a/docs/src/components/CodeBlock.tsx
+++ /dev/null
@@ -1,35 +0,0 @@
-'use client';
-
-import { useState } from 'react';
-
-interface CodeBlockProps {
- code: string;
- language?: string;
-}
-
-export default function CodeBlock({ code, language = 'bash' }: CodeBlockProps) {
- const [copied, setCopied] = useState(false);
-
- const copyToClipboard = async () => {
- await navigator.clipboard.writeText(code);
- setCopied(true);
- setTimeout(() => setCopied(false), 2000);
- };
-
- return (
-
-
-
- {copied ? '✓ Copied!' : 'Copy'}
-
-
-
- {code}
-
-
- );
-}
-
diff --git a/docs/src/components/Header.tsx b/docs/src/components/Header.tsx
deleted file mode 100644
index 7be998d..0000000
--- a/docs/src/components/Header.tsx
+++ /dev/null
@@ -1,41 +0,0 @@
-'use client';
-
-import Link from 'next/link';
-
-export default function Header() {
- return (
-
- );
-}
-
diff --git a/docs/src/components/Sidebar.tsx b/docs/src/components/Sidebar.tsx
deleted file mode 100644
index 0c7c350..0000000
--- a/docs/src/components/Sidebar.tsx
+++ /dev/null
@@ -1,60 +0,0 @@
-'use client';
-
-import Link from 'next/link';
-import { usePathname } from 'next/navigation';
-
-interface NavItem {
- title: string;
- href: string;
-}
-
-const navigation: NavItem[] = [
- { title: 'Introduction', href: '/' },
- { title: 'Getting Started', href: '/getting-started' },
- { title: 'Installation', href: '/installation' },
- { title: 'Configuration', href: '/configuration' },
- { title: 'Commands', href: '/commands' },
- { title: 'Clients', href: '/clients' },
- { title: 'Validator Setup', href: '/validator' },
- { title: 'Requirements', href: '/requirements' },
- { title: 'Contributing', href: '/contributing' },
-];
-
-export default function Sidebar() {
- const pathname = usePathname();
-
- const isActive = (href: string) => {
- if (href === '/') return pathname === href;
- return pathname.startsWith(href);
- };
-
- return (
-
-
-
-
- starknode-kit
-
-
Documentation
-
-
-
-
- {navigation.map((item) => (
-
- {item.title}
-
- ))}
-
-
- );
-}
-
diff --git a/docs/tailwind.config.ts b/docs/tailwind.config.ts
deleted file mode 100644
index f67c807..0000000
--- a/docs/tailwind.config.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import type { Config } from "tailwindcss";
-
-const config: Config = {
- content: [
- "./src/pages/**/*.{js,ts,jsx,tsx,mdx}",
- "./src/components/**/*.{js,ts,jsx,tsx,mdx}",
- "./src/app/**/*.{js,ts,jsx,tsx,mdx}",
- ],
- theme: {
- extend: {},
- },
- plugins: [],
-};
-
-export default config;
-
diff --git a/docs/tsconfig.json b/docs/tsconfig.json
deleted file mode 100644
index c133409..0000000
--- a/docs/tsconfig.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "compilerOptions": {
- "target": "ES2017",
- "lib": ["dom", "dom.iterable", "esnext"],
- "allowJs": true,
- "skipLibCheck": true,
- "strict": true,
- "noEmit": true,
- "esModuleInterop": true,
- "module": "esnext",
- "moduleResolution": "bundler",
- "resolveJsonModule": true,
- "isolatedModules": true,
- "jsx": "preserve",
- "incremental": true,
- "plugins": [
- {
- "name": "next"
- }
- ],
- "paths": {
- "@/*": ["./src/*"]
- }
- },
- "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
- "exclude": ["node_modules"]
-}