├── public ├── robots.txt ├── favicon.ico ├── manifest.json └── favicon.svg ├── .husky └── pre-commit ├── postcss.config.js ├── src ├── app │ ├── globals.css │ ├── api │ │ ├── story │ │ │ └── [id] │ │ │ │ └── route.ts │ │ ├── stories │ │ │ └── route.ts │ │ └── summarize │ │ │ └── route.ts │ ├── layout.tsx │ └── page.tsx ├── utils │ ├── date.ts │ ├── redis-cache.ts │ ├── ai-summary.ts │ └── hackernews.ts ├── components │ ├── LoadingSpinner.tsx │ ├── StoryItemSkeleton.tsx │ ├── RetryButton.tsx │ ├── StoryItem.tsx │ ├── Comment.tsx │ └── StoryDetail.tsx ├── types │ └── hackernews.ts └── hooks │ └── useSummary.ts ├── qwik.env.d.ts ├── tailwind.config.ts ├── next.config.js ├── vercel.json ├── .prettierignore ├── .gitignore ├── .eslintignore ├── tsconfig.json ├── .vscode ├── launch.json ├── qwik-city.code-snippets └── qwik.code-snippets ├── package.json ├── README.md ├── .eslintrc.cjs └── pnpm-lock.yaml /public/robots.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | pnpm run lint-staged 2 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hirokith/news-reader/main/public/favicon.ico -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /src/app/globals.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | .markdown-body { 6 | @apply text-sm; 7 | } -------------------------------------------------------------------------------- /src/utils/date.ts: -------------------------------------------------------------------------------- 1 | import { formatDistanceToNow } from 'date-fns'; 2 | 3 | export function formatTime(timestamp: number): string { 4 | return formatDistanceToNow(new Date(timestamp * 1000), { 5 | addSuffix: true, 6 | }); 7 | } 8 | -------------------------------------------------------------------------------- /qwik.env.d.ts: -------------------------------------------------------------------------------- 1 | // This file can be used to add references for global types like `vite/client`. 2 | 3 | // Add global `vite/client` types. For more info, see: https://vitejs.dev/guide/features#client-types 4 | /// 5 | -------------------------------------------------------------------------------- /src/components/LoadingSpinner.tsx: -------------------------------------------------------------------------------- 1 | export default function LoadingSpinner() { 2 | return ( 3 |
4 |
5 |
6 | ); 7 | } -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/web-manifest-combined.json", 3 | "name": "qwik-project-name", 4 | "short_name": "Welcome to Qwik", 5 | "start_url": ".", 6 | "display": "standalone", 7 | "background_color": "#fff", 8 | "description": "A Qwik project app." 9 | } 10 | -------------------------------------------------------------------------------- /tailwind.config.ts: -------------------------------------------------------------------------------- 1 | import type { Config } from 'tailwindcss'; 2 | 3 | const config: Config = { 4 | content: [ 5 | './src/pages/**/*.{js,ts,jsx,tsx,mdx}', 6 | './src/components/**/*.{js,ts,jsx,tsx,mdx}', 7 | './src/app/**/*.{js,ts,jsx,tsx,mdx}', 8 | ], 9 | theme: { 10 | extend: {}, 11 | }, 12 | plugins: [], 13 | }; 14 | 15 | export default config; -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = { 3 | logging: { 4 | fetches: { 5 | fullUrl: true, 6 | }, 7 | }, 8 | experimental: { 9 | serverActions: { 10 | bodySizeLimit: '2mb', 11 | }, 12 | }, 13 | env: { 14 | GEMINI_API_KEY: process.env.GEMINI_API_KEY, 15 | KV_REST_API_URL: process.env.KV_REST_API_URL, 16 | KV_REST_API_TOKEN: process.env.KV_REST_API_TOKEN, 17 | } 18 | }; 19 | 20 | module.exports = nextConfig; -------------------------------------------------------------------------------- /src/types/hackernews.ts: -------------------------------------------------------------------------------- 1 | export interface Comment { 2 | id: number; 3 | by: string; 4 | text: string; 5 | time: number; 6 | kids?: number[]; 7 | replies?: Comment[]; 8 | deleted?: boolean; 9 | dead?: boolean; 10 | } 11 | 12 | export interface Story { 13 | id: number; 14 | title: string; 15 | by: string; 16 | time: number; 17 | text?: string; 18 | url?: string; 19 | score: number; 20 | descendants: number; 21 | kids?: number[]; 22 | lastCommentTime: number; 23 | } -------------------------------------------------------------------------------- /vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "headers": [ 3 | { 4 | "source": "/(.*)?service-worker.js", 5 | "headers": [ 6 | { 7 | "key": "Cache-Control", 8 | "value": "public, max-age=0, must-revalidate" 9 | } 10 | ] 11 | }, 12 | { 13 | "source": "/build/(.*)", 14 | "headers": [ 15 | { 16 | "key": "Cache-Control", 17 | "value": "public, max-age=31536000, s-maxage=31536000, immutable" 18 | } 19 | ] 20 | } 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | **/*.log 2 | **/.DS_Store 3 | *. 4 | .vscode/settings.json 5 | .history 6 | .yarn 7 | bazel-* 8 | bazel-bin 9 | bazel-out 10 | bazel-qwik 11 | bazel-testlogs 12 | dist 13 | dist-dev 14 | lib 15 | lib-types 16 | etc 17 | external 18 | node_modules 19 | temp 20 | tsc-out 21 | tsdoc-metadata.json 22 | target 23 | output 24 | rollup.config.js 25 | build 26 | .cache 27 | .vscode 28 | .rollup.cache 29 | tsconfig.tsbuildinfo 30 | vite.config.ts 31 | *.spec.tsx 32 | *.spec.ts 33 | .netlify 34 | pnpm-lock.yaml 35 | package-lock.json 36 | yarn.lock 37 | server 38 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Build 2 | /dist 3 | /lib 4 | /lib-types 5 | /server 6 | 7 | # Development 8 | node_modules 9 | .env 10 | *.local 11 | 12 | # Cache 13 | .cache 14 | .mf 15 | .rollup.cache 16 | tsconfig.tsbuildinfo 17 | 18 | # Logs 19 | logs 20 | *.log 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | pnpm-debug.log* 25 | lerna-debug.log* 26 | 27 | # Editor 28 | .vscode/* 29 | !.vscode/launch.json 30 | !.vscode/*.code-snippets 31 | 32 | .idea 33 | .DS_Store 34 | *.suo 35 | *.ntvs* 36 | *.njsproj 37 | *.sln 38 | *.sw? 39 | 40 | # Yarn 41 | .yarn/* 42 | !.yarn/releases 43 | .vercel 44 | 45 | # Vercel 46 | .env*.local 47 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | **/*.log 2 | **/.DS_Store 3 | *. 4 | .vscode/settings.json 5 | .history 6 | .yarn 7 | bazel-* 8 | bazel-bin 9 | bazel-out 10 | bazel-qwik 11 | bazel-testlogs 12 | dist 13 | dist-dev 14 | lib 15 | lib-types 16 | etc 17 | external 18 | node_modules 19 | temp 20 | tsc-out 21 | tsdoc-metadata.json 22 | target 23 | output 24 | rollup.config.js 25 | build 26 | .cache 27 | .vscode 28 | .rollup.cache 29 | dist 30 | tsconfig.tsbuildinfo 31 | vite.config.ts 32 | *.spec.tsx 33 | *.spec.ts 34 | .netlify 35 | pnpm-lock.yaml 36 | package-lock.json 37 | postcss.config.js 38 | tailwind.config.js 39 | yarn.lock 40 | server 41 | next.config.js 42 | -------------------------------------------------------------------------------- /src/components/StoryItemSkeleton.tsx: -------------------------------------------------------------------------------- 1 | import StoryItem from './StoryItem'; 2 | import type { Story } from '@/types/hackernews'; 3 | 4 | const SKELETON_STORY: Story = { 5 | id: 0, 6 | title: '\u00A0'.repeat(60), // 使用 non-breaking space 占位 7 | by: '\u00A0'.repeat(12), 8 | time: Date.now() / 1000, 9 | score: 0, 10 | descendants: 0, 11 | lastCommentTime: Date.now() / 1000 12 | }; 13 | 14 | export default function StoryItemSkeleton() { 15 | return ( 16 |
17 | {}} 21 | isSkeleton={true} 22 | /> 23 |
24 | ); 25 | } -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "lib": ["dom", "dom.iterable", "esnext"], 5 | "allowJs": true, 6 | "skipLibCheck": true, 7 | "strict": true, 8 | "noEmit": true, 9 | "esModuleInterop": true, 10 | "module": "esnext", 11 | "moduleResolution": "bundler", 12 | "resolveJsonModule": true, 13 | "isolatedModules": true, 14 | "jsx": "preserve", 15 | "incremental": true, 16 | "plugins": [ 17 | { 18 | "name": "next" 19 | } 20 | ], 21 | "paths": { 22 | "@/*": ["./src/*"] 23 | } 24 | }, 25 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], 26 | "exclude": ["node_modules"] 27 | } 28 | -------------------------------------------------------------------------------- /src/components/RetryButton.tsx: -------------------------------------------------------------------------------- 1 | interface RetryButtonProps { 2 | onClick: () => void; 3 | } 4 | 5 | export default function RetryButton({ onClick }: RetryButtonProps) { 6 | return ( 7 | 21 | ); 22 | } -------------------------------------------------------------------------------- /src/app/api/story/[id]/route.ts: -------------------------------------------------------------------------------- 1 | import { NextResponse, type NextRequest } from 'next/server'; 2 | import { fetchStory, fetchStoryComments } from '@/utils/hackernews'; 3 | 4 | export const runtime = 'edge'; 5 | 6 | export async function GET( 7 | request: NextRequest, 8 | { params }: { params: Promise<{ id: string }> } 9 | ) { 10 | const id = (await params).id 11 | try { 12 | const story = await fetchStory(Number(id)); 13 | if (!story) { 14 | return NextResponse.json({ error: 'Story not found' }, { status: 404 }); 15 | } 16 | 17 | const comments = await fetchStoryComments(id); 18 | return NextResponse.json({ story, comments }); 19 | } catch (error) { 20 | return NextResponse.json({ error: 'Failed to fetch story: ' + error }, { status: 500 }); 21 | } 22 | } -------------------------------------------------------------------------------- /src/utils/redis-cache.ts: -------------------------------------------------------------------------------- 1 | import { Redis } from '@upstash/redis'; 2 | 3 | export class RedisCacheService { 4 | private redis: Redis; 5 | private readonly CACHE_TTL = 60 * 60 * 24 * 7; // 7天缓存 6 | 7 | constructor() { 8 | this.redis = new Redis({ 9 | url: process.env.KV_REST_API_URL!, 10 | token: process.env.KV_REST_API_TOKEN!, 11 | }); 12 | } 13 | 14 | async getSummary(keys: string[] | number[]): Promise { 15 | const key = keys.map(String).sort().join(','); 16 | return this.redis.get(key); 17 | } 18 | 19 | async setSummary(keys: string[] | number[], summary: string): Promise { 20 | const key = keys.map(String).sort().join(','); 21 | await this.redis.set(key, summary, { 22 | ex: this.CACHE_TTL 23 | }); 24 | } 25 | } -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "name": "Launch Chrome", 9 | "request": "launch", 10 | "type": "chrome", 11 | "url": "http://localhost:5173", 12 | "webRoot": "${workspaceFolder}" 13 | }, 14 | { 15 | "type": "node", 16 | "name": "dev.debug", 17 | "request": "launch", 18 | "skipFiles": ["/**"], 19 | "cwd": "${workspaceFolder}", 20 | "program": "${workspaceFolder}/node_modules/vite/bin/vite.js", 21 | "args": ["--mode", "ssr", "--force"] 22 | } 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /src/utils/ai-summary.ts: -------------------------------------------------------------------------------- 1 | import { GoogleGenerativeAI } from '@google/generative-ai'; 2 | 3 | export class GeminiService { 4 | private model; 5 | 6 | constructor(apiKey: string) { 7 | const genAI = new GoogleGenerativeAI(apiKey); 8 | this.model = genAI.getGenerativeModel({ model: 'gemini-pro' }); 9 | } 10 | 11 | async summarize(text: string): Promise { 12 | try { 13 | const prompt = `请对以下内容进行摘要总结。要求: 14 | 1. 使用中文回复 15 | 2. 总结要简洁精炼,不超过300字 16 | 3. 结构要清晰,重点突出 17 | 4. 保持客观中立的语气 18 | 5. 如果内容中有多个不同观点,请分点列出主要观点 19 | 6. 确保输出是合法的 markdown 格式,在标记语法如 \`**\`、\`*\` 与前后文本之间加上空格分隔,比如「前面的文本 **加粗文本** 后续的文本」 20 | 以下是需要总结的内容: 21 | ${text}`; 22 | 23 | const result = await this.model.generateContent(prompt); 24 | return result.response.text(); 25 | } catch (error) { 26 | console.error('生成摘要失败:', error); 27 | throw error; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /public/favicon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/layout.tsx: -------------------------------------------------------------------------------- 1 | import type { Metadata, Viewport } from 'next'; 2 | import { Inter } from 'next/font/google'; 3 | import React from 'react'; 4 | import './globals.css'; 5 | 6 | const inter = Inter({ subsets: ['latin'] }); 7 | 8 | export const viewport: Viewport = { 9 | themeColor: '#f5f5f5', 10 | width: 'device-width', 11 | initialScale: 1, 12 | }; 13 | 14 | export const metadata: Metadata = { 15 | title: 'Hacker News Reader', 16 | description: 'A modern Hacker News reader with AI Copilot', 17 | }; 18 | 19 | export default function RootLayout({ 20 | children, 21 | }: { 22 | children: React.ReactNode; 23 | }) { 24 | return ( 25 | 26 | 27 |
28 |

Hacker News Reader

29 |
30 | {children} 31 | 32 | 33 | ); 34 | } -------------------------------------------------------------------------------- /.vscode/qwik-city.code-snippets: -------------------------------------------------------------------------------- 1 | { 2 | "onRequest": { 3 | "scope": "javascriptreact,typescriptreact", 4 | "prefix": "qonRequest", 5 | "description": "onRequest function for a route index", 6 | "body": [ 7 | "export const onRequest: RequestHandler = (request) => {", 8 | " $0", 9 | "};", 10 | ], 11 | }, 12 | "loader$": { 13 | "scope": "javascriptreact,typescriptreact", 14 | "prefix": "qloader$", 15 | "description": "loader$()", 16 | "body": ["export const $1 = routeLoader$(() => {", " $0", "});"], 17 | }, 18 | "action$": { 19 | "scope": "javascriptreact,typescriptreact", 20 | "prefix": "qaction$", 21 | "description": "action$()", 22 | "body": ["export const $1 = routeAction$((data) => {", " $0", "});"], 23 | }, 24 | "Full Page": { 25 | "scope": "javascriptreact,typescriptreact", 26 | "prefix": "qpage", 27 | "description": "Simple page component", 28 | "body": [ 29 | "import { component$ } from '@builder.io/qwik';", 30 | "", 31 | "export default component$(() => {", 32 | " $0", 33 | "});", 34 | ], 35 | }, 36 | } 37 | -------------------------------------------------------------------------------- /src/app/api/stories/route.ts: -------------------------------------------------------------------------------- 1 | import { NextResponse, type NextRequest } from 'next/server'; 2 | import { fetchStory } from '@/utils/hackernews'; 3 | 4 | const ITEMS_PER_PAGE = 10; 5 | 6 | export const runtime = 'edge'; 7 | 8 | export async function GET(request: NextRequest) { 9 | const { searchParams } = new URL(request.url); 10 | const page = parseInt(searchParams.get('page') || '0'); 11 | 12 | try { 13 | const response = await fetch('https://hacker-news.firebaseio.com/v0/topstories.json'); 14 | const storyIds = await response.json(); 15 | 16 | const start = page * ITEMS_PER_PAGE; 17 | const end = start + ITEMS_PER_PAGE; 18 | const currentBatch = storyIds.slice(start, end); 19 | 20 | const stories = await Promise.all( 21 | currentBatch.map(async (id: number) => { 22 | const story = await fetchStory(id); 23 | return story; 24 | }) 25 | ); 26 | 27 | const validStories = stories.filter(story => story !== null); 28 | return NextResponse.json(validStories); 29 | } catch (error) { 30 | return NextResponse.json({ error: 'Failed to fetch stories: ' + error }, { status: 500 }); 31 | } 32 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "news-reader", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "next dev", 7 | "build": "next build", 8 | "start": "next start", 9 | "lint": "next lint", 10 | "lint-staged": "lint-staged" 11 | }, 12 | "dependencies": { 13 | "@google/generative-ai": "^0.21.0", 14 | "@upstash/redis": "^1.28.4", 15 | "axios": "^1.7.9", 16 | "cheerio": "^1.0.0-rc.12", 17 | "date-fns": "^3.3.1", 18 | "markdown-it": "^14.1.0", 19 | "next": "^15.1.1", 20 | "react": "^18", 21 | "react-dom": "^18" 22 | }, 23 | "devDependencies": { 24 | "@types/markdown-it": "^14.1.2", 25 | "@types/node": "^20", 26 | "@types/react": "^18", 27 | "@types/react-dom": "^18", 28 | "@types/cheerio": "^0.22.35", 29 | "@typescript-eslint/eslint-plugin": "^8.19.1", 30 | "@typescript-eslint/parser": "^8.19.1", 31 | "autoprefixer": "^10.0.1", 32 | "eslint": "^8", 33 | "eslint-config-next": "14.1.0", 34 | "postcss": "^8", 35 | "tailwindcss": "^3.3.0", 36 | "husky": "^9.1.7", 37 | "lint-staged": "^15.2.11", 38 | "typescript": "^5" 39 | }, 40 | "lint-staged": { 41 | "*.ts": "eslint --fix", 42 | "*.tsx": "eslint --fix", 43 | "*.js": "eslint --fix", 44 | "*.jsx": "eslint --fix" 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # HN Reader 2 | 3 | 一个现代化的 Hacker News 阅读器,提供评论摘要和内容摘要功能。 4 | 5 | ## 特性 6 | 7 | - 📱 响应式设计,支持移动端和桌面端 8 | - 🔄 无限滚动加载更多故事 9 | - 🤖 使用 Google Gemini 自动生成评论摘要 10 | - 📝 自动生成文章内容摘要 11 | - 💾 使用 Redis 缓存摘要结果 12 | - ⚡️ 快速加载和平滑过渡 13 | - 🎨 现代化的 UI 设计 14 | 15 | ## 技术栈 16 | 17 | - **框架**: [Next.js 14](https://nextjs.org/) 18 | - **样式**: [Tailwind CSS](https://tailwindcss.com/) 19 | - **AI**: [Google Gemini](https://ai.google.dev/) 20 | - **缓存**: [Upstash Redis](https://upstash.com/) 21 | - **部署**: [Vercel](https://vercel.com) 22 | 23 | ## 本地开发 24 | 25 | 1. 克隆仓库: 26 | 27 | ```bash 28 | git clone https://github.com/dickeylth/news-reader.git 29 | cd news-reader 30 | ``` 31 | 32 | 2. 安装依赖: 33 | 34 | ```bash 35 | pnpm install 36 | ``` 37 | 38 | 3. 配置环境变量,创建 `.env.local` 文件: 39 | 40 | ```env 41 | GEMINI_API_KEY=your_gemini_api_key 42 | KV_REST_API_URL=your_upstash_redis_url 43 | KV_REST_API_TOKEN=your_upstash_redis_token 44 | ``` 45 | 46 | 4. 启动开发服务器: 47 | 48 | ```bash 49 | pnpm dev 50 | ``` 51 | 52 | 5. 打开 [http://localhost:3000](http://localhost:3000) 查看应用 53 | 54 | ## 主要功能 55 | 56 | - **故事列表**: 展示最新的 Hacker News 故事 57 | - **内容摘要**: 自动生成文章内容的中文摘要 58 | - **评论摘要**: 使用 AI 总结评论区的主要观点 59 | - **缓存机制**: 使用 Redis 缓存摘要结果,提高响应速度 60 | - **骨架屏**: 优化加载体验 61 | - **错误处理**: 友好的错误提示和重试机制 62 | 63 | ## 贡献 64 | 65 | 欢迎提交 Pull Request 或创建 Issue! 66 | 67 | ## 许可 68 | 69 | MIT License 70 | -------------------------------------------------------------------------------- /.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | browser: true, 5 | es2021: true, 6 | node: true, 7 | }, 8 | extends: [ 9 | "eslint:recommended", 10 | "plugin:@typescript-eslint/recommended" 11 | ], 12 | parser: "@typescript-eslint/parser", 13 | parserOptions: { 14 | tsconfigRootDir: __dirname, 15 | project: ["./tsconfig.json"], 16 | ecmaVersion: 2022, 17 | sourceType: "module", 18 | ecmaFeatures: { 19 | jsx: true, 20 | }, 21 | }, 22 | plugins: ["@typescript-eslint"], 23 | rules: { 24 | "@typescript-eslint/no-explicit-any": "off", 25 | "@typescript-eslint/explicit-module-boundary-types": "off", 26 | "@typescript-eslint/no-inferrable-types": "off", 27 | "@typescript-eslint/no-non-null-assertion": "off", 28 | "@typescript-eslint/no-empty-interface": "off", 29 | "@typescript-eslint/no-namespace": "off", 30 | "@typescript-eslint/no-empty-function": "off", 31 | "@typescript-eslint/no-this-alias": "off", 32 | "@typescript-eslint/ban-types": "off", 33 | "@typescript-eslint/ban-ts-comment": "off", 34 | "prefer-spread": "off", 35 | "no-case-declarations": "off", 36 | "no-console": "off", 37 | "@typescript-eslint/no-unused-vars": ["error"], 38 | "@typescript-eslint/consistent-type-imports": "warn", 39 | "@typescript-eslint/no-unnecessary-condition": "warn", 40 | }, 41 | }; 42 | -------------------------------------------------------------------------------- /src/components/StoryItem.tsx: -------------------------------------------------------------------------------- 1 | import { formatTime } from '@/utils/date'; 2 | import type { Story } from '@/types/hackernews'; 3 | 4 | interface StoryItemProps { 5 | story: Story; 6 | isSelected?: boolean; 7 | onClick: () => void; 8 | isSkeleton?: boolean; 9 | } 10 | 11 | export default function StoryItem({ story, isSelected, onClick, isSkeleton }: StoryItemProps) { 12 | const skeletonClass = isSkeleton ? 'text-gray-200 bg-gray-200 rounded' : ''; 13 | 14 | return ( 15 |
20 |

21 | {story.title} 22 |

23 |
24 | {story.score} points 25 | 26 | by {story.by} 27 | 28 | created {formatTime(story.time)} 29 | {story.descendants > 0 && ( 30 | <> 31 | 32 | {story.descendants} comments 33 | 34 | )} 35 |
36 |
37 | ); 38 | } -------------------------------------------------------------------------------- /src/components/Comment.tsx: -------------------------------------------------------------------------------- 1 | import { formatTime } from '@/utils/date'; 2 | import type { Comment as CommentType } from '@/types/hackernews'; 3 | 4 | export default function Comment({ comment, depth = 0 }: { comment: CommentType; depth?: number }) { 5 | const maxDepth = 3; 6 | const isMaxDepth = depth >= maxDepth; 7 | 8 | if (comment.deleted) { 9 | return ( 10 |
11 | [comment deleted] 12 |
13 | ); 14 | } 15 | 16 | return ( 17 |
18 |
0 ? 'border-l border-orange-200' : ''}`}> 19 |
20 | by {comment.by} 21 | 22 | {formatTime(comment.time)} 23 |
24 | {comment.text && ( 25 |
29 | )} 30 | {!isMaxDepth && comment.replies && comment.replies.length > 0 && ( 31 |
32 | {comment.replies.map((reply) => ( 33 | 34 | ))} 35 |
36 | )} 37 |
38 |
39 | ); 40 | } -------------------------------------------------------------------------------- /src/utils/hackernews.ts: -------------------------------------------------------------------------------- 1 | import type { Comment, Story } from '@/types/hackernews'; 2 | 3 | export async function fetchStory(id: number): Promise { 4 | try { 5 | const response = await fetch(`https://hacker-news.firebaseio.com/v0/item/${id}.json`); 6 | if (!response.ok) return null; 7 | return await response.json(); 8 | } catch (error) { 9 | console.error(`Error fetching story ${id}:`, error); 10 | return null; 11 | } 12 | } 13 | 14 | export async function fetchStoryComments(storyId: string | number): Promise { 15 | try { 16 | const story = await fetchStory(Number(storyId)); 17 | if (!story?.kids) return []; 18 | 19 | const comments = await Promise.all( 20 | story.kids.slice(0, 10).map(id => fetchComment(id)) 21 | ); 22 | return comments.filter((comment): comment is Comment => comment !== null); 23 | } catch (error) { 24 | console.error(`Error fetching comments for story ${storyId}:`, error); 25 | return []; 26 | } 27 | } 28 | 29 | async function fetchComment(id: number, depth = 0): Promise { 30 | if (depth > 3) return null; 31 | 32 | try { 33 | const response = await fetch(`https://hacker-news.firebaseio.com/v0/item/${id}.json`); 34 | if (!response.ok) return null; 35 | const comment: Comment = await response.json(); 36 | 37 | if (comment.kids?.length) { 38 | const replies = await Promise.all( 39 | comment.kids.map(kidId => fetchComment(kidId, depth + 1)) 40 | ); 41 | comment.replies = replies.filter((reply): reply is Comment => reply !== null); 42 | } 43 | 44 | return comment; 45 | } catch (error) { 46 | console.error(`Error fetching comment ${id}:`, error); 47 | return null; 48 | } 49 | } -------------------------------------------------------------------------------- /.vscode/qwik.code-snippets: -------------------------------------------------------------------------------- 1 | { 2 | "Qwik component (simple)": { 3 | "scope": "javascriptreact,typescriptreact", 4 | "prefix": "qcomponent$", 5 | "description": "Simple Qwik component", 6 | "body": [ 7 | "export const ${1:${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/}} = component$(() => {", 8 | " return <${2:div}>$4", 9 | "});", 10 | ], 11 | }, 12 | "Qwik component (props)": { 13 | "scope": "typescriptreact", 14 | "prefix": "qcomponent$ + props", 15 | "description": "Qwik component w/ props", 16 | "body": [ 17 | "export interface ${1:${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/}}Props {", 18 | " $2", 19 | "}", 20 | "", 21 | "export const $1 = component$<$1Props>((props) => {", 22 | " const ${2:count} = useSignal(0);", 23 | " return (", 24 | " <${3:div} on${4:Click}$={(ev) => {$5}}>", 25 | " $6", 26 | " ", 27 | " );", 28 | "});", 29 | ], 30 | }, 31 | "Qwik signal": { 32 | "scope": "javascriptreact,typescriptreact", 33 | "prefix": "quseSignal", 34 | "description": "useSignal() declaration", 35 | "body": ["const ${1:foo} = useSignal($2);", "$0"], 36 | }, 37 | "Qwik store": { 38 | "scope": "javascriptreact,typescriptreact", 39 | "prefix": "quseStore", 40 | "description": "useStore() declaration", 41 | "body": ["const ${1:state} = useStore({", " $2", "});", "$0"], 42 | }, 43 | "$ hook": { 44 | "scope": "javascriptreact,typescriptreact", 45 | "prefix": "q$", 46 | "description": "$() function hook", 47 | "body": ["$(() => {", " $0", "});", ""], 48 | }, 49 | "useVisibleTask": { 50 | "scope": "javascriptreact,typescriptreact", 51 | "prefix": "quseVisibleTask", 52 | "description": "useVisibleTask$() function hook", 53 | "body": ["useVisibleTask$(({ track }) => {", " $0", "});", ""], 54 | }, 55 | "useTask": { 56 | "scope": "javascriptreact,typescriptreact", 57 | "prefix": "quseTask$", 58 | "description": "useTask$() function hook", 59 | "body": [ 60 | "useTask$(({ track }) => {", 61 | " track(() => $1);", 62 | " $0", 63 | "});", 64 | "", 65 | ], 66 | }, 67 | "useResource": { 68 | "scope": "javascriptreact,typescriptreact", 69 | "prefix": "quseResource$", 70 | "description": "useResource$() declaration", 71 | "body": [ 72 | "const $1 = useResource$(({ track, cleanup }) => {", 73 | " $0", 74 | "});", 75 | "", 76 | ], 77 | }, 78 | } 79 | -------------------------------------------------------------------------------- /src/hooks/useSummary.ts: -------------------------------------------------------------------------------- 1 | import { useState, useEffect, useCallback } from 'react'; 2 | import type { Comment as CommentType } from '@/types/hackernews'; 3 | import MarkdownIt from 'markdown-it'; 4 | 5 | const md = new MarkdownIt({ 6 | html: true, 7 | breaks: true, 8 | linkify: true 9 | }); 10 | 11 | interface UseSummaryOptions { 12 | type: 'content' | 'comments'; 13 | payload?: string | CommentType[]; 14 | enabled?: boolean; 15 | } 16 | 17 | function useSummary({ type, payload, enabled = true }: UseSummaryOptions) { 18 | const [summary, setSummary] = useState(''); 19 | const [isLoading, setIsLoading] = useState(false); 20 | const [error, setError] = useState(''); 21 | 22 | const reset = useCallback(() => { 23 | setSummary(''); 24 | setIsLoading(false); 25 | setError(''); 26 | }, []); 27 | 28 | const fetchSummary = useCallback(async () => { 29 | if (!payload || !enabled) { 30 | reset(); 31 | return; 32 | } 33 | 34 | setIsLoading(true); 35 | setError(''); 36 | 37 | try { 38 | const response = await fetch('/api/summarize', { 39 | method: 'POST', 40 | body: JSON.stringify( 41 | type === 'content' 42 | ? { url: payload } 43 | : { comments: payload } 44 | ), 45 | headers: { 'Content-Type': 'application/json' }, 46 | }); 47 | 48 | const data = await response.json(); 49 | if (data.error) { 50 | throw new Error(data.error); 51 | } 52 | setSummary(md.render(data.summary)); 53 | } catch (error) { 54 | const message = error instanceof Error ? error.message : `获取${type === 'content' ? '内容' : '评论'}摘要失败`; 55 | setError(message); 56 | console.error(`获取${type === 'content' ? '内容' : '评论'}摘要失败:`, error); 57 | } finally { 58 | setIsLoading(false); 59 | } 60 | }, [type, payload, enabled]); 61 | 62 | useEffect(() => { 63 | fetchSummary(); 64 | }, [fetchSummary]); 65 | 66 | return { 67 | summary, 68 | isLoading, 69 | error, 70 | reset, 71 | retry: fetchSummary 72 | }; 73 | } 74 | 75 | export function useContentSummary(url: string | undefined) { 76 | const { 77 | summary: contentSummary, 78 | isLoading: isLoadingContentSummary, 79 | error: contentError, 80 | reset: resetContentSummary, 81 | retry: retryContentSummary 82 | } = useSummary({ 83 | type: 'content', 84 | payload: url 85 | }); 86 | 87 | return { 88 | contentSummary, 89 | isLoadingContentSummary, 90 | contentError, 91 | resetContentSummary, 92 | retryContentSummary 93 | }; 94 | } 95 | 96 | export function useCommentsSummary(comments: CommentType[]) { 97 | const { 98 | summary: commentsSummary, 99 | isLoading: isLoadingCommentsSummary, 100 | error: commentsError, 101 | reset: resetCommentsSummary, 102 | retry: retryCommentsSummary 103 | } = useSummary({ 104 | type: 'comments', 105 | payload: comments, 106 | enabled: comments.length > 0 107 | }); 108 | 109 | return { 110 | commentsSummary, 111 | isLoadingCommentsSummary, 112 | commentsError, 113 | resetCommentsSummary, 114 | retryCommentsSummary 115 | }; 116 | } -------------------------------------------------------------------------------- /src/app/api/summarize/route.ts: -------------------------------------------------------------------------------- 1 | import { NextResponse } from 'next/server'; 2 | import type { NextRequest } from 'next/server'; 3 | import { GeminiService } from '@/utils/ai-summary'; 4 | import { RedisCacheService } from '@/utils/redis-cache'; 5 | import type { Comment } from '@/types/hackernews'; 6 | import * as cheerio from 'cheerio'; 7 | import axios from 'axios'; 8 | 9 | export const runtime = 'edge'; 10 | 11 | const apiKey = process.env.GEMINI_API_KEY; 12 | if (!apiKey) { 13 | throw new Error('Missing API key') 14 | } 15 | const geminiService = new GeminiService(apiKey); 16 | 17 | function collectCommentTexts(comment: Comment, isReply: boolean = false): string[] { 18 | const texts: string[] = []; 19 | if (comment.text) { 20 | texts.push(`${isReply ? '\t' : ''}${comment.by} says: [${comment.text}] at ${comment.time}\n`); 21 | } 22 | if (comment.replies) { 23 | texts.push(`${isReply ? '\t' : ''}${comment.by} has ${comment.replies.length} replies:\n`); 24 | comment.replies.forEach(reply => { 25 | texts.push(...collectCommentTexts(reply, true)); 26 | }); 27 | } 28 | return texts; 29 | } 30 | 31 | function collectCommentIds(comment: Comment): number[] { 32 | const ids: number[] = [comment.id]; 33 | if (comment.replies) { 34 | comment.replies.forEach(reply => { 35 | ids.push(...collectCommentIds(reply)); 36 | }); 37 | } 38 | return ids; 39 | } 40 | 41 | function extractMainContent(html: string): string { 42 | const $ = cheerio.load(html); 43 | $('script, style, nav, header, footer').remove(); 44 | const article = $('article').length ? $('article') : $('body'); 45 | return article.text().trim(); 46 | } 47 | 48 | export async function POST(request: NextRequest) { 49 | try { 50 | const body = await request.json() as { comments?: Comment[], url?: string }; 51 | let textToSummarize = ''; 52 | let cacheKey: string[] = []; 53 | 54 | if (body.url) { 55 | const response = await axios.get(body.url, { 56 | headers: { 57 | 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 58 | } 59 | }); 60 | const content = extractMainContent(response.data); 61 | textToSummarize = content; 62 | cacheKey = [`url:${body.url}`]; 63 | } else if (body.comments) { 64 | const commentIds = body.comments.flatMap(comment => collectCommentIds(comment)); 65 | const allCommentTexts = body.comments.flatMap(comment => collectCommentTexts(comment)); 66 | textToSummarize = allCommentTexts.join('\n\n'); 67 | cacheKey = commentIds.map(String); 68 | } else { 69 | return NextResponse.json({ error: '缺少必要参数' }, { status: 400 }); 70 | } 71 | 72 | const cacheService = new RedisCacheService(); 73 | const cachedSummary = await cacheService.getSummary(cacheKey); 74 | if (cachedSummary) { 75 | return NextResponse.json({ 76 | summary: cachedSummary, 77 | fromCache: true 78 | }); 79 | } 80 | 81 | const summary = await geminiService.summarize(textToSummarize); 82 | if (summary) { 83 | await cacheService.setSummary(cacheKey, summary); 84 | } 85 | 86 | return NextResponse.json({ summary }); 87 | } catch (error) { 88 | return NextResponse.json({ error: error instanceof Error ? error.message : '未知错误' + error }, { status: 500 }); 89 | } 90 | } -------------------------------------------------------------------------------- /src/app/page.tsx: -------------------------------------------------------------------------------- 1 | 'use client'; 2 | 3 | import { useEffect, useState } from 'react'; 4 | import type { Story } from '@/types/hackernews'; 5 | import StoryItem from '@/components/StoryItem'; 6 | import StoryDetail from '@/components/StoryDetail'; 7 | import StoryItemSkeleton from '@/components/StoryItemSkeleton'; 8 | import LoadingSpinner from '@/components/LoadingSpinner'; 9 | 10 | export default function Home() { 11 | const [stories, setStories] = useState([]); 12 | const [selectedStoryId, setSelectedStoryId] = useState(null); 13 | const [page, setPage] = useState(0); 14 | const [isFirstLoading, setIsFirstLoading] = useState(true); 15 | const [isLoadingMore, setIsLoadingMore] = useState(false); 16 | const [hasMore, setHasMore] = useState(true); 17 | const ITEMS_PER_PAGE = 10; 18 | 19 | const loadMoreStories = async () => { 20 | if (isLoadingMore || !hasMore) return; 21 | setIsLoadingMore(true); 22 | 23 | try { 24 | const response = await fetch('/api/stories?page=' + page); 25 | const newStories = await response.json(); 26 | 27 | if (newStories.length < ITEMS_PER_PAGE) { 28 | setHasMore(false); 29 | } 30 | 31 | setStories(prev => [...prev, ...newStories]); 32 | setPage(prev => prev + 1); 33 | } catch (error) { 34 | console.error('Error loading stories:', error); 35 | } finally { 36 | setIsLoadingMore(false); 37 | setIsFirstLoading(false); 38 | } 39 | }; 40 | 41 | useEffect(() => { 42 | loadMoreStories(); 43 | }, []); 44 | 45 | useEffect(() => { 46 | const handleScroll = () => { 47 | const scrollHeight = document.documentElement.scrollHeight; 48 | const scrollTop = document.documentElement.scrollTop || document.body.scrollTop; 49 | const clientHeight = document.documentElement.clientHeight; 50 | 51 | if (scrollHeight - scrollTop - clientHeight < 100) { 52 | loadMoreStories(); 53 | } 54 | }; 55 | 56 | window.addEventListener('scroll', handleScroll); 57 | return () => window.removeEventListener('scroll', handleScroll); 58 | }, [page, isLoadingMore, hasMore]); 59 | 60 | return ( 61 |
62 |
63 |
64 |
65 |
66 |
67 | {isFirstLoading ? ( 68 | Array.from({ length: 10 }).map((_, index) => ( 69 | 70 | )) 71 | ) : ( 72 | stories.map(story => ( 73 | setSelectedStoryId(story.id)} 78 | /> 79 | )) 80 | )} 81 |
82 | 83 | {!isFirstLoading && isLoadingMore && ( 84 |
85 | 86 |
87 | )} 88 | 89 | {!isFirstLoading && !isLoadingMore && hasMore && ( 90 |
91 | 97 |
98 | )} 99 |
100 |
101 | 102 |
103 | 104 |
105 |
106 |
107 |
108 | ); 109 | } -------------------------------------------------------------------------------- /src/components/StoryDetail.tsx: -------------------------------------------------------------------------------- 1 | 'use client'; 2 | 3 | import { useEffect, useState } from 'react'; 4 | import { formatTime } from '@/utils/date'; 5 | import type { Comment as CommentType, Story } from '@/types/hackernews'; 6 | import Comment from './Comment'; 7 | import LoadingSpinner from './LoadingSpinner'; 8 | import { useContentSummary, useCommentsSummary } from '@/hooks/useSummary'; 9 | import RetryButton from './RetryButton'; 10 | 11 | 12 | export default function StoryDetail({ storyId }: { storyId: string }) { 13 | const [storyData, setStoryData] = useState<{story: Story, comments: CommentType[]} | null>(null); 14 | const [isLoadingStory, setIsLoadingStory] = useState(false); 15 | 16 | const { contentSummary, isLoadingContentSummary, contentError, resetContentSummary, retryContentSummary } = useContentSummary(storyData?.story.url); 17 | const { commentsSummary, isLoadingCommentsSummary, commentsError, resetCommentsSummary, retryCommentsSummary } = useCommentsSummary(storyData?.comments || []); 18 | 19 | useEffect(() => { 20 | setStoryData(null); 21 | resetContentSummary(); 22 | resetCommentsSummary(); 23 | 24 | if (!storyId) return; 25 | 26 | const fetchStoryData = async () => { 27 | setIsLoadingStory(true); 28 | try { 29 | const response = await fetch(`/api/story/${storyId}`); 30 | const data = await response.json(); 31 | setStoryData(data); 32 | } catch (error) { 33 | console.error('加载故事失败:', error); 34 | } finally { 35 | setIsLoadingStory(false); 36 | } 37 | }; 38 | 39 | fetchStoryData(); 40 | }, [storyId]); 41 | 42 | return ( 43 |
44 | {isLoadingStory ? ( 45 |
46 | 47 |

加载故事中...

48 |
49 | ) : storyData ? ( 50 | <> 51 |

{storyData.story.title}

52 |
53 |
54 | {storyData.story.score} points 55 | 56 | by {storyData.story.by} 57 | 58 | {formatTime(storyData.story.time)} 59 | 60 | {storyData.story.descendants} comments 61 |
62 | {storyData.story.url && ( 63 | 64 | {storyData.story.url} 65 | 66 | )} 67 |
68 | 69 | {isLoadingContentSummary ? ( 70 |
71 |
72 | 73 |

正在生成内容摘要...

74 |
75 |
76 | ) : contentError ? ( 77 |
78 |
79 |

内容摘要生成失败

80 | 81 |
82 |

{contentError}

83 |
84 | ) : contentSummary && ( 85 |
86 |

内容摘要

87 |
88 |
89 | )} 90 | 91 | {isLoadingCommentsSummary ? ( 92 |
93 |
94 | 95 |

正在生成评论摘要...

96 |
97 |
98 | ) : commentsError ? ( 99 |
100 |
101 |

评论摘要生成失败

102 | 103 |
104 |

{commentsError}

105 |
106 | ) : commentsSummary && ( 107 |
108 |

评论摘要

109 |
110 |
111 | )} 112 | 113 |
114 | {storyData.comments.map((comment) => ( 115 | 116 | ))} 117 |
118 | 119 | ) : ( 120 |
121 |

请选择一个故事查看详情

122 |
123 | )} 124 |
125 | ); 126 | } -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | '@google/generative-ai': 12 | specifier: ^0.21.0 13 | version: 0.21.0 14 | '@upstash/redis': 15 | specifier: ^1.28.4 16 | version: 1.34.3 17 | axios: 18 | specifier: ^1.7.9 19 | version: 1.7.9 20 | cheerio: 21 | specifier: ^1.0.0-rc.12 22 | version: 1.0.0 23 | date-fns: 24 | specifier: ^3.3.1 25 | version: 3.6.0 26 | markdown-it: 27 | specifier: ^14.1.0 28 | version: 14.1.0 29 | next: 30 | specifier: ^15.1.1 31 | version: 15.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 32 | react: 33 | specifier: ^18 34 | version: 18.3.1 35 | react-dom: 36 | specifier: ^18 37 | version: 18.3.1(react@18.3.1) 38 | devDependencies: 39 | '@types/cheerio': 40 | specifier: ^0.22.35 41 | version: 0.22.35 42 | '@types/markdown-it': 43 | specifier: ^14.1.2 44 | version: 14.1.2 45 | '@types/node': 46 | specifier: ^20 47 | version: 20.14.11 48 | '@types/react': 49 | specifier: ^18 50 | version: 18.3.18 51 | '@types/react-dom': 52 | specifier: ^18 53 | version: 18.3.5(@types/react@18.3.18) 54 | '@typescript-eslint/eslint-plugin': 55 | specifier: ^8.19.1 56 | version: 8.19.1(@typescript-eslint/parser@8.19.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) 57 | '@typescript-eslint/parser': 58 | specifier: ^8.19.1 59 | version: 8.19.1(eslint@8.57.0)(typescript@5.4.5) 60 | autoprefixer: 61 | specifier: ^10.0.1 62 | version: 10.4.20(postcss@8.4.49) 63 | eslint: 64 | specifier: ^8 65 | version: 8.57.0 66 | eslint-config-next: 67 | specifier: 14.1.0 68 | version: 14.1.0(eslint@8.57.0)(typescript@5.4.5) 69 | husky: 70 | specifier: ^9.1.7 71 | version: 9.1.7 72 | lint-staged: 73 | specifier: ^15.2.11 74 | version: 15.3.0 75 | postcss: 76 | specifier: ^8 77 | version: 8.4.49 78 | tailwindcss: 79 | specifier: ^3.3.0 80 | version: 3.4.17(ts-node@10.9.1(@types/node@20.14.11)(typescript@5.4.5)) 81 | typescript: 82 | specifier: ^5 83 | version: 5.4.5 84 | 85 | packages: 86 | 87 | '@alloc/quick-lru@5.2.0': 88 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} 89 | engines: {node: '>=10'} 90 | 91 | '@cspotcode/source-map-support@0.8.1': 92 | resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} 93 | engines: {node: '>=12'} 94 | 95 | '@emnapi/runtime@1.3.1': 96 | resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} 97 | 98 | '@eslint-community/eslint-utils@4.4.1': 99 | resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} 100 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 101 | peerDependencies: 102 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 103 | 104 | '@eslint-community/regexpp@4.12.1': 105 | resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} 106 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 107 | 108 | '@eslint/eslintrc@2.1.4': 109 | resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} 110 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 111 | 112 | '@eslint/js@8.57.0': 113 | resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} 114 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 115 | 116 | '@google/generative-ai@0.21.0': 117 | resolution: {integrity: sha512-7XhUbtnlkSEZK15kN3t+tzIMxsbKm/dSkKBFalj+20NvPKe1kBY7mR2P7vuijEn+f06z5+A8bVGKO0v39cr6Wg==} 118 | engines: {node: '>=18.0.0'} 119 | 120 | '@humanwhocodes/config-array@0.11.14': 121 | resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} 122 | engines: {node: '>=10.10.0'} 123 | deprecated: Use @eslint/config-array instead 124 | 125 | '@humanwhocodes/module-importer@1.0.1': 126 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 127 | engines: {node: '>=12.22'} 128 | 129 | '@humanwhocodes/object-schema@2.0.3': 130 | resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} 131 | deprecated: Use @eslint/object-schema instead 132 | 133 | '@img/sharp-darwin-arm64@0.33.5': 134 | resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} 135 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 136 | cpu: [arm64] 137 | os: [darwin] 138 | 139 | '@img/sharp-darwin-x64@0.33.5': 140 | resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} 141 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 142 | cpu: [x64] 143 | os: [darwin] 144 | 145 | '@img/sharp-libvips-darwin-arm64@1.0.4': 146 | resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} 147 | cpu: [arm64] 148 | os: [darwin] 149 | 150 | '@img/sharp-libvips-darwin-x64@1.0.4': 151 | resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} 152 | cpu: [x64] 153 | os: [darwin] 154 | 155 | '@img/sharp-libvips-linux-arm64@1.0.4': 156 | resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} 157 | cpu: [arm64] 158 | os: [linux] 159 | libc: [glibc] 160 | 161 | '@img/sharp-libvips-linux-arm@1.0.5': 162 | resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} 163 | cpu: [arm] 164 | os: [linux] 165 | libc: [glibc] 166 | 167 | '@img/sharp-libvips-linux-s390x@1.0.4': 168 | resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} 169 | cpu: [s390x] 170 | os: [linux] 171 | libc: [glibc] 172 | 173 | '@img/sharp-libvips-linux-x64@1.0.4': 174 | resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} 175 | cpu: [x64] 176 | os: [linux] 177 | libc: [glibc] 178 | 179 | '@img/sharp-libvips-linuxmusl-arm64@1.0.4': 180 | resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} 181 | cpu: [arm64] 182 | os: [linux] 183 | libc: [musl] 184 | 185 | '@img/sharp-libvips-linuxmusl-x64@1.0.4': 186 | resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} 187 | cpu: [x64] 188 | os: [linux] 189 | libc: [musl] 190 | 191 | '@img/sharp-linux-arm64@0.33.5': 192 | resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} 193 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 194 | cpu: [arm64] 195 | os: [linux] 196 | libc: [glibc] 197 | 198 | '@img/sharp-linux-arm@0.33.5': 199 | resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} 200 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 201 | cpu: [arm] 202 | os: [linux] 203 | libc: [glibc] 204 | 205 | '@img/sharp-linux-s390x@0.33.5': 206 | resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} 207 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 208 | cpu: [s390x] 209 | os: [linux] 210 | libc: [glibc] 211 | 212 | '@img/sharp-linux-x64@0.33.5': 213 | resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} 214 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 215 | cpu: [x64] 216 | os: [linux] 217 | libc: [glibc] 218 | 219 | '@img/sharp-linuxmusl-arm64@0.33.5': 220 | resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} 221 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 222 | cpu: [arm64] 223 | os: [linux] 224 | libc: [musl] 225 | 226 | '@img/sharp-linuxmusl-x64@0.33.5': 227 | resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} 228 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 229 | cpu: [x64] 230 | os: [linux] 231 | libc: [musl] 232 | 233 | '@img/sharp-wasm32@0.33.5': 234 | resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} 235 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 236 | cpu: [wasm32] 237 | 238 | '@img/sharp-win32-ia32@0.33.5': 239 | resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} 240 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 241 | cpu: [ia32] 242 | os: [win32] 243 | 244 | '@img/sharp-win32-x64@0.33.5': 245 | resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} 246 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 247 | cpu: [x64] 248 | os: [win32] 249 | 250 | '@isaacs/cliui@8.0.2': 251 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 252 | engines: {node: '>=12'} 253 | 254 | '@jridgewell/gen-mapping@0.3.8': 255 | resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} 256 | engines: {node: '>=6.0.0'} 257 | 258 | '@jridgewell/resolve-uri@3.1.2': 259 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 260 | engines: {node: '>=6.0.0'} 261 | 262 | '@jridgewell/set-array@1.2.1': 263 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 264 | engines: {node: '>=6.0.0'} 265 | 266 | '@jridgewell/sourcemap-codec@1.5.0': 267 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 268 | 269 | '@jridgewell/trace-mapping@0.3.25': 270 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 271 | 272 | '@jridgewell/trace-mapping@0.3.9': 273 | resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} 274 | 275 | '@next/env@15.1.4': 276 | resolution: {integrity: sha512-2fZ5YZjedi5AGaeoaC0B20zGntEHRhi2SdWcu61i48BllODcAmmtj8n7YarSPt4DaTsJaBFdxQAVEVzgmx2Zpw==} 277 | 278 | '@next/eslint-plugin-next@14.1.0': 279 | resolution: {integrity: sha512-x4FavbNEeXx/baD/zC/SdrvkjSby8nBn8KcCREqk6UuwvwoAPZmaV8TFCAuo/cpovBRTIY67mHhe86MQQm/68Q==} 280 | 281 | '@next/swc-darwin-arm64@15.1.4': 282 | resolution: {integrity: sha512-wBEMBs+np+R5ozN1F8Y8d/Dycns2COhRnkxRc+rvnbXke5uZBHkUGFgWxfTXn5rx7OLijuUhyfB+gC/ap58dDw==} 283 | engines: {node: '>= 10'} 284 | cpu: [arm64] 285 | os: [darwin] 286 | 287 | '@next/swc-darwin-x64@15.1.4': 288 | resolution: {integrity: sha512-7sgf5rM7Z81V9w48F02Zz6DgEJulavC0jadab4ZsJ+K2sxMNK0/BtF8J8J3CxnsJN3DGcIdC260wEKssKTukUw==} 289 | engines: {node: '>= 10'} 290 | cpu: [x64] 291 | os: [darwin] 292 | 293 | '@next/swc-linux-arm64-gnu@15.1.4': 294 | resolution: {integrity: sha512-JaZlIMNaJenfd55kjaLWMfok+vWBlcRxqnRoZrhFQrhM1uAehP3R0+Aoe+bZOogqlZvAz53nY/k3ZyuKDtT2zQ==} 295 | engines: {node: '>= 10'} 296 | cpu: [arm64] 297 | os: [linux] 298 | libc: [glibc] 299 | 300 | '@next/swc-linux-arm64-musl@15.1.4': 301 | resolution: {integrity: sha512-7EBBjNoyTO2ipMDgCiORpwwOf5tIueFntKjcN3NK+GAQD7OzFJe84p7a2eQUeWdpzZvhVXuAtIen8QcH71ZCOQ==} 302 | engines: {node: '>= 10'} 303 | cpu: [arm64] 304 | os: [linux] 305 | libc: [musl] 306 | 307 | '@next/swc-linux-x64-gnu@15.1.4': 308 | resolution: {integrity: sha512-9TGEgOycqZFuADyFqwmK/9g6S0FYZ3tphR4ebcmCwhL8Y12FW8pIBKJvSwV+UBjMkokstGNH+9F8F031JZKpHw==} 309 | engines: {node: '>= 10'} 310 | cpu: [x64] 311 | os: [linux] 312 | libc: [glibc] 313 | 314 | '@next/swc-linux-x64-musl@15.1.4': 315 | resolution: {integrity: sha512-0578bLRVDJOh+LdIoKvgNDz77+Bd85c5JrFgnlbI1SM3WmEQvsjxTA8ATu9Z9FCiIS/AliVAW2DV/BDwpXbtiQ==} 316 | engines: {node: '>= 10'} 317 | cpu: [x64] 318 | os: [linux] 319 | libc: [musl] 320 | 321 | '@next/swc-win32-arm64-msvc@15.1.4': 322 | resolution: {integrity: sha512-JgFCiV4libQavwII+kncMCl30st0JVxpPOtzWcAI2jtum4HjYaclobKhj+JsRu5tFqMtA5CJIa0MvYyuu9xjjQ==} 323 | engines: {node: '>= 10'} 324 | cpu: [arm64] 325 | os: [win32] 326 | 327 | '@next/swc-win32-x64-msvc@15.1.4': 328 | resolution: {integrity: sha512-xxsJy9wzq7FR5SqPCUqdgSXiNXrMuidgckBa8nH9HtjjxsilgcN6VgXF6tZ3uEWuVEadotQJI8/9EQ6guTC4Yw==} 329 | engines: {node: '>= 10'} 330 | cpu: [x64] 331 | os: [win32] 332 | 333 | '@nodelib/fs.scandir@2.1.5': 334 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 335 | engines: {node: '>= 8'} 336 | 337 | '@nodelib/fs.stat@2.0.5': 338 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 339 | engines: {node: '>= 8'} 340 | 341 | '@nodelib/fs.walk@1.2.8': 342 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 343 | engines: {node: '>= 8'} 344 | 345 | '@nolyfill/is-core-module@1.0.39': 346 | resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} 347 | engines: {node: '>=12.4.0'} 348 | 349 | '@pkgjs/parseargs@0.11.0': 350 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 351 | engines: {node: '>=14'} 352 | 353 | '@rtsao/scc@1.1.0': 354 | resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} 355 | 356 | '@rushstack/eslint-patch@1.10.5': 357 | resolution: {integrity: sha512-kkKUDVlII2DQiKy7UstOR1ErJP8kUKAQ4oa+SQtM0K+lPdmmjj0YnnxBgtTVYH7mUKtbsxeFC9y0AmK7Yb78/A==} 358 | 359 | '@swc/counter@0.1.3': 360 | resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} 361 | 362 | '@swc/helpers@0.5.15': 363 | resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} 364 | 365 | '@tsconfig/node10@1.0.11': 366 | resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} 367 | 368 | '@tsconfig/node12@1.0.11': 369 | resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} 370 | 371 | '@tsconfig/node14@1.0.3': 372 | resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} 373 | 374 | '@tsconfig/node16@1.0.4': 375 | resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} 376 | 377 | '@types/cheerio@0.22.35': 378 | resolution: {integrity: sha512-yD57BchKRvTV+JD53UZ6PD8KWY5g5rvvMLRnZR3EQBCZXiDT/HR+pKpMzFGlWNhFrXlo7VPZXtKvIEwZkAWOIA==} 379 | 380 | '@types/json5@0.0.29': 381 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} 382 | 383 | '@types/linkify-it@5.0.0': 384 | resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} 385 | 386 | '@types/markdown-it@14.1.2': 387 | resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} 388 | 389 | '@types/mdurl@2.0.0': 390 | resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} 391 | 392 | '@types/node@20.14.11': 393 | resolution: {integrity: sha512-kprQpL8MMeszbz6ojB5/tU8PLN4kesnN8Gjzw349rDlNgsSzg90lAVj3llK99Dh7JON+t9AuscPPFW6mPbTnSA==} 394 | 395 | '@types/prop-types@15.7.14': 396 | resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} 397 | 398 | '@types/react-dom@18.3.5': 399 | resolution: {integrity: sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==} 400 | peerDependencies: 401 | '@types/react': ^18.0.0 402 | 403 | '@types/react@18.3.18': 404 | resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} 405 | 406 | '@typescript-eslint/eslint-plugin@8.19.1': 407 | resolution: {integrity: sha512-tJzcVyvvb9h/PB96g30MpxACd9IrunT7GF9wfA9/0TJ1LxGOJx1TdPzSbBBnNED7K9Ka8ybJsnEpiXPktolTLg==} 408 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 409 | peerDependencies: 410 | '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 411 | eslint: ^8.57.0 || ^9.0.0 412 | typescript: '>=4.8.4 <5.8.0' 413 | 414 | '@typescript-eslint/parser@6.21.0': 415 | resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} 416 | engines: {node: ^16.0.0 || >=18.0.0} 417 | peerDependencies: 418 | eslint: ^7.0.0 || ^8.0.0 419 | typescript: '*' 420 | peerDependenciesMeta: 421 | typescript: 422 | optional: true 423 | 424 | '@typescript-eslint/parser@8.19.1': 425 | resolution: {integrity: sha512-67gbfv8rAwawjYx3fYArwldTQKoYfezNUT4D5ioWetr/xCrxXxvleo3uuiFuKfejipvq+og7mjz3b0G2bVyUCw==} 426 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 427 | peerDependencies: 428 | eslint: ^8.57.0 || ^9.0.0 429 | typescript: '>=4.8.4 <5.8.0' 430 | 431 | '@typescript-eslint/scope-manager@6.21.0': 432 | resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} 433 | engines: {node: ^16.0.0 || >=18.0.0} 434 | 435 | '@typescript-eslint/scope-manager@8.19.1': 436 | resolution: {integrity: sha512-60L9KIuN/xgmsINzonOcMDSB8p82h95hoBfSBtXuO4jlR1R9L1xSkmVZKgCPVfavDlXihh4ARNjXhh1gGnLC7Q==} 437 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 438 | 439 | '@typescript-eslint/type-utils@8.19.1': 440 | resolution: {integrity: sha512-Rp7k9lhDKBMRJB/nM9Ksp1zs4796wVNyihG9/TU9R6KCJDNkQbc2EOKjrBtLYh3396ZdpXLtr/MkaSEmNMtykw==} 441 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 442 | peerDependencies: 443 | eslint: ^8.57.0 || ^9.0.0 444 | typescript: '>=4.8.4 <5.8.0' 445 | 446 | '@typescript-eslint/types@6.21.0': 447 | resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} 448 | engines: {node: ^16.0.0 || >=18.0.0} 449 | 450 | '@typescript-eslint/types@8.19.1': 451 | resolution: {integrity: sha512-JBVHMLj7B1K1v1051ZaMMgLW4Q/jre5qGK0Ew6UgXz1Rqh+/xPzV1aW581OM00X6iOfyr1be+QyW8LOUf19BbA==} 452 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 453 | 454 | '@typescript-eslint/typescript-estree@6.21.0': 455 | resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} 456 | engines: {node: ^16.0.0 || >=18.0.0} 457 | peerDependencies: 458 | typescript: '*' 459 | peerDependenciesMeta: 460 | typescript: 461 | optional: true 462 | 463 | '@typescript-eslint/typescript-estree@8.19.1': 464 | resolution: {integrity: sha512-jk/TZwSMJlxlNnqhy0Eod1PNEvCkpY6MXOXE/WLlblZ6ibb32i2We4uByoKPv1d0OD2xebDv4hbs3fm11SMw8Q==} 465 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 466 | peerDependencies: 467 | typescript: '>=4.8.4 <5.8.0' 468 | 469 | '@typescript-eslint/utils@8.19.1': 470 | resolution: {integrity: sha512-IxG5gLO0Ne+KaUc8iW1A+XuKLd63o4wlbI1Zp692n1xojCl/THvgIKXJXBZixTh5dd5+yTJ/VXH7GJaaw21qXA==} 471 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 472 | peerDependencies: 473 | eslint: ^8.57.0 || ^9.0.0 474 | typescript: '>=4.8.4 <5.8.0' 475 | 476 | '@typescript-eslint/visitor-keys@6.21.0': 477 | resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} 478 | engines: {node: ^16.0.0 || >=18.0.0} 479 | 480 | '@typescript-eslint/visitor-keys@8.19.1': 481 | resolution: {integrity: sha512-fzmjU8CHK853V/avYZAvuVut3ZTfwN5YtMaoi+X9Y9MA9keaWNHC3zEQ9zvyX/7Hj+5JkNyK1l7TOR2hevHB6Q==} 482 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 483 | 484 | '@ungap/structured-clone@1.2.1': 485 | resolution: {integrity: sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==} 486 | 487 | '@upstash/redis@1.34.3': 488 | resolution: {integrity: sha512-VT25TyODGy/8ljl7GADnJoMmtmJ1F8d84UXfGonRRF8fWYJz7+2J6GzW+a6ETGtk4OyuRTt7FRSvFG5GvrfSdQ==} 489 | 490 | acorn-jsx@5.3.2: 491 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 492 | peerDependencies: 493 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 494 | 495 | acorn-walk@8.3.4: 496 | resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} 497 | engines: {node: '>=0.4.0'} 498 | 499 | acorn@8.14.0: 500 | resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} 501 | engines: {node: '>=0.4.0'} 502 | hasBin: true 503 | 504 | ajv@6.12.6: 505 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 506 | 507 | ansi-escapes@7.0.0: 508 | resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} 509 | engines: {node: '>=18'} 510 | 511 | ansi-regex@5.0.1: 512 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 513 | engines: {node: '>=8'} 514 | 515 | ansi-regex@6.1.0: 516 | resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} 517 | engines: {node: '>=12'} 518 | 519 | ansi-styles@4.3.0: 520 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 521 | engines: {node: '>=8'} 522 | 523 | ansi-styles@6.2.1: 524 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 525 | engines: {node: '>=12'} 526 | 527 | any-promise@1.3.0: 528 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 529 | 530 | anymatch@3.1.3: 531 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 532 | engines: {node: '>= 8'} 533 | 534 | arg@4.1.3: 535 | resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} 536 | 537 | arg@5.0.2: 538 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 539 | 540 | argparse@2.0.1: 541 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 542 | 543 | aria-query@5.3.2: 544 | resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} 545 | engines: {node: '>= 0.4'} 546 | 547 | array-buffer-byte-length@1.0.2: 548 | resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} 549 | engines: {node: '>= 0.4'} 550 | 551 | array-includes@3.1.8: 552 | resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} 553 | engines: {node: '>= 0.4'} 554 | 555 | array-union@2.1.0: 556 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 557 | engines: {node: '>=8'} 558 | 559 | array.prototype.findlast@1.2.5: 560 | resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} 561 | engines: {node: '>= 0.4'} 562 | 563 | array.prototype.findlastindex@1.2.5: 564 | resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} 565 | engines: {node: '>= 0.4'} 566 | 567 | array.prototype.flat@1.3.3: 568 | resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} 569 | engines: {node: '>= 0.4'} 570 | 571 | array.prototype.flatmap@1.3.3: 572 | resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} 573 | engines: {node: '>= 0.4'} 574 | 575 | array.prototype.tosorted@1.1.4: 576 | resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} 577 | engines: {node: '>= 0.4'} 578 | 579 | arraybuffer.prototype.slice@1.0.4: 580 | resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} 581 | engines: {node: '>= 0.4'} 582 | 583 | ast-types-flow@0.0.8: 584 | resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} 585 | 586 | asynckit@0.4.0: 587 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 588 | 589 | autoprefixer@10.4.20: 590 | resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} 591 | engines: {node: ^10 || ^12 || >=14} 592 | hasBin: true 593 | peerDependencies: 594 | postcss: ^8.1.0 595 | 596 | available-typed-arrays@1.0.7: 597 | resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} 598 | engines: {node: '>= 0.4'} 599 | 600 | axe-core@4.10.2: 601 | resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==} 602 | engines: {node: '>=4'} 603 | 604 | axios@1.7.9: 605 | resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==} 606 | 607 | axobject-query@4.1.0: 608 | resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} 609 | engines: {node: '>= 0.4'} 610 | 611 | balanced-match@1.0.2: 612 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 613 | 614 | binary-extensions@2.3.0: 615 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 616 | engines: {node: '>=8'} 617 | 618 | boolbase@1.0.0: 619 | resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} 620 | 621 | brace-expansion@1.1.11: 622 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 623 | 624 | brace-expansion@2.0.1: 625 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 626 | 627 | braces@3.0.3: 628 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 629 | engines: {node: '>=8'} 630 | 631 | browserslist@4.24.3: 632 | resolution: {integrity: sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==} 633 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 634 | hasBin: true 635 | 636 | busboy@1.6.0: 637 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} 638 | engines: {node: '>=10.16.0'} 639 | 640 | call-bind-apply-helpers@1.0.1: 641 | resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} 642 | engines: {node: '>= 0.4'} 643 | 644 | call-bind@1.0.8: 645 | resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} 646 | engines: {node: '>= 0.4'} 647 | 648 | call-bound@1.0.3: 649 | resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} 650 | engines: {node: '>= 0.4'} 651 | 652 | callsites@3.1.0: 653 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 654 | engines: {node: '>=6'} 655 | 656 | camelcase-css@2.0.1: 657 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 658 | engines: {node: '>= 6'} 659 | 660 | caniuse-lite@1.0.30001690: 661 | resolution: {integrity: sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==} 662 | 663 | chalk@4.1.2: 664 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 665 | engines: {node: '>=10'} 666 | 667 | chalk@5.4.1: 668 | resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} 669 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 670 | 671 | cheerio-select@2.1.0: 672 | resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} 673 | 674 | cheerio@1.0.0: 675 | resolution: {integrity: sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==} 676 | engines: {node: '>=18.17'} 677 | 678 | chokidar@3.6.0: 679 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 680 | engines: {node: '>= 8.10.0'} 681 | 682 | cli-cursor@5.0.0: 683 | resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} 684 | engines: {node: '>=18'} 685 | 686 | cli-truncate@4.0.0: 687 | resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} 688 | engines: {node: '>=18'} 689 | 690 | client-only@0.0.1: 691 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} 692 | 693 | color-convert@2.0.1: 694 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 695 | engines: {node: '>=7.0.0'} 696 | 697 | color-name@1.1.4: 698 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 699 | 700 | color-string@1.9.1: 701 | resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} 702 | 703 | color@4.2.3: 704 | resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} 705 | engines: {node: '>=12.5.0'} 706 | 707 | colorette@2.0.20: 708 | resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} 709 | 710 | combined-stream@1.0.8: 711 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 712 | engines: {node: '>= 0.8'} 713 | 714 | commander@12.1.0: 715 | resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} 716 | engines: {node: '>=18'} 717 | 718 | commander@4.1.1: 719 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 720 | engines: {node: '>= 6'} 721 | 722 | concat-map@0.0.1: 723 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 724 | 725 | create-require@1.1.1: 726 | resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} 727 | 728 | cross-spawn@7.0.6: 729 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 730 | engines: {node: '>= 8'} 731 | 732 | crypto-js@4.2.0: 733 | resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} 734 | 735 | css-select@5.1.0: 736 | resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} 737 | 738 | css-what@6.1.0: 739 | resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} 740 | engines: {node: '>= 6'} 741 | 742 | cssesc@3.0.0: 743 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 744 | engines: {node: '>=4'} 745 | hasBin: true 746 | 747 | csstype@3.1.3: 748 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 749 | 750 | damerau-levenshtein@1.0.8: 751 | resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} 752 | 753 | data-view-buffer@1.0.2: 754 | resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} 755 | engines: {node: '>= 0.4'} 756 | 757 | data-view-byte-length@1.0.2: 758 | resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} 759 | engines: {node: '>= 0.4'} 760 | 761 | data-view-byte-offset@1.0.1: 762 | resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} 763 | engines: {node: '>= 0.4'} 764 | 765 | date-fns@3.6.0: 766 | resolution: {integrity: sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==} 767 | 768 | debug@3.2.7: 769 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 770 | peerDependencies: 771 | supports-color: '*' 772 | peerDependenciesMeta: 773 | supports-color: 774 | optional: true 775 | 776 | debug@4.4.0: 777 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} 778 | engines: {node: '>=6.0'} 779 | peerDependencies: 780 | supports-color: '*' 781 | peerDependenciesMeta: 782 | supports-color: 783 | optional: true 784 | 785 | deep-is@0.1.4: 786 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 787 | 788 | define-data-property@1.1.4: 789 | resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} 790 | engines: {node: '>= 0.4'} 791 | 792 | define-properties@1.2.1: 793 | resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} 794 | engines: {node: '>= 0.4'} 795 | 796 | delayed-stream@1.0.0: 797 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 798 | engines: {node: '>=0.4.0'} 799 | 800 | detect-libc@2.0.3: 801 | resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} 802 | engines: {node: '>=8'} 803 | 804 | didyoumean@1.2.2: 805 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 806 | 807 | diff@4.0.2: 808 | resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} 809 | engines: {node: '>=0.3.1'} 810 | 811 | dir-glob@3.0.1: 812 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 813 | engines: {node: '>=8'} 814 | 815 | dlv@1.1.3: 816 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 817 | 818 | doctrine@2.1.0: 819 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} 820 | engines: {node: '>=0.10.0'} 821 | 822 | doctrine@3.0.0: 823 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 824 | engines: {node: '>=6.0.0'} 825 | 826 | dom-serializer@2.0.0: 827 | resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} 828 | 829 | domelementtype@2.3.0: 830 | resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} 831 | 832 | domhandler@5.0.3: 833 | resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} 834 | engines: {node: '>= 4'} 835 | 836 | domutils@3.2.1: 837 | resolution: {integrity: sha512-xWXmuRnN9OMP6ptPd2+H0cCbcYBULa5YDTbMm/2lvkWvNA3O4wcW+GvzooqBuNM8yy6pl3VIAeJTUUWUbfI5Fw==} 838 | 839 | dunder-proto@1.0.1: 840 | resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} 841 | engines: {node: '>= 0.4'} 842 | 843 | eastasianwidth@0.2.0: 844 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 845 | 846 | electron-to-chromium@1.5.76: 847 | resolution: {integrity: sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==} 848 | 849 | emoji-regex@10.4.0: 850 | resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} 851 | 852 | emoji-regex@8.0.0: 853 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 854 | 855 | emoji-regex@9.2.2: 856 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 857 | 858 | encoding-sniffer@0.2.0: 859 | resolution: {integrity: sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==} 860 | 861 | enhanced-resolve@5.18.0: 862 | resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==} 863 | engines: {node: '>=10.13.0'} 864 | 865 | entities@4.5.0: 866 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 867 | engines: {node: '>=0.12'} 868 | 869 | environment@1.1.0: 870 | resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} 871 | engines: {node: '>=18'} 872 | 873 | es-abstract@1.23.7: 874 | resolution: {integrity: sha512-OygGC8kIcDhXX+6yAZRGLqwi2CmEXCbLQixeGUgYeR+Qwlppqmo7DIDr8XibtEBZp+fJcoYpoatp5qwLMEdcqQ==} 875 | engines: {node: '>= 0.4'} 876 | 877 | es-define-property@1.0.1: 878 | resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} 879 | engines: {node: '>= 0.4'} 880 | 881 | es-errors@1.3.0: 882 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 883 | engines: {node: '>= 0.4'} 884 | 885 | es-iterator-helpers@1.2.1: 886 | resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} 887 | engines: {node: '>= 0.4'} 888 | 889 | es-object-atoms@1.0.0: 890 | resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} 891 | engines: {node: '>= 0.4'} 892 | 893 | es-set-tostringtag@2.0.3: 894 | resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} 895 | engines: {node: '>= 0.4'} 896 | 897 | es-shim-unscopables@1.0.2: 898 | resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} 899 | 900 | es-to-primitive@1.3.0: 901 | resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} 902 | engines: {node: '>= 0.4'} 903 | 904 | escalade@3.2.0: 905 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 906 | engines: {node: '>=6'} 907 | 908 | escape-string-regexp@4.0.0: 909 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 910 | engines: {node: '>=10'} 911 | 912 | eslint-config-next@14.1.0: 913 | resolution: {integrity: sha512-SBX2ed7DoRFXC6CQSLc/SbLY9Ut6HxNB2wPTcoIWjUMd7aF7O/SIE7111L8FdZ9TXsNV4pulUDnfthpyPtbFUg==} 914 | peerDependencies: 915 | eslint: ^7.23.0 || ^8.0.0 916 | typescript: '>=3.3.1' 917 | peerDependenciesMeta: 918 | typescript: 919 | optional: true 920 | 921 | eslint-import-resolver-node@0.3.9: 922 | resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} 923 | 924 | eslint-import-resolver-typescript@3.7.0: 925 | resolution: {integrity: sha512-Vrwyi8HHxY97K5ebydMtffsWAn1SCR9eol49eCd5fJS4O1WV7PaAjbcjmbfJJSMz/t4Mal212Uz/fQZrOB8mow==} 926 | engines: {node: ^14.18.0 || >=16.0.0} 927 | peerDependencies: 928 | eslint: '*' 929 | eslint-plugin-import: '*' 930 | eslint-plugin-import-x: '*' 931 | peerDependenciesMeta: 932 | eslint-plugin-import: 933 | optional: true 934 | eslint-plugin-import-x: 935 | optional: true 936 | 937 | eslint-module-utils@2.12.0: 938 | resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} 939 | engines: {node: '>=4'} 940 | peerDependencies: 941 | '@typescript-eslint/parser': '*' 942 | eslint: '*' 943 | eslint-import-resolver-node: '*' 944 | eslint-import-resolver-typescript: '*' 945 | eslint-import-resolver-webpack: '*' 946 | peerDependenciesMeta: 947 | '@typescript-eslint/parser': 948 | optional: true 949 | eslint: 950 | optional: true 951 | eslint-import-resolver-node: 952 | optional: true 953 | eslint-import-resolver-typescript: 954 | optional: true 955 | eslint-import-resolver-webpack: 956 | optional: true 957 | 958 | eslint-plugin-import@2.31.0: 959 | resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} 960 | engines: {node: '>=4'} 961 | peerDependencies: 962 | '@typescript-eslint/parser': '*' 963 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 964 | peerDependenciesMeta: 965 | '@typescript-eslint/parser': 966 | optional: true 967 | 968 | eslint-plugin-jsx-a11y@6.10.2: 969 | resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} 970 | engines: {node: '>=4.0'} 971 | peerDependencies: 972 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 973 | 974 | eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705: 975 | resolution: {integrity: sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==} 976 | engines: {node: '>=10'} 977 | peerDependencies: 978 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 979 | 980 | eslint-plugin-react@7.37.3: 981 | resolution: {integrity: sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==} 982 | engines: {node: '>=4'} 983 | peerDependencies: 984 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 985 | 986 | eslint-scope@7.2.2: 987 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 988 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 989 | 990 | eslint-visitor-keys@3.4.3: 991 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 992 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 993 | 994 | eslint-visitor-keys@4.2.0: 995 | resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} 996 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 997 | 998 | eslint@8.57.0: 999 | resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} 1000 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1001 | deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. 1002 | hasBin: true 1003 | 1004 | espree@9.6.1: 1005 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 1006 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1007 | 1008 | esquery@1.6.0: 1009 | resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} 1010 | engines: {node: '>=0.10'} 1011 | 1012 | esrecurse@4.3.0: 1013 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1014 | engines: {node: '>=4.0'} 1015 | 1016 | estraverse@5.3.0: 1017 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1018 | engines: {node: '>=4.0'} 1019 | 1020 | esutils@2.0.3: 1021 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1022 | engines: {node: '>=0.10.0'} 1023 | 1024 | eventemitter3@5.0.1: 1025 | resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} 1026 | 1027 | execa@8.0.1: 1028 | resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} 1029 | engines: {node: '>=16.17'} 1030 | 1031 | fast-deep-equal@3.1.3: 1032 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1033 | 1034 | fast-glob@3.3.2: 1035 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 1036 | engines: {node: '>=8.6.0'} 1037 | 1038 | fast-json-stable-stringify@2.1.0: 1039 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1040 | 1041 | fast-levenshtein@2.0.6: 1042 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1043 | 1044 | fastq@1.18.0: 1045 | resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==} 1046 | 1047 | file-entry-cache@6.0.1: 1048 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1049 | engines: {node: ^10.12.0 || >=12.0.0} 1050 | 1051 | fill-range@7.1.1: 1052 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 1053 | engines: {node: '>=8'} 1054 | 1055 | find-up@5.0.0: 1056 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1057 | engines: {node: '>=10'} 1058 | 1059 | flat-cache@3.2.0: 1060 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} 1061 | engines: {node: ^10.12.0 || >=12.0.0} 1062 | 1063 | flatted@3.3.2: 1064 | resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} 1065 | 1066 | follow-redirects@1.15.9: 1067 | resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} 1068 | engines: {node: '>=4.0'} 1069 | peerDependencies: 1070 | debug: '*' 1071 | peerDependenciesMeta: 1072 | debug: 1073 | optional: true 1074 | 1075 | for-each@0.3.3: 1076 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} 1077 | 1078 | foreground-child@3.3.0: 1079 | resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} 1080 | engines: {node: '>=14'} 1081 | 1082 | form-data@4.0.1: 1083 | resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} 1084 | engines: {node: '>= 6'} 1085 | 1086 | fraction.js@4.3.7: 1087 | resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} 1088 | 1089 | fs.realpath@1.0.0: 1090 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1091 | 1092 | fsevents@2.3.3: 1093 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1094 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1095 | os: [darwin] 1096 | 1097 | function-bind@1.1.2: 1098 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1099 | 1100 | function.prototype.name@1.1.8: 1101 | resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} 1102 | engines: {node: '>= 0.4'} 1103 | 1104 | functions-have-names@1.2.3: 1105 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 1106 | 1107 | get-east-asian-width@1.3.0: 1108 | resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} 1109 | engines: {node: '>=18'} 1110 | 1111 | get-intrinsic@1.2.6: 1112 | resolution: {integrity: sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==} 1113 | engines: {node: '>= 0.4'} 1114 | 1115 | get-proto@1.0.1: 1116 | resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} 1117 | engines: {node: '>= 0.4'} 1118 | 1119 | get-stream@8.0.1: 1120 | resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} 1121 | engines: {node: '>=16'} 1122 | 1123 | get-symbol-description@1.1.0: 1124 | resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} 1125 | engines: {node: '>= 0.4'} 1126 | 1127 | get-tsconfig@4.8.1: 1128 | resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} 1129 | 1130 | glob-parent@5.1.2: 1131 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1132 | engines: {node: '>= 6'} 1133 | 1134 | glob-parent@6.0.2: 1135 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1136 | engines: {node: '>=10.13.0'} 1137 | 1138 | glob@10.3.10: 1139 | resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} 1140 | engines: {node: '>=16 || 14 >=14.17'} 1141 | hasBin: true 1142 | 1143 | glob@10.4.5: 1144 | resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} 1145 | hasBin: true 1146 | 1147 | glob@7.2.3: 1148 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1149 | deprecated: Glob versions prior to v9 are no longer supported 1150 | 1151 | globals@13.24.0: 1152 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} 1153 | engines: {node: '>=8'} 1154 | 1155 | globalthis@1.0.4: 1156 | resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} 1157 | engines: {node: '>= 0.4'} 1158 | 1159 | globby@11.1.0: 1160 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1161 | engines: {node: '>=10'} 1162 | 1163 | gopd@1.2.0: 1164 | resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} 1165 | engines: {node: '>= 0.4'} 1166 | 1167 | graceful-fs@4.2.11: 1168 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1169 | 1170 | graphemer@1.4.0: 1171 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 1172 | 1173 | has-bigints@1.1.0: 1174 | resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} 1175 | engines: {node: '>= 0.4'} 1176 | 1177 | has-flag@4.0.0: 1178 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1179 | engines: {node: '>=8'} 1180 | 1181 | has-property-descriptors@1.0.2: 1182 | resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} 1183 | 1184 | has-proto@1.2.0: 1185 | resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} 1186 | engines: {node: '>= 0.4'} 1187 | 1188 | has-symbols@1.1.0: 1189 | resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} 1190 | engines: {node: '>= 0.4'} 1191 | 1192 | has-tostringtag@1.0.2: 1193 | resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} 1194 | engines: {node: '>= 0.4'} 1195 | 1196 | hasown@2.0.2: 1197 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 1198 | engines: {node: '>= 0.4'} 1199 | 1200 | htmlparser2@9.1.0: 1201 | resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==} 1202 | 1203 | human-signals@5.0.0: 1204 | resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} 1205 | engines: {node: '>=16.17.0'} 1206 | 1207 | husky@9.1.7: 1208 | resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} 1209 | engines: {node: '>=18'} 1210 | hasBin: true 1211 | 1212 | iconv-lite@0.6.3: 1213 | resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} 1214 | engines: {node: '>=0.10.0'} 1215 | 1216 | ignore@5.3.2: 1217 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 1218 | engines: {node: '>= 4'} 1219 | 1220 | import-fresh@3.3.0: 1221 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1222 | engines: {node: '>=6'} 1223 | 1224 | imurmurhash@0.1.4: 1225 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1226 | engines: {node: '>=0.8.19'} 1227 | 1228 | inflight@1.0.6: 1229 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1230 | deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. 1231 | 1232 | inherits@2.0.4: 1233 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1234 | 1235 | internal-slot@1.1.0: 1236 | resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} 1237 | engines: {node: '>= 0.4'} 1238 | 1239 | is-array-buffer@3.0.5: 1240 | resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} 1241 | engines: {node: '>= 0.4'} 1242 | 1243 | is-arrayish@0.3.2: 1244 | resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} 1245 | 1246 | is-async-function@2.0.0: 1247 | resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} 1248 | engines: {node: '>= 0.4'} 1249 | 1250 | is-bigint@1.1.0: 1251 | resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} 1252 | engines: {node: '>= 0.4'} 1253 | 1254 | is-binary-path@2.1.0: 1255 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1256 | engines: {node: '>=8'} 1257 | 1258 | is-boolean-object@1.2.1: 1259 | resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==} 1260 | engines: {node: '>= 0.4'} 1261 | 1262 | is-bun-module@1.3.0: 1263 | resolution: {integrity: sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==} 1264 | 1265 | is-callable@1.2.7: 1266 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 1267 | engines: {node: '>= 0.4'} 1268 | 1269 | is-core-module@2.16.1: 1270 | resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} 1271 | engines: {node: '>= 0.4'} 1272 | 1273 | is-data-view@1.0.2: 1274 | resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} 1275 | engines: {node: '>= 0.4'} 1276 | 1277 | is-date-object@1.1.0: 1278 | resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} 1279 | engines: {node: '>= 0.4'} 1280 | 1281 | is-extglob@2.1.1: 1282 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1283 | engines: {node: '>=0.10.0'} 1284 | 1285 | is-finalizationregistry@1.1.1: 1286 | resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} 1287 | engines: {node: '>= 0.4'} 1288 | 1289 | is-fullwidth-code-point@3.0.0: 1290 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1291 | engines: {node: '>=8'} 1292 | 1293 | is-fullwidth-code-point@4.0.0: 1294 | resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} 1295 | engines: {node: '>=12'} 1296 | 1297 | is-fullwidth-code-point@5.0.0: 1298 | resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} 1299 | engines: {node: '>=18'} 1300 | 1301 | is-generator-function@1.0.10: 1302 | resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} 1303 | engines: {node: '>= 0.4'} 1304 | 1305 | is-glob@4.0.3: 1306 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1307 | engines: {node: '>=0.10.0'} 1308 | 1309 | is-map@2.0.3: 1310 | resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} 1311 | engines: {node: '>= 0.4'} 1312 | 1313 | is-number-object@1.1.1: 1314 | resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} 1315 | engines: {node: '>= 0.4'} 1316 | 1317 | is-number@7.0.0: 1318 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1319 | engines: {node: '>=0.12.0'} 1320 | 1321 | is-path-inside@3.0.3: 1322 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 1323 | engines: {node: '>=8'} 1324 | 1325 | is-regex@1.2.1: 1326 | resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} 1327 | engines: {node: '>= 0.4'} 1328 | 1329 | is-set@2.0.3: 1330 | resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} 1331 | engines: {node: '>= 0.4'} 1332 | 1333 | is-shared-array-buffer@1.0.4: 1334 | resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} 1335 | engines: {node: '>= 0.4'} 1336 | 1337 | is-stream@3.0.0: 1338 | resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} 1339 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1340 | 1341 | is-string@1.1.1: 1342 | resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} 1343 | engines: {node: '>= 0.4'} 1344 | 1345 | is-symbol@1.1.1: 1346 | resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} 1347 | engines: {node: '>= 0.4'} 1348 | 1349 | is-typed-array@1.1.15: 1350 | resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} 1351 | engines: {node: '>= 0.4'} 1352 | 1353 | is-weakmap@2.0.2: 1354 | resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} 1355 | engines: {node: '>= 0.4'} 1356 | 1357 | is-weakref@1.1.0: 1358 | resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==} 1359 | engines: {node: '>= 0.4'} 1360 | 1361 | is-weakset@2.0.4: 1362 | resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} 1363 | engines: {node: '>= 0.4'} 1364 | 1365 | isarray@2.0.5: 1366 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} 1367 | 1368 | isexe@2.0.0: 1369 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1370 | 1371 | iterator.prototype@1.1.5: 1372 | resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} 1373 | engines: {node: '>= 0.4'} 1374 | 1375 | jackspeak@2.3.6: 1376 | resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} 1377 | engines: {node: '>=14'} 1378 | 1379 | jackspeak@3.4.3: 1380 | resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} 1381 | 1382 | jiti@1.21.7: 1383 | resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} 1384 | hasBin: true 1385 | 1386 | js-tokens@4.0.0: 1387 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1388 | 1389 | js-yaml@4.1.0: 1390 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1391 | hasBin: true 1392 | 1393 | json-buffer@3.0.1: 1394 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 1395 | 1396 | json-schema-traverse@0.4.1: 1397 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1398 | 1399 | json-stable-stringify-without-jsonify@1.0.1: 1400 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1401 | 1402 | json5@1.0.2: 1403 | resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} 1404 | hasBin: true 1405 | 1406 | jsx-ast-utils@3.3.5: 1407 | resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} 1408 | engines: {node: '>=4.0'} 1409 | 1410 | keyv@4.5.4: 1411 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 1412 | 1413 | language-subtag-registry@0.3.23: 1414 | resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} 1415 | 1416 | language-tags@1.0.9: 1417 | resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} 1418 | engines: {node: '>=0.10'} 1419 | 1420 | levn@0.4.1: 1421 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1422 | engines: {node: '>= 0.8.0'} 1423 | 1424 | lilconfig@3.1.3: 1425 | resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} 1426 | engines: {node: '>=14'} 1427 | 1428 | lines-and-columns@1.2.4: 1429 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1430 | 1431 | linkify-it@5.0.0: 1432 | resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} 1433 | 1434 | lint-staged@15.3.0: 1435 | resolution: {integrity: sha512-vHFahytLoF2enJklgtOtCtIjZrKD/LoxlaUusd5nh7dWv/dkKQJY74ndFSzxCdv7g0ueGg1ORgTSt4Y9LPZn9A==} 1436 | engines: {node: '>=18.12.0'} 1437 | hasBin: true 1438 | 1439 | listr2@8.2.5: 1440 | resolution: {integrity: sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==} 1441 | engines: {node: '>=18.0.0'} 1442 | 1443 | locate-path@6.0.0: 1444 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1445 | engines: {node: '>=10'} 1446 | 1447 | lodash.merge@4.6.2: 1448 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1449 | 1450 | log-update@6.1.0: 1451 | resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} 1452 | engines: {node: '>=18'} 1453 | 1454 | loose-envify@1.4.0: 1455 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 1456 | hasBin: true 1457 | 1458 | lru-cache@10.4.3: 1459 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 1460 | 1461 | make-error@1.3.6: 1462 | resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} 1463 | 1464 | markdown-it@14.1.0: 1465 | resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} 1466 | hasBin: true 1467 | 1468 | math-intrinsics@1.1.0: 1469 | resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} 1470 | engines: {node: '>= 0.4'} 1471 | 1472 | mdurl@2.0.0: 1473 | resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} 1474 | 1475 | merge-stream@2.0.0: 1476 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 1477 | 1478 | merge2@1.4.1: 1479 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1480 | engines: {node: '>= 8'} 1481 | 1482 | micromatch@4.0.8: 1483 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 1484 | engines: {node: '>=8.6'} 1485 | 1486 | mime-db@1.52.0: 1487 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1488 | engines: {node: '>= 0.6'} 1489 | 1490 | mime-types@2.1.35: 1491 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1492 | engines: {node: '>= 0.6'} 1493 | 1494 | mimic-fn@4.0.0: 1495 | resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} 1496 | engines: {node: '>=12'} 1497 | 1498 | mimic-function@5.0.1: 1499 | resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} 1500 | engines: {node: '>=18'} 1501 | 1502 | minimatch@3.1.2: 1503 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1504 | 1505 | minimatch@9.0.3: 1506 | resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} 1507 | engines: {node: '>=16 || 14 >=14.17'} 1508 | 1509 | minimatch@9.0.5: 1510 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 1511 | engines: {node: '>=16 || 14 >=14.17'} 1512 | 1513 | minimist@1.2.8: 1514 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 1515 | 1516 | minipass@7.1.2: 1517 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 1518 | engines: {node: '>=16 || 14 >=14.17'} 1519 | 1520 | ms@2.1.3: 1521 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1522 | 1523 | mz@2.7.0: 1524 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 1525 | 1526 | nanoid@3.3.8: 1527 | resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} 1528 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1529 | hasBin: true 1530 | 1531 | natural-compare@1.4.0: 1532 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1533 | 1534 | next@15.1.4: 1535 | resolution: {integrity: sha512-mTaq9dwaSuwwOrcu3ebjDYObekkxRnXpuVL21zotM8qE2W0HBOdVIdg2Li9QjMEZrj73LN96LcWcz62V19FjAg==} 1536 | engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} 1537 | hasBin: true 1538 | peerDependencies: 1539 | '@opentelemetry/api': ^1.1.0 1540 | '@playwright/test': ^1.41.2 1541 | babel-plugin-react-compiler: '*' 1542 | react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 1543 | react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 1544 | sass: ^1.3.0 1545 | peerDependenciesMeta: 1546 | '@opentelemetry/api': 1547 | optional: true 1548 | '@playwright/test': 1549 | optional: true 1550 | babel-plugin-react-compiler: 1551 | optional: true 1552 | sass: 1553 | optional: true 1554 | 1555 | node-releases@2.0.19: 1556 | resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} 1557 | 1558 | normalize-path@3.0.0: 1559 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1560 | engines: {node: '>=0.10.0'} 1561 | 1562 | normalize-range@0.1.2: 1563 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} 1564 | engines: {node: '>=0.10.0'} 1565 | 1566 | npm-run-path@5.3.0: 1567 | resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} 1568 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1569 | 1570 | nth-check@2.1.1: 1571 | resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} 1572 | 1573 | object-assign@4.1.1: 1574 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1575 | engines: {node: '>=0.10.0'} 1576 | 1577 | object-hash@3.0.0: 1578 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} 1579 | engines: {node: '>= 6'} 1580 | 1581 | object-inspect@1.13.3: 1582 | resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} 1583 | engines: {node: '>= 0.4'} 1584 | 1585 | object-keys@1.1.1: 1586 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 1587 | engines: {node: '>= 0.4'} 1588 | 1589 | object.assign@4.1.7: 1590 | resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} 1591 | engines: {node: '>= 0.4'} 1592 | 1593 | object.entries@1.1.8: 1594 | resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} 1595 | engines: {node: '>= 0.4'} 1596 | 1597 | object.fromentries@2.0.8: 1598 | resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} 1599 | engines: {node: '>= 0.4'} 1600 | 1601 | object.groupby@1.0.3: 1602 | resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} 1603 | engines: {node: '>= 0.4'} 1604 | 1605 | object.values@1.2.1: 1606 | resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} 1607 | engines: {node: '>= 0.4'} 1608 | 1609 | once@1.4.0: 1610 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1611 | 1612 | onetime@6.0.0: 1613 | resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} 1614 | engines: {node: '>=12'} 1615 | 1616 | onetime@7.0.0: 1617 | resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} 1618 | engines: {node: '>=18'} 1619 | 1620 | optionator@0.9.4: 1621 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 1622 | engines: {node: '>= 0.8.0'} 1623 | 1624 | p-limit@3.1.0: 1625 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1626 | engines: {node: '>=10'} 1627 | 1628 | p-locate@5.0.0: 1629 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1630 | engines: {node: '>=10'} 1631 | 1632 | package-json-from-dist@1.0.1: 1633 | resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} 1634 | 1635 | parent-module@1.0.1: 1636 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1637 | engines: {node: '>=6'} 1638 | 1639 | parse5-htmlparser2-tree-adapter@7.1.0: 1640 | resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} 1641 | 1642 | parse5-parser-stream@7.1.2: 1643 | resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==} 1644 | 1645 | parse5@7.2.1: 1646 | resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} 1647 | 1648 | path-exists@4.0.0: 1649 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1650 | engines: {node: '>=8'} 1651 | 1652 | path-is-absolute@1.0.1: 1653 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1654 | engines: {node: '>=0.10.0'} 1655 | 1656 | path-key@3.1.1: 1657 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1658 | engines: {node: '>=8'} 1659 | 1660 | path-key@4.0.0: 1661 | resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} 1662 | engines: {node: '>=12'} 1663 | 1664 | path-parse@1.0.7: 1665 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1666 | 1667 | path-scurry@1.11.1: 1668 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 1669 | engines: {node: '>=16 || 14 >=14.18'} 1670 | 1671 | path-type@4.0.0: 1672 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1673 | engines: {node: '>=8'} 1674 | 1675 | picocolors@1.1.1: 1676 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1677 | 1678 | picomatch@2.3.1: 1679 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1680 | engines: {node: '>=8.6'} 1681 | 1682 | pidtree@0.6.0: 1683 | resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} 1684 | engines: {node: '>=0.10'} 1685 | hasBin: true 1686 | 1687 | pify@2.3.0: 1688 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 1689 | engines: {node: '>=0.10.0'} 1690 | 1691 | pirates@4.0.6: 1692 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 1693 | engines: {node: '>= 6'} 1694 | 1695 | possible-typed-array-names@1.0.0: 1696 | resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} 1697 | engines: {node: '>= 0.4'} 1698 | 1699 | postcss-import@15.1.0: 1700 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} 1701 | engines: {node: '>=14.0.0'} 1702 | peerDependencies: 1703 | postcss: ^8.0.0 1704 | 1705 | postcss-js@4.0.1: 1706 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} 1707 | engines: {node: ^12 || ^14 || >= 16} 1708 | peerDependencies: 1709 | postcss: ^8.4.21 1710 | 1711 | postcss-load-config@4.0.2: 1712 | resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} 1713 | engines: {node: '>= 14'} 1714 | peerDependencies: 1715 | postcss: '>=8.0.9' 1716 | ts-node: '>=9.0.0' 1717 | peerDependenciesMeta: 1718 | postcss: 1719 | optional: true 1720 | ts-node: 1721 | optional: true 1722 | 1723 | postcss-nested@6.2.0: 1724 | resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} 1725 | engines: {node: '>=12.0'} 1726 | peerDependencies: 1727 | postcss: ^8.2.14 1728 | 1729 | postcss-selector-parser@6.1.2: 1730 | resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} 1731 | engines: {node: '>=4'} 1732 | 1733 | postcss-value-parser@4.2.0: 1734 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 1735 | 1736 | postcss@8.4.31: 1737 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} 1738 | engines: {node: ^10 || ^12 || >=14} 1739 | 1740 | postcss@8.4.49: 1741 | resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} 1742 | engines: {node: ^10 || ^12 || >=14} 1743 | 1744 | prelude-ls@1.2.1: 1745 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1746 | engines: {node: '>= 0.8.0'} 1747 | 1748 | prop-types@15.8.1: 1749 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} 1750 | 1751 | proxy-from-env@1.1.0: 1752 | resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} 1753 | 1754 | punycode.js@2.3.1: 1755 | resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} 1756 | engines: {node: '>=6'} 1757 | 1758 | punycode@2.3.1: 1759 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1760 | engines: {node: '>=6'} 1761 | 1762 | queue-microtask@1.2.3: 1763 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1764 | 1765 | react-dom@18.3.1: 1766 | resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} 1767 | peerDependencies: 1768 | react: ^18.3.1 1769 | 1770 | react-is@16.13.1: 1771 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} 1772 | 1773 | react@18.3.1: 1774 | resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} 1775 | engines: {node: '>=0.10.0'} 1776 | 1777 | read-cache@1.0.0: 1778 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} 1779 | 1780 | readdirp@3.6.0: 1781 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1782 | engines: {node: '>=8.10.0'} 1783 | 1784 | reflect.getprototypeof@1.0.9: 1785 | resolution: {integrity: sha512-r0Ay04Snci87djAsI4U+WNRcSw5S4pOH7qFjd/veA5gC7TbqESR3tcj28ia95L/fYUDw11JKP7uqUKUAfVvV5Q==} 1786 | engines: {node: '>= 0.4'} 1787 | 1788 | regexp.prototype.flags@1.5.3: 1789 | resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} 1790 | engines: {node: '>= 0.4'} 1791 | 1792 | resolve-from@4.0.0: 1793 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1794 | engines: {node: '>=4'} 1795 | 1796 | resolve-pkg-maps@1.0.0: 1797 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 1798 | 1799 | resolve@1.22.10: 1800 | resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} 1801 | engines: {node: '>= 0.4'} 1802 | hasBin: true 1803 | 1804 | resolve@2.0.0-next.5: 1805 | resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} 1806 | hasBin: true 1807 | 1808 | restore-cursor@5.1.0: 1809 | resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} 1810 | engines: {node: '>=18'} 1811 | 1812 | reusify@1.0.4: 1813 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1814 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1815 | 1816 | rfdc@1.4.1: 1817 | resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} 1818 | 1819 | rimraf@3.0.2: 1820 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 1821 | deprecated: Rimraf versions prior to v4 are no longer supported 1822 | hasBin: true 1823 | 1824 | run-parallel@1.2.0: 1825 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1826 | 1827 | safe-array-concat@1.1.3: 1828 | resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} 1829 | engines: {node: '>=0.4'} 1830 | 1831 | safe-regex-test@1.1.0: 1832 | resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} 1833 | engines: {node: '>= 0.4'} 1834 | 1835 | safer-buffer@2.1.2: 1836 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 1837 | 1838 | scheduler@0.23.2: 1839 | resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} 1840 | 1841 | semver@6.3.1: 1842 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 1843 | hasBin: true 1844 | 1845 | semver@7.6.3: 1846 | resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} 1847 | engines: {node: '>=10'} 1848 | hasBin: true 1849 | 1850 | set-function-length@1.2.2: 1851 | resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} 1852 | engines: {node: '>= 0.4'} 1853 | 1854 | set-function-name@2.0.2: 1855 | resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} 1856 | engines: {node: '>= 0.4'} 1857 | 1858 | sharp@0.33.5: 1859 | resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} 1860 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 1861 | 1862 | shebang-command@2.0.0: 1863 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1864 | engines: {node: '>=8'} 1865 | 1866 | shebang-regex@3.0.0: 1867 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1868 | engines: {node: '>=8'} 1869 | 1870 | side-channel-list@1.0.0: 1871 | resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} 1872 | engines: {node: '>= 0.4'} 1873 | 1874 | side-channel-map@1.0.1: 1875 | resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} 1876 | engines: {node: '>= 0.4'} 1877 | 1878 | side-channel-weakmap@1.0.2: 1879 | resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} 1880 | engines: {node: '>= 0.4'} 1881 | 1882 | side-channel@1.1.0: 1883 | resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} 1884 | engines: {node: '>= 0.4'} 1885 | 1886 | signal-exit@4.1.0: 1887 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1888 | engines: {node: '>=14'} 1889 | 1890 | simple-swizzle@0.2.2: 1891 | resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} 1892 | 1893 | slash@3.0.0: 1894 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1895 | engines: {node: '>=8'} 1896 | 1897 | slice-ansi@5.0.0: 1898 | resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} 1899 | engines: {node: '>=12'} 1900 | 1901 | slice-ansi@7.1.0: 1902 | resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} 1903 | engines: {node: '>=18'} 1904 | 1905 | source-map-js@1.2.1: 1906 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 1907 | engines: {node: '>=0.10.0'} 1908 | 1909 | stable-hash@0.0.4: 1910 | resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==} 1911 | 1912 | streamsearch@1.1.0: 1913 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} 1914 | engines: {node: '>=10.0.0'} 1915 | 1916 | string-argv@0.3.2: 1917 | resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} 1918 | engines: {node: '>=0.6.19'} 1919 | 1920 | string-width@4.2.3: 1921 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1922 | engines: {node: '>=8'} 1923 | 1924 | string-width@5.1.2: 1925 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 1926 | engines: {node: '>=12'} 1927 | 1928 | string-width@7.2.0: 1929 | resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} 1930 | engines: {node: '>=18'} 1931 | 1932 | string.prototype.includes@2.0.1: 1933 | resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} 1934 | engines: {node: '>= 0.4'} 1935 | 1936 | string.prototype.matchall@4.0.12: 1937 | resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} 1938 | engines: {node: '>= 0.4'} 1939 | 1940 | string.prototype.repeat@1.0.0: 1941 | resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} 1942 | 1943 | string.prototype.trim@1.2.10: 1944 | resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} 1945 | engines: {node: '>= 0.4'} 1946 | 1947 | string.prototype.trimend@1.0.9: 1948 | resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} 1949 | engines: {node: '>= 0.4'} 1950 | 1951 | string.prototype.trimstart@1.0.8: 1952 | resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} 1953 | engines: {node: '>= 0.4'} 1954 | 1955 | strip-ansi@6.0.1: 1956 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1957 | engines: {node: '>=8'} 1958 | 1959 | strip-ansi@7.1.0: 1960 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 1961 | engines: {node: '>=12'} 1962 | 1963 | strip-bom@3.0.0: 1964 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 1965 | engines: {node: '>=4'} 1966 | 1967 | strip-final-newline@3.0.0: 1968 | resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} 1969 | engines: {node: '>=12'} 1970 | 1971 | strip-json-comments@3.1.1: 1972 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1973 | engines: {node: '>=8'} 1974 | 1975 | styled-jsx@5.1.6: 1976 | resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} 1977 | engines: {node: '>= 12.0.0'} 1978 | peerDependencies: 1979 | '@babel/core': '*' 1980 | babel-plugin-macros: '*' 1981 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' 1982 | peerDependenciesMeta: 1983 | '@babel/core': 1984 | optional: true 1985 | babel-plugin-macros: 1986 | optional: true 1987 | 1988 | sucrase@3.35.0: 1989 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} 1990 | engines: {node: '>=16 || 14 >=14.17'} 1991 | hasBin: true 1992 | 1993 | supports-color@7.2.0: 1994 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1995 | engines: {node: '>=8'} 1996 | 1997 | supports-preserve-symlinks-flag@1.0.0: 1998 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1999 | engines: {node: '>= 0.4'} 2000 | 2001 | tailwindcss@3.4.17: 2002 | resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} 2003 | engines: {node: '>=14.0.0'} 2004 | hasBin: true 2005 | 2006 | tapable@2.2.1: 2007 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} 2008 | engines: {node: '>=6'} 2009 | 2010 | text-table@0.2.0: 2011 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 2012 | 2013 | thenify-all@1.6.0: 2014 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 2015 | engines: {node: '>=0.8'} 2016 | 2017 | thenify@3.3.1: 2018 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 2019 | 2020 | to-regex-range@5.0.1: 2021 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2022 | engines: {node: '>=8.0'} 2023 | 2024 | ts-api-utils@1.4.3: 2025 | resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} 2026 | engines: {node: '>=16'} 2027 | peerDependencies: 2028 | typescript: '>=4.2.0' 2029 | 2030 | ts-api-utils@2.0.0: 2031 | resolution: {integrity: sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==} 2032 | engines: {node: '>=18.12'} 2033 | peerDependencies: 2034 | typescript: '>=4.8.4' 2035 | 2036 | ts-interface-checker@0.1.13: 2037 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 2038 | 2039 | ts-node@10.9.1: 2040 | resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} 2041 | hasBin: true 2042 | peerDependencies: 2043 | '@swc/core': '>=1.2.50' 2044 | '@swc/wasm': '>=1.2.50' 2045 | '@types/node': '*' 2046 | typescript: '>=2.7' 2047 | peerDependenciesMeta: 2048 | '@swc/core': 2049 | optional: true 2050 | '@swc/wasm': 2051 | optional: true 2052 | 2053 | tsconfig-paths@3.15.0: 2054 | resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} 2055 | 2056 | tslib@2.8.1: 2057 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 2058 | 2059 | type-check@0.4.0: 2060 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 2061 | engines: {node: '>= 0.8.0'} 2062 | 2063 | type-fest@0.20.2: 2064 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 2065 | engines: {node: '>=10'} 2066 | 2067 | typed-array-buffer@1.0.3: 2068 | resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} 2069 | engines: {node: '>= 0.4'} 2070 | 2071 | typed-array-byte-length@1.0.3: 2072 | resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} 2073 | engines: {node: '>= 0.4'} 2074 | 2075 | typed-array-byte-offset@1.0.4: 2076 | resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} 2077 | engines: {node: '>= 0.4'} 2078 | 2079 | typed-array-length@1.0.7: 2080 | resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} 2081 | engines: {node: '>= 0.4'} 2082 | 2083 | typescript@5.4.5: 2084 | resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} 2085 | engines: {node: '>=14.17'} 2086 | hasBin: true 2087 | 2088 | uc.micro@2.1.0: 2089 | resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} 2090 | 2091 | unbox-primitive@1.1.0: 2092 | resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} 2093 | engines: {node: '>= 0.4'} 2094 | 2095 | undici-types@5.26.5: 2096 | resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} 2097 | 2098 | undici@6.21.0: 2099 | resolution: {integrity: sha512-BUgJXc752Kou3oOIuU1i+yZZypyZRqNPW0vqoMPl8VaoalSfeR0D8/t4iAS3yirs79SSMTxTag+ZC86uswv+Cw==} 2100 | engines: {node: '>=18.17'} 2101 | 2102 | update-browserslist-db@1.1.1: 2103 | resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} 2104 | hasBin: true 2105 | peerDependencies: 2106 | browserslist: '>= 4.21.0' 2107 | 2108 | uri-js@4.4.1: 2109 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 2110 | 2111 | util-deprecate@1.0.2: 2112 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 2113 | 2114 | v8-compile-cache-lib@3.0.1: 2115 | resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} 2116 | 2117 | whatwg-encoding@3.1.1: 2118 | resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} 2119 | engines: {node: '>=18'} 2120 | 2121 | whatwg-mimetype@4.0.0: 2122 | resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} 2123 | engines: {node: '>=18'} 2124 | 2125 | which-boxed-primitive@1.1.1: 2126 | resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} 2127 | engines: {node: '>= 0.4'} 2128 | 2129 | which-builtin-type@1.2.1: 2130 | resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} 2131 | engines: {node: '>= 0.4'} 2132 | 2133 | which-collection@1.0.2: 2134 | resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} 2135 | engines: {node: '>= 0.4'} 2136 | 2137 | which-typed-array@1.1.18: 2138 | resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} 2139 | engines: {node: '>= 0.4'} 2140 | 2141 | which@2.0.2: 2142 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2143 | engines: {node: '>= 8'} 2144 | hasBin: true 2145 | 2146 | word-wrap@1.2.5: 2147 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 2148 | engines: {node: '>=0.10.0'} 2149 | 2150 | wrap-ansi@7.0.0: 2151 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 2152 | engines: {node: '>=10'} 2153 | 2154 | wrap-ansi@8.1.0: 2155 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 2156 | engines: {node: '>=12'} 2157 | 2158 | wrap-ansi@9.0.0: 2159 | resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} 2160 | engines: {node: '>=18'} 2161 | 2162 | wrappy@1.0.2: 2163 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 2164 | 2165 | yaml@2.6.1: 2166 | resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} 2167 | engines: {node: '>= 14'} 2168 | hasBin: true 2169 | 2170 | yn@3.1.1: 2171 | resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} 2172 | engines: {node: '>=6'} 2173 | 2174 | yocto-queue@0.1.0: 2175 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 2176 | engines: {node: '>=10'} 2177 | 2178 | snapshots: 2179 | 2180 | '@alloc/quick-lru@5.2.0': {} 2181 | 2182 | '@cspotcode/source-map-support@0.8.1': 2183 | dependencies: 2184 | '@jridgewell/trace-mapping': 0.3.9 2185 | optional: true 2186 | 2187 | '@emnapi/runtime@1.3.1': 2188 | dependencies: 2189 | tslib: 2.8.1 2190 | optional: true 2191 | 2192 | '@eslint-community/eslint-utils@4.4.1(eslint@8.57.0)': 2193 | dependencies: 2194 | eslint: 8.57.0 2195 | eslint-visitor-keys: 3.4.3 2196 | 2197 | '@eslint-community/regexpp@4.12.1': {} 2198 | 2199 | '@eslint/eslintrc@2.1.4': 2200 | dependencies: 2201 | ajv: 6.12.6 2202 | debug: 4.4.0 2203 | espree: 9.6.1 2204 | globals: 13.24.0 2205 | ignore: 5.3.2 2206 | import-fresh: 3.3.0 2207 | js-yaml: 4.1.0 2208 | minimatch: 3.1.2 2209 | strip-json-comments: 3.1.1 2210 | transitivePeerDependencies: 2211 | - supports-color 2212 | 2213 | '@eslint/js@8.57.0': {} 2214 | 2215 | '@google/generative-ai@0.21.0': {} 2216 | 2217 | '@humanwhocodes/config-array@0.11.14': 2218 | dependencies: 2219 | '@humanwhocodes/object-schema': 2.0.3 2220 | debug: 4.4.0 2221 | minimatch: 3.1.2 2222 | transitivePeerDependencies: 2223 | - supports-color 2224 | 2225 | '@humanwhocodes/module-importer@1.0.1': {} 2226 | 2227 | '@humanwhocodes/object-schema@2.0.3': {} 2228 | 2229 | '@img/sharp-darwin-arm64@0.33.5': 2230 | optionalDependencies: 2231 | '@img/sharp-libvips-darwin-arm64': 1.0.4 2232 | optional: true 2233 | 2234 | '@img/sharp-darwin-x64@0.33.5': 2235 | optionalDependencies: 2236 | '@img/sharp-libvips-darwin-x64': 1.0.4 2237 | optional: true 2238 | 2239 | '@img/sharp-libvips-darwin-arm64@1.0.4': 2240 | optional: true 2241 | 2242 | '@img/sharp-libvips-darwin-x64@1.0.4': 2243 | optional: true 2244 | 2245 | '@img/sharp-libvips-linux-arm64@1.0.4': 2246 | optional: true 2247 | 2248 | '@img/sharp-libvips-linux-arm@1.0.5': 2249 | optional: true 2250 | 2251 | '@img/sharp-libvips-linux-s390x@1.0.4': 2252 | optional: true 2253 | 2254 | '@img/sharp-libvips-linux-x64@1.0.4': 2255 | optional: true 2256 | 2257 | '@img/sharp-libvips-linuxmusl-arm64@1.0.4': 2258 | optional: true 2259 | 2260 | '@img/sharp-libvips-linuxmusl-x64@1.0.4': 2261 | optional: true 2262 | 2263 | '@img/sharp-linux-arm64@0.33.5': 2264 | optionalDependencies: 2265 | '@img/sharp-libvips-linux-arm64': 1.0.4 2266 | optional: true 2267 | 2268 | '@img/sharp-linux-arm@0.33.5': 2269 | optionalDependencies: 2270 | '@img/sharp-libvips-linux-arm': 1.0.5 2271 | optional: true 2272 | 2273 | '@img/sharp-linux-s390x@0.33.5': 2274 | optionalDependencies: 2275 | '@img/sharp-libvips-linux-s390x': 1.0.4 2276 | optional: true 2277 | 2278 | '@img/sharp-linux-x64@0.33.5': 2279 | optionalDependencies: 2280 | '@img/sharp-libvips-linux-x64': 1.0.4 2281 | optional: true 2282 | 2283 | '@img/sharp-linuxmusl-arm64@0.33.5': 2284 | optionalDependencies: 2285 | '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 2286 | optional: true 2287 | 2288 | '@img/sharp-linuxmusl-x64@0.33.5': 2289 | optionalDependencies: 2290 | '@img/sharp-libvips-linuxmusl-x64': 1.0.4 2291 | optional: true 2292 | 2293 | '@img/sharp-wasm32@0.33.5': 2294 | dependencies: 2295 | '@emnapi/runtime': 1.3.1 2296 | optional: true 2297 | 2298 | '@img/sharp-win32-ia32@0.33.5': 2299 | optional: true 2300 | 2301 | '@img/sharp-win32-x64@0.33.5': 2302 | optional: true 2303 | 2304 | '@isaacs/cliui@8.0.2': 2305 | dependencies: 2306 | string-width: 5.1.2 2307 | string-width-cjs: string-width@4.2.3 2308 | strip-ansi: 7.1.0 2309 | strip-ansi-cjs: strip-ansi@6.0.1 2310 | wrap-ansi: 8.1.0 2311 | wrap-ansi-cjs: wrap-ansi@7.0.0 2312 | 2313 | '@jridgewell/gen-mapping@0.3.8': 2314 | dependencies: 2315 | '@jridgewell/set-array': 1.2.1 2316 | '@jridgewell/sourcemap-codec': 1.5.0 2317 | '@jridgewell/trace-mapping': 0.3.25 2318 | 2319 | '@jridgewell/resolve-uri@3.1.2': {} 2320 | 2321 | '@jridgewell/set-array@1.2.1': {} 2322 | 2323 | '@jridgewell/sourcemap-codec@1.5.0': {} 2324 | 2325 | '@jridgewell/trace-mapping@0.3.25': 2326 | dependencies: 2327 | '@jridgewell/resolve-uri': 3.1.2 2328 | '@jridgewell/sourcemap-codec': 1.5.0 2329 | 2330 | '@jridgewell/trace-mapping@0.3.9': 2331 | dependencies: 2332 | '@jridgewell/resolve-uri': 3.1.2 2333 | '@jridgewell/sourcemap-codec': 1.5.0 2334 | optional: true 2335 | 2336 | '@next/env@15.1.4': {} 2337 | 2338 | '@next/eslint-plugin-next@14.1.0': 2339 | dependencies: 2340 | glob: 10.3.10 2341 | 2342 | '@next/swc-darwin-arm64@15.1.4': 2343 | optional: true 2344 | 2345 | '@next/swc-darwin-x64@15.1.4': 2346 | optional: true 2347 | 2348 | '@next/swc-linux-arm64-gnu@15.1.4': 2349 | optional: true 2350 | 2351 | '@next/swc-linux-arm64-musl@15.1.4': 2352 | optional: true 2353 | 2354 | '@next/swc-linux-x64-gnu@15.1.4': 2355 | optional: true 2356 | 2357 | '@next/swc-linux-x64-musl@15.1.4': 2358 | optional: true 2359 | 2360 | '@next/swc-win32-arm64-msvc@15.1.4': 2361 | optional: true 2362 | 2363 | '@next/swc-win32-x64-msvc@15.1.4': 2364 | optional: true 2365 | 2366 | '@nodelib/fs.scandir@2.1.5': 2367 | dependencies: 2368 | '@nodelib/fs.stat': 2.0.5 2369 | run-parallel: 1.2.0 2370 | 2371 | '@nodelib/fs.stat@2.0.5': {} 2372 | 2373 | '@nodelib/fs.walk@1.2.8': 2374 | dependencies: 2375 | '@nodelib/fs.scandir': 2.1.5 2376 | fastq: 1.18.0 2377 | 2378 | '@nolyfill/is-core-module@1.0.39': {} 2379 | 2380 | '@pkgjs/parseargs@0.11.0': 2381 | optional: true 2382 | 2383 | '@rtsao/scc@1.1.0': {} 2384 | 2385 | '@rushstack/eslint-patch@1.10.5': {} 2386 | 2387 | '@swc/counter@0.1.3': {} 2388 | 2389 | '@swc/helpers@0.5.15': 2390 | dependencies: 2391 | tslib: 2.8.1 2392 | 2393 | '@tsconfig/node10@1.0.11': 2394 | optional: true 2395 | 2396 | '@tsconfig/node12@1.0.11': 2397 | optional: true 2398 | 2399 | '@tsconfig/node14@1.0.3': 2400 | optional: true 2401 | 2402 | '@tsconfig/node16@1.0.4': 2403 | optional: true 2404 | 2405 | '@types/cheerio@0.22.35': 2406 | dependencies: 2407 | '@types/node': 20.14.11 2408 | 2409 | '@types/json5@0.0.29': {} 2410 | 2411 | '@types/linkify-it@5.0.0': {} 2412 | 2413 | '@types/markdown-it@14.1.2': 2414 | dependencies: 2415 | '@types/linkify-it': 5.0.0 2416 | '@types/mdurl': 2.0.0 2417 | 2418 | '@types/mdurl@2.0.0': {} 2419 | 2420 | '@types/node@20.14.11': 2421 | dependencies: 2422 | undici-types: 5.26.5 2423 | 2424 | '@types/prop-types@15.7.14': {} 2425 | 2426 | '@types/react-dom@18.3.5(@types/react@18.3.18)': 2427 | dependencies: 2428 | '@types/react': 18.3.18 2429 | 2430 | '@types/react@18.3.18': 2431 | dependencies: 2432 | '@types/prop-types': 15.7.14 2433 | csstype: 3.1.3 2434 | 2435 | '@typescript-eslint/eslint-plugin@8.19.1(@typescript-eslint/parser@8.19.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)': 2436 | dependencies: 2437 | '@eslint-community/regexpp': 4.12.1 2438 | '@typescript-eslint/parser': 8.19.1(eslint@8.57.0)(typescript@5.4.5) 2439 | '@typescript-eslint/scope-manager': 8.19.1 2440 | '@typescript-eslint/type-utils': 8.19.1(eslint@8.57.0)(typescript@5.4.5) 2441 | '@typescript-eslint/utils': 8.19.1(eslint@8.57.0)(typescript@5.4.5) 2442 | '@typescript-eslint/visitor-keys': 8.19.1 2443 | eslint: 8.57.0 2444 | graphemer: 1.4.0 2445 | ignore: 5.3.2 2446 | natural-compare: 1.4.0 2447 | ts-api-utils: 2.0.0(typescript@5.4.5) 2448 | typescript: 5.4.5 2449 | transitivePeerDependencies: 2450 | - supports-color 2451 | 2452 | '@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.5)': 2453 | dependencies: 2454 | '@typescript-eslint/scope-manager': 6.21.0 2455 | '@typescript-eslint/types': 6.21.0 2456 | '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.5) 2457 | '@typescript-eslint/visitor-keys': 6.21.0 2458 | debug: 4.4.0 2459 | eslint: 8.57.0 2460 | optionalDependencies: 2461 | typescript: 5.4.5 2462 | transitivePeerDependencies: 2463 | - supports-color 2464 | 2465 | '@typescript-eslint/parser@8.19.1(eslint@8.57.0)(typescript@5.4.5)': 2466 | dependencies: 2467 | '@typescript-eslint/scope-manager': 8.19.1 2468 | '@typescript-eslint/types': 8.19.1 2469 | '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.4.5) 2470 | '@typescript-eslint/visitor-keys': 8.19.1 2471 | debug: 4.4.0 2472 | eslint: 8.57.0 2473 | typescript: 5.4.5 2474 | transitivePeerDependencies: 2475 | - supports-color 2476 | 2477 | '@typescript-eslint/scope-manager@6.21.0': 2478 | dependencies: 2479 | '@typescript-eslint/types': 6.21.0 2480 | '@typescript-eslint/visitor-keys': 6.21.0 2481 | 2482 | '@typescript-eslint/scope-manager@8.19.1': 2483 | dependencies: 2484 | '@typescript-eslint/types': 8.19.1 2485 | '@typescript-eslint/visitor-keys': 8.19.1 2486 | 2487 | '@typescript-eslint/type-utils@8.19.1(eslint@8.57.0)(typescript@5.4.5)': 2488 | dependencies: 2489 | '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.4.5) 2490 | '@typescript-eslint/utils': 8.19.1(eslint@8.57.0)(typescript@5.4.5) 2491 | debug: 4.4.0 2492 | eslint: 8.57.0 2493 | ts-api-utils: 2.0.0(typescript@5.4.5) 2494 | typescript: 5.4.5 2495 | transitivePeerDependencies: 2496 | - supports-color 2497 | 2498 | '@typescript-eslint/types@6.21.0': {} 2499 | 2500 | '@typescript-eslint/types@8.19.1': {} 2501 | 2502 | '@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.5)': 2503 | dependencies: 2504 | '@typescript-eslint/types': 6.21.0 2505 | '@typescript-eslint/visitor-keys': 6.21.0 2506 | debug: 4.4.0 2507 | globby: 11.1.0 2508 | is-glob: 4.0.3 2509 | minimatch: 9.0.3 2510 | semver: 7.6.3 2511 | ts-api-utils: 1.4.3(typescript@5.4.5) 2512 | optionalDependencies: 2513 | typescript: 5.4.5 2514 | transitivePeerDependencies: 2515 | - supports-color 2516 | 2517 | '@typescript-eslint/typescript-estree@8.19.1(typescript@5.4.5)': 2518 | dependencies: 2519 | '@typescript-eslint/types': 8.19.1 2520 | '@typescript-eslint/visitor-keys': 8.19.1 2521 | debug: 4.4.0 2522 | fast-glob: 3.3.2 2523 | is-glob: 4.0.3 2524 | minimatch: 9.0.5 2525 | semver: 7.6.3 2526 | ts-api-utils: 2.0.0(typescript@5.4.5) 2527 | typescript: 5.4.5 2528 | transitivePeerDependencies: 2529 | - supports-color 2530 | 2531 | '@typescript-eslint/utils@8.19.1(eslint@8.57.0)(typescript@5.4.5)': 2532 | dependencies: 2533 | '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.0) 2534 | '@typescript-eslint/scope-manager': 8.19.1 2535 | '@typescript-eslint/types': 8.19.1 2536 | '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.4.5) 2537 | eslint: 8.57.0 2538 | typescript: 5.4.5 2539 | transitivePeerDependencies: 2540 | - supports-color 2541 | 2542 | '@typescript-eslint/visitor-keys@6.21.0': 2543 | dependencies: 2544 | '@typescript-eslint/types': 6.21.0 2545 | eslint-visitor-keys: 3.4.3 2546 | 2547 | '@typescript-eslint/visitor-keys@8.19.1': 2548 | dependencies: 2549 | '@typescript-eslint/types': 8.19.1 2550 | eslint-visitor-keys: 4.2.0 2551 | 2552 | '@ungap/structured-clone@1.2.1': {} 2553 | 2554 | '@upstash/redis@1.34.3': 2555 | dependencies: 2556 | crypto-js: 4.2.0 2557 | 2558 | acorn-jsx@5.3.2(acorn@8.14.0): 2559 | dependencies: 2560 | acorn: 8.14.0 2561 | 2562 | acorn-walk@8.3.4: 2563 | dependencies: 2564 | acorn: 8.14.0 2565 | optional: true 2566 | 2567 | acorn@8.14.0: {} 2568 | 2569 | ajv@6.12.6: 2570 | dependencies: 2571 | fast-deep-equal: 3.1.3 2572 | fast-json-stable-stringify: 2.1.0 2573 | json-schema-traverse: 0.4.1 2574 | uri-js: 4.4.1 2575 | 2576 | ansi-escapes@7.0.0: 2577 | dependencies: 2578 | environment: 1.1.0 2579 | 2580 | ansi-regex@5.0.1: {} 2581 | 2582 | ansi-regex@6.1.0: {} 2583 | 2584 | ansi-styles@4.3.0: 2585 | dependencies: 2586 | color-convert: 2.0.1 2587 | 2588 | ansi-styles@6.2.1: {} 2589 | 2590 | any-promise@1.3.0: {} 2591 | 2592 | anymatch@3.1.3: 2593 | dependencies: 2594 | normalize-path: 3.0.0 2595 | picomatch: 2.3.1 2596 | 2597 | arg@4.1.3: 2598 | optional: true 2599 | 2600 | arg@5.0.2: {} 2601 | 2602 | argparse@2.0.1: {} 2603 | 2604 | aria-query@5.3.2: {} 2605 | 2606 | array-buffer-byte-length@1.0.2: 2607 | dependencies: 2608 | call-bound: 1.0.3 2609 | is-array-buffer: 3.0.5 2610 | 2611 | array-includes@3.1.8: 2612 | dependencies: 2613 | call-bind: 1.0.8 2614 | define-properties: 1.2.1 2615 | es-abstract: 1.23.7 2616 | es-object-atoms: 1.0.0 2617 | get-intrinsic: 1.2.6 2618 | is-string: 1.1.1 2619 | 2620 | array-union@2.1.0: {} 2621 | 2622 | array.prototype.findlast@1.2.5: 2623 | dependencies: 2624 | call-bind: 1.0.8 2625 | define-properties: 1.2.1 2626 | es-abstract: 1.23.7 2627 | es-errors: 1.3.0 2628 | es-object-atoms: 1.0.0 2629 | es-shim-unscopables: 1.0.2 2630 | 2631 | array.prototype.findlastindex@1.2.5: 2632 | dependencies: 2633 | call-bind: 1.0.8 2634 | define-properties: 1.2.1 2635 | es-abstract: 1.23.7 2636 | es-errors: 1.3.0 2637 | es-object-atoms: 1.0.0 2638 | es-shim-unscopables: 1.0.2 2639 | 2640 | array.prototype.flat@1.3.3: 2641 | dependencies: 2642 | call-bind: 1.0.8 2643 | define-properties: 1.2.1 2644 | es-abstract: 1.23.7 2645 | es-shim-unscopables: 1.0.2 2646 | 2647 | array.prototype.flatmap@1.3.3: 2648 | dependencies: 2649 | call-bind: 1.0.8 2650 | define-properties: 1.2.1 2651 | es-abstract: 1.23.7 2652 | es-shim-unscopables: 1.0.2 2653 | 2654 | array.prototype.tosorted@1.1.4: 2655 | dependencies: 2656 | call-bind: 1.0.8 2657 | define-properties: 1.2.1 2658 | es-abstract: 1.23.7 2659 | es-errors: 1.3.0 2660 | es-shim-unscopables: 1.0.2 2661 | 2662 | arraybuffer.prototype.slice@1.0.4: 2663 | dependencies: 2664 | array-buffer-byte-length: 1.0.2 2665 | call-bind: 1.0.8 2666 | define-properties: 1.2.1 2667 | es-abstract: 1.23.7 2668 | es-errors: 1.3.0 2669 | get-intrinsic: 1.2.6 2670 | is-array-buffer: 3.0.5 2671 | 2672 | ast-types-flow@0.0.8: {} 2673 | 2674 | asynckit@0.4.0: {} 2675 | 2676 | autoprefixer@10.4.20(postcss@8.4.49): 2677 | dependencies: 2678 | browserslist: 4.24.3 2679 | caniuse-lite: 1.0.30001690 2680 | fraction.js: 4.3.7 2681 | normalize-range: 0.1.2 2682 | picocolors: 1.1.1 2683 | postcss: 8.4.49 2684 | postcss-value-parser: 4.2.0 2685 | 2686 | available-typed-arrays@1.0.7: 2687 | dependencies: 2688 | possible-typed-array-names: 1.0.0 2689 | 2690 | axe-core@4.10.2: {} 2691 | 2692 | axios@1.7.9: 2693 | dependencies: 2694 | follow-redirects: 1.15.9 2695 | form-data: 4.0.1 2696 | proxy-from-env: 1.1.0 2697 | transitivePeerDependencies: 2698 | - debug 2699 | 2700 | axobject-query@4.1.0: {} 2701 | 2702 | balanced-match@1.0.2: {} 2703 | 2704 | binary-extensions@2.3.0: {} 2705 | 2706 | boolbase@1.0.0: {} 2707 | 2708 | brace-expansion@1.1.11: 2709 | dependencies: 2710 | balanced-match: 1.0.2 2711 | concat-map: 0.0.1 2712 | 2713 | brace-expansion@2.0.1: 2714 | dependencies: 2715 | balanced-match: 1.0.2 2716 | 2717 | braces@3.0.3: 2718 | dependencies: 2719 | fill-range: 7.1.1 2720 | 2721 | browserslist@4.24.3: 2722 | dependencies: 2723 | caniuse-lite: 1.0.30001690 2724 | electron-to-chromium: 1.5.76 2725 | node-releases: 2.0.19 2726 | update-browserslist-db: 1.1.1(browserslist@4.24.3) 2727 | 2728 | busboy@1.6.0: 2729 | dependencies: 2730 | streamsearch: 1.1.0 2731 | 2732 | call-bind-apply-helpers@1.0.1: 2733 | dependencies: 2734 | es-errors: 1.3.0 2735 | function-bind: 1.1.2 2736 | 2737 | call-bind@1.0.8: 2738 | dependencies: 2739 | call-bind-apply-helpers: 1.0.1 2740 | es-define-property: 1.0.1 2741 | get-intrinsic: 1.2.6 2742 | set-function-length: 1.2.2 2743 | 2744 | call-bound@1.0.3: 2745 | dependencies: 2746 | call-bind-apply-helpers: 1.0.1 2747 | get-intrinsic: 1.2.6 2748 | 2749 | callsites@3.1.0: {} 2750 | 2751 | camelcase-css@2.0.1: {} 2752 | 2753 | caniuse-lite@1.0.30001690: {} 2754 | 2755 | chalk@4.1.2: 2756 | dependencies: 2757 | ansi-styles: 4.3.0 2758 | supports-color: 7.2.0 2759 | 2760 | chalk@5.4.1: {} 2761 | 2762 | cheerio-select@2.1.0: 2763 | dependencies: 2764 | boolbase: 1.0.0 2765 | css-select: 5.1.0 2766 | css-what: 6.1.0 2767 | domelementtype: 2.3.0 2768 | domhandler: 5.0.3 2769 | domutils: 3.2.1 2770 | 2771 | cheerio@1.0.0: 2772 | dependencies: 2773 | cheerio-select: 2.1.0 2774 | dom-serializer: 2.0.0 2775 | domhandler: 5.0.3 2776 | domutils: 3.2.1 2777 | encoding-sniffer: 0.2.0 2778 | htmlparser2: 9.1.0 2779 | parse5: 7.2.1 2780 | parse5-htmlparser2-tree-adapter: 7.1.0 2781 | parse5-parser-stream: 7.1.2 2782 | undici: 6.21.0 2783 | whatwg-mimetype: 4.0.0 2784 | 2785 | chokidar@3.6.0: 2786 | dependencies: 2787 | anymatch: 3.1.3 2788 | braces: 3.0.3 2789 | glob-parent: 5.1.2 2790 | is-binary-path: 2.1.0 2791 | is-glob: 4.0.3 2792 | normalize-path: 3.0.0 2793 | readdirp: 3.6.0 2794 | optionalDependencies: 2795 | fsevents: 2.3.3 2796 | 2797 | cli-cursor@5.0.0: 2798 | dependencies: 2799 | restore-cursor: 5.1.0 2800 | 2801 | cli-truncate@4.0.0: 2802 | dependencies: 2803 | slice-ansi: 5.0.0 2804 | string-width: 7.2.0 2805 | 2806 | client-only@0.0.1: {} 2807 | 2808 | color-convert@2.0.1: 2809 | dependencies: 2810 | color-name: 1.1.4 2811 | 2812 | color-name@1.1.4: {} 2813 | 2814 | color-string@1.9.1: 2815 | dependencies: 2816 | color-name: 1.1.4 2817 | simple-swizzle: 0.2.2 2818 | optional: true 2819 | 2820 | color@4.2.3: 2821 | dependencies: 2822 | color-convert: 2.0.1 2823 | color-string: 1.9.1 2824 | optional: true 2825 | 2826 | colorette@2.0.20: {} 2827 | 2828 | combined-stream@1.0.8: 2829 | dependencies: 2830 | delayed-stream: 1.0.0 2831 | 2832 | commander@12.1.0: {} 2833 | 2834 | commander@4.1.1: {} 2835 | 2836 | concat-map@0.0.1: {} 2837 | 2838 | create-require@1.1.1: 2839 | optional: true 2840 | 2841 | cross-spawn@7.0.6: 2842 | dependencies: 2843 | path-key: 3.1.1 2844 | shebang-command: 2.0.0 2845 | which: 2.0.2 2846 | 2847 | crypto-js@4.2.0: {} 2848 | 2849 | css-select@5.1.0: 2850 | dependencies: 2851 | boolbase: 1.0.0 2852 | css-what: 6.1.0 2853 | domhandler: 5.0.3 2854 | domutils: 3.2.1 2855 | nth-check: 2.1.1 2856 | 2857 | css-what@6.1.0: {} 2858 | 2859 | cssesc@3.0.0: {} 2860 | 2861 | csstype@3.1.3: {} 2862 | 2863 | damerau-levenshtein@1.0.8: {} 2864 | 2865 | data-view-buffer@1.0.2: 2866 | dependencies: 2867 | call-bound: 1.0.3 2868 | es-errors: 1.3.0 2869 | is-data-view: 1.0.2 2870 | 2871 | data-view-byte-length@1.0.2: 2872 | dependencies: 2873 | call-bound: 1.0.3 2874 | es-errors: 1.3.0 2875 | is-data-view: 1.0.2 2876 | 2877 | data-view-byte-offset@1.0.1: 2878 | dependencies: 2879 | call-bound: 1.0.3 2880 | es-errors: 1.3.0 2881 | is-data-view: 1.0.2 2882 | 2883 | date-fns@3.6.0: {} 2884 | 2885 | debug@3.2.7: 2886 | dependencies: 2887 | ms: 2.1.3 2888 | 2889 | debug@4.4.0: 2890 | dependencies: 2891 | ms: 2.1.3 2892 | 2893 | deep-is@0.1.4: {} 2894 | 2895 | define-data-property@1.1.4: 2896 | dependencies: 2897 | es-define-property: 1.0.1 2898 | es-errors: 1.3.0 2899 | gopd: 1.2.0 2900 | 2901 | define-properties@1.2.1: 2902 | dependencies: 2903 | define-data-property: 1.1.4 2904 | has-property-descriptors: 1.0.2 2905 | object-keys: 1.1.1 2906 | 2907 | delayed-stream@1.0.0: {} 2908 | 2909 | detect-libc@2.0.3: 2910 | optional: true 2911 | 2912 | didyoumean@1.2.2: {} 2913 | 2914 | diff@4.0.2: 2915 | optional: true 2916 | 2917 | dir-glob@3.0.1: 2918 | dependencies: 2919 | path-type: 4.0.0 2920 | 2921 | dlv@1.1.3: {} 2922 | 2923 | doctrine@2.1.0: 2924 | dependencies: 2925 | esutils: 2.0.3 2926 | 2927 | doctrine@3.0.0: 2928 | dependencies: 2929 | esutils: 2.0.3 2930 | 2931 | dom-serializer@2.0.0: 2932 | dependencies: 2933 | domelementtype: 2.3.0 2934 | domhandler: 5.0.3 2935 | entities: 4.5.0 2936 | 2937 | domelementtype@2.3.0: {} 2938 | 2939 | domhandler@5.0.3: 2940 | dependencies: 2941 | domelementtype: 2.3.0 2942 | 2943 | domutils@3.2.1: 2944 | dependencies: 2945 | dom-serializer: 2.0.0 2946 | domelementtype: 2.3.0 2947 | domhandler: 5.0.3 2948 | 2949 | dunder-proto@1.0.1: 2950 | dependencies: 2951 | call-bind-apply-helpers: 1.0.1 2952 | es-errors: 1.3.0 2953 | gopd: 1.2.0 2954 | 2955 | eastasianwidth@0.2.0: {} 2956 | 2957 | electron-to-chromium@1.5.76: {} 2958 | 2959 | emoji-regex@10.4.0: {} 2960 | 2961 | emoji-regex@8.0.0: {} 2962 | 2963 | emoji-regex@9.2.2: {} 2964 | 2965 | encoding-sniffer@0.2.0: 2966 | dependencies: 2967 | iconv-lite: 0.6.3 2968 | whatwg-encoding: 3.1.1 2969 | 2970 | enhanced-resolve@5.18.0: 2971 | dependencies: 2972 | graceful-fs: 4.2.11 2973 | tapable: 2.2.1 2974 | 2975 | entities@4.5.0: {} 2976 | 2977 | environment@1.1.0: {} 2978 | 2979 | es-abstract@1.23.7: 2980 | dependencies: 2981 | array-buffer-byte-length: 1.0.2 2982 | arraybuffer.prototype.slice: 1.0.4 2983 | available-typed-arrays: 1.0.7 2984 | call-bind: 1.0.8 2985 | call-bound: 1.0.3 2986 | data-view-buffer: 1.0.2 2987 | data-view-byte-length: 1.0.2 2988 | data-view-byte-offset: 1.0.1 2989 | es-define-property: 1.0.1 2990 | es-errors: 1.3.0 2991 | es-object-atoms: 1.0.0 2992 | es-set-tostringtag: 2.0.3 2993 | es-to-primitive: 1.3.0 2994 | function.prototype.name: 1.1.8 2995 | get-intrinsic: 1.2.6 2996 | get-symbol-description: 1.1.0 2997 | globalthis: 1.0.4 2998 | gopd: 1.2.0 2999 | has-property-descriptors: 1.0.2 3000 | has-proto: 1.2.0 3001 | has-symbols: 1.1.0 3002 | hasown: 2.0.2 3003 | internal-slot: 1.1.0 3004 | is-array-buffer: 3.0.5 3005 | is-callable: 1.2.7 3006 | is-data-view: 1.0.2 3007 | is-regex: 1.2.1 3008 | is-shared-array-buffer: 1.0.4 3009 | is-string: 1.1.1 3010 | is-typed-array: 1.1.15 3011 | is-weakref: 1.1.0 3012 | math-intrinsics: 1.1.0 3013 | object-inspect: 1.13.3 3014 | object-keys: 1.1.1 3015 | object.assign: 4.1.7 3016 | regexp.prototype.flags: 1.5.3 3017 | safe-array-concat: 1.1.3 3018 | safe-regex-test: 1.1.0 3019 | string.prototype.trim: 1.2.10 3020 | string.prototype.trimend: 1.0.9 3021 | string.prototype.trimstart: 1.0.8 3022 | typed-array-buffer: 1.0.3 3023 | typed-array-byte-length: 1.0.3 3024 | typed-array-byte-offset: 1.0.4 3025 | typed-array-length: 1.0.7 3026 | unbox-primitive: 1.1.0 3027 | which-typed-array: 1.1.18 3028 | 3029 | es-define-property@1.0.1: {} 3030 | 3031 | es-errors@1.3.0: {} 3032 | 3033 | es-iterator-helpers@1.2.1: 3034 | dependencies: 3035 | call-bind: 1.0.8 3036 | call-bound: 1.0.3 3037 | define-properties: 1.2.1 3038 | es-abstract: 1.23.7 3039 | es-errors: 1.3.0 3040 | es-set-tostringtag: 2.0.3 3041 | function-bind: 1.1.2 3042 | get-intrinsic: 1.2.6 3043 | globalthis: 1.0.4 3044 | gopd: 1.2.0 3045 | has-property-descriptors: 1.0.2 3046 | has-proto: 1.2.0 3047 | has-symbols: 1.1.0 3048 | internal-slot: 1.1.0 3049 | iterator.prototype: 1.1.5 3050 | safe-array-concat: 1.1.3 3051 | 3052 | es-object-atoms@1.0.0: 3053 | dependencies: 3054 | es-errors: 1.3.0 3055 | 3056 | es-set-tostringtag@2.0.3: 3057 | dependencies: 3058 | get-intrinsic: 1.2.6 3059 | has-tostringtag: 1.0.2 3060 | hasown: 2.0.2 3061 | 3062 | es-shim-unscopables@1.0.2: 3063 | dependencies: 3064 | hasown: 2.0.2 3065 | 3066 | es-to-primitive@1.3.0: 3067 | dependencies: 3068 | is-callable: 1.2.7 3069 | is-date-object: 1.1.0 3070 | is-symbol: 1.1.1 3071 | 3072 | escalade@3.2.0: {} 3073 | 3074 | escape-string-regexp@4.0.0: {} 3075 | 3076 | eslint-config-next@14.1.0(eslint@8.57.0)(typescript@5.4.5): 3077 | dependencies: 3078 | '@next/eslint-plugin-next': 14.1.0 3079 | '@rushstack/eslint-patch': 1.10.5 3080 | '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.5) 3081 | eslint: 8.57.0 3082 | eslint-import-resolver-node: 0.3.9 3083 | eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.0) 3084 | eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0) 3085 | eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.0) 3086 | eslint-plugin-react: 7.37.3(eslint@8.57.0) 3087 | eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.57.0) 3088 | optionalDependencies: 3089 | typescript: 5.4.5 3090 | transitivePeerDependencies: 3091 | - eslint-import-resolver-webpack 3092 | - eslint-plugin-import-x 3093 | - supports-color 3094 | 3095 | eslint-import-resolver-node@0.3.9: 3096 | dependencies: 3097 | debug: 3.2.7 3098 | is-core-module: 2.16.1 3099 | resolve: 1.22.10 3100 | transitivePeerDependencies: 3101 | - supports-color 3102 | 3103 | eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.0): 3104 | dependencies: 3105 | '@nolyfill/is-core-module': 1.0.39 3106 | debug: 4.4.0 3107 | enhanced-resolve: 5.18.0 3108 | eslint: 8.57.0 3109 | fast-glob: 3.3.2 3110 | get-tsconfig: 4.8.1 3111 | is-bun-module: 1.3.0 3112 | is-glob: 4.0.3 3113 | stable-hash: 0.0.4 3114 | optionalDependencies: 3115 | eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0) 3116 | transitivePeerDependencies: 3117 | - supports-color 3118 | 3119 | eslint-module-utils@2.12.0(@typescript-eslint/parser@8.19.1(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): 3120 | dependencies: 3121 | debug: 3.2.7 3122 | optionalDependencies: 3123 | '@typescript-eslint/parser': 8.19.1(eslint@8.57.0)(typescript@5.4.5) 3124 | eslint: 8.57.0 3125 | eslint-import-resolver-node: 0.3.9 3126 | transitivePeerDependencies: 3127 | - supports-color 3128 | 3129 | eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0): 3130 | dependencies: 3131 | '@rtsao/scc': 1.1.0 3132 | array-includes: 3.1.8 3133 | array.prototype.findlastindex: 1.2.5 3134 | array.prototype.flat: 1.3.3 3135 | array.prototype.flatmap: 1.3.3 3136 | debug: 3.2.7 3137 | doctrine: 2.1.0 3138 | eslint: 8.57.0 3139 | eslint-import-resolver-node: 0.3.9 3140 | eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.19.1(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) 3141 | hasown: 2.0.2 3142 | is-core-module: 2.16.1 3143 | is-glob: 4.0.3 3144 | minimatch: 3.1.2 3145 | object.fromentries: 2.0.8 3146 | object.groupby: 1.0.3 3147 | object.values: 1.2.1 3148 | semver: 6.3.1 3149 | string.prototype.trimend: 1.0.9 3150 | tsconfig-paths: 3.15.0 3151 | optionalDependencies: 3152 | '@typescript-eslint/parser': 8.19.1(eslint@8.57.0)(typescript@5.4.5) 3153 | transitivePeerDependencies: 3154 | - eslint-import-resolver-typescript 3155 | - eslint-import-resolver-webpack 3156 | - supports-color 3157 | 3158 | eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.0): 3159 | dependencies: 3160 | aria-query: 5.3.2 3161 | array-includes: 3.1.8 3162 | array.prototype.flatmap: 1.3.3 3163 | ast-types-flow: 0.0.8 3164 | axe-core: 4.10.2 3165 | axobject-query: 4.1.0 3166 | damerau-levenshtein: 1.0.8 3167 | emoji-regex: 9.2.2 3168 | eslint: 8.57.0 3169 | hasown: 2.0.2 3170 | jsx-ast-utils: 3.3.5 3171 | language-tags: 1.0.9 3172 | minimatch: 3.1.2 3173 | object.fromentries: 2.0.8 3174 | safe-regex-test: 1.1.0 3175 | string.prototype.includes: 2.0.1 3176 | 3177 | eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705(eslint@8.57.0): 3178 | dependencies: 3179 | eslint: 8.57.0 3180 | 3181 | eslint-plugin-react@7.37.3(eslint@8.57.0): 3182 | dependencies: 3183 | array-includes: 3.1.8 3184 | array.prototype.findlast: 1.2.5 3185 | array.prototype.flatmap: 1.3.3 3186 | array.prototype.tosorted: 1.1.4 3187 | doctrine: 2.1.0 3188 | es-iterator-helpers: 1.2.1 3189 | eslint: 8.57.0 3190 | estraverse: 5.3.0 3191 | hasown: 2.0.2 3192 | jsx-ast-utils: 3.3.5 3193 | minimatch: 3.1.2 3194 | object.entries: 1.1.8 3195 | object.fromentries: 2.0.8 3196 | object.values: 1.2.1 3197 | prop-types: 15.8.1 3198 | resolve: 2.0.0-next.5 3199 | semver: 6.3.1 3200 | string.prototype.matchall: 4.0.12 3201 | string.prototype.repeat: 1.0.0 3202 | 3203 | eslint-scope@7.2.2: 3204 | dependencies: 3205 | esrecurse: 4.3.0 3206 | estraverse: 5.3.0 3207 | 3208 | eslint-visitor-keys@3.4.3: {} 3209 | 3210 | eslint-visitor-keys@4.2.0: {} 3211 | 3212 | eslint@8.57.0: 3213 | dependencies: 3214 | '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.0) 3215 | '@eslint-community/regexpp': 4.12.1 3216 | '@eslint/eslintrc': 2.1.4 3217 | '@eslint/js': 8.57.0 3218 | '@humanwhocodes/config-array': 0.11.14 3219 | '@humanwhocodes/module-importer': 1.0.1 3220 | '@nodelib/fs.walk': 1.2.8 3221 | '@ungap/structured-clone': 1.2.1 3222 | ajv: 6.12.6 3223 | chalk: 4.1.2 3224 | cross-spawn: 7.0.6 3225 | debug: 4.4.0 3226 | doctrine: 3.0.0 3227 | escape-string-regexp: 4.0.0 3228 | eslint-scope: 7.2.2 3229 | eslint-visitor-keys: 3.4.3 3230 | espree: 9.6.1 3231 | esquery: 1.6.0 3232 | esutils: 2.0.3 3233 | fast-deep-equal: 3.1.3 3234 | file-entry-cache: 6.0.1 3235 | find-up: 5.0.0 3236 | glob-parent: 6.0.2 3237 | globals: 13.24.0 3238 | graphemer: 1.4.0 3239 | ignore: 5.3.2 3240 | imurmurhash: 0.1.4 3241 | is-glob: 4.0.3 3242 | is-path-inside: 3.0.3 3243 | js-yaml: 4.1.0 3244 | json-stable-stringify-without-jsonify: 1.0.1 3245 | levn: 0.4.1 3246 | lodash.merge: 4.6.2 3247 | minimatch: 3.1.2 3248 | natural-compare: 1.4.0 3249 | optionator: 0.9.4 3250 | strip-ansi: 6.0.1 3251 | text-table: 0.2.0 3252 | transitivePeerDependencies: 3253 | - supports-color 3254 | 3255 | espree@9.6.1: 3256 | dependencies: 3257 | acorn: 8.14.0 3258 | acorn-jsx: 5.3.2(acorn@8.14.0) 3259 | eslint-visitor-keys: 3.4.3 3260 | 3261 | esquery@1.6.0: 3262 | dependencies: 3263 | estraverse: 5.3.0 3264 | 3265 | esrecurse@4.3.0: 3266 | dependencies: 3267 | estraverse: 5.3.0 3268 | 3269 | estraverse@5.3.0: {} 3270 | 3271 | esutils@2.0.3: {} 3272 | 3273 | eventemitter3@5.0.1: {} 3274 | 3275 | execa@8.0.1: 3276 | dependencies: 3277 | cross-spawn: 7.0.6 3278 | get-stream: 8.0.1 3279 | human-signals: 5.0.0 3280 | is-stream: 3.0.0 3281 | merge-stream: 2.0.0 3282 | npm-run-path: 5.3.0 3283 | onetime: 6.0.0 3284 | signal-exit: 4.1.0 3285 | strip-final-newline: 3.0.0 3286 | 3287 | fast-deep-equal@3.1.3: {} 3288 | 3289 | fast-glob@3.3.2: 3290 | dependencies: 3291 | '@nodelib/fs.stat': 2.0.5 3292 | '@nodelib/fs.walk': 1.2.8 3293 | glob-parent: 5.1.2 3294 | merge2: 1.4.1 3295 | micromatch: 4.0.8 3296 | 3297 | fast-json-stable-stringify@2.1.0: {} 3298 | 3299 | fast-levenshtein@2.0.6: {} 3300 | 3301 | fastq@1.18.0: 3302 | dependencies: 3303 | reusify: 1.0.4 3304 | 3305 | file-entry-cache@6.0.1: 3306 | dependencies: 3307 | flat-cache: 3.2.0 3308 | 3309 | fill-range@7.1.1: 3310 | dependencies: 3311 | to-regex-range: 5.0.1 3312 | 3313 | find-up@5.0.0: 3314 | dependencies: 3315 | locate-path: 6.0.0 3316 | path-exists: 4.0.0 3317 | 3318 | flat-cache@3.2.0: 3319 | dependencies: 3320 | flatted: 3.3.2 3321 | keyv: 4.5.4 3322 | rimraf: 3.0.2 3323 | 3324 | flatted@3.3.2: {} 3325 | 3326 | follow-redirects@1.15.9: {} 3327 | 3328 | for-each@0.3.3: 3329 | dependencies: 3330 | is-callable: 1.2.7 3331 | 3332 | foreground-child@3.3.0: 3333 | dependencies: 3334 | cross-spawn: 7.0.6 3335 | signal-exit: 4.1.0 3336 | 3337 | form-data@4.0.1: 3338 | dependencies: 3339 | asynckit: 0.4.0 3340 | combined-stream: 1.0.8 3341 | mime-types: 2.1.35 3342 | 3343 | fraction.js@4.3.7: {} 3344 | 3345 | fs.realpath@1.0.0: {} 3346 | 3347 | fsevents@2.3.3: 3348 | optional: true 3349 | 3350 | function-bind@1.1.2: {} 3351 | 3352 | function.prototype.name@1.1.8: 3353 | dependencies: 3354 | call-bind: 1.0.8 3355 | call-bound: 1.0.3 3356 | define-properties: 1.2.1 3357 | functions-have-names: 1.2.3 3358 | hasown: 2.0.2 3359 | is-callable: 1.2.7 3360 | 3361 | functions-have-names@1.2.3: {} 3362 | 3363 | get-east-asian-width@1.3.0: {} 3364 | 3365 | get-intrinsic@1.2.6: 3366 | dependencies: 3367 | call-bind-apply-helpers: 1.0.1 3368 | dunder-proto: 1.0.1 3369 | es-define-property: 1.0.1 3370 | es-errors: 1.3.0 3371 | es-object-atoms: 1.0.0 3372 | function-bind: 1.1.2 3373 | gopd: 1.2.0 3374 | has-symbols: 1.1.0 3375 | hasown: 2.0.2 3376 | math-intrinsics: 1.1.0 3377 | 3378 | get-proto@1.0.1: 3379 | dependencies: 3380 | dunder-proto: 1.0.1 3381 | es-object-atoms: 1.0.0 3382 | 3383 | get-stream@8.0.1: {} 3384 | 3385 | get-symbol-description@1.1.0: 3386 | dependencies: 3387 | call-bound: 1.0.3 3388 | es-errors: 1.3.0 3389 | get-intrinsic: 1.2.6 3390 | 3391 | get-tsconfig@4.8.1: 3392 | dependencies: 3393 | resolve-pkg-maps: 1.0.0 3394 | 3395 | glob-parent@5.1.2: 3396 | dependencies: 3397 | is-glob: 4.0.3 3398 | 3399 | glob-parent@6.0.2: 3400 | dependencies: 3401 | is-glob: 4.0.3 3402 | 3403 | glob@10.3.10: 3404 | dependencies: 3405 | foreground-child: 3.3.0 3406 | jackspeak: 2.3.6 3407 | minimatch: 9.0.5 3408 | minipass: 7.1.2 3409 | path-scurry: 1.11.1 3410 | 3411 | glob@10.4.5: 3412 | dependencies: 3413 | foreground-child: 3.3.0 3414 | jackspeak: 3.4.3 3415 | minimatch: 9.0.5 3416 | minipass: 7.1.2 3417 | package-json-from-dist: 1.0.1 3418 | path-scurry: 1.11.1 3419 | 3420 | glob@7.2.3: 3421 | dependencies: 3422 | fs.realpath: 1.0.0 3423 | inflight: 1.0.6 3424 | inherits: 2.0.4 3425 | minimatch: 3.1.2 3426 | once: 1.4.0 3427 | path-is-absolute: 1.0.1 3428 | 3429 | globals@13.24.0: 3430 | dependencies: 3431 | type-fest: 0.20.2 3432 | 3433 | globalthis@1.0.4: 3434 | dependencies: 3435 | define-properties: 1.2.1 3436 | gopd: 1.2.0 3437 | 3438 | globby@11.1.0: 3439 | dependencies: 3440 | array-union: 2.1.0 3441 | dir-glob: 3.0.1 3442 | fast-glob: 3.3.2 3443 | ignore: 5.3.2 3444 | merge2: 1.4.1 3445 | slash: 3.0.0 3446 | 3447 | gopd@1.2.0: {} 3448 | 3449 | graceful-fs@4.2.11: {} 3450 | 3451 | graphemer@1.4.0: {} 3452 | 3453 | has-bigints@1.1.0: {} 3454 | 3455 | has-flag@4.0.0: {} 3456 | 3457 | has-property-descriptors@1.0.2: 3458 | dependencies: 3459 | es-define-property: 1.0.1 3460 | 3461 | has-proto@1.2.0: 3462 | dependencies: 3463 | dunder-proto: 1.0.1 3464 | 3465 | has-symbols@1.1.0: {} 3466 | 3467 | has-tostringtag@1.0.2: 3468 | dependencies: 3469 | has-symbols: 1.1.0 3470 | 3471 | hasown@2.0.2: 3472 | dependencies: 3473 | function-bind: 1.1.2 3474 | 3475 | htmlparser2@9.1.0: 3476 | dependencies: 3477 | domelementtype: 2.3.0 3478 | domhandler: 5.0.3 3479 | domutils: 3.2.1 3480 | entities: 4.5.0 3481 | 3482 | human-signals@5.0.0: {} 3483 | 3484 | husky@9.1.7: {} 3485 | 3486 | iconv-lite@0.6.3: 3487 | dependencies: 3488 | safer-buffer: 2.1.2 3489 | 3490 | ignore@5.3.2: {} 3491 | 3492 | import-fresh@3.3.0: 3493 | dependencies: 3494 | parent-module: 1.0.1 3495 | resolve-from: 4.0.0 3496 | 3497 | imurmurhash@0.1.4: {} 3498 | 3499 | inflight@1.0.6: 3500 | dependencies: 3501 | once: 1.4.0 3502 | wrappy: 1.0.2 3503 | 3504 | inherits@2.0.4: {} 3505 | 3506 | internal-slot@1.1.0: 3507 | dependencies: 3508 | es-errors: 1.3.0 3509 | hasown: 2.0.2 3510 | side-channel: 1.1.0 3511 | 3512 | is-array-buffer@3.0.5: 3513 | dependencies: 3514 | call-bind: 1.0.8 3515 | call-bound: 1.0.3 3516 | get-intrinsic: 1.2.6 3517 | 3518 | is-arrayish@0.3.2: 3519 | optional: true 3520 | 3521 | is-async-function@2.0.0: 3522 | dependencies: 3523 | has-tostringtag: 1.0.2 3524 | 3525 | is-bigint@1.1.0: 3526 | dependencies: 3527 | has-bigints: 1.1.0 3528 | 3529 | is-binary-path@2.1.0: 3530 | dependencies: 3531 | binary-extensions: 2.3.0 3532 | 3533 | is-boolean-object@1.2.1: 3534 | dependencies: 3535 | call-bound: 1.0.3 3536 | has-tostringtag: 1.0.2 3537 | 3538 | is-bun-module@1.3.0: 3539 | dependencies: 3540 | semver: 7.6.3 3541 | 3542 | is-callable@1.2.7: {} 3543 | 3544 | is-core-module@2.16.1: 3545 | dependencies: 3546 | hasown: 2.0.2 3547 | 3548 | is-data-view@1.0.2: 3549 | dependencies: 3550 | call-bound: 1.0.3 3551 | get-intrinsic: 1.2.6 3552 | is-typed-array: 1.1.15 3553 | 3554 | is-date-object@1.1.0: 3555 | dependencies: 3556 | call-bound: 1.0.3 3557 | has-tostringtag: 1.0.2 3558 | 3559 | is-extglob@2.1.1: {} 3560 | 3561 | is-finalizationregistry@1.1.1: 3562 | dependencies: 3563 | call-bound: 1.0.3 3564 | 3565 | is-fullwidth-code-point@3.0.0: {} 3566 | 3567 | is-fullwidth-code-point@4.0.0: {} 3568 | 3569 | is-fullwidth-code-point@5.0.0: 3570 | dependencies: 3571 | get-east-asian-width: 1.3.0 3572 | 3573 | is-generator-function@1.0.10: 3574 | dependencies: 3575 | has-tostringtag: 1.0.2 3576 | 3577 | is-glob@4.0.3: 3578 | dependencies: 3579 | is-extglob: 2.1.1 3580 | 3581 | is-map@2.0.3: {} 3582 | 3583 | is-number-object@1.1.1: 3584 | dependencies: 3585 | call-bound: 1.0.3 3586 | has-tostringtag: 1.0.2 3587 | 3588 | is-number@7.0.0: {} 3589 | 3590 | is-path-inside@3.0.3: {} 3591 | 3592 | is-regex@1.2.1: 3593 | dependencies: 3594 | call-bound: 1.0.3 3595 | gopd: 1.2.0 3596 | has-tostringtag: 1.0.2 3597 | hasown: 2.0.2 3598 | 3599 | is-set@2.0.3: {} 3600 | 3601 | is-shared-array-buffer@1.0.4: 3602 | dependencies: 3603 | call-bound: 1.0.3 3604 | 3605 | is-stream@3.0.0: {} 3606 | 3607 | is-string@1.1.1: 3608 | dependencies: 3609 | call-bound: 1.0.3 3610 | has-tostringtag: 1.0.2 3611 | 3612 | is-symbol@1.1.1: 3613 | dependencies: 3614 | call-bound: 1.0.3 3615 | has-symbols: 1.1.0 3616 | safe-regex-test: 1.1.0 3617 | 3618 | is-typed-array@1.1.15: 3619 | dependencies: 3620 | which-typed-array: 1.1.18 3621 | 3622 | is-weakmap@2.0.2: {} 3623 | 3624 | is-weakref@1.1.0: 3625 | dependencies: 3626 | call-bound: 1.0.3 3627 | 3628 | is-weakset@2.0.4: 3629 | dependencies: 3630 | call-bound: 1.0.3 3631 | get-intrinsic: 1.2.6 3632 | 3633 | isarray@2.0.5: {} 3634 | 3635 | isexe@2.0.0: {} 3636 | 3637 | iterator.prototype@1.1.5: 3638 | dependencies: 3639 | define-data-property: 1.1.4 3640 | es-object-atoms: 1.0.0 3641 | get-intrinsic: 1.2.6 3642 | get-proto: 1.0.1 3643 | has-symbols: 1.1.0 3644 | set-function-name: 2.0.2 3645 | 3646 | jackspeak@2.3.6: 3647 | dependencies: 3648 | '@isaacs/cliui': 8.0.2 3649 | optionalDependencies: 3650 | '@pkgjs/parseargs': 0.11.0 3651 | 3652 | jackspeak@3.4.3: 3653 | dependencies: 3654 | '@isaacs/cliui': 8.0.2 3655 | optionalDependencies: 3656 | '@pkgjs/parseargs': 0.11.0 3657 | 3658 | jiti@1.21.7: {} 3659 | 3660 | js-tokens@4.0.0: {} 3661 | 3662 | js-yaml@4.1.0: 3663 | dependencies: 3664 | argparse: 2.0.1 3665 | 3666 | json-buffer@3.0.1: {} 3667 | 3668 | json-schema-traverse@0.4.1: {} 3669 | 3670 | json-stable-stringify-without-jsonify@1.0.1: {} 3671 | 3672 | json5@1.0.2: 3673 | dependencies: 3674 | minimist: 1.2.8 3675 | 3676 | jsx-ast-utils@3.3.5: 3677 | dependencies: 3678 | array-includes: 3.1.8 3679 | array.prototype.flat: 1.3.3 3680 | object.assign: 4.1.7 3681 | object.values: 1.2.1 3682 | 3683 | keyv@4.5.4: 3684 | dependencies: 3685 | json-buffer: 3.0.1 3686 | 3687 | language-subtag-registry@0.3.23: {} 3688 | 3689 | language-tags@1.0.9: 3690 | dependencies: 3691 | language-subtag-registry: 0.3.23 3692 | 3693 | levn@0.4.1: 3694 | dependencies: 3695 | prelude-ls: 1.2.1 3696 | type-check: 0.4.0 3697 | 3698 | lilconfig@3.1.3: {} 3699 | 3700 | lines-and-columns@1.2.4: {} 3701 | 3702 | linkify-it@5.0.0: 3703 | dependencies: 3704 | uc.micro: 2.1.0 3705 | 3706 | lint-staged@15.3.0: 3707 | dependencies: 3708 | chalk: 5.4.1 3709 | commander: 12.1.0 3710 | debug: 4.4.0 3711 | execa: 8.0.1 3712 | lilconfig: 3.1.3 3713 | listr2: 8.2.5 3714 | micromatch: 4.0.8 3715 | pidtree: 0.6.0 3716 | string-argv: 0.3.2 3717 | yaml: 2.6.1 3718 | transitivePeerDependencies: 3719 | - supports-color 3720 | 3721 | listr2@8.2.5: 3722 | dependencies: 3723 | cli-truncate: 4.0.0 3724 | colorette: 2.0.20 3725 | eventemitter3: 5.0.1 3726 | log-update: 6.1.0 3727 | rfdc: 1.4.1 3728 | wrap-ansi: 9.0.0 3729 | 3730 | locate-path@6.0.0: 3731 | dependencies: 3732 | p-locate: 5.0.0 3733 | 3734 | lodash.merge@4.6.2: {} 3735 | 3736 | log-update@6.1.0: 3737 | dependencies: 3738 | ansi-escapes: 7.0.0 3739 | cli-cursor: 5.0.0 3740 | slice-ansi: 7.1.0 3741 | strip-ansi: 7.1.0 3742 | wrap-ansi: 9.0.0 3743 | 3744 | loose-envify@1.4.0: 3745 | dependencies: 3746 | js-tokens: 4.0.0 3747 | 3748 | lru-cache@10.4.3: {} 3749 | 3750 | make-error@1.3.6: 3751 | optional: true 3752 | 3753 | markdown-it@14.1.0: 3754 | dependencies: 3755 | argparse: 2.0.1 3756 | entities: 4.5.0 3757 | linkify-it: 5.0.0 3758 | mdurl: 2.0.0 3759 | punycode.js: 2.3.1 3760 | uc.micro: 2.1.0 3761 | 3762 | math-intrinsics@1.1.0: {} 3763 | 3764 | mdurl@2.0.0: {} 3765 | 3766 | merge-stream@2.0.0: {} 3767 | 3768 | merge2@1.4.1: {} 3769 | 3770 | micromatch@4.0.8: 3771 | dependencies: 3772 | braces: 3.0.3 3773 | picomatch: 2.3.1 3774 | 3775 | mime-db@1.52.0: {} 3776 | 3777 | mime-types@2.1.35: 3778 | dependencies: 3779 | mime-db: 1.52.0 3780 | 3781 | mimic-fn@4.0.0: {} 3782 | 3783 | mimic-function@5.0.1: {} 3784 | 3785 | minimatch@3.1.2: 3786 | dependencies: 3787 | brace-expansion: 1.1.11 3788 | 3789 | minimatch@9.0.3: 3790 | dependencies: 3791 | brace-expansion: 2.0.1 3792 | 3793 | minimatch@9.0.5: 3794 | dependencies: 3795 | brace-expansion: 2.0.1 3796 | 3797 | minimist@1.2.8: {} 3798 | 3799 | minipass@7.1.2: {} 3800 | 3801 | ms@2.1.3: {} 3802 | 3803 | mz@2.7.0: 3804 | dependencies: 3805 | any-promise: 1.3.0 3806 | object-assign: 4.1.1 3807 | thenify-all: 1.6.0 3808 | 3809 | nanoid@3.3.8: {} 3810 | 3811 | natural-compare@1.4.0: {} 3812 | 3813 | next@15.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): 3814 | dependencies: 3815 | '@next/env': 15.1.4 3816 | '@swc/counter': 0.1.3 3817 | '@swc/helpers': 0.5.15 3818 | busboy: 1.6.0 3819 | caniuse-lite: 1.0.30001690 3820 | postcss: 8.4.31 3821 | react: 18.3.1 3822 | react-dom: 18.3.1(react@18.3.1) 3823 | styled-jsx: 5.1.6(react@18.3.1) 3824 | optionalDependencies: 3825 | '@next/swc-darwin-arm64': 15.1.4 3826 | '@next/swc-darwin-x64': 15.1.4 3827 | '@next/swc-linux-arm64-gnu': 15.1.4 3828 | '@next/swc-linux-arm64-musl': 15.1.4 3829 | '@next/swc-linux-x64-gnu': 15.1.4 3830 | '@next/swc-linux-x64-musl': 15.1.4 3831 | '@next/swc-win32-arm64-msvc': 15.1.4 3832 | '@next/swc-win32-x64-msvc': 15.1.4 3833 | sharp: 0.33.5 3834 | transitivePeerDependencies: 3835 | - '@babel/core' 3836 | - babel-plugin-macros 3837 | 3838 | node-releases@2.0.19: {} 3839 | 3840 | normalize-path@3.0.0: {} 3841 | 3842 | normalize-range@0.1.2: {} 3843 | 3844 | npm-run-path@5.3.0: 3845 | dependencies: 3846 | path-key: 4.0.0 3847 | 3848 | nth-check@2.1.1: 3849 | dependencies: 3850 | boolbase: 1.0.0 3851 | 3852 | object-assign@4.1.1: {} 3853 | 3854 | object-hash@3.0.0: {} 3855 | 3856 | object-inspect@1.13.3: {} 3857 | 3858 | object-keys@1.1.1: {} 3859 | 3860 | object.assign@4.1.7: 3861 | dependencies: 3862 | call-bind: 1.0.8 3863 | call-bound: 1.0.3 3864 | define-properties: 1.2.1 3865 | es-object-atoms: 1.0.0 3866 | has-symbols: 1.1.0 3867 | object-keys: 1.1.1 3868 | 3869 | object.entries@1.1.8: 3870 | dependencies: 3871 | call-bind: 1.0.8 3872 | define-properties: 1.2.1 3873 | es-object-atoms: 1.0.0 3874 | 3875 | object.fromentries@2.0.8: 3876 | dependencies: 3877 | call-bind: 1.0.8 3878 | define-properties: 1.2.1 3879 | es-abstract: 1.23.7 3880 | es-object-atoms: 1.0.0 3881 | 3882 | object.groupby@1.0.3: 3883 | dependencies: 3884 | call-bind: 1.0.8 3885 | define-properties: 1.2.1 3886 | es-abstract: 1.23.7 3887 | 3888 | object.values@1.2.1: 3889 | dependencies: 3890 | call-bind: 1.0.8 3891 | call-bound: 1.0.3 3892 | define-properties: 1.2.1 3893 | es-object-atoms: 1.0.0 3894 | 3895 | once@1.4.0: 3896 | dependencies: 3897 | wrappy: 1.0.2 3898 | 3899 | onetime@6.0.0: 3900 | dependencies: 3901 | mimic-fn: 4.0.0 3902 | 3903 | onetime@7.0.0: 3904 | dependencies: 3905 | mimic-function: 5.0.1 3906 | 3907 | optionator@0.9.4: 3908 | dependencies: 3909 | deep-is: 0.1.4 3910 | fast-levenshtein: 2.0.6 3911 | levn: 0.4.1 3912 | prelude-ls: 1.2.1 3913 | type-check: 0.4.0 3914 | word-wrap: 1.2.5 3915 | 3916 | p-limit@3.1.0: 3917 | dependencies: 3918 | yocto-queue: 0.1.0 3919 | 3920 | p-locate@5.0.0: 3921 | dependencies: 3922 | p-limit: 3.1.0 3923 | 3924 | package-json-from-dist@1.0.1: {} 3925 | 3926 | parent-module@1.0.1: 3927 | dependencies: 3928 | callsites: 3.1.0 3929 | 3930 | parse5-htmlparser2-tree-adapter@7.1.0: 3931 | dependencies: 3932 | domhandler: 5.0.3 3933 | parse5: 7.2.1 3934 | 3935 | parse5-parser-stream@7.1.2: 3936 | dependencies: 3937 | parse5: 7.2.1 3938 | 3939 | parse5@7.2.1: 3940 | dependencies: 3941 | entities: 4.5.0 3942 | 3943 | path-exists@4.0.0: {} 3944 | 3945 | path-is-absolute@1.0.1: {} 3946 | 3947 | path-key@3.1.1: {} 3948 | 3949 | path-key@4.0.0: {} 3950 | 3951 | path-parse@1.0.7: {} 3952 | 3953 | path-scurry@1.11.1: 3954 | dependencies: 3955 | lru-cache: 10.4.3 3956 | minipass: 7.1.2 3957 | 3958 | path-type@4.0.0: {} 3959 | 3960 | picocolors@1.1.1: {} 3961 | 3962 | picomatch@2.3.1: {} 3963 | 3964 | pidtree@0.6.0: {} 3965 | 3966 | pify@2.3.0: {} 3967 | 3968 | pirates@4.0.6: {} 3969 | 3970 | possible-typed-array-names@1.0.0: {} 3971 | 3972 | postcss-import@15.1.0(postcss@8.4.49): 3973 | dependencies: 3974 | postcss: 8.4.49 3975 | postcss-value-parser: 4.2.0 3976 | read-cache: 1.0.0 3977 | resolve: 1.22.10 3978 | 3979 | postcss-js@4.0.1(postcss@8.4.49): 3980 | dependencies: 3981 | camelcase-css: 2.0.1 3982 | postcss: 8.4.49 3983 | 3984 | postcss-load-config@4.0.2(postcss@8.4.49)(ts-node@10.9.1(@types/node@20.14.11)(typescript@5.4.5)): 3985 | dependencies: 3986 | lilconfig: 3.1.3 3987 | yaml: 2.6.1 3988 | optionalDependencies: 3989 | postcss: 8.4.49 3990 | ts-node: 10.9.1(@types/node@20.14.11)(typescript@5.4.5) 3991 | 3992 | postcss-nested@6.2.0(postcss@8.4.49): 3993 | dependencies: 3994 | postcss: 8.4.49 3995 | postcss-selector-parser: 6.1.2 3996 | 3997 | postcss-selector-parser@6.1.2: 3998 | dependencies: 3999 | cssesc: 3.0.0 4000 | util-deprecate: 1.0.2 4001 | 4002 | postcss-value-parser@4.2.0: {} 4003 | 4004 | postcss@8.4.31: 4005 | dependencies: 4006 | nanoid: 3.3.8 4007 | picocolors: 1.1.1 4008 | source-map-js: 1.2.1 4009 | 4010 | postcss@8.4.49: 4011 | dependencies: 4012 | nanoid: 3.3.8 4013 | picocolors: 1.1.1 4014 | source-map-js: 1.2.1 4015 | 4016 | prelude-ls@1.2.1: {} 4017 | 4018 | prop-types@15.8.1: 4019 | dependencies: 4020 | loose-envify: 1.4.0 4021 | object-assign: 4.1.1 4022 | react-is: 16.13.1 4023 | 4024 | proxy-from-env@1.1.0: {} 4025 | 4026 | punycode.js@2.3.1: {} 4027 | 4028 | punycode@2.3.1: {} 4029 | 4030 | queue-microtask@1.2.3: {} 4031 | 4032 | react-dom@18.3.1(react@18.3.1): 4033 | dependencies: 4034 | loose-envify: 1.4.0 4035 | react: 18.3.1 4036 | scheduler: 0.23.2 4037 | 4038 | react-is@16.13.1: {} 4039 | 4040 | react@18.3.1: 4041 | dependencies: 4042 | loose-envify: 1.4.0 4043 | 4044 | read-cache@1.0.0: 4045 | dependencies: 4046 | pify: 2.3.0 4047 | 4048 | readdirp@3.6.0: 4049 | dependencies: 4050 | picomatch: 2.3.1 4051 | 4052 | reflect.getprototypeof@1.0.9: 4053 | dependencies: 4054 | call-bind: 1.0.8 4055 | define-properties: 1.2.1 4056 | dunder-proto: 1.0.1 4057 | es-abstract: 1.23.7 4058 | es-errors: 1.3.0 4059 | get-intrinsic: 1.2.6 4060 | gopd: 1.2.0 4061 | which-builtin-type: 1.2.1 4062 | 4063 | regexp.prototype.flags@1.5.3: 4064 | dependencies: 4065 | call-bind: 1.0.8 4066 | define-properties: 1.2.1 4067 | es-errors: 1.3.0 4068 | set-function-name: 2.0.2 4069 | 4070 | resolve-from@4.0.0: {} 4071 | 4072 | resolve-pkg-maps@1.0.0: {} 4073 | 4074 | resolve@1.22.10: 4075 | dependencies: 4076 | is-core-module: 2.16.1 4077 | path-parse: 1.0.7 4078 | supports-preserve-symlinks-flag: 1.0.0 4079 | 4080 | resolve@2.0.0-next.5: 4081 | dependencies: 4082 | is-core-module: 2.16.1 4083 | path-parse: 1.0.7 4084 | supports-preserve-symlinks-flag: 1.0.0 4085 | 4086 | restore-cursor@5.1.0: 4087 | dependencies: 4088 | onetime: 7.0.0 4089 | signal-exit: 4.1.0 4090 | 4091 | reusify@1.0.4: {} 4092 | 4093 | rfdc@1.4.1: {} 4094 | 4095 | rimraf@3.0.2: 4096 | dependencies: 4097 | glob: 7.2.3 4098 | 4099 | run-parallel@1.2.0: 4100 | dependencies: 4101 | queue-microtask: 1.2.3 4102 | 4103 | safe-array-concat@1.1.3: 4104 | dependencies: 4105 | call-bind: 1.0.8 4106 | call-bound: 1.0.3 4107 | get-intrinsic: 1.2.6 4108 | has-symbols: 1.1.0 4109 | isarray: 2.0.5 4110 | 4111 | safe-regex-test@1.1.0: 4112 | dependencies: 4113 | call-bound: 1.0.3 4114 | es-errors: 1.3.0 4115 | is-regex: 1.2.1 4116 | 4117 | safer-buffer@2.1.2: {} 4118 | 4119 | scheduler@0.23.2: 4120 | dependencies: 4121 | loose-envify: 1.4.0 4122 | 4123 | semver@6.3.1: {} 4124 | 4125 | semver@7.6.3: {} 4126 | 4127 | set-function-length@1.2.2: 4128 | dependencies: 4129 | define-data-property: 1.1.4 4130 | es-errors: 1.3.0 4131 | function-bind: 1.1.2 4132 | get-intrinsic: 1.2.6 4133 | gopd: 1.2.0 4134 | has-property-descriptors: 1.0.2 4135 | 4136 | set-function-name@2.0.2: 4137 | dependencies: 4138 | define-data-property: 1.1.4 4139 | es-errors: 1.3.0 4140 | functions-have-names: 1.2.3 4141 | has-property-descriptors: 1.0.2 4142 | 4143 | sharp@0.33.5: 4144 | dependencies: 4145 | color: 4.2.3 4146 | detect-libc: 2.0.3 4147 | semver: 7.6.3 4148 | optionalDependencies: 4149 | '@img/sharp-darwin-arm64': 0.33.5 4150 | '@img/sharp-darwin-x64': 0.33.5 4151 | '@img/sharp-libvips-darwin-arm64': 1.0.4 4152 | '@img/sharp-libvips-darwin-x64': 1.0.4 4153 | '@img/sharp-libvips-linux-arm': 1.0.5 4154 | '@img/sharp-libvips-linux-arm64': 1.0.4 4155 | '@img/sharp-libvips-linux-s390x': 1.0.4 4156 | '@img/sharp-libvips-linux-x64': 1.0.4 4157 | '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 4158 | '@img/sharp-libvips-linuxmusl-x64': 1.0.4 4159 | '@img/sharp-linux-arm': 0.33.5 4160 | '@img/sharp-linux-arm64': 0.33.5 4161 | '@img/sharp-linux-s390x': 0.33.5 4162 | '@img/sharp-linux-x64': 0.33.5 4163 | '@img/sharp-linuxmusl-arm64': 0.33.5 4164 | '@img/sharp-linuxmusl-x64': 0.33.5 4165 | '@img/sharp-wasm32': 0.33.5 4166 | '@img/sharp-win32-ia32': 0.33.5 4167 | '@img/sharp-win32-x64': 0.33.5 4168 | optional: true 4169 | 4170 | shebang-command@2.0.0: 4171 | dependencies: 4172 | shebang-regex: 3.0.0 4173 | 4174 | shebang-regex@3.0.0: {} 4175 | 4176 | side-channel-list@1.0.0: 4177 | dependencies: 4178 | es-errors: 1.3.0 4179 | object-inspect: 1.13.3 4180 | 4181 | side-channel-map@1.0.1: 4182 | dependencies: 4183 | call-bound: 1.0.3 4184 | es-errors: 1.3.0 4185 | get-intrinsic: 1.2.6 4186 | object-inspect: 1.13.3 4187 | 4188 | side-channel-weakmap@1.0.2: 4189 | dependencies: 4190 | call-bound: 1.0.3 4191 | es-errors: 1.3.0 4192 | get-intrinsic: 1.2.6 4193 | object-inspect: 1.13.3 4194 | side-channel-map: 1.0.1 4195 | 4196 | side-channel@1.1.0: 4197 | dependencies: 4198 | es-errors: 1.3.0 4199 | object-inspect: 1.13.3 4200 | side-channel-list: 1.0.0 4201 | side-channel-map: 1.0.1 4202 | side-channel-weakmap: 1.0.2 4203 | 4204 | signal-exit@4.1.0: {} 4205 | 4206 | simple-swizzle@0.2.2: 4207 | dependencies: 4208 | is-arrayish: 0.3.2 4209 | optional: true 4210 | 4211 | slash@3.0.0: {} 4212 | 4213 | slice-ansi@5.0.0: 4214 | dependencies: 4215 | ansi-styles: 6.2.1 4216 | is-fullwidth-code-point: 4.0.0 4217 | 4218 | slice-ansi@7.1.0: 4219 | dependencies: 4220 | ansi-styles: 6.2.1 4221 | is-fullwidth-code-point: 5.0.0 4222 | 4223 | source-map-js@1.2.1: {} 4224 | 4225 | stable-hash@0.0.4: {} 4226 | 4227 | streamsearch@1.1.0: {} 4228 | 4229 | string-argv@0.3.2: {} 4230 | 4231 | string-width@4.2.3: 4232 | dependencies: 4233 | emoji-regex: 8.0.0 4234 | is-fullwidth-code-point: 3.0.0 4235 | strip-ansi: 6.0.1 4236 | 4237 | string-width@5.1.2: 4238 | dependencies: 4239 | eastasianwidth: 0.2.0 4240 | emoji-regex: 9.2.2 4241 | strip-ansi: 7.1.0 4242 | 4243 | string-width@7.2.0: 4244 | dependencies: 4245 | emoji-regex: 10.4.0 4246 | get-east-asian-width: 1.3.0 4247 | strip-ansi: 7.1.0 4248 | 4249 | string.prototype.includes@2.0.1: 4250 | dependencies: 4251 | call-bind: 1.0.8 4252 | define-properties: 1.2.1 4253 | es-abstract: 1.23.7 4254 | 4255 | string.prototype.matchall@4.0.12: 4256 | dependencies: 4257 | call-bind: 1.0.8 4258 | call-bound: 1.0.3 4259 | define-properties: 1.2.1 4260 | es-abstract: 1.23.7 4261 | es-errors: 1.3.0 4262 | es-object-atoms: 1.0.0 4263 | get-intrinsic: 1.2.6 4264 | gopd: 1.2.0 4265 | has-symbols: 1.1.0 4266 | internal-slot: 1.1.0 4267 | regexp.prototype.flags: 1.5.3 4268 | set-function-name: 2.0.2 4269 | side-channel: 1.1.0 4270 | 4271 | string.prototype.repeat@1.0.0: 4272 | dependencies: 4273 | define-properties: 1.2.1 4274 | es-abstract: 1.23.7 4275 | 4276 | string.prototype.trim@1.2.10: 4277 | dependencies: 4278 | call-bind: 1.0.8 4279 | call-bound: 1.0.3 4280 | define-data-property: 1.1.4 4281 | define-properties: 1.2.1 4282 | es-abstract: 1.23.7 4283 | es-object-atoms: 1.0.0 4284 | has-property-descriptors: 1.0.2 4285 | 4286 | string.prototype.trimend@1.0.9: 4287 | dependencies: 4288 | call-bind: 1.0.8 4289 | call-bound: 1.0.3 4290 | define-properties: 1.2.1 4291 | es-object-atoms: 1.0.0 4292 | 4293 | string.prototype.trimstart@1.0.8: 4294 | dependencies: 4295 | call-bind: 1.0.8 4296 | define-properties: 1.2.1 4297 | es-object-atoms: 1.0.0 4298 | 4299 | strip-ansi@6.0.1: 4300 | dependencies: 4301 | ansi-regex: 5.0.1 4302 | 4303 | strip-ansi@7.1.0: 4304 | dependencies: 4305 | ansi-regex: 6.1.0 4306 | 4307 | strip-bom@3.0.0: {} 4308 | 4309 | strip-final-newline@3.0.0: {} 4310 | 4311 | strip-json-comments@3.1.1: {} 4312 | 4313 | styled-jsx@5.1.6(react@18.3.1): 4314 | dependencies: 4315 | client-only: 0.0.1 4316 | react: 18.3.1 4317 | 4318 | sucrase@3.35.0: 4319 | dependencies: 4320 | '@jridgewell/gen-mapping': 0.3.8 4321 | commander: 4.1.1 4322 | glob: 10.4.5 4323 | lines-and-columns: 1.2.4 4324 | mz: 2.7.0 4325 | pirates: 4.0.6 4326 | ts-interface-checker: 0.1.13 4327 | 4328 | supports-color@7.2.0: 4329 | dependencies: 4330 | has-flag: 4.0.0 4331 | 4332 | supports-preserve-symlinks-flag@1.0.0: {} 4333 | 4334 | tailwindcss@3.4.17(ts-node@10.9.1(@types/node@20.14.11)(typescript@5.4.5)): 4335 | dependencies: 4336 | '@alloc/quick-lru': 5.2.0 4337 | arg: 5.0.2 4338 | chokidar: 3.6.0 4339 | didyoumean: 1.2.2 4340 | dlv: 1.1.3 4341 | fast-glob: 3.3.2 4342 | glob-parent: 6.0.2 4343 | is-glob: 4.0.3 4344 | jiti: 1.21.7 4345 | lilconfig: 3.1.3 4346 | micromatch: 4.0.8 4347 | normalize-path: 3.0.0 4348 | object-hash: 3.0.0 4349 | picocolors: 1.1.1 4350 | postcss: 8.4.49 4351 | postcss-import: 15.1.0(postcss@8.4.49) 4352 | postcss-js: 4.0.1(postcss@8.4.49) 4353 | postcss-load-config: 4.0.2(postcss@8.4.49)(ts-node@10.9.1(@types/node@20.14.11)(typescript@5.4.5)) 4354 | postcss-nested: 6.2.0(postcss@8.4.49) 4355 | postcss-selector-parser: 6.1.2 4356 | resolve: 1.22.10 4357 | sucrase: 3.35.0 4358 | transitivePeerDependencies: 4359 | - ts-node 4360 | 4361 | tapable@2.2.1: {} 4362 | 4363 | text-table@0.2.0: {} 4364 | 4365 | thenify-all@1.6.0: 4366 | dependencies: 4367 | thenify: 3.3.1 4368 | 4369 | thenify@3.3.1: 4370 | dependencies: 4371 | any-promise: 1.3.0 4372 | 4373 | to-regex-range@5.0.1: 4374 | dependencies: 4375 | is-number: 7.0.0 4376 | 4377 | ts-api-utils@1.4.3(typescript@5.4.5): 4378 | dependencies: 4379 | typescript: 5.4.5 4380 | 4381 | ts-api-utils@2.0.0(typescript@5.4.5): 4382 | dependencies: 4383 | typescript: 5.4.5 4384 | 4385 | ts-interface-checker@0.1.13: {} 4386 | 4387 | ts-node@10.9.1(@types/node@20.14.11)(typescript@5.4.5): 4388 | dependencies: 4389 | '@cspotcode/source-map-support': 0.8.1 4390 | '@tsconfig/node10': 1.0.11 4391 | '@tsconfig/node12': 1.0.11 4392 | '@tsconfig/node14': 1.0.3 4393 | '@tsconfig/node16': 1.0.4 4394 | '@types/node': 20.14.11 4395 | acorn: 8.14.0 4396 | acorn-walk: 8.3.4 4397 | arg: 4.1.3 4398 | create-require: 1.1.1 4399 | diff: 4.0.2 4400 | make-error: 1.3.6 4401 | typescript: 5.4.5 4402 | v8-compile-cache-lib: 3.0.1 4403 | yn: 3.1.1 4404 | optional: true 4405 | 4406 | tsconfig-paths@3.15.0: 4407 | dependencies: 4408 | '@types/json5': 0.0.29 4409 | json5: 1.0.2 4410 | minimist: 1.2.8 4411 | strip-bom: 3.0.0 4412 | 4413 | tslib@2.8.1: {} 4414 | 4415 | type-check@0.4.0: 4416 | dependencies: 4417 | prelude-ls: 1.2.1 4418 | 4419 | type-fest@0.20.2: {} 4420 | 4421 | typed-array-buffer@1.0.3: 4422 | dependencies: 4423 | call-bound: 1.0.3 4424 | es-errors: 1.3.0 4425 | is-typed-array: 1.1.15 4426 | 4427 | typed-array-byte-length@1.0.3: 4428 | dependencies: 4429 | call-bind: 1.0.8 4430 | for-each: 0.3.3 4431 | gopd: 1.2.0 4432 | has-proto: 1.2.0 4433 | is-typed-array: 1.1.15 4434 | 4435 | typed-array-byte-offset@1.0.4: 4436 | dependencies: 4437 | available-typed-arrays: 1.0.7 4438 | call-bind: 1.0.8 4439 | for-each: 0.3.3 4440 | gopd: 1.2.0 4441 | has-proto: 1.2.0 4442 | is-typed-array: 1.1.15 4443 | reflect.getprototypeof: 1.0.9 4444 | 4445 | typed-array-length@1.0.7: 4446 | dependencies: 4447 | call-bind: 1.0.8 4448 | for-each: 0.3.3 4449 | gopd: 1.2.0 4450 | is-typed-array: 1.1.15 4451 | possible-typed-array-names: 1.0.0 4452 | reflect.getprototypeof: 1.0.9 4453 | 4454 | typescript@5.4.5: {} 4455 | 4456 | uc.micro@2.1.0: {} 4457 | 4458 | unbox-primitive@1.1.0: 4459 | dependencies: 4460 | call-bound: 1.0.3 4461 | has-bigints: 1.1.0 4462 | has-symbols: 1.1.0 4463 | which-boxed-primitive: 1.1.1 4464 | 4465 | undici-types@5.26.5: {} 4466 | 4467 | undici@6.21.0: {} 4468 | 4469 | update-browserslist-db@1.1.1(browserslist@4.24.3): 4470 | dependencies: 4471 | browserslist: 4.24.3 4472 | escalade: 3.2.0 4473 | picocolors: 1.1.1 4474 | 4475 | uri-js@4.4.1: 4476 | dependencies: 4477 | punycode: 2.3.1 4478 | 4479 | util-deprecate@1.0.2: {} 4480 | 4481 | v8-compile-cache-lib@3.0.1: 4482 | optional: true 4483 | 4484 | whatwg-encoding@3.1.1: 4485 | dependencies: 4486 | iconv-lite: 0.6.3 4487 | 4488 | whatwg-mimetype@4.0.0: {} 4489 | 4490 | which-boxed-primitive@1.1.1: 4491 | dependencies: 4492 | is-bigint: 1.1.0 4493 | is-boolean-object: 1.2.1 4494 | is-number-object: 1.1.1 4495 | is-string: 1.1.1 4496 | is-symbol: 1.1.1 4497 | 4498 | which-builtin-type@1.2.1: 4499 | dependencies: 4500 | call-bound: 1.0.3 4501 | function.prototype.name: 1.1.8 4502 | has-tostringtag: 1.0.2 4503 | is-async-function: 2.0.0 4504 | is-date-object: 1.1.0 4505 | is-finalizationregistry: 1.1.1 4506 | is-generator-function: 1.0.10 4507 | is-regex: 1.2.1 4508 | is-weakref: 1.1.0 4509 | isarray: 2.0.5 4510 | which-boxed-primitive: 1.1.1 4511 | which-collection: 1.0.2 4512 | which-typed-array: 1.1.18 4513 | 4514 | which-collection@1.0.2: 4515 | dependencies: 4516 | is-map: 2.0.3 4517 | is-set: 2.0.3 4518 | is-weakmap: 2.0.2 4519 | is-weakset: 2.0.4 4520 | 4521 | which-typed-array@1.1.18: 4522 | dependencies: 4523 | available-typed-arrays: 1.0.7 4524 | call-bind: 1.0.8 4525 | call-bound: 1.0.3 4526 | for-each: 0.3.3 4527 | gopd: 1.2.0 4528 | has-tostringtag: 1.0.2 4529 | 4530 | which@2.0.2: 4531 | dependencies: 4532 | isexe: 2.0.0 4533 | 4534 | word-wrap@1.2.5: {} 4535 | 4536 | wrap-ansi@7.0.0: 4537 | dependencies: 4538 | ansi-styles: 4.3.0 4539 | string-width: 4.2.3 4540 | strip-ansi: 6.0.1 4541 | 4542 | wrap-ansi@8.1.0: 4543 | dependencies: 4544 | ansi-styles: 6.2.1 4545 | string-width: 5.1.2 4546 | strip-ansi: 7.1.0 4547 | 4548 | wrap-ansi@9.0.0: 4549 | dependencies: 4550 | ansi-styles: 6.2.1 4551 | string-width: 7.2.0 4552 | strip-ansi: 7.1.0 4553 | 4554 | wrappy@1.0.2: {} 4555 | 4556 | yaml@2.6.1: {} 4557 | 4558 | yn@3.1.1: 4559 | optional: true 4560 | 4561 | yocto-queue@0.1.0: {} 4562 | --------------------------------------------------------------------------------