diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..e9acebc
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,8 @@
+[*]
+root = true
+charset = utf-8
+insert_final_newline = true
+end_of_line = lf
+indent_style = space
+indent_size = 2
+max_line_length = 80
diff --git a/.env.public b/.env.public
new file mode 100644
index 0000000..828683a
--- /dev/null
+++ b/.env.public
@@ -0,0 +1,3 @@
+CORE_SUBGRAPH=
+DTR_ARBITRUM_SUBGRAPH=
+THEGRAPH_API_KEY=
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..28d0a88
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,30 @@
+# To get started with Dependabot version updates, you'll need to specify which
+# package ecosystems to update and where the package manifests are located.
+# Please see the documentation for all configuration options:
+# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
+
+version: 2
+enable-beta-ecosystems: true
+updates:
+ - package-ecosystem: npm
+ directory: /
+ target-branch: dev
+ schedule:
+ interval: weekly
+ open-pull-requests-limit: 10
+ labels:
+ - dependencies
+ assignees:
+ - jaybuidl
+
+ - package-ecosystem: github-actions
+ directory: /
+ target-branch: dev
+ schedule:
+ interval: weekly
+ open-pull-requests-limit: 10
+ labels:
+ - dependencies
+ assignees:
+ - jaybuidl
+ - alcercu
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
new file mode 100644
index 0000000..0a6d9af
--- /dev/null
+++ b/.github/workflows/codeql.yml
@@ -0,0 +1,79 @@
+name: "CodeQL Advanced"
+
+on:
+ merge_group:
+ branches:
+ - master
+ - dev
+ push:
+ branches:
+ - master
+ - dev
+ pull_request:
+ # The branches below must be a subset of the branches above
+ branches:
+ - master
+ - dev
+ schedule:
+ - cron: '26 1 * * 6'
+
+permissions:
+ actions: read
+
+jobs:
+ codeql-advanced-analysis:
+ name: Analyze
+ runs-on: ubuntu-latest
+ timeout-minutes: 360
+ permissions:
+ actions: read
+ contents: read
+ security-events: write
+
+ strategy:
+ fail-fast: false
+ matrix:
+ language:
+ - javascript
+
+ steps:
+ - name: Harden Runner
+ uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
+ with:
+ egress-policy: audit
+
+ - name: Checkout repository
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
+
+ # Initializes the CodeQL tools for scanning.
+ - name: Initialize CodeQL
+ uses: github/codeql-action/init@9e8d0789d4a0fa9ceb6b1738f7e269594bdd67f0 # v3.28.9
+ with:
+ languages: ${{ matrix.language }}
+ # If you wish to specify custom queries, you can do so here or in a config file.
+ # By default, queries listed here will override any specified in a config file.
+ # Prefix the list here with "+" to use these queries and those in the config file.
+
+ # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
+ # queries: security-extended,security-and-quality
+
+
+ # Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift).
+ # If this step fails, then you should remove it and run the build manually (see below)
+ - name: Autobuild
+ uses: github/codeql-action/autobuild@9e8d0789d4a0fa9ceb6b1738f7e269594bdd67f0 # v3.28.9
+
+ # ℹ️ Command-line programs to run using the OS shell.
+ # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
+
+ # If the Autobuild fails above, remove it and uncomment the following three lines.
+ # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
+
+ # - run: |
+ # echo "Run, Build Application using script"
+ # ./location_of_script_within_repo/buildscript.sh
+
+ - name: Perform CodeQL Analysis
+ uses: github/codeql-action/analyze@9e8d0789d4a0fa9ceb6b1738f7e269594bdd67f0 # v3.28.9
+ with:
+ category: "/language:${{matrix.language}}"
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..fd3dbb5
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,36 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# dependencies
+/node_modules
+/.pnp
+.pnp.js
+.yarn/install-state.gz
+
+# testing
+/coverage
+
+# next.js
+/.next/
+/out/
+
+# production
+/build
+
+# misc
+.DS_Store
+*.pem
+
+# debug
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# local env files
+.env*.local
+
+# vercel
+.vercel
+
+# typescript
+*.tsbuildinfo
+next-env.d.ts
diff --git a/.husky/pre-commit b/.husky/pre-commit
new file mode 100644
index 0000000..2b7903e
--- /dev/null
+++ b/.husky/pre-commit
@@ -0,0 +1,2 @@
+yarn tsc
+yarn lint-staged
diff --git a/.lintstagedrc.json b/.lintstagedrc.json
new file mode 100644
index 0000000..3c470f7
--- /dev/null
+++ b/.lintstagedrc.json
@@ -0,0 +1,3 @@
+{
+ "(*.ts|*.tsx)": "biome check --write"
+}
diff --git a/.whitesource b/.whitesource
new file mode 100644
index 0000000..57f857d
--- /dev/null
+++ b/.whitesource
@@ -0,0 +1,23 @@
+{
+ "scanSettings": {
+ "baseBranches": ["dev", "master"]
+ },
+ "checkRunSettings": {
+ "vulnerableCheckRunConclusionLevel": "failure",
+ "displayMode": "diff",
+ "useMendCheckNames": true
+ },
+ "issueSettings": {
+ "minSeverityLevel": "MEDIUM",
+ "issueType": "DEPENDENCY",
+ "customLabels": ["Type: Security🛡️", "dependencies"],
+ "assignees": ["jaybuidl"]
+ },
+ "remediateSettings": {
+ "workflowRules": {
+ "enabled": true,
+ "minVulnerabilityScore": 3,
+ "maxVulnerabilityScore": 10
+ }
+ }
+}
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
index 0000000..3186f3f
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1 @@
+nodeLinker: node-modules
diff --git a/README.md b/README.md
index c43d436..aa36f7e 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,37 @@
-# library-of-justice
+
+
+
+
+# Library of Justice
The Kleros Library of Justice, a frontend to access the historical records of arbitration.
+
+## Getting Started
+
+This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).
+
+First, run the development server:
+
+```bash
+npm run dev
+# or
+yarn dev
+# or
+pnpm dev
+# or
+bun dev
+```
+
+Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
+
+You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
+
+This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.
+
+## Learn More
+
+To learn more about Next.js, take a look at the following 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.
+
+You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!
diff --git a/biome.json b/biome.json
new file mode 100644
index 0000000..3ce03f0
--- /dev/null
+++ b/biome.json
@@ -0,0 +1,129 @@
+{
+ "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
+ "vcs": { "enabled": false, "clientKind": "git", "useIgnoreFile": false },
+ "files": {
+ "ignoreUnknown": false,
+ "ignore": ["src/components/ui/**/*", ".next/**/*"]
+ },
+ "formatter": {
+ "enabled": true,
+ "indentStyle": "space",
+ "useEditorconfig": true,
+ "lineWidth": 80
+ },
+ "organizeImports": { "enabled": true },
+ "linter": {
+ "enabled": true,
+ "rules": {
+ "recommended": false,
+ "a11y": {
+ "noAriaUnsupportedElements": "warn",
+ "noBlankTarget": "off",
+ "useAltText": "warn",
+ "useAriaPropsForRole": "warn",
+ "useValidAriaProps": "warn",
+ "useValidAriaValues": "warn"
+ },
+ "complexity": {
+ "noUselessThisAlias": "error",
+ "noUselessTypeConstraint": "error"
+ },
+ "correctness": {
+ "noChildrenProp": "error",
+ "noUnusedVariables": "off",
+ "useArrayLiterals": "off",
+ "useExhaustiveDependencies": "warn",
+ "useHookAtTopLevel": "error",
+ "useJsxKeyInIterable": "error"
+ },
+ "security": { "noDangerouslySetInnerHtmlWithChildren": "error" },
+ "style": { "noNamespace": "error", "useAsConstAssertion": "error" },
+ "suspicious": {
+ "noCommentText": "error",
+ "noConsole": {
+ "level": "error",
+ "options": { "allow": ["warn", "error", "info", "debug"] }
+ },
+ "noDuplicateJsxProps": "error",
+ "noExplicitAny": "error",
+ "noExtraNonNullAssertion": "error",
+ "noMisleadingInstantiator": "error",
+ "noUnsafeDeclarationMerging": "error",
+ "useNamespaceKeyword": "error"
+ }
+ }
+ },
+ "javascript": { "formatter": { "quoteStyle": "double" } },
+ "overrides": [
+ { "include": ["**/*.ts?(x)"] },
+ {
+ "include": ["*.ts", "*.tsx", "*.mts", "*.cts"],
+ "linter": {
+ "rules": {
+ "correctness": {
+ "noConstAssign": "off",
+ "noGlobalObjectCalls": "off",
+ "noInvalidBuiltinInstantiation": "off",
+ "noInvalidConstructorSuper": "off",
+ "noNewSymbol": "off",
+ "noSetterReturn": "off",
+ "noUndeclaredVariables": "off",
+ "noUnreachable": "off",
+ "noUnreachableSuper": "off"
+ },
+ "style": {
+ "noArguments": "error",
+ "noVar": "error",
+ "useConst": "error"
+ },
+ "suspicious": {
+ "noClassAssign": "off",
+ "noDuplicateClassMembers": "off",
+ "noDuplicateObjectKeys": "off",
+ "noDuplicateParameters": "off",
+ "noFunctionAssign": "off",
+ "noImportAssign": "off",
+ "noRedeclare": "off",
+ "noUnsafeNegation": "off",
+ "useGetterReturn": "off"
+ }
+ }
+ }
+ },
+ { "include": ["**/*.ts?(x)"] },
+ {
+ "include": ["*.ts", "*.tsx", "*.mts", "*.cts"],
+ "linter": {
+ "rules": {
+ "correctness": {
+ "noConstAssign": "off",
+ "noGlobalObjectCalls": "off",
+ "noInvalidBuiltinInstantiation": "off",
+ "noInvalidConstructorSuper": "off",
+ "noNewSymbol": "off",
+ "noSetterReturn": "off",
+ "noUndeclaredVariables": "off",
+ "noUnreachable": "off",
+ "noUnreachableSuper": "off"
+ },
+ "style": {
+ "noArguments": "error",
+ "noVar": "error",
+ "useConst": "error"
+ },
+ "suspicious": {
+ "noClassAssign": "off",
+ "noDuplicateClassMembers": "off",
+ "noDuplicateObjectKeys": "off",
+ "noDuplicateParameters": "off",
+ "noFunctionAssign": "off",
+ "noImportAssign": "off",
+ "noRedeclare": "off",
+ "noUnsafeNegation": "off",
+ "useGetterReturn": "off"
+ }
+ }
+ }
+ }
+ ]
+}
diff --git a/components.json b/components.json
new file mode 100644
index 0000000..0312bf7
--- /dev/null
+++ b/components.json
@@ -0,0 +1,21 @@
+{
+ "$schema": "https://ui.shadcn.com/schema.json",
+ "style": "default",
+ "rsc": true,
+ "tsx": true,
+ "tailwind": {
+ "config": "tailwind.config.ts",
+ "css": "src/app/globals.css",
+ "baseColor": "neutral",
+ "cssVariables": false,
+ "prefix": ""
+ },
+ "aliases": {
+ "components": "@/components",
+ "utils": "@/lib/utils",
+ "ui": "@/components/ui",
+ "lib": "@/lib",
+ "hooks": "@/hooks"
+ },
+ "iconLibrary": "lucide"
+}
diff --git a/messages/ar.json b/messages/ar.json
new file mode 100644
index 0000000..b2bfd37
--- /dev/null
+++ b/messages/ar.json
@@ -0,0 +1,76 @@
+{
+ "landing": {
+ "title": "البحث عن قضية",
+ "subtitle": "أدخل رقم القضية لعرض تفاصيلها.",
+ "button": "بحث"
+ },
+ "navbar": {
+ "faq": "التعليمات"
+ },
+ "footer": {
+ "title": "كليروس - العدالة اللامركزية",
+ "subtitle": "حل النزاعات بطريقة شفافة وعادلة باستخدام تقنية البلوك تشين"
+ },
+ "loading": {
+ "title": "تحميل"
+ },
+ "error": {
+ "title": "حدث خطأ ما!",
+ "subtitle": "القضية التي تبحث عنها غير موجودة بعد.",
+ "button": "حاول مرة أخرى"
+ },
+ "case": {
+ "title": "القضية",
+ "question": {
+ "title": "السؤال",
+ "policy": "سياسة القرار",
+ "winner": "القرار النهائي"
+ },
+ "period": {
+ "title": "مراحل",
+ "time": {
+ "start": "يبدأ: {time}",
+ "resolved": "تم الحل: {time}",
+ "duration": "المدة الإجمالية: {day, plural, =0 {} =1 {# يوم} other {# أيام}} {hour, plural, =0 {} =1 {# ساعة} other {# ساعات}}"
+ },
+ "presentation": {
+ "title": "العرض الأولي",
+ "tooltip": "مرحلة تقديم الأطراف لحججهم ووثائقهم. بعد إغلاق الجلسة، لا يُمكن تحميل أي معلومات إضافية."
+ },
+ "vote": {
+ "title": "تصويت",
+ "tooltip": "المرحلة التي يقوم فيها أعضاء هيئة المحلفين بتحليل الوثائق وإدلاء أصواتهم."
+ },
+ "resolved": {
+ "title": "تم الحل",
+ "tooltip": "انتهى التصويت وتم حل القضية."
+ }
+ },
+ "evidence": {
+ "title": "توثيق القضية",
+ "from": "من:",
+ "see": "يرى"
+ },
+ "policy": {
+ "title": "سياسة الحل",
+ "see": "انظر السياسة",
+ "tooltip": "يحتوي على القواعد التي توجه هيئات المحلفين في اتخاذ القرار في القضية."
+ },
+ "result": {
+ "title": "نتيجة",
+ "votes": "{number} الأصوات لصالح \"{answer}\""
+ },
+ "justifications": {
+ "title": "التبريرات",
+ "voted": "صوّت:",
+ "juror": "محلف",
+ "weight": "{count, plural, =1 {صوت واحد} other {# أصوات}}",
+ "tooltip": "يتم اختيار هيئات المحلفين عشوائيًا من بين جميع المحلفين المتاحين. في بعض الأحيان، قد يتم اختيار المحلف نفسه أكثر من مرة لنفس القضية، وفي هذه الحالة، يحصل على أكثر من صوت واحد. تزيد هذه الآلية من احتمالية مشاركة المحلفين الأكثر نشاطًا والتزامًا، وتعزز الحماية من القرارات التعسفية.",
+ "button": {
+ "hide": "إخفاء التبرير",
+ "open": "انظر التبرير"
+ },
+ "copy": "تم نسخ العنوان إلى الحافظة"
+ }
+ }
+}
diff --git a/messages/en.json b/messages/en.json
new file mode 100644
index 0000000..d0cf205
--- /dev/null
+++ b/messages/en.json
@@ -0,0 +1,76 @@
+{
+ "landing": {
+ "title": "Search for a Case",
+ "subtitle": "Enter the case number to view its details.",
+ "button": "Search"
+ },
+ "navbar": {
+ "faq": "FAQ"
+ },
+ "footer": {
+ "title": "Kleros - Decentralized Justice",
+ "subtitle": "Transparent and fair dispute resolution using blockchain technology"
+ },
+ "loading": {
+ "title": "LOADING"
+ },
+ "error": {
+ "title": "Something went wrong!",
+ "subtitle": "The case you are looking for doesn't exist yet.",
+ "button": "Try again"
+ },
+ "case": {
+ "title": "CASE",
+ "question": {
+ "title": "QUESTION",
+ "policy": "Resolution Policy",
+ "winner": "Final Decision"
+ },
+ "period": {
+ "title": "STAGES",
+ "time": {
+ "start": "Start: {time}",
+ "resolved": "Resolved: {time}",
+ "duration": "Total duration: {day, plural, =0 {} =1 {# day} other {# days}} {hour, plural, =0 {} =1 {# hour} other {# hours}}"
+ },
+ "presentation": {
+ "title": "Initial presentation",
+ "tooltip": "Stage in which the parties present their arguments and documentation. Once closed, additional information cannot be uploaded."
+ },
+ "vote": {
+ "title": "Vote",
+ "tooltip": "Stage in which the jurors analyze the documentation and cast their vote."
+ },
+ "resolved": {
+ "title": "Resolved",
+ "tooltip": "The vote concluded and the case was resolved."
+ }
+ },
+ "evidence": {
+ "title": "CASE DOCUMENTATION",
+ "from": "From:",
+ "see": "See"
+ },
+ "policy": {
+ "title": "RESOLUTION POLICY",
+ "see": "See policy",
+ "tooltip": "Contains the rules that guide juries in making a decision in the case."
+ },
+ "result": {
+ "title": "RESULT",
+ "votes": "{number} votes for \"{answer}\""
+ },
+ "justifications": {
+ "title": "JUSTIFICATIONS",
+ "voted": "Voted:",
+ "juror": "Juror",
+ "weight": "{count, plural, =1 {# vote} other {# votes}}",
+ "tooltip": "Juries are randomly selected from all available jurors. Sometimes, the same juror may be selected more than once for the same case, and in that case, they receive more than one vote. This mechanism increases the likelihood that the most active and committed jurors will participate and strengthens the protection against arbitrary decisions.",
+ "button": {
+ "hide": "Hide justification",
+ "open": "See justification"
+ },
+ "copy": "Address copied to clipboard"
+ }
+ }
+}
diff --git a/messages/es.json b/messages/es.json
new file mode 100644
index 0000000..efef732
--- /dev/null
+++ b/messages/es.json
@@ -0,0 +1,76 @@
+{
+ "landing": {
+ "title": "Busca un Caso",
+ "subtitle": "Introduzca el número del caso para ver los detalles.",
+ "button": "Buscar"
+ },
+ "navbar": {
+ "faq": "Preguntas frecuentes"
+ },
+ "footer": {
+ "title": "Kleros - Justicia Descentralizada",
+ "subtitle": "Resolución de disputas transparente y justa mediante tecnología blockchain"
+ },
+ "loading": {
+ "title": "CARGANDO"
+ },
+ "error": {
+ "title": "Algo salió mal",
+ "subtitle": "El caso que estás buscando no existe aún.",
+ "button": "Vuelva a intentarlo"
+ },
+ "case": {
+ "title": "CASO",
+ "question": {
+ "title": "PREGUNTA",
+ "policy": "Política de resolución",
+ "winner": "Decisión Final"
+ },
+ "period": {
+ "title": "ETAPAS",
+ "time": {
+ "start": "Inicio: {time}",
+ "resolved": "Resuelto: {time}",
+ "duration": "Duración total: {day, plural, =0 {} =1 {# día} other {# días}} {hour, plural, =0 {} =1 {# hora} other {# horas}}"
+ },
+ "presentation": {
+ "title": "Presentación inicial",
+ "tooltip": "Etapa en la que las partes presentan sus argumentos y documentación. Una vez cerrado el proceso, no se puede cargar información adicional."
+ },
+ "vote": {
+ "title": "Votación",
+ "tooltip": "Etapa en la que los jurados analizan la documentación y emiten su voto."
+ },
+ "resolved": {
+ "title": "Resuelto",
+ "tooltip": "La votación concluyó y el caso fue resuelto"
+ }
+ },
+ "evidence": {
+ "title": "EVIDENCIA",
+ "from": "De:",
+ "see": "Ver"
+ },
+ "policy": {
+ "title": "POLÍTICA DE RESOLUCIÓN",
+ "see": "Ver política",
+ "tooltip": "Contiene las reglas que guían a los jurados para tomar una decisión en el caso."
+ },
+ "result": {
+ "title": "RESULTADO",
+ "votes": "{number} votos por \"{answer}\""
+ },
+ "justifications": {
+ "title": "JUSTIFICACIONES",
+ "voted": "Votó:",
+ "juror": "Arbitro",
+ "weight": "{count, plural, =1 {# voto} other {# votos}}",
+ "tooltip": "Los jurados son seleccionados al azar entre todos los disponibles. A veces, el mismo jurado puede ser elegido más de una vez para un mismo caso, y en ese caso recibe más de un voto. Este mecanismo aumenta la probabilidad de que participen aquellos árbitros más activos y comprometidos, y refuerza la protección contra decisiones arbitrarias.",
+ "button": {
+ "hide": "Ocultar justificación",
+ "open": "Ver justificación"
+ },
+ "copy": "Dirección copiada al portapapeles"
+ }
+ }
+}
diff --git a/next.config.mjs b/next.config.mjs
new file mode 100644
index 0000000..3e657d2
--- /dev/null
+++ b/next.config.mjs
@@ -0,0 +1,8 @@
+import createNextIntlPlugin from "next-intl/plugin";
+
+const withNextIntl = createNextIntlPlugin();
+
+/** @type {import('next').NextConfig} */
+const nextConfig = {};
+
+export default withNextIntl(nextConfig);
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..a397264
--- /dev/null
+++ b/package.json
@@ -0,0 +1,53 @@
+{
+ "root": true,
+ "name": "web",
+ "version": "0.1.0",
+ "private": true,
+ "scripts": {
+ "dev": "next dev",
+ "build": "next build",
+ "start": "next start",
+ "lint": "next lint",
+ "postinstall": "husky",
+ "prepare": "husky"
+ },
+ "dependencies": {
+ "@kleros/kleros-sdk": "2.3.1",
+ "@radix-ui/react-dropdown-menu": "^2.1.2",
+ "@radix-ui/react-separator": "^1.1.0",
+ "@radix-ui/react-toast": "^1.2.15",
+ "@radix-ui/react-tooltip": "^1.2.8",
+ "class-variance-authority": "^0.7.1",
+ "clsx": "^2.1.1",
+ "lucide-react": "^0.475.0",
+ "next": "15.3.3",
+ "next-intl": "^3.26.3",
+ "react": "19.1.0",
+ "react-dom": "19.1.0",
+ "rtl-detect": "^1.1.2",
+ "sonner": "^2.0.7",
+ "tailwind-merge": "^2.5.5",
+ "tailwindcss-animate": "^1.0.7",
+ "viem": "^2.23.2"
+ },
+ "devDependencies": {
+ "@biomejs/biome": "1.9.4",
+ "@types/node": "^22",
+ "@types/react": "19.1.6",
+ "@types/react-dom": "19.1.5",
+ "@types/rtl-detect": "^1",
+ "husky": "^9.1.7",
+ "lint-staged": "^15.2.10",
+ "postcss": "^8",
+ "tailwindcss": "^3.4.1",
+ "typescript": "^5"
+ },
+ "volta": {
+ "node": "20.18.1"
+ },
+ "packageManager": "yarn@4.5.3",
+ "resolutions": {
+ "@types/react": "19.1.6",
+ "@types/react-dom": "19.1.5"
+ }
+}
diff --git a/postcss.config.mjs b/postcss.config.mjs
new file mode 100644
index 0000000..1a69fd2
--- /dev/null
+++ b/postcss.config.mjs
@@ -0,0 +1,8 @@
+/** @type {import('postcss-load-config').Config} */
+const config = {
+ plugins: {
+ tailwindcss: {},
+ },
+};
+
+export default config;
diff --git a/public/attachment.svg b/public/attachment.svg
new file mode 100644
index 0000000..4e5a713
--- /dev/null
+++ b/public/attachment.svg
@@ -0,0 +1,14 @@
+
+
diff --git a/public/kleros.svg b/public/kleros.svg
new file mode 100644
index 0000000..aa3cd9f
--- /dev/null
+++ b/public/kleros.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/public/search.svg b/public/search.svg
new file mode 100644
index 0000000..8229beb
--- /dev/null
+++ b/public/search.svg
@@ -0,0 +1,10 @@
+
diff --git a/src/app/[locale]/case/[disputeId]/components/Evidence.tsx b/src/app/[locale]/case/[disputeId]/components/Evidence.tsx
new file mode 100644
index 0000000..d1a6b8d
--- /dev/null
+++ b/src/app/[locale]/case/[disputeId]/components/Evidence.tsx
@@ -0,0 +1,87 @@
+import React from "react";
+
+import { getTranslations } from "next-intl/server";
+import { headers } from "next/headers";
+import Link from "next/link";
+
+import { type EvidenceResponseType } from "@/app/api/evidence/[id]/query";
+import { ipfsUrl, shortenAddress } from "@/app/utils";
+import { Badge } from "@/components/ui/badge";
+import { Button } from "@/components/ui/button";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import { Eye } from "lucide-react";
+
+interface IEvidence {
+ evidenceGroupId: string;
+}
+
+const Evidence: React.FC = async ({ evidenceGroupId }) => {
+ const headersList = await headers();
+ const host = headersList.get("host");
+ const protocol = headersList.get("x-forwarded-proto");
+
+ const data: EvidenceResponseType["evidenceGroup"] = await fetch(
+ `${protocol}://${host}/api/evidence/${evidenceGroupId}`,
+ ).then((result) => result.json());
+
+ const t = await getTranslations("case.evidence");
+
+ return (
+
+
+
+ {t("title")}
+
+
+
+ {data?.evidences?.map((evidence, i) => {
+ const hasFileURI = evidence.fileURI && evidence.fileURI.length > 0;
+ const isIpfsPath =
+ hasFileURI && evidence.fileURI.startsWith("/ipfs/");
+ return (
+
+
+
+
+ {evidence.description}
+
+
+
+ {isIpfsPath ? (
+
+
+
+ ) : null}
+
+
+
+ {t("from")}
+
+
+ {shortenAddress(evidence.sender.id)}
+
+
+
+ );
+ })}
+ {data?.evidences === undefined ? (
+
+ No evidence submitted
+
+ ) : null}
+
+
+ );
+};
+
+export default Evidence;
diff --git a/src/app/[locale]/case/[disputeId]/components/Header.tsx b/src/app/[locale]/case/[disputeId]/components/Header.tsx
new file mode 100644
index 0000000..21d99bd
--- /dev/null
+++ b/src/app/[locale]/case/[disputeId]/components/Header.tsx
@@ -0,0 +1,39 @@
+import React from "react";
+
+import { getTranslations } from "next-intl/server";
+
+interface IHeader {
+ disputeId: `${number}`;
+}
+
+const Header: React.FC = async ({ disputeId }) => {
+ const t = await getTranslations("case");
+
+ return (
+
+
+
+
+ {t("title")}
+
+ #{disputeId}
+
+
+
+
+
+
+ );
+};
+
+export default Header;
diff --git a/src/app/[locale]/case/[disputeId]/components/Period.tsx b/src/app/[locale]/case/[disputeId]/components/Period.tsx
new file mode 100644
index 0000000..7f140f3
--- /dev/null
+++ b/src/app/[locale]/case/[disputeId]/components/Period.tsx
@@ -0,0 +1,176 @@
+import React, { Fragment, useMemo } from "react";
+
+import { getTranslations } from "next-intl/server";
+
+import clsx from "clsx";
+
+import {
+ formatTimestamp,
+ getDurationBetween,
+ processCurrentPeriod,
+} from "@/app/utils";
+import { Badge } from "@/components/ui/badge";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import {
+ Tooltip,
+ TooltipContent,
+ TooltipProvider,
+ TooltipTrigger,
+} from "@/components/ui/tooltip";
+import { CheckCircle, Clock, FileText, Users } from "lucide-react";
+
+interface IPeriod {
+ currentPeriod: number;
+ currentRound: number;
+ startTime: `${number}`;
+ rulingTime: `${number}` | null;
+}
+
+const Period: React.FC = async ({
+ currentPeriod,
+ currentRound,
+ startTime,
+ rulingTime,
+}) => {
+ const processedCurrent = useMemo(
+ () => processCurrentPeriod(currentPeriod, currentRound),
+ [currentPeriod, currentRound],
+ );
+ const duration = useMemo(
+ () =>
+ rulingTime
+ ? getDurationBetween(parseInt(startTime), parseInt(rulingTime))
+ : undefined,
+ [startTime, rulingTime],
+ );
+
+ const t = await getTranslations("case.period");
+
+ const periods = [
+ {
+ title: t("presentation.title"),
+ tooltip: t("presentation.tooltip"),
+ Icon: FileText,
+ },
+ {
+ title: t("vote.title"),
+ tooltip: t("vote.tooltip"),
+ Icon: Users,
+ },
+ {
+ title: t("resolved.title"),
+ tooltip: t("resolved.tooltip"),
+ Icon: CheckCircle,
+ },
+ ];
+
+ return (
+
+
+
+ {t("title")}
+
+
+
+
+
+
+ {t("time.start", {
+ time: formatTimestamp(parseInt(startTime)),
+ })}
+
+
+ {rulingTime ? (
+
+
+
+
+
+ {t("time.resolved", {
+ time: formatTimestamp(parseInt(rulingTime)),
+ })}
+
+
+
+ ) : null}
+
+ {duration ? (
+
+
+ {t("time.duration", {
+ day: duration.days,
+ hour: duration.hours ?? 0,
+ })}
+
+
+ ) : null}
+
+
+
+
+
+
+
+ {periods.map(({ title, tooltip, Icon }, i) => (
+
+
+
+
+
+
+
+
+ {i + 1}. {title}
+
+
+
+
+ {tooltip}
+
+
+ {i !== periods.length - 1 && (
+
+ )}
+
+ ))}
+
+
+
+
+
+ );
+};
+
+export default Period;
diff --git a/src/app/[locale]/case/[disputeId]/components/Policy.tsx b/src/app/[locale]/case/[disputeId]/components/Policy.tsx
new file mode 100644
index 0000000..2684a64
--- /dev/null
+++ b/src/app/[locale]/case/[disputeId]/components/Policy.tsx
@@ -0,0 +1,157 @@
+import React from "react";
+
+import { getTranslations } from "next-intl/server";
+import { headers } from "next/headers";
+import Link from "next/link";
+
+import { type StatusResponseType } from "@/app/api/dispute/[id]/status/query";
+import { VotesResponseType } from "@/app/api/dispute/[id]/votes/query";
+import { Periods, ipfsUrl, processCurrentPeriod } from "@/app/utils";
+import { Button } from "@/components/ui/button";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import {
+ Tooltip,
+ TooltipContent,
+ TooltipProvider,
+ TooltipTrigger,
+} from "@/components/ui/tooltip";
+import { type DisputeDetails } from "@kleros/kleros-sdk";
+import clsx from "clsx";
+import { FileText, HelpCircle } from "lucide-react";
+
+interface IPolicy {
+ disputeId: `${number}`;
+}
+
+type VotesData = Record<
+ string,
+ {
+ id: string;
+ count: number;
+ }
+>;
+
+const Policy: React.FC = async ({ disputeId }) => {
+ const headersList = await headers();
+ const host = headersList.get("host");
+ const protocol = headersList.get("x-forwarded-proto");
+
+ const disputeDetails: DisputeDetails = await fetch(
+ `${protocol}://${host}/api/dispute/${disputeId}/template`,
+ ).then((result) => result.json());
+
+ const disputeStatus: StatusResponseType["dispute"] = await fetch(
+ `${protocol}://${host}/api/dispute/${disputeId}/status`,
+ ).then((result) => result.json());
+
+ const voteData: VotesResponseType["dispute"] = await fetch(
+ `${protocol}://${host}/api/dispute/${disputeId}/votes`,
+ ).then((result) => result.json());
+
+ const processedAnswers = voteData.rounds[0].drawnJurors.reduce(
+ (acc: VotesData, draw) => {
+ if (draw?.vote?.choice === undefined) return acc;
+ const answerId = `0x${parseInt(draw.vote.choice).toString(16)}`;
+ if (acc[answerId]) {
+ acc[answerId].count = acc[answerId].count + 1;
+ } else {
+ acc[answerId] = {
+ id: answerId,
+ count: 1,
+ };
+ }
+ return acc;
+ },
+ {} as VotesData,
+ );
+
+ const isFinal =
+ processCurrentPeriod(
+ Periods[disputeStatus.period],
+ parseInt(disputeStatus.currentRoundIndex),
+ ) === 2;
+
+ const answerId = `0x${parseInt(
+ disputeStatus.disputeKitDispute[0].localRounds[0].winningChoice,
+ ).toString(16)}`;
+
+ const finalAnswer = disputeDetails.answers.find(
+ (answer) => answer.id === answerId,
+ );
+ const restAnswers = disputeDetails.answers.filter(
+ (answer) => answer.id !== answerId,
+ );
+
+ const t1 = await getTranslations("case.policy");
+ const t2 = await getTranslations("case.result");
+
+ return (
+
+ {isFinal ? (
+
+
+
+ {t2("title")}
+
+
+
+ {finalAnswer ? (
+
+ {t2("votes", {
+ number: processedAnswers[finalAnswer.id]?.count ?? 0,
+ answer: finalAnswer.title,
+ })}
+
+ ) : null}
+ {restAnswers.map((answer) => (
+
+ {t2("votes", {
+ number: processedAnswers[answer.id]?.count ?? 0,
+ answer: answer.title,
+ })}
+
+ ))}
+
+
+ ) : null}
+
+ {disputeDetails.policyURI ? (
+
+
+ {t1("title")}
+
+
+
+
+
+
+
+
+
+
+ {t1("tooltip")}
+
+
+
+
+
+ ) : null}
+
+ );
+};
+
+export default Policy;
diff --git a/src/app/[locale]/case/[disputeId]/components/Question.tsx b/src/app/[locale]/case/[disputeId]/components/Question.tsx
new file mode 100644
index 0000000..df073b3
--- /dev/null
+++ b/src/app/[locale]/case/[disputeId]/components/Question.tsx
@@ -0,0 +1,142 @@
+import React from "react";
+
+import clsx from "clsx";
+import { getLocale, getTranslations } from "next-intl/server";
+import { headers } from "next/headers";
+import { getLangDir } from "rtl-detect";
+
+import { type StatusResponseType } from "@/app/api/dispute/[id]/status/query";
+import { type DisputeDetails } from "@/app/api/dispute/[id]/template/route";
+import { Periods, processCurrentPeriod } from "@/app/utils";
+import { Badge } from "@/components/ui/badge";
+import { Card, CardContent, CardHeader } from "@/components/ui/card";
+import { CheckCircle, CircleDotDashed, Gavel } from "lucide-react";
+
+interface IQuestion {
+ disputeId: `${number}`;
+}
+
+const Question: React.FC = async ({ disputeId }) => {
+ const headersList = await headers();
+ const host = headersList.get("host");
+ const protocol = headersList.get("x-forwarded-proto");
+
+ const disputeDetails: DisputeDetails = await fetch(
+ `${protocol}://${host}/api/dispute/${disputeId}/template`,
+ ).then((result) => result.json());
+
+ const disputeStatus: StatusResponseType["dispute"] = await fetch(
+ `${protocol}://${host}/api/dispute/${disputeId}/status`,
+ ).then((result) => result.json());
+
+ const isFinal =
+ processCurrentPeriod(
+ Periods[disputeStatus.period],
+ parseInt(disputeStatus.currentRoundIndex),
+ ) === 2;
+
+ const answerId = `0x${parseInt(
+ disputeStatus.disputeKitDispute[0].localRounds[0].winningChoice,
+ ).toString(16)}`;
+
+ const t = await getTranslations("case.question");
+ const locale = await getLocale();
+
+ const langDir = getLangDir(locale);
+
+ return (
+
+
+
+ {disputeDetails.question.trim() === ""
+ ? disputeDetails.title
+ : disputeDetails.question}
+
+
+
+
+
+ {(disputeId === "51"
+ ? [
+ {
+ id: "0x0",
+ title: "Si.",
+ description: "Si compensar al usuario.",
+ },
+ ...disputeDetails.answers.slice(1),
+ ]
+ : disputeDetails.answers.slice(1)
+ ).map((answer) => (
+
+ {isFinal && answerId === answer.id ? (
+
+
+
+
+
+ {answer.title}
+
+
+
+
+ {t("winner")}
+
+
+
+ {answer.description}
+
+
+ ) : (
+
+
+
+
+ {answer.title}
+
+
+
+ {answer.description}
+
+
+ )}
+
+ ))}
+
+
+
+ );
+};
+
+export default Question;
diff --git a/src/app/[locale]/case/[disputeId]/components/Votes.tsx b/src/app/[locale]/case/[disputeId]/components/Votes.tsx
new file mode 100644
index 0000000..783bceb
--- /dev/null
+++ b/src/app/[locale]/case/[disputeId]/components/Votes.tsx
@@ -0,0 +1,242 @@
+"use client";
+import React, { useState } from "react";
+
+import { StatusResponseType } from "@/app/api/dispute/[id]/status/query";
+import { type DisputeDetails } from "@/app/api/dispute/[id]/template/route";
+import { type VotesResponseType } from "@/app/api/dispute/[id]/votes/query";
+import {
+ Periods,
+ getRulingOptions,
+ processCurrentPeriod,
+ shortenAddress,
+} from "@/app/utils";
+import { Badge } from "@/components/ui/badge";
+import { Button } from "@/components/ui/button";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import {
+ Tooltip,
+ TooltipContent,
+ TooltipProvider,
+ TooltipTrigger,
+} from "@/components/ui/tooltip";
+import clsx from "clsx";
+import {
+ CheckCircle,
+ ChevronDown,
+ ChevronUp,
+ Copy,
+ HelpCircle,
+ UserCheck,
+ XCircle,
+} from "lucide-react";
+import { useTranslations } from "next-intl";
+import { toast } from "sonner";
+
+interface IVotes {
+ disputeStatus: StatusResponseType["dispute"];
+ templateData: DisputeDetails;
+ voteData: VotesResponseType["dispute"];
+}
+
+type IJurorData = Record<
+ string,
+ {
+ address: string;
+ shortAddress: string;
+ choice: string;
+ weight: number;
+ justification: string[];
+ }
+>;
+
+const Votes: React.FC = ({ disputeStatus, templateData, voteData }) => {
+ const t = useTranslations("case.justifications");
+
+ const [expandedJustifications, setExpandedJustifications] = useState<
+ Set
+ >(new Set());
+
+ const isFinal =
+ processCurrentPeriod(
+ Periods[disputeStatus.period],
+ parseInt(disputeStatus.currentRoundIndex),
+ ) === 2;
+
+ const answerId = `0x${parseInt(
+ disputeStatus.disputeKitDispute[0].localRounds[0].winningChoice,
+ ).toString(16)}`;
+
+ const rulingOptions = getRulingOptions(templateData.answers);
+
+ const jurors = voteData.rounds[0].drawnJurors.reduce(
+ (acc: IJurorData, draw) => {
+ const juror = draw.vote?.juror.id;
+ if (acc[juror]) {
+ acc[juror].weight = acc[juror].weight + 1;
+ } else if (typeof juror !== "undefined") {
+ acc[juror] = {
+ address: juror,
+ shortAddress: shortenAddress(juror),
+ weight: 1,
+ justification: draw.vote.justification.reference.split("\n"),
+ choice: `0x${parseInt(draw.vote.choice).toString(16)}`,
+ };
+ }
+ return acc;
+ },
+ {} as IJurorData,
+ );
+
+ const toggleJustification = (index: number) => {
+ const newExpanded = new Set(expandedJustifications);
+ if (newExpanded.has(index)) {
+ newExpanded.delete(index);
+ } else {
+ newExpanded.add(index);
+ }
+ setExpandedJustifications(newExpanded);
+ };
+
+ const handleCopyAddress = (fullAddress: string) => {
+ navigator.clipboard.writeText(fullAddress);
+ toast.success(t("copy"));
+ };
+
+ return (
+
+
+
+ {t("title")}
+
+
+
+
+ {Object.keys(jurors).map((key, index) => {
+ const juror = jurors[key];
+ const voteChoice = rulingOptions[juror.choice]?.title;
+ return (
+
+
+
+
+
+
+ {t("juror")}
+
+ handleCopyAddress(juror.address)}
+ >
+ {juror.shortAddress}
+
+
+
+
+
+ {t("voted")}
+
+
+ {isFinal && juror.choice !== answerId ? (
+
+ ) : (
+
+ )}
+ {voteChoice}
+
+
+
+
+
+
+
+ {t("weight", { count: juror.weight })}
+
+
+
+
+ {t("tooltip")}
+
+
+
+
+
+
+
+ {expandedJustifications.has(index) && (
+
+
+ {juror.justification}
+
+
+ )}
+
+ );
+ })}
+
+ {Object.keys(jurors).length === 0 ? (
+
+ No votes casted yet
+
+ ) : null}
+
+
+ );
+};
+
+export default Votes;
diff --git a/src/app/[locale]/case/[disputeId]/page.tsx b/src/app/[locale]/case/[disputeId]/page.tsx
new file mode 100644
index 0000000..582d00d
--- /dev/null
+++ b/src/app/[locale]/case/[disputeId]/page.tsx
@@ -0,0 +1,62 @@
+import React from "react";
+
+import { headers } from "next/headers";
+
+import { type StatusResponseType } from "@/app/api/dispute/[id]/status/query";
+
+import Evidence from "./components/Evidence";
+import Period from "./components/Period";
+import Question from "./components/Question";
+import Votes from "./components/Votes";
+
+import { VotesResponseType } from "@/app/api/dispute/[id]/votes/query";
+import { Periods } from "@/app/utils";
+import { type DisputeDetails } from "@kleros/kleros-sdk";
+import Header from "./components/Header";
+import Policy from "./components/Policy";
+
+interface ICaseDetails {
+ params: Promise<{ disputeId: `${number}` }>;
+}
+
+const CaseDetails: React.FC = async (props) => {
+ const params = await props.params;
+
+ const { disputeId } = params;
+
+ const headersList = await headers();
+ const host = headersList.get("host");
+ const protocol = headersList.get("x-forwarded-proto");
+
+ const data: StatusResponseType["dispute"] = await fetch(
+ `${protocol}://${host}/api/dispute/${disputeId}/status`,
+ ).then((result) => result.json());
+
+ const voteData: VotesResponseType["dispute"] = await fetch(
+ `${protocol}://${host}/api/dispute/${disputeId}/votes`,
+ ).then((result) => result.json());
+
+ const templateData: DisputeDetails = await fetch(
+ `${protocol}://${host}/api/dispute/${disputeId}/template`,
+ ).then((result) => result.json());
+
+ return (
+
+ );
+};
+
+export default CaseDetails;
diff --git a/src/app/[locale]/components/Footer.tsx b/src/app/[locale]/components/Footer.tsx
new file mode 100644
index 0000000..c1def12
--- /dev/null
+++ b/src/app/[locale]/components/Footer.tsx
@@ -0,0 +1,23 @@
+import { Scale } from "lucide-react";
+import { getTranslations } from "next-intl/server";
+import React from "react";
+
+const Footer: React.FC = async () => {
+ const t = await getTranslations("footer");
+ return (
+
+
+
+ {t("title")}
+
+
+ {t("subtitle")}
+
+
+ );
+};
+
+export default Footer;
diff --git a/src/app/[locale]/components/FormSubmitButton.tsx b/src/app/[locale]/components/FormSubmitButton.tsx
new file mode 100644
index 0000000..ff51132
--- /dev/null
+++ b/src/app/[locale]/components/FormSubmitButton.tsx
@@ -0,0 +1,38 @@
+"use client";
+import { cn } from "@/lib/utils";
+import { useLocale, useTranslations } from "next-intl";
+import Image from "next/image";
+import { useFormStatus } from "react-dom";
+import { getLangDir } from "rtl-detect";
+
+const FormSubmitButton: React.FC = () => {
+ const { pending } = useFormStatus();
+
+ const t = useTranslations("landing");
+ const tLoading = useTranslations("loading");
+ const locale = useLocale();
+ const langDir = getLangDir(locale);
+
+ return (
+
+ );
+};
+
+export default FormSubmitButton;
diff --git a/src/app/[locale]/components/Navbar.tsx b/src/app/[locale]/components/Navbar.tsx
new file mode 100644
index 0000000..5bf857c
--- /dev/null
+++ b/src/app/[locale]/components/Navbar.tsx
@@ -0,0 +1,119 @@
+"use client";
+
+import React, { useMemo } from "react";
+
+import clsx from "clsx";
+import Link from "next/link";
+import { usePathname } from "next/navigation";
+
+import { Badge } from "@/components/ui/badge";
+import { Button } from "@/components/ui/button";
+import {
+ DropdownMenu,
+ DropdownMenuContent,
+ DropdownMenuItem,
+ DropdownMenuTrigger,
+} from "@/components/ui/dropdown-menu";
+import { locales } from "@/i18n/routing";
+import { ExternalLink, HelpCircle } from "lucide-react";
+import { useTranslations } from "next-intl";
+
+interface INavbar {
+ locale: (typeof locales)[number];
+}
+
+const Navbar: React.FC = ({ locale }) => {
+ const t = useTranslations("navbar");
+ const pathname = usePathname();
+
+ const pathWithoutLocale = useMemo(
+ () => pathname.split("/").slice(2).join("/"),
+ [pathname],
+ );
+
+ return (
+
+
+
+
+

+
+
+
+
+
+
+
+
+
+ {locale.toUpperCase()}
+
+
+
+ {locales.map((innerLocale) =>
+ innerLocale !== locale ? (
+
+
+
+ {innerLocale.toUpperCase()}
+
+
+
+ ) : null,
+ )}
+
+
+
+
+
+
+
+ );
+};
+
+export default Navbar;
diff --git a/src/app/[locale]/error.tsx b/src/app/[locale]/error.tsx
new file mode 100644
index 0000000..0daa3fd
--- /dev/null
+++ b/src/app/[locale]/error.tsx
@@ -0,0 +1,43 @@
+"use client";
+
+import React from "react";
+
+import clsx from "clsx";
+import { useLocale, useTranslations } from "next-intl";
+import Link from "next/link";
+
+export default function Error({
+ error: _,
+ reset: __,
+}: {
+ error: Error & { digest?: string };
+ reset: () => void;
+}) {
+ // useEffect(() => {
+ // // Log the error to an error reporting service
+ // console.error(error)
+ // }, [error])
+
+ const t = useTranslations("error");
+ const locale = useLocale();
+
+ return (
+
+
+ {t("title")}
+
+
+ {t("subtitle")}
+
+
+ {t("button")}
+
+
+ );
+}
diff --git a/src/app/[locale]/layout.tsx b/src/app/[locale]/layout.tsx
new file mode 100644
index 0000000..ebe3c14
--- /dev/null
+++ b/src/app/[locale]/layout.tsx
@@ -0,0 +1,58 @@
+import clsx from "clsx";
+import type { Metadata } from "next";
+import { NextIntlClientProvider } from "next-intl";
+import { getMessages } from "next-intl/server";
+import { Inter as _Inter } from "next/font/google";
+import { getLangDir } from "rtl-detect";
+
+import "../globals.css";
+import { Toaster as Sonner } from "@/components/ui/sonner";
+import { Toaster } from "@/components/ui/toaster";
+import Footer from "./components/Footer";
+import Navbar from "./components/Navbar";
+
+const Inter = _Inter({
+ subsets: ["latin"],
+ display: "swap",
+ weight: ["400", "500", "600", "700"],
+});
+
+export const metadata: Metadata = {
+ title: "Kleros: Library of Justice",
+ description: "Kleros archival UI",
+};
+
+export default async function RootLayout(
+ props: Readonly<{
+ children: React.ReactNode;
+ params: Promise<{ locale: string }>;
+ }>,
+) {
+ const params = await props.params;
+
+ const { locale } = params;
+
+ const { children } = props;
+
+ const messages = await getMessages({ locale });
+ const langDir = getLangDir(locale);
+
+ return (
+
+
+
+
+
+
+
+ {children}
+
+
+
+
+
+ );
+}
diff --git a/src/app/[locale]/loading.tsx b/src/app/[locale]/loading.tsx
new file mode 100644
index 0000000..56364d5
--- /dev/null
+++ b/src/app/[locale]/loading.tsx
@@ -0,0 +1,30 @@
+"use client";
+
+import React from "react";
+
+import clsx from "clsx";
+import { useTranslations } from "next-intl";
+
+const Loading: React.FC = () => {
+ const t = useTranslations("loading");
+
+ return (
+
+ );
+};
+
+export default Loading;
diff --git a/src/app/[locale]/page.tsx b/src/app/[locale]/page.tsx
new file mode 100644
index 0000000..cd918c7
--- /dev/null
+++ b/src/app/[locale]/page.tsx
@@ -0,0 +1,69 @@
+"use client";
+
+import clsx from "clsx";
+import { useLocale, useTranslations } from "next-intl";
+import { getLangDir } from "rtl-detect";
+
+import { useRouter } from "@/i18n/routing";
+import FormSubmitButton from "./components/FormSubmitButton";
+
+const Home: React.FC = () => {
+ const t = useTranslations("landing");
+ const locale = useLocale();
+ const langDir = getLangDir(locale);
+
+ const router = useRouter();
+
+ return (
+
+
+ {t("title")}
+
+
+ {t("subtitle")}
+
+
+
+ );
+};
+
+export default Home;
diff --git a/src/app/api/dispute/[id]/status/query.ts b/src/app/api/dispute/[id]/status/query.ts
new file mode 100644
index 0000000..5e72b7c
--- /dev/null
+++ b/src/app/api/dispute/[id]/status/query.ts
@@ -0,0 +1,77 @@
+import { gql } from "@urql/core";
+
+import { getClient } from "@/app/api/utils";
+import { Periods } from "@/app/utils";
+
+export type StatusResponseType = {
+ dispute: {
+ court: {
+ id: string;
+ };
+ createdAt: `${number}`;
+ rulingTimestamp: `${number}` | null;
+ arbitrated: {
+ id: string;
+ };
+ currentRoundIndex: `${number}`;
+ period: keyof typeof Periods;
+ ruled: boolean;
+ currentRuling: `${number}`;
+ tied: boolean;
+ overridden: boolean;
+ periodDeadline: `${number}`;
+ lastPeriodChange: `${number}`;
+ externalDisputeId: string;
+ disputeKitDispute: Array<{
+ localRounds: Array<{
+ id: string;
+ winningChoice: `${number}`;
+ }>;
+ }>;
+ };
+};
+
+const query = gql`
+ query DisputeDetails($id: ID!) {
+ dispute(id: $id) {
+ court {
+ id
+ }
+ createdAt
+ rulingTimestamp
+ arbitrated {
+ id
+ }
+ currentRoundIndex
+ period
+ ruled
+ currentRuling
+ tied
+ overridden
+ periodDeadline
+ lastPeriodChange
+ externalDisputeId
+ disputeKitDispute {
+ localRounds {
+ id
+ ... on ClassicRound {
+ winningChoice
+ }
+ }
+ }
+ }
+ }
+`;
+
+export const fetchStatus = async (disputeId: bigint) => {
+ const variables = { id: disputeId.toString() };
+ const client = getClient(process.env.CORE_SUBGRAPH!);
+
+ return await client
+ .query(query, variables)
+ .toPromise()
+ .then((res) => {
+ if (res.error) throw res.error;
+ return res.data?.dispute;
+ });
+};
diff --git a/src/app/api/dispute/[id]/status/route.ts b/src/app/api/dispute/[id]/status/route.ts
new file mode 100644
index 0000000..359954a
--- /dev/null
+++ b/src/app/api/dispute/[id]/status/route.ts
@@ -0,0 +1,13 @@
+import { NextRequest, NextResponse } from "next/server";
+
+import { fetchStatus } from "./query";
+
+export async function GET(
+ _: NextRequest,
+ { params }: { params: Promise<{ id: string }> },
+) {
+ const id = (await params).id;
+ const status = await fetchStatus(BigInt(id));
+
+ return NextResponse.json(status);
+}
diff --git a/src/app/api/dispute/[id]/template/route.ts b/src/app/api/dispute/[id]/template/route.ts
new file mode 100644
index 0000000..8c63c67
--- /dev/null
+++ b/src/app/api/dispute/[id]/template/route.ts
@@ -0,0 +1,24 @@
+import { NextRequest, NextResponse } from "next/server";
+
+import { getDispute } from "@kleros/kleros-sdk";
+
+export { type DisputeDetails } from "@kleros/kleros-sdk";
+
+export async function GET(
+ _: NextRequest,
+ { params }: { params: Promise<{ id: string }> },
+) {
+ const id = (await params).id;
+ const dispute = await getDispute({
+ disputeId: BigInt(id),
+ coreSubgraph: process.env.CORE_SUBGRAPH!,
+ dtrSubgraph: process.env.DTR_ARBITRUM_SUBGRAPH!,
+ options: {
+ additionalContext: {
+ graphApiKey: process.env.THEGRAPH_API_KEY,
+ },
+ },
+ });
+
+ return NextResponse.json(dispute);
+}
diff --git a/src/app/api/dispute/[id]/votes/query.ts b/src/app/api/dispute/[id]/votes/query.ts
new file mode 100644
index 0000000..60d56e0
--- /dev/null
+++ b/src/app/api/dispute/[id]/votes/query.ts
@@ -0,0 +1,83 @@
+import { gql } from "@urql/core";
+
+import { getClient } from "@/app/api/utils";
+
+export type VotesResponseType = {
+ dispute: {
+ rounds: Array<{
+ nbVotes: `${number}`;
+ isCurrentRound: boolean;
+ penalties: `${number}`;
+ jurorsDrawn: boolean;
+ drawnJurors: Array<{
+ vote: {
+ juror: {
+ id: string;
+ };
+ voted: boolean;
+ choice: `${number}`;
+ commited: boolean;
+ commit: string;
+ justification: {
+ reference: string;
+ };
+ };
+ }>;
+ court: {
+ id: string;
+ };
+ feeToken: {
+ id: string;
+ };
+ }>;
+ };
+};
+
+const query = gql`
+ query DisputeDetails($id: ID!) {
+ dispute(id: $id) {
+ rounds {
+ id
+ nbVotes
+ isCurrentRound
+ penalties
+ jurorsDrawn
+ drawnJurors {
+ vote {
+ juror {
+ id
+ }
+ ...on ClassicVote {
+ choice
+ voted
+ commited
+ commit
+ justification {
+ reference
+ }
+ }
+ }
+ }
+ court {
+ id
+ }
+ feeToken {
+ id
+ }
+ }
+ }
+ }
+`;
+
+export const fetchVotes = async (disputeId: bigint) => {
+ const variables = { id: disputeId.toString() };
+ const client = getClient(process.env.CORE_SUBGRAPH!);
+
+ return await client
+ .query(query, variables)
+ .toPromise()
+ .then((res) => {
+ if (res.error) throw res.error;
+ return res.data?.dispute;
+ });
+};
diff --git a/src/app/api/dispute/[id]/votes/route.ts b/src/app/api/dispute/[id]/votes/route.ts
new file mode 100644
index 0000000..b6c8368
--- /dev/null
+++ b/src/app/api/dispute/[id]/votes/route.ts
@@ -0,0 +1,13 @@
+import { NextRequest, NextResponse } from "next/server";
+
+import { fetchVotes } from "./query";
+
+export async function GET(
+ _: NextRequest,
+ { params }: { params: Promise<{ id: string }> },
+) {
+ const id = (await params).id;
+ const votes = await fetchVotes(BigInt(id));
+
+ return NextResponse.json(votes);
+}
diff --git a/src/app/api/evidence/[id]/query.ts b/src/app/api/evidence/[id]/query.ts
new file mode 100644
index 0000000..e254635
--- /dev/null
+++ b/src/app/api/evidence/[id]/query.ts
@@ -0,0 +1,56 @@
+import { gql } from "@urql/core";
+
+import { getClient } from "@/app/api/utils";
+
+export type EvidenceResponseType = {
+ evidenceGroup: {
+ evidences: Array<{
+ id: string;
+ evidence: string;
+ sender: {
+ id: string;
+ };
+ timestamp: `${number}`;
+ fileURI: string;
+ fileTypeExtension: string;
+ name: string;
+ description: string;
+ evidenceIndex: `${number}`;
+ }>;
+ };
+};
+
+const query = gql`
+ query Evidences($id: ID!) {
+ evidenceGroup(id: $id) {
+ evidences {
+ ...on ClassicEvidence {
+ id
+ evidence
+ sender {
+ id
+ }
+ timestamp
+ fileURI
+ fileTypeExtension
+ name
+ description
+ evidenceIndex
+ }
+ }
+ }
+ }
+`;
+
+export const fetchEvidences = async (evidenceGroupId: bigint) => {
+ const variables = { id: evidenceGroupId.toString() };
+ const client = getClient(process.env.CORE_SUBGRAPH!);
+
+ return await client
+ .query(query, variables)
+ .toPromise()
+ .then((res) => {
+ if (res.error) throw res.error;
+ return res.data?.evidenceGroup;
+ });
+};
diff --git a/src/app/api/evidence/[id]/route.ts b/src/app/api/evidence/[id]/route.ts
new file mode 100644
index 0000000..c05a84e
--- /dev/null
+++ b/src/app/api/evidence/[id]/route.ts
@@ -0,0 +1,19 @@
+import { NextRequest, NextResponse } from "next/server";
+
+import { spamEvidenceId } from "@/app/utils";
+
+import { fetchEvidences } from "./query";
+
+export async function GET(
+ _: NextRequest,
+ { params }: { params: Promise<{ id: string }> },
+) {
+ const id = (await params).id;
+ const evidence = await fetchEvidences(BigInt(id));
+
+ return NextResponse.json({
+ evidences: evidence?.evidences.filter(
+ (evidence) => !spamEvidenceId.has(evidence.id),
+ ),
+ });
+}
diff --git a/src/app/api/utils.ts b/src/app/api/utils.ts
new file mode 100644
index 0000000..8b7e29e
--- /dev/null
+++ b/src/app/api/utils.ts
@@ -0,0 +1,17 @@
+import { Client, cacheExchange, fetchExchange } from "@urql/core";
+
+const clients = new Map();
+
+export const getClient = (endpoint: string) => {
+ let client = clients.get(endpoint);
+
+ if (!client) {
+ client = new Client({
+ url: endpoint,
+ exchanges: [cacheExchange, fetchExchange],
+ requestPolicy: "network-only",
+ });
+ clients.set(endpoint, client);
+ }
+ return client;
+};
diff --git a/src/app/globals.css b/src/app/globals.css
new file mode 100644
index 0000000..c920ffe
--- /dev/null
+++ b/src/app/globals.css
@@ -0,0 +1,187 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+body {
+ font-family: Arial, Helvetica, sans-serif;
+}
+
+@layer utilities {
+ .text-balance {
+ text-wrap: balance;
+ }
+}
+@layer base {
+ input[type="number"]::-webkit-outer-spin-button,
+ input[type="number"]::-webkit-inner-spin-button,
+ input[type="number"] {
+ -webkit-appearance: none;
+ margin: 0;
+ -moz-appearance: textfield !important;
+ }
+ * {
+ @apply border-border;
+ }
+
+ html {
+ font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI",
+ "Roboto", sans-serif;
+ }
+
+ body {
+ @apply bg-background text-foreground antialiased;
+ font-feature-settings: "rlig" 1, "calt" 1, "kern" 1;
+ font-variant-numeric: tabular-nums;
+ letter-spacing: -0.01em;
+ }
+
+ /* Professional typography scale */
+ .font-mono {
+ font-family: "JetBrains Mono", "SF Mono", Monaco, "Inconsolata",
+ "Roboto Mono", "Courier New", monospace;
+ }
+ :root {
+ /* Professional Kleros Design System - Refined & Trustworthy */
+ --background: 0 0% 100%;
+ --foreground: 220 14% 20%;
+
+ --card: 0 0% 100%;
+ --card-foreground: 220 14% 20%;
+
+ --popover: 0 0% 100%;
+ --popover-foreground: 220 14% 20%;
+
+ /* Refined Primary Palette - Deep Indigo/Purple */
+ --primary: 240 60% 48%; /* Professional deep indigo */
+ --primary-foreground: 0 0% 100%;
+ --primary-glow: 240 55% 65%; /* Subtle glow variant */
+ --primary-dark: 240 65% 35%; /* Darker for depth */
+
+ /* Sophisticated Secondary Palette */
+ --secondary: 220 14% 96%; /* Light neutral */
+ --secondary-foreground: 220 14% 25%;
+
+ --muted: 220 13% 95%; /* Very light gray */
+ --muted-foreground: 220 9% 46%; /* Mid-tone gray */
+
+ --accent: 250 50% 55%; /* Muted purple accent */
+ --accent-foreground: 0 0% 100%;
+
+ /* Professional Status Colors */
+ --success: 142 71% 30%; /* Deeper green */
+ --success-foreground: 0 0% 100%;
+
+ --warning: 38 85% 45%; /* Muted amber */
+ --warning-foreground: 0 0% 100%;
+
+ --destructive: 0 70% 50%; /* Professional red */
+ --destructive-foreground: 0 0% 100%;
+
+ /* Refined UI Elements */
+ --border: 220 13% 91%; /* Subtle borders */
+ --input: 220 13% 96%; /* Clean inputs */
+ --ring: 240 60% 48%; /* Focus ring matches primary */
+
+ --radius: 0.5rem; /* Slightly smaller radius for cleaner look */
+
+ /* Sophisticated Gradients */
+ --gradient-primary: linear-gradient(
+ 135deg,
+ hsl(240 60% 48%),
+ hsl(240 55% 65%)
+ );
+ --gradient-secondary: linear-gradient(
+ 135deg,
+ hsl(220 14% 96%),
+ hsl(220 13% 95%)
+ );
+ --gradient-hero: linear-gradient(
+ 90deg,
+ hsl(240 60% 48%) 0%,
+ hsl(220 14% 15%) 100%
+ );
+ --gradient-card: linear-gradient(
+ 145deg,
+ hsl(0 0% 100%) 0%,
+ hsl(220 14% 98%) 100%
+ );
+
+ /* Elegant Shadows & Effects */
+ --shadow-elegant: 0 8px 25px -8px hsl(240 60% 48% / 0.15);
+ --shadow-glow: 0 0 30px hsl(240 55% 65% / 0.2);
+ --shadow-card: 0 2px 15px -3px hsl(220 14% 25% / 0.08);
+
+ /* Smooth Transitions */
+ --transition-smooth: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
+ --transition-bounce: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
+ }
+
+ /* Professional utility classes */
+ .gradient-primary {
+ background: var(--gradient-primary);
+ }
+
+ .gradient-secondary {
+ background: var(--gradient-secondary);
+ }
+
+ .gradient-hero {
+ background: var(--gradient-hero);
+ }
+
+ .gradient-card {
+ background: var(--gradient-card);
+ }
+
+ .shadow-elegant {
+ box-shadow: var(--shadow-elegant);
+ }
+
+ .shadow-glow {
+ box-shadow: var(--shadow-glow);
+ }
+
+ .shadow-card {
+ box-shadow: var(--shadow-card);
+ }
+
+ .transition-smooth {
+ transition: var(--transition-smooth);
+ }
+
+ .transition-bounce {
+ transition: var(--transition-bounce);
+ }
+
+ /* Professional glass morphism */
+ .glass {
+ @apply backdrop-blur-sm bg-white/5 border border-white/10;
+ backdrop-filter: blur(12px);
+ }
+
+ /* Refined hover effects */
+ .hover-lift {
+ @apply transition-smooth hover:transform hover:-translate-y-0.5;
+ }
+
+ .hover-lift:hover {
+ box-shadow: var(--shadow-elegant);
+ }
+
+ .hover-glow {
+ @apply transition-smooth;
+ }
+
+ .hover-glow:hover {
+ box-shadow: var(--shadow-glow);
+ }
+
+ /* Professional spacing and typography utilities */
+ .content-spacing {
+ @apply space-y-6 md:space-y-8;
+ }
+
+ .text-balance {
+ text-wrap: balance;
+ }
+}
diff --git a/src/app/icon.svg b/src/app/icon.svg
new file mode 100644
index 0000000..cd36b61
--- /dev/null
+++ b/src/app/icon.svg
@@ -0,0 +1,45 @@
+
diff --git a/src/app/utils.ts b/src/app/utils.ts
new file mode 100644
index 0000000..b0a8cdf
--- /dev/null
+++ b/src/app/utils.ts
@@ -0,0 +1,79 @@
+import { DisputeDetails } from "@/app/api/dispute/[id]/template/route";
+
+export enum Periods {
+ evidence,
+ commit,
+ vote,
+ appeal,
+ execution,
+}
+
+export const spamEvidenceId = new Set([
+ "0-2",
+ "0-3",
+ "0-4",
+ "1-2",
+ "1-3",
+ "2-2",
+]);
+
+const trimChar = (a: string, b: string): string => {
+ if (a.charAt(0) === b) {
+ return trimChar(a.slice(1), b);
+ }
+ return a;
+};
+
+export const ipfsUrl = (path: string): string =>
+ `https://cdn.kleros.link/${trimChar(path, "/")}`;
+
+export const shortenAddress = (address: string, chars = 4) => {
+ return `${address.substring(0, chars + 2)}...${address.substring(
+ 42 - chars,
+ )}`;
+};
+
+type IRulingOptions = Record;
+
+export const getRulingOptions = (
+ answers: DisputeDetails["answers"],
+): IRulingOptions =>
+ answers.reduce((acc: IRulingOptions, answer) => {
+ const answerId = answer.id;
+ if (answerId) acc[answerId] = answer;
+ return acc;
+ }, {});
+
+export const processCurrentPeriod = (
+ currentPeriod: number,
+ currentRound: number,
+) => {
+ if (currentRound > 0) return 2;
+ if (currentPeriod === 0) return 0;
+ if (currentPeriod < 3) return 1;
+ return 2;
+};
+
+export const formatTimestamp = (timestamp: number) => {
+ const date = new Date(timestamp * 1000);
+
+ return new Intl.DateTimeFormat("en-GB", {
+ day: "2-digit",
+ month: "short",
+ year: "numeric",
+ hour: "2-digit",
+ minute: "2-digit",
+ hour12: false,
+ }).format(date);
+};
+
+export const getDurationBetween = (t1: number, t2: number) => {
+ let diffMs = Math.abs(t2 - t1) * 1000;
+ const days = Math.floor(diffMs / (1000 * 60 * 60 * 24));
+ diffMs -= days * 1000 * 60 * 60 * 24;
+
+ const hours = Math.floor(diffMs / (1000 * 60 * 60));
+ diffMs -= hours * 1000 * 60 * 60;
+
+ return { days, hours };
+};
diff --git a/src/components/ui/badge.tsx b/src/components/ui/badge.tsx
new file mode 100644
index 0000000..5b16412
--- /dev/null
+++ b/src/components/ui/badge.tsx
@@ -0,0 +1,42 @@
+import * as React from "react";
+import { cva, type VariantProps } from "class-variance-authority";
+
+import { cn } from "@/lib/utils";
+
+const badgeVariants = cva(
+ "inline-flex items-center rounded-full border px-3 py-1 text-xs font-semibold transition-smooth focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
+ {
+ variants: {
+ variant: {
+ default:
+ "border-transparent gradient-primary text-white shadow-card hover:shadow-elegant",
+ secondary:
+ "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 shadow-card",
+ destructive:
+ "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80 shadow-card",
+ outline:
+ "text-foreground border-2 border-primary/30 hover:border-primary/50 hover:bg-primary/5",
+ success:
+ "border-transparent bg-success text-success-foreground shadow-card",
+ warning:
+ "border-transparent bg-warning text-warning-foreground shadow-card",
+ glass: "glass text-white border-white/30",
+ },
+ },
+ defaultVariants: {
+ variant: "default",
+ },
+ }
+);
+
+export interface BadgeProps
+ extends React.HTMLAttributes,
+ VariantProps {}
+
+function Badge({ className, variant, ...props }: BadgeProps) {
+ return (
+
+ );
+}
+
+export { Badge, badgeVariants };
diff --git a/src/components/ui/button.tsx b/src/components/ui/button.tsx
new file mode 100644
index 0000000..2a677ce
--- /dev/null
+++ b/src/components/ui/button.tsx
@@ -0,0 +1,61 @@
+import * as React from "react";
+import { Slot } from "@radix-ui/react-slot";
+import { cva, type VariantProps } from "class-variance-authority";
+
+import { cn } from "@/lib/utils";
+
+const buttonVariants = cva(
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg text-sm font-medium ring-offset-background transition-smooth focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
+ {
+ variants: {
+ variant: {
+ default:
+ "gradient-primary text-white shadow-card hover:shadow-elegant hover:scale-105",
+ destructive:
+ "bg-destructive text-destructive-foreground hover:bg-destructive/90 shadow-card hover:shadow-elegant",
+ outline:
+ "border-2 border-primary/20 bg-background/80 backdrop-blur-sm hover:border-primary/40 hover:bg-primary/5 hover:shadow-card",
+ secondary:
+ "bg-secondary text-secondary-foreground hover:bg-secondary/80 shadow-card hover:shadow-elegant",
+ ghost:
+ "hover:bg-accent/50 hover:text-accent-foreground transition-smooth",
+ link: "text-primary underline-offset-4 hover:underline hover:text-primary-glow",
+ hero: "gradient-hero text-white shadow-glow hover:shadow-elegant hover:scale-105 border border-white/20",
+ glass:
+ "glass text-white hover:bg-white/20 border border-white/30 backdrop-blur-md",
+ },
+ size: {
+ default: "h-10 px-4 py-2",
+ sm: "h-9 rounded-md px-3",
+ lg: "h-11 rounded-md px-8",
+ icon: "h-10 w-10",
+ },
+ },
+ defaultVariants: {
+ variant: "default",
+ size: "default",
+ },
+ }
+);
+
+export interface ButtonProps
+ extends React.ButtonHTMLAttributes,
+ VariantProps {
+ asChild?: boolean;
+}
+
+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/components/ui/card.tsx b/src/components/ui/card.tsx
new file mode 100644
index 0000000..8db8c4e
--- /dev/null
+++ b/src/components/ui/card.tsx
@@ -0,0 +1,86 @@
+import * as React from "react";
+
+import { cn } from "@/lib/utils";
+
+const Card = React.forwardRef<
+ HTMLDivElement,
+ React.HTMLAttributes
+>(({ className, ...props }, ref) => (
+
+));
+Card.displayName = "Card";
+
+const CardHeader = React.forwardRef<
+ HTMLDivElement,
+ React.HTMLAttributes
+>(({ className, ...props }, ref) => (
+
+));
+CardHeader.displayName = "CardHeader";
+
+const CardTitle = React.forwardRef<
+ HTMLParagraphElement,
+ React.HTMLAttributes
+>(({ className, ...props }, ref) => (
+
+));
+CardTitle.displayName = "CardTitle";
+
+const CardDescription = React.forwardRef<
+ HTMLParagraphElement,
+ React.HTMLAttributes
+>(({ className, ...props }, ref) => (
+
+));
+CardDescription.displayName = "CardDescription";
+
+const CardContent = React.forwardRef<
+ HTMLDivElement,
+ React.HTMLAttributes
+>(({ className, ...props }, ref) => (
+
+));
+CardContent.displayName = "CardContent";
+
+const CardFooter = React.forwardRef<
+ HTMLDivElement,
+ React.HTMLAttributes
+>(({ className, ...props }, ref) => (
+
+));
+CardFooter.displayName = "CardFooter";
+
+export {
+ Card,
+ CardHeader,
+ CardFooter,
+ CardTitle,
+ CardDescription,
+ CardContent,
+};
diff --git a/src/components/ui/dropdown-menu.tsx b/src/components/ui/dropdown-menu.tsx
new file mode 100644
index 0000000..d694640
--- /dev/null
+++ b/src/components/ui/dropdown-menu.tsx
@@ -0,0 +1,201 @@
+"use client"
+
+import * as React from "react"
+
+import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu"
+import { Check, ChevronRight, Circle } from "lucide-react"
+
+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<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef & {
+ inset?: boolean
+ }
+>(({ className, inset, children, ...props }, ref) => (
+
+ {children}
+
+
+))
+DropdownMenuSubTrigger.displayName =
+ DropdownMenuPrimitive.SubTrigger.displayName
+
+const DropdownMenuSubContent = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+))
+DropdownMenuSubContent.displayName =
+ DropdownMenuPrimitive.SubContent.displayName
+
+const DropdownMenuContent = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, sideOffset = 4, ...props }, ref) => (
+
+
+
+))
+DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName
+
+const DropdownMenuItem = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef & {
+ inset?: boolean
+ }
+>(({ className, inset, ...props }, ref) => (
+
+))
+DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName
+
+const DropdownMenuCheckboxItem = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, children, checked, ...props }, ref) => (
+
+
+
+
+
+
+ {children}
+
+))
+DropdownMenuCheckboxItem.displayName =
+ DropdownMenuPrimitive.CheckboxItem.displayName
+
+const DropdownMenuRadioItem = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, children, ...props }, ref) => (
+
+
+
+
+
+
+ {children}
+
+))
+DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName
+
+const DropdownMenuLabel = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef & {
+ inset?: boolean
+ }
+>(({ className, inset, ...props }, ref) => (
+
+))
+DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName
+
+const DropdownMenuSeparator = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+))
+DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName
+
+const DropdownMenuShortcut = ({
+ className,
+ ...props
+}: React.HTMLAttributes) => {
+ return (
+
+ )
+}
+DropdownMenuShortcut.displayName = "DropdownMenuShortcut"
+
+export {
+ DropdownMenu,
+ DropdownMenuTrigger,
+ DropdownMenuContent,
+ DropdownMenuItem,
+ DropdownMenuCheckboxItem,
+ DropdownMenuRadioItem,
+ DropdownMenuLabel,
+ DropdownMenuSeparator,
+ DropdownMenuShortcut,
+ DropdownMenuGroup,
+ DropdownMenuPortal,
+ DropdownMenuSub,
+ DropdownMenuSubContent,
+ DropdownMenuSubTrigger,
+ DropdownMenuRadioGroup,
+}
diff --git a/src/components/ui/separator.tsx b/src/components/ui/separator.tsx
new file mode 100644
index 0000000..798a7b0
--- /dev/null
+++ b/src/components/ui/separator.tsx
@@ -0,0 +1,31 @@
+"use client"
+
+import * as React from "react"
+import * as SeparatorPrimitive from "@radix-ui/react-separator"
+
+import { cn } from "@/lib/utils"
+
+const Separator = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(
+ (
+ { className, orientation = "horizontal", decorative = true, ...props },
+ ref
+ ) => (
+
+ )
+)
+Separator.displayName = SeparatorPrimitive.Root.displayName
+
+export { Separator }
diff --git a/src/components/ui/sonner.tsx b/src/components/ui/sonner.tsx
new file mode 100644
index 0000000..c03c7d4
--- /dev/null
+++ b/src/components/ui/sonner.tsx
@@ -0,0 +1,25 @@
+import { Toaster as Sonner, toast } from "sonner";
+
+type ToasterProps = React.ComponentProps;
+
+const Toaster = ({ ...props }: ToasterProps) => {
+ return (
+
+ );
+};
+
+export { Toaster, toast };
diff --git a/src/components/ui/toast.tsx b/src/components/ui/toast.tsx
new file mode 100644
index 0000000..3875c70
--- /dev/null
+++ b/src/components/ui/toast.tsx
@@ -0,0 +1,127 @@
+import * as React from "react";
+import * as ToastPrimitives from "@radix-ui/react-toast";
+import { cva, type VariantProps } from "class-variance-authority";
+import { X } from "lucide-react";
+
+import { cn } from "@/lib/utils";
+
+const ToastProvider = ToastPrimitives.Provider;
+
+const ToastViewport = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ 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-4 overflow-hidden rounded-md border p-6 pr-8 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",
+ {
+ variants: {
+ variant: {
+ default: "border bg-background text-foreground",
+ destructive:
+ "destructive group border-destructive bg-destructive text-destructive-foreground",
+ },
+ },
+ defaultVariants: {
+ variant: "default",
+ },
+ }
+);
+
+const Toast = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef &
+ VariantProps
+>(({ className, variant, ...props }, ref) => {
+ return (
+
+ );
+});
+Toast.displayName = ToastPrimitives.Root.displayName;
+
+const ToastAction = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+));
+ToastAction.displayName = ToastPrimitives.Action.displayName;
+
+const ToastClose = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+
+
+));
+ToastClose.displayName = ToastPrimitives.Close.displayName;
+
+const ToastTitle = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+));
+ToastTitle.displayName = ToastPrimitives.Title.displayName;
+
+const ToastDescription = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+));
+ToastDescription.displayName = ToastPrimitives.Description.displayName;
+
+type ToastProps = React.ComponentPropsWithoutRef;
+
+type ToastActionElement = React.ReactElement;
+
+export {
+ type ToastProps,
+ type ToastActionElement,
+ ToastProvider,
+ ToastViewport,
+ Toast,
+ ToastTitle,
+ ToastDescription,
+ ToastClose,
+ ToastAction,
+};
diff --git a/src/components/ui/toaster.tsx b/src/components/ui/toaster.tsx
new file mode 100644
index 0000000..32c43fe
--- /dev/null
+++ b/src/components/ui/toaster.tsx
@@ -0,0 +1,34 @@
+"use client";
+import {
+ Toast,
+ ToastClose,
+ ToastDescription,
+ ToastProvider,
+ ToastTitle,
+ ToastViewport,
+} from "@/components/ui/toast";
+import { useToast } from "@/hooks/use-toast";
+
+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/components/ui/tooltip.tsx b/src/components/ui/tooltip.tsx
new file mode 100644
index 0000000..13a0543
--- /dev/null
+++ b/src/components/ui/tooltip.tsx
@@ -0,0 +1,28 @@
+import * as React from "react";
+import * as TooltipPrimitive from "@radix-ui/react-tooltip";
+
+import { cn } from "@/lib/utils";
+
+const TooltipProvider = TooltipPrimitive.Provider;
+
+const Tooltip = TooltipPrimitive.Root;
+
+const TooltipTrigger = TooltipPrimitive.Trigger;
+
+const TooltipContent = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, sideOffset = 4, ...props }, ref) => (
+
+));
+TooltipContent.displayName = TooltipPrimitive.Content.displayName;
+
+export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
diff --git a/src/hooks/use-toast.ts b/src/hooks/use-toast.ts
new file mode 100644
index 0000000..1fd9e05
--- /dev/null
+++ b/src/hooks/use-toast.ts
@@ -0,0 +1,189 @@
+"use client";
+import * as React from "react";
+
+import type { ToastActionElement, ToastProps } from "@/components/ui/toast";
+
+const TOAST_LIMIT = 1;
+const TOAST_REMOVE_DELAY = 1000000;
+
+type ToasterToast = ToastProps & {
+ id: string;
+ title?: React.ReactNode;
+ description?: React.ReactNode;
+ action?: ToastActionElement;
+};
+
+const actionTypes = {
+ ADD_TOAST: "ADD_TOAST",
+ UPDATE_TOAST: "UPDATE_TOAST",
+ DISMISS_TOAST: "DISMISS_TOAST",
+ REMOVE_TOAST: "REMOVE_TOAST",
+} as const;
+
+let count = 0;
+
+function genId() {
+ count = (count + 1) % Number.MAX_SAFE_INTEGER;
+ return count.toString();
+}
+
+type ActionType = typeof actionTypes;
+
+type Action =
+ | {
+ type: ActionType["ADD_TOAST"];
+ toast: ToasterToast;
+ }
+ | {
+ type: ActionType["UPDATE_TOAST"];
+ toast: Partial;
+ }
+ | {
+ type: ActionType["DISMISS_TOAST"];
+ toastId?: ToasterToast["id"];
+ }
+ | {
+ type: ActionType["REMOVE_TOAST"];
+ toastId?: ToasterToast["id"];
+ };
+
+interface State {
+ toasts: ToasterToast[];
+}
+
+const toastTimeouts = new Map>();
+
+const addToRemoveQueue = (toastId: string) => {
+ 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: State, action: Action): State => {
+ 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: Array<(state: State) => void> = [];
+
+let memoryState: State = { toasts: [] };
+
+function dispatch(action: Action) {
+ memoryState = reducer(memoryState, action);
+ listeners.forEach((listener) => {
+ listener(memoryState);
+ });
+}
+
+type Toast = Omit;
+
+function toast({ ...props }: Toast) {
+ const id = genId();
+
+ const update = (props: ToasterToast) =>
+ 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?: string) => dispatch({ type: "DISMISS_TOAST", toastId }),
+ };
+}
+
+export { useToast, toast };
diff --git a/src/i18n/request.ts b/src/i18n/request.ts
new file mode 100644
index 0000000..4949d09
--- /dev/null
+++ b/src/i18n/request.ts
@@ -0,0 +1,18 @@
+import { getRequestConfig } from "next-intl/server";
+
+import { routing } from "./routing";
+
+export default getRequestConfig(async ({ requestLocale }) => {
+ // This typically corresponds to the `[locale]` segment
+ let locale = await requestLocale;
+
+ // Ensure that a valid locale is used
+ if (!locale || !routing.locales.includes(locale)) {
+ locale = routing.defaultLocale;
+ }
+
+ return {
+ locale,
+ messages: (await import(`../../messages/${locale}.json`)).default,
+ };
+});
diff --git a/src/i18n/routing.ts b/src/i18n/routing.ts
new file mode 100644
index 0000000..5436ce6
--- /dev/null
+++ b/src/i18n/routing.ts
@@ -0,0 +1,17 @@
+import { createNavigation } from "next-intl/navigation";
+import { defineRouting } from "next-intl/routing";
+
+export const locales = ["es", "en", "ar"];
+
+export const routing = defineRouting({
+ // A list of all locales that are supported
+ locales,
+
+ // Used when no locale matches
+ defaultLocale: "es",
+});
+
+// Lightweight wrappers around Next.js' navigation APIs
+// that will consider the routing configuration
+export const { Link, redirect, usePathname, useRouter, getPathname } =
+ createNavigation(routing);
diff --git a/src/lib/utils.ts b/src/lib/utils.ts
new file mode 100644
index 0000000..365058c
--- /dev/null
+++ b/src/lib/utils.ts
@@ -0,0 +1,6 @@
+import { type ClassValue, clsx } from "clsx";
+import { twMerge } from "tailwind-merge";
+
+export function cn(...inputs: ClassValue[]) {
+ return twMerge(clsx(inputs));
+}
diff --git a/src/middleware.ts b/src/middleware.ts
new file mode 100644
index 0000000..7a888be
--- /dev/null
+++ b/src/middleware.ts
@@ -0,0 +1,22 @@
+import createMiddleware from "next-intl/middleware";
+import { NextRequest, NextResponse } from "next/server";
+
+import { locales, routing } from "@/i18n/routing";
+
+const handleI18nRouting = createMiddleware(routing);
+
+export default function middleware(request: NextRequest) {
+ const { pathname } = request.nextUrl;
+
+ const shouldHandle =
+ pathname === "/" ||
+ new RegExp(`^/(${locales.join("|")})(/.*)?$`).test(pathname);
+ if (!shouldHandle) return;
+
+ // Redirect root path to Spanish locale
+ if (pathname === "/") {
+ return NextResponse.redirect(new URL("/es", request.url));
+ }
+
+ return handleI18nRouting(request);
+}
diff --git a/tailwind.config.ts b/tailwind.config.ts
new file mode 100644
index 0000000..86a07a6
--- /dev/null
+++ b/tailwind.config.ts
@@ -0,0 +1,135 @@
+import type { Config } from "tailwindcss";
+
+const config: Config = {
+ darkMode: ["class"],
+ content: [
+ "./src/pages/**/*.{js,ts,jsx,tsx,mdx}",
+ "./src/components/**/*.{js,ts,jsx,tsx,mdx}",
+ "./src/app/**/*.{js,ts,jsx,tsx,mdx}",
+ ],
+ theme: {
+ container: {
+ center: true,
+ padding: "2rem",
+ screens: {
+ "2xl": "1400px",
+ },
+ },
+ extend: {
+ fontFamily: {
+ sans: [
+ "Inter",
+ "-apple-system",
+ "BlinkMacSystemFont",
+ "Segoe UI",
+ "Roboto",
+ "sans-serif",
+ ],
+ mono: [
+ "JetBrains Mono",
+ "SF Mono",
+ "Monaco",
+ "Inconsolata",
+ "Roboto Mono",
+ "Courier New",
+ "monospace",
+ ],
+ },
+ colors: {
+ "primary-text": "#333333",
+ "secondary-text": "#999999",
+ stroke: "#e5e5e5",
+ "primary-purple": "#4D00B4",
+ "secondary-purple": "#9013FE",
+ "primary-blue": "#009AFF",
+ "secondary-blue": "#7BCBFF",
+ "light-background": "#FAFBFC",
+ "white-background": "#FFFFFF",
+ border: "hsl(var(--border))",
+ input: "hsl(var(--input))",
+ ring: "hsl(var(--ring))",
+ background: "hsl(var(--background))",
+ foreground: "hsl(var(--foreground))",
+ primary: {
+ DEFAULT: "hsl(var(--primary))",
+ foreground: "hsl(var(--primary-foreground))",
+ glow: "hsl(var(--primary-glow))",
+ dark: "hsl(var(--primary-dark))",
+ },
+ secondary: {
+ DEFAULT: "hsl(var(--secondary))",
+ foreground: "hsl(var(--secondary-foreground))",
+ },
+ destructive: {
+ DEFAULT: "hsl(var(--destructive))",
+ foreground: "hsl(var(--destructive-foreground))",
+ },
+ muted: {
+ DEFAULT: "hsl(var(--muted))",
+ foreground: "hsl(var(--muted-foreground))",
+ },
+ accent: {
+ DEFAULT: "hsl(var(--accent))",
+ foreground: "hsl(var(--accent-foreground))",
+ },
+ popover: {
+ DEFAULT: "hsl(var(--popover))",
+ foreground: "hsl(var(--popover-foreground))",
+ },
+ card: {
+ DEFAULT: "hsl(var(--card))",
+ foreground: "hsl(var(--card-foreground))",
+ },
+ success: {
+ DEFAULT: "hsl(var(--success))",
+ foreground: "hsl(var(--success-foreground))",
+ },
+ warning: {
+ DEFAULT: "hsl(var(--warning))",
+ foreground: "hsl(var(--warning-foreground))",
+ },
+ },
+ borderRadius: {
+ lg: "var(--radius)",
+ md: "calc(var(--radius) - 2px)",
+ sm: "calc(var(--radius) - 4px)",
+ },
+ keyframes: {
+ "accordion-down": {
+ from: { height: "0" },
+ to: { height: "var(--radix-accordion-content-height)" },
+ },
+ "accordion-up": {
+ from: { height: "var(--radix-accordion-content-height)" },
+ to: { height: "0" },
+ },
+ "fade-in": {
+ "0%": { opacity: "0", transform: "translateY(10px)" },
+ "100%": { opacity: "1", transform: "translateY(0)" },
+ },
+ "slide-in": {
+ "0%": { transform: "translateX(-100%)" },
+ "100%": { transform: "translateX(0)" },
+ },
+ "glow-pulse": {
+ "0%, 100%": { boxShadow: "0 0 20px hsl(var(--primary) / 0.3)" },
+ "50%": { boxShadow: "0 0 40px hsl(var(--primary) / 0.6)" },
+ },
+ float: {
+ "0%, 100%": { transform: "translateY(0px)" },
+ "50%": { transform: "translateY(-10px)" },
+ },
+ },
+ animation: {
+ "accordion-down": "accordion-down 0.2s ease-out",
+ "accordion-up": "accordion-up 0.2s ease-out",
+ "fade-in": "fade-in 0.6s ease-out",
+ "slide-in": "slide-in 0.5s ease-out",
+ "glow-pulse": "glow-pulse 3s ease-in-out infinite",
+ float: "float 6s ease-in-out infinite",
+ },
+ },
+ },
+ plugins: [require("tailwindcss-animate")],
+};
+export default config;
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..f48e7ee
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,40 @@
+{
+ "compilerOptions": {
+ "lib": [
+ "dom",
+ "dom.iterable",
+ "esnext"
+ ],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "bundler",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve",
+ "incremental": true,
+ "plugins": [
+ {
+ "name": "next"
+ }
+ ],
+ "paths": {
+ "@/*": [
+ "./src/*"
+ ]
+ },
+ "target": "ES2017"
+ },
+ "include": [
+ "next-env.d.ts",
+ "**/*.ts",
+ "**/*.tsx",
+ ".next/types/**/*.ts"
+ ],
+ "exclude": [
+ "node_modules"
+ ]
+}
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
index 0000000..3b874d5
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,5686 @@
+# This file is generated by running "yarn install" inside your project.
+# Manual changes might be lost - proceed with caution!
+
+__metadata:
+ version: 8
+ cacheKey: 10c0
+
+"@0no-co/graphql.web@npm:^1.0.5":
+ version: 1.0.11
+ resolution: "@0no-co/graphql.web@npm:1.0.11"
+ peerDependencies:
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0
+ peerDependenciesMeta:
+ graphql:
+ optional: true
+ checksum: 10c0/7ef7e86a750d3df666830705dac7c984bc7f9604a42c43840586931bb7d6c14499595beb6b8bdcfac56b7847f921ddd08f2e0c39b55acff49ec847d278a8a768
+ languageName: node
+ linkType: hard
+
+"@adraffy/ens-normalize@npm:^1.10.1":
+ version: 1.11.0
+ resolution: "@adraffy/ens-normalize@npm:1.11.0"
+ checksum: 10c0/5111d0f1a273468cb5661ed3cf46ee58de8f32f84e2ebc2365652e66c1ead82649df94c736804e2b9cfa831d30ef24e1cc3575d970dbda583416d3a98d8870a6
+ languageName: node
+ linkType: hard
+
+"@alloc/quick-lru@npm:^5.2.0":
+ version: 5.2.0
+ resolution: "@alloc/quick-lru@npm:5.2.0"
+ checksum: 10c0/7b878c48b9d25277d0e1a9b8b2f2312a314af806b4129dc902f2bc29ab09b58236e53964689feec187b28c80d2203aff03829754773a707a8a5987f1b7682d92
+ languageName: node
+ linkType: hard
+
+"@biomejs/biome@npm:1.9.4":
+ version: 1.9.4
+ resolution: "@biomejs/biome@npm:1.9.4"
+ dependencies:
+ "@biomejs/cli-darwin-arm64": "npm:1.9.4"
+ "@biomejs/cli-darwin-x64": "npm:1.9.4"
+ "@biomejs/cli-linux-arm64": "npm:1.9.4"
+ "@biomejs/cli-linux-arm64-musl": "npm:1.9.4"
+ "@biomejs/cli-linux-x64": "npm:1.9.4"
+ "@biomejs/cli-linux-x64-musl": "npm:1.9.4"
+ "@biomejs/cli-win32-arm64": "npm:1.9.4"
+ "@biomejs/cli-win32-x64": "npm:1.9.4"
+ dependenciesMeta:
+ "@biomejs/cli-darwin-arm64":
+ optional: true
+ "@biomejs/cli-darwin-x64":
+ optional: true
+ "@biomejs/cli-linux-arm64":
+ optional: true
+ "@biomejs/cli-linux-arm64-musl":
+ optional: true
+ "@biomejs/cli-linux-x64":
+ optional: true
+ "@biomejs/cli-linux-x64-musl":
+ optional: true
+ "@biomejs/cli-win32-arm64":
+ optional: true
+ "@biomejs/cli-win32-x64":
+ optional: true
+ bin:
+ biome: bin/biome
+ checksum: 10c0/b5655c5aed9a6fffe24f7d04f15ba4444389d0e891c9ed9106fab7388ac9b4be63185852cc2a937b22940dac3e550b71032a4afd306925cfea436c33e5646b3e
+ languageName: node
+ linkType: hard
+
+"@biomejs/cli-darwin-arm64@npm:1.9.4":
+ version: 1.9.4
+ resolution: "@biomejs/cli-darwin-arm64@npm:1.9.4"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@biomejs/cli-darwin-x64@npm:1.9.4":
+ version: 1.9.4
+ resolution: "@biomejs/cli-darwin-x64@npm:1.9.4"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@biomejs/cli-linux-arm64-musl@npm:1.9.4":
+ version: 1.9.4
+ resolution: "@biomejs/cli-linux-arm64-musl@npm:1.9.4"
+ conditions: os=linux & cpu=arm64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@biomejs/cli-linux-arm64@npm:1.9.4":
+ version: 1.9.4
+ resolution: "@biomejs/cli-linux-arm64@npm:1.9.4"
+ conditions: os=linux & cpu=arm64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@biomejs/cli-linux-x64-musl@npm:1.9.4":
+ version: 1.9.4
+ resolution: "@biomejs/cli-linux-x64-musl@npm:1.9.4"
+ conditions: os=linux & cpu=x64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@biomejs/cli-linux-x64@npm:1.9.4":
+ version: 1.9.4
+ resolution: "@biomejs/cli-linux-x64@npm:1.9.4"
+ conditions: os=linux & cpu=x64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@biomejs/cli-win32-arm64@npm:1.9.4":
+ version: 1.9.4
+ resolution: "@biomejs/cli-win32-arm64@npm:1.9.4"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@biomejs/cli-win32-x64@npm:1.9.4":
+ version: 1.9.4
+ resolution: "@biomejs/cli-win32-x64@npm:1.9.4"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@emnapi/runtime@npm:^1.4.3":
+ version: 1.4.3
+ resolution: "@emnapi/runtime@npm:1.4.3"
+ dependencies:
+ tslib: "npm:^2.4.0"
+ checksum: 10c0/3b7ab72d21cb4e034f07df80165265f85f445ef3f581d1bc87b67e5239428baa00200b68a7d5e37a0425c3a78320b541b07f76c5530f6f6f95336a6294ebf30b
+ languageName: node
+ linkType: hard
+
+"@ethersproject/abi@npm:5.8.0, @ethersproject/abi@npm:^5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/abi@npm:5.8.0"
+ dependencies:
+ "@ethersproject/address": "npm:^5.8.0"
+ "@ethersproject/bignumber": "npm:^5.8.0"
+ "@ethersproject/bytes": "npm:^5.8.0"
+ "@ethersproject/constants": "npm:^5.8.0"
+ "@ethersproject/hash": "npm:^5.8.0"
+ "@ethersproject/keccak256": "npm:^5.8.0"
+ "@ethersproject/logger": "npm:^5.8.0"
+ "@ethersproject/properties": "npm:^5.8.0"
+ "@ethersproject/strings": "npm:^5.8.0"
+ checksum: 10c0/6b759247a2f43ecc1548647d0447d08de1e946dfc7e71bfb014fa2f749c1b76b742a1d37394660ebab02ff8565674b3593fdfa011e16a5adcfc87ca4d85af39c
+ languageName: node
+ linkType: hard
+
+"@ethersproject/abstract-provider@npm:5.8.0, @ethersproject/abstract-provider@npm:^5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/abstract-provider@npm:5.8.0"
+ dependencies:
+ "@ethersproject/bignumber": "npm:^5.8.0"
+ "@ethersproject/bytes": "npm:^5.8.0"
+ "@ethersproject/logger": "npm:^5.8.0"
+ "@ethersproject/networks": "npm:^5.8.0"
+ "@ethersproject/properties": "npm:^5.8.0"
+ "@ethersproject/transactions": "npm:^5.8.0"
+ "@ethersproject/web": "npm:^5.8.0"
+ checksum: 10c0/9c183da1d037b272ff2b03002c3d801088d0534f88985f4983efc5f3ebd59b05f04bc05db97792fe29ddf87eeba3c73416e5699615f183126f85f877ea6c8637
+ languageName: node
+ linkType: hard
+
+"@ethersproject/abstract-signer@npm:5.8.0, @ethersproject/abstract-signer@npm:^5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/abstract-signer@npm:5.8.0"
+ dependencies:
+ "@ethersproject/abstract-provider": "npm:^5.8.0"
+ "@ethersproject/bignumber": "npm:^5.8.0"
+ "@ethersproject/bytes": "npm:^5.8.0"
+ "@ethersproject/logger": "npm:^5.8.0"
+ "@ethersproject/properties": "npm:^5.8.0"
+ checksum: 10c0/143f32d7cb0bc7064e45674d4a9dffdb90d6171425d20e8de9dc95765be960534bae7246ead400e6f52346624b66569d9585d790eedd34b0b6b7f481ec331cc2
+ languageName: node
+ linkType: hard
+
+"@ethersproject/address@npm:5.8.0, @ethersproject/address@npm:^5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/address@npm:5.8.0"
+ dependencies:
+ "@ethersproject/bignumber": "npm:^5.8.0"
+ "@ethersproject/bytes": "npm:^5.8.0"
+ "@ethersproject/keccak256": "npm:^5.8.0"
+ "@ethersproject/logger": "npm:^5.8.0"
+ "@ethersproject/rlp": "npm:^5.8.0"
+ checksum: 10c0/8bac8a4b567c75c1abc00eeca08c200de1a2d5cf76d595dc04fa4d7bff9ffa5530b2cdfc5e8656cfa8f6fa046de54be47620a092fb429830a8ddde410b9d50bc
+ languageName: node
+ linkType: hard
+
+"@ethersproject/base64@npm:5.8.0, @ethersproject/base64@npm:^5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/base64@npm:5.8.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.8.0"
+ checksum: 10c0/60ae6d1e2367d70f4090b717852efe62075442ae59aeac9bb1054fe8306a2de8ef0b0561e7fb4666ecb1f8efa1655d683dd240675c3a25d6fa867245525a63ca
+ languageName: node
+ linkType: hard
+
+"@ethersproject/basex@npm:5.8.0, @ethersproject/basex@npm:^5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/basex@npm:5.8.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.8.0"
+ "@ethersproject/properties": "npm:^5.8.0"
+ checksum: 10c0/46a94ba9678fc458ab0bee4a0af9f659f1d3f5df5bb98485924fe8ecbd46eda37d81f95f882243d56f0f5efe051b0749163f5056e48ff836c5fba648754d4956
+ languageName: node
+ linkType: hard
+
+"@ethersproject/bignumber@npm:5.8.0, @ethersproject/bignumber@npm:^5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/bignumber@npm:5.8.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.8.0"
+ "@ethersproject/logger": "npm:^5.8.0"
+ bn.js: "npm:^5.2.1"
+ checksum: 10c0/8e87fa96999d59d0ab4c814c79e3a8354d2ba914dfa78cf9ee688f53110473cec0df0db2aaf9d447e84ab2dbbfca39979abac4f2dac69fef4d080f4cc3e29613
+ languageName: node
+ linkType: hard
+
+"@ethersproject/bytes@npm:5.8.0, @ethersproject/bytes@npm:^5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/bytes@npm:5.8.0"
+ dependencies:
+ "@ethersproject/logger": "npm:^5.8.0"
+ checksum: 10c0/47ef798f3ab43b95dc74097b2c92365c919308ecabc3e34d9f8bf7f886fa4b99837ba5cf4dc8921baaaafe6899982f96b0e723b3fc49132c061f83d1ca3fed8b
+ languageName: node
+ linkType: hard
+
+"@ethersproject/constants@npm:5.8.0, @ethersproject/constants@npm:^5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/constants@npm:5.8.0"
+ dependencies:
+ "@ethersproject/bignumber": "npm:^5.8.0"
+ checksum: 10c0/374b3c2c6da24f8fef62e2316eae96faa462826c0774ef588cd7313ae7ddac8eb1bb85a28dad80123148be2ba0821c217c14ecfc18e2e683c72adc734b6248c9
+ languageName: node
+ linkType: hard
+
+"@ethersproject/contracts@npm:5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/contracts@npm:5.8.0"
+ dependencies:
+ "@ethersproject/abi": "npm:^5.8.0"
+ "@ethersproject/abstract-provider": "npm:^5.8.0"
+ "@ethersproject/abstract-signer": "npm:^5.8.0"
+ "@ethersproject/address": "npm:^5.8.0"
+ "@ethersproject/bignumber": "npm:^5.8.0"
+ "@ethersproject/bytes": "npm:^5.8.0"
+ "@ethersproject/constants": "npm:^5.8.0"
+ "@ethersproject/logger": "npm:^5.8.0"
+ "@ethersproject/properties": "npm:^5.8.0"
+ "@ethersproject/transactions": "npm:^5.8.0"
+ checksum: 10c0/49961b92334c4f2fab5f4da8f3119e97c1dc39cc8695e3043931757968213f5e732c00bf896193cf0186dcb33101dcd6efb70690dee0dd2cfbfd3843f55485aa
+ languageName: node
+ linkType: hard
+
+"@ethersproject/hash@npm:5.8.0, @ethersproject/hash@npm:^5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/hash@npm:5.8.0"
+ dependencies:
+ "@ethersproject/abstract-signer": "npm:^5.8.0"
+ "@ethersproject/address": "npm:^5.8.0"
+ "@ethersproject/base64": "npm:^5.8.0"
+ "@ethersproject/bignumber": "npm:^5.8.0"
+ "@ethersproject/bytes": "npm:^5.8.0"
+ "@ethersproject/keccak256": "npm:^5.8.0"
+ "@ethersproject/logger": "npm:^5.8.0"
+ "@ethersproject/properties": "npm:^5.8.0"
+ "@ethersproject/strings": "npm:^5.8.0"
+ checksum: 10c0/72a287d4d70fae716827587339ffb449b8c23ef8728db6f8a661f359f7cb1e5ffba5b693c55e09d4e7162bf56af4a0e98a334784e0706d98102d1a5786241537
+ languageName: node
+ linkType: hard
+
+"@ethersproject/hdnode@npm:5.8.0, @ethersproject/hdnode@npm:^5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/hdnode@npm:5.8.0"
+ dependencies:
+ "@ethersproject/abstract-signer": "npm:^5.8.0"
+ "@ethersproject/basex": "npm:^5.8.0"
+ "@ethersproject/bignumber": "npm:^5.8.0"
+ "@ethersproject/bytes": "npm:^5.8.0"
+ "@ethersproject/logger": "npm:^5.8.0"
+ "@ethersproject/pbkdf2": "npm:^5.8.0"
+ "@ethersproject/properties": "npm:^5.8.0"
+ "@ethersproject/sha2": "npm:^5.8.0"
+ "@ethersproject/signing-key": "npm:^5.8.0"
+ "@ethersproject/strings": "npm:^5.8.0"
+ "@ethersproject/transactions": "npm:^5.8.0"
+ "@ethersproject/wordlists": "npm:^5.8.0"
+ checksum: 10c0/da0ac7d60e76a76471be1f4f3bba3f28a24165dc3b63c6930a9ec24481e9f8b23936e5fc96363b3591cdfda4381d4623f25b06898b89bf5530b158cb5ea58fdd
+ languageName: node
+ linkType: hard
+
+"@ethersproject/json-wallets@npm:5.8.0, @ethersproject/json-wallets@npm:^5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/json-wallets@npm:5.8.0"
+ dependencies:
+ "@ethersproject/abstract-signer": "npm:^5.8.0"
+ "@ethersproject/address": "npm:^5.8.0"
+ "@ethersproject/bytes": "npm:^5.8.0"
+ "@ethersproject/hdnode": "npm:^5.8.0"
+ "@ethersproject/keccak256": "npm:^5.8.0"
+ "@ethersproject/logger": "npm:^5.8.0"
+ "@ethersproject/pbkdf2": "npm:^5.8.0"
+ "@ethersproject/properties": "npm:^5.8.0"
+ "@ethersproject/random": "npm:^5.8.0"
+ "@ethersproject/strings": "npm:^5.8.0"
+ "@ethersproject/transactions": "npm:^5.8.0"
+ aes-js: "npm:3.0.0"
+ scrypt-js: "npm:3.0.1"
+ checksum: 10c0/6c5cac87bdfac9ac47bf6ac25168a85865dc02e398e97f83820568c568a8cb27cf13a3a5d482f71a2534c7d704a3faa46023bb7ebe8737872b376bec1b66c67b
+ languageName: node
+ linkType: hard
+
+"@ethersproject/keccak256@npm:5.8.0, @ethersproject/keccak256@npm:^5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/keccak256@npm:5.8.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.8.0"
+ js-sha3: "npm:0.8.0"
+ checksum: 10c0/cd93ac6a5baf842313cde7de5e6e2c41feeea800db9e82955f96e7f3462d2ac6a6a29282b1c9e93b84ce7c91eec02347043c249fd037d6051214275bfc7fe99f
+ languageName: node
+ linkType: hard
+
+"@ethersproject/logger@npm:5.8.0, @ethersproject/logger@npm:^5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/logger@npm:5.8.0"
+ checksum: 10c0/7f39f33e8f254ee681d4778bb71ce3c5de248e1547666f85c43bfbc1c18996c49a31f969f056b66d23012f2420f2d39173107284bc41eb98d0482ace1d06403e
+ languageName: node
+ linkType: hard
+
+"@ethersproject/networks@npm:5.8.0, @ethersproject/networks@npm:^5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/networks@npm:5.8.0"
+ dependencies:
+ "@ethersproject/logger": "npm:^5.8.0"
+ checksum: 10c0/3f23bcc4c3843cc9b7e4b9f34df0a1f230b24dc87d51cdad84552302159a84d7899cd80c8a3d2cf8007b09ac373a5b10407007adde23d4c4881a4d6ee6bc4b9c
+ languageName: node
+ linkType: hard
+
+"@ethersproject/pbkdf2@npm:5.8.0, @ethersproject/pbkdf2@npm:^5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/pbkdf2@npm:5.8.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.8.0"
+ "@ethersproject/sha2": "npm:^5.8.0"
+ checksum: 10c0/0397cf5370cfd568743c3e46ac431f1bd425239baa2691689f1430997d44d310cef5051ea9ee53fabe444f96aced8d6324b41da698e8d7021389dce36251e7e9
+ languageName: node
+ linkType: hard
+
+"@ethersproject/properties@npm:5.8.0, @ethersproject/properties@npm:^5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/properties@npm:5.8.0"
+ dependencies:
+ "@ethersproject/logger": "npm:^5.8.0"
+ checksum: 10c0/20256d7eed65478a38dabdea4c3980c6591b7b75f8c45089722b032ceb0e1cd3dd6dd60c436cfe259337e6909c28d99528c172d06fc74bbd61be8eb9e68be2e6
+ languageName: node
+ linkType: hard
+
+"@ethersproject/providers@npm:5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/providers@npm:5.8.0"
+ dependencies:
+ "@ethersproject/abstract-provider": "npm:^5.8.0"
+ "@ethersproject/abstract-signer": "npm:^5.8.0"
+ "@ethersproject/address": "npm:^5.8.0"
+ "@ethersproject/base64": "npm:^5.8.0"
+ "@ethersproject/basex": "npm:^5.8.0"
+ "@ethersproject/bignumber": "npm:^5.8.0"
+ "@ethersproject/bytes": "npm:^5.8.0"
+ "@ethersproject/constants": "npm:^5.8.0"
+ "@ethersproject/hash": "npm:^5.8.0"
+ "@ethersproject/logger": "npm:^5.8.0"
+ "@ethersproject/networks": "npm:^5.8.0"
+ "@ethersproject/properties": "npm:^5.8.0"
+ "@ethersproject/random": "npm:^5.8.0"
+ "@ethersproject/rlp": "npm:^5.8.0"
+ "@ethersproject/sha2": "npm:^5.8.0"
+ "@ethersproject/strings": "npm:^5.8.0"
+ "@ethersproject/transactions": "npm:^5.8.0"
+ "@ethersproject/web": "npm:^5.8.0"
+ bech32: "npm:1.1.4"
+ ws: "npm:8.18.0"
+ checksum: 10c0/893dba429443bbf0a3eadef850e772ad1c706cf17ae6ae48b73467a23b614a3f461e9004850e24439b5c73d30e9259bc983f0f90a911ba11af749e6384fd355a
+ languageName: node
+ linkType: hard
+
+"@ethersproject/random@npm:5.8.0, @ethersproject/random@npm:^5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/random@npm:5.8.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.8.0"
+ "@ethersproject/logger": "npm:^5.8.0"
+ checksum: 10c0/e44c010715668fc29383141ae16cd2ec00c34a434d47e23338e740b8c97372515d95d3b809b969eab2055c19e92b985ca591d326fbb71270c26333215f9925d1
+ languageName: node
+ linkType: hard
+
+"@ethersproject/rlp@npm:5.8.0, @ethersproject/rlp@npm:^5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/rlp@npm:5.8.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.8.0"
+ "@ethersproject/logger": "npm:^5.8.0"
+ checksum: 10c0/db742ec9c1566d6441242cc2c2ae34c1e5304d48e1fe62bc4e53b1791f219df211e330d2de331e0e4f74482664e205c2e4220e76138bd71f1ec07884e7f5221b
+ languageName: node
+ linkType: hard
+
+"@ethersproject/sha2@npm:5.8.0, @ethersproject/sha2@npm:^5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/sha2@npm:5.8.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.8.0"
+ "@ethersproject/logger": "npm:^5.8.0"
+ hash.js: "npm:1.1.7"
+ checksum: 10c0/eab941907b7d40ee8436acaaedee32306ed4de2cb9ab37543bc89b1dd2a78f28c8da21efd848525fa1b04a78575be426cfca28f5392f4d28ce6c84e7c26a9421
+ languageName: node
+ linkType: hard
+
+"@ethersproject/signing-key@npm:5.8.0, @ethersproject/signing-key@npm:^5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/signing-key@npm:5.8.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.8.0"
+ "@ethersproject/logger": "npm:^5.8.0"
+ "@ethersproject/properties": "npm:^5.8.0"
+ bn.js: "npm:^5.2.1"
+ elliptic: "npm:6.6.1"
+ hash.js: "npm:1.1.7"
+ checksum: 10c0/a7ff6cd344b0609737a496b6d5b902cf5528ed5a7ce2c0db5e7b69dc491d1810d1d0cd51dddf9dc74dd562ab4961d76e982f1750359b834c53c202e85e4c8502
+ languageName: node
+ linkType: hard
+
+"@ethersproject/solidity@npm:5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/solidity@npm:5.8.0"
+ dependencies:
+ "@ethersproject/bignumber": "npm:^5.8.0"
+ "@ethersproject/bytes": "npm:^5.8.0"
+ "@ethersproject/keccak256": "npm:^5.8.0"
+ "@ethersproject/logger": "npm:^5.8.0"
+ "@ethersproject/sha2": "npm:^5.8.0"
+ "@ethersproject/strings": "npm:^5.8.0"
+ checksum: 10c0/5b5e0531bcec1d919cfbd261694694c8999ca5c379c1bb276ec779b896d299bb5db8ed7aa5652eb2c7605fe66455832b56ef123dec07f6ddef44231a7aa6fe6c
+ languageName: node
+ linkType: hard
+
+"@ethersproject/strings@npm:5.8.0, @ethersproject/strings@npm:^5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/strings@npm:5.8.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.8.0"
+ "@ethersproject/constants": "npm:^5.8.0"
+ "@ethersproject/logger": "npm:^5.8.0"
+ checksum: 10c0/6db39503c4be130110612b6d593a381c62657e41eebf4f553247ebe394fda32cdf74ff645daee7b7860d209fd02c7e909a95b1f39a2f001c662669b9dfe81d00
+ languageName: node
+ linkType: hard
+
+"@ethersproject/transactions@npm:5.8.0, @ethersproject/transactions@npm:^5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/transactions@npm:5.8.0"
+ dependencies:
+ "@ethersproject/address": "npm:^5.8.0"
+ "@ethersproject/bignumber": "npm:^5.8.0"
+ "@ethersproject/bytes": "npm:^5.8.0"
+ "@ethersproject/constants": "npm:^5.8.0"
+ "@ethersproject/keccak256": "npm:^5.8.0"
+ "@ethersproject/logger": "npm:^5.8.0"
+ "@ethersproject/properties": "npm:^5.8.0"
+ "@ethersproject/rlp": "npm:^5.8.0"
+ "@ethersproject/signing-key": "npm:^5.8.0"
+ checksum: 10c0/dd32f090df5945313aafa8430ce76834479750d6655cb786c3b65ec841c94596b14d3c8c59ee93eed7b4f32f27d321a9b8b43bc6bb51f7e1c6694f82639ffe68
+ languageName: node
+ linkType: hard
+
+"@ethersproject/units@npm:5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/units@npm:5.8.0"
+ dependencies:
+ "@ethersproject/bignumber": "npm:^5.8.0"
+ "@ethersproject/constants": "npm:^5.8.0"
+ "@ethersproject/logger": "npm:^5.8.0"
+ checksum: 10c0/5f92b8379a58024078fce6a4cbf7323cfd79bc41ef8f0a7bbf8be9c816ce18783140ab0d5c8d34ed615639aef7fc3a2ed255e92809e3558a510c4f0d49e27309
+ languageName: node
+ linkType: hard
+
+"@ethersproject/wallet@npm:5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/wallet@npm:5.8.0"
+ dependencies:
+ "@ethersproject/abstract-provider": "npm:^5.8.0"
+ "@ethersproject/abstract-signer": "npm:^5.8.0"
+ "@ethersproject/address": "npm:^5.8.0"
+ "@ethersproject/bignumber": "npm:^5.8.0"
+ "@ethersproject/bytes": "npm:^5.8.0"
+ "@ethersproject/hash": "npm:^5.8.0"
+ "@ethersproject/hdnode": "npm:^5.8.0"
+ "@ethersproject/json-wallets": "npm:^5.8.0"
+ "@ethersproject/keccak256": "npm:^5.8.0"
+ "@ethersproject/logger": "npm:^5.8.0"
+ "@ethersproject/properties": "npm:^5.8.0"
+ "@ethersproject/random": "npm:^5.8.0"
+ "@ethersproject/signing-key": "npm:^5.8.0"
+ "@ethersproject/transactions": "npm:^5.8.0"
+ "@ethersproject/wordlists": "npm:^5.8.0"
+ checksum: 10c0/6da450872dda3d9008bad3ccf8467816a63429241e51c66627647123c0fe5625494c4f6c306e098eb8419cc5702ac017d41f5161af5ff670a41fe5d199883c09
+ languageName: node
+ linkType: hard
+
+"@ethersproject/web@npm:5.8.0, @ethersproject/web@npm:^5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/web@npm:5.8.0"
+ dependencies:
+ "@ethersproject/base64": "npm:^5.8.0"
+ "@ethersproject/bytes": "npm:^5.8.0"
+ "@ethersproject/logger": "npm:^5.8.0"
+ "@ethersproject/properties": "npm:^5.8.0"
+ "@ethersproject/strings": "npm:^5.8.0"
+ checksum: 10c0/e3cd547225638db6e94fcd890001c778d77adb0d4f11a7f8c447e961041678f3fbfaffe77a962c7aa3f6597504232442e7015f2335b1788508a108708a30308a
+ languageName: node
+ linkType: hard
+
+"@ethersproject/wordlists@npm:5.8.0, @ethersproject/wordlists@npm:^5.8.0":
+ version: 5.8.0
+ resolution: "@ethersproject/wordlists@npm:5.8.0"
+ dependencies:
+ "@ethersproject/bytes": "npm:^5.8.0"
+ "@ethersproject/hash": "npm:^5.8.0"
+ "@ethersproject/logger": "npm:^5.8.0"
+ "@ethersproject/properties": "npm:^5.8.0"
+ "@ethersproject/strings": "npm:^5.8.0"
+ checksum: 10c0/e230a2ba075006bc3a2538e096003e43ef9ba453317f37a4d99638720487ec447c1fa61a592c80483f8a8ad6466511cf4cf5c49cf84464a1679999171ce311f4
+ languageName: node
+ linkType: hard
+
+"@floating-ui/core@npm:^1.6.0":
+ version: 1.6.8
+ resolution: "@floating-ui/core@npm:1.6.8"
+ dependencies:
+ "@floating-ui/utils": "npm:^0.2.8"
+ checksum: 10c0/d6985462aeccae7b55a2d3f40571551c8c42bf820ae0a477fc40ef462e33edc4f3f5b7f11b100de77c9b58ecb581670c5c3f46d0af82b5e30aa185c735257eb9
+ languageName: node
+ linkType: hard
+
+"@floating-ui/dom@npm:^1.0.0":
+ version: 1.6.12
+ resolution: "@floating-ui/dom@npm:1.6.12"
+ dependencies:
+ "@floating-ui/core": "npm:^1.6.0"
+ "@floating-ui/utils": "npm:^0.2.8"
+ checksum: 10c0/c67b39862175b175c6ac299ea970f17a22c7482cfdf3b1bc79313407bf0880188b022b878953fa69d3ce166ff2bd9ae57c86043e5dd800c262b470d877591b7d
+ languageName: node
+ linkType: hard
+
+"@floating-ui/react-dom@npm:^2.0.0":
+ version: 2.1.2
+ resolution: "@floating-ui/react-dom@npm:2.1.2"
+ dependencies:
+ "@floating-ui/dom": "npm:^1.0.0"
+ peerDependencies:
+ react: ">=16.8.0"
+ react-dom: ">=16.8.0"
+ checksum: 10c0/e855131c74e68cab505f7f44f92cd4e2efab1c125796db3116c54c0859323adae4bf697bf292ee83ac77b9335a41ad67852193d7aeace90aa2e1c4a640cafa60
+ languageName: node
+ linkType: hard
+
+"@floating-ui/utils@npm:^0.2.8":
+ version: 0.2.8
+ resolution: "@floating-ui/utils@npm:0.2.8"
+ checksum: 10c0/a8cee5f17406c900e1c3ef63e3ca89b35e7a2ed645418459a73627b93b7377477fc888081011c6cd177cac45ec2b92a6cab018c14ea140519465498dddd2d3f9
+ languageName: node
+ linkType: hard
+
+"@formatjs/ecma402-abstract@npm:2.2.4":
+ version: 2.2.4
+ resolution: "@formatjs/ecma402-abstract@npm:2.2.4"
+ dependencies:
+ "@formatjs/fast-memoize": "npm:2.2.3"
+ "@formatjs/intl-localematcher": "npm:0.5.8"
+ tslib: "npm:2"
+ checksum: 10c0/3f262533fa704ea7a1a7a8107deee2609774a242c621f8cb5dd4bf4c97abf2fc12f5aeda3f4ce85be18147c484a0ca87303dca6abef53290717e685c55eabd2d
+ languageName: node
+ linkType: hard
+
+"@formatjs/fast-memoize@npm:2.2.3, @formatjs/fast-memoize@npm:^2.2.0":
+ version: 2.2.3
+ resolution: "@formatjs/fast-memoize@npm:2.2.3"
+ dependencies:
+ tslib: "npm:2"
+ checksum: 10c0/f1004c3b280de7e362bd37c5f48ff34c2ba1d6271d4a7b695fed561d1201a3379397824d8bffbf15fecee344d1e70398393bbb04297f242692310a305f12e75b
+ languageName: node
+ linkType: hard
+
+"@formatjs/icu-messageformat-parser@npm:2.9.4":
+ version: 2.9.4
+ resolution: "@formatjs/icu-messageformat-parser@npm:2.9.4"
+ dependencies:
+ "@formatjs/ecma402-abstract": "npm:2.2.4"
+ "@formatjs/icu-skeleton-parser": "npm:1.8.8"
+ tslib: "npm:2"
+ checksum: 10c0/f1ed14ece7ef0abc9fb62e323b78c994fc772d346801ad5aaa9555e1a7d5c0fda791345f4f2e53a3223f0b82c1a4eaf9a83544c1c20cb39349d1a39bedcf1648
+ languageName: node
+ linkType: hard
+
+"@formatjs/icu-skeleton-parser@npm:1.8.8":
+ version: 1.8.8
+ resolution: "@formatjs/icu-skeleton-parser@npm:1.8.8"
+ dependencies:
+ "@formatjs/ecma402-abstract": "npm:2.2.4"
+ tslib: "npm:2"
+ checksum: 10c0/5ad78a5682e83b973e6fed4fca68660b944c41d1e941f0c84d69ff3d10ae835330062dc0a2cf0d237d2675ad3463405061a3963c14c2b9d8d1c1911f892b1a8d
+ languageName: node
+ linkType: hard
+
+"@formatjs/intl-localematcher@npm:0.5.8, @formatjs/intl-localematcher@npm:^0.5.4":
+ version: 0.5.8
+ resolution: "@formatjs/intl-localematcher@npm:0.5.8"
+ dependencies:
+ tslib: "npm:2"
+ checksum: 10c0/7a660263986326b662d4cb537e8386331c34fda61fb830b105e6c62d49be58ace40728dae614883b27a41cec7b1df8b44f72f79e16e6028bfca65d398dc04f3b
+ languageName: node
+ linkType: hard
+
+"@img/sharp-darwin-arm64@npm:0.34.2":
+ version: 0.34.2
+ resolution: "@img/sharp-darwin-arm64@npm:0.34.2"
+ dependencies:
+ "@img/sharp-libvips-darwin-arm64": "npm:1.1.0"
+ dependenciesMeta:
+ "@img/sharp-libvips-darwin-arm64":
+ optional: true
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@img/sharp-darwin-x64@npm:0.34.2":
+ version: 0.34.2
+ resolution: "@img/sharp-darwin-x64@npm:0.34.2"
+ dependencies:
+ "@img/sharp-libvips-darwin-x64": "npm:1.1.0"
+ dependenciesMeta:
+ "@img/sharp-libvips-darwin-x64":
+ optional: true
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@img/sharp-libvips-darwin-arm64@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@img/sharp-libvips-darwin-arm64@npm:1.1.0"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@img/sharp-libvips-darwin-x64@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@img/sharp-libvips-darwin-x64@npm:1.1.0"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@img/sharp-libvips-linux-arm64@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@img/sharp-libvips-linux-arm64@npm:1.1.0"
+ conditions: os=linux & cpu=arm64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@img/sharp-libvips-linux-arm@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@img/sharp-libvips-linux-arm@npm:1.1.0"
+ conditions: os=linux & cpu=arm & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@img/sharp-libvips-linux-ppc64@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@img/sharp-libvips-linux-ppc64@npm:1.1.0"
+ conditions: os=linux & cpu=ppc64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@img/sharp-libvips-linux-s390x@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@img/sharp-libvips-linux-s390x@npm:1.1.0"
+ conditions: os=linux & cpu=s390x & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@img/sharp-libvips-linux-x64@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@img/sharp-libvips-linux-x64@npm:1.1.0"
+ conditions: os=linux & cpu=x64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@img/sharp-libvips-linuxmusl-arm64@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@img/sharp-libvips-linuxmusl-arm64@npm:1.1.0"
+ conditions: os=linux & cpu=arm64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@img/sharp-libvips-linuxmusl-x64@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@img/sharp-libvips-linuxmusl-x64@npm:1.1.0"
+ conditions: os=linux & cpu=x64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@img/sharp-linux-arm64@npm:0.34.2":
+ version: 0.34.2
+ resolution: "@img/sharp-linux-arm64@npm:0.34.2"
+ dependencies:
+ "@img/sharp-libvips-linux-arm64": "npm:1.1.0"
+ dependenciesMeta:
+ "@img/sharp-libvips-linux-arm64":
+ optional: true
+ conditions: os=linux & cpu=arm64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@img/sharp-linux-arm@npm:0.34.2":
+ version: 0.34.2
+ resolution: "@img/sharp-linux-arm@npm:0.34.2"
+ dependencies:
+ "@img/sharp-libvips-linux-arm": "npm:1.1.0"
+ dependenciesMeta:
+ "@img/sharp-libvips-linux-arm":
+ optional: true
+ conditions: os=linux & cpu=arm & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@img/sharp-linux-s390x@npm:0.34.2":
+ version: 0.34.2
+ resolution: "@img/sharp-linux-s390x@npm:0.34.2"
+ dependencies:
+ "@img/sharp-libvips-linux-s390x": "npm:1.1.0"
+ dependenciesMeta:
+ "@img/sharp-libvips-linux-s390x":
+ optional: true
+ conditions: os=linux & cpu=s390x & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@img/sharp-linux-x64@npm:0.34.2":
+ version: 0.34.2
+ resolution: "@img/sharp-linux-x64@npm:0.34.2"
+ dependencies:
+ "@img/sharp-libvips-linux-x64": "npm:1.1.0"
+ dependenciesMeta:
+ "@img/sharp-libvips-linux-x64":
+ optional: true
+ conditions: os=linux & cpu=x64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@img/sharp-linuxmusl-arm64@npm:0.34.2":
+ version: 0.34.2
+ resolution: "@img/sharp-linuxmusl-arm64@npm:0.34.2"
+ dependencies:
+ "@img/sharp-libvips-linuxmusl-arm64": "npm:1.1.0"
+ dependenciesMeta:
+ "@img/sharp-libvips-linuxmusl-arm64":
+ optional: true
+ conditions: os=linux & cpu=arm64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@img/sharp-linuxmusl-x64@npm:0.34.2":
+ version: 0.34.2
+ resolution: "@img/sharp-linuxmusl-x64@npm:0.34.2"
+ dependencies:
+ "@img/sharp-libvips-linuxmusl-x64": "npm:1.1.0"
+ dependenciesMeta:
+ "@img/sharp-libvips-linuxmusl-x64":
+ optional: true
+ conditions: os=linux & cpu=x64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@img/sharp-wasm32@npm:0.34.2":
+ version: 0.34.2
+ resolution: "@img/sharp-wasm32@npm:0.34.2"
+ dependencies:
+ "@emnapi/runtime": "npm:^1.4.3"
+ conditions: cpu=wasm32
+ languageName: node
+ linkType: hard
+
+"@img/sharp-win32-arm64@npm:0.34.2":
+ version: 0.34.2
+ resolution: "@img/sharp-win32-arm64@npm:0.34.2"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@img/sharp-win32-ia32@npm:0.34.2":
+ version: 0.34.2
+ resolution: "@img/sharp-win32-ia32@npm:0.34.2"
+ conditions: os=win32 & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"@img/sharp-win32-x64@npm:0.34.2":
+ version: 0.34.2
+ resolution: "@img/sharp-win32-x64@npm:0.34.2"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@isaacs/cliui@npm:^8.0.2":
+ version: 8.0.2
+ resolution: "@isaacs/cliui@npm:8.0.2"
+ dependencies:
+ string-width: "npm:^5.1.2"
+ string-width-cjs: "npm:string-width@^4.2.0"
+ strip-ansi: "npm:^7.0.1"
+ strip-ansi-cjs: "npm:strip-ansi@^6.0.1"
+ wrap-ansi: "npm:^8.1.0"
+ wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0"
+ checksum: 10c0/b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e
+ languageName: node
+ linkType: hard
+
+"@jridgewell/gen-mapping@npm:^0.3.2":
+ version: 0.3.5
+ resolution: "@jridgewell/gen-mapping@npm:0.3.5"
+ dependencies:
+ "@jridgewell/set-array": "npm:^1.2.1"
+ "@jridgewell/sourcemap-codec": "npm:^1.4.10"
+ "@jridgewell/trace-mapping": "npm:^0.3.24"
+ checksum: 10c0/1be4fd4a6b0f41337c4f5fdf4afc3bd19e39c3691924817108b82ffcb9c9e609c273f936932b9fba4b3a298ce2eb06d9bff4eb1cc3bd81c4f4ee1b4917e25feb
+ languageName: node
+ linkType: hard
+
+"@jridgewell/resolve-uri@npm:^3.1.0":
+ version: 3.1.2
+ resolution: "@jridgewell/resolve-uri@npm:3.1.2"
+ checksum: 10c0/d502e6fb516b35032331406d4e962c21fe77cdf1cbdb49c6142bcbd9e30507094b18972778a6e27cbad756209cfe34b1a27729e6fa08a2eb92b33943f680cf1e
+ languageName: node
+ linkType: hard
+
+"@jridgewell/set-array@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "@jridgewell/set-array@npm:1.2.1"
+ checksum: 10c0/2a5aa7b4b5c3464c895c802d8ae3f3d2b92fcbe84ad12f8d0bfbb1f5ad006717e7577ee1fd2eac00c088abe486c7adb27976f45d2941ff6b0b92b2c3302c60f4
+ languageName: node
+ linkType: hard
+
+"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14":
+ version: 1.5.0
+ resolution: "@jridgewell/sourcemap-codec@npm:1.5.0"
+ checksum: 10c0/2eb864f276eb1096c3c11da3e9bb518f6d9fc0023c78344cdc037abadc725172c70314bdb360f2d4b7bffec7f5d657ce006816bc5d4ecb35e61b66132db00c18
+ languageName: node
+ linkType: hard
+
+"@jridgewell/trace-mapping@npm:^0.3.24":
+ version: 0.3.25
+ resolution: "@jridgewell/trace-mapping@npm:0.3.25"
+ dependencies:
+ "@jridgewell/resolve-uri": "npm:^3.1.0"
+ "@jridgewell/sourcemap-codec": "npm:^1.4.14"
+ checksum: 10c0/3d1ce6ebc69df9682a5a8896b414c6537e428a1d68b02fcc8363b04284a8ca0df04d0ee3013132252ab14f2527bc13bea6526a912ecb5658f0e39fd2860b4df4
+ languageName: node
+ linkType: hard
+
+"@kleros/kleros-sdk@npm:2.3.1":
+ version: 2.3.1
+ resolution: "@kleros/kleros-sdk@npm:2.3.1"
+ dependencies:
+ "@reality.eth/reality-eth-lib": "npm:^3.2.60"
+ "@urql/core": "npm:^5.0.8"
+ mustache: "npm:^4.2.0"
+ zod: "npm:^3.23.8"
+ peerDependencies:
+ viem: ^2.21.48
+ checksum: 10c0/93578bcd286ccbc310df1bc37819cc39801df696321be16a4e482d5fe54bcba3969c26c26df91fca1d4c3db707e004d9acf17a3b70c732ca4f90eeeda5f8c2a8
+ languageName: node
+ linkType: hard
+
+"@next/env@npm:15.3.3":
+ version: 15.3.3
+ resolution: "@next/env@npm:15.3.3"
+ checksum: 10c0/b47ef78c4194900f52a274270932a633ba21f39377fc6ad478839c3c1e3fffccb8ad25b286a1beb11f91fe9d09a299087ccb9c205a4e610ad95af65f24e49e5a
+ languageName: node
+ linkType: hard
+
+"@next/swc-darwin-arm64@npm:15.3.3":
+ version: 15.3.3
+ resolution: "@next/swc-darwin-arm64@npm:15.3.3"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@next/swc-darwin-x64@npm:15.3.3":
+ version: 15.3.3
+ resolution: "@next/swc-darwin-x64@npm:15.3.3"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@next/swc-linux-arm64-gnu@npm:15.3.3":
+ version: 15.3.3
+ resolution: "@next/swc-linux-arm64-gnu@npm:15.3.3"
+ conditions: os=linux & cpu=arm64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@next/swc-linux-arm64-musl@npm:15.3.3":
+ version: 15.3.3
+ resolution: "@next/swc-linux-arm64-musl@npm:15.3.3"
+ conditions: os=linux & cpu=arm64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@next/swc-linux-x64-gnu@npm:15.3.3":
+ version: 15.3.3
+ resolution: "@next/swc-linux-x64-gnu@npm:15.3.3"
+ conditions: os=linux & cpu=x64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@next/swc-linux-x64-musl@npm:15.3.3":
+ version: 15.3.3
+ resolution: "@next/swc-linux-x64-musl@npm:15.3.3"
+ conditions: os=linux & cpu=x64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@next/swc-win32-arm64-msvc@npm:15.3.3":
+ version: 15.3.3
+ resolution: "@next/swc-win32-arm64-msvc@npm:15.3.3"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@next/swc-win32-x64-msvc@npm:15.3.3":
+ version: 15.3.3
+ resolution: "@next/swc-win32-x64-msvc@npm:15.3.3"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@noble/curves@npm:1.8.1, @noble/curves@npm:~1.8.1":
+ version: 1.8.1
+ resolution: "@noble/curves@npm:1.8.1"
+ dependencies:
+ "@noble/hashes": "npm:1.7.1"
+ checksum: 10c0/84902c7af93338373a95d833f77981113e81c48d4bec78f22f63f1f7fdd893bc1d3d7a3ee78f01b9a8ad3dec812a1232866bf2ccbeb2b1560492e5e7d690ab1f
+ languageName: node
+ linkType: hard
+
+"@noble/curves@npm:^1.6.0, @noble/curves@npm:~1.7.0":
+ version: 1.7.0
+ resolution: "@noble/curves@npm:1.7.0"
+ dependencies:
+ "@noble/hashes": "npm:1.6.0"
+ checksum: 10c0/3317ec9b7699d2476707a89ceb3ddce60e69bac287561a31dd533669408633e093860fea5067eb9c54e5a7ced0705da1cba8859b6b1e0c48d3afff55fe2e77d0
+ languageName: node
+ linkType: hard
+
+"@noble/hashes@npm:1.6.0":
+ version: 1.6.0
+ resolution: "@noble/hashes@npm:1.6.0"
+ checksum: 10c0/e7e75898257fb36d933935fcdf1cc67ca7c083eb7b2411aa57fde7eb494c2cea0bec03686462032e25d5b0e1e4ab7357d1afb6718f6a68515db1f392141e9f14
+ languageName: node
+ linkType: hard
+
+"@noble/hashes@npm:1.7.1, @noble/hashes@npm:~1.7.1":
+ version: 1.7.1
+ resolution: "@noble/hashes@npm:1.7.1"
+ checksum: 10c0/2f8ec0338ccc92b576a0f5c16ab9c017a3a494062f1fbb569ae641c5e7eab32072f9081acaa96b5048c0898f972916c818ea63cbedda707886a4b5ffcfbf94e3
+ languageName: node
+ linkType: hard
+
+"@noble/hashes@npm:^1.5.0, @noble/hashes@npm:~1.6.0":
+ version: 1.6.1
+ resolution: "@noble/hashes@npm:1.6.1"
+ checksum: 10c0/27643cd8b551bc933b57cc29aa8c8763d586552fc4c3e06ecf7897f55be3463c0c9dff7f6ebacd88e5ce6d0cdb5415ca4874d0cf4359b5ea4a85be21ada03aab
+ languageName: node
+ linkType: hard
+
+"@nodelib/fs.scandir@npm:2.1.5":
+ version: 2.1.5
+ resolution: "@nodelib/fs.scandir@npm:2.1.5"
+ dependencies:
+ "@nodelib/fs.stat": "npm:2.0.5"
+ run-parallel: "npm:^1.1.9"
+ checksum: 10c0/732c3b6d1b1e967440e65f284bd06e5821fedf10a1bea9ed2bb75956ea1f30e08c44d3def9d6a230666574edbaf136f8cfd319c14fd1f87c66e6a44449afb2eb
+ languageName: node
+ linkType: hard
+
+"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2":
+ version: 2.0.5
+ resolution: "@nodelib/fs.stat@npm:2.0.5"
+ checksum: 10c0/88dafe5e3e29a388b07264680dc996c17f4bda48d163a9d4f5c1112979f0ce8ec72aa7116122c350b4e7976bc5566dc3ddb579be1ceaacc727872eb4ed93926d
+ languageName: node
+ linkType: hard
+
+"@nodelib/fs.walk@npm:^1.2.3":
+ version: 1.2.8
+ resolution: "@nodelib/fs.walk@npm:1.2.8"
+ dependencies:
+ "@nodelib/fs.scandir": "npm:2.1.5"
+ fastq: "npm:^1.6.0"
+ checksum: 10c0/db9de047c3bb9b51f9335a7bb46f4fcfb6829fb628318c12115fbaf7d369bfce71c15b103d1fc3b464812d936220ee9bc1c8f762d032c9f6be9acc99249095b1
+ languageName: node
+ linkType: hard
+
+"@npmcli/agent@npm:^2.0.0":
+ version: 2.2.2
+ resolution: "@npmcli/agent@npm:2.2.2"
+ dependencies:
+ agent-base: "npm:^7.1.0"
+ http-proxy-agent: "npm:^7.0.0"
+ https-proxy-agent: "npm:^7.0.1"
+ lru-cache: "npm:^10.0.1"
+ socks-proxy-agent: "npm:^8.0.3"
+ checksum: 10c0/325e0db7b287d4154ecd164c0815c08007abfb07653cc57bceded17bb7fd240998a3cbdbe87d700e30bef494885eccc725ab73b668020811d56623d145b524ae
+ languageName: node
+ linkType: hard
+
+"@npmcli/fs@npm:^3.1.0":
+ version: 3.1.1
+ resolution: "@npmcli/fs@npm:3.1.1"
+ dependencies:
+ semver: "npm:^7.3.5"
+ checksum: 10c0/c37a5b4842bfdece3d14dfdb054f73fe15ed2d3da61b34ff76629fb5b1731647c49166fd2a8bf8b56fcfa51200382385ea8909a3cbecdad612310c114d3f6c99
+ languageName: node
+ linkType: hard
+
+"@pkgjs/parseargs@npm:^0.11.0":
+ version: 0.11.0
+ resolution: "@pkgjs/parseargs@npm:0.11.0"
+ checksum: 10c0/5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd
+ languageName: node
+ linkType: hard
+
+"@radix-ui/primitive@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/primitive@npm:1.1.0"
+ checksum: 10c0/1dcc8b5401799416ff8bdb15c7189b4536c193220ad8fd348a48b88f804ee38cec7bd03e2b9641f7da24610e2f61f23a306911ce883af92c4e8c1abac634cb61
+ languageName: node
+ linkType: hard
+
+"@radix-ui/primitive@npm:1.1.3":
+ version: 1.1.3
+ resolution: "@radix-ui/primitive@npm:1.1.3"
+ checksum: 10c0/88860165ee7066fa2c179f32ffcd3ee6d527d9dcdc0e8be85e9cb0e2c84834be8e3c1a976c74ba44b193f709544e12f54455d892b28e32f0708d89deda6b9f1d
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-arrow@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-arrow@npm:1.1.0"
+ dependencies:
+ "@radix-ui/react-primitive": "npm: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
+ checksum: 10c0/cbe059dfa5a9c1677478d363bb5fd75b0c7a08221d0ac7f8e7b9aec9dbae9754f6a3518218cf63e4ed53df6c36d193c8d2618d03433a37aa0cb7ee77a60a591f
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-arrow@npm:1.1.7":
+ version: 1.1.7
+ resolution: "@radix-ui/react-arrow@npm:1.1.7"
+ dependencies:
+ "@radix-ui/react-primitive": "npm:2.1.3"
+ 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
+ checksum: 10c0/c3b46766238b3ee2a394d8806a5141432361bf1425110c9f0dcf480bda4ebd304453a53f294b5399c6ee3ccfcae6fd544921fd01ddc379cf5942acdd7168664b
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-collection@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-collection@npm:1.1.0"
+ dependencies:
+ "@radix-ui/react-compose-refs": "npm:1.1.0"
+ "@radix-ui/react-context": "npm:1.1.0"
+ "@radix-ui/react-primitive": "npm:2.0.0"
+ "@radix-ui/react-slot": "npm: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
+ checksum: 10c0/fecb9f0871c827070a8794b39c7379fdc7d0855c4b05804f0b395eef39c37b2c2b6779865d6cb35d3bc74b6b380107bd8b3754d1730a34ea88913e6cd0eb84d4
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-collection@npm:1.1.7":
+ version: 1.1.7
+ resolution: "@radix-ui/react-collection@npm:1.1.7"
+ dependencies:
+ "@radix-ui/react-compose-refs": "npm:1.1.2"
+ "@radix-ui/react-context": "npm:1.1.2"
+ "@radix-ui/react-primitive": "npm:2.1.3"
+ "@radix-ui/react-slot": "npm:1.2.3"
+ 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
+ checksum: 10c0/fa321a7300095508491f75414f02b243f0c3f179dc0728cfd115e2ea9f6f48f1516532b59f526d9ac81bbab63cd98a052074b4703ec0b9428fac945ebabec5fd
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-compose-refs@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-compose-refs@npm:1.1.0"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/7e18706084397d9458ca3473d8565b10691da06f6499a78edbcc4bd72cde08f62e91120658d17d58c19fc39d6b1dffe0133cc4535c8f5fce470abd478f6107e5
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-compose-refs@npm:1.1.2":
+ version: 1.1.2
+ resolution: "@radix-ui/react-compose-refs@npm:1.1.2"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/d36a9c589eb75d634b9b139c80f916aadaf8a68a7c1c4b8c6c6b88755af1a92f2e343457042089f04cc3f23073619d08bb65419ced1402e9d4e299576d970771
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-context@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-context@npm:1.1.0"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/c843980f568cc61b512708863ec84c42a02e0f88359b22ad1c0e290cea3e6d7618eccbd2cd37bd974fadaa7636cbed5bda27553722e61197eb53852eaa34f1bb
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-context@npm:1.1.1":
+ version: 1.1.1
+ resolution: "@radix-ui/react-context@npm:1.1.1"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/fc4ace9d79d7954c715ade765e06c95d7e1b12a63a536bcbe842fb904f03f88fc5bd6e38d44bd23243d37a270b4c44380fedddaeeae2d274f0b898a20665aba2
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-context@npm:1.1.2":
+ version: 1.1.2
+ resolution: "@radix-ui/react-context@npm:1.1.2"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/cece731f8cc25d494c6589cc681e5c01a93867d895c75889973afa1a255f163c286e390baa7bc028858eaabe9f6b57270d0ca6377356f652c5557c1c7a41ccce
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-direction@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-direction@npm:1.1.0"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/eb07d8cc3ae2388b824e0a11ae0e3b71fb0c49972b506e249cec9f27a5b7ef4305ee668c98b674833c92e842163549a83beb0a197dec1ec65774bdeeb61f932c
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-dismissable-layer@npm:1.1.1":
+ version: 1.1.1
+ resolution: "@radix-ui/react-dismissable-layer@npm:1.1.1"
+ dependencies:
+ "@radix-ui/primitive": "npm:1.1.0"
+ "@radix-ui/react-compose-refs": "npm:1.1.0"
+ "@radix-ui/react-primitive": "npm:2.0.0"
+ "@radix-ui/react-use-callback-ref": "npm:1.1.0"
+ "@radix-ui/react-use-escape-keydown": "npm: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
+ checksum: 10c0/637f8d55437bd2269d5aa9fa48e869eade31082cd950b5efcc5f0d9ed016b46feb7fcfcc115ba9972dba68c4686b57873d84aca67ece76ab77463e7de995f6da
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-dismissable-layer@npm:1.1.11":
+ version: 1.1.11
+ resolution: "@radix-ui/react-dismissable-layer@npm:1.1.11"
+ dependencies:
+ "@radix-ui/primitive": "npm:1.1.3"
+ "@radix-ui/react-compose-refs": "npm:1.1.2"
+ "@radix-ui/react-primitive": "npm:2.1.3"
+ "@radix-ui/react-use-callback-ref": "npm:1.1.1"
+ "@radix-ui/react-use-escape-keydown": "npm:1.1.1"
+ 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
+ checksum: 10c0/c825572a64073c4d3853702029979f6658770ffd6a98eabc4984e1dee1b226b4078a2a4dc7003f96475b438985e9b21a58e75f51db74dd06848dcae1f2d395dc
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-dropdown-menu@npm:^2.1.2":
+ version: 2.1.2
+ resolution: "@radix-ui/react-dropdown-menu@npm:2.1.2"
+ dependencies:
+ "@radix-ui/primitive": "npm:1.1.0"
+ "@radix-ui/react-compose-refs": "npm:1.1.0"
+ "@radix-ui/react-context": "npm:1.1.1"
+ "@radix-ui/react-id": "npm:1.1.0"
+ "@radix-ui/react-menu": "npm:2.1.2"
+ "@radix-ui/react-primitive": "npm:2.0.0"
+ "@radix-ui/react-use-controllable-state": "npm: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
+ checksum: 10c0/28e84cb116a34c3a73cd9be774170fc920fad6254c1ce285e8e3d86e33c02011229adc5590e385a42106b41bced23e0a482e884e6894e37f68d7e87c76171279
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-focus-guards@npm:1.1.1":
+ version: 1.1.1
+ resolution: "@radix-ui/react-focus-guards@npm:1.1.1"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/2e99750ca593083a530542a185d656b45b100752353a7a193a67566e3c256414a76fa9171d152f8c0167b8d6c1fdf62b2e07750d7af2974bf8ef39eb204aa537
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-focus-scope@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-focus-scope@npm:1.1.0"
+ dependencies:
+ "@radix-ui/react-compose-refs": "npm:1.1.0"
+ "@radix-ui/react-primitive": "npm:2.0.0"
+ "@radix-ui/react-use-callback-ref": "npm: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
+ checksum: 10c0/2593d4bbd4a3525624675ec1d5a591a44f015f43f449b99a5a33228159b83f445e8f1c6bc6f9f2011387abaeadd3df406623c08d4e795b7ae509795652a1d069
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-id@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-id@npm:1.1.0"
+ dependencies:
+ "@radix-ui/react-use-layout-effect": "npm:1.1.0"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/acf13e29e51ee96336837fc0cfecc306328b20b0e0070f6f0f7aa7a621ded4a1ee5537cfad58456f64bae76caa7f8769231e88dc7dc106197347ee433c275a79
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-id@npm:1.1.1":
+ version: 1.1.1
+ resolution: "@radix-ui/react-id@npm:1.1.1"
+ dependencies:
+ "@radix-ui/react-use-layout-effect": "npm:1.1.1"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/7d12e76818763d592c331277ef62b197e2e64945307e650bd058f0090e5ae48bbd07691b23b7e9e977901ef4eadcb3e2d5eaeb17a13859083384be83fc1292c7
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-menu@npm:2.1.2":
+ version: 2.1.2
+ resolution: "@radix-ui/react-menu@npm:2.1.2"
+ dependencies:
+ "@radix-ui/primitive": "npm:1.1.0"
+ "@radix-ui/react-collection": "npm:1.1.0"
+ "@radix-ui/react-compose-refs": "npm:1.1.0"
+ "@radix-ui/react-context": "npm:1.1.1"
+ "@radix-ui/react-direction": "npm:1.1.0"
+ "@radix-ui/react-dismissable-layer": "npm:1.1.1"
+ "@radix-ui/react-focus-guards": "npm:1.1.1"
+ "@radix-ui/react-focus-scope": "npm:1.1.0"
+ "@radix-ui/react-id": "npm:1.1.0"
+ "@radix-ui/react-popper": "npm:1.2.0"
+ "@radix-ui/react-portal": "npm:1.1.2"
+ "@radix-ui/react-presence": "npm:1.1.1"
+ "@radix-ui/react-primitive": "npm:2.0.0"
+ "@radix-ui/react-roving-focus": "npm:1.1.0"
+ "@radix-ui/react-slot": "npm:1.1.0"
+ "@radix-ui/react-use-callback-ref": "npm:1.1.0"
+ aria-hidden: "npm:^1.1.1"
+ react-remove-scroll: "npm: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
+ checksum: 10c0/4259f6fbc63048d58bffab443abda9b56ea6b0a28f1e4ae91787a360b9a31e7604de06c8fc70be861c1aaa7abff2858c9314aa3fffbc375c27b0c9aa219a51af
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-popper@npm:1.2.0":
+ version: 1.2.0
+ resolution: "@radix-ui/react-popper@npm:1.2.0"
+ dependencies:
+ "@floating-ui/react-dom": "npm:^2.0.0"
+ "@radix-ui/react-arrow": "npm:1.1.0"
+ "@radix-ui/react-compose-refs": "npm:1.1.0"
+ "@radix-ui/react-context": "npm:1.1.0"
+ "@radix-ui/react-primitive": "npm:2.0.0"
+ "@radix-ui/react-use-callback-ref": "npm:1.1.0"
+ "@radix-ui/react-use-layout-effect": "npm:1.1.0"
+ "@radix-ui/react-use-rect": "npm:1.1.0"
+ "@radix-ui/react-use-size": "npm:1.1.0"
+ "@radix-ui/rect": "npm: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
+ checksum: 10c0/a78ea534b9822d07153fff0895b6cdf742e7213782b140b3ab94a76df0ca70e6001925aea946e99ca680fc63a7fcca49c1d62e8dc5a2f651692fba3541e180c0
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-popper@npm:1.2.8":
+ version: 1.2.8
+ resolution: "@radix-ui/react-popper@npm:1.2.8"
+ dependencies:
+ "@floating-ui/react-dom": "npm:^2.0.0"
+ "@radix-ui/react-arrow": "npm:1.1.7"
+ "@radix-ui/react-compose-refs": "npm:1.1.2"
+ "@radix-ui/react-context": "npm:1.1.2"
+ "@radix-ui/react-primitive": "npm:2.1.3"
+ "@radix-ui/react-use-callback-ref": "npm:1.1.1"
+ "@radix-ui/react-use-layout-effect": "npm:1.1.1"
+ "@radix-ui/react-use-rect": "npm:1.1.1"
+ "@radix-ui/react-use-size": "npm:1.1.1"
+ "@radix-ui/rect": "npm:1.1.1"
+ 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
+ checksum: 10c0/48e3f13eac3b8c13aca8ded37d74db17e1bb294da8d69f142ab6b8719a06c3f90051668bed64520bf9f3abdd77b382ce7ce209d056bb56137cecc949b69b421c
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-portal@npm:1.1.2":
+ version: 1.1.2
+ resolution: "@radix-ui/react-portal@npm:1.1.2"
+ dependencies:
+ "@radix-ui/react-primitive": "npm:2.0.0"
+ "@radix-ui/react-use-layout-effect": "npm: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
+ checksum: 10c0/836967330893b16b85371775ed1a59e038ce99189f4851cfa976bde2710d704c2a9e49e0a5206e7ac3fcf8a67ddd2d126b8352a88f295d6ef49d04e269736ed1
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-portal@npm:1.1.9":
+ version: 1.1.9
+ resolution: "@radix-ui/react-portal@npm:1.1.9"
+ dependencies:
+ "@radix-ui/react-primitive": "npm:2.1.3"
+ "@radix-ui/react-use-layout-effect": "npm:1.1.1"
+ 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
+ checksum: 10c0/45b432497c722720c72c493a29ef6085bc84b50eafe79d48b45c553121b63e94f9cdb77a3a74b9c49126f8feb3feee009fe400d48b7759d3552396356b192cd7
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-presence@npm:1.1.1":
+ version: 1.1.1
+ resolution: "@radix-ui/react-presence@npm:1.1.1"
+ dependencies:
+ "@radix-ui/react-compose-refs": "npm:1.1.0"
+ "@radix-ui/react-use-layout-effect": "npm: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
+ checksum: 10c0/777cda0406450ff5ca0e49235e486237723323d046a3382e35a0e78eededccfc95a76a9b5fecd7404dac793264762f4bc10111af1e08f8cc2d4d571d7971220e
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-presence@npm:1.1.5":
+ version: 1.1.5
+ resolution: "@radix-ui/react-presence@npm:1.1.5"
+ dependencies:
+ "@radix-ui/react-compose-refs": "npm:1.1.2"
+ "@radix-ui/react-use-layout-effect": "npm:1.1.1"
+ 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
+ checksum: 10c0/d0e61d314250eeaef5369983cb790701d667f51734bafd98cf759072755562018052c594e6cdc5389789f4543cb0a4d98f03ff4e8f37338d6b5bf51a1700c1d1
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-primitive@npm:2.0.0":
+ version: 2.0.0
+ resolution: "@radix-ui/react-primitive@npm:2.0.0"
+ dependencies:
+ "@radix-ui/react-slot": "npm: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
+ checksum: 10c0/00cb6ca499252ca848c299212ba6976171cea7608b10b3f9a9639d6732dea2df1197ba0d97c001a4fdb29313c3e7fc2a490f6245dd3579617a0ffd85ae964fdd
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-primitive@npm:2.1.3":
+ version: 2.1.3
+ resolution: "@radix-ui/react-primitive@npm:2.1.3"
+ dependencies:
+ "@radix-ui/react-slot": "npm:1.2.3"
+ 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
+ checksum: 10c0/fdff9b84913bb4172ef6d3af7442fca5f9bba5f2709cba08950071f819d7057aec3a4a2d9ef44cf9cbfb8014d02573c6884a04cff175895823aaef809ebdb034
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-roving-focus@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-roving-focus@npm:1.1.0"
+ dependencies:
+ "@radix-ui/primitive": "npm:1.1.0"
+ "@radix-ui/react-collection": "npm:1.1.0"
+ "@radix-ui/react-compose-refs": "npm:1.1.0"
+ "@radix-ui/react-context": "npm:1.1.0"
+ "@radix-ui/react-direction": "npm:1.1.0"
+ "@radix-ui/react-id": "npm:1.1.0"
+ "@radix-ui/react-primitive": "npm:2.0.0"
+ "@radix-ui/react-use-callback-ref": "npm:1.1.0"
+ "@radix-ui/react-use-controllable-state": "npm: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
+ checksum: 10c0/ce367d3033a12d639a8d445d2efa090aa4bc5a78125be568f8c8e4e59f30afd51b585a90031ec18cdba19afbaf1974633dbc0c2c3d2a14d9eb1bfea2ddbe5369
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-separator@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-separator@npm:1.1.0"
+ dependencies:
+ "@radix-ui/react-primitive": "npm: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
+ checksum: 10c0/0ca9e25db27b6b001f3c0c50b2df9d6cf070b949f183043e263115d694a25b7268fecd670572469a512e556deca25ebb08b3aec4a870f0309eed728eef19ab8a
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-slot@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-slot@npm:1.1.0"
+ dependencies:
+ "@radix-ui/react-compose-refs": "npm:1.1.0"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/a2e8bfb70c440506dd84a1a274f9a8bc433cca37ceae275e53552c9122612e3837744d7fc6f113d6ef1a11491aa914f4add71d76de41cb6d4db72547a8e261ae
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-slot@npm:1.2.3":
+ version: 1.2.3
+ resolution: "@radix-ui/react-slot@npm:1.2.3"
+ dependencies:
+ "@radix-ui/react-compose-refs": "npm:1.1.2"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/5913aa0d760f505905779515e4b1f0f71a422350f077cc8d26d1aafe53c97f177fec0e6d7fbbb50d8b5e498aa9df9f707ca75ae3801540c283b26b0136138eef
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-toast@npm:^1.2.15":
+ version: 1.2.15
+ resolution: "@radix-ui/react-toast@npm:1.2.15"
+ dependencies:
+ "@radix-ui/primitive": "npm:1.1.3"
+ "@radix-ui/react-collection": "npm:1.1.7"
+ "@radix-ui/react-compose-refs": "npm:1.1.2"
+ "@radix-ui/react-context": "npm:1.1.2"
+ "@radix-ui/react-dismissable-layer": "npm:1.1.11"
+ "@radix-ui/react-portal": "npm:1.1.9"
+ "@radix-ui/react-presence": "npm:1.1.5"
+ "@radix-ui/react-primitive": "npm:2.1.3"
+ "@radix-ui/react-use-callback-ref": "npm:1.1.1"
+ "@radix-ui/react-use-controllable-state": "npm:1.2.2"
+ "@radix-ui/react-use-layout-effect": "npm:1.1.1"
+ "@radix-ui/react-visually-hidden": "npm:1.2.3"
+ 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
+ checksum: 10c0/e7050d356719f438e087e8033e47a8854fba001cf71eb4e0c0203d53a4fbbd35aca9f17f73abe4dadc406d2d85badf4e37065865d07835763d0e3cb9d95a518d
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-tooltip@npm:^1.2.8":
+ version: 1.2.8
+ resolution: "@radix-ui/react-tooltip@npm:1.2.8"
+ dependencies:
+ "@radix-ui/primitive": "npm:1.1.3"
+ "@radix-ui/react-compose-refs": "npm:1.1.2"
+ "@radix-ui/react-context": "npm:1.1.2"
+ "@radix-ui/react-dismissable-layer": "npm:1.1.11"
+ "@radix-ui/react-id": "npm:1.1.1"
+ "@radix-ui/react-popper": "npm:1.2.8"
+ "@radix-ui/react-portal": "npm:1.1.9"
+ "@radix-ui/react-presence": "npm:1.1.5"
+ "@radix-ui/react-primitive": "npm:2.1.3"
+ "@radix-ui/react-slot": "npm:1.2.3"
+ "@radix-ui/react-use-controllable-state": "npm:1.2.2"
+ "@radix-ui/react-visually-hidden": "npm:1.2.3"
+ 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
+ checksum: 10c0/de0cbae9c571a00671f160928d819e59502f59be8749f536ab4b180181d9d70aee3925a5b2555f8f32d0bea622bc35f65b70ca7ff0449e4844f891302310cc48
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-use-callback-ref@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-use-callback-ref@npm:1.1.0"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/e954863f3baa151faf89ac052a5468b42650efca924417470efd1bd254b411a94c69c30de2fdbb90187b38cb984795978e12e30423dc41e4309d93d53b66d819
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-use-callback-ref@npm:1.1.1":
+ version: 1.1.1
+ resolution: "@radix-ui/react-use-callback-ref@npm:1.1.1"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/5f6aff8592dea6a7e46589808912aba3fb3b626cf6edd2b14f01638b61dbbe49eeb9f67cd5601f4c15b2fb547b9a7e825f7c4961acd4dd70176c969ae405f8d8
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-use-controllable-state@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-use-controllable-state@npm:1.1.0"
+ dependencies:
+ "@radix-ui/react-use-callback-ref": "npm:1.1.0"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/2af883b5b25822ac226e60a6bfde647c0123a76345052a90219026059b3f7225844b2c13a9a16fba859c1cda5fb3d057f2a04503f71780e607516492db4eb3a1
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-use-controllable-state@npm:1.2.2":
+ version: 1.2.2
+ resolution: "@radix-ui/react-use-controllable-state@npm:1.2.2"
+ dependencies:
+ "@radix-ui/react-use-effect-event": "npm:0.0.2"
+ "@radix-ui/react-use-layout-effect": "npm:1.1.1"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/f55c4b06e895293aed4b44c9ef26fb24432539f5346fcd6519c7745800535b571058685314e83486a45bf61dc83887e24826490d3068acc317fb0a9010516e63
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-use-effect-event@npm:0.0.2":
+ version: 0.0.2
+ resolution: "@radix-ui/react-use-effect-event@npm:0.0.2"
+ dependencies:
+ "@radix-ui/react-use-layout-effect": "npm:1.1.1"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/e84ff72a3e76c5ae9c94941028bb4b6472f17d4104481b9eab773deab3da640ecea035e54da9d6f4df8d84c18ef6913baf92b7511bee06930dc58bd0c0add417
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-use-escape-keydown@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-use-escape-keydown@npm:1.1.0"
+ dependencies:
+ "@radix-ui/react-use-callback-ref": "npm:1.1.0"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/910fd696e5a0994b0e06b9cb68def8a865f47951a013ec240c77db2a9e1e726105602700ef5e5f01af49f2f18fe0e73164f9a9651021f28538ef8a30d91f3fbb
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-use-escape-keydown@npm:1.1.1":
+ version: 1.1.1
+ resolution: "@radix-ui/react-use-escape-keydown@npm:1.1.1"
+ dependencies:
+ "@radix-ui/react-use-callback-ref": "npm:1.1.1"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/bff53be99e940fef1d3c4df7d560e1d9133182e5a98336255d3063327d1d3dd4ec54a95dc5afe15cca4fb6c184f0a956c70de2815578c318cf995a7f9beabaa1
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-use-layout-effect@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-use-layout-effect@npm:1.1.0"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/9bf87ece1845c038ed95863cfccf9d75f557c2400d606343bab0ab3192b9806b9840e6aa0a0333fdf3e83cf9982632852192f3e68d7d8367bc8c788dfdf8e62b
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-use-layout-effect@npm:1.1.1":
+ version: 1.1.1
+ resolution: "@radix-ui/react-use-layout-effect@npm:1.1.1"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/9f98fdaba008dfc58050de60a77670b885792df473cf82c1cef8daee919a5dd5a77d270209f5f0b0abfaac78cb1627396e3ff56c81b735be550409426fe8b040
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-use-rect@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-use-rect@npm:1.1.0"
+ dependencies:
+ "@radix-ui/rect": "npm:1.1.0"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/c2e30150ab49e2cec238cda306fd748c3d47fb96dcff69a3b08e1d19108d80bac239d48f1747a25dadca614e3e967267d43b91e60ea59db2befbc7bea913ff84
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-use-rect@npm:1.1.1":
+ version: 1.1.1
+ resolution: "@radix-ui/react-use-rect@npm:1.1.1"
+ dependencies:
+ "@radix-ui/rect": "npm:1.1.1"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/271711404c05c589c8dbdaa748749e7daf44bcc6bffc9ecd910821c3ebca0ee245616cf5b39653ce690f53f875c3836fd3f36f51ab1c628273b6db599eee4864
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-use-size@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-use-size@npm:1.1.0"
+ dependencies:
+ "@radix-ui/react-use-layout-effect": "npm:1.1.0"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/4c8b89037597fdc1824d009e0c941b510c7c6c30f83024cc02c934edd748886786e7d9f36f57323b02ad29833e7fa7e8974d81969b4ab33d8f41661afa4f30a6
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-use-size@npm:1.1.1":
+ version: 1.1.1
+ resolution: "@radix-ui/react-use-size@npm:1.1.1"
+ dependencies:
+ "@radix-ui/react-use-layout-effect": "npm:1.1.1"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/851d09a816f44282e0e9e2147b1b571410174cc048703a50c4fa54d672de994fd1dfff1da9d480ecfd12c77ae8f48d74f01adaf668f074156b8cd0043c6c21d8
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-visually-hidden@npm:1.2.3":
+ version: 1.2.3
+ resolution: "@radix-ui/react-visually-hidden@npm:1.2.3"
+ dependencies:
+ "@radix-ui/react-primitive": "npm:2.1.3"
+ 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
+ checksum: 10c0/cf86a37f1cbee50a964056f3dc4f6bb1ee79c76daa321f913aa20ff3e1ccdfafbf2b114d7bb616aeefc7c4b895e6ca898523fdb67710d89bd5d8edb739a0d9b6
+ languageName: node
+ linkType: hard
+
+"@radix-ui/rect@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/rect@npm:1.1.0"
+ checksum: 10c0/a26ff7f8708fb5f2f7949baad70a6b2a597d761ee4dd4aadaf1c1a33ea82ea23dfef6ce6366a08310c5d008cdd60b2e626e4ee03fa342bd5f246ddd9d427f6be
+ languageName: node
+ linkType: hard
+
+"@radix-ui/rect@npm:1.1.1":
+ version: 1.1.1
+ resolution: "@radix-ui/rect@npm:1.1.1"
+ checksum: 10c0/0dac4f0f15691199abe6a0e067821ddd9d0349c0c05f39834e4eafc8403caf724106884035ae91bbc826e10367e6a5672e7bec4d4243860fa7649de246b1f60b
+ languageName: node
+ linkType: hard
+
+"@reality.eth/contracts@npm:^3.2.6":
+ version: 3.2.6
+ resolution: "@reality.eth/contracts@npm:3.2.6"
+ dependencies:
+ ethers: "npm:^5.8.0"
+ checksum: 10c0/3ce3c59f81ee3f2164d14c5cdc1c9a1241a3b9031d8596e79b3f63e1f263a571b6a69d38d5b334abe35cc18f9605dccfbbb01a8bc94d632b9954cbe28d7dff88
+ languageName: node
+ linkType: hard
+
+"@reality.eth/reality-eth-lib@npm:^3.2.60":
+ version: 3.4.7
+ resolution: "@reality.eth/reality-eth-lib@npm:3.4.7"
+ dependencies:
+ "@reality.eth/contracts": "npm:^3.2.6"
+ bignumber.js: "npm:^7.2.1"
+ bn.js: "npm:^5.2.1"
+ ethereumjs-abi: "npm:^0.6.5"
+ html-to-text: "npm:^8.2.1"
+ isomorphic-dompurify: "npm:^0.23.0"
+ marked: "npm:^4.1.1"
+ sprintf-js: "npm:^1.1.1"
+ checksum: 10c0/29dd39122a1bf086e91fa552daf5801935acd2ae284f187677af5548e6d4493da0a5d3d8e042328fdb7bdbc7acc93b8e23b7c3d210aa2a8551e6df9c1803b452
+ languageName: node
+ linkType: hard
+
+"@scure/base@npm:~1.2.1":
+ version: 1.2.1
+ resolution: "@scure/base@npm:1.2.1"
+ checksum: 10c0/e61068854370855b89c50c28fa4092ea6780f1e0db64ea94075ab574ebcc964f719a3120dc708db324991f4b3e652d92ebda03fce2bf6a4900ceeacf9c0ff933
+ languageName: node
+ linkType: hard
+
+"@scure/base@npm:~1.2.2, @scure/base@npm:~1.2.4":
+ version: 1.2.4
+ resolution: "@scure/base@npm:1.2.4"
+ checksum: 10c0/469c8aee80d6d6973e1aac6184befa04568f1b4016e40c889025f4a721575db9c1ca0c2ead80613896cce929392740322a18da585a427f157157e797dc0a42a9
+ languageName: node
+ linkType: hard
+
+"@scure/bip32@npm:1.6.2":
+ version: 1.6.2
+ resolution: "@scure/bip32@npm:1.6.2"
+ dependencies:
+ "@noble/curves": "npm:~1.8.1"
+ "@noble/hashes": "npm:~1.7.1"
+ "@scure/base": "npm:~1.2.2"
+ checksum: 10c0/a0abd62d1fe34b4d90b84feb25fa064ad452fd51be9fd7ea3dcd376059c0e8d08d4fe454099030f43fb91a1bee85cd955f093f221bbc522178919f779fbe565c
+ languageName: node
+ linkType: hard
+
+"@scure/bip32@npm:^1.5.0":
+ version: 1.6.0
+ resolution: "@scure/bip32@npm:1.6.0"
+ dependencies:
+ "@noble/curves": "npm:~1.7.0"
+ "@noble/hashes": "npm:~1.6.0"
+ "@scure/base": "npm:~1.2.1"
+ checksum: 10c0/5a5eff8c0bc0b53d70528c5eda6efa7ed6d186a5c9ba0a339edf9c150ee3f331d837ffe29d2c6c6336b1f88ad90aa8b6e596a4950217343f36916d8024f79bdf
+ languageName: node
+ linkType: hard
+
+"@scure/bip39@npm:1.5.4":
+ version: 1.5.4
+ resolution: "@scure/bip39@npm:1.5.4"
+ dependencies:
+ "@noble/hashes": "npm:~1.7.1"
+ "@scure/base": "npm:~1.2.4"
+ checksum: 10c0/0b398b8335b624c16dfb0d81b0e79f80f098bb98e327f1d68ace56636e0c56cc09a240ed3ba9c1187573758242ade7000260d65c15d3a6bcd95ac9cb284b450a
+ languageName: node
+ linkType: hard
+
+"@scure/bip39@npm:^1.4.0":
+ version: 1.5.0
+ resolution: "@scure/bip39@npm:1.5.0"
+ dependencies:
+ "@noble/hashes": "npm:~1.6.0"
+ "@scure/base": "npm:~1.2.1"
+ checksum: 10c0/114ab88fb00269d17a73d5c39a2cade47403e05f6df5a8d6f5da6e7f2b071966fe8f656a740dc3399acd006163f234e82b680544c38004703dbb60f8a29daf73
+ languageName: node
+ linkType: hard
+
+"@selderee/plugin-htmlparser2@npm:^0.6.0":
+ version: 0.6.0
+ resolution: "@selderee/plugin-htmlparser2@npm:0.6.0"
+ dependencies:
+ domhandler: "npm:^4.2.0"
+ selderee: "npm:^0.6.0"
+ checksum: 10c0/aba39ff7f574eb2097b340597d6bfd7473b43f84d56a78fcabc6f414c8d2aa9e356a306d863b8f3e3d5577512374735c9c5e3535c195764b07bfc0b13bf5e1a4
+ languageName: node
+ linkType: hard
+
+"@swc/counter@npm:0.1.3":
+ version: 0.1.3
+ resolution: "@swc/counter@npm:0.1.3"
+ checksum: 10c0/8424f60f6bf8694cfd2a9bca45845bce29f26105cda8cf19cdb9fd3e78dc6338699e4db77a89ae449260bafa1cc6bec307e81e7fb96dbf7dcfce0eea55151356
+ languageName: node
+ linkType: hard
+
+"@swc/helpers@npm:0.5.15":
+ version: 0.5.15
+ resolution: "@swc/helpers@npm:0.5.15"
+ dependencies:
+ tslib: "npm:^2.8.0"
+ checksum: 10c0/33002f74f6f885f04c132960835fdfc474186983ea567606db62e86acd0680ca82f34647e8e610f4e1e422d1c16fce729dde22cd3b797ab1fd9061a825dabca4
+ languageName: node
+ linkType: hard
+
+"@tootallnate/once@npm:2":
+ version: 2.0.0
+ resolution: "@tootallnate/once@npm:2.0.0"
+ checksum: 10c0/073bfa548026b1ebaf1659eb8961e526be22fa77139b10d60e712f46d2f0f05f4e6c8bec62a087d41088ee9e29faa7f54838568e475ab2f776171003c3920858
+ languageName: node
+ linkType: hard
+
+"@types/bn.js@npm:^4.11.3":
+ version: 4.11.6
+ resolution: "@types/bn.js@npm:4.11.6"
+ dependencies:
+ "@types/node": "npm:*"
+ checksum: 10c0/a5a19dafc106b1b2ab35c2024ca37b9d0938dced11cb1cca7d119de5a0dd5f54db525c82cb1392843fc921677452efcbbdce3aa96ecc1457d3de6e266915ebd0
+ languageName: node
+ linkType: hard
+
+"@types/dompurify@npm:^2.3.4":
+ version: 2.4.0
+ resolution: "@types/dompurify@npm:2.4.0"
+ dependencies:
+ "@types/trusted-types": "npm:*"
+ checksum: 10c0/a20c4288a067811e097f0b92a0cae927a9c49c0d5de36fea66b85fcc5c8db63a22ac47df37f324e426a01e8ab99ae28ea04260301350bda194850617a26931d6
+ languageName: node
+ linkType: hard
+
+"@types/node@npm:*":
+ version: 22.10.1
+ resolution: "@types/node@npm:22.10.1"
+ dependencies:
+ undici-types: "npm:~6.20.0"
+ checksum: 10c0/0fbb6d29fa35d807f0223a4db709c598ac08d66820240a2cd6a8a69b8f0bc921d65b339d850a666b43b4e779f967e6ed6cf6f0fca3575e08241e6b900364c234
+ languageName: node
+ linkType: hard
+
+"@types/node@npm:^22":
+ version: 22.13.4
+ resolution: "@types/node@npm:22.13.4"
+ dependencies:
+ undici-types: "npm:~6.20.0"
+ checksum: 10c0/3a234fa7766a3efc382cf81f66f474c26cdab2f54f43f757634c81c0444eb2160c2dabbde9741e4983078a318a88515b65416b5f1ab5478548579d7b3ead1d95
+ languageName: node
+ linkType: hard
+
+"@types/pbkdf2@npm:^3.0.0":
+ version: 3.1.2
+ resolution: "@types/pbkdf2@npm:3.1.2"
+ dependencies:
+ "@types/node": "npm:*"
+ checksum: 10c0/4f60b0e3c73297f55023b993d3d543212aa7f61c8c0d6a2720f5dbe2cf38e2fe55ff295d550ac048dddbfc3d44c285cfe16126d65c613bd67a57662357e268d9
+ languageName: node
+ linkType: hard
+
+"@types/react-dom@npm:19.1.5":
+ version: 19.1.5
+ resolution: "@types/react-dom@npm:19.1.5"
+ peerDependencies:
+ "@types/react": ^19.0.0
+ checksum: 10c0/2a29e77cf6bb6e9f57bcfa54509c216cad2e16e244f0bd56369966ec88c072b9c91f6011d14f9e18fbfe2b801b18b86f616de75e5c8aef0be73c1f74abb33b49
+ languageName: node
+ linkType: hard
+
+"@types/react@npm:19.1.6":
+ version: 19.1.6
+ resolution: "@types/react@npm:19.1.6"
+ dependencies:
+ csstype: "npm:^3.0.2"
+ checksum: 10c0/8b10b198e28997b3c57559750f8bcf5ae7b33c554b16b6f4fe2ece1d4de6a2fc8cb53e7effe08ec9cb939d2f479eb97c5e08aac2cf83b10a90164fe451cc8ea2
+ languageName: node
+ linkType: hard
+
+"@types/rtl-detect@npm:^1":
+ version: 1.0.3
+ resolution: "@types/rtl-detect@npm:1.0.3"
+ checksum: 10c0/5ed41bd66d97a52dfcf6d715e0a447a2f88724fa442818c879c30423bf64c2f2c62091e2da62aaa02f302139f18109af5bfee6e50b3ba79899201401c49a0b09
+ languageName: node
+ linkType: hard
+
+"@types/secp256k1@npm:^4.0.1":
+ version: 4.0.6
+ resolution: "@types/secp256k1@npm:4.0.6"
+ dependencies:
+ "@types/node": "npm:*"
+ checksum: 10c0/0e391316ae30c218779583b626382a56546ddbefb65f1ff9cf5e078af8a7118f67f3e66e30914399cc6f8710c424d0d8c3f34262ffb1f429c6ad911fd0d0bc26
+ languageName: node
+ linkType: hard
+
+"@types/trusted-types@npm:*":
+ version: 2.0.7
+ resolution: "@types/trusted-types@npm:2.0.7"
+ checksum: 10c0/4c4855f10de7c6c135e0d32ce462419d8abbbc33713b31d294596c0cc34ae1fa6112a2f9da729c8f7a20707782b0d69da3b1f8df6645b0366d08825ca1522e0c
+ languageName: node
+ linkType: hard
+
+"@urql/core@npm:^5.0.8":
+ version: 5.0.8
+ resolution: "@urql/core@npm:5.0.8"
+ dependencies:
+ "@0no-co/graphql.web": "npm:^1.0.5"
+ wonka: "npm:^6.3.2"
+ checksum: 10c0/a17c5ca0e2f02657e57bfc0b567dc6075f27e6604a27baf65d26df9c01007ff6f552b496c33fd9b3eb121485d8b82029a2d860fd82c156dfed52abbb341c78ed
+ languageName: node
+ linkType: hard
+
+"abab@npm:^2.0.6":
+ version: 2.0.6
+ resolution: "abab@npm:2.0.6"
+ checksum: 10c0/0b245c3c3ea2598fe0025abf7cc7bb507b06949d51e8edae5d12c1b847a0a0c09639abcb94788332b4e2044ac4491c1e8f571b51c7826fd4b0bda1685ad4a278
+ languageName: node
+ linkType: hard
+
+"abbrev@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "abbrev@npm:2.0.0"
+ checksum: 10c0/f742a5a107473946f426c691c08daba61a1d15942616f300b5d32fd735be88fef5cba24201757b6c407fd564555fb48c751cfa33519b2605c8a7aadd22baf372
+ languageName: node
+ linkType: hard
+
+"abitype@npm:1.0.8":
+ version: 1.0.8
+ resolution: "abitype@npm:1.0.8"
+ peerDependencies:
+ typescript: ">=5.0.4"
+ zod: ^3 >=3.22.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ zod:
+ optional: true
+ checksum: 10c0/d3393f32898c1f0f6da4eed2561da6830dcd0d5129a160fae9517214236ee6a6c8e5a0380b8b960c5bc1b949320bcbd015ec7f38b5d7444f8f2b854a1b5dd754
+ languageName: node
+ linkType: hard
+
+"abitype@npm:^1.0.6":
+ version: 1.0.6
+ resolution: "abitype@npm:1.0.6"
+ peerDependencies:
+ typescript: ">=5.0.4"
+ zod: ^3 >=3.22.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ zod:
+ optional: true
+ checksum: 10c0/30ca97010bbf34b9aaed401858eeb6bc30419f7ff11eb34adcb243522dd56c9d8a9d3d406aa5d4f60a7c263902f5136043005698e3f073ea882a4922d43a2929
+ languageName: node
+ linkType: hard
+
+"acorn-globals@npm:^7.0.0":
+ version: 7.0.1
+ resolution: "acorn-globals@npm:7.0.1"
+ dependencies:
+ acorn: "npm:^8.1.0"
+ acorn-walk: "npm:^8.0.2"
+ checksum: 10c0/7437f58e92d99292dbebd0e79531af27d706c9f272f31c675d793da6c82d897e75302a8744af13c7f7978a8399840f14a353b60cf21014647f71012982456d2b
+ languageName: node
+ linkType: hard
+
+"acorn-walk@npm:^8.0.2":
+ version: 8.3.4
+ resolution: "acorn-walk@npm:8.3.4"
+ dependencies:
+ acorn: "npm:^8.11.0"
+ checksum: 10c0/76537ac5fb2c37a64560feaf3342023dadc086c46da57da363e64c6148dc21b57d49ace26f949e225063acb6fb441eabffd89f7a3066de5ad37ab3e328927c62
+ languageName: node
+ linkType: hard
+
+"acorn@npm:^8.1.0, acorn@npm:^8.11.0, acorn@npm:^8.8.1":
+ version: 8.14.0
+ resolution: "acorn@npm:8.14.0"
+ bin:
+ acorn: bin/acorn
+ checksum: 10c0/6d4ee461a7734b2f48836ee0fbb752903606e576cc100eb49340295129ca0b452f3ba91ddd4424a1d4406a98adfb2ebb6bd0ff4c49d7a0930c10e462719bbfd7
+ languageName: node
+ linkType: hard
+
+"aes-js@npm:3.0.0":
+ version: 3.0.0
+ resolution: "aes-js@npm:3.0.0"
+ checksum: 10c0/87dd5b2363534b867db7cef8bc85a90c355460783744877b2db7c8be09740aac5750714f9e00902822f692662bda74cdf40e03fbb5214ffec75c2666666288b8
+ languageName: node
+ linkType: hard
+
+"agent-base@npm:6":
+ version: 6.0.2
+ resolution: "agent-base@npm:6.0.2"
+ dependencies:
+ debug: "npm:4"
+ checksum: 10c0/dc4f757e40b5f3e3d674bc9beb4f1048f4ee83af189bae39be99f57bf1f48dde166a8b0a5342a84b5944ee8e6ed1e5a9d801858f4ad44764e84957122fe46261
+ languageName: node
+ linkType: hard
+
+"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1":
+ version: 7.1.1
+ resolution: "agent-base@npm:7.1.1"
+ dependencies:
+ debug: "npm:^4.3.4"
+ checksum: 10c0/e59ce7bed9c63bf071a30cc471f2933862044c97fd9958967bfe22521d7a0f601ce4ed5a8c011799d0c726ca70312142ae193bbebb60f576b52be19d4a363b50
+ languageName: node
+ linkType: hard
+
+"aggregate-error@npm:^3.0.0":
+ version: 3.1.0
+ resolution: "aggregate-error@npm:3.1.0"
+ dependencies:
+ clean-stack: "npm:^2.0.0"
+ indent-string: "npm:^4.0.0"
+ checksum: 10c0/a42f67faa79e3e6687a4923050e7c9807db3848a037076f791d10e092677d65c1d2d863b7848560699f40fc0502c19f40963fb1cd1fb3d338a7423df8e45e039
+ languageName: node
+ linkType: hard
+
+"ansi-escapes@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "ansi-escapes@npm:7.0.0"
+ dependencies:
+ environment: "npm:^1.0.0"
+ checksum: 10c0/86e51e36fabef18c9c004af0a280573e828900641cea35134a124d2715e0c5a473494ab4ce396614505da77638ae290ff72dd8002d9747d2ee53f5d6bbe336be
+ languageName: node
+ linkType: hard
+
+"ansi-regex@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "ansi-regex@npm:5.0.1"
+ checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737
+ languageName: node
+ linkType: hard
+
+"ansi-regex@npm:^6.0.1":
+ version: 6.1.0
+ resolution: "ansi-regex@npm:6.1.0"
+ checksum: 10c0/a91daeddd54746338478eef88af3439a7edf30f8e23196e2d6ed182da9add559c601266dbef01c2efa46a958ad6f1f8b176799657616c702b5b02e799e7fd8dc
+ languageName: node
+ linkType: hard
+
+"ansi-styles@npm:^4.0.0":
+ version: 4.3.0
+ resolution: "ansi-styles@npm:4.3.0"
+ dependencies:
+ color-convert: "npm:^2.0.1"
+ checksum: 10c0/895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041
+ languageName: node
+ linkType: hard
+
+"ansi-styles@npm:^6.0.0, ansi-styles@npm:^6.1.0, ansi-styles@npm:^6.2.1":
+ version: 6.2.1
+ resolution: "ansi-styles@npm:6.2.1"
+ checksum: 10c0/5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c
+ languageName: node
+ linkType: hard
+
+"any-promise@npm:^1.0.0":
+ version: 1.3.0
+ resolution: "any-promise@npm:1.3.0"
+ checksum: 10c0/60f0298ed34c74fef50daab88e8dab786036ed5a7fad02e012ab57e376e0a0b4b29e83b95ea9b5e7d89df762f5f25119b83e00706ecaccb22cfbacee98d74889
+ languageName: node
+ linkType: hard
+
+"anymatch@npm:~3.1.2":
+ version: 3.1.3
+ resolution: "anymatch@npm:3.1.3"
+ dependencies:
+ normalize-path: "npm:^3.0.0"
+ picomatch: "npm:^2.0.4"
+ checksum: 10c0/57b06ae984bc32a0d22592c87384cd88fe4511b1dd7581497831c56d41939c8a001b28e7b853e1450f2bf61992dfcaa8ae2d0d161a0a90c4fb631ef07098fbac
+ languageName: node
+ linkType: hard
+
+"arg@npm:^5.0.2":
+ version: 5.0.2
+ resolution: "arg@npm:5.0.2"
+ checksum: 10c0/ccaf86f4e05d342af6666c569f844bec426595c567d32a8289715087825c2ca7edd8a3d204e4d2fb2aa4602e09a57d0c13ea8c9eea75aac3dbb4af5514e6800e
+ languageName: node
+ linkType: hard
+
+"aria-hidden@npm:^1.1.1":
+ version: 1.2.4
+ resolution: "aria-hidden@npm:1.2.4"
+ dependencies:
+ tslib: "npm:^2.0.0"
+ checksum: 10c0/8abcab2e1432efc4db415e97cb3959649ddf52c8fc815d7384f43f3d3abf56f1c12852575d00df9a8927f421d7e0712652dd5f8db244ea57634344e29ecfc74a
+ languageName: node
+ linkType: hard
+
+"asynckit@npm:^0.4.0":
+ version: 0.4.0
+ resolution: "asynckit@npm:0.4.0"
+ checksum: 10c0/d73e2ddf20c4eb9337e1b3df1a0f6159481050a5de457c55b14ea2e5cb6d90bb69e004c9af54737a5ee0917fcf2c9e25de67777bbe58261847846066ba75bc9d
+ languageName: node
+ linkType: hard
+
+"balanced-match@npm:^1.0.0":
+ version: 1.0.2
+ resolution: "balanced-match@npm:1.0.2"
+ checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee
+ languageName: node
+ linkType: hard
+
+"base-x@npm:^3.0.2":
+ version: 3.0.10
+ resolution: "base-x@npm:3.0.10"
+ dependencies:
+ safe-buffer: "npm:^5.0.1"
+ checksum: 10c0/a13a34b71439ee5381667efa630b3bf640cf17f632c5ba01990483367592e72f247d7fb4f8c6d0e3ff8c0fb7224b3ac682ff5be09b87063a45b3968f0457e563
+ languageName: node
+ linkType: hard
+
+"bech32@npm:1.1.4":
+ version: 1.1.4
+ resolution: "bech32@npm:1.1.4"
+ checksum: 10c0/5f62ca47b8df99ace9c0e0d8deb36a919d91bf40066700aaa9920a45f86bb10eb56d537d559416fd8703aa0fb60dddb642e58f049701e7291df678b2033e5ee5
+ languageName: node
+ linkType: hard
+
+"bignumber.js@npm:^7.2.1":
+ version: 7.2.1
+ resolution: "bignumber.js@npm:7.2.1"
+ checksum: 10c0/7e2cb10cdc1991696666b129f3b888c44a5e35bd3a5e990b2d2c934c7bc6863fb42b45fdea830484ca0d9e0b9a70d15e1d43fcd03a0e04326612b8e3ac76a0ae
+ languageName: node
+ linkType: hard
+
+"binary-extensions@npm:^2.0.0":
+ version: 2.3.0
+ resolution: "binary-extensions@npm:2.3.0"
+ checksum: 10c0/75a59cafc10fb12a11d510e77110c6c7ae3f4ca22463d52487709ca7f18f69d886aa387557cc9864fbdb10153d0bdb4caacabf11541f55e89ed6e18d12ece2b5
+ languageName: node
+ linkType: hard
+
+"blakejs@npm:^1.1.0":
+ version: 1.2.1
+ resolution: "blakejs@npm:1.2.1"
+ checksum: 10c0/c284557ce55b9c70203f59d381f1b85372ef08ee616a90162174d1291a45d3e5e809fdf9edab6e998740012538515152471dc4f1f9dbfa974ba2b9c1f7b9aad7
+ languageName: node
+ linkType: hard
+
+"bn.js@npm:^4.11.0, bn.js@npm:^4.11.8, bn.js@npm:^4.11.9":
+ version: 4.12.1
+ resolution: "bn.js@npm:4.12.1"
+ checksum: 10c0/b7f37a0cd5e4b79142b6f4292d518b416be34ae55d6dd6b0f66f96550c8083a50ffbbf8bda8d0ab471158cb81aa74ea4ee58fe33c7802e4a30b13810e98df116
+ languageName: node
+ linkType: hard
+
+"bn.js@npm:^5.2.0, bn.js@npm:^5.2.1":
+ version: 5.2.1
+ resolution: "bn.js@npm:5.2.1"
+ checksum: 10c0/bed3d8bd34ec89dbcf9f20f88bd7d4a49c160fda3b561c7bb227501f974d3e435a48fb9b61bc3de304acab9215a3bda0803f7017ffb4d0016a0c3a740a283caa
+ languageName: node
+ linkType: hard
+
+"brace-expansion@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "brace-expansion@npm:2.0.1"
+ dependencies:
+ balanced-match: "npm:^1.0.0"
+ checksum: 10c0/b358f2fe060e2d7a87aa015979ecea07f3c37d4018f8d6deb5bd4c229ad3a0384fe6029bb76cd8be63c81e516ee52d1a0673edbe2023d53a5191732ae3c3e49f
+ languageName: node
+ linkType: hard
+
+"braces@npm:^3.0.3, braces@npm:~3.0.2":
+ version: 3.0.3
+ resolution: "braces@npm:3.0.3"
+ dependencies:
+ fill-range: "npm:^7.1.1"
+ checksum: 10c0/7c6dfd30c338d2997ba77500539227b9d1f85e388a5f43220865201e407e076783d0881f2d297b9f80951b4c957fcf0b51c1d2d24227631643c3f7c284b0aa04
+ languageName: node
+ linkType: hard
+
+"brorand@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "brorand@npm:1.1.0"
+ checksum: 10c0/6f366d7c4990f82c366e3878492ba9a372a73163c09871e80d82fb4ae0d23f9f8924cb8a662330308206e6b3b76ba1d528b4601c9ef73c2166b440b2ea3b7571
+ languageName: node
+ linkType: hard
+
+"browserify-aes@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "browserify-aes@npm:1.2.0"
+ dependencies:
+ buffer-xor: "npm:^1.0.3"
+ cipher-base: "npm:^1.0.0"
+ create-hash: "npm:^1.1.0"
+ evp_bytestokey: "npm:^1.0.3"
+ inherits: "npm:^2.0.1"
+ safe-buffer: "npm:^5.0.1"
+ checksum: 10c0/967f2ae60d610b7b252a4cbb55a7a3331c78293c94b4dd9c264d384ca93354c089b3af9c0dd023534efdc74ffbc82510f7ad4399cf82bc37bc07052eea485f18
+ languageName: node
+ linkType: hard
+
+"bs58@npm:^4.0.0":
+ version: 4.0.1
+ resolution: "bs58@npm:4.0.1"
+ dependencies:
+ base-x: "npm:^3.0.2"
+ checksum: 10c0/613a1b1441e754279a0e3f44d1faeb8c8e838feef81e550efe174ff021dd2e08a4c9ae5805b52dfdde79f97b5c0918c78dd24a0eb726c4a94365f0984a0ffc65
+ languageName: node
+ linkType: hard
+
+"bs58check@npm:^2.1.2":
+ version: 2.1.2
+ resolution: "bs58check@npm:2.1.2"
+ dependencies:
+ bs58: "npm:^4.0.0"
+ create-hash: "npm:^1.1.0"
+ safe-buffer: "npm:^5.1.2"
+ checksum: 10c0/5d33f319f0d7abbe1db786f13f4256c62a076bc8d184965444cb62ca4206b2c92bee58c93bce57150ffbbbe00c48838ac02e6f384e0da8215cac219c0556baa9
+ languageName: node
+ linkType: hard
+
+"buffer-xor@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "buffer-xor@npm:1.0.3"
+ checksum: 10c0/fd269d0e0bf71ecac3146187cfc79edc9dbb054e2ee69b4d97dfb857c6d997c33de391696d04bdd669272751fa48e7872a22f3a6c7b07d6c0bc31dbe02a4075c
+ languageName: node
+ linkType: hard
+
+"busboy@npm:1.6.0":
+ version: 1.6.0
+ resolution: "busboy@npm:1.6.0"
+ dependencies:
+ streamsearch: "npm:^1.1.0"
+ checksum: 10c0/fa7e836a2b82699b6e074393428b91ae579d4f9e21f5ac468e1b459a244341d722d2d22d10920cdd849743dbece6dca11d72de939fb75a7448825cf2babfba1f
+ languageName: node
+ linkType: hard
+
+"cacache@npm:^18.0.0":
+ version: 18.0.4
+ resolution: "cacache@npm:18.0.4"
+ dependencies:
+ "@npmcli/fs": "npm:^3.1.0"
+ fs-minipass: "npm:^3.0.0"
+ glob: "npm:^10.2.2"
+ lru-cache: "npm:^10.0.1"
+ minipass: "npm:^7.0.3"
+ minipass-collect: "npm:^2.0.1"
+ minipass-flush: "npm:^1.0.5"
+ minipass-pipeline: "npm:^1.2.4"
+ p-map: "npm:^4.0.0"
+ ssri: "npm:^10.0.0"
+ tar: "npm:^6.1.11"
+ unique-filename: "npm:^3.0.0"
+ checksum: 10c0/6c055bafed9de4f3dcc64ac3dc7dd24e863210902b7c470eb9ce55a806309b3efff78033e3d8b4f7dcc5d467f2db43c6a2857aaaf26f0094b8a351d44c42179f
+ languageName: node
+ linkType: hard
+
+"camelcase-css@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "camelcase-css@npm:2.0.1"
+ checksum: 10c0/1a1a3137e8a781e6cbeaeab75634c60ffd8e27850de410c162cce222ea331cd1ba5364e8fb21c95e5ca76f52ac34b81a090925ca00a87221355746d049c6e273
+ languageName: node
+ linkType: hard
+
+"caniuse-lite@npm:^1.0.30001579":
+ version: 1.0.30001683
+ resolution: "caniuse-lite@npm:1.0.30001683"
+ checksum: 10c0/0ca7f4f2fbd0c71fde5a14ca2e29bb1dcb84c095d7a3d88e47371e062f276f1dc31da3f10931ec134ef7fb096259c0d67c9ffb843a9ec4a040a85eb2fea0bdec
+ languageName: node
+ linkType: hard
+
+"chalk@npm:~5.3.0":
+ version: 5.3.0
+ resolution: "chalk@npm:5.3.0"
+ checksum: 10c0/8297d436b2c0f95801103ff2ef67268d362021b8210daf8ddbe349695333eb3610a71122172ff3b0272f1ef2cf7cc2c41fdaa4715f52e49ffe04c56340feed09
+ languageName: node
+ linkType: hard
+
+"chokidar@npm:^3.6.0":
+ version: 3.6.0
+ resolution: "chokidar@npm:3.6.0"
+ dependencies:
+ anymatch: "npm:~3.1.2"
+ braces: "npm:~3.0.2"
+ fsevents: "npm:~2.3.2"
+ glob-parent: "npm:~5.1.2"
+ is-binary-path: "npm:~2.1.0"
+ is-glob: "npm:~4.0.1"
+ normalize-path: "npm:~3.0.0"
+ readdirp: "npm:~3.6.0"
+ dependenciesMeta:
+ fsevents:
+ optional: true
+ checksum: 10c0/8361dcd013f2ddbe260eacb1f3cb2f2c6f2b0ad118708a343a5ed8158941a39cb8fb1d272e0f389712e74ee90ce8ba864eece9e0e62b9705cb468a2f6d917462
+ languageName: node
+ linkType: hard
+
+"chownr@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "chownr@npm:2.0.0"
+ checksum: 10c0/594754e1303672171cc04e50f6c398ae16128eb134a88f801bf5354fd96f205320f23536a045d9abd8b51024a149696e51231565891d4efdab8846021ecf88e6
+ languageName: node
+ linkType: hard
+
+"cipher-base@npm:^1.0.0, cipher-base@npm:^1.0.1, cipher-base@npm:^1.0.3":
+ version: 1.0.6
+ resolution: "cipher-base@npm:1.0.6"
+ dependencies:
+ inherits: "npm:^2.0.4"
+ safe-buffer: "npm:^5.2.1"
+ checksum: 10c0/f73268e0ee6585800875d9748f2a2377ae7c2c3375cba346f75598ac6f6bc3a25dec56e984a168ced1a862529ffffe615363f750c40349039d96bd30fba0fca8
+ languageName: node
+ linkType: hard
+
+"class-variance-authority@npm:^0.7.1":
+ version: 0.7.1
+ resolution: "class-variance-authority@npm:0.7.1"
+ dependencies:
+ clsx: "npm:^2.1.1"
+ checksum: 10c0/0f438cea22131808b99272de0fa933c2532d5659773bfec0c583de7b3f038378996d3350683426b8e9c74a6286699382106d71fbec52f0dd5fbb191792cccb5b
+ languageName: node
+ linkType: hard
+
+"clean-stack@npm:^2.0.0":
+ version: 2.2.0
+ resolution: "clean-stack@npm:2.2.0"
+ checksum: 10c0/1f90262d5f6230a17e27d0c190b09d47ebe7efdd76a03b5a1127863f7b3c9aec4c3e6c8bb3a7bbf81d553d56a1fd35728f5a8ef4c63f867ac8d690109742a8c1
+ languageName: node
+ linkType: hard
+
+"cli-cursor@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "cli-cursor@npm:5.0.0"
+ dependencies:
+ restore-cursor: "npm:^5.0.0"
+ checksum: 10c0/7ec62f69b79f6734ab209a3e4dbdc8af7422d44d360a7cb1efa8a0887bbe466a6e625650c466fe4359aee44dbe2dc0b6994b583d40a05d0808a5cb193641d220
+ languageName: node
+ linkType: hard
+
+"cli-truncate@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "cli-truncate@npm:4.0.0"
+ dependencies:
+ slice-ansi: "npm:^5.0.0"
+ string-width: "npm:^7.0.0"
+ checksum: 10c0/d7f0b73e3d9b88cb496e6c086df7410b541b56a43d18ade6a573c9c18bd001b1c3fba1ad578f741a4218fdc794d042385f8ac02c25e1c295a2d8b9f3cb86eb4c
+ languageName: node
+ linkType: hard
+
+"client-only@npm:0.0.1":
+ version: 0.0.1
+ resolution: "client-only@npm:0.0.1"
+ checksum: 10c0/9d6cfd0c19e1c96a434605added99dff48482152af791ec4172fb912a71cff9027ff174efd8cdb2160cc7f377543e0537ffc462d4f279bc4701de3f2a3c4b358
+ languageName: node
+ linkType: hard
+
+"clsx@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "clsx@npm:2.1.1"
+ checksum: 10c0/c4c8eb865f8c82baab07e71bfa8897c73454881c4f99d6bc81585aecd7c441746c1399d08363dc096c550cceaf97bd4ce1e8854e1771e9998d9f94c4fe075839
+ languageName: node
+ linkType: hard
+
+"color-convert@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "color-convert@npm:2.0.1"
+ dependencies:
+ color-name: "npm:~1.1.4"
+ checksum: 10c0/37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7
+ languageName: node
+ linkType: hard
+
+"color-name@npm:^1.0.0, color-name@npm:~1.1.4":
+ version: 1.1.4
+ resolution: "color-name@npm:1.1.4"
+ checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95
+ languageName: node
+ linkType: hard
+
+"color-string@npm:^1.9.0":
+ version: 1.9.1
+ resolution: "color-string@npm:1.9.1"
+ dependencies:
+ color-name: "npm:^1.0.0"
+ simple-swizzle: "npm:^0.2.2"
+ checksum: 10c0/b0bfd74c03b1f837f543898b512f5ea353f71630ccdd0d66f83028d1f0924a7d4272deb278b9aef376cacf1289b522ac3fb175e99895283645a2dc3a33af2404
+ languageName: node
+ linkType: hard
+
+"color@npm:^4.2.3":
+ version: 4.2.3
+ resolution: "color@npm:4.2.3"
+ dependencies:
+ color-convert: "npm:^2.0.1"
+ color-string: "npm:^1.9.0"
+ checksum: 10c0/7fbe7cfb811054c808349de19fb380252e5e34e61d7d168ec3353e9e9aacb1802674bddc657682e4e9730c2786592a4de6f8283e7e0d3870b829bb0b7b2f6118
+ languageName: node
+ linkType: hard
+
+"colorette@npm:^2.0.20":
+ version: 2.0.20
+ resolution: "colorette@npm:2.0.20"
+ checksum: 10c0/e94116ff33b0ff56f3b83b9ace895e5bf87c2a7a47b3401b8c3f3226e050d5ef76cf4072fb3325f9dc24d1698f9b730baf4e05eeaf861d74a1883073f4c98a40
+ languageName: node
+ linkType: hard
+
+"combined-stream@npm:^1.0.8":
+ version: 1.0.8
+ resolution: "combined-stream@npm:1.0.8"
+ dependencies:
+ delayed-stream: "npm:~1.0.0"
+ checksum: 10c0/0dbb829577e1b1e839fa82b40c07ffaf7de8a09b935cadd355a73652ae70a88b4320db322f6634a4ad93424292fa80973ac6480986247f1734a1137debf271d5
+ languageName: node
+ linkType: hard
+
+"commander@npm:^2.19.0":
+ version: 2.20.3
+ resolution: "commander@npm:2.20.3"
+ checksum: 10c0/74c781a5248c2402a0a3e966a0a2bba3c054aad144f5c023364be83265e796b20565aa9feff624132ff629aa64e16999fa40a743c10c12f7c61e96a794b99288
+ languageName: node
+ linkType: hard
+
+"commander@npm:^4.0.0":
+ version: 4.1.1
+ resolution: "commander@npm:4.1.1"
+ checksum: 10c0/84a76c08fe6cc08c9c93f62ac573d2907d8e79138999312c92d4155bc2325d487d64d13f669b2000c9f8caf70493c1be2dac74fec3c51d5a04f8bc3ae1830bab
+ languageName: node
+ linkType: hard
+
+"commander@npm:~12.1.0":
+ version: 12.1.0
+ resolution: "commander@npm:12.1.0"
+ checksum: 10c0/6e1996680c083b3b897bfc1cfe1c58dfbcd9842fd43e1aaf8a795fbc237f65efcc860a3ef457b318e73f29a4f4a28f6403c3d653d021d960e4632dd45bde54a9
+ languageName: node
+ linkType: hard
+
+"create-hash@npm:^1.1.0, create-hash@npm:^1.1.2, create-hash@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "create-hash@npm:1.2.0"
+ dependencies:
+ cipher-base: "npm:^1.0.1"
+ inherits: "npm:^2.0.1"
+ md5.js: "npm:^1.3.4"
+ ripemd160: "npm:^2.0.1"
+ sha.js: "npm:^2.4.0"
+ checksum: 10c0/d402e60e65e70e5083cb57af96d89567954d0669e90550d7cec58b56d49c4b193d35c43cec8338bc72358198b8cbf2f0cac14775b651e99238e1cf411490f915
+ languageName: node
+ linkType: hard
+
+"create-hmac@npm:^1.1.4, create-hmac@npm:^1.1.7":
+ version: 1.1.7
+ resolution: "create-hmac@npm:1.1.7"
+ dependencies:
+ cipher-base: "npm:^1.0.3"
+ create-hash: "npm:^1.1.0"
+ inherits: "npm:^2.0.1"
+ ripemd160: "npm:^2.0.0"
+ safe-buffer: "npm:^5.0.1"
+ sha.js: "npm:^2.4.8"
+ checksum: 10c0/24332bab51011652a9a0a6d160eed1e8caa091b802335324ae056b0dcb5acbc9fcf173cf10d128eba8548c3ce98dfa4eadaa01bd02f44a34414baee26b651835
+ languageName: node
+ linkType: hard
+
+"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.3":
+ version: 7.0.6
+ resolution: "cross-spawn@npm:7.0.6"
+ dependencies:
+ path-key: "npm:^3.1.0"
+ shebang-command: "npm:^2.0.0"
+ which: "npm:^2.0.1"
+ checksum: 10c0/053ea8b2135caff68a9e81470e845613e374e7309a47731e81639de3eaeb90c3d01af0e0b44d2ab9d50b43467223b88567dfeb3262db942dc063b9976718ffc1
+ languageName: node
+ linkType: hard
+
+"cssesc@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "cssesc@npm:3.0.0"
+ bin:
+ cssesc: bin/cssesc
+ checksum: 10c0/6bcfd898662671be15ae7827120472c5667afb3d7429f1f917737f3bf84c4176003228131b643ae74543f17a394446247df090c597bb9a728cce298606ed0aa7
+ languageName: node
+ linkType: hard
+
+"cssom@npm:^0.5.0":
+ version: 0.5.0
+ resolution: "cssom@npm:0.5.0"
+ checksum: 10c0/8c4121c243baf0678c65dcac29b201ff0067dfecf978de9d5c83b2ff127a8fdefd2bfd54577f5ad8c80ed7d2c8b489ae01c82023545d010c4ecb87683fb403dd
+ languageName: node
+ linkType: hard
+
+"cssom@npm:~0.3.6":
+ version: 0.3.8
+ resolution: "cssom@npm:0.3.8"
+ checksum: 10c0/d74017b209440822f9e24d8782d6d2e808a8fdd58fa626a783337222fe1c87a518ba944d4c88499031b4786e68772c99dfae616638d71906fe9f203aeaf14411
+ languageName: node
+ linkType: hard
+
+"cssstyle@npm:^2.3.0":
+ version: 2.3.0
+ resolution: "cssstyle@npm:2.3.0"
+ dependencies:
+ cssom: "npm:~0.3.6"
+ checksum: 10c0/863400da2a458f73272b9a55ba7ff05de40d850f22eb4f37311abebd7eff801cf1cd2fb04c4c92b8c3daed83fe766e52e4112afb7bc88d86c63a9c2256a7d178
+ languageName: node
+ linkType: hard
+
+"csstype@npm:^3.0.2":
+ version: 3.1.3
+ resolution: "csstype@npm:3.1.3"
+ checksum: 10c0/80c089d6f7e0c5b2bd83cf0539ab41474198579584fa10d86d0cafe0642202343cbc119e076a0b1aece191989477081415d66c9fefbf3c957fc2fc4b7009f248
+ languageName: node
+ linkType: hard
+
+"data-urls@npm:^3.0.2":
+ version: 3.0.2
+ resolution: "data-urls@npm:3.0.2"
+ dependencies:
+ abab: "npm:^2.0.6"
+ whatwg-mimetype: "npm:^3.0.0"
+ whatwg-url: "npm:^11.0.0"
+ checksum: 10c0/051c3aaaf3e961904f136aab095fcf6dff4db23a7fc759dd8ba7b3e6ba03fc07ef608086caad8ab910d864bd3b5e57d0d2f544725653d77c96a2c971567045f4
+ languageName: node
+ linkType: hard
+
+"debug@npm:4, debug@npm:^4.3.4, debug@npm:~4.3.6":
+ version: 4.3.7
+ resolution: "debug@npm:4.3.7"
+ dependencies:
+ ms: "npm:^2.1.3"
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ checksum: 10c0/1471db19c3b06d485a622d62f65947a19a23fbd0dd73f7fd3eafb697eec5360cde447fb075919987899b1a2096e85d35d4eb5a4de09a57600ac9cf7e6c8e768b
+ languageName: node
+ linkType: hard
+
+"decimal.js@npm:^10.4.2":
+ version: 10.4.3
+ resolution: "decimal.js@npm:10.4.3"
+ checksum: 10c0/6d60206689ff0911f0ce968d40f163304a6c1bc739927758e6efc7921cfa630130388966f16bf6ef6b838cb33679fbe8e7a78a2f3c478afce841fd55ac8fb8ee
+ languageName: node
+ linkType: hard
+
+"deepmerge@npm:^4.2.2":
+ version: 4.3.1
+ resolution: "deepmerge@npm:4.3.1"
+ checksum: 10c0/e53481aaf1aa2c4082b5342be6b6d8ad9dfe387bc92ce197a66dea08bd4265904a087e75e464f14d1347cf2ac8afe1e4c16b266e0561cc5df29382d3c5f80044
+ languageName: node
+ linkType: hard
+
+"delayed-stream@npm:~1.0.0":
+ version: 1.0.0
+ resolution: "delayed-stream@npm:1.0.0"
+ checksum: 10c0/d758899da03392e6712f042bec80aa293bbe9e9ff1b2634baae6a360113e708b91326594c8a486d475c69d6259afb7efacdc3537bfcda1c6c648e390ce601b19
+ languageName: node
+ linkType: hard
+
+"detect-libc@npm:^2.0.4":
+ version: 2.0.4
+ resolution: "detect-libc@npm:2.0.4"
+ checksum: 10c0/c15541f836eba4b1f521e4eecc28eefefdbc10a94d3b8cb4c507689f332cc111babb95deda66f2de050b22122113189986d5190be97d51b5a2b23b938415e67c
+ languageName: node
+ linkType: hard
+
+"detect-node-es@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "detect-node-es@npm:1.1.0"
+ checksum: 10c0/e562f00de23f10c27d7119e1af0e7388407eb4b06596a25f6d79a360094a109ff285de317f02b090faae093d314cf6e73ac3214f8a5bb3a0def5bece94557fbe
+ languageName: node
+ linkType: hard
+
+"didyoumean@npm:^1.2.2":
+ version: 1.2.2
+ resolution: "didyoumean@npm:1.2.2"
+ checksum: 10c0/95d0b53d23b851aacff56dfadb7ecfedce49da4232233baecfeecb7710248c4aa03f0aa8995062f0acafaf925adf8536bd7044a2e68316fd7d411477599bc27b
+ languageName: node
+ linkType: hard
+
+"discontinuous-range@npm:1.0.0":
+ version: 1.0.0
+ resolution: "discontinuous-range@npm:1.0.0"
+ checksum: 10c0/487b105f83c1cc528e25e65d3c4b73958ec79769b7bd0e264414702a23a7e2b282c72982b4bef4af29fcab53f47816c3f0a5c40d85a99a490f4bc35b83dc00f8
+ languageName: node
+ linkType: hard
+
+"dlv@npm:^1.1.3":
+ version: 1.1.3
+ resolution: "dlv@npm:1.1.3"
+ checksum: 10c0/03eb4e769f19a027fd5b43b59e8a05e3fd2100ac239ebb0bf9a745de35d449e2f25cfaf3aa3934664551d72856f4ae8b7822016ce5c42c2d27c18ae79429ec42
+ languageName: node
+ linkType: hard
+
+"dom-serializer@npm:^1.0.1":
+ version: 1.4.1
+ resolution: "dom-serializer@npm:1.4.1"
+ dependencies:
+ domelementtype: "npm:^2.0.1"
+ domhandler: "npm:^4.2.0"
+ entities: "npm:^2.0.0"
+ checksum: 10c0/67d775fa1ea3de52035c98168ddcd59418356943b5eccb80e3c8b3da53adb8e37edb2cc2f885802b7b1765bf5022aec21dfc32910d7f9e6de4c3148f095ab5e0
+ languageName: node
+ linkType: hard
+
+"domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0":
+ version: 2.3.0
+ resolution: "domelementtype@npm:2.3.0"
+ checksum: 10c0/686f5a9ef0fff078c1412c05db73a0dce096190036f33e400a07e2a4518e9f56b1e324f5c576a0a747ef0e75b5d985c040b0d51945ce780c0dd3c625a18cd8c9
+ languageName: node
+ linkType: hard
+
+"domexception@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "domexception@npm:4.0.0"
+ dependencies:
+ webidl-conversions: "npm:^7.0.0"
+ checksum: 10c0/774277cd9d4df033f852196e3c0077a34dbd15a96baa4d166e0e47138a80f4c0bdf0d94e4703e6ff5883cec56bb821a6fff84402d8a498e31de7c87eb932a294
+ languageName: node
+ linkType: hard
+
+"domhandler@npm:^4.0.0, domhandler@npm:^4.2.0":
+ version: 4.3.1
+ resolution: "domhandler@npm:4.3.1"
+ dependencies:
+ domelementtype: "npm:^2.2.0"
+ checksum: 10c0/5c199c7468cb052a8b5ab80b13528f0db3d794c64fc050ba793b574e158e67c93f8336e87fd81e9d5ee43b0e04aea4d8b93ed7be4899cb726a1601b3ba18538b
+ languageName: node
+ linkType: hard
+
+"dompurify@npm:^2.4.0":
+ version: 2.5.7
+ resolution: "dompurify@npm:2.5.7"
+ checksum: 10c0/23c4f737182fcf3e731e458c3930ef4d2916191e4180e1e345f153124dfa7ec117d2810af1754e8854c581131fc75dac914a8391183d1511852ef32b4055f711
+ languageName: node
+ linkType: hard
+
+"domutils@npm:^2.5.2":
+ version: 2.8.0
+ resolution: "domutils@npm:2.8.0"
+ dependencies:
+ dom-serializer: "npm:^1.0.1"
+ domelementtype: "npm:^2.2.0"
+ domhandler: "npm:^4.2.0"
+ checksum: 10c0/d58e2ae01922f0dd55894e61d18119924d88091837887bf1438f2327f32c65eb76426bd9384f81e7d6dcfb048e0f83c19b222ad7101176ad68cdc9c695b563db
+ languageName: node
+ linkType: hard
+
+"eastasianwidth@npm:^0.2.0":
+ version: 0.2.0
+ resolution: "eastasianwidth@npm:0.2.0"
+ checksum: 10c0/26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39
+ languageName: node
+ linkType: hard
+
+"elliptic@npm:6.6.1, elliptic@npm:^6.5.2, elliptic@npm:^6.5.7":
+ version: 6.6.1
+ resolution: "elliptic@npm:6.6.1"
+ dependencies:
+ bn.js: "npm:^4.11.9"
+ brorand: "npm:^1.1.0"
+ hash.js: "npm:^1.0.0"
+ hmac-drbg: "npm:^1.0.1"
+ inherits: "npm:^2.0.4"
+ minimalistic-assert: "npm:^1.0.1"
+ minimalistic-crypto-utils: "npm:^1.0.1"
+ checksum: 10c0/8b24ef782eec8b472053793ea1e91ae6bee41afffdfcb78a81c0a53b191e715cbe1292aa07165958a9bbe675bd0955142560b1a007ffce7d6c765bcaf951a867
+ languageName: node
+ linkType: hard
+
+"emoji-regex@npm:^10.3.0":
+ version: 10.4.0
+ resolution: "emoji-regex@npm:10.4.0"
+ checksum: 10c0/a3fcedfc58bfcce21a05a5f36a529d81e88d602100145fcca3dc6f795e3c8acc4fc18fe773fbf9b6d6e9371205edb3afa2668ec3473fa2aa7fd47d2a9d46482d
+ languageName: node
+ linkType: hard
+
+"emoji-regex@npm:^8.0.0":
+ version: 8.0.0
+ resolution: "emoji-regex@npm:8.0.0"
+ checksum: 10c0/b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010
+ languageName: node
+ linkType: hard
+
+"emoji-regex@npm:^9.2.2":
+ version: 9.2.2
+ resolution: "emoji-regex@npm:9.2.2"
+ checksum: 10c0/af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639
+ languageName: node
+ linkType: hard
+
+"encoding@npm:^0.1.13":
+ version: 0.1.13
+ resolution: "encoding@npm:0.1.13"
+ dependencies:
+ iconv-lite: "npm:^0.6.2"
+ checksum: 10c0/36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039
+ languageName: node
+ linkType: hard
+
+"entities@npm:^2.0.0":
+ version: 2.2.0
+ resolution: "entities@npm:2.2.0"
+ checksum: 10c0/7fba6af1f116300d2ba1c5673fc218af1961b20908638391b4e1e6d5850314ee2ac3ec22d741b3a8060479911c99305164aed19b6254bde75e7e6b1b2c3f3aa3
+ languageName: node
+ linkType: hard
+
+"entities@npm:^4.5.0":
+ version: 4.5.0
+ resolution: "entities@npm:4.5.0"
+ checksum: 10c0/5b039739f7621f5d1ad996715e53d964035f75ad3b9a4d38c6b3804bb226e282ffeae2443624d8fdd9c47d8e926ae9ac009c54671243f0c3294c26af7cc85250
+ languageName: node
+ linkType: hard
+
+"env-paths@npm:^2.2.0":
+ version: 2.2.1
+ resolution: "env-paths@npm:2.2.1"
+ checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4
+ languageName: node
+ linkType: hard
+
+"environment@npm:^1.0.0":
+ version: 1.1.0
+ resolution: "environment@npm:1.1.0"
+ checksum: 10c0/fb26434b0b581ab397039e51ff3c92b34924a98b2039dcb47e41b7bca577b9dbf134a8eadb364415c74464b682e2d3afe1a4c0eb9873dc44ea814c5d3103331d
+ languageName: node
+ linkType: hard
+
+"err-code@npm:^2.0.2":
+ version: 2.0.3
+ resolution: "err-code@npm:2.0.3"
+ checksum: 10c0/b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66
+ languageName: node
+ linkType: hard
+
+"escodegen@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "escodegen@npm:2.1.0"
+ dependencies:
+ esprima: "npm:^4.0.1"
+ estraverse: "npm:^5.2.0"
+ esutils: "npm:^2.0.2"
+ source-map: "npm:~0.6.1"
+ dependenciesMeta:
+ source-map:
+ optional: true
+ bin:
+ escodegen: bin/escodegen.js
+ esgenerate: bin/esgenerate.js
+ checksum: 10c0/e1450a1f75f67d35c061bf0d60888b15f62ab63aef9df1901cffc81cffbbb9e8b3de237c5502cf8613a017c1df3a3003881307c78835a1ab54d8c8d2206e01d3
+ languageName: node
+ linkType: hard
+
+"esprima@npm:^4.0.1":
+ version: 4.0.1
+ resolution: "esprima@npm:4.0.1"
+ bin:
+ esparse: ./bin/esparse.js
+ esvalidate: ./bin/esvalidate.js
+ checksum: 10c0/ad4bab9ead0808cf56501750fd9d3fb276f6b105f987707d059005d57e182d18a7c9ec7f3a01794ebddcca676773e42ca48a32d67a250c9d35e009ca613caba3
+ languageName: node
+ linkType: hard
+
+"estraverse@npm:^5.2.0":
+ version: 5.3.0
+ resolution: "estraverse@npm:5.3.0"
+ checksum: 10c0/1ff9447b96263dec95d6d67431c5e0771eb9776427421260a3e2f0fdd5d6bd4f8e37a7338f5ad2880c9f143450c9b1e4fc2069060724570a49cf9cf0312bd107
+ languageName: node
+ linkType: hard
+
+"esutils@npm:^2.0.2":
+ version: 2.0.3
+ resolution: "esutils@npm:2.0.3"
+ checksum: 10c0/9a2fe69a41bfdade834ba7c42de4723c97ec776e40656919c62cbd13607c45e127a003f05f724a1ea55e5029a4cf2de444b13009f2af71271e42d93a637137c7
+ languageName: node
+ linkType: hard
+
+"ethereum-cryptography@npm:^0.1.3":
+ version: 0.1.3
+ resolution: "ethereum-cryptography@npm:0.1.3"
+ dependencies:
+ "@types/pbkdf2": "npm:^3.0.0"
+ "@types/secp256k1": "npm:^4.0.1"
+ blakejs: "npm:^1.1.0"
+ browserify-aes: "npm:^1.2.0"
+ bs58check: "npm:^2.1.2"
+ create-hash: "npm:^1.2.0"
+ create-hmac: "npm:^1.1.7"
+ hash.js: "npm:^1.1.7"
+ keccak: "npm:^3.0.0"
+ pbkdf2: "npm:^3.0.17"
+ randombytes: "npm:^2.1.0"
+ safe-buffer: "npm:^5.1.2"
+ scrypt-js: "npm:^3.0.0"
+ secp256k1: "npm:^4.0.1"
+ setimmediate: "npm:^1.0.5"
+ checksum: 10c0/aa36e11fca9d67d67c96e02a98b33bae2e1add20bd11af43feb7f28cdafe0cd3bdbae3bfecc7f2d9ec8f504b10a1c8f7590f5f7fe236560fd8083dd321ad7144
+ languageName: node
+ linkType: hard
+
+"ethereumjs-abi@npm:^0.6.5":
+ version: 0.6.8
+ resolution: "ethereumjs-abi@npm:0.6.8"
+ dependencies:
+ bn.js: "npm:^4.11.8"
+ ethereumjs-util: "npm:^6.0.0"
+ checksum: 10c0/a7ff1917625e3c812cb3bca6c1231fc0ece282cc7d202d60545a9c31cd379fd751bfed5ff78dae4279cb1ba4d0e8967f9fdd4f135a334a38dbf04e7afd0c4bcf
+ languageName: node
+ linkType: hard
+
+"ethereumjs-util@npm:^6.0.0":
+ version: 6.2.1
+ resolution: "ethereumjs-util@npm:6.2.1"
+ dependencies:
+ "@types/bn.js": "npm:^4.11.3"
+ bn.js: "npm:^4.11.0"
+ create-hash: "npm:^1.1.2"
+ elliptic: "npm:^6.5.2"
+ ethereum-cryptography: "npm:^0.1.3"
+ ethjs-util: "npm:0.1.6"
+ rlp: "npm:^2.2.3"
+ checksum: 10c0/64aa7e6d591a0b890eb147c5d81f80a6456e87b3056e6bbafb54dff63f6ae9e646406763e8bd546c3b0b0162d027aecb3844873e894681826b03e0298f57e7a4
+ languageName: node
+ linkType: hard
+
+"ethers@npm:^5.8.0":
+ version: 5.8.0
+ resolution: "ethers@npm:5.8.0"
+ dependencies:
+ "@ethersproject/abi": "npm:5.8.0"
+ "@ethersproject/abstract-provider": "npm:5.8.0"
+ "@ethersproject/abstract-signer": "npm:5.8.0"
+ "@ethersproject/address": "npm:5.8.0"
+ "@ethersproject/base64": "npm:5.8.0"
+ "@ethersproject/basex": "npm:5.8.0"
+ "@ethersproject/bignumber": "npm:5.8.0"
+ "@ethersproject/bytes": "npm:5.8.0"
+ "@ethersproject/constants": "npm:5.8.0"
+ "@ethersproject/contracts": "npm:5.8.0"
+ "@ethersproject/hash": "npm:5.8.0"
+ "@ethersproject/hdnode": "npm:5.8.0"
+ "@ethersproject/json-wallets": "npm:5.8.0"
+ "@ethersproject/keccak256": "npm:5.8.0"
+ "@ethersproject/logger": "npm:5.8.0"
+ "@ethersproject/networks": "npm:5.8.0"
+ "@ethersproject/pbkdf2": "npm:5.8.0"
+ "@ethersproject/properties": "npm:5.8.0"
+ "@ethersproject/providers": "npm:5.8.0"
+ "@ethersproject/random": "npm:5.8.0"
+ "@ethersproject/rlp": "npm:5.8.0"
+ "@ethersproject/sha2": "npm:5.8.0"
+ "@ethersproject/signing-key": "npm:5.8.0"
+ "@ethersproject/solidity": "npm:5.8.0"
+ "@ethersproject/strings": "npm:5.8.0"
+ "@ethersproject/transactions": "npm:5.8.0"
+ "@ethersproject/units": "npm:5.8.0"
+ "@ethersproject/wallet": "npm:5.8.0"
+ "@ethersproject/web": "npm:5.8.0"
+ "@ethersproject/wordlists": "npm:5.8.0"
+ checksum: 10c0/8f187bb6af3736fbafcb613d8fb5be31fe7667a1bae480dd0a4c31b597ed47e0693d552adcababcb05111da39a059fac22e44840ce1671b1cc972de22d6d85d9
+ languageName: node
+ linkType: hard
+
+"ethjs-util@npm:0.1.6":
+ version: 0.1.6
+ resolution: "ethjs-util@npm:0.1.6"
+ dependencies:
+ is-hex-prefixed: "npm:1.0.0"
+ strip-hex-prefix: "npm:1.0.0"
+ checksum: 10c0/9b4d6268705fd0620e73a56d2fa7b8a7c6b9770b2cf7f8ffe3a9c46b8bd1c5a08fff3d1181bb18cf85cf12b6fdbb6dca6d9aff6506005f3f565e742f026e6339
+ languageName: node
+ linkType: hard
+
+"eventemitter3@npm:5.0.1, eventemitter3@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "eventemitter3@npm:5.0.1"
+ checksum: 10c0/4ba5c00c506e6c786b4d6262cfbce90ddc14c10d4667e5c83ae993c9de88aa856033994dd2b35b83e8dc1170e224e66a319fa80adc4c32adcd2379bbc75da814
+ languageName: node
+ linkType: hard
+
+"evp_bytestokey@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "evp_bytestokey@npm:1.0.3"
+ dependencies:
+ md5.js: "npm:^1.3.4"
+ node-gyp: "npm:latest"
+ safe-buffer: "npm:^5.1.1"
+ checksum: 10c0/77fbe2d94a902a80e9b8f5a73dcd695d9c14899c5e82967a61b1fc6cbbb28c46552d9b127cff47c45fcf684748bdbcfa0a50410349109de87ceb4b199ef6ee99
+ languageName: node
+ linkType: hard
+
+"execa@npm:~8.0.1":
+ version: 8.0.1
+ resolution: "execa@npm:8.0.1"
+ dependencies:
+ cross-spawn: "npm:^7.0.3"
+ get-stream: "npm:^8.0.1"
+ human-signals: "npm:^5.0.0"
+ is-stream: "npm:^3.0.0"
+ merge-stream: "npm:^2.0.0"
+ npm-run-path: "npm:^5.1.0"
+ onetime: "npm:^6.0.0"
+ signal-exit: "npm:^4.1.0"
+ strip-final-newline: "npm:^3.0.0"
+ checksum: 10c0/2c52d8775f5bf103ce8eec9c7ab3059909ba350a5164744e9947ed14a53f51687c040a250bda833f906d1283aa8803975b84e6c8f7a7c42f99dc8ef80250d1af
+ languageName: node
+ linkType: hard
+
+"exponential-backoff@npm:^3.1.1":
+ version: 3.1.1
+ resolution: "exponential-backoff@npm:3.1.1"
+ checksum: 10c0/160456d2d647e6019640bd07111634d8c353038d9fa40176afb7cd49b0548bdae83b56d05e907c2cce2300b81cae35d800ef92fefb9d0208e190fa3b7d6bb579
+ languageName: node
+ linkType: hard
+
+"fast-glob@npm:^3.3.2":
+ version: 3.3.2
+ resolution: "fast-glob@npm:3.3.2"
+ dependencies:
+ "@nodelib/fs.stat": "npm:^2.0.2"
+ "@nodelib/fs.walk": "npm:^1.2.3"
+ glob-parent: "npm:^5.1.2"
+ merge2: "npm:^1.3.0"
+ micromatch: "npm:^4.0.4"
+ checksum: 10c0/42baad7b9cd40b63e42039132bde27ca2cb3a4950d0a0f9abe4639ea1aa9d3e3b40f98b1fe31cbc0cc17b664c9ea7447d911a152fa34ec5b72977b125a6fc845
+ languageName: node
+ linkType: hard
+
+"fastq@npm:^1.6.0":
+ version: 1.17.1
+ resolution: "fastq@npm:1.17.1"
+ dependencies:
+ reusify: "npm:^1.0.4"
+ checksum: 10c0/1095f16cea45fb3beff558bb3afa74ca7a9250f5a670b65db7ed585f92b4b48381445cd328b3d87323da81e43232b5d5978a8201bde84e0cd514310f1ea6da34
+ languageName: node
+ linkType: hard
+
+"fill-range@npm:^7.1.1":
+ version: 7.1.1
+ resolution: "fill-range@npm:7.1.1"
+ dependencies:
+ to-regex-range: "npm:^5.0.1"
+ checksum: 10c0/b75b691bbe065472f38824f694c2f7449d7f5004aa950426a2c28f0306c60db9b880c0b0e4ed819997ffb882d1da02cfcfc819bddc94d71627f5269682edf018
+ languageName: node
+ linkType: hard
+
+"foreground-child@npm:^3.1.0":
+ version: 3.3.0
+ resolution: "foreground-child@npm:3.3.0"
+ dependencies:
+ cross-spawn: "npm:^7.0.0"
+ signal-exit: "npm:^4.0.1"
+ checksum: 10c0/028f1d41000553fcfa6c4bb5c372963bf3d9bf0b1f25a87d1a6253014343fb69dfb1b42d9625d7cf44c8ba429940f3d0ff718b62105d4d4a4f6ef8ca0a53faa2
+ languageName: node
+ linkType: hard
+
+"form-data@npm:^4.0.0":
+ version: 4.0.1
+ resolution: "form-data@npm:4.0.1"
+ dependencies:
+ asynckit: "npm:^0.4.0"
+ combined-stream: "npm:^1.0.8"
+ mime-types: "npm:^2.1.12"
+ checksum: 10c0/bb102d570be8592c23f4ea72d7df9daa50c7792eb0cf1c5d7e506c1706e7426a4e4ae48a35b109e91c85f1c0ec63774a21ae252b66f4eb981cb8efef7d0463c8
+ languageName: node
+ linkType: hard
+
+"fs-minipass@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "fs-minipass@npm:2.1.0"
+ dependencies:
+ minipass: "npm:^3.0.0"
+ checksum: 10c0/703d16522b8282d7299337539c3ed6edddd1afe82435e4f5b76e34a79cd74e488a8a0e26a636afc2440e1a23b03878e2122e3a2cfe375a5cf63c37d92b86a004
+ languageName: node
+ linkType: hard
+
+"fs-minipass@npm:^3.0.0":
+ version: 3.0.3
+ resolution: "fs-minipass@npm:3.0.3"
+ dependencies:
+ minipass: "npm:^7.0.3"
+ checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94
+ languageName: node
+ linkType: hard
+
+"fsevents@npm:~2.3.2":
+ version: 2.3.3
+ resolution: "fsevents@npm:2.3.3"
+ dependencies:
+ node-gyp: "npm:latest"
+ checksum: 10c0/a1f0c44595123ed717febbc478aa952e47adfc28e2092be66b8ab1635147254ca6cfe1df792a8997f22716d4cbafc73309899ff7bfac2ac3ad8cf2e4ecc3ec60
+ conditions: os=darwin
+ languageName: node
+ linkType: hard
+
+"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin":
+ version: 2.3.3
+ resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"
+ dependencies:
+ node-gyp: "npm:latest"
+ conditions: os=darwin
+ languageName: node
+ linkType: hard
+
+"function-bind@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "function-bind@npm:1.1.2"
+ checksum: 10c0/d8680ee1e5fcd4c197e4ac33b2b4dce03c71f4d91717292785703db200f5c21f977c568d28061226f9b5900cbcd2c84463646134fd5337e7925e0942bc3f46d5
+ languageName: node
+ linkType: hard
+
+"get-east-asian-width@npm:^1.0.0":
+ version: 1.3.0
+ resolution: "get-east-asian-width@npm:1.3.0"
+ checksum: 10c0/1a049ba697e0f9a4d5514c4623781c5246982bdb61082da6b5ae6c33d838e52ce6726407df285cdbb27ec1908b333cf2820989bd3e986e37bb20979437fdf34b
+ languageName: node
+ linkType: hard
+
+"get-nonce@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "get-nonce@npm:1.0.1"
+ checksum: 10c0/2d7df55279060bf0568549e1ffc9b84bc32a32b7541675ca092dce56317cdd1a59a98dcc4072c9f6a980779440139a3221d7486f52c488e69dc0fd27b1efb162
+ languageName: node
+ linkType: hard
+
+"get-stream@npm:^8.0.1":
+ version: 8.0.1
+ resolution: "get-stream@npm:8.0.1"
+ checksum: 10c0/5c2181e98202b9dae0bb4a849979291043e5892eb40312b47f0c22b9414fc9b28a3b6063d2375705eb24abc41ecf97894d9a51f64ff021511b504477b27b4290
+ languageName: node
+ linkType: hard
+
+"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2":
+ version: 5.1.2
+ resolution: "glob-parent@npm:5.1.2"
+ dependencies:
+ is-glob: "npm:^4.0.1"
+ checksum: 10c0/cab87638e2112bee3f839ef5f6e0765057163d39c66be8ec1602f3823da4692297ad4e972de876ea17c44d652978638d2fd583c6713d0eb6591706825020c9ee
+ languageName: node
+ linkType: hard
+
+"glob-parent@npm:^6.0.2":
+ version: 6.0.2
+ resolution: "glob-parent@npm:6.0.2"
+ dependencies:
+ is-glob: "npm:^4.0.3"
+ checksum: 10c0/317034d88654730230b3f43bb7ad4f7c90257a426e872ea0bf157473ac61c99bf5d205fad8f0185f989be8d2fa6d3c7dce1645d99d545b6ea9089c39f838e7f8
+ languageName: node
+ linkType: hard
+
+"glob@npm:^10.2.2, glob@npm:^10.3.10":
+ version: 10.4.5
+ resolution: "glob@npm:10.4.5"
+ dependencies:
+ foreground-child: "npm:^3.1.0"
+ jackspeak: "npm:^3.1.2"
+ minimatch: "npm:^9.0.4"
+ minipass: "npm:^7.1.2"
+ package-json-from-dist: "npm:^1.0.0"
+ path-scurry: "npm:^1.11.1"
+ bin:
+ glob: dist/esm/bin.mjs
+ checksum: 10c0/19a9759ea77b8e3ca0a43c2f07ecddc2ad46216b786bb8f993c445aee80d345925a21e5280c7b7c6c59e860a0154b84e4b2b60321fea92cd3c56b4a7489f160e
+ languageName: node
+ linkType: hard
+
+"graceful-fs@npm:^4.2.6":
+ version: 4.2.11
+ resolution: "graceful-fs@npm:4.2.11"
+ checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2
+ languageName: node
+ linkType: hard
+
+"hash-base@npm:^3.0.0":
+ version: 3.1.0
+ resolution: "hash-base@npm:3.1.0"
+ dependencies:
+ inherits: "npm:^2.0.4"
+ readable-stream: "npm:^3.6.0"
+ safe-buffer: "npm:^5.2.0"
+ checksum: 10c0/663eabcf4173326fbb65a1918a509045590a26cc7e0964b754eef248d281305c6ec9f6b31cb508d02ffca383ab50028180ce5aefe013e942b44a903ac8dc80d0
+ languageName: node
+ linkType: hard
+
+"hash.js@npm:1.1.7, hash.js@npm:^1.0.0, hash.js@npm:^1.0.3, hash.js@npm:^1.1.7":
+ version: 1.1.7
+ resolution: "hash.js@npm:1.1.7"
+ dependencies:
+ inherits: "npm:^2.0.3"
+ minimalistic-assert: "npm:^1.0.1"
+ checksum: 10c0/41ada59494eac5332cfc1ce6b7ebdd7b88a3864a6d6b08a3ea8ef261332ed60f37f10877e0c825aaa4bddebf164fbffa618286aeeec5296675e2671cbfa746c4
+ languageName: node
+ linkType: hard
+
+"hasown@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "hasown@npm:2.0.2"
+ dependencies:
+ function-bind: "npm:^1.1.2"
+ checksum: 10c0/3769d434703b8ac66b209a4cca0737519925bbdb61dd887f93a16372b14694c63ff4e797686d87c90f08168e81082248b9b028bad60d4da9e0d1148766f56eb9
+ languageName: node
+ linkType: hard
+
+"he@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "he@npm:1.2.0"
+ bin:
+ he: bin/he
+ checksum: 10c0/a27d478befe3c8192f006cdd0639a66798979dfa6e2125c6ac582a19a5ebfec62ad83e8382e6036170d873f46e4536a7e795bf8b95bf7c247f4cc0825ccc8c17
+ languageName: node
+ linkType: hard
+
+"hmac-drbg@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "hmac-drbg@npm:1.0.1"
+ dependencies:
+ hash.js: "npm:^1.0.3"
+ minimalistic-assert: "npm:^1.0.0"
+ minimalistic-crypto-utils: "npm:^1.0.1"
+ checksum: 10c0/f3d9ba31b40257a573f162176ac5930109816036c59a09f901eb2ffd7e5e705c6832bedfff507957125f2086a0ab8f853c0df225642a88bf1fcaea945f20600d
+ languageName: node
+ linkType: hard
+
+"html-encoding-sniffer@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "html-encoding-sniffer@npm:3.0.0"
+ dependencies:
+ whatwg-encoding: "npm:^2.0.0"
+ checksum: 10c0/b17b3b0fb5d061d8eb15121c3b0b536376c3e295ecaf09ba48dd69c6b6c957839db124fe1e2b3f11329753a4ee01aa7dedf63b7677999e86da17fbbdd82c5386
+ languageName: node
+ linkType: hard
+
+"html-to-text@npm:^8.2.1":
+ version: 8.2.1
+ resolution: "html-to-text@npm:8.2.1"
+ dependencies:
+ "@selderee/plugin-htmlparser2": "npm:^0.6.0"
+ deepmerge: "npm:^4.2.2"
+ he: "npm:^1.2.0"
+ htmlparser2: "npm:^6.1.0"
+ minimist: "npm:^1.2.6"
+ selderee: "npm:^0.6.0"
+ bin:
+ html-to-text: bin/cli.js
+ checksum: 10c0/2020c0bf9c91113662c69023e7d8a4fac59027fa7513cf85d2882cbaef7d6b9d0902f4f089fdf70f70f064fa60f1f6d8ac5e269c4004dd5bf7fc6b3f1deb2b93
+ languageName: node
+ linkType: hard
+
+"htmlparser2@npm:^6.1.0":
+ version: 6.1.0
+ resolution: "htmlparser2@npm:6.1.0"
+ dependencies:
+ domelementtype: "npm:^2.0.1"
+ domhandler: "npm:^4.0.0"
+ domutils: "npm:^2.5.2"
+ entities: "npm:^2.0.0"
+ checksum: 10c0/3058499c95634f04dc66be8c2e0927cd86799413b2d6989d8ae542ca4dbf5fa948695d02c27d573acf44843af977aec6d9a7bdd0f6faa6b2d99e2a729b2a31b6
+ languageName: node
+ linkType: hard
+
+"http-cache-semantics@npm:^4.1.1":
+ version: 4.1.1
+ resolution: "http-cache-semantics@npm:4.1.1"
+ checksum: 10c0/ce1319b8a382eb3cbb4a37c19f6bfe14e5bb5be3d09079e885e8c513ab2d3cd9214902f8a31c9dc4e37022633ceabfc2d697405deeaf1b8f3552bb4ed996fdfc
+ languageName: node
+ linkType: hard
+
+"http-proxy-agent@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "http-proxy-agent@npm:5.0.0"
+ dependencies:
+ "@tootallnate/once": "npm:2"
+ agent-base: "npm:6"
+ debug: "npm:4"
+ checksum: 10c0/32a05e413430b2c1e542e5c74b38a9f14865301dd69dff2e53ddb684989440e3d2ce0c4b64d25eb63cf6283e6265ff979a61cf93e3ca3d23047ddfdc8df34a32
+ languageName: node
+ linkType: hard
+
+"http-proxy-agent@npm:^7.0.0":
+ version: 7.0.2
+ resolution: "http-proxy-agent@npm:7.0.2"
+ dependencies:
+ agent-base: "npm:^7.1.0"
+ debug: "npm:^4.3.4"
+ checksum: 10c0/4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921
+ languageName: node
+ linkType: hard
+
+"https-proxy-agent@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "https-proxy-agent@npm:5.0.1"
+ dependencies:
+ agent-base: "npm:6"
+ debug: "npm:4"
+ checksum: 10c0/6dd639f03434003577c62b27cafdb864784ef19b2de430d8ae2a1d45e31c4fd60719e5637b44db1a88a046934307da7089e03d6089ec3ddacc1189d8de8897d1
+ languageName: node
+ linkType: hard
+
+"https-proxy-agent@npm:^7.0.1":
+ version: 7.0.5
+ resolution: "https-proxy-agent@npm:7.0.5"
+ dependencies:
+ agent-base: "npm:^7.0.2"
+ debug: "npm:4"
+ checksum: 10c0/2490e3acec397abeb88807db52cac59102d5ed758feee6df6112ab3ccd8325e8a1ce8bce6f4b66e5470eca102d31e425ace904242e4fa28dbe0c59c4bafa7b2c
+ languageName: node
+ linkType: hard
+
+"human-signals@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "human-signals@npm:5.0.0"
+ checksum: 10c0/5a9359073fe17a8b58e5a085e9a39a950366d9f00217c4ff5878bd312e09d80f460536ea6a3f260b5943a01fe55c158d1cea3fc7bee3d0520aeef04f6d915c82
+ languageName: node
+ linkType: hard
+
+"husky@npm:^9.1.7":
+ version: 9.1.7
+ resolution: "husky@npm:9.1.7"
+ bin:
+ husky: bin.js
+ checksum: 10c0/35bb110a71086c48906aa7cd3ed4913fb913823715359d65e32e0b964cb1e255593b0ae8014a5005c66a68e6fa66c38dcfa8056dbbdfb8b0187c0ffe7ee3a58f
+ languageName: node
+ linkType: hard
+
+"iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2":
+ version: 0.6.3
+ resolution: "iconv-lite@npm:0.6.3"
+ dependencies:
+ safer-buffer: "npm:>= 2.1.2 < 3.0.0"
+ checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1
+ languageName: node
+ linkType: hard
+
+"imurmurhash@npm:^0.1.4":
+ version: 0.1.4
+ resolution: "imurmurhash@npm:0.1.4"
+ checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6
+ languageName: node
+ linkType: hard
+
+"indent-string@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "indent-string@npm:4.0.0"
+ checksum: 10c0/1e1904ddb0cb3d6cce7cd09e27a90184908b7a5d5c21b92e232c93579d314f0b83c246ffb035493d0504b1e9147ba2c9b21df0030f48673fba0496ecd698161f
+ languageName: node
+ linkType: hard
+
+"inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4":
+ version: 2.0.4
+ resolution: "inherits@npm:2.0.4"
+ checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2
+ languageName: node
+ linkType: hard
+
+"intl-messageformat@npm:^10.5.14":
+ version: 10.7.7
+ resolution: "intl-messageformat@npm:10.7.7"
+ dependencies:
+ "@formatjs/ecma402-abstract": "npm:2.2.4"
+ "@formatjs/fast-memoize": "npm:2.2.3"
+ "@formatjs/icu-messageformat-parser": "npm:2.9.4"
+ tslib: "npm:2"
+ checksum: 10c0/691895fb6a73a2feb2569658706e0d452861441de184dd1c9201e458a39fb80fc80080dd40d3d370400a52663f87de7a6d5a263c94245492f7265dd760441a95
+ languageName: node
+ linkType: hard
+
+"invariant@npm:^2.2.4":
+ version: 2.2.4
+ resolution: "invariant@npm:2.2.4"
+ dependencies:
+ loose-envify: "npm:^1.0.0"
+ checksum: 10c0/5af133a917c0bcf65e84e7f23e779e7abc1cd49cb7fdc62d00d1de74b0d8c1b5ee74ac7766099fb3be1b05b26dfc67bab76a17030d2fe7ea2eef867434362dfc
+ languageName: node
+ linkType: hard
+
+"ip-address@npm:^9.0.5":
+ version: 9.0.5
+ resolution: "ip-address@npm:9.0.5"
+ dependencies:
+ jsbn: "npm:1.1.0"
+ sprintf-js: "npm:^1.1.3"
+ checksum: 10c0/331cd07fafcb3b24100613e4b53e1a2b4feab11e671e655d46dc09ee233da5011284d09ca40c4ecbdfe1d0004f462958675c224a804259f2f78d2465a87824bc
+ languageName: node
+ linkType: hard
+
+"is-arrayish@npm:^0.3.1":
+ version: 0.3.2
+ resolution: "is-arrayish@npm:0.3.2"
+ checksum: 10c0/f59b43dc1d129edb6f0e282595e56477f98c40278a2acdc8b0a5c57097c9eff8fe55470493df5775478cf32a4dc8eaf6d3a749f07ceee5bc263a78b2434f6a54
+ languageName: node
+ linkType: hard
+
+"is-binary-path@npm:~2.1.0":
+ version: 2.1.0
+ resolution: "is-binary-path@npm:2.1.0"
+ dependencies:
+ binary-extensions: "npm:^2.0.0"
+ checksum: 10c0/a16eaee59ae2b315ba36fad5c5dcaf8e49c3e27318f8ab8fa3cdb8772bf559c8d1ba750a589c2ccb096113bb64497084361a25960899cb6172a6925ab6123d38
+ languageName: node
+ linkType: hard
+
+"is-core-module@npm:^2.13.0":
+ version: 2.15.1
+ resolution: "is-core-module@npm:2.15.1"
+ dependencies:
+ hasown: "npm:^2.0.2"
+ checksum: 10c0/53432f10c69c40bfd2fa8914133a68709ff9498c86c3bf5fca3cdf3145a56fd2168cbf4a43b29843a6202a120a5f9c5ffba0a4322e1e3441739bc0b641682612
+ languageName: node
+ linkType: hard
+
+"is-extglob@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "is-extglob@npm:2.1.1"
+ checksum: 10c0/5487da35691fbc339700bbb2730430b07777a3c21b9ebaecb3072512dfd7b4ba78ac2381a87e8d78d20ea08affb3f1971b4af629173a6bf435ff8a4c47747912
+ languageName: node
+ linkType: hard
+
+"is-fullwidth-code-point@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "is-fullwidth-code-point@npm:3.0.0"
+ checksum: 10c0/bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc
+ languageName: node
+ linkType: hard
+
+"is-fullwidth-code-point@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "is-fullwidth-code-point@npm:4.0.0"
+ checksum: 10c0/df2a717e813567db0f659c306d61f2f804d480752526886954a2a3e2246c7745fd07a52b5fecf2b68caf0a6c79dcdace6166fdf29cc76ed9975cc334f0a018b8
+ languageName: node
+ linkType: hard
+
+"is-fullwidth-code-point@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "is-fullwidth-code-point@npm:5.0.0"
+ dependencies:
+ get-east-asian-width: "npm:^1.0.0"
+ checksum: 10c0/cd591b27d43d76b05fa65ed03eddce57a16e1eca0b7797ff7255de97019bcaf0219acfc0c4f7af13319e13541f2a53c0ace476f442b13267b9a6a7568f2b65c8
+ languageName: node
+ linkType: hard
+
+"is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1":
+ version: 4.0.3
+ resolution: "is-glob@npm:4.0.3"
+ dependencies:
+ is-extglob: "npm:^2.1.1"
+ checksum: 10c0/17fb4014e22be3bbecea9b2e3a76e9e34ff645466be702f1693e8f1ee1adac84710d0be0bd9f967d6354036fd51ab7c2741d954d6e91dae6bb69714de92c197a
+ languageName: node
+ linkType: hard
+
+"is-hex-prefixed@npm:1.0.0":
+ version: 1.0.0
+ resolution: "is-hex-prefixed@npm:1.0.0"
+ checksum: 10c0/767fa481020ae654ab085ca24c63c518705ff36fdfbfc732292dc69092c6f8fdc551f6ce8c5f6ae704b0a19294e6f62be1b4b9859f0e1ac76e3b1b0733599d94
+ languageName: node
+ linkType: hard
+
+"is-lambda@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "is-lambda@npm:1.0.1"
+ checksum: 10c0/85fee098ae62ba6f1e24cf22678805473c7afd0fb3978a3aa260e354cb7bcb3a5806cf0a98403188465efedec41ab4348e8e4e79305d409601323855b3839d4d
+ languageName: node
+ linkType: hard
+
+"is-number@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "is-number@npm:7.0.0"
+ checksum: 10c0/b4686d0d3053146095ccd45346461bc8e53b80aeb7671cc52a4de02dbbf7dc0d1d2a986e2fe4ae206984b4d34ef37e8b795ebc4f4295c978373e6575e295d811
+ languageName: node
+ linkType: hard
+
+"is-potential-custom-element-name@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "is-potential-custom-element-name@npm:1.0.1"
+ checksum: 10c0/b73e2f22bc863b0939941d369486d308b43d7aef1f9439705e3582bfccaa4516406865e32c968a35f97a99396dac84e2624e67b0a16b0a15086a785e16ce7db9
+ languageName: node
+ linkType: hard
+
+"is-stream@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "is-stream@npm:3.0.0"
+ checksum: 10c0/eb2f7127af02ee9aa2a0237b730e47ac2de0d4e76a4a905a50a11557f2339df5765eaea4ceb8029f1efa978586abe776908720bfcb1900c20c6ec5145f6f29d8
+ languageName: node
+ linkType: hard
+
+"isexe@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "isexe@npm:2.0.0"
+ checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d
+ languageName: node
+ linkType: hard
+
+"isexe@npm:^3.1.1":
+ version: 3.1.1
+ resolution: "isexe@npm:3.1.1"
+ checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7
+ languageName: node
+ linkType: hard
+
+"isomorphic-dompurify@npm:^0.23.0":
+ version: 0.23.0
+ resolution: "isomorphic-dompurify@npm:0.23.0"
+ dependencies:
+ "@types/dompurify": "npm:^2.3.4"
+ dompurify: "npm:^2.4.0"
+ jsdom: "npm:^20.0.1"
+ checksum: 10c0/1a02e6341888c6584e4457eec3376d146084dde05bc6980d47e34700ee24796cc148a86dbeef8e425b0340d7534db4d2d20fe0c84421bb539af71d52f53ddf88
+ languageName: node
+ linkType: hard
+
+"isows@npm:1.0.6":
+ version: 1.0.6
+ resolution: "isows@npm:1.0.6"
+ peerDependencies:
+ ws: "*"
+ checksum: 10c0/f89338f63ce2f497d6cd0f86e42c634209328ebb43b3bdfdc85d8f1589ee75f02b7e6d9e1ba274101d0f6f513b1b8cbe6985e6542b4aaa1f0c5fd50d9c1be95c
+ languageName: node
+ linkType: hard
+
+"jackspeak@npm:^3.1.2":
+ version: 3.4.3
+ resolution: "jackspeak@npm:3.4.3"
+ dependencies:
+ "@isaacs/cliui": "npm:^8.0.2"
+ "@pkgjs/parseargs": "npm:^0.11.0"
+ dependenciesMeta:
+ "@pkgjs/parseargs":
+ optional: true
+ checksum: 10c0/6acc10d139eaefdbe04d2f679e6191b3abf073f111edf10b1de5302c97ec93fffeb2fdd8681ed17f16268aa9dd4f8c588ed9d1d3bffbbfa6e8bf897cbb3149b9
+ languageName: node
+ linkType: hard
+
+"jiti@npm:^1.21.6":
+ version: 1.21.6
+ resolution: "jiti@npm:1.21.6"
+ bin:
+ jiti: bin/jiti.js
+ checksum: 10c0/05b9ed58cd30d0c3ccd3c98209339e74f50abd9a17e716f65db46b6a35812103f6bde6e134be7124d01745586bca8cc5dae1d0d952267c3ebe55171949c32e56
+ languageName: node
+ linkType: hard
+
+"js-sha3@npm:0.8.0":
+ version: 0.8.0
+ resolution: "js-sha3@npm:0.8.0"
+ checksum: 10c0/43a21dc7967c871bd2c46cb1c2ae97441a97169f324e509f382d43330d8f75cf2c96dba7c806ab08a425765a9c847efdd4bffbac2d99c3a4f3de6c0218f40533
+ languageName: node
+ linkType: hard
+
+"js-tokens@npm:^3.0.0 || ^4.0.0":
+ version: 4.0.0
+ resolution: "js-tokens@npm:4.0.0"
+ checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed
+ languageName: node
+ linkType: hard
+
+"jsbn@npm:1.1.0":
+ version: 1.1.0
+ resolution: "jsbn@npm:1.1.0"
+ checksum: 10c0/4f907fb78d7b712e11dea8c165fe0921f81a657d3443dde75359ed52eb2b5d33ce6773d97985a089f09a65edd80b11cb75c767b57ba47391fee4c969f7215c96
+ languageName: node
+ linkType: hard
+
+"jsdom@npm:^20.0.1":
+ version: 20.0.3
+ resolution: "jsdom@npm:20.0.3"
+ dependencies:
+ abab: "npm:^2.0.6"
+ acorn: "npm:^8.8.1"
+ acorn-globals: "npm:^7.0.0"
+ cssom: "npm:^0.5.0"
+ cssstyle: "npm:^2.3.0"
+ data-urls: "npm:^3.0.2"
+ decimal.js: "npm:^10.4.2"
+ domexception: "npm:^4.0.0"
+ escodegen: "npm:^2.0.0"
+ form-data: "npm:^4.0.0"
+ html-encoding-sniffer: "npm:^3.0.0"
+ http-proxy-agent: "npm:^5.0.0"
+ https-proxy-agent: "npm:^5.0.1"
+ is-potential-custom-element-name: "npm:^1.0.1"
+ nwsapi: "npm:^2.2.2"
+ parse5: "npm:^7.1.1"
+ saxes: "npm:^6.0.0"
+ symbol-tree: "npm:^3.2.4"
+ tough-cookie: "npm:^4.1.2"
+ w3c-xmlserializer: "npm:^4.0.0"
+ webidl-conversions: "npm:^7.0.0"
+ whatwg-encoding: "npm:^2.0.0"
+ whatwg-mimetype: "npm:^3.0.0"
+ whatwg-url: "npm:^11.0.0"
+ ws: "npm:^8.11.0"
+ xml-name-validator: "npm:^4.0.0"
+ peerDependencies:
+ canvas: ^2.5.0
+ peerDependenciesMeta:
+ canvas:
+ optional: true
+ checksum: 10c0/b109073bb826a966db7828f46cb1d7371abecd30f182b143c52be5fe1ed84513bbbe995eb3d157241681fcd18331381e61e3dc004d4949f3a63bca02f6214902
+ languageName: node
+ linkType: hard
+
+"keccak@npm:^3.0.0":
+ version: 3.0.4
+ resolution: "keccak@npm:3.0.4"
+ dependencies:
+ node-addon-api: "npm:^2.0.0"
+ node-gyp: "npm:latest"
+ node-gyp-build: "npm:^4.2.0"
+ readable-stream: "npm:^3.6.0"
+ checksum: 10c0/153525c1c1f770beadb8f8897dec2f1d2dcbee11d063fe5f61957a5b236bfd3d2a111ae2727e443aa6a848df5edb98b9ef237c78d56df49087b0ca8a232ca9cd
+ languageName: node
+ linkType: hard
+
+"lilconfig@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "lilconfig@npm:2.1.0"
+ checksum: 10c0/64645641aa8d274c99338e130554abd6a0190533c0d9eb2ce7ebfaf2e05c7d9961f3ffe2bfa39efd3b60c521ba3dd24fa236fe2775fc38501bf82bf49d4678b8
+ languageName: node
+ linkType: hard
+
+"lilconfig@npm:^3.0.0, lilconfig@npm:~3.1.2":
+ version: 3.1.2
+ resolution: "lilconfig@npm:3.1.2"
+ checksum: 10c0/f059630b1a9bddaeba83059db00c672b64dc14074e9f232adce32b38ca1b5686ab737eb665c5ba3c32f147f0002b4bee7311ad0386a9b98547b5623e87071fbe
+ languageName: node
+ linkType: hard
+
+"lines-and-columns@npm:^1.1.6":
+ version: 1.2.4
+ resolution: "lines-and-columns@npm:1.2.4"
+ checksum: 10c0/3da6ee62d4cd9f03f5dc90b4df2540fb85b352081bee77fe4bbcd12c9000ead7f35e0a38b8d09a9bb99b13223446dd8689ff3c4959807620726d788701a83d2d
+ languageName: node
+ linkType: hard
+
+"lint-staged@npm:^15.2.10":
+ version: 15.2.10
+ resolution: "lint-staged@npm:15.2.10"
+ dependencies:
+ chalk: "npm:~5.3.0"
+ commander: "npm:~12.1.0"
+ debug: "npm:~4.3.6"
+ execa: "npm:~8.0.1"
+ lilconfig: "npm:~3.1.2"
+ listr2: "npm:~8.2.4"
+ micromatch: "npm:~4.0.8"
+ pidtree: "npm:~0.6.0"
+ string-argv: "npm:~0.3.2"
+ yaml: "npm:~2.5.0"
+ bin:
+ lint-staged: bin/lint-staged.js
+ checksum: 10c0/6ad7b41f5e87a84fa2eb1990080ea3c68a2f2031b4e81edcdc2a458cc878538eedb310e6f98ffd878a1287e1a52ac968e540ee8a0e96c247e04b0cbc36421cdd
+ languageName: node
+ linkType: hard
+
+"listr2@npm:~8.2.4":
+ version: 8.2.5
+ resolution: "listr2@npm:8.2.5"
+ dependencies:
+ cli-truncate: "npm:^4.0.0"
+ colorette: "npm:^2.0.20"
+ eventemitter3: "npm:^5.0.1"
+ log-update: "npm:^6.1.0"
+ rfdc: "npm:^1.4.1"
+ wrap-ansi: "npm:^9.0.0"
+ checksum: 10c0/f5a9599514b00c27d7eb32d1117c83c61394b2a985ec20e542c798bf91cf42b19340215701522736f5b7b42f557e544afeadec47866e35e5d4f268f552729671
+ languageName: node
+ linkType: hard
+
+"log-update@npm:^6.1.0":
+ version: 6.1.0
+ resolution: "log-update@npm:6.1.0"
+ dependencies:
+ ansi-escapes: "npm:^7.0.0"
+ cli-cursor: "npm:^5.0.0"
+ slice-ansi: "npm:^7.1.0"
+ strip-ansi: "npm:^7.1.0"
+ wrap-ansi: "npm:^9.0.0"
+ checksum: 10c0/4b350c0a83d7753fea34dcac6cd797d1dc9603291565de009baa4aa91c0447eab0d3815a05c8ec9ac04fdfffb43c82adcdb03ec1fceafd8518e1a8c1cff4ff89
+ languageName: node
+ linkType: hard
+
+"loose-envify@npm:^1.0.0":
+ version: 1.4.0
+ resolution: "loose-envify@npm:1.4.0"
+ dependencies:
+ js-tokens: "npm:^3.0.0 || ^4.0.0"
+ bin:
+ loose-envify: cli.js
+ checksum: 10c0/655d110220983c1a4b9c0c679a2e8016d4b67f6e9c7b5435ff5979ecdb20d0813f4dec0a08674fcbdd4846a3f07edbb50a36811fd37930b94aaa0d9daceb017e
+ languageName: node
+ linkType: hard
+
+"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0":
+ version: 10.4.3
+ resolution: "lru-cache@npm:10.4.3"
+ checksum: 10c0/ebd04fbca961e6c1d6c0af3799adcc966a1babe798f685bb84e6599266599cd95d94630b10262f5424539bc4640107e8a33aa28585374abf561d30d16f4b39fb
+ languageName: node
+ linkType: hard
+
+"lucide-react@npm:^0.475.0":
+ version: 0.475.0
+ resolution: "lucide-react@npm:0.475.0"
+ peerDependencies:
+ react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ checksum: 10c0/9cb17bd4e70da4db104874b6b2e9d9c7e2be9438e9d1c0b2565df0c4d0bdd1add41b7dff3cb60840699ecbd29870c453878b42b69a7c46480def0c9370a852a9
+ languageName: node
+ linkType: hard
+
+"make-fetch-happen@npm:^13.0.0":
+ version: 13.0.1
+ resolution: "make-fetch-happen@npm:13.0.1"
+ dependencies:
+ "@npmcli/agent": "npm:^2.0.0"
+ cacache: "npm:^18.0.0"
+ http-cache-semantics: "npm:^4.1.1"
+ is-lambda: "npm:^1.0.1"
+ minipass: "npm:^7.0.2"
+ minipass-fetch: "npm:^3.0.0"
+ minipass-flush: "npm:^1.0.5"
+ minipass-pipeline: "npm:^1.2.4"
+ negotiator: "npm:^0.6.3"
+ proc-log: "npm:^4.2.0"
+ promise-retry: "npm:^2.0.1"
+ ssri: "npm:^10.0.0"
+ checksum: 10c0/df5f4dbb6d98153b751bccf4dc4cc500de85a96a9331db9805596c46aa9f99d9555983954e6c1266d9f981ae37a9e4647f42b9a4bb5466f867f4012e582c9e7e
+ languageName: node
+ linkType: hard
+
+"marked@npm:^4.1.1":
+ version: 4.3.0
+ resolution: "marked@npm:4.3.0"
+ bin:
+ marked: bin/marked.js
+ checksum: 10c0/0013463855e31b9c88d8bb2891a611d10ef1dc79f2e3cbff1bf71ba389e04c5971298c886af0be799d7fa9aa4593b086a136062d59f1210b0480b026a8c5dc47
+ languageName: node
+ linkType: hard
+
+"md5.js@npm:^1.3.4":
+ version: 1.3.5
+ resolution: "md5.js@npm:1.3.5"
+ dependencies:
+ hash-base: "npm:^3.0.0"
+ inherits: "npm:^2.0.1"
+ safe-buffer: "npm:^5.1.2"
+ checksum: 10c0/b7bd75077f419c8e013fc4d4dada48be71882e37d69a44af65a2f2804b91e253441eb43a0614423a1c91bb830b8140b0dc906bc797245e2e275759584f4efcc5
+ languageName: node
+ linkType: hard
+
+"merge-stream@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "merge-stream@npm:2.0.0"
+ checksum: 10c0/867fdbb30a6d58b011449b8885601ec1690c3e41c759ecd5a9d609094f7aed0096c37823ff4a7190ef0b8f22cc86beb7049196ff68c016e3b3c671d0dac91ce5
+ languageName: node
+ linkType: hard
+
+"merge2@npm:^1.3.0":
+ version: 1.4.1
+ resolution: "merge2@npm:1.4.1"
+ checksum: 10c0/254a8a4605b58f450308fc474c82ac9a094848081bf4c06778200207820e5193726dc563a0d2c16468810516a5c97d9d3ea0ca6585d23c58ccfff2403e8dbbeb
+ languageName: node
+ linkType: hard
+
+"micromatch@npm:^4.0.4, micromatch@npm:^4.0.8, micromatch@npm:~4.0.8":
+ version: 4.0.8
+ resolution: "micromatch@npm:4.0.8"
+ dependencies:
+ braces: "npm:^3.0.3"
+ picomatch: "npm:^2.3.1"
+ checksum: 10c0/166fa6eb926b9553f32ef81f5f531d27b4ce7da60e5baf8c021d043b27a388fb95e46a8038d5045877881e673f8134122b59624d5cecbd16eb50a42e7a6b5ca8
+ languageName: node
+ linkType: hard
+
+"mime-db@npm:1.52.0":
+ version: 1.52.0
+ resolution: "mime-db@npm:1.52.0"
+ checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa
+ languageName: node
+ linkType: hard
+
+"mime-types@npm:^2.1.12":
+ version: 2.1.35
+ resolution: "mime-types@npm:2.1.35"
+ dependencies:
+ mime-db: "npm:1.52.0"
+ checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2
+ languageName: node
+ linkType: hard
+
+"mimic-fn@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "mimic-fn@npm:4.0.0"
+ checksum: 10c0/de9cc32be9996fd941e512248338e43407f63f6d497abe8441fa33447d922e927de54d4cc3c1a3c6d652857acd770389d5a3823f311a744132760ce2be15ccbf
+ languageName: node
+ linkType: hard
+
+"mimic-function@npm:^5.0.0":
+ version: 5.0.1
+ resolution: "mimic-function@npm:5.0.1"
+ checksum: 10c0/f3d9464dd1816ecf6bdf2aec6ba32c0728022039d992f178237d8e289b48764fee4131319e72eedd4f7f094e22ded0af836c3187a7edc4595d28dd74368fd81d
+ languageName: node
+ linkType: hard
+
+"minimalistic-assert@npm:^1.0.0, minimalistic-assert@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "minimalistic-assert@npm:1.0.1"
+ checksum: 10c0/96730e5601cd31457f81a296f521eb56036e6f69133c0b18c13fe941109d53ad23a4204d946a0d638d7f3099482a0cec8c9bb6d642604612ce43ee536be3dddd
+ languageName: node
+ linkType: hard
+
+"minimalistic-crypto-utils@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "minimalistic-crypto-utils@npm:1.0.1"
+ checksum: 10c0/790ecec8c5c73973a4fbf2c663d911033e8494d5fb0960a4500634766ab05d6107d20af896ca2132e7031741f19888154d44b2408ada0852446705441383e9f8
+ languageName: node
+ linkType: hard
+
+"minimatch@npm:^9.0.4":
+ version: 9.0.5
+ resolution: "minimatch@npm:9.0.5"
+ dependencies:
+ brace-expansion: "npm:^2.0.1"
+ checksum: 10c0/de96cf5e35bdf0eab3e2c853522f98ffbe9a36c37797778d2665231ec1f20a9447a7e567cb640901f89e4daaa95ae5d70c65a9e8aa2bb0019b6facbc3c0575ed
+ languageName: node
+ linkType: hard
+
+"minimist@npm:^1.2.6":
+ version: 1.2.8
+ resolution: "minimist@npm:1.2.8"
+ checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6
+ languageName: node
+ linkType: hard
+
+"minipass-collect@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "minipass-collect@npm:2.0.1"
+ dependencies:
+ minipass: "npm:^7.0.3"
+ checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e
+ languageName: node
+ linkType: hard
+
+"minipass-fetch@npm:^3.0.0":
+ version: 3.0.5
+ resolution: "minipass-fetch@npm:3.0.5"
+ dependencies:
+ encoding: "npm:^0.1.13"
+ minipass: "npm:^7.0.3"
+ minipass-sized: "npm:^1.0.3"
+ minizlib: "npm:^2.1.2"
+ dependenciesMeta:
+ encoding:
+ optional: true
+ checksum: 10c0/9d702d57f556274286fdd97e406fc38a2f5c8d15e158b498d7393b1105974b21249289ec571fa2b51e038a4872bfc82710111cf75fae98c662f3d6f95e72152b
+ languageName: node
+ linkType: hard
+
+"minipass-flush@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "minipass-flush@npm:1.0.5"
+ dependencies:
+ minipass: "npm:^3.0.0"
+ checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd
+ languageName: node
+ linkType: hard
+
+"minipass-pipeline@npm:^1.2.4":
+ version: 1.2.4
+ resolution: "minipass-pipeline@npm:1.2.4"
+ dependencies:
+ minipass: "npm:^3.0.0"
+ checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2
+ languageName: node
+ linkType: hard
+
+"minipass-sized@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "minipass-sized@npm:1.0.3"
+ dependencies:
+ minipass: "npm:^3.0.0"
+ checksum: 10c0/298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb
+ languageName: node
+ linkType: hard
+
+"minipass@npm:^3.0.0":
+ version: 3.3.6
+ resolution: "minipass@npm:3.3.6"
+ dependencies:
+ yallist: "npm:^4.0.0"
+ checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c
+ languageName: node
+ linkType: hard
+
+"minipass@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "minipass@npm:5.0.0"
+ checksum: 10c0/a91d8043f691796a8ac88df039da19933ef0f633e3d7f0d35dcd5373af49131cf2399bfc355f41515dc495e3990369c3858cd319e5c2722b4753c90bf3152462
+ languageName: node
+ linkType: hard
+
+"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.1.2":
+ version: 7.1.2
+ resolution: "minipass@npm:7.1.2"
+ checksum: 10c0/b0fd20bb9fb56e5fa9a8bfac539e8915ae07430a619e4b86ff71f5fc757ef3924b23b2c4230393af1eda647ed3d75739e4e0acb250a6b1eb277cf7f8fe449557
+ languageName: node
+ linkType: hard
+
+"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2":
+ version: 2.1.2
+ resolution: "minizlib@npm:2.1.2"
+ dependencies:
+ minipass: "npm:^3.0.0"
+ yallist: "npm:^4.0.0"
+ checksum: 10c0/64fae024e1a7d0346a1102bb670085b17b7f95bf6cfdf5b128772ec8faf9ea211464ea4add406a3a6384a7d87a0cd1a96263692134323477b4fb43659a6cab78
+ languageName: node
+ linkType: hard
+
+"mkdirp@npm:^1.0.3":
+ version: 1.0.4
+ resolution: "mkdirp@npm:1.0.4"
+ bin:
+ mkdirp: bin/cmd.js
+ checksum: 10c0/46ea0f3ffa8bc6a5bc0c7081ffc3907777f0ed6516888d40a518c5111f8366d97d2678911ad1a6882bf592fa9de6c784fea32e1687bb94e1f4944170af48a5cf
+ languageName: node
+ linkType: hard
+
+"moo@npm:^0.5.0, moo@npm:^0.5.1":
+ version: 0.5.2
+ resolution: "moo@npm:0.5.2"
+ checksum: 10c0/a9d9ad8198a51fe35d297f6e9fdd718298ca0b39a412e868a0ebd92286379ab4533cfc1f1f34516177f5129988ab25fe598f78e77c84e3bfe0d4a877b56525a8
+ languageName: node
+ linkType: hard
+
+"ms@npm:^2.1.3":
+ version: 2.1.3
+ resolution: "ms@npm:2.1.3"
+ checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48
+ languageName: node
+ linkType: hard
+
+"mustache@npm:^4.2.0":
+ version: 4.2.0
+ resolution: "mustache@npm:4.2.0"
+ bin:
+ mustache: bin/mustache
+ checksum: 10c0/1f8197e8a19e63645a786581d58c41df7853da26702dbc005193e2437c98ca49b255345c173d50c08fe4b4dbb363e53cb655ecc570791f8deb09887248dd34a2
+ languageName: node
+ linkType: hard
+
+"mz@npm:^2.7.0":
+ version: 2.7.0
+ resolution: "mz@npm:2.7.0"
+ dependencies:
+ any-promise: "npm:^1.0.0"
+ object-assign: "npm:^4.0.1"
+ thenify-all: "npm:^1.0.0"
+ checksum: 10c0/103114e93f87362f0b56ab5b2e7245051ad0276b646e3902c98397d18bb8f4a77f2ea4a2c9d3ad516034ea3a56553b60d3f5f78220001ca4c404bd711bd0af39
+ languageName: node
+ linkType: hard
+
+"nanoid@npm:^3.3.6, nanoid@npm:^3.3.7":
+ version: 3.3.7
+ resolution: "nanoid@npm:3.3.7"
+ bin:
+ nanoid: bin/nanoid.cjs
+ checksum: 10c0/e3fb661aa083454f40500473bb69eedb85dc160e763150b9a2c567c7e9ff560ce028a9f833123b618a6ea742e311138b591910e795614a629029e86e180660f3
+ languageName: node
+ linkType: hard
+
+"nearley@npm:^2.20.1":
+ version: 2.20.1
+ resolution: "nearley@npm:2.20.1"
+ dependencies:
+ commander: "npm:^2.19.0"
+ moo: "npm:^0.5.0"
+ railroad-diagrams: "npm:^1.0.0"
+ randexp: "npm:0.4.6"
+ bin:
+ nearley-railroad: bin/nearley-railroad.js
+ nearley-test: bin/nearley-test.js
+ nearley-unparse: bin/nearley-unparse.js
+ nearleyc: bin/nearleyc.js
+ checksum: 10c0/d25e1fd40b19c53a0ada6a688670f4a39063fd9553ab62885e81a82927d51572ce47193b946afa3d85efa608ba2c68f433c421f69b854bfb7f599eacb5fae37e
+ languageName: node
+ linkType: hard
+
+"negotiator@npm:^0.6.3":
+ version: 0.6.4
+ resolution: "negotiator@npm:0.6.4"
+ checksum: 10c0/3e677139c7fb7628a6f36335bf11a885a62c21d5390204590a1a214a5631fcbe5ea74ef6a610b60afe84b4d975cbe0566a23f20ee17c77c73e74b80032108dea
+ languageName: node
+ linkType: hard
+
+"negotiator@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "negotiator@npm:1.0.0"
+ checksum: 10c0/4c559dd52669ea48e1914f9d634227c561221dd54734070791f999c52ed0ff36e437b2e07d5c1f6e32909fc625fe46491c16e4a8f0572567d4dd15c3a4fda04b
+ languageName: node
+ linkType: hard
+
+"next-intl@npm:^3.26.3":
+ version: 3.26.3
+ resolution: "next-intl@npm:3.26.3"
+ dependencies:
+ "@formatjs/intl-localematcher": "npm:^0.5.4"
+ negotiator: "npm:^1.0.0"
+ use-intl: "npm:^3.26.3"
+ peerDependencies:
+ next: ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0
+ checksum: 10c0/8e0783fb214ca5faf8fbb153eb68a6ff6fe136879a13e888a8db4191000c6d904c2cf110119bda0ec2373eb5b216c9b29b26b83251e8213f1e897079bee0dfba
+ languageName: node
+ linkType: hard
+
+"next@npm:15.3.3":
+ version: 15.3.3
+ resolution: "next@npm:15.3.3"
+ dependencies:
+ "@next/env": "npm:15.3.3"
+ "@next/swc-darwin-arm64": "npm:15.3.3"
+ "@next/swc-darwin-x64": "npm:15.3.3"
+ "@next/swc-linux-arm64-gnu": "npm:15.3.3"
+ "@next/swc-linux-arm64-musl": "npm:15.3.3"
+ "@next/swc-linux-x64-gnu": "npm:15.3.3"
+ "@next/swc-linux-x64-musl": "npm:15.3.3"
+ "@next/swc-win32-arm64-msvc": "npm:15.3.3"
+ "@next/swc-win32-x64-msvc": "npm:15.3.3"
+ "@swc/counter": "npm:0.1.3"
+ "@swc/helpers": "npm:0.5.15"
+ busboy: "npm:1.6.0"
+ caniuse-lite: "npm:^1.0.30001579"
+ postcss: "npm:8.4.31"
+ sharp: "npm:^0.34.1"
+ styled-jsx: "npm:5.1.6"
+ peerDependencies:
+ "@opentelemetry/api": ^1.1.0
+ "@playwright/test": ^1.41.2
+ 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
+ dependenciesMeta:
+ "@next/swc-darwin-arm64":
+ optional: true
+ "@next/swc-darwin-x64":
+ optional: true
+ "@next/swc-linux-arm64-gnu":
+ optional: true
+ "@next/swc-linux-arm64-musl":
+ optional: true
+ "@next/swc-linux-x64-gnu":
+ optional: true
+ "@next/swc-linux-x64-musl":
+ optional: true
+ "@next/swc-win32-arm64-msvc":
+ optional: true
+ "@next/swc-win32-x64-msvc":
+ optional: true
+ sharp:
+ optional: true
+ peerDependenciesMeta:
+ "@opentelemetry/api":
+ optional: true
+ "@playwright/test":
+ optional: true
+ babel-plugin-react-compiler:
+ optional: true
+ sass:
+ optional: true
+ bin:
+ next: dist/bin/next
+ checksum: 10c0/b519d348efd905ac63b2e5cb1e5a3d8e5d11d992aba436f4eef28c66f4555f155bb2bd489d0d029867e926539b31a3f14dd81b0ebca54ce9f3d65a883fb94d4b
+ languageName: node
+ linkType: hard
+
+"node-addon-api@npm:^2.0.0":
+ version: 2.0.2
+ resolution: "node-addon-api@npm:2.0.2"
+ dependencies:
+ node-gyp: "npm:latest"
+ checksum: 10c0/ade6c097ba829fa4aee1ca340117bb7f8f29fdae7b777e343a9d5cbd548481d1f0894b7b907d23ce615c70d932e8f96154caed95c3fa935cfe8cf87546510f64
+ languageName: node
+ linkType: hard
+
+"node-addon-api@npm:^5.0.0":
+ version: 5.1.0
+ resolution: "node-addon-api@npm:5.1.0"
+ dependencies:
+ node-gyp: "npm:latest"
+ checksum: 10c0/0eb269786124ba6fad9df8007a149e03c199b3e5a3038125dfb3e747c2d5113d406a4e33f4de1ea600aa2339be1f137d55eba1a73ee34e5fff06c52a5c296d1d
+ languageName: node
+ linkType: hard
+
+"node-gyp-build@npm:^4.2.0":
+ version: 4.8.4
+ resolution: "node-gyp-build@npm:4.8.4"
+ bin:
+ node-gyp-build: bin.js
+ node-gyp-build-optional: optional.js
+ node-gyp-build-test: build-test.js
+ checksum: 10c0/444e189907ece2081fe60e75368784f7782cfddb554b60123743dfb89509df89f1f29c03bbfa16b3a3e0be3f48799a4783f487da6203245fa5bed239ba7407e1
+ languageName: node
+ linkType: hard
+
+"node-gyp@npm:latest":
+ version: 10.2.0
+ resolution: "node-gyp@npm:10.2.0"
+ dependencies:
+ env-paths: "npm:^2.2.0"
+ exponential-backoff: "npm:^3.1.1"
+ glob: "npm:^10.3.10"
+ graceful-fs: "npm:^4.2.6"
+ make-fetch-happen: "npm:^13.0.0"
+ nopt: "npm:^7.0.0"
+ proc-log: "npm:^4.1.0"
+ semver: "npm:^7.3.5"
+ tar: "npm:^6.2.1"
+ which: "npm:^4.0.0"
+ bin:
+ node-gyp: bin/node-gyp.js
+ checksum: 10c0/00630d67dbd09a45aee0a5d55c05e3916ca9e6d427ee4f7bc392d2d3dc5fad7449b21fc098dd38260a53d9dcc9c879b36704a1994235d4707e7271af7e9a835b
+ languageName: node
+ linkType: hard
+
+"nopt@npm:^7.0.0":
+ version: 7.2.1
+ resolution: "nopt@npm:7.2.1"
+ dependencies:
+ abbrev: "npm:^2.0.0"
+ bin:
+ nopt: bin/nopt.js
+ checksum: 10c0/a069c7c736767121242037a22a788863accfa932ab285a1eb569eb8cd534b09d17206f68c37f096ae785647435e0c5a5a0a67b42ec743e481a455e5ae6a6df81
+ languageName: node
+ linkType: hard
+
+"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0":
+ version: 3.0.0
+ resolution: "normalize-path@npm:3.0.0"
+ checksum: 10c0/e008c8142bcc335b5e38cf0d63cfd39d6cf2d97480af9abdbe9a439221fd4d749763bab492a8ee708ce7a194bb00c9da6d0a115018672310850489137b3da046
+ languageName: node
+ linkType: hard
+
+"npm-run-path@npm:^5.1.0":
+ version: 5.3.0
+ resolution: "npm-run-path@npm:5.3.0"
+ dependencies:
+ path-key: "npm:^4.0.0"
+ checksum: 10c0/124df74820c40c2eb9a8612a254ea1d557ddfab1581c3e751f825e3e366d9f00b0d76a3c94ecd8398e7f3eee193018622677e95816e8491f0797b21e30b2deba
+ languageName: node
+ linkType: hard
+
+"nwsapi@npm:^2.2.2":
+ version: 2.2.14
+ resolution: "nwsapi@npm:2.2.14"
+ checksum: 10c0/7bc8ba60925f72d2ad33ab1a2af24217f1c2de40f6bba27b6c73b7bf517eac78ee51fa197baa00641f946cbff54ae30657c8677692b9a1b80d18497c3bdf5f0b
+ languageName: node
+ linkType: hard
+
+"object-assign@npm:^4.0.1":
+ version: 4.1.1
+ resolution: "object-assign@npm:4.1.1"
+ checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414
+ languageName: node
+ linkType: hard
+
+"object-hash@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "object-hash@npm:3.0.0"
+ checksum: 10c0/a06844537107b960c1c8b96cd2ac8592a265186bfa0f6ccafe0d34eabdb526f6fa81da1f37c43df7ed13b12a4ae3457a16071603bcd39d8beddb5f08c37b0f47
+ languageName: node
+ linkType: hard
+
+"onetime@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "onetime@npm:6.0.0"
+ dependencies:
+ mimic-fn: "npm:^4.0.0"
+ checksum: 10c0/4eef7c6abfef697dd4479345a4100c382d73c149d2d56170a54a07418c50816937ad09500e1ed1e79d235989d073a9bade8557122aee24f0576ecde0f392bb6c
+ languageName: node
+ linkType: hard
+
+"onetime@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "onetime@npm:7.0.0"
+ dependencies:
+ mimic-function: "npm:^5.0.0"
+ checksum: 10c0/5cb9179d74b63f52a196a2e7037ba2b9a893245a5532d3f44360012005c9cadb60851d56716ebff18a6f47129dab7168022445df47c2aff3b276d92585ed1221
+ languageName: node
+ linkType: hard
+
+"ox@npm:0.6.7":
+ version: 0.6.7
+ resolution: "ox@npm:0.6.7"
+ dependencies:
+ "@adraffy/ens-normalize": "npm:^1.10.1"
+ "@noble/curves": "npm:^1.6.0"
+ "@noble/hashes": "npm:^1.5.0"
+ "@scure/bip32": "npm:^1.5.0"
+ "@scure/bip39": "npm:^1.4.0"
+ abitype: "npm:^1.0.6"
+ eventemitter3: "npm:5.0.1"
+ peerDependencies:
+ typescript: ">=5.4.0"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10c0/f556804e7246cc8aa56e43c6bb91302a792649638afe086a86ed3a71a5a583c05d3ad4318b212835cb8167fe561024db1625253c118018380393e161af3c3edf
+ languageName: node
+ linkType: hard
+
+"p-map@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "p-map@npm:4.0.0"
+ dependencies:
+ aggregate-error: "npm:^3.0.0"
+ checksum: 10c0/592c05bd6262c466ce269ff172bb8de7c6975afca9b50c975135b974e9bdaafbfe80e61aaaf5be6d1200ba08b30ead04b88cfa7e25ff1e3b93ab28c9f62a2c75
+ languageName: node
+ linkType: hard
+
+"package-json-from-dist@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "package-json-from-dist@npm:1.0.1"
+ checksum: 10c0/62ba2785eb655fec084a257af34dbe24292ab74516d6aecef97ef72d4897310bc6898f6c85b5cd22770eaa1ce60d55a0230e150fb6a966e3ecd6c511e23d164b
+ languageName: node
+ linkType: hard
+
+"parse5@npm:^7.1.1":
+ version: 7.2.1
+ resolution: "parse5@npm:7.2.1"
+ dependencies:
+ entities: "npm:^4.5.0"
+ checksum: 10c0/829d37a0c709215a887e410a7118d754f8e1afd7edb529db95bc7bbf8045fb0266a7b67801331d8e8d9d073ea75793624ec27ce9ff3b96862c3b9008f4d68e80
+ languageName: node
+ linkType: hard
+
+"parseley@npm:^0.7.0":
+ version: 0.7.0
+ resolution: "parseley@npm:0.7.0"
+ dependencies:
+ moo: "npm:^0.5.1"
+ nearley: "npm:^2.20.1"
+ checksum: 10c0/70205aa7ca5378bb14c2b4d59a981144f026687aaaccffdbd28ce00e02d6041fbb8674a37e886dd2f64c14b2daf028ee8a416ef45d9fbac9f1adfb830be9c77f
+ languageName: node
+ linkType: hard
+
+"path-key@npm:^3.1.0":
+ version: 3.1.1
+ resolution: "path-key@npm:3.1.1"
+ checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c
+ languageName: node
+ linkType: hard
+
+"path-key@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "path-key@npm:4.0.0"
+ checksum: 10c0/794efeef32863a65ac312f3c0b0a99f921f3e827ff63afa5cb09a377e202c262b671f7b3832a4e64731003fa94af0263713962d317b9887bd1e0c48a342efba3
+ languageName: node
+ linkType: hard
+
+"path-parse@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "path-parse@npm:1.0.7"
+ checksum: 10c0/11ce261f9d294cc7a58d6a574b7f1b935842355ec66fba3c3fd79e0f036462eaf07d0aa95bb74ff432f9afef97ce1926c720988c6a7451d8a584930ae7de86e1
+ languageName: node
+ linkType: hard
+
+"path-scurry@npm:^1.11.1":
+ version: 1.11.1
+ resolution: "path-scurry@npm:1.11.1"
+ dependencies:
+ lru-cache: "npm:^10.2.0"
+ minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0"
+ checksum: 10c0/32a13711a2a505616ae1cc1b5076801e453e7aae6ac40ab55b388bb91b9d0547a52f5aaceff710ea400205f18691120d4431e520afbe4266b836fadede15872d
+ languageName: node
+ linkType: hard
+
+"pbkdf2@npm:^3.0.17":
+ version: 3.1.2
+ resolution: "pbkdf2@npm:3.1.2"
+ dependencies:
+ create-hash: "npm:^1.1.2"
+ create-hmac: "npm:^1.1.4"
+ ripemd160: "npm:^2.0.1"
+ safe-buffer: "npm:^5.0.1"
+ sha.js: "npm:^2.4.8"
+ checksum: 10c0/5a30374e87d33fa080a92734d778cf172542cc7e41b96198c4c88763997b62d7850de3fbda5c3111ddf79805ee7c1da7046881c90ac4920b5e324204518b05fd
+ languageName: node
+ linkType: hard
+
+"picocolors@npm:^1.0.0, picocolors@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "picocolors@npm:1.1.1"
+ checksum: 10c0/e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58
+ languageName: node
+ linkType: hard
+
+"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1":
+ version: 2.3.1
+ resolution: "picomatch@npm:2.3.1"
+ checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be
+ languageName: node
+ linkType: hard
+
+"pidtree@npm:~0.6.0":
+ version: 0.6.0
+ resolution: "pidtree@npm:0.6.0"
+ bin:
+ pidtree: bin/pidtree.js
+ checksum: 10c0/0829ec4e9209e230f74ebf4265f5ccc9ebfb488334b525cb13f86ff801dca44b362c41252cd43ae4d7653a10a5c6ab3be39d2c79064d6895e0d78dc50a5ed6e9
+ languageName: node
+ linkType: hard
+
+"pify@npm:^2.3.0":
+ version: 2.3.0
+ resolution: "pify@npm:2.3.0"
+ checksum: 10c0/551ff8ab830b1052633f59cb8adc9ae8407a436e06b4a9718bcb27dc5844b83d535c3a8512b388b6062af65a98c49bdc0dd523d8b2617b188f7c8fee457158dc
+ languageName: node
+ linkType: hard
+
+"pirates@npm:^4.0.1":
+ version: 4.0.6
+ resolution: "pirates@npm:4.0.6"
+ checksum: 10c0/00d5fa51f8dded94d7429700fb91a0c1ead00ae2c7fd27089f0c5b63e6eca36197fe46384631872690a66f390c5e27198e99006ab77ae472692ab9c2ca903f36
+ languageName: node
+ linkType: hard
+
+"postcss-import@npm:^15.1.0":
+ version: 15.1.0
+ resolution: "postcss-import@npm:15.1.0"
+ dependencies:
+ postcss-value-parser: "npm:^4.0.0"
+ read-cache: "npm:^1.0.0"
+ resolve: "npm:^1.1.7"
+ peerDependencies:
+ postcss: ^8.0.0
+ checksum: 10c0/518aee5c83ea6940e890b0be675a2588db68b2582319f48c3b4e06535a50ea6ee45f7e63e4309f8754473245c47a0372632378d1d73d901310f295a92f26f17b
+ languageName: node
+ linkType: hard
+
+"postcss-js@npm:^4.0.1":
+ version: 4.0.1
+ resolution: "postcss-js@npm:4.0.1"
+ dependencies:
+ camelcase-css: "npm:^2.0.1"
+ peerDependencies:
+ postcss: ^8.4.21
+ checksum: 10c0/af35d55cb873b0797d3b42529514f5318f447b134541844285c9ac31a17497297eb72296902967911bb737a75163441695737300ce2794e3bd8c70c13a3b106e
+ languageName: node
+ linkType: hard
+
+"postcss-load-config@npm:^4.0.2":
+ version: 4.0.2
+ resolution: "postcss-load-config@npm:4.0.2"
+ dependencies:
+ lilconfig: "npm:^3.0.0"
+ yaml: "npm:^2.3.4"
+ peerDependencies:
+ postcss: ">=8.0.9"
+ ts-node: ">=9.0.0"
+ peerDependenciesMeta:
+ postcss:
+ optional: true
+ ts-node:
+ optional: true
+ checksum: 10c0/3d7939acb3570b0e4b4740e483d6e555a3e2de815219cb8a3c8fc03f575a6bde667443aa93369c0be390af845cb84471bf623e24af833260de3a105b78d42519
+ languageName: node
+ linkType: hard
+
+"postcss-nested@npm:^6.2.0":
+ version: 6.2.0
+ resolution: "postcss-nested@npm:6.2.0"
+ dependencies:
+ postcss-selector-parser: "npm:^6.1.1"
+ peerDependencies:
+ postcss: ^8.2.14
+ checksum: 10c0/7f9c3f2d764191a39364cbdcec350f26a312431a569c9ef17408021424726b0d67995ff5288405e3724bb7152a4c92f73c027e580ec91e798800ed3c52e2bc6e
+ languageName: node
+ linkType: hard
+
+"postcss-selector-parser@npm:^6.1.1, postcss-selector-parser@npm:^6.1.2":
+ version: 6.1.2
+ resolution: "postcss-selector-parser@npm:6.1.2"
+ dependencies:
+ cssesc: "npm:^3.0.0"
+ util-deprecate: "npm:^1.0.2"
+ checksum: 10c0/523196a6bd8cf660bdf537ad95abd79e546d54180f9afb165a4ab3e651ac705d0f8b8ce6b3164fb9e3279ce482c5f751a69eb2d3a1e8eb0fd5e82294fb3ef13e
+ languageName: node
+ linkType: hard
+
+"postcss-value-parser@npm:^4.0.0":
+ version: 4.2.0
+ resolution: "postcss-value-parser@npm:4.2.0"
+ checksum: 10c0/f4142a4f56565f77c1831168e04e3effd9ffcc5aebaf0f538eee4b2d465adfd4b85a44257bb48418202a63806a7da7fe9f56c330aebb3cac898e46b4cbf49161
+ languageName: node
+ linkType: hard
+
+"postcss@npm:8.4.31":
+ version: 8.4.31
+ resolution: "postcss@npm:8.4.31"
+ dependencies:
+ nanoid: "npm:^3.3.6"
+ picocolors: "npm:^1.0.0"
+ source-map-js: "npm:^1.0.2"
+ checksum: 10c0/748b82e6e5fc34034dcf2ae88ea3d11fd09f69b6c50ecdd3b4a875cfc7cdca435c958b211e2cb52355422ab6fccb7d8f2f2923161d7a1b281029e4a913d59acf
+ languageName: node
+ linkType: hard
+
+"postcss@npm:^8, postcss@npm:^8.4.47":
+ version: 8.4.49
+ resolution: "postcss@npm:8.4.49"
+ dependencies:
+ nanoid: "npm:^3.3.7"
+ picocolors: "npm:^1.1.1"
+ source-map-js: "npm:^1.2.1"
+ checksum: 10c0/f1b3f17aaf36d136f59ec373459f18129908235e65dbdc3aee5eef8eba0756106f52de5ec4682e29a2eab53eb25170e7e871b3e4b52a8f1de3d344a514306be3
+ languageName: node
+ linkType: hard
+
+"proc-log@npm:^4.1.0, proc-log@npm:^4.2.0":
+ version: 4.2.0
+ resolution: "proc-log@npm:4.2.0"
+ checksum: 10c0/17db4757c2a5c44c1e545170e6c70a26f7de58feb985091fb1763f5081cab3d01b181fb2dd240c9f4a4255a1d9227d163d5771b7e69c9e49a561692db865efb9
+ languageName: node
+ linkType: hard
+
+"promise-retry@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "promise-retry@npm:2.0.1"
+ dependencies:
+ err-code: "npm:^2.0.2"
+ retry: "npm:^0.12.0"
+ checksum: 10c0/9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96
+ languageName: node
+ linkType: hard
+
+"psl@npm:^1.1.33":
+ version: 1.14.0
+ resolution: "psl@npm:1.14.0"
+ dependencies:
+ punycode: "npm:^2.3.1"
+ checksum: 10c0/d75517b952b508e005f8720a5471c8bd8ac5ef1135a1115face8f469ad0a4ada691c963aa0bcb248a07f329c8a0636455571f2bafcf70578ea35192b7ff387aa
+ languageName: node
+ linkType: hard
+
+"punycode@npm:^2.1.1, punycode@npm:^2.3.1":
+ version: 2.3.1
+ resolution: "punycode@npm:2.3.1"
+ checksum: 10c0/14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9
+ languageName: node
+ linkType: hard
+
+"querystringify@npm:^2.1.1":
+ version: 2.2.0
+ resolution: "querystringify@npm:2.2.0"
+ checksum: 10c0/3258bc3dbdf322ff2663619afe5947c7926a6ef5fb78ad7d384602974c467fadfc8272af44f5eb8cddd0d011aae8fabf3a929a8eee4b86edcc0a21e6bd10f9aa
+ languageName: node
+ linkType: hard
+
+"queue-microtask@npm:^1.2.2":
+ version: 1.2.3
+ resolution: "queue-microtask@npm:1.2.3"
+ checksum: 10c0/900a93d3cdae3acd7d16f642c29a642aea32c2026446151f0778c62ac089d4b8e6c986811076e1ae180a694cedf077d453a11b58ff0a865629a4f82ab558e102
+ languageName: node
+ linkType: hard
+
+"railroad-diagrams@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "railroad-diagrams@npm:1.0.0"
+ checksum: 10c0/81bf8f86870a69fb9ed243102db9ad6416d09c4cb83964490d44717690e07dd982f671503236a1f8af28f4cb79d5d7a87613930f10ac08defa845ceb6764e364
+ languageName: node
+ linkType: hard
+
+"randexp@npm:0.4.6":
+ version: 0.4.6
+ resolution: "randexp@npm:0.4.6"
+ dependencies:
+ discontinuous-range: "npm:1.0.0"
+ ret: "npm:~0.1.10"
+ checksum: 10c0/14ee14b6d7f5ce69609b51cc914fb7a7c82ad337820a141c5f762c5ad1fe868f5191ea6e82359aee019b625ee1359486628fa833909d12c3b5dd9571908c3345
+ languageName: node
+ linkType: hard
+
+"randombytes@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "randombytes@npm:2.1.0"
+ dependencies:
+ safe-buffer: "npm:^5.1.0"
+ checksum: 10c0/50395efda7a8c94f5dffab564f9ff89736064d32addf0cc7e8bf5e4166f09f8ded7a0849ca6c2d2a59478f7d90f78f20d8048bca3cdf8be09d8e8a10790388f3
+ languageName: node
+ linkType: hard
+
+"react-dom@npm:19.1.0":
+ version: 19.1.0
+ resolution: "react-dom@npm:19.1.0"
+ dependencies:
+ scheduler: "npm:^0.26.0"
+ peerDependencies:
+ react: ^19.1.0
+ checksum: 10c0/3e26e89bb6c67c9a6aa86cb888c7a7f8258f2e347a6d2a15299c17eb16e04c19194e3452bc3255bd34000a61e45e2cb51e46292392340432f133e5a5d2dfb5fc
+ languageName: node
+ linkType: hard
+
+"react-remove-scroll-bar@npm:^2.3.6":
+ version: 2.3.6
+ resolution: "react-remove-scroll-bar@npm:2.3.6"
+ dependencies:
+ react-style-singleton: "npm:^2.2.1"
+ tslib: "npm:^2.0.0"
+ 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
+ checksum: 10c0/4e32ee04bf655a8bd3b4aacf6ffc596ae9eb1b9ba27eef83f7002632ee75371f61516ae62250634a9eae4b2c8fc6f6982d9b182de260f6c11841841e6e2e7515
+ languageName: node
+ linkType: hard
+
+"react-remove-scroll@npm:2.6.0":
+ version: 2.6.0
+ resolution: "react-remove-scroll@npm:2.6.0"
+ dependencies:
+ react-remove-scroll-bar: "npm:^2.3.6"
+ react-style-singleton: "npm:^2.2.1"
+ tslib: "npm:^2.1.0"
+ use-callback-ref: "npm:^1.3.0"
+ use-sidecar: "npm:^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
+ checksum: 10c0/c5881c537477d986e8d25d2588a9b6f7fe1254e05946fb4f4b55baeead502b0e1875fc3c42bb6f82736772cd96a50266e41d84e3c4cd25e9525bdfe2d838e96d
+ languageName: node
+ linkType: hard
+
+"react-style-singleton@npm:^2.2.1":
+ version: 2.2.1
+ resolution: "react-style-singleton@npm:2.2.1"
+ dependencies:
+ get-nonce: "npm:^1.0.0"
+ invariant: "npm:^2.2.4"
+ tslib: "npm:^2.0.0"
+ 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
+ checksum: 10c0/6d66f3bdb65e1ec79089f80314da97c9a005087a04ee034255a5de129a4c0d9fd0bf99fa7bf642781ac2dc745ca687aae3de082bd8afdd0d117bc953241e15ad
+ languageName: node
+ linkType: hard
+
+"react@npm:19.1.0":
+ version: 19.1.0
+ resolution: "react@npm:19.1.0"
+ checksum: 10c0/530fb9a62237d54137a13d2cfb67a7db6a2156faed43eecc423f4713d9b20c6f2728b026b45e28fcd72e8eadb9e9ed4b089e99f5e295d2f0ad3134251bdd3698
+ languageName: node
+ linkType: hard
+
+"read-cache@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "read-cache@npm:1.0.0"
+ dependencies:
+ pify: "npm:^2.3.0"
+ checksum: 10c0/90cb2750213c7dd7c80cb420654344a311fdec12944e81eb912cd82f1bc92aea21885fa6ce442e3336d9fccd663b8a7a19c46d9698e6ca55620848ab932da814
+ languageName: node
+ linkType: hard
+
+"readable-stream@npm:^3.6.0":
+ version: 3.6.2
+ resolution: "readable-stream@npm:3.6.2"
+ dependencies:
+ inherits: "npm:^2.0.3"
+ string_decoder: "npm:^1.1.1"
+ util-deprecate: "npm:^1.0.1"
+ checksum: 10c0/e37be5c79c376fdd088a45fa31ea2e423e5d48854be7a22a58869b4e84d25047b193f6acb54f1012331e1bcd667ffb569c01b99d36b0bd59658fb33f513511b7
+ languageName: node
+ linkType: hard
+
+"readdirp@npm:~3.6.0":
+ version: 3.6.0
+ resolution: "readdirp@npm:3.6.0"
+ dependencies:
+ picomatch: "npm:^2.2.1"
+ checksum: 10c0/6fa848cf63d1b82ab4e985f4cf72bd55b7dcfd8e0a376905804e48c3634b7e749170940ba77b32804d5fe93b3cc521aa95a8d7e7d725f830da6d93f3669ce66b
+ languageName: node
+ linkType: hard
+
+"requires-port@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "requires-port@npm:1.0.0"
+ checksum: 10c0/b2bfdd09db16c082c4326e573a82c0771daaf7b53b9ce8ad60ea46aa6e30aaf475fe9b164800b89f93b748d2c234d8abff945d2551ba47bf5698e04cd7713267
+ languageName: node
+ linkType: hard
+
+"resolve@npm:^1.1.7, resolve@npm:^1.22.8":
+ version: 1.22.8
+ resolution: "resolve@npm:1.22.8"
+ dependencies:
+ is-core-module: "npm:^2.13.0"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: 10c0/07e179f4375e1fd072cfb72ad66d78547f86e6196c4014b31cb0b8bb1db5f7ca871f922d08da0fbc05b94e9fd42206f819648fa3b5b873ebbc8e1dc68fec433a
+ languageName: node
+ linkType: hard
+
+"resolve@patch:resolve@npm%3A^1.1.7#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin":
+ version: 1.22.8
+ resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d"
+ dependencies:
+ is-core-module: "npm:^2.13.0"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: 10c0/0446f024439cd2e50c6c8fa8ba77eaa8370b4180f401a96abf3d1ebc770ac51c1955e12764cde449fde3fff480a61f84388e3505ecdbab778f4bef5f8212c729
+ languageName: node
+ linkType: hard
+
+"restore-cursor@npm:^5.0.0":
+ version: 5.1.0
+ resolution: "restore-cursor@npm:5.1.0"
+ dependencies:
+ onetime: "npm:^7.0.0"
+ signal-exit: "npm:^4.1.0"
+ checksum: 10c0/c2ba89131eea791d1b25205bdfdc86699767e2b88dee2a590b1a6caa51737deac8bad0260a5ded2f7c074b7db2f3a626bcf1fcf3cdf35974cbeea5e2e6764f60
+ languageName: node
+ linkType: hard
+
+"ret@npm:~0.1.10":
+ version: 0.1.15
+ resolution: "ret@npm:0.1.15"
+ checksum: 10c0/01f77cad0f7ea4f955852c03d66982609893edc1240c0c964b4c9251d0f9fb6705150634060d169939b096d3b77f4c84d6b6098a5b5d340160898c8581f1f63f
+ languageName: node
+ linkType: hard
+
+"retry@npm:^0.12.0":
+ version: 0.12.0
+ resolution: "retry@npm:0.12.0"
+ checksum: 10c0/59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe
+ languageName: node
+ linkType: hard
+
+"reusify@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "reusify@npm:1.0.4"
+ checksum: 10c0/c19ef26e4e188f408922c46f7ff480d38e8dfc55d448310dfb518736b23ed2c4f547fb64a6ed5bdba92cd7e7ddc889d36ff78f794816d5e71498d645ef476107
+ languageName: node
+ linkType: hard
+
+"rfdc@npm:^1.4.1":
+ version: 1.4.1
+ resolution: "rfdc@npm:1.4.1"
+ checksum: 10c0/4614e4292356cafade0b6031527eea9bc90f2372a22c012313be1dcc69a3b90c7338158b414539be863fa95bfcb2ddcd0587be696841af4e6679d85e62c060c7
+ languageName: node
+ linkType: hard
+
+"ripemd160@npm:^2.0.0, ripemd160@npm:^2.0.1":
+ version: 2.0.2
+ resolution: "ripemd160@npm:2.0.2"
+ dependencies:
+ hash-base: "npm:^3.0.0"
+ inherits: "npm:^2.0.1"
+ checksum: 10c0/f6f0df78817e78287c766687aed4d5accbebc308a8e7e673fb085b9977473c1f139f0c5335d353f172a915bb288098430755d2ad3c4f30612f4dd0c901cd2c3a
+ languageName: node
+ linkType: hard
+
+"rlp@npm:^2.2.3":
+ version: 2.2.7
+ resolution: "rlp@npm:2.2.7"
+ dependencies:
+ bn.js: "npm:^5.2.0"
+ bin:
+ rlp: bin/rlp
+ checksum: 10c0/166c449f4bc794d47f8e337bf0ffbcfdb26c33109030aac4b6e5a33a91fa85783f2290addeb7b3c89d6d9b90c8276e719494d193129bed0a60a2d4a6fd658277
+ languageName: node
+ linkType: hard
+
+"rtl-detect@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "rtl-detect@npm:1.1.2"
+ checksum: 10c0/1b92888aafca1593314f837e83fdf02eb208faae3e713ab87c176804728efd3b1980d53b64f65f1fa593348087e852c5cd729b7b9372950f6e9b7be489afc0ca
+ languageName: node
+ linkType: hard
+
+"run-parallel@npm:^1.1.9":
+ version: 1.2.0
+ resolution: "run-parallel@npm:1.2.0"
+ dependencies:
+ queue-microtask: "npm:^1.2.2"
+ checksum: 10c0/200b5ab25b5b8b7113f9901bfe3afc347e19bb7475b267d55ad0eb86a62a46d77510cb0f232507c9e5d497ebda569a08a9867d0d14f57a82ad5564d991588b39
+ languageName: node
+ linkType: hard
+
+"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0":
+ version: 5.2.1
+ resolution: "safe-buffer@npm:5.2.1"
+ checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3
+ languageName: node
+ linkType: hard
+
+"safer-buffer@npm:>= 2.1.2 < 3.0.0":
+ version: 2.1.2
+ resolution: "safer-buffer@npm:2.1.2"
+ checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4
+ languageName: node
+ linkType: hard
+
+"saxes@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "saxes@npm:6.0.0"
+ dependencies:
+ xmlchars: "npm:^2.2.0"
+ checksum: 10c0/3847b839f060ef3476eb8623d099aa502ad658f5c40fd60c105ebce86d244389b0d76fcae30f4d0c728d7705ceb2f7e9b34bb54717b6a7dbedaf5dad2d9a4b74
+ languageName: node
+ linkType: hard
+
+"scheduler@npm:^0.26.0":
+ version: 0.26.0
+ resolution: "scheduler@npm:0.26.0"
+ checksum: 10c0/5b8d5bfddaae3513410eda54f2268e98a376a429931921a81b5c3a2873aab7ca4d775a8caac5498f8cbc7d0daeab947cf923dbd8e215d61671f9f4e392d34356
+ languageName: node
+ linkType: hard
+
+"scrypt-js@npm:3.0.1, scrypt-js@npm:^3.0.0":
+ version: 3.0.1
+ resolution: "scrypt-js@npm:3.0.1"
+ checksum: 10c0/e2941e1c8b5c84c7f3732b0153fee624f5329fc4e772a06270ee337d4d2df4174b8abb5e6ad53804a29f53890ecbc78f3775a319323568c0313040c0e55f5b10
+ languageName: node
+ linkType: hard
+
+"secp256k1@npm:^4.0.1":
+ version: 4.0.4
+ resolution: "secp256k1@npm:4.0.4"
+ dependencies:
+ elliptic: "npm:^6.5.7"
+ node-addon-api: "npm:^5.0.0"
+ node-gyp: "npm:latest"
+ node-gyp-build: "npm:^4.2.0"
+ checksum: 10c0/cf7a74343566d4774c64332c07fc2caf983c80507f63be5c653ff2205242143d6320c50ee4d793e2b714a56540a79e65a8f0056e343b25b0cdfed878bc473fd8
+ languageName: node
+ linkType: hard
+
+"selderee@npm:^0.6.0":
+ version: 0.6.0
+ resolution: "selderee@npm:0.6.0"
+ dependencies:
+ parseley: "npm:^0.7.0"
+ checksum: 10c0/bd1f305e38aeca3ffe7f0f785a850b0426d8d56641abd7ed24855b7776730a512ec4114468b43621adcb6d71666b5a088c723bc7edc033d06c0a518cdd866809
+ languageName: node
+ linkType: hard
+
+"semver@npm:^7.3.5":
+ version: 7.6.3
+ resolution: "semver@npm:7.6.3"
+ bin:
+ semver: bin/semver.js
+ checksum: 10c0/88f33e148b210c153873cb08cfe1e281d518aaa9a666d4d148add6560db5cd3c582f3a08ccb91f38d5f379ead256da9931234ed122057f40bb5766e65e58adaf
+ languageName: node
+ linkType: hard
+
+"semver@npm:^7.7.2":
+ version: 7.7.2
+ resolution: "semver@npm:7.7.2"
+ bin:
+ semver: bin/semver.js
+ checksum: 10c0/aca305edfbf2383c22571cb7714f48cadc7ac95371b4b52362fb8eeffdfbc0de0669368b82b2b15978f8848f01d7114da65697e56cd8c37b0dab8c58e543f9ea
+ languageName: node
+ linkType: hard
+
+"setimmediate@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "setimmediate@npm:1.0.5"
+ checksum: 10c0/5bae81bfdbfbd0ce992893286d49c9693c82b1bcc00dcaaf3a09c8f428fdeacf4190c013598b81875dfac2b08a572422db7df779a99332d0fce186d15a3e4d49
+ languageName: node
+ linkType: hard
+
+"sha.js@npm:^2.4.0, sha.js@npm:^2.4.8":
+ version: 2.4.11
+ resolution: "sha.js@npm:2.4.11"
+ dependencies:
+ inherits: "npm:^2.0.1"
+ safe-buffer: "npm:^5.0.1"
+ bin:
+ sha.js: ./bin.js
+ checksum: 10c0/b7a371bca8821c9cc98a0aeff67444a03d48d745cb103f17228b96793f455f0eb0a691941b89ea1e60f6359207e36081d9be193252b0f128e0daf9cfea2815a5
+ languageName: node
+ linkType: hard
+
+"sharp@npm:^0.34.1":
+ version: 0.34.2
+ resolution: "sharp@npm:0.34.2"
+ dependencies:
+ "@img/sharp-darwin-arm64": "npm:0.34.2"
+ "@img/sharp-darwin-x64": "npm:0.34.2"
+ "@img/sharp-libvips-darwin-arm64": "npm:1.1.0"
+ "@img/sharp-libvips-darwin-x64": "npm:1.1.0"
+ "@img/sharp-libvips-linux-arm": "npm:1.1.0"
+ "@img/sharp-libvips-linux-arm64": "npm:1.1.0"
+ "@img/sharp-libvips-linux-ppc64": "npm:1.1.0"
+ "@img/sharp-libvips-linux-s390x": "npm:1.1.0"
+ "@img/sharp-libvips-linux-x64": "npm:1.1.0"
+ "@img/sharp-libvips-linuxmusl-arm64": "npm:1.1.0"
+ "@img/sharp-libvips-linuxmusl-x64": "npm:1.1.0"
+ "@img/sharp-linux-arm": "npm:0.34.2"
+ "@img/sharp-linux-arm64": "npm:0.34.2"
+ "@img/sharp-linux-s390x": "npm:0.34.2"
+ "@img/sharp-linux-x64": "npm:0.34.2"
+ "@img/sharp-linuxmusl-arm64": "npm:0.34.2"
+ "@img/sharp-linuxmusl-x64": "npm:0.34.2"
+ "@img/sharp-wasm32": "npm:0.34.2"
+ "@img/sharp-win32-arm64": "npm:0.34.2"
+ "@img/sharp-win32-ia32": "npm:0.34.2"
+ "@img/sharp-win32-x64": "npm:0.34.2"
+ color: "npm:^4.2.3"
+ detect-libc: "npm:^2.0.4"
+ semver: "npm:^7.7.2"
+ dependenciesMeta:
+ "@img/sharp-darwin-arm64":
+ optional: true
+ "@img/sharp-darwin-x64":
+ optional: true
+ "@img/sharp-libvips-darwin-arm64":
+ optional: true
+ "@img/sharp-libvips-darwin-x64":
+ optional: true
+ "@img/sharp-libvips-linux-arm":
+ optional: true
+ "@img/sharp-libvips-linux-arm64":
+ optional: true
+ "@img/sharp-libvips-linux-ppc64":
+ optional: true
+ "@img/sharp-libvips-linux-s390x":
+ optional: true
+ "@img/sharp-libvips-linux-x64":
+ optional: true
+ "@img/sharp-libvips-linuxmusl-arm64":
+ optional: true
+ "@img/sharp-libvips-linuxmusl-x64":
+ optional: true
+ "@img/sharp-linux-arm":
+ optional: true
+ "@img/sharp-linux-arm64":
+ optional: true
+ "@img/sharp-linux-s390x":
+ optional: true
+ "@img/sharp-linux-x64":
+ optional: true
+ "@img/sharp-linuxmusl-arm64":
+ optional: true
+ "@img/sharp-linuxmusl-x64":
+ optional: true
+ "@img/sharp-wasm32":
+ optional: true
+ "@img/sharp-win32-arm64":
+ optional: true
+ "@img/sharp-win32-ia32":
+ optional: true
+ "@img/sharp-win32-x64":
+ optional: true
+ checksum: 10c0/43967dbaaf1e1140a2f43b51d54762cc1bba01648392e355028568e4838833bf1abc2a96c09b893e6407b0c59a2c271d66e8d56a582aa6c951d476ab83a37fba
+ languageName: node
+ linkType: hard
+
+"shebang-command@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "shebang-command@npm:2.0.0"
+ dependencies:
+ shebang-regex: "npm:^3.0.0"
+ checksum: 10c0/a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e
+ languageName: node
+ linkType: hard
+
+"shebang-regex@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "shebang-regex@npm:3.0.0"
+ checksum: 10c0/1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690
+ languageName: node
+ linkType: hard
+
+"signal-exit@npm:^4.0.1, signal-exit@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "signal-exit@npm:4.1.0"
+ checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83
+ languageName: node
+ linkType: hard
+
+"simple-swizzle@npm:^0.2.2":
+ version: 0.2.2
+ resolution: "simple-swizzle@npm:0.2.2"
+ dependencies:
+ is-arrayish: "npm:^0.3.1"
+ checksum: 10c0/df5e4662a8c750bdba69af4e8263c5d96fe4cd0f9fe4bdfa3cbdeb45d2e869dff640beaaeb1ef0e99db4d8d2ec92f85508c269f50c972174851bc1ae5bd64308
+ languageName: node
+ linkType: hard
+
+"slice-ansi@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "slice-ansi@npm:5.0.0"
+ dependencies:
+ ansi-styles: "npm:^6.0.0"
+ is-fullwidth-code-point: "npm:^4.0.0"
+ checksum: 10c0/2d4d40b2a9d5cf4e8caae3f698fe24ae31a4d778701724f578e984dcb485ec8c49f0c04dab59c401821e80fcdfe89cace9c66693b0244e40ec485d72e543914f
+ languageName: node
+ linkType: hard
+
+"slice-ansi@npm:^7.1.0":
+ version: 7.1.0
+ resolution: "slice-ansi@npm:7.1.0"
+ dependencies:
+ ansi-styles: "npm:^6.2.1"
+ is-fullwidth-code-point: "npm:^5.0.0"
+ checksum: 10c0/631c971d4abf56cf880f034d43fcc44ff883624867bf11ecbd538c47343911d734a4656d7bc02362b40b89d765652a7f935595441e519b59e2ad3f4d5d6fe7ca
+ languageName: node
+ linkType: hard
+
+"smart-buffer@npm:^4.2.0":
+ version: 4.2.0
+ resolution: "smart-buffer@npm:4.2.0"
+ checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539
+ languageName: node
+ linkType: hard
+
+"socks-proxy-agent@npm:^8.0.3":
+ version: 8.0.4
+ resolution: "socks-proxy-agent@npm:8.0.4"
+ dependencies:
+ agent-base: "npm:^7.1.1"
+ debug: "npm:^4.3.4"
+ socks: "npm:^2.8.3"
+ checksum: 10c0/345593bb21b95b0508e63e703c84da11549f0a2657d6b4e3ee3612c312cb3a907eac10e53b23ede3557c6601d63252103494caa306b66560f43af7b98f53957a
+ languageName: node
+ linkType: hard
+
+"socks@npm:^2.8.3":
+ version: 2.8.3
+ resolution: "socks@npm:2.8.3"
+ dependencies:
+ ip-address: "npm:^9.0.5"
+ smart-buffer: "npm:^4.2.0"
+ checksum: 10c0/d54a52bf9325165770b674a67241143a3d8b4e4c8884560c4e0e078aace2a728dffc7f70150660f51b85797c4e1a3b82f9b7aa25e0a0ceae1a243365da5c51a7
+ languageName: node
+ linkType: hard
+
+"sonner@npm:^2.0.7":
+ version: 2.0.7
+ resolution: "sonner@npm:2.0.7"
+ peerDependencies:
+ react: ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ checksum: 10c0/6966ab5e892ed6aab579a175e4a24f3b48747f0fc21cb68c3e33cb41caa7a0eebeb098c210545395e47a18d585eb8734ae7dd12d2bd18c8a3294a1ee73f997d9
+ languageName: node
+ linkType: hard
+
+"source-map-js@npm:^1.0.2, source-map-js@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "source-map-js@npm:1.2.1"
+ checksum: 10c0/7bda1fc4c197e3c6ff17de1b8b2c20e60af81b63a52cb32ec5a5d67a20a7d42651e2cb34ebe93833c5a2a084377e17455854fee3e21e7925c64a51b6a52b0faf
+ languageName: node
+ linkType: hard
+
+"source-map@npm:~0.6.1":
+ version: 0.6.1
+ resolution: "source-map@npm:0.6.1"
+ checksum: 10c0/ab55398007c5e5532957cb0beee2368529618ac0ab372d789806f5718123cc4367d57de3904b4e6a4170eb5a0b0f41373066d02ca0735a0c4d75c7d328d3e011
+ languageName: node
+ linkType: hard
+
+"sprintf-js@npm:^1.1.1, sprintf-js@npm:^1.1.3":
+ version: 1.1.3
+ resolution: "sprintf-js@npm:1.1.3"
+ checksum: 10c0/09270dc4f30d479e666aee820eacd9e464215cdff53848b443964202bf4051490538e5dd1b42e1a65cf7296916ca17640aebf63dae9812749c7542ee5f288dec
+ languageName: node
+ linkType: hard
+
+"ssri@npm:^10.0.0":
+ version: 10.0.6
+ resolution: "ssri@npm:10.0.6"
+ dependencies:
+ minipass: "npm:^7.0.3"
+ checksum: 10c0/e5a1e23a4057a86a97971465418f22ea89bd439ac36ade88812dd920e4e61873e8abd6a9b72a03a67ef50faa00a2daf1ab745c5a15b46d03e0544a0296354227
+ languageName: node
+ linkType: hard
+
+"streamsearch@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "streamsearch@npm:1.1.0"
+ checksum: 10c0/fbd9aecc2621364384d157f7e59426f4bfd385e8b424b5aaa79c83a6f5a1c8fd2e4e3289e95de1eb3511cb96bb333d6281a9919fafce760e4edb35b2cd2facab
+ languageName: node
+ linkType: hard
+
+"string-argv@npm:~0.3.2":
+ version: 0.3.2
+ resolution: "string-argv@npm:0.3.2"
+ checksum: 10c0/75c02a83759ad1722e040b86823909d9a2fc75d15dd71ec4b537c3560746e33b5f5a07f7332d1e3f88319909f82190843aa2f0a0d8c8d591ec08e93d5b8dec82
+ languageName: node
+ linkType: hard
+
+"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0":
+ version: 4.2.3
+ resolution: "string-width@npm:4.2.3"
+ dependencies:
+ emoji-regex: "npm:^8.0.0"
+ is-fullwidth-code-point: "npm:^3.0.0"
+ strip-ansi: "npm:^6.0.1"
+ checksum: 10c0/1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b
+ languageName: node
+ linkType: hard
+
+"string-width@npm:^5.0.1, string-width@npm:^5.1.2":
+ version: 5.1.2
+ resolution: "string-width@npm:5.1.2"
+ dependencies:
+ eastasianwidth: "npm:^0.2.0"
+ emoji-regex: "npm:^9.2.2"
+ strip-ansi: "npm:^7.0.1"
+ checksum: 10c0/ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca
+ languageName: node
+ linkType: hard
+
+"string-width@npm:^7.0.0":
+ version: 7.2.0
+ resolution: "string-width@npm:7.2.0"
+ dependencies:
+ emoji-regex: "npm:^10.3.0"
+ get-east-asian-width: "npm:^1.0.0"
+ strip-ansi: "npm:^7.1.0"
+ checksum: 10c0/eb0430dd43f3199c7a46dcbf7a0b34539c76fe3aa62763d0b0655acdcbdf360b3f66f3d58ca25ba0205f42ea3491fa00f09426d3b7d3040e506878fc7664c9b9
+ languageName: node
+ linkType: hard
+
+"string_decoder@npm:^1.1.1":
+ version: 1.3.0
+ resolution: "string_decoder@npm:1.3.0"
+ dependencies:
+ safe-buffer: "npm:~5.2.0"
+ checksum: 10c0/810614ddb030e271cd591935dcd5956b2410dd079d64ff92a1844d6b7588bf992b3e1b69b0f4d34a3e06e0bd73046ac646b5264c1987b20d0601f81ef35d731d
+ languageName: node
+ linkType: hard
+
+"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1":
+ version: 6.0.1
+ resolution: "strip-ansi@npm:6.0.1"
+ dependencies:
+ ansi-regex: "npm:^5.0.1"
+ checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952
+ languageName: node
+ linkType: hard
+
+"strip-ansi@npm:^7.0.1, strip-ansi@npm:^7.1.0":
+ version: 7.1.0
+ resolution: "strip-ansi@npm:7.1.0"
+ dependencies:
+ ansi-regex: "npm:^6.0.1"
+ checksum: 10c0/a198c3762e8832505328cbf9e8c8381de14a4fa50a4f9b2160138158ea88c0f5549fb50cb13c651c3088f47e63a108b34622ec18c0499b6c8c3a5ddf6b305ac4
+ languageName: node
+ linkType: hard
+
+"strip-final-newline@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "strip-final-newline@npm:3.0.0"
+ checksum: 10c0/a771a17901427bac6293fd416db7577e2bc1c34a19d38351e9d5478c3c415f523f391003b42ed475f27e33a78233035df183525395f731d3bfb8cdcbd4da08ce
+ languageName: node
+ linkType: hard
+
+"strip-hex-prefix@npm:1.0.0":
+ version: 1.0.0
+ resolution: "strip-hex-prefix@npm:1.0.0"
+ dependencies:
+ is-hex-prefixed: "npm:1.0.0"
+ checksum: 10c0/ec9a48c334c2ba4afff2e8efebb42c3ab5439f0e1ec2b8525e184eabef7fecade7aee444af802b1be55d2df6da5b58c55166c32f8461cc7559b401137ad51851
+ languageName: node
+ linkType: hard
+
+"styled-jsx@npm:5.1.6":
+ version: 5.1.6
+ resolution: "styled-jsx@npm:5.1.6"
+ dependencies:
+ client-only: "npm:0.0.1"
+ peerDependencies:
+ react: ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0"
+ peerDependenciesMeta:
+ "@babel/core":
+ optional: true
+ babel-plugin-macros:
+ optional: true
+ checksum: 10c0/ace50e7ea5ae5ae6a3b65a50994c51fca6ae7df9c7ecfd0104c36be0b4b3a9c5c1a2374d16e2a11e256d0b20be6d47256d768ecb4f91ab390f60752a075780f5
+ languageName: node
+ linkType: hard
+
+"sucrase@npm:^3.35.0":
+ version: 3.35.0
+ resolution: "sucrase@npm:3.35.0"
+ dependencies:
+ "@jridgewell/gen-mapping": "npm:^0.3.2"
+ commander: "npm:^4.0.0"
+ glob: "npm:^10.3.10"
+ lines-and-columns: "npm:^1.1.6"
+ mz: "npm:^2.7.0"
+ pirates: "npm:^4.0.1"
+ ts-interface-checker: "npm:^0.1.9"
+ bin:
+ sucrase: bin/sucrase
+ sucrase-node: bin/sucrase-node
+ checksum: 10c0/ac85f3359d2c2ecbf5febca6a24ae9bf96c931f05fde533c22a94f59c6a74895e5d5f0e871878dfd59c2697a75ebb04e4b2224ef0bfc24ca1210735c2ec191ef
+ languageName: node
+ linkType: hard
+
+"supports-preserve-symlinks-flag@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "supports-preserve-symlinks-flag@npm:1.0.0"
+ checksum: 10c0/6c4032340701a9950865f7ae8ef38578d8d7053f5e10518076e6554a9381fa91bd9c6850193695c141f32b21f979c985db07265a758867bac95de05f7d8aeb39
+ languageName: node
+ linkType: hard
+
+"symbol-tree@npm:^3.2.4":
+ version: 3.2.4
+ resolution: "symbol-tree@npm:3.2.4"
+ checksum: 10c0/dfbe201ae09ac6053d163578778c53aa860a784147ecf95705de0cd23f42c851e1be7889241495e95c37cabb058edb1052f141387bef68f705afc8f9dd358509
+ languageName: node
+ linkType: hard
+
+"tailwind-merge@npm:^2.5.5":
+ version: 2.5.5
+ resolution: "tailwind-merge@npm:2.5.5"
+ checksum: 10c0/32614dd2b4ddd4fab070d5ec569e6da00e2b34269b9ac2f2ff16733cef29a076c8e2210fbfc1904d7983a8fdb6b3e63d18ca117645f21b12ca7bcf8fe3507241
+ languageName: node
+ linkType: hard
+
+"tailwindcss-animate@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "tailwindcss-animate@npm:1.0.7"
+ peerDependencies:
+ tailwindcss: "*"
+ checksum: 10c0/ec7dbd1631076b97d66a1fbaaa06e0725fccfa63119221e8d87a997b02dcede98ad88bb1ef6665b968f5d260fcefb10592e0299ca70208d365b37761edf5e19a
+ languageName: node
+ linkType: hard
+
+"tailwindcss@npm:^3.4.1":
+ version: 3.4.15
+ resolution: "tailwindcss@npm:3.4.15"
+ dependencies:
+ "@alloc/quick-lru": "npm:^5.2.0"
+ arg: "npm:^5.0.2"
+ chokidar: "npm:^3.6.0"
+ didyoumean: "npm:^1.2.2"
+ dlv: "npm:^1.1.3"
+ fast-glob: "npm:^3.3.2"
+ glob-parent: "npm:^6.0.2"
+ is-glob: "npm:^4.0.3"
+ jiti: "npm:^1.21.6"
+ lilconfig: "npm:^2.1.0"
+ micromatch: "npm:^4.0.8"
+ normalize-path: "npm:^3.0.0"
+ object-hash: "npm:^3.0.0"
+ picocolors: "npm:^1.1.1"
+ postcss: "npm:^8.4.47"
+ postcss-import: "npm:^15.1.0"
+ postcss-js: "npm:^4.0.1"
+ postcss-load-config: "npm:^4.0.2"
+ postcss-nested: "npm:^6.2.0"
+ postcss-selector-parser: "npm:^6.1.2"
+ resolve: "npm:^1.22.8"
+ sucrase: "npm:^3.35.0"
+ bin:
+ tailwind: lib/cli.js
+ tailwindcss: lib/cli.js
+ checksum: 10c0/709058837c5adf0b7e1386ba353983dcf2af3d390e8822fac8d53ecaaad0f6f040fd3050b1db636e2abd46ae775317a89b350ce925477ea96cca8f6c56d901df
+ languageName: node
+ linkType: hard
+
+"tar@npm:^6.1.11, tar@npm:^6.2.1":
+ version: 6.2.1
+ resolution: "tar@npm:6.2.1"
+ dependencies:
+ chownr: "npm:^2.0.0"
+ fs-minipass: "npm:^2.0.0"
+ minipass: "npm:^5.0.0"
+ minizlib: "npm:^2.1.1"
+ mkdirp: "npm:^1.0.3"
+ yallist: "npm:^4.0.0"
+ checksum: 10c0/a5eca3eb50bc11552d453488344e6507156b9193efd7635e98e867fab275d527af53d8866e2370cd09dfe74378a18111622ace35af6a608e5223a7d27fe99537
+ languageName: node
+ linkType: hard
+
+"thenify-all@npm:^1.0.0":
+ version: 1.6.0
+ resolution: "thenify-all@npm:1.6.0"
+ dependencies:
+ thenify: "npm:>= 3.1.0 < 4"
+ checksum: 10c0/9b896a22735e8122754fe70f1d65f7ee691c1d70b1f116fda04fea103d0f9b356e3676cb789506e3909ae0486a79a476e4914b0f92472c2e093d206aed4b7d6b
+ languageName: node
+ linkType: hard
+
+"thenify@npm:>= 3.1.0 < 4":
+ version: 3.3.1
+ resolution: "thenify@npm:3.3.1"
+ dependencies:
+ any-promise: "npm:^1.0.0"
+ checksum: 10c0/f375aeb2b05c100a456a30bc3ed07ef03a39cbdefe02e0403fb714b8c7e57eeaad1a2f5c4ecfb9ce554ce3db9c2b024eba144843cd9e344566d9fcee73b04767
+ languageName: node
+ linkType: hard
+
+"to-regex-range@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "to-regex-range@npm:5.0.1"
+ dependencies:
+ is-number: "npm:^7.0.0"
+ checksum: 10c0/487988b0a19c654ff3e1961b87f471702e708fa8a8dd02a298ef16da7206692e8552a0250e8b3e8759270f62e9d8314616f6da274734d3b558b1fc7b7724e892
+ languageName: node
+ linkType: hard
+
+"tough-cookie@npm:^4.1.2":
+ version: 4.1.4
+ resolution: "tough-cookie@npm:4.1.4"
+ dependencies:
+ psl: "npm:^1.1.33"
+ punycode: "npm:^2.1.1"
+ universalify: "npm:^0.2.0"
+ url-parse: "npm:^1.5.3"
+ checksum: 10c0/aca7ff96054f367d53d1e813e62ceb7dd2eda25d7752058a74d64b7266fd07be75908f3753a32ccf866a2f997604b414cfb1916d6e7f69bc64d9d9939b0d6c45
+ languageName: node
+ linkType: hard
+
+"tr46@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "tr46@npm:3.0.0"
+ dependencies:
+ punycode: "npm:^2.1.1"
+ checksum: 10c0/cdc47cad3a9d0b6cb293e39ccb1066695ae6fdd39b9e4f351b010835a1f8b4f3a6dc3a55e896b421371187f22b48d7dac1b693de4f6551bdef7b6ab6735dfe3b
+ languageName: node
+ linkType: hard
+
+"ts-interface-checker@npm:^0.1.9":
+ version: 0.1.13
+ resolution: "ts-interface-checker@npm:0.1.13"
+ checksum: 10c0/232509f1b84192d07b81d1e9b9677088e590ac1303436da1e92b296e9be8e31ea042e3e1fd3d29b1742ad2c959e95afe30f63117b8f1bc3a3850070a5142fea7
+ languageName: node
+ linkType: hard
+
+"tslib@npm:2, tslib@npm:^2.0.0, tslib@npm:^2.1.0, tslib@npm:^2.4.0, tslib@npm:^2.8.0":
+ version: 2.8.1
+ resolution: "tslib@npm:2.8.1"
+ checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62
+ languageName: node
+ linkType: hard
+
+"typescript@npm:^5":
+ version: 5.7.3
+ resolution: "typescript@npm:5.7.3"
+ bin:
+ tsc: bin/tsc
+ tsserver: bin/tsserver
+ checksum: 10c0/b7580d716cf1824736cc6e628ab4cd8b51877408ba2be0869d2866da35ef8366dd6ae9eb9d0851470a39be17cbd61df1126f9e211d8799d764ea7431d5435afa
+ languageName: node
+ linkType: hard
+
+"typescript@patch:typescript@npm%3A^5#optional!builtin":
+ version: 5.7.3
+ resolution: "typescript@patch:typescript@npm%3A5.7.3#optional!builtin::version=5.7.3&hash=5786d5"
+ bin:
+ tsc: bin/tsc
+ tsserver: bin/tsserver
+ checksum: 10c0/6fd7e0ed3bf23a81246878c613423730c40e8bdbfec4c6e4d7bf1b847cbb39076e56ad5f50aa9d7ebd89877999abaee216002d3f2818885e41c907caaa192cc4
+ languageName: node
+ linkType: hard
+
+"undici-types@npm:~6.20.0":
+ version: 6.20.0
+ resolution: "undici-types@npm:6.20.0"
+ checksum: 10c0/68e659a98898d6a836a9a59e6adf14a5d799707f5ea629433e025ac90d239f75e408e2e5ff086afc3cace26f8b26ee52155293564593fbb4a2f666af57fc59bf
+ languageName: node
+ linkType: hard
+
+"unique-filename@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "unique-filename@npm:3.0.0"
+ dependencies:
+ unique-slug: "npm:^4.0.0"
+ checksum: 10c0/6363e40b2fa758eb5ec5e21b3c7fb83e5da8dcfbd866cc0c199d5534c42f03b9ea9ab069769cc388e1d7ab93b4eeef28ef506ab5f18d910ef29617715101884f
+ languageName: node
+ linkType: hard
+
+"unique-slug@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "unique-slug@npm:4.0.0"
+ dependencies:
+ imurmurhash: "npm:^0.1.4"
+ checksum: 10c0/cb811d9d54eb5821b81b18205750be84cb015c20a4a44280794e915f5a0a70223ce39066781a354e872df3572e8155c228f43ff0cce94c7cbf4da2cc7cbdd635
+ languageName: node
+ linkType: hard
+
+"universalify@npm:^0.2.0":
+ version: 0.2.0
+ resolution: "universalify@npm:0.2.0"
+ checksum: 10c0/cedbe4d4ca3967edf24c0800cfc161c5a15e240dac28e3ce575c689abc11f2c81ccc6532c8752af3b40f9120fb5e454abecd359e164f4f6aa44c29cd37e194fe
+ languageName: node
+ linkType: hard
+
+"url-parse@npm:^1.5.3":
+ version: 1.5.10
+ resolution: "url-parse@npm:1.5.10"
+ dependencies:
+ querystringify: "npm:^2.1.1"
+ requires-port: "npm:^1.0.0"
+ checksum: 10c0/bd5aa9389f896974beb851c112f63b466505a04b4807cea2e5a3b7092f6fbb75316f0491ea84e44f66fed55f1b440df5195d7e3a8203f64fcefa19d182f5be87
+ languageName: node
+ linkType: hard
+
+"use-callback-ref@npm:^1.3.0":
+ version: 1.3.2
+ resolution: "use-callback-ref@npm:1.3.2"
+ dependencies:
+ tslib: "npm:^2.0.0"
+ 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
+ checksum: 10c0/d232c37160fe3970c99255da19b5fb5299fb5926a5d6141d928a87feb47732c323d29be2f8137d3b1e5499c70d284cd1d9cfad703cc58179db8be24d7dd8f1f2
+ languageName: node
+ linkType: hard
+
+"use-intl@npm:^3.26.3":
+ version: 3.26.3
+ resolution: "use-intl@npm:3.26.3"
+ dependencies:
+ "@formatjs/fast-memoize": "npm:^2.2.0"
+ intl-messageformat: "npm:^10.5.14"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0
+ checksum: 10c0/ca79ce71ec4f6860cc5fd911bded30c6fb4d6596d3ab8abad97de294a9717b72885f7506f629737a6620507ce76c0b3b39490010927057fedcf52f65cf94b01f
+ languageName: node
+ linkType: hard
+
+"use-sidecar@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "use-sidecar@npm:1.1.2"
+ dependencies:
+ detect-node-es: "npm:^1.1.0"
+ tslib: "npm:^2.0.0"
+ 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
+ checksum: 10c0/89f0018fd9aee1fc17c85ac18c4bf8944d460d453d0d0e04ddbc8eaddf3fa591e9c74a1f8a438a1bff368a7a2417fab380bdb3df899d2194c4375b0982736de0
+ languageName: node
+ linkType: hard
+
+"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "util-deprecate@npm:1.0.2"
+ checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942
+ languageName: node
+ linkType: hard
+
+"viem@npm:^2.23.2":
+ version: 2.23.2
+ resolution: "viem@npm:2.23.2"
+ dependencies:
+ "@noble/curves": "npm:1.8.1"
+ "@noble/hashes": "npm:1.7.1"
+ "@scure/bip32": "npm:1.6.2"
+ "@scure/bip39": "npm:1.5.4"
+ abitype: "npm:1.0.8"
+ isows: "npm:1.0.6"
+ ox: "npm:0.6.7"
+ ws: "npm:8.18.0"
+ peerDependencies:
+ typescript: ">=5.0.4"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10c0/39332d008d2ab0700aa57f541bb199350daecdfb722ae1b262404b02944e11205368fcc696cc0ab8327b9f90bf7172014687ae3e5d9091978e9d174885ccff2d
+ languageName: node
+ linkType: hard
+
+"w3c-xmlserializer@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "w3c-xmlserializer@npm:4.0.0"
+ dependencies:
+ xml-name-validator: "npm:^4.0.0"
+ checksum: 10c0/02cc66d6efc590bd630086cd88252444120f5feec5c4043932b0d0f74f8b060512f79dc77eb093a7ad04b4f02f39da79ce4af47ceb600f2bf9eacdc83204b1a8
+ languageName: node
+ linkType: hard
+
+"web@workspace:.":
+ version: 0.0.0-use.local
+ resolution: "web@workspace:."
+ dependencies:
+ "@biomejs/biome": "npm:1.9.4"
+ "@kleros/kleros-sdk": "npm:2.3.1"
+ "@radix-ui/react-dropdown-menu": "npm:^2.1.2"
+ "@radix-ui/react-separator": "npm:^1.1.0"
+ "@radix-ui/react-toast": "npm:^1.2.15"
+ "@radix-ui/react-tooltip": "npm:^1.2.8"
+ "@types/node": "npm:^22"
+ "@types/react": "npm:19.1.6"
+ "@types/react-dom": "npm:19.1.5"
+ "@types/rtl-detect": "npm:^1"
+ class-variance-authority: "npm:^0.7.1"
+ clsx: "npm:^2.1.1"
+ husky: "npm:^9.1.7"
+ lint-staged: "npm:^15.2.10"
+ lucide-react: "npm:^0.475.0"
+ next: "npm:15.3.3"
+ next-intl: "npm:^3.26.3"
+ postcss: "npm:^8"
+ react: "npm:19.1.0"
+ react-dom: "npm:19.1.0"
+ rtl-detect: "npm:^1.1.2"
+ sonner: "npm:^2.0.7"
+ tailwind-merge: "npm:^2.5.5"
+ tailwindcss: "npm:^3.4.1"
+ tailwindcss-animate: "npm:^1.0.7"
+ typescript: "npm:^5"
+ viem: "npm:^2.23.2"
+ languageName: unknown
+ linkType: soft
+
+"webidl-conversions@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "webidl-conversions@npm:7.0.0"
+ checksum: 10c0/228d8cb6d270c23b0720cb2d95c579202db3aaf8f633b4e9dd94ec2000a04e7e6e43b76a94509cdb30479bd00ae253ab2371a2da9f81446cc313f89a4213a2c4
+ languageName: node
+ linkType: hard
+
+"whatwg-encoding@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "whatwg-encoding@npm:2.0.0"
+ dependencies:
+ iconv-lite: "npm:0.6.3"
+ checksum: 10c0/91b90a49f312dc751496fd23a7e68981e62f33afe938b97281ad766235c4872fc4e66319f925c5e9001502b3040dd25a33b02a9c693b73a4cbbfdc4ad10c3e3e
+ languageName: node
+ linkType: hard
+
+"whatwg-mimetype@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "whatwg-mimetype@npm:3.0.0"
+ checksum: 10c0/323895a1cda29a5fb0b9ca82831d2c316309fede0365047c4c323073e3239067a304a09a1f4b123b9532641ab604203f33a1403b5ca6a62ef405bcd7a204080f
+ languageName: node
+ linkType: hard
+
+"whatwg-url@npm:^11.0.0":
+ version: 11.0.0
+ resolution: "whatwg-url@npm:11.0.0"
+ dependencies:
+ tr46: "npm:^3.0.0"
+ webidl-conversions: "npm:^7.0.0"
+ checksum: 10c0/f7ec264976d7c725e0696fcaf9ebe056e14422eacbf92fdbb4462034609cba7d0c85ffa1aab05e9309d42969bcf04632ba5ed3f3882c516d7b093053315bf4c1
+ languageName: node
+ linkType: hard
+
+"which@npm:^2.0.1":
+ version: 2.0.2
+ resolution: "which@npm:2.0.2"
+ dependencies:
+ isexe: "npm:^2.0.0"
+ bin:
+ node-which: ./bin/node-which
+ checksum: 10c0/66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f
+ languageName: node
+ linkType: hard
+
+"which@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "which@npm:4.0.0"
+ dependencies:
+ isexe: "npm:^3.1.1"
+ bin:
+ node-which: bin/which.js
+ checksum: 10c0/449fa5c44ed120ccecfe18c433296a4978a7583bf2391c50abce13f76878d2476defde04d0f79db8165bdf432853c1f8389d0485ca6e8ebce3bbcded513d5e6a
+ languageName: node
+ linkType: hard
+
+"wonka@npm:^6.3.2":
+ version: 6.3.4
+ resolution: "wonka@npm:6.3.4"
+ checksum: 10c0/77329eea673da07717476e1b8f1a22f1e1a4f261bb9a58fa446c03d3da13dbd5b254664f8aded5928d953f33ee5b399a17a4f70336e8b236e478209c0e78cda4
+ languageName: node
+ linkType: hard
+
+"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
+ version: 7.0.0
+ resolution: "wrap-ansi@npm:7.0.0"
+ dependencies:
+ ansi-styles: "npm:^4.0.0"
+ string-width: "npm:^4.1.0"
+ strip-ansi: "npm:^6.0.0"
+ checksum: 10c0/d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da
+ languageName: node
+ linkType: hard
+
+"wrap-ansi@npm:^8.1.0":
+ version: 8.1.0
+ resolution: "wrap-ansi@npm:8.1.0"
+ dependencies:
+ ansi-styles: "npm:^6.1.0"
+ string-width: "npm:^5.0.1"
+ strip-ansi: "npm:^7.0.1"
+ checksum: 10c0/138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60
+ languageName: node
+ linkType: hard
+
+"wrap-ansi@npm:^9.0.0":
+ version: 9.0.0
+ resolution: "wrap-ansi@npm:9.0.0"
+ dependencies:
+ ansi-styles: "npm:^6.2.1"
+ string-width: "npm:^7.0.0"
+ strip-ansi: "npm:^7.1.0"
+ checksum: 10c0/a139b818da9573677548dd463bd626a5a5286271211eb6e4e82f34a4f643191d74e6d4a9bb0a3c26ec90e6f904f679e0569674ac099ea12378a8b98e20706066
+ languageName: node
+ linkType: hard
+
+"ws@npm:8.18.0, ws@npm:^8.11.0":
+ version: 8.18.0
+ resolution: "ws@npm:8.18.0"
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: ">=5.0.2"
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+ checksum: 10c0/25eb33aff17edcb90721ed6b0eb250976328533ad3cd1a28a274bd263682e7296a6591ff1436d6cbc50fa67463158b062f9d1122013b361cec99a05f84680e06
+ languageName: node
+ linkType: hard
+
+"xml-name-validator@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "xml-name-validator@npm:4.0.0"
+ checksum: 10c0/c1bfa219d64e56fee265b2bd31b2fcecefc063ee802da1e73bad1f21d7afd89b943c9e2c97af2942f60b1ad46f915a4c81e00039c7d398b53cf410e29d3c30bd
+ languageName: node
+ linkType: hard
+
+"xmlchars@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "xmlchars@npm:2.2.0"
+ checksum: 10c0/b64b535861a6f310c5d9bfa10834cf49127c71922c297da9d4d1b45eeaae40bf9b4363275876088fbe2667e5db028d2cd4f8ee72eed9bede840a67d57dab7593
+ languageName: node
+ linkType: hard
+
+"yallist@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "yallist@npm:4.0.0"
+ checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a
+ languageName: node
+ linkType: hard
+
+"yaml@npm:^2.3.4":
+ version: 2.6.1
+ resolution: "yaml@npm:2.6.1"
+ bin:
+ yaml: bin.mjs
+ checksum: 10c0/aebf07f61c72b38c74d2b60c3a3ccf89ee4da45bcd94b2bfb7899ba07a5257625a7c9f717c65a6fc511563d48001e01deb1d9e55f0133f3e2edf86039c8c1be7
+ languageName: node
+ linkType: hard
+
+"yaml@npm:~2.5.0":
+ version: 2.5.1
+ resolution: "yaml@npm:2.5.1"
+ bin:
+ yaml: bin.mjs
+ checksum: 10c0/40fba5682898dbeeb3319e358a968fe886509fab6f58725732a15f8dda3abac509f91e76817c708c9959a15f786f38ff863c1b88062d7c1162c5334a7d09cb4a
+ languageName: node
+ linkType: hard
+
+"zod@npm:^3.23.8":
+ version: 3.24.1
+ resolution: "zod@npm:3.24.1"
+ checksum: 10c0/0223d21dbaa15d8928fe0da3b54696391d8e3e1e2d0283a1a070b5980a1dbba945ce631c2d1eccc088fdbad0f2dfa40155590bf83732d3ac4fcca2cc9237591b
+ languageName: node
+ linkType: hard