From 60f086320fe630323d08bc208a59f1d76a86512b Mon Sep 17 00:00:00 2001 From: Aaron Bassett Date: Thu, 8 May 2025 12:19:39 +0100 Subject: [PATCH 01/15] feat: start Developer Hub app with Fumadocs integration --- apps/developer-hub/.gitignore | 2 + apps/developer-hub/.prettierignore | 7 + .../docs/entropy/how-to-guides/index.mdx | 8 + .../content/docs/entropy/index.mdx | 10 + .../content/docs/entropy/meta.json | 7 + .../express-relay/how-to-guides/index.mdx | 8 + .../content/docs/express-relay/index.mdx | 10 + .../content/docs/express-relay/meta.json | 7 + .../docs/lazer/how-to-guides/index.mdx | 8 + .../content/docs/lazer/index.mdx | 10 + .../content/docs/lazer/meta.json | 7 + apps/developer-hub/content/docs/meta.json | 3 + .../docs/pyth-core/how-to-guides/index.mdx | 8 + .../content/docs/pyth-core/index.mdx | 10 + .../content/docs/pyth-core/meta.json | 7 + apps/developer-hub/eslint.config.js | 1 + apps/developer-hub/jest.config.js | 1 + apps/developer-hub/next-env.d.ts | 5 + apps/developer-hub/next.config.js | 77 + apps/developer-hub/package.json | 65 + apps/developer-hub/postcss.config.mjs | 5 + apps/developer-hub/prettier.config.js | 1 + .../public/android-chrome-192x192.png | Bin 0 -> 3420 bytes .../public/android-chrome-512x512.png | Bin 0 -> 8471 bytes .../developer-hub/public/apple-touch-icon.png | Bin 0 -> 3293 bytes apps/developer-hub/public/favicon-16x16.png | Bin 0 -> 965 bytes apps/developer-hub/public/favicon-32x32.png | Bin 0 -> 1453 bytes apps/developer-hub/public/favicon-light.ico | Bin 0 -> 15086 bytes apps/developer-hub/public/favicon.ico | Bin 0 -> 15086 bytes apps/developer-hub/source.config.ts | 26 + .../app/(docs)/[section]/[...slug]/page.tsx | 25 + .../src/app/(docs)/[section]/page.tsx | 24 + apps/developer-hub/src/app/(docs)/layout.tsx | 7 + .../src/app/(homepage)/layout.tsx | 7 + .../developer-hub/src/app/(homepage)/page.tsx | 3 + .../developer-hub/src/app/api/search/route.ts | 4 + apps/developer-hub/src/app/layout.ts | 2 + apps/developer-hub/src/app/robots.ts | 11 + .../src/components/Pages/BasePage/index.tsx | 26 + .../Pages/DocumentationPage/index.tsx | 9 + .../Pages/Homepage/index.module.scss | 5 + .../src/components/Pages/Homepage/index.tsx | 16 + .../components/Pages/LandingPage/index.tsx | 8 + .../src/components/Root/global.css | 4 + .../src/components/Root/index.tsx | 36 + .../src/components/Root/theme.css | 336 ++ .../src/config/layout.config.tsx | 34 + apps/developer-hub/src/config/server.ts | 29 + apps/developer-hub/src/mdx-components.tsx | 9 + apps/developer-hub/src/metadata.ts | 52 + apps/developer-hub/src/source.ts | 33 + apps/developer-hub/stylelint.config.js | 21 + apps/developer-hub/svg.d.ts | 6 + apps/developer-hub/tsconfig.json | 11 + apps/developer-hub/turbo.json | 41 + apps/developer-hub/vercel.json | 5 + pnpm-lock.yaml | 2798 +++++++++++++++-- pnpm-workspace.yaml | 7 + 58 files changed, 3517 insertions(+), 345 deletions(-) create mode 100644 apps/developer-hub/.gitignore create mode 100644 apps/developer-hub/.prettierignore create mode 100644 apps/developer-hub/content/docs/entropy/how-to-guides/index.mdx create mode 100644 apps/developer-hub/content/docs/entropy/index.mdx create mode 100644 apps/developer-hub/content/docs/entropy/meta.json create mode 100644 apps/developer-hub/content/docs/express-relay/how-to-guides/index.mdx create mode 100644 apps/developer-hub/content/docs/express-relay/index.mdx create mode 100644 apps/developer-hub/content/docs/express-relay/meta.json create mode 100644 apps/developer-hub/content/docs/lazer/how-to-guides/index.mdx create mode 100644 apps/developer-hub/content/docs/lazer/index.mdx create mode 100644 apps/developer-hub/content/docs/lazer/meta.json create mode 100644 apps/developer-hub/content/docs/meta.json create mode 100644 apps/developer-hub/content/docs/pyth-core/how-to-guides/index.mdx create mode 100644 apps/developer-hub/content/docs/pyth-core/index.mdx create mode 100644 apps/developer-hub/content/docs/pyth-core/meta.json create mode 100644 apps/developer-hub/eslint.config.js create mode 100644 apps/developer-hub/jest.config.js create mode 100644 apps/developer-hub/next-env.d.ts create mode 100644 apps/developer-hub/next.config.js create mode 100644 apps/developer-hub/package.json create mode 100644 apps/developer-hub/postcss.config.mjs create mode 100644 apps/developer-hub/prettier.config.js create mode 100644 apps/developer-hub/public/android-chrome-192x192.png create mode 100644 apps/developer-hub/public/android-chrome-512x512.png create mode 100644 apps/developer-hub/public/apple-touch-icon.png create mode 100644 apps/developer-hub/public/favicon-16x16.png create mode 100644 apps/developer-hub/public/favicon-32x32.png create mode 100644 apps/developer-hub/public/favicon-light.ico create mode 100644 apps/developer-hub/public/favicon.ico create mode 100644 apps/developer-hub/source.config.ts create mode 100644 apps/developer-hub/src/app/(docs)/[section]/[...slug]/page.tsx create mode 100644 apps/developer-hub/src/app/(docs)/[section]/page.tsx create mode 100644 apps/developer-hub/src/app/(docs)/layout.tsx create mode 100644 apps/developer-hub/src/app/(homepage)/layout.tsx create mode 100644 apps/developer-hub/src/app/(homepage)/page.tsx create mode 100644 apps/developer-hub/src/app/api/search/route.ts create mode 100644 apps/developer-hub/src/app/layout.ts create mode 100644 apps/developer-hub/src/app/robots.ts create mode 100644 apps/developer-hub/src/components/Pages/BasePage/index.tsx create mode 100644 apps/developer-hub/src/components/Pages/DocumentationPage/index.tsx create mode 100644 apps/developer-hub/src/components/Pages/Homepage/index.module.scss create mode 100644 apps/developer-hub/src/components/Pages/Homepage/index.tsx create mode 100644 apps/developer-hub/src/components/Pages/LandingPage/index.tsx create mode 100644 apps/developer-hub/src/components/Root/global.css create mode 100644 apps/developer-hub/src/components/Root/index.tsx create mode 100644 apps/developer-hub/src/components/Root/theme.css create mode 100644 apps/developer-hub/src/config/layout.config.tsx create mode 100644 apps/developer-hub/src/config/server.ts create mode 100644 apps/developer-hub/src/mdx-components.tsx create mode 100644 apps/developer-hub/src/metadata.ts create mode 100644 apps/developer-hub/src/source.ts create mode 100644 apps/developer-hub/stylelint.config.js create mode 100644 apps/developer-hub/svg.d.ts create mode 100644 apps/developer-hub/tsconfig.json create mode 100644 apps/developer-hub/turbo.json create mode 100644 apps/developer-hub/vercel.json diff --git a/apps/developer-hub/.gitignore b/apps/developer-hub/.gitignore new file mode 100644 index 0000000000..1ae255e6f6 --- /dev/null +++ b/apps/developer-hub/.gitignore @@ -0,0 +1,2 @@ +.env*.local +.source \ No newline at end of file diff --git a/apps/developer-hub/.prettierignore b/apps/developer-hub/.prettierignore new file mode 100644 index 0000000000..5f66a649b5 --- /dev/null +++ b/apps/developer-hub/.prettierignore @@ -0,0 +1,7 @@ +.next/ +coverage/ +node_modules/ +*.tsbuildinfo +.env*.local +.env +.DS_Store diff --git a/apps/developer-hub/content/docs/entropy/how-to-guides/index.mdx b/apps/developer-hub/content/docs/entropy/how-to-guides/index.mdx new file mode 100644 index 0000000000..eebae79a09 --- /dev/null +++ b/apps/developer-hub/content/docs/entropy/how-to-guides/index.mdx @@ -0,0 +1,8 @@ +--- +title: Entropy How-To Guide +description: A placeholder docs page +--- + +# How To + +Build secure smart contracts with provably random numbers from Pyth Entropy. Launch NFTs, games, and other unique experiences that your users trust with seamless UX. diff --git a/apps/developer-hub/content/docs/entropy/index.mdx b/apps/developer-hub/content/docs/entropy/index.mdx new file mode 100644 index 0000000000..04dbfae454 --- /dev/null +++ b/apps/developer-hub/content/docs/entropy/index.mdx @@ -0,0 +1,10 @@ +--- +title: Overview +description: A placeholder landing page +icon: CardsThree +full: true +--- + +# Secure On-Chain Randomness + +Build secure smart contracts with provably random numbers from Pyth Entropy. Launch NFTs, games, and other unique experiences that your users trust with seamless UX. diff --git a/apps/developer-hub/content/docs/entropy/meta.json b/apps/developer-hub/content/docs/entropy/meta.json new file mode 100644 index 0000000000..24b6439855 --- /dev/null +++ b/apps/developer-hub/content/docs/entropy/meta.json @@ -0,0 +1,7 @@ +{ + "root": true, + "title": "Entropy", + "description": "Random numbers for smart contracts", + "icon": "Shuffle", + "pages": ["index", "---Guides---", "how-to-guides"] +} diff --git a/apps/developer-hub/content/docs/express-relay/how-to-guides/index.mdx b/apps/developer-hub/content/docs/express-relay/how-to-guides/index.mdx new file mode 100644 index 0000000000..f6ff30c91f --- /dev/null +++ b/apps/developer-hub/content/docs/express-relay/how-to-guides/index.mdx @@ -0,0 +1,8 @@ +--- +title: Express Relay How-To Guide +description: A placeholder docs page +--- + +# How To + +Integrate directly with searchers to recapture MEV. Go to market faster. Accelerate your protocol's growth. diff --git a/apps/developer-hub/content/docs/express-relay/index.mdx b/apps/developer-hub/content/docs/express-relay/index.mdx new file mode 100644 index 0000000000..a466db4185 --- /dev/null +++ b/apps/developer-hub/content/docs/express-relay/index.mdx @@ -0,0 +1,10 @@ +--- +title: Overview +description: A placeholder landing page +icon: CardsThree +full: true +--- + +# Take Back Control with Express Relay + +Integrate directly with searchers to recapture MEV. Go to market faster. Accelerate your protocol's growth. diff --git a/apps/developer-hub/content/docs/express-relay/meta.json b/apps/developer-hub/content/docs/express-relay/meta.json new file mode 100644 index 0000000000..37cb671029 --- /dev/null +++ b/apps/developer-hub/content/docs/express-relay/meta.json @@ -0,0 +1,7 @@ +{ + "root": true, + "title": "Express Relay", + "description": "Eliminate MEV", + "icon": "Gavel", + "pages": ["index", "---Guides---", "how-to-guides"] +} diff --git a/apps/developer-hub/content/docs/lazer/how-to-guides/index.mdx b/apps/developer-hub/content/docs/lazer/how-to-guides/index.mdx new file mode 100644 index 0000000000..cc6715360f --- /dev/null +++ b/apps/developer-hub/content/docs/lazer/how-to-guides/index.mdx @@ -0,0 +1,8 @@ +--- +title: Lazer How-To Guide +description: A placeholder docs page +--- + +# How To + +Pyth Lazer is a low latency, highly customizable price oracle. It offers a customizable set of price feeds, target chains (EVM or Solana) and channels (real time or fixed rate) diff --git a/apps/developer-hub/content/docs/lazer/index.mdx b/apps/developer-hub/content/docs/lazer/index.mdx new file mode 100644 index 0000000000..9ab88b64c9 --- /dev/null +++ b/apps/developer-hub/content/docs/lazer/index.mdx @@ -0,0 +1,10 @@ +--- +title: Overview +description: A placeholder landing page +icon: CardsThree +full: true +--- + +# Low latency, highly customizable price oracle + +Pyth Lazer is a low latency, highly customizable price oracle. It offers a customizable set of price feeds, target chains (EVM or Solana) and channels (real time or fixed rate) diff --git a/apps/developer-hub/content/docs/lazer/meta.json b/apps/developer-hub/content/docs/lazer/meta.json new file mode 100644 index 0000000000..2a1c9a243e --- /dev/null +++ b/apps/developer-hub/content/docs/lazer/meta.json @@ -0,0 +1,7 @@ +{ + "root": true, + "title": "Lazer", + "description": "Low latency, highly customizable price oracle", + "icon": "Lightning", + "pages": ["index", "---Guides---", "how-to-guides"] +} diff --git a/apps/developer-hub/content/docs/meta.json b/apps/developer-hub/content/docs/meta.json new file mode 100644 index 0000000000..8e91b9b9a8 --- /dev/null +++ b/apps/developer-hub/content/docs/meta.json @@ -0,0 +1,3 @@ +{ + "pages": ["pyth-core", "lazer", "express-relay", "entropy"] +} diff --git a/apps/developer-hub/content/docs/pyth-core/how-to-guides/index.mdx b/apps/developer-hub/content/docs/pyth-core/how-to-guides/index.mdx new file mode 100644 index 0000000000..43ccaa0b70 --- /dev/null +++ b/apps/developer-hub/content/docs/pyth-core/how-to-guides/index.mdx @@ -0,0 +1,8 @@ +--- +title: Pyth Core How-To Guide +description: A placeholder docs page +--- + +# Heading One + +The fastest and most reliable data powering more transactions than any other oracle. Permissionless integration on every blockchain. diff --git a/apps/developer-hub/content/docs/pyth-core/index.mdx b/apps/developer-hub/content/docs/pyth-core/index.mdx new file mode 100644 index 0000000000..b594653bf4 --- /dev/null +++ b/apps/developer-hub/content/docs/pyth-core/index.mdx @@ -0,0 +1,10 @@ +--- +title: Overview +description: A placeholder landing page +icon: CardsThree +full: true +--- + +# Real-time data from financial institutions + +The fastest and most reliable data powering more transactions than any other oracle. Permissionless integration on every blockchain. diff --git a/apps/developer-hub/content/docs/pyth-core/meta.json b/apps/developer-hub/content/docs/pyth-core/meta.json new file mode 100644 index 0000000000..b420fde742 --- /dev/null +++ b/apps/developer-hub/content/docs/pyth-core/meta.json @@ -0,0 +1,7 @@ +{ + "root": true, + "title": "Pyth Core", + "description": "Real-time data from financial institutions", + "icon": "ChartLine", + "pages": ["index", "---Guides---", "how-to-guides"] +} diff --git a/apps/developer-hub/eslint.config.js b/apps/developer-hub/eslint.config.js new file mode 100644 index 0000000000..7035c57cb4 --- /dev/null +++ b/apps/developer-hub/eslint.config.js @@ -0,0 +1 @@ +export { nextjs as default } from "@cprussin/eslint-config"; diff --git a/apps/developer-hub/jest.config.js b/apps/developer-hub/jest.config.js new file mode 100644 index 0000000000..0bac66ed0e --- /dev/null +++ b/apps/developer-hub/jest.config.js @@ -0,0 +1 @@ +export { nextjs as default } from "@cprussin/jest-config/next"; diff --git a/apps/developer-hub/next-env.d.ts b/apps/developer-hub/next-env.d.ts new file mode 100644 index 0000000000..1b3be0840f --- /dev/null +++ b/apps/developer-hub/next-env.d.ts @@ -0,0 +1,5 @@ +/// +/// + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/apps/developer-hub/next.config.js b/apps/developer-hub/next.config.js new file mode 100644 index 0000000000..5db6b68764 --- /dev/null +++ b/apps/developer-hub/next.config.js @@ -0,0 +1,77 @@ +import createBundleAnalyzer from "@next/bundle-analyzer"; +import { createMDX } from "fumadocs-mdx/next"; + +const withAnalyzer = createBundleAnalyzer({ + enabled: process.env.ANALYZE === "true", +}); + +const config = { + reactStrictMode: true, + turbopack: { + resolveExtensions: [".mdx", ".tsx", ".ts", ".jsx", ".js", ".mjs", ".json"], + rules: { + "*.svg": { + loaders: ["@svgr/webpack"], + as: "*.js", + }, + }, + }, + + pageExtensions: ["ts", "tsx", "mdx"], + + experimental: { + useCache: true, + }, + + logging: { + fetches: { + fullUrl: true, + }, + }, + + webpack(config) { + config.module.rules.push({ + test: /\.svg$/i, + use: ["@svgr/webpack"], + }); + + config.resolve.extensionAlias = { + ".js": [".js", ".ts", ".tsx"], + }; + + return config; + }, + + headers: async () => [ + { + source: "/:path*", + headers: [ + { + key: "X-XSS-Protection", + value: "1; mode=block", + }, + { + key: "Referrer-Policy", + value: "strict-origin-when-cross-origin", + }, + { + key: "Strict-Transport-Security", + value: "max-age=2592000", + }, + { + key: "X-Content-Type-Options", + value: "nosniff", + }, + { + key: "Permissions-Policy", + value: + "vibrate=(), geolocation=(), midi=(), notifications=(), push=(), sync-xhr=(), microphone=(), camera=(), magnetometer=(), gyroscope=(), speaker=(), vibrate=(), fullscreen=self", + }, + ], + }, + ], +}; + +const withMDX = createMDX(); + +export default withAnalyzer(withMDX(config)); diff --git a/apps/developer-hub/package.json b/apps/developer-hub/package.json new file mode 100644 index 0000000000..6e453fa988 --- /dev/null +++ b/apps/developer-hub/package.json @@ -0,0 +1,65 @@ +{ + "name": "@pythnetwork/developer-hub", + "version": "0.0.0", + "private": true, + "type": "module", + "engines": { + "node": "22" + }, + "scripts": { + "build:vercel": "next build", + "build:analyze": "ANALYZE=true next build", + "fix:format": "prettier --write .", + "fix:lint:eslint": "eslint --fix .", + "fix:lint:stylelint": "stylelint --fix 'src/**/*.scss'", + "pull:env": "[ $CI ] || VERCEL_ORG_ID=team_BKQrg3JJFLxZyTqpuYtIY0rj VERCEL_PROJECT_ID=prj_TBkf9EyQjQF37gs4Vk0sQKJj97kE vercel env pull", + "start:dev": "next dev --port 3003", + "start:prod": "next start --port 3003", + "test:format": "prettier --check .", + "test:lint:eslint": "eslint . --max-warnings 0", + "test:lint:stylelint": "stylelint 'src/**/*.scss' --max-warnings 0", + "test:types": "tsc" + }, + "dependencies": { + "@phosphor-icons/react": "catalog:", + "@pythnetwork/component-library": "workspace:*", + "@react-hookz/web": "catalog:", + "clsx": "catalog:", + "fumadocs-core": "catalog:", + "fumadocs-mdx": "catalog:", + "fumadocs-ui": "catalog:", + "next": "catalog:", + "next-themes": "catalog:", + "nuqs": "catalog:", + "react": "catalog:", + "react-aria": "catalog:", + "react-dom": "catalog:", + "zod": "catalog:", + "zod-validation-error": "catalog:" + }, + "devDependencies": { + "@cprussin/eslint-config": "catalog:", + "@cprussin/jest-config": "catalog:", + "@cprussin/prettier-config": "catalog:", + "@cprussin/tsconfig": "catalog:", + "@next/bundle-analyzer": "catalog:", + "@svgr/webpack": "catalog:", + "@tailwindcss/postcss": "catalog:", + "@types/jest": "catalog:", + "@types/mdx": "catalog:", + "@types/node": "catalog:", + "@types/react": "catalog:", + "@types/react-dom": "catalog:", + "autoprefixer": "catalog:", + "eslint": "catalog:", + "jest": "catalog:", + "postcss": "catalog:", + "prettier": "catalog:", + "sass": "catalog:", + "stylelint": "catalog:", + "stylelint-config-standard-scss": "catalog:", + "tailwindcss": "^4.1.6", + "typescript": "catalog:", + "vercel": "catalog:" + } +} diff --git a/apps/developer-hub/postcss.config.mjs b/apps/developer-hub/postcss.config.mjs new file mode 100644 index 0000000000..c2ddf74822 --- /dev/null +++ b/apps/developer-hub/postcss.config.mjs @@ -0,0 +1,5 @@ +export default { + plugins: { + "@tailwindcss/postcss": {}, + }, +}; diff --git a/apps/developer-hub/prettier.config.js b/apps/developer-hub/prettier.config.js new file mode 100644 index 0000000000..1e43aeeddb --- /dev/null +++ b/apps/developer-hub/prettier.config.js @@ -0,0 +1 @@ +export { base as default } from "@cprussin/prettier-config"; diff --git a/apps/developer-hub/public/android-chrome-192x192.png b/apps/developer-hub/public/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..596667cefb00ef348c8ddf7ae5a67dc907e0a0f9 GIT binary patch literal 3420 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 QdL031sOTuyC|Za72NpGk#{d8T literal 0 HcmV?d00001 diff --git a/apps/developer-hub/public/android-chrome-512x512.png b/apps/developer-hub/public/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..cf0ba050d8fb45921a76df0748c7d36873e00505 GIT binary patch literal 8471 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 KuM{=@`hNhask34L literal 0 HcmV?d00001 diff --git a/apps/developer-hub/public/apple-touch-icon.png b/apps/developer-hub/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1f9a443c8aeca50a234f03e4a6c31353fb856300 GIT binary patch literal 3293 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 GBmNI`raiO( literal 0 HcmV?d00001 diff --git a/apps/developer-hub/public/favicon-16x16.png b/apps/developer-hub/public/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..85b3a417a78950f44132b3e1fa05626cdffecca8 GIT binary patch literal 965 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>`T@Ck7RDtLD5-zdTw z0{{R2w+Os72^dE4B|(0`@K))$|JU)tk5lvK8Qy*n!^^hpohNtJ4!t)sS=)YI5C0Xc z^lXE~dgU}b%Wrw*U(Hg|zuQ`yo{)+Q$PmBwF_m-O<4nF1`#vTvjm}R8Wev^>Z+p8& zRdMljKOV-**{=S%d#iTW;4YHDIyQc6k!!^fL9EG>5Ku(Z5!(?O}H$7WB>AEu@zrav`%Y#apL z92FA<0}Trc4Fd%e6&)8ev@DsjrDx5YIcs{hOj*Jb;1K5+=o#r68tNMv8|WyfvEbms zl}pziKCxo;^7F?M8AJ?BjLZy$l1)q>n{J=5wS_Yx^7f5eH?1v<4zkRd6C1;NwCBzp z$25m66%|#Lzkf8zJbV70D@0I0;)tLOQ{l?Y6@~!{IyOo|&&1ur7l^&oFyQBrxVku5 zz-Gg&8x}xcS09r4J+b9!H_(5oC9V-ADTyViR>?)FK#IZ0z{p6~&_LJFB*ehP%EZXZ z)I!_9z{nC}Q!>*kacju>t&|4T5MC7$Q4*9`u24{vpO%@Es!&o{kgAYb zP?F5RP%-E6CmxQ%Fb$1U{-@7)J`G}ER_4}A<`z~K_MR-lEUe(tU~)KxS$T7a!s#1V nP8>ONMCJ(l=?0GlUV03##05(}IhjrcTEXDy>gTe~DWM4fL9_D> literal 0 HcmV?d00001 diff --git a/apps/developer-hub/public/favicon-32x32.png b/apps/developer-hub/public/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..034afe45c1e6c2e71ea30e9a88b26249e260f3d9 GIT binary patch literal 1453 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+081LNiZpAc7|f@in>J-hV_ zOad9BXi$g1|NsAc4efh@(biuQp1!W^&$#$lw5&KzG`t2% z|MYZm46!)fdO6eimV*FW!o4a1-OwoulstOe7BMMlv99XqTCw!owOiiRx1y@=m#^LX z{=0rTb0gbAtNUh^W}7z~Z@hViAuH?ktGAO<)~{c^mNCbgiMRK+tjXcR1sfN}F!-MR zdHvipvGjQ+=8^VHTXv}gm2KZzUb1ET&eWiytx+sCbCafDzn*Ht{Ksy6MA z)mK1vp_Nup|H@XatA_RltBO>*oZ4m_X)aVyr7}bK4$x*ZvyuL8_Vfu zn~yGjV)($K^3f7TrR6JrHC%pjsYsMz&cw`k#&eUNPw`sdem-77f1T2Hw>T%&9dAUZ z7e3W0ID7E*>(*)wX7jvB(sryjqnA`~=GsyFJg>-=@!j3!Ul>9izCBdFsGTA=*?-=w zwKoEn8O}X#=5qd8Ag@EDpKZOO+o^w>O!(HvdH+A~Z1(o|+g#l5A8$I^c#Hk~wqFOM zSa)vy61ef)8uc$HndU_O`aJ!UJagVEHw_<5frWYr`4jpjc-7V|&2`RrDn zLr47na#k~ze`~^;_J?zUO_QmvAUQh^kMk%5tsuAzahp-G5= ziIs_wm8pfcfq|8Qf%LLjw@@_X=BH$)RpQo=^;;Rr~FT!@q8M@z^u%zm&`4!EbKj5gjra@rNQKI3bXR& s5QWn>uADe>=7`J@_R|d>3%v9gUWp5qd~!0K3bca3)78&qol`;+008wU@Bjb+ literal 0 HcmV?d00001 diff --git a/apps/developer-hub/public/favicon-light.ico b/apps/developer-hub/public/favicon-light.ico new file mode 100644 index 0000000000000000000000000000000000000000..9c0d28fbda20eac2cd2e025db68d151dfb954673 GIT binary patch literal 15086 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 literal 0 HcmV?d00001 diff --git a/apps/developer-hub/public/favicon.ico b/apps/developer-hub/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..56072a486055f0cb90acbd9b72358be0677d0245 GIT binary patch literal 15086 zcmeI3dyHL09e~fWg_Y-0UPT_gOIsd>$Rk)#(y#@TLWm*=h!0dy2^4uKDu_y}m@W_= zqJL;Ws7M4OL=>W;qAb*8D+VxiXA?%pkF!fih0 zH#5K2oI7V`&bdpLwPo$u0S9E1UD?m}%(8>CEbHpZ>)U48leBG1Y5$osvTPX&`=EnK z_8G9f@|jmHTK(VobLO_qpEK`7cu%W+ZwPB&c?UMO>wj&O`^I?v-_C!!7a06AN7`XWXp6&9ANTsB zvn6~O+#eReT-Y-9Gu<-r+*iL1lgYn?-D-Ff{s;YVA6y1U!Zy>HKmNUT|A8CRIJ7l$ z{mp+3cz>rjo?bW&W~Tn9TF0lkKMlscA@xVwRPztxc>`bf!Xn`GHuVpFj)Rc^#{qVEbNp8DhVanm=(4 z_}c`w1J|L;!Sm_}#BqXrJMFV#`(|bArX~M4J~4b=m*1?Vw{8d9MkV?!%iq{wj$`IP|9p5D(lHFswxCh2MeXRfGXI_M zcLOYkb76njv_afM=vxKp81A60={+0WR_0&AU)aCASKSM*gLgF;!zuKwgLn+DQ2$Vo zeo-5`)0Kam)1$;WHjPi)X7D43b(Mc^U#eeJM{h&qZ%*!yN2fW^b`Uu4<1su-eZN$< zsE%GM^WP1B4}oh*oKKMdM*EyN59;3UHx=kFj`bSJ*tIf$bJ-I<0(XIDosfGdd(vFc zIjKO`eR-2qH?5=7vixJ;`1LGtH4H<@-STlLCA#xydn(cUD|Oz|jr~DqTJkq4zITB8 zAkN?KRZ8|6FtYXN32&Qqcd&!8xQ~IBzZZOugAGiZ-?6wz2~X>N_5N*I+M-+ zHEfR<(>a~!EP^43zk{n&JNlO=I-V&HN%hh?I_~A^8Q1lo?hHWv3W#%X9*n!sr~~PJ zd_|lG{hmA0HOQRi$9hFFI{U(ZAUH}*_45)P^_La-jN8;Husbi&*%TdP#yObN zzOi1BjLxo*oszIAM49d3m*uV(Ao7Wp(*?8E#0 zq&W6iGP=9NqlpjSFQ1Uw(bffjNOa@ajbv@Q3jCcwyRl+BbJ;!B9jlK1m5C4i-4COl zt7)4J%OQ;$=MZFd)SaEir)?G(Bj|?m%2ao}IzGII(mCrhi0=;S)>3`ZwmF1zn$Icg zA;ed<%`==jo2T(ytk9oyIeVy1g@wH#LC-KAcC+1NX@^hI92nI1P4eI|i#|`(Ssa z-ZoS%v%Kv6Myb-iCNBr`awwDws{MpU@378lf357O+I6=r9j0IOJ6u{?i8I{UTZuc; zG1zH7BOT?kWtmZ$XL)J4Z2slmB_ocfyry%|@s$U&%6Q8|Syr+>l4VOQ%S+q5E_lIH z_3yO0__7v4?eDbeo`&d{;D@=f6PyiAzxSSCh=%IK?1by#Pter!T0>_O?8syPkka+b zy<!0g*)M6FyY_JwE^e3d)c`YjBgGB-(UO|4uz)nK=gc8au0G} z(oZw--QRq7emATFonbDRArXG7iDnEJ8M48P56|AttJ-%O$5y6qGVx2;h5OHO`cC4LP|1N(pFe?c4OSv= zpT?d-e4le42JhDp!!@Ax_r}QGFqrpy-Yc93v`=RIGqBqmz6kMr^B$<25h%BY`yu3a zajV83`@z5WSh(+AK=#ksD<91um4kc~vaC@Y8Y1DTN z?cv(`{^X$07fRb8yw6ehn5gek>LD*<6t2g#yOsyN+mI`33Z-l7Kcc?7kSotul&-(Z zwgp>tEANjeoum2+eOHCN(h{9hA?!a-BF_yv$QMO@e!q`_YmO*~dr1wjYdv&JoXdl*YvYNO7~$nJv3M&EmdzOiL zo%eEZjR`uTwCyseJwGCQ9(o*tj=l@O`;ZI$uHgfb&99Ja?*NefKKF-n!TVa2ZL94; z$g@D(5L=(k{Lblo`X+du($;J0oShSL9IsS2x6xJ~`qJm9b*IP|dcIe?6+-TouJi6K zb-(w;_V(pE>c+PEn$Xi9`n!PljdM2m^1l8H^uQ@_M2@m;_Nf!}wbjQiah}b}*liD2 zK-j;6UrVp)YdPV&iu<+Ews60lKn}hmJqnylMR~+AmDRZu7D3D2b>ho&-3Q?N@DRKR zUSCnR%|3H&`tKWg8B;C~K;LNA_jQ!l^|h7z`!X0@(%(1S-QPD->hCK-XJ>z3$2I+Z zE1tXXnr*mz0LP`Bxh19%=8bzOLxyMaN)g+5ex+iP;6U z_Y}3en8qj6N?U|-c+vhRko3-_wvA+0UZSJ^Ljv$Iamv&=2t*Tx1{e_qwix$Kjpu zX?PuK^8;DmULW&(AG`{+X9DC4;T1R-4hMBV8?Gbr$?yi82(IzZz%OCvoICP1`_xhQ zd(P-;B{IC=J?MXW!vmiN8NWv_O{;wFTgRdC3yYs&QZ3_K6TWsJ8M!u5PVkl zEZ}~!HRxBAZL?3E!rxbEUkL6oUY`eGd5*Ge_ALx~7nSsTX1fwrLs-X@ZJU?c_)c?u qpgYS}@pfZXAFKmTqpPlmRay2J; +}) { + const params = await props.params; + + const page = source.getPage([params.section, ...params.slug]); + + if (!page) notFound(); + + return { + title: page.data.title, + description: page.data.description, + } satisfies Metadata; +} + +export default DocumentationPage; diff --git a/apps/developer-hub/src/app/(docs)/[section]/page.tsx b/apps/developer-hub/src/app/(docs)/[section]/page.tsx new file mode 100644 index 0000000000..260023220a --- /dev/null +++ b/apps/developer-hub/src/app/(docs)/[section]/page.tsx @@ -0,0 +1,24 @@ +import { LandingPage } from "@/src/components/Pages/LandingPage"; +import { source } from "@/src/source"; +import type { Metadata } from "next"; +import { notFound } from "next/navigation"; + +export async function generateStaticParams() { + return source.generateParams(); +} + +export async function generateMetadata(props: { + params: Promise<{ section: string }>; +}) { + const params = await props.params; + const page = source.getPage([params.section]); + + if (!page) notFound(); + + return { + title: page.data.title, + description: page.data.description, + } satisfies Metadata; +} + +export default LandingPage; diff --git a/apps/developer-hub/src/app/(docs)/layout.tsx b/apps/developer-hub/src/app/(docs)/layout.tsx new file mode 100644 index 0000000000..d28060333f --- /dev/null +++ b/apps/developer-hub/src/app/(docs)/layout.tsx @@ -0,0 +1,7 @@ +import { docsOptions } from "@/src/config/layout.config"; +import { DocsLayout } from "fumadocs-ui/layouts/docs"; +import type { ReactNode } from "react"; + +export default function Layout({ children }: { children: ReactNode }) { + return {children}; +} diff --git a/apps/developer-hub/src/app/(homepage)/layout.tsx b/apps/developer-hub/src/app/(homepage)/layout.tsx new file mode 100644 index 0000000000..d31cff4cbd --- /dev/null +++ b/apps/developer-hub/src/app/(homepage)/layout.tsx @@ -0,0 +1,7 @@ +import { baseOptions } from "@/src/config/layout.config"; +import { HomeLayout } from "fumadocs-ui/layouts/home"; +import type { ReactNode } from "react"; + +export default function Layout({ children }: { children: ReactNode }) { + return {children}; +} diff --git a/apps/developer-hub/src/app/(homepage)/page.tsx b/apps/developer-hub/src/app/(homepage)/page.tsx new file mode 100644 index 0000000000..78555a8bd1 --- /dev/null +++ b/apps/developer-hub/src/app/(homepage)/page.tsx @@ -0,0 +1,3 @@ +import { Homepage } from "@/src/components/Pages/Homepage"; + +export default Homepage; diff --git a/apps/developer-hub/src/app/api/search/route.ts b/apps/developer-hub/src/app/api/search/route.ts new file mode 100644 index 0000000000..fd26feb90b --- /dev/null +++ b/apps/developer-hub/src/app/api/search/route.ts @@ -0,0 +1,4 @@ +import { source } from "@/src/source"; +import { createFromSource } from "fumadocs-core/search/server"; + +export const { GET } = createFromSource(source); diff --git a/apps/developer-hub/src/app/layout.ts b/apps/developer-hub/src/app/layout.ts new file mode 100644 index 0000000000..47f8c23fd1 --- /dev/null +++ b/apps/developer-hub/src/app/layout.ts @@ -0,0 +1,2 @@ +export { Root as default } from "../components/Root"; +export { metadata, viewport } from "../metadata"; diff --git a/apps/developer-hub/src/app/robots.ts b/apps/developer-hub/src/app/robots.ts new file mode 100644 index 0000000000..28eaa31c59 --- /dev/null +++ b/apps/developer-hub/src/app/robots.ts @@ -0,0 +1,11 @@ +import type { MetadataRoute } from "next"; + +import { IS_PRODUCTION_SERVER } from "../config/server"; + +const robots = (): MetadataRoute.Robots => ({ + rules: { + userAgent: "*", + ...(IS_PRODUCTION_SERVER ? { allow: "/" } : { disallow: "/" }), + }, +}); +export default robots; diff --git a/apps/developer-hub/src/components/Pages/BasePage/index.tsx b/apps/developer-hub/src/components/Pages/BasePage/index.tsx new file mode 100644 index 0000000000..3007ac2286 --- /dev/null +++ b/apps/developer-hub/src/components/Pages/BasePage/index.tsx @@ -0,0 +1,26 @@ +import { getMDXComponents } from "@/src/mdx-components"; +import { source } from "@/src/source"; +import { + DocsBody, + DocsDescription, + DocsPage, + DocsTitle, +} from "fumadocs-ui/page"; +import { notFound } from "next/navigation"; + +export function BasePage(props: { params: { slug: string[] } }) { + const page = source.getPage(props.params.slug); + if (!page) return notFound(); + + const MDX = page.data.body; + + return ( + + {page.data.title} + {page.data.description} + + + + + ); +} diff --git a/apps/developer-hub/src/components/Pages/DocumentationPage/index.tsx b/apps/developer-hub/src/components/Pages/DocumentationPage/index.tsx new file mode 100644 index 0000000000..18e833c58b --- /dev/null +++ b/apps/developer-hub/src/components/Pages/DocumentationPage/index.tsx @@ -0,0 +1,9 @@ +import { BasePage } from "../BasePage"; + +export async function DocumentationPage(props: { + params: Promise<{ section: string; slug: string[] }>; +}) { + const params = await props.params; + params.slug.unshift(params.section); + return BasePage({ params }); +} diff --git a/apps/developer-hub/src/components/Pages/Homepage/index.module.scss b/apps/developer-hub/src/components/Pages/Homepage/index.module.scss new file mode 100644 index 0000000000..b5cbefd482 --- /dev/null +++ b/apps/developer-hub/src/components/Pages/Homepage/index.module.scss @@ -0,0 +1,5 @@ +@use "@pythnetwork/component-library/theme"; + +.landing { + @include theme.max-width; +} diff --git a/apps/developer-hub/src/components/Pages/Homepage/index.tsx b/apps/developer-hub/src/components/Pages/Homepage/index.tsx new file mode 100644 index 0000000000..a676fa3fb1 --- /dev/null +++ b/apps/developer-hub/src/components/Pages/Homepage/index.tsx @@ -0,0 +1,16 @@ +import type { ReactNode } from "react"; + +import styles from "./index.module.scss"; + +type Props = { + children?: ReactNode; +}; + +export const Homepage = ({ children }: Props) => { + return ( +
+

Homepage Landing Page

+ {children} +
+ ); +}; diff --git a/apps/developer-hub/src/components/Pages/LandingPage/index.tsx b/apps/developer-hub/src/components/Pages/LandingPage/index.tsx new file mode 100644 index 0000000000..fb8dd1d670 --- /dev/null +++ b/apps/developer-hub/src/components/Pages/LandingPage/index.tsx @@ -0,0 +1,8 @@ +import { BasePage } from "../BasePage"; + +export async function LandingPage(props: { + params: Promise<{ section: string }>; +}) { + const params = await props.params; + return BasePage({ params: { slug: [params.section] } }); +} diff --git a/apps/developer-hub/src/components/Root/global.css b/apps/developer-hub/src/components/Root/global.css new file mode 100644 index 0000000000..ca121644ff --- /dev/null +++ b/apps/developer-hub/src/components/Root/global.css @@ -0,0 +1,4 @@ +@import "tailwindcss"; +@import "fumadocs-ui/css/neutral.css"; +@import "fumadocs-ui/css/preset.css"; +@import "./theme.css"; diff --git a/apps/developer-hub/src/components/Root/index.tsx b/apps/developer-hub/src/components/Root/index.tsx new file mode 100644 index 0000000000..3ac4818b0f --- /dev/null +++ b/apps/developer-hub/src/components/Root/index.tsx @@ -0,0 +1,36 @@ +import { AppShell } from "@pythnetwork/component-library/AppShell"; +import { RootProvider as FumadocsRootProvider } from "fumadocs-ui/provider"; +import { NuqsAdapter } from "nuqs/adapters/next/app"; +import type { ReactNode } from "react"; +import "./global.css"; + +import { + AMPLITUDE_API_KEY, + ENABLE_ACCESSIBILITY_REPORTING, + GOOGLE_ANALYTICS_ID, +} from "../../config/server"; + +export const TABS = [ + { segment: "", children: "Home" }, + { segment: "pyth-core", children: "Pyth Core" }, + { segment: "lazer", children: "Lazer" }, + { segment: "express-relay", children: "Express Relay" }, + { segment: "entropy", children: "Entropy" }, +]; + +type Props = { + children: ReactNode; +}; + +export const Root = ({ children }: Props) => ( + + {children} + +); diff --git a/apps/developer-hub/src/components/Root/theme.css b/apps/developer-hub/src/components/Root/theme.css new file mode 100644 index 0000000000..a144044880 --- /dev/null +++ b/apps/developer-hub/src/components/Root/theme.css @@ -0,0 +1,336 @@ +:root { + --color-black: #000; + --color-white: #fff; + + --color-slate-50: #f8fafc; + --color-slate-100: #f1f5f9; + --color-slate-200: #e2e8f0; + --color-slate-300: #cbd5e1; + --color-slate-400: #94a3b8; + --color-slate-500: #64748b; + --color-slate-600: #475569; + --color-slate-700: #334155; + --color-slate-800: #1e293b; + --color-slate-900: #0f172a; + --color-slate-950: #020617; + + --color-gray-50: #f9fafb; + --color-gray-100: #f3f4f6; + --color-gray-200: #e5e7eb; + --color-gray-300: #d1d5db; + --color-gray-400: #9ca3af; + --color-gray-500: #6b7280; + --color-gray-600: #4b5563; + --color-gray-700: #374151; + --color-gray-800: #1f2937; + --color-gray-900: #111827; + --color-gray-950: #030712; + + --color-zinc-50: #fafafa; + --color-zinc-100: #f4f4f5; + --color-zinc-200: #e4e4e7; + --color-zinc-300: #d4d4d8; + --color-zinc-400: #a1a1aa; + --color-zinc-500: #71717a; + --color-zinc-600: #52525b; + --color-zinc-700: #3f3f46; + --color-zinc-800: #27272a; + --color-zinc-900: #18181b; + --color-zinc-950: #09090b; + + --color-neutral-50: #fafafa; + --color-neutral-100: #f5f5f5; + --color-neutral-200: #e5e5e5; + --color-neutral-300: #d4d4d4; + --color-neutral-400: #a3a3a3; + --color-neutral-500: #737373; + --color-neutral-600: #525252; + --color-neutral-700: #404040; + --color-neutral-800: #262626; + --color-neutral-900: #171717; + --color-neutral-950: #0a0a0a; + + --color-stone-50: #fafaf9; + --color-stone-100: #f5f5f4; + --color-stone-200: #e7e5e4; + --color-stone-300: #d6d3d1; + --color-stone-400: #a8a29e; + --color-stone-500: #78716c; + --color-stone-600: #57534e; + --color-stone-700: #44403c; + --color-stone-800: #292524; + --color-stone-900: #1c1917; + --color-stone-950: #0c0a09; + + --color-red-50: #fef2f2; + --color-red-100: #fee2e2; + --color-red-200: #fecaca; + --color-red-300: #fca5a5; + --color-red-400: #f87171; + --color-red-500: #ef4444; + --color-red-600: #dc2626; + --color-red-700: #b91c1c; + --color-red-800: #991b1b; + --color-red-900: #7f1d1d; + --color-red-950: #450a0a; + + --color-orange-50: #fff7ed; + --color-orange-100: #ffedd5; + --color-orange-200: #fed7aa; + --color-orange-300: #fdba74; + --color-orange-400: #fb923c; + --color-orange-500: #f97316; + --color-orange-600: #ea580c; + --color-orange-700: #c2410c; + --color-orange-800: #9a3412; + --color-orange-900: #7c2d12; + --color-orange-950: #431407; + + --color-amber-50: #fffbeb; + --color-amber-100: #fef3c7; + --color-amber-200: #fde68a; + --color-amber-300: #fcd34d; + --color-amber-400: #fbbf24; + --color-amber-500: #f59e0b; + --color-amber-600: #d97706; + --color-amber-700: #b45309; + --color-amber-800: #92400e; + --color-amber-900: #78350f; + --color-amber-950: #451a03; + + --color-yellow-50: #fefce8; + --color-yellow-100: #fef9c3; + --color-yellow-200: #fef08a; + --color-yellow-300: #fde047; + --color-yellow-400: #facc15; + --color-yellow-500: #eab308; + --color-yellow-600: #ca8a04; + --color-yellow-700: #a16207; + --color-yellow-800: #854d0e; + --color-yellow-900: #713f12; + --color-yellow-950: #422006; + + --color-lime-50: #f7fee7; + --color-lime-100: #ecfccb; + --color-lime-200: #d9f99d; + --color-lime-300: #bef264; + --color-lime-400: #a3e635; + --color-lime-500: #84cc16; + --color-lime-600: #65a30d; + --color-lime-700: #4d7c0f; + --color-lime-800: #3f6212; + --color-lime-900: #365314; + --color-lime-950: #1a2e05; + + --color-green-50: #f0fdf4; + --color-green-100: #dcfce7; + --color-green-200: #bbf7d0; + --color-green-300: #86efac; + --color-green-400: #4ade80; + --color-green-500: #22c55e; + --color-green-600: #16a34a; + --color-green-700: #15803d; + --color-green-800: #166534; + --color-green-900: #14532d; + --color-green-950: #052e16; + + --color-emerald-50: #ecfdf5; + --color-emerald-100: #d1fae5; + --color-emerald-200: #a7f3d0; + --color-emerald-300: #6ee7b7; + --color-emerald-400: #34d399; + --color-emerald-500: #10b981; + --color-emerald-600: #059669; + --color-emerald-700: #047857; + --color-emerald-800: #065f46; + --color-emerald-900: #064e3b; + --color-emerald-950: #022c22; + + --color-teal-50: #f0fdfa; + --color-teal-100: #ccfbf1; + --color-teal-200: #99f6e4; + --color-teal-300: #5eead4; + --color-teal-400: #2dd4bf; + --color-teal-500: #14b8a6; + --color-teal-600: #0d9488; + --color-teal-700: #0f766e; + --color-teal-800: #115e59; + --color-teal-900: #134e4a; + --color-teal-950: #042f2e; + + --color-cyan-50: #ecfeff; + --color-cyan-100: #cffafe; + --color-cyan-200: #a5f3fc; + --color-cyan-300: #67e8f9; + --color-cyan-400: #22d3ee; + --color-cyan-500: #06b6d4; + --color-cyan-600: #0891b2; + --color-cyan-700: #0e7490; + --color-cyan-800: #155e75; + --color-cyan-900: #164e63; + --color-cyan-950: #083344; + + --color-sky-50: #f0f9ff; + --color-sky-100: #e0f2fe; + --color-sky-200: #bae6fd; + --color-sky-300: #7dd3fc; + --color-sky-400: #38bdf8; + --color-sky-500: #0ea5e9; + --color-sky-600: #0284c7; + --color-sky-700: #0369a1; + --color-sky-800: #075985; + --color-sky-900: #0c4a6e; + --color-sky-950: #082f49; + + --color-blue-50: #eff6ff; + --color-blue-100: #dbeafe; + --color-blue-200: #bfdbfe; + --color-blue-300: #93c5fd; + --color-blue-400: #60a5fa; + --color-blue-500: #3b82f6; + --color-blue-600: #2563eb; + --color-blue-700: #1d4ed8; + --color-blue-800: #1e40af; + --color-blue-900: #1e3a8a; + --color-blue-950: #172554; + + --color-indigo-50: #eef2ff; + --color-indigo-100: #e0e7ff; + --color-indigo-200: #c7d2fe; + --color-indigo-300: #a5b4fc; + --color-indigo-400: #818cf8; + --color-indigo-500: #6366f1; + --color-indigo-600: #4f46e5; + --color-indigo-700: #4338ca; + --color-indigo-800: #3730a3; + --color-indigo-900: #312e81; + --color-indigo-950: #1e1b4b; + + --color-violet-50: #f5f3ff; + --color-violet-100: #ede9fe; + --color-violet-200: #ddd6fe; + --color-violet-300: #c4b5fd; + --color-violet-400: #a78bfa; + --color-violet-500: #8b5cf6; + --color-violet-600: #7c3aed; + --color-violet-700: #6d28d9; + --color-violet-800: #5b21b6; + --color-violet-900: #4c1d95; + --color-violet-950: #2e1065; + + --color-purple-50: #faf5ff; + --color-purple-100: #f3e8ff; + --color-purple-200: #e9d5ff; + --color-purple-300: #d8b4fe; + --color-purple-400: #c084fc; + --color-purple-500: #a855f7; + --color-purple-600: #9333ea; + --color-purple-700: #7e22ce; + --color-purple-800: #6b21a8; + --color-purple-900: #581c87; + --color-purple-950: #3b0764; + + --color-fuchsia-50: #fdf4ff; + --color-fuchsia-100: #fae8ff; + --color-fuchsia-200: #f5d0fe; + --color-fuchsia-300: #f0abfc; + --color-fuchsia-400: #e879f9; + --color-fuchsia-500: #d946ef; + --color-fuchsia-600: #c026d3; + --color-fuchsia-700: #a21caf; + --color-fuchsia-800: #86198f; + --color-fuchsia-900: #701a75; + --color-fuchsia-950: #4a044e; + + --color-pink-50: #fdf2f8; + --color-pink-100: #fce7f3; + --color-pink-200: #fbcfe8; + --color-pink-300: #f9a8d4; + --color-pink-400: #f472b6; + --color-pink-500: #ec4899; + --color-pink-600: #db2777; + --color-pink-700: #be185d; + --color-pink-800: #9d174d; + --color-pink-900: #831843; + --color-pink-950: #500724; + + --color-rose-50: #fff1f2; + --color-rose-100: #ffe4e6; + --color-rose-200: #fecdd3; + --color-rose-300: #fda4af; + --color-rose-400: #fb7185; + --color-rose-500: #f43f5e; + --color-rose-600: #e11d48; + --color-rose-700: #be123c; + --color-rose-800: #9f1239; + --color-rose-900: #881337; + --color-rose-950: #4c0519; + + --color-beige-50: #f7f4f4; + --color-beige-100: #f3eded; + --color-beige-200: #e9dfdf; + --color-beige-300: #d9c8c8; + --color-beige-400: #c1a8a8; + --color-beige-500: #a98a8a; + --color-beige-600: #927070; + --color-beige-700: #795c5c; + --color-beige-800: #664e4e; + --color-beige-900: #574545; + --color-beige-950: #2d2222; + + --color-steel-50: #f8f9fc; + --color-steel-100: #f1f2f9; + --color-steel-200: #e2e3f0; + --color-steel-300: #cbcee1; + --color-steel-400: #9497b8; + --color-steel-500: #64678b; + --color-steel-600: #474a69; + --color-steel-700: #333655; + --color-steel-800: #25253e; + --color-steel-900: #27253d; + --color-steel-950: #100e23; + + --color-fd-background: light-dark(var(--color-white), var(--color-steel-950)); + --color-fd-primary: light-dark(var(--color-steel-900), var(--color-steel-50)); + --color-fd-border: light-dark(var(--color-stone-300), var(--color-steel-600)); + --color-fd-accent: light-dark( + var(--color-violet-600), + var(--color-violet-500) + ); + --color-fd-accent-foreground: light-dark( + var(--color-steel-900), + var(--color-steel-50) + ); + --color-fd-muted: light-dark(var(--color-stone-700), var(--color-steel-400)); + --color-fd-muted-foreground: light-dark( + var(--color-steel-600), + var(--color-steel-400) + ); + --color-fd-foreground: light-dark( + var(--color-steel-900), + var(--color-steel-50) + ); + --color-fd-secondary: light-dark( + var(--color-beige-100), + var(--color-steel-900) + ); + --color-fd-secondary-foreground: light-dark( + var(--color-steel-800), + var(--color-steel-50) + ); + --color-fd-card: light-dark(var(--color-white), var(--color-steel-950)); + --color-fd-card-foreground: light-dark( + var(--color-steel-900), + var(--color-steel-50) + ); + --color-fd-popover-foreground: light-dark( + var(--color-steel-900), + var(--color-steel-50) + ); + --color-fd-popover: light-dark(var(--color-white), var(--color-steel-950)); + --color-fd-primary-foreground: light-dark( + var(--color-steel-900), + var(--color-steel-50) + ); + --color-fd-ring: light-dark(var(--color-violet-600), var(--color-violet-400)); +} diff --git a/apps/developer-hub/src/config/layout.config.tsx b/apps/developer-hub/src/config/layout.config.tsx new file mode 100644 index 0000000000..97cdf9f5fa --- /dev/null +++ b/apps/developer-hub/src/config/layout.config.tsx @@ -0,0 +1,34 @@ +import { source } from "@/src/source"; +import type { DocsLayoutProps } from "fumadocs-ui/layouts/docs"; +import type { BaseLayoutProps } from "fumadocs-ui/layouts/shared"; + +export const baseOptions: BaseLayoutProps = { + nav: { + enabled: false, + }, + themeSwitch: { + enabled: false, + }, +}; + +export const docsOptions: DocsLayoutProps = { + ...baseOptions, + tree: source.pageTree, + sidebar: { + tabs: { + transform(option, node) { + const meta = source.getNodeMeta(node); + if (!meta || !node.icon) return option; + + return { + ...option, + icon: ( +
+ {node.icon} +
+ ), + }; + }, + }, + }, +}; diff --git a/apps/developer-hub/src/config/server.ts b/apps/developer-hub/src/config/server.ts new file mode 100644 index 0000000000..4a363c0009 --- /dev/null +++ b/apps/developer-hub/src/config/server.ts @@ -0,0 +1,29 @@ +// Disable the following rule because this file is the intended place to declare +// and load all env variables. +/* eslint-disable n/no-process-env */ + +import "server-only"; + +const getEnvOrDefault = (key: string, defaultValue: string) => + process.env[key] ?? defaultValue; + +/** + * Indicates that this server is the live customer-facing production server. + */ +export const IS_PRODUCTION_SERVER = process.env.VERCEL_ENV === "production"; + +const defaultInProduction = IS_PRODUCTION_SERVER + ? getEnvOrDefault + : (key: string) => process.env[key]; + +export const GOOGLE_ANALYTICS_ID = defaultInProduction( + "GOOGLE_ANALYTICS_ID", + "G-E1QSY256EQ", +); +export const AMPLITUDE_API_KEY = defaultInProduction( + "AMPLITUDE_API_KEY", + "6faa78c51eff33087eb19f0f3dc76f33", +); + +export const ENABLE_ACCESSIBILITY_REPORTING = + !IS_PRODUCTION_SERVER && !process.env.DISABLE_ACCESSIBILITY_REPORTING; diff --git a/apps/developer-hub/src/mdx-components.tsx b/apps/developer-hub/src/mdx-components.tsx new file mode 100644 index 0000000000..b21a161834 --- /dev/null +++ b/apps/developer-hub/src/mdx-components.tsx @@ -0,0 +1,9 @@ +import defaultMdxComponents from "fumadocs-ui/mdx"; +import type { MDXComponents } from "mdx/types"; + +export function getMDXComponents(components?: MDXComponents): MDXComponents { + return { + ...defaultMdxComponents, + ...components, + }; +} diff --git a/apps/developer-hub/src/metadata.ts b/apps/developer-hub/src/metadata.ts new file mode 100644 index 0000000000..38f606053b --- /dev/null +++ b/apps/developer-hub/src/metadata.ts @@ -0,0 +1,52 @@ +import type { Metadata, Viewport } from "next"; + +export const metadata = { + metadataBase: new URL("https://developer.pyth.network"), + title: { + default: "Pyth Developer Hub", + template: "%s | Pyth Developer Hub", + }, + applicationName: "Pyth Developer Hub", + description: + "Learn more about Pyth and how to integrate into your application.", + referrer: "strict-origin-when-cross-origin", + openGraph: { + type: "website", + }, + twitter: { + creator: "@PythNetwork", + card: "summary_large_image", + }, + icons: { + icon: [ + { + media: "(prefers-color-scheme: light)", + type: "image/x-icon", + url: "/favicon.ico", + }, + { + media: "(prefers-color-scheme: dark)", + type: "image/x-icon", + url: "/favicon-light.ico", + }, + { + type: "image/png", + sizes: "32x32", + url: "/favicon-32x32.png", + }, + { + type: "image/png", + sizes: "16x16", + url: "/favicon-16x16.png", + }, + ], + apple: { + url: "/apple-touch-icon.png", + sizes: "180x180", + }, + }, +} satisfies Metadata; + +export const viewport = { + themeColor: "#242235", +} satisfies Viewport; diff --git a/apps/developer-hub/src/source.ts b/apps/developer-hub/src/source.ts new file mode 100644 index 0000000000..14b3ad87c9 --- /dev/null +++ b/apps/developer-hub/src/source.ts @@ -0,0 +1,33 @@ +import { docs } from "@/.source"; +import { + CardsThree, + ChartLine, + FolderSimpleDashed, + Gavel, + Lightning, + Shuffle, +} from "@phosphor-icons/react/dist/ssr"; +import type { InferMetaType, InferPageType } from "fumadocs-core/source"; +import { loader } from "fumadocs-core/source"; +import { createElement } from "react"; + +const icons: Record = { + CardsThree, + ChartLine, + Gavel, + Lightning, + Shuffle, +}; + +export const source = loader({ + baseUrl: "/", + icon(icon) { + return icon + ? createElement(icons[icon as keyof typeof icons] ?? FolderSimpleDashed) + : undefined; + }, + source: docs.toFumadocsSource(), +}); + +export type Page = InferPageType; +export type Meta = InferMetaType; diff --git a/apps/developer-hub/stylelint.config.js b/apps/developer-hub/stylelint.config.js new file mode 100644 index 0000000000..d1a0ed4fc6 --- /dev/null +++ b/apps/developer-hub/stylelint.config.js @@ -0,0 +1,21 @@ +import standardScss from "stylelint-config-standard-scss"; + +const config = { + extends: standardScss, + rules: { + "selector-class-pattern": [ + "^[a-z][a-zA-Z0-9]+$", + { + message: (selector) => + `Expected class selector "${selector}" to be camel-case`, + }, + ], + "selector-pseudo-class-no-unknown": [ + true, + { + ignorePseudoClasses: ["global", "export"], + }, + ], + }, +}; +export default config; diff --git a/apps/developer-hub/svg.d.ts b/apps/developer-hub/svg.d.ts new file mode 100644 index 0000000000..41a3172a52 --- /dev/null +++ b/apps/developer-hub/svg.d.ts @@ -0,0 +1,6 @@ +declare module "*.svg" { + import type { ReactElement, SVGProps } from "react"; + + const content: (props: SVGProps) => ReactElement; + export default content; +} diff --git a/apps/developer-hub/tsconfig.json b/apps/developer-hub/tsconfig.json new file mode 100644 index 0000000000..6557194d94 --- /dev/null +++ b/apps/developer-hub/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "@cprussin/tsconfig/nextjs.json", + "include": ["svg.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"], + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": ["./*"] + } + } +} diff --git a/apps/developer-hub/turbo.json b/apps/developer-hub/turbo.json new file mode 100644 index 0000000000..5c225020e2 --- /dev/null +++ b/apps/developer-hub/turbo.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://turbo.build/schema.json", + "extends": ["//"], + "tasks": { + "build:vercel": { + "env": [ + "VERCEL_ENV", + "GOOGLE_ANALYTICS_ID", + "AMPLITUDE_API_KEY", + "DISABLE_ACCESSIBILITY_REPORTING" + ] + }, + "fix:lint": { + "dependsOn": [ + "//#install:modules", + "fix:lint:eslint", + "fix:lint:stylelint" + ] + }, + "fix:lint:eslint": { + "dependsOn": ["//#install:modules", "^build"], + "cache": false + }, + "fix:lint:stylelint": { + "dependsOn": ["//#install:modules"], + "cache": false + }, + "start:prod": { + "dependsOn": ["//#install:modules", "build:vercel"] + }, + "test:lint": { + "dependsOn": ["test:lint:eslint", "test:lint:stylelint"] + }, + "test:lint:eslint": { + "dependsOn": ["//#install:modules", "^build"] + }, + "test:lint:stylelint": { + "dependsOn": ["//#install:modules"] + } + } +} diff --git a/apps/developer-hub/vercel.json b/apps/developer-hub/vercel.json new file mode 100644 index 0000000000..4f5ad97408 --- /dev/null +++ b/apps/developer-hub/vercel.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://openapi.vercel.sh/vercel.json", + "ignoreCommand": "../../vercel-ignore.sh", + "buildCommand": "turbo run build:vercel --filter @pythnetwork/developer-hub" +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d6b6ed89b9..d0693d66ec 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -54,6 +54,9 @@ catalogs: '@heroicons/react': specifier: ^2.2.0 version: 2.2.0 + '@next/bundle-analyzer': + specifier: ^15.3.2 + version: 15.3.2 '@next/third-parties': specifier: ^15.3.2 version: 15.3.2 @@ -114,12 +117,18 @@ catalogs: '@tailwindcss/forms': specifier: ^0.5.10 version: 0.5.10 + '@tailwindcss/postcss': + specifier: ^4.1.6 + version: 4.1.6 '@tanstack/react-query': specifier: ^5.71.5 version: 5.71.5 '@types/jest': specifier: ^29.5.14 version: 29.5.14 + '@types/mdx': + specifier: ^2.0.13 + version: 2.0.13 '@types/node': specifier: ^22.14.0 version: 22.14.0 @@ -171,6 +180,15 @@ catalogs: framer-motion: specifier: ^12.6.3 version: 12.6.3 + fumadocs-core: + specifier: ^15.3.0 + version: 15.3.0 + fumadocs-mdx: + specifier: ^11.6.3 + version: 11.6.3 + fumadocs-ui: + specifier: ^15.3.0 + version: 15.3.0 highlight.js: specifier: ^11.11.1 version: 11.11.1 @@ -409,10 +427,10 @@ importers: version: 4.10.1 '@cprussin/eslint-config': specifier: 'catalog:' - version: 4.0.2(@testing-library/dom@10.4.0)(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2))(turbo@2.4.4)(typescript@5.8.2) + version: 4.0.2(@testing-library/dom@10.4.0)(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2))(turbo@2.4.4)(typescript@5.8.2) '@cprussin/jest-config': specifier: 'catalog:' - version: 2.0.2(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(bufferutil@4.0.9)(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(prettier@3.5.3)(typescript@5.8.2)(utf-8-validate@5.0.10) + version: 2.0.2(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(bufferutil@4.0.9)(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(prettier@3.5.3)(typescript@5.8.2)(utf-8-validate@5.0.10) '@cprussin/prettier-config': specifier: 'catalog:' version: 2.2.2(prettier@3.5.3) @@ -442,7 +460,7 @@ importers: version: 10.4.21(postcss@8.5.3) eslint: specifier: 'catalog:' - version: 9.23.0(jiti@1.21.7) + version: 9.23.0(jiti@2.4.2) jest: specifier: 'catalog:' version: 29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)) @@ -462,6 +480,124 @@ importers: specifier: 'catalog:' version: 41.4.1(encoding@0.1.13) + apps/developer-hub: + dependencies: + '@phosphor-icons/react': + specifier: 'catalog:' + version: 2.1.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@pythnetwork/component-library': + specifier: workspace:* + version: link:../../packages/component-library + '@react-hookz/web': + specifier: 'catalog:' + version: 25.1.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + clsx: + specifier: 'catalog:' + version: 2.1.1 + fumadocs-core: + specifier: 'catalog:' + version: 15.3.0(@types/react@19.1.0)(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + fumadocs-mdx: + specifier: 'catalog:' + version: 11.6.3(acorn@8.14.1)(fumadocs-core@15.3.0(@types/react@19.1.0)(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1)) + fumadocs-ui: + specifier: 'catalog:' + version: 15.3.0(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tailwindcss@4.1.6) + next: + specifier: 'catalog:' + version: 15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.1.0-rc.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1) + next-themes: + specifier: 'catalog:' + version: 0.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + nuqs: + specifier: 'catalog:' + version: 2.4.1(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(react@19.1.0) + react: + specifier: 'catalog:' + version: 19.1.0 + react-aria: + specifier: 'catalog:' + version: 3.38.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react-dom: + specifier: 'catalog:' + version: 19.1.0(react@19.1.0) + zod: + specifier: 'catalog:' + version: 3.24.2 + zod-validation-error: + specifier: 'catalog:' + version: 3.4.0(zod@3.24.2) + devDependencies: + '@cprussin/eslint-config': + specifier: 'catalog:' + version: 4.0.2(@testing-library/dom@10.4.0)(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2))(turbo@2.4.4)(typescript@5.8.2) + '@cprussin/jest-config': + specifier: 'catalog:' + version: 2.0.2(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(bufferutil@4.0.9)(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(prettier@3.5.3)(typescript@5.8.2)(utf-8-validate@5.0.10) + '@cprussin/prettier-config': + specifier: 'catalog:' + version: 2.2.2(prettier@3.5.3) + '@cprussin/tsconfig': + specifier: 'catalog:' + version: 3.1.2(typescript@5.8.2) + '@next/bundle-analyzer': + specifier: 'catalog:' + version: 15.3.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@svgr/webpack': + specifier: 'catalog:' + version: 8.1.0(typescript@5.8.2) + '@tailwindcss/postcss': + specifier: 'catalog:' + version: 4.1.6 + '@types/jest': + specifier: 'catalog:' + version: 29.5.14 + '@types/mdx': + specifier: 'catalog:' + version: 2.0.13 + '@types/node': + specifier: 'catalog:' + version: 22.14.0 + '@types/react': + specifier: 'catalog:' + version: 19.1.0 + '@types/react-dom': + specifier: 'catalog:' + version: 19.1.1(@types/react@19.1.0) + autoprefixer: + specifier: 'catalog:' + version: 10.4.21(postcss@8.5.3) + eslint: + specifier: 'catalog:' + version: 9.23.0(jiti@2.4.2) + jest: + specifier: 'catalog:' + version: 29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)) + postcss: + specifier: 'catalog:' + version: 8.5.3 + prettier: + specifier: 'catalog:' + version: 3.5.3 + sass: + specifier: 'catalog:' + version: 1.86.1 + stylelint: + specifier: 'catalog:' + version: 16.17.0(typescript@5.8.2) + stylelint-config-standard-scss: + specifier: 'catalog:' + version: 14.0.0(postcss@8.5.3)(stylelint@16.17.0(typescript@5.8.2)) + tailwindcss: + specifier: ^4.1.6 + version: 4.1.6 + typescript: + specifier: 'catalog:' + version: 5.8.2 + vercel: + specifier: 'catalog:' + version: 41.4.1(encoding@0.1.13) + apps/entropy-debugger: dependencies: '@radix-ui/react-select': @@ -509,10 +645,10 @@ importers: devDependencies: '@cprussin/eslint-config': specifier: 'catalog:' - version: 4.0.2(@testing-library/dom@10.4.0)(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2))(turbo@2.4.4)(typescript@5.8.2) + version: 4.0.2(@testing-library/dom@10.4.0)(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2))(turbo@2.4.4)(typescript@5.8.2) '@cprussin/jest-config': specifier: 'catalog:' - version: 2.0.2(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(bufferutil@4.0.9)(esbuild@0.25.2)(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.1.0-rc.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(prettier@3.5.3)(typescript@5.8.2)(utf-8-validate@6.0.3) + version: 2.0.2(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(bufferutil@4.0.9)(esbuild@0.25.4)(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.1.0-rc.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(prettier@3.5.3)(typescript@5.8.2)(utf-8-validate@6.0.3) '@cprussin/prettier-config': specifier: 'catalog:' version: 2.2.2(prettier@3.5.3) @@ -533,7 +669,7 @@ importers: version: 19.1.1(@types/react@19.1.0) eslint: specifier: 'catalog:' - version: 9.23.0(jiti@1.21.7) + version: 9.23.0(jiti@2.4.2) jest: specifier: 'catalog:' version: 29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)) @@ -572,7 +708,7 @@ importers: version: 15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.1.0-rc.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1) nuqs: specifier: 'catalog:' - version: 2.4.1(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.1.0-rc.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(react@19.1.0) + version: 2.4.1(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(react@19.1.0) react: specifier: 'catalog:' version: 19.1.0 @@ -597,10 +733,10 @@ importers: devDependencies: '@cprussin/eslint-config': specifier: 'catalog:' - version: 4.0.2(@testing-library/dom@10.4.0)(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2))(turbo@2.4.4)(typescript@5.8.2) + version: 4.0.2(@testing-library/dom@10.4.0)(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2))(turbo@2.4.4)(typescript@5.8.2) '@cprussin/jest-config': specifier: 'catalog:' - version: 2.0.2(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(bufferutil@4.0.9)(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(prettier@3.5.3)(typescript@5.8.2)(utf-8-validate@5.0.10) + version: 2.0.2(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(bufferutil@4.0.9)(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(prettier@3.5.3)(typescript@5.8.2)(utf-8-validate@5.0.10) '@cprussin/prettier-config': specifier: 'catalog:' version: 2.2.2(prettier@3.5.3) @@ -630,7 +766,7 @@ importers: version: 19.1.0-rc.1 eslint: specifier: 'catalog:' - version: 9.23.0(jiti@1.21.7) + version: 9.23.0(jiti@2.4.2) jest: specifier: 'catalog:' version: 29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)) @@ -757,7 +893,7 @@ importers: version: 0.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) nuqs: specifier: 'catalog:' - version: 2.4.1(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.1.0-rc.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(react@19.1.0) + version: 2.4.1(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(react@19.1.0) react: specifier: 'catalog:' version: 19.1.0 @@ -785,10 +921,10 @@ importers: devDependencies: '@cprussin/eslint-config': specifier: 'catalog:' - version: 4.0.2(@testing-library/dom@10.4.0)(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2))(turbo@2.4.4)(typescript@5.8.2) + version: 4.0.2(@testing-library/dom@10.4.0)(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2))(turbo@2.4.4)(typescript@5.8.2) '@cprussin/jest-config': specifier: 'catalog:' - version: 2.0.2(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(bufferutil@4.0.9)(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(prettier@3.5.3)(typescript@5.8.2)(utf-8-validate@5.0.10) + version: 2.0.2(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(bufferutil@4.0.9)(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(prettier@3.5.3)(typescript@5.8.2)(utf-8-validate@5.0.10) '@cprussin/prettier-config': specifier: 'catalog:' version: 2.2.2(prettier@3.5.3) @@ -821,7 +957,7 @@ importers: version: 19.1.0-rc.1 eslint: specifier: 'catalog:' - version: 9.23.0(jiti@1.21.7) + version: 9.23.0(jiti@2.4.2) jest: specifier: 'catalog:' version: 29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)) @@ -932,7 +1068,7 @@ importers: version: 15.1.3 viem: specifier: ^2.19.4 - version: 2.24.3(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2) + version: 2.24.3(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.4) yaml: specifier: ^2.1.1 version: 2.7.1 @@ -1081,10 +1217,10 @@ importers: version: 4.10.1 '@cprussin/eslint-config': specifier: 'catalog:' - version: 4.0.2(@testing-library/dom@10.4.0)(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2))(turbo@2.4.4)(typescript@5.8.2) + version: 4.0.2(@testing-library/dom@10.4.0)(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2))(turbo@2.4.4)(typescript@5.8.2) '@cprussin/jest-config': specifier: 'catalog:' - version: 2.0.2(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(bufferutil@4.0.9)(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(prettier@3.5.3)(typescript@5.8.2)(utf-8-validate@5.0.10) + version: 2.0.2(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(bufferutil@4.0.9)(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(prettier@3.5.3)(typescript@5.8.2)(utf-8-validate@5.0.10) '@cprussin/prettier-config': specifier: 'catalog:' version: 2.2.2(prettier@3.5.3) @@ -1114,7 +1250,7 @@ importers: version: 10.4.21(postcss@8.5.3) eslint: specifier: 'catalog:' - version: 9.23.0(jiti@1.21.7) + version: 9.23.0(jiti@2.4.2) jest: specifier: 'catalog:' version: 29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)) @@ -1258,7 +1394,7 @@ importers: version: 5.8.2 viem: specifier: ^2.23.5 - version: 2.24.3(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2) + version: 2.24.3(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.4) web3: specifier: ^1.8.2 version: 1.10.4(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) @@ -1311,10 +1447,10 @@ importers: devDependencies: '@cprussin/eslint-config': specifier: 'catalog:' - version: 4.0.2(@testing-library/dom@10.4.0)(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2))(turbo@2.4.4)(typescript@5.8.2) + version: 4.0.2(@testing-library/dom@10.4.0)(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2))(turbo@2.4.4)(typescript@5.8.2) '@cprussin/jest-config': specifier: 'catalog:' - version: 2.0.2(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(bufferutil@4.0.9)(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(prettier@3.5.3)(typescript@5.8.2)(utf-8-validate@5.0.10) + version: 2.0.2(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(bufferutil@4.0.9)(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(prettier@3.5.3)(typescript@5.8.2)(utf-8-validate@5.0.10) '@cprussin/prettier-config': specifier: 'catalog:' version: 2.2.2(prettier@3.5.3) @@ -1332,7 +1468,7 @@ importers: version: 22.14.0 eslint: specifier: 'catalog:' - version: 9.23.0(jiti@1.21.7) + version: 9.23.0(jiti@2.4.2) jest: specifier: 'catalog:' version: 29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)) @@ -1765,7 +1901,7 @@ importers: devDependencies: '@cprussin/eslint-config': specifier: 'catalog:' - version: 4.0.2(@testing-library/dom@10.4.0)(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@types/node@18.19.86)(typescript@5.8.2)))(ts-node@10.9.2(@types/node@18.19.86)(typescript@5.8.2))(turbo@2.4.4)(typescript@5.8.2) + version: 4.0.2(@testing-library/dom@10.4.0)(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@types/node@18.19.86)(typescript@5.8.2)))(ts-node@10.9.2(@types/node@18.19.86)(typescript@5.8.2))(turbo@2.4.4)(typescript@5.8.2) '@cprussin/tsconfig': specifier: 'catalog:' version: 3.1.2(typescript@5.8.2) @@ -1777,7 +1913,7 @@ importers: version: 8.18.1 eslint: specifier: 'catalog:' - version: 9.23.0(jiti@1.21.7) + version: 9.23.0(jiti@2.4.2) prettier: specifier: 'catalog:' version: 3.5.3 @@ -1850,10 +1986,10 @@ importers: version: 7.27.1(@babel/core@7.27.1) '@cprussin/eslint-config': specifier: 'catalog:' - version: 4.0.2(@testing-library/dom@10.4.0)(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2))(turbo@2.4.4)(typescript@5.8.2) + version: 4.0.2(@testing-library/dom@10.4.0)(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2))(turbo@2.4.4)(typescript@5.8.2) '@cprussin/jest-config': specifier: 'catalog:' - version: 2.0.2(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(bufferutil@4.0.9)(esbuild@0.25.2)(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.1.0-rc.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(prettier@3.5.3)(typescript@5.8.2)(utf-8-validate@6.0.3) + version: 2.0.2(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(bufferutil@4.0.9)(esbuild@0.25.4)(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.1.0-rc.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(prettier@3.5.3)(typescript@5.8.2)(utf-8-validate@6.0.3) '@cprussin/prettier-config': specifier: 'catalog:' version: 2.2.2(prettier@3.5.3) @@ -1868,7 +2004,7 @@ importers: version: 8.6.12(@types/react@19.1.0)(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3)) '@storybook/addon-styling-webpack': specifier: 'catalog:' - version: 1.0.1(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3))(webpack@5.98.0(esbuild@0.25.2)) + version: 1.0.1(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3))(webpack@5.98.0(esbuild@0.25.4)) '@storybook/addon-themes': specifier: 'catalog:' version: 8.6.12(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3)) @@ -1877,7 +2013,7 @@ importers: version: 8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3)) '@storybook/nextjs': specifier: 'catalog:' - version: 8.6.12(esbuild@0.25.2)(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.1.0-rc.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1)(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3))(type-fest@4.39.0)(typescript@5.8.2)(webpack-hot-middleware@2.26.1)(webpack@5.98.0(esbuild@0.25.2)) + version: 8.6.12(esbuild@0.25.4)(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.1.0-rc.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1)(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3))(type-fest@4.39.0)(typescript@5.8.2)(webpack-hot-middleware@2.26.1)(webpack@5.98.0(esbuild@0.25.4)) '@storybook/react': specifier: 'catalog:' version: 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3))(typescript@5.8.2) @@ -1904,10 +2040,10 @@ importers: version: 2.4.1 css-loader: specifier: 'catalog:' - version: 7.1.2(webpack@5.98.0(esbuild@0.25.2)) + version: 7.1.2(webpack@5.98.0(esbuild@0.25.4)) eslint: specifier: 'catalog:' - version: 9.23.0(jiti@1.21.7) + version: 9.23.0(jiti@2.4.2) jest: specifier: 'catalog:' version: 29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)) @@ -1919,7 +2055,7 @@ importers: version: 8.5.3 postcss-loader: specifier: 'catalog:' - version: 8.1.1(postcss@8.5.3)(typescript@5.8.2)(webpack@5.98.0(esbuild@0.25.2)) + version: 8.1.1(postcss@8.5.3)(typescript@5.8.2)(webpack@5.98.0(esbuild@0.25.4)) prettier: specifier: 'catalog:' version: 3.5.3 @@ -1931,13 +2067,13 @@ importers: version: 1.86.1 sass-loader: specifier: 'catalog:' - version: 16.0.5(sass@1.86.1)(webpack@5.98.0(esbuild@0.25.2)) + version: 16.0.5(sass@1.86.1)(webpack@5.98.0(esbuild@0.25.4)) storybook: specifier: 'catalog:' version: 8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3) style-loader: specifier: 'catalog:' - version: 4.0.0(webpack@5.98.0(esbuild@0.25.2)) + version: 4.0.0(webpack@5.98.0(esbuild@0.25.4)) stylelint: specifier: 'catalog:' version: 16.17.0(typescript@5.8.2) @@ -1952,10 +2088,10 @@ importers: devDependencies: '@cprussin/eslint-config': specifier: 'catalog:' - version: 4.0.2(@testing-library/dom@10.4.0)(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2))(turbo@2.4.4)(typescript@5.8.2) + version: 4.0.2(@testing-library/dom@10.4.0)(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2))(turbo@2.4.4)(typescript@5.8.2) '@cprussin/jest-config': specifier: 'catalog:' - version: 2.0.2(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(bufferutil@4.0.9)(esbuild@0.25.2)(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.1.0-rc.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(prettier@3.5.3)(typescript@5.8.2)(utf-8-validate@6.0.3) + version: 2.0.2(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(bufferutil@4.0.9)(esbuild@0.25.4)(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.1.0-rc.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(prettier@3.5.3)(typescript@5.8.2)(utf-8-validate@6.0.3) '@cprussin/prettier-config': specifier: 'catalog:' version: 2.2.2(prettier@3.5.3) @@ -1970,7 +2106,7 @@ importers: version: 19.1.0 eslint: specifier: 'catalog:' - version: 9.23.0(jiti@1.21.7) + version: 9.23.0(jiti@2.4.2) jest: specifier: 'catalog:' version: 29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)) @@ -2083,7 +2219,7 @@ importers: version: 0.27.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@6.0.3) '@lumina-dev/test': specifier: ^0.0.12 - version: 0.0.12(eslint@9.23.0(jiti@1.21.7))(typescript@4.9.5)(webpack@5.98.0) + version: 0.0.12(eslint@9.23.0(jiti@2.4.2))(typescript@4.9.5)(webpack@5.98.0) '@pythnetwork/client': specifier: ^2.17.0 version: 2.22.1(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@6.0.3))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@6.0.3) @@ -2651,7 +2787,7 @@ importers: version: 23.0.171(encoding@0.1.13) ts-jest: specifier: ^29.0.5 - version: 29.3.1(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(esbuild@0.25.2)(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(typescript@5.8.2) + version: 29.3.1(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(esbuild@0.25.4)(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(typescript@5.8.2) ts-node: specifier: 'catalog:' version: 10.9.2(@types/node@22.14.0)(typescript@5.8.2) @@ -4431,6 +4567,10 @@ packages: peerDependencies: postcss-selector-parser: ^7.0.0 + '@discoveryjs/json-ext@0.5.7': + resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} + engines: {node: '>=10.0.0'} + '@dual-bundle/import-meta-resolve@4.1.0': resolution: {integrity: sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==} @@ -4519,8 +4659,8 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.25.2': - resolution: {integrity: sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==} + '@esbuild/aix-ppc64@0.25.4': + resolution: {integrity: sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -4531,8 +4671,8 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.25.2': - resolution: {integrity: sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==} + '@esbuild/android-arm64@0.25.4': + resolution: {integrity: sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -4543,8 +4683,8 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.25.2': - resolution: {integrity: sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==} + '@esbuild/android-arm@0.25.4': + resolution: {integrity: sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -4555,8 +4695,8 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.25.2': - resolution: {integrity: sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==} + '@esbuild/android-x64@0.25.4': + resolution: {integrity: sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -4567,8 +4707,8 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.25.2': - resolution: {integrity: sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==} + '@esbuild/darwin-arm64@0.25.4': + resolution: {integrity: sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -4579,8 +4719,8 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.25.2': - resolution: {integrity: sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==} + '@esbuild/darwin-x64@0.25.4': + resolution: {integrity: sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -4591,8 +4731,8 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.25.2': - resolution: {integrity: sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==} + '@esbuild/freebsd-arm64@0.25.4': + resolution: {integrity: sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -4603,8 +4743,8 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.2': - resolution: {integrity: sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==} + '@esbuild/freebsd-x64@0.25.4': + resolution: {integrity: sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -4615,8 +4755,8 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.25.2': - resolution: {integrity: sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==} + '@esbuild/linux-arm64@0.25.4': + resolution: {integrity: sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -4627,8 +4767,8 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.25.2': - resolution: {integrity: sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==} + '@esbuild/linux-arm@0.25.4': + resolution: {integrity: sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -4639,8 +4779,8 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.25.2': - resolution: {integrity: sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==} + '@esbuild/linux-ia32@0.25.4': + resolution: {integrity: sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -4651,8 +4791,8 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.25.2': - resolution: {integrity: sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==} + '@esbuild/linux-loong64@0.25.4': + resolution: {integrity: sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -4663,8 +4803,8 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.25.2': - resolution: {integrity: sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==} + '@esbuild/linux-mips64el@0.25.4': + resolution: {integrity: sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -4675,8 +4815,8 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.25.2': - resolution: {integrity: sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==} + '@esbuild/linux-ppc64@0.25.4': + resolution: {integrity: sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -4687,8 +4827,8 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.25.2': - resolution: {integrity: sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==} + '@esbuild/linux-riscv64@0.25.4': + resolution: {integrity: sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -4699,8 +4839,8 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.25.2': - resolution: {integrity: sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==} + '@esbuild/linux-s390x@0.25.4': + resolution: {integrity: sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -4711,8 +4851,8 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.25.2': - resolution: {integrity: sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==} + '@esbuild/linux-x64@0.25.4': + resolution: {integrity: sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==} engines: {node: '>=18'} cpu: [x64] os: [linux] @@ -4723,8 +4863,8 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.25.2': - resolution: {integrity: sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==} + '@esbuild/netbsd-arm64@0.25.4': + resolution: {integrity: sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] @@ -4735,8 +4875,8 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.2': - resolution: {integrity: sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==} + '@esbuild/netbsd-x64@0.25.4': + resolution: {integrity: sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] @@ -4747,8 +4887,8 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.25.2': - resolution: {integrity: sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==} + '@esbuild/openbsd-arm64@0.25.4': + resolution: {integrity: sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -4759,8 +4899,8 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.2': - resolution: {integrity: sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==} + '@esbuild/openbsd-x64@0.25.4': + resolution: {integrity: sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] @@ -4771,8 +4911,8 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.25.2': - resolution: {integrity: sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==} + '@esbuild/sunos-x64@0.25.4': + resolution: {integrity: sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -4783,8 +4923,8 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.25.2': - resolution: {integrity: sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==} + '@esbuild/win32-arm64@0.25.4': + resolution: {integrity: sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -4795,8 +4935,8 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.25.2': - resolution: {integrity: sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==} + '@esbuild/win32-ia32@0.25.4': + resolution: {integrity: sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -4807,8 +4947,8 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.25.2': - resolution: {integrity: sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==} + '@esbuild/win32-x64@0.25.4': + resolution: {integrity: sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -6035,6 +6175,9 @@ packages: '@matterlabs/hardhat-zksync-upgradable': ^1.9.0 '@matterlabs/hardhat-zksync-verify': ^1.8.0 + '@mdx-js/mdx@3.1.0': + resolution: {integrity: sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==} + '@mdx-js/react@3.1.0': resolution: {integrity: sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==} peerDependencies: @@ -6210,6 +6353,9 @@ packages: '@near-js/wallet-account@1.1.1': resolution: {integrity: sha512-NnoJKtogBQ7Qz+AP+LdF70BP8Az6UXQori7OjPqJLMo73bn6lh5Ywvegwd1EB7ZEVe4BRt9+f9QkbU5M8ANfAw==} + '@next/bundle-analyzer@15.3.2': + resolution: {integrity: sha512-zY5O1PNKNxWEjaFX8gKzm77z2oL0cnj+m5aiqNBgay9LPLCDO13Cf+FJONeNq/nJjeXptwHFT9EMmTecF9U4Iw==} + '@next/env@15.3.2': resolution: {integrity: sha512-xURk++7P7qR9JG1jJtLzPzf0qEvqCN0A/T3DXf8IPMKo9/6FfjxtEffRJIIew/bIL4T3C2jLLqBor8B/zVlx6g==} @@ -6783,6 +6929,10 @@ packages: resolution: {integrity: sha512-sM3VNDUpHzNm0ZS+89bm0gyraziJYzzFPdjpmgTYDcNlZrwBWBY4CSk2lQ5WyysF8BoF/jj9xlZVcTXhjseDgw==} hasBin: true + '@orama/orama@3.1.6': + resolution: {integrity: sha512-qtSrqCqRU93SjEBedz987tvWao1YQSELjBhGkHYGVP7Dg0lBWP6d+uZEIt5gxTAYio/YWWlhivmRABvRfPLmnQ==} + engines: {node: '>= 16.0.0'} + '@orbs-network/ton-access@2.3.3': resolution: {integrity: sha512-b1miCPts7wBG9JKYgzXIRZQm/LMy5Uk1mNK8NzlcXHL3HRHJkkFbuYJGuj3IkWCiIicW3Ipp4sYnn3Fwo4oB0g==} @@ -6934,6 +7084,9 @@ packages: webpack-plugin-serve: optional: true + '@polka/url@1.0.0-next.29': + resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} + '@prisma/instrumentation@5.22.0': resolution: {integrity: sha512-LxccF392NN37ISGxIurUljZSh1YWnphO34V5a0+T7FVQG2u9bhAXRTJpgmQ3483woVhkraQZFF7cbRrpbw/F4Q==} @@ -7007,9 +7160,28 @@ packages: '@radix-ui/number@1.1.0': resolution: {integrity: sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==} + '@radix-ui/number@1.1.1': + resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} + '@radix-ui/primitive@1.1.1': resolution: {integrity: sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==} + '@radix-ui/primitive@1.1.2': + resolution: {integrity: sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==} + + '@radix-ui/react-accordion@1.2.10': + resolution: {integrity: sha512-x+URzV1siKmeXPSUIQ22L81qp2eOhjpy3tgteF+zOr4d1u0qJnFuyBF4MoQRhmKP6ivDxlvDAvqaF77gh7DOIw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-arrow@1.1.2': resolution: {integrity: sha512-G+KcpzXHq24iH0uGG/pF8LyzpFJYGD4RfLjCIBfGdSLXvjLHST31RUiRVrupIBMvIppMgSzQ6l66iAxl03tdlg==} peerDependencies: @@ -7023,6 +7195,32 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-arrow@1.1.6': + resolution: {integrity: sha512-2JMfHJf/eVnwq+2dewT3C0acmCWD3XiVA1Da+jTDqo342UlU13WvXtqHhG+yJw5JeQmu4ue2eMy6gcEArLBlcw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-collapsible@1.1.10': + resolution: {integrity: sha512-O2mcG3gZNkJ/Ena34HurA3llPOEA/M4dJtIRMa6y/cknRDC8XY5UZBInKTsUwW5cUue9A4k0wi1XU5fKBzKe1w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-collection@1.1.2': resolution: {integrity: sha512-9z54IEKRxIa9VityapoEYMuByaG42iSy1ZXlY2KcuLSEtq8x4987/N6m15ppoMffgZX72gER2uHe1D9Y6Unlcw==} peerDependencies: @@ -7036,6 +7234,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-collection@1.1.6': + resolution: {integrity: sha512-PbhRFK4lIEw9ADonj48tiYWzkllz81TM7KVYyyMMw2cwHO7D5h4XKEblL8NlaRisTK3QTe6tBEhDccFUryxHBQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-compose-refs@1.1.1': resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==} peerDependencies: @@ -7045,6 +7256,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-compose-refs@1.1.2': + resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-context@1.1.1': resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==} peerDependencies: @@ -7054,6 +7274,28 @@ packages: '@types/react': optional: true + '@radix-ui/react-context@1.1.2': + resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-dialog@1.1.13': + resolution: {integrity: sha512-ARFmqUyhIVS3+riWzwGTe7JLjqwqgnODBUZdqpWar/z1WFs9z76fuOs/2BOWCR+YboRn4/WN9aoaGVwqNRr8VA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-direction@1.1.0': resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==} peerDependencies: @@ -7063,6 +7305,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-direction@1.1.1': + resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-dismissable-layer@1.1.5': resolution: {integrity: sha512-E4TywXY6UsXNRhFrECa5HAvE5/4BFcGyfTyK36gP+pAW1ed7UTK4vKwdr53gAJYwqbfCWC6ATvJa3J3R/9+Qrg==} peerDependencies: @@ -7076,6 +7327,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-dismissable-layer@1.1.9': + resolution: {integrity: sha512-way197PiTvNp+WBP7svMJasHl+vibhWGQDb6Mgf5mhEWJkgb85z7Lfl9TUdkqpWsf8GRNmoopx9ZxCyDzmgRMQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-focus-guards@1.1.1': resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==} peerDependencies: @@ -7085,6 +7349,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-focus-guards@1.1.2': + resolution: {integrity: sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-focus-scope@1.1.2': resolution: {integrity: sha512-zxwE80FCU7lcXUGWkdt6XpTTCKPitG1XKOwViTxHVKIJhZl9MvIl2dVHeZENCWD9+EdWv05wlaEkRXUykU27RA==} peerDependencies: @@ -7098,6 +7371,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-focus-scope@1.1.6': + resolution: {integrity: sha512-r9zpYNUQY+2jWHWZGyddQLL9YHkM/XvSFHVcWs7bdVuxMAnCwTAuy6Pf47Z4nw7dYcUou1vg/VgjjrrH03VeBw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-id@1.1.0': resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==} peerDependencies: @@ -7107,6 +7393,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-id@1.1.1': + resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-label@2.1.2': resolution: {integrity: sha512-zo1uGMTaNlHehDyFQcDZXRJhUPDuukcnHz0/jnrup0JA6qL+AFpAnty+7VKa9esuU5xTblAZzTGYJKSKaBxBhw==} peerDependencies: @@ -7120,6 +7415,32 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-navigation-menu@1.2.12': + resolution: {integrity: sha512-iExvawdu7n6DidDJRU5pMTdi+Z3DaVPN4UZbAGuTs7nJA8P4RvvkEz+XYI2UJjb/Hh23RrH19DakgZNLdaq9Bw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-popover@1.1.13': + resolution: {integrity: sha512-84uqQV3omKDR076izYgcha6gdpN8m3z6w/AeJ83MSBJYVG/AbOHdLjAgsPZkeC/kt+k64moXFCnio8BbqXszlw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-popper@1.2.2': resolution: {integrity: sha512-Rvqc3nOpwseCyj/rgjlJDYAgyfw7OC1tTkKn2ivhaMGcYt8FSBlahHOZak2i3QwkRXUXgGgzeEe2RuqeEHuHgA==} peerDependencies: @@ -7133,6 +7454,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-popper@1.2.6': + resolution: {integrity: sha512-7iqXaOWIjDBfIG7aq8CUEeCSsQMLFdn7VEE8TaFz704DtEzpPHR7w/uuzRflvKgltqSAImgcmxQ7fFX3X7wasg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-portal@1.1.4': resolution: {integrity: sha512-sn2O9k1rPFYVyKd5LAJfo96JlSGVFpa1fS6UuBJfrZadudiw5tAmru+n1x7aMRQ84qDM71Zh1+SzK5QwU0tJfA==} peerDependencies: @@ -7146,6 +7480,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-portal@1.1.8': + resolution: {integrity: sha512-hQsTUIn7p7fxCPvao/q6wpbxmCwgLrlz+nOrJgC+RwfZqWY/WN+UMqkXzrtKbPrF82P43eCTl3ekeKuyAQbFeg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-presence@1.1.2': resolution: {integrity: sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==} peerDependencies: @@ -7159,6 +7506,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-presence@1.1.4': + resolution: {integrity: sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-primitive@2.0.2': resolution: {integrity: sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==} peerDependencies: @@ -7172,6 +7532,45 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-primitive@2.1.2': + resolution: {integrity: sha512-uHa+l/lKfxuDD2zjN/0peM/RhhSmRjr5YWdk/37EnSv1nJ88uvG85DPexSm8HdFQROd2VdERJ6ynXbkCFi+APw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-roving-focus@1.1.9': + resolution: {integrity: sha512-ZzrIFnMYHHCNqSNCsuN6l7wlewBEq0O0BCSBkabJMFXVO51LRUTq71gLP1UxFvmrXElqmPjA5VX7IqC9VpazAQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-scroll-area@1.2.8': + resolution: {integrity: sha512-K5h1RkYA6M0Sn61BV5LQs686zqBsSC0sGzL4/Gw4mNnjzrQcGSc6YXfC6CRFNaGydSdv5+M8cb0eNsOGo0OXtQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-select@2.1.6': resolution: {integrity: sha512-T6ajELxRvTuAMWH0YmRJ1qez+x4/7Nq7QIx7zJ0VK3qaEWdnWpNbEDnmWldG1zBDwqrLy5aLMUWcoGirVj5kMg==} peerDependencies: @@ -7194,6 +7593,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-slot@1.2.2': + resolution: {integrity: sha512-y7TBO4xN4Y94FvcWIOIh18fM4R1A8S4q1jhoz4PNzOoHsFcN8pogcFmZrTYAm4F9VRUrWP/Mw7xSKybIeRI+CQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-switch@1.1.3': resolution: {integrity: sha512-1nc+vjEOQkJVsJtWPSiISGT6OKm4SiOdjMo+/icLxo2G4vxz1GntC5MzfL4v8ey9OEfw787QCD1y3mUv0NiFEQ==} peerDependencies: @@ -7207,6 +7615,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-tabs@1.1.11': + resolution: {integrity: sha512-4FiKSVoXqPP/KfzlB7lwwqoFV6EPwkrrqGp9cUYXjwDYHhvpnqq79P+EPHKcdoTE7Rl8w/+6s9rTlsfXHES9GA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-tooltip@1.1.8': resolution: {integrity: sha512-YAA2cu48EkJZdAMHC0dqo9kialOcRStbtiY4nJPaht7Ptrhcvpo+eDChaM6BIs8kL6a8Z5l5poiqLnXcNduOkA==} peerDependencies: @@ -7229,6 +7650,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-use-callback-ref@1.1.1': + resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-use-controllable-state@1.1.0': resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} peerDependencies: @@ -7238,6 +7668,24 @@ packages: '@types/react': optional: true + '@radix-ui/react-use-controllable-state@1.2.2': + resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-effect-event@0.0.2': + resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-use-escape-keydown@1.1.0': resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==} peerDependencies: @@ -7247,6 +7695,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-use-escape-keydown@1.1.1': + resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-use-layout-effect@1.1.0': resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} peerDependencies: @@ -7256,6 +7713,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-use-layout-effect@1.1.1': + resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-use-previous@1.1.0': resolution: {integrity: sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==} peerDependencies: @@ -7265,6 +7731,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-use-previous@1.1.1': + resolution: {integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-use-rect@1.1.0': resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==} peerDependencies: @@ -7274,6 +7749,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-use-rect@1.1.1': + resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-use-size@1.1.0': resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==} peerDependencies: @@ -7283,6 +7767,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-use-size@1.1.1': + resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-visually-hidden@1.1.2': resolution: {integrity: sha512-1SzA4ns2M1aRlvxErqhLHsBHoS5eI5UUcI2awAMgGUp4LoaoWOKYmvqDY2s/tltuPkh3Yk77YF/r3IRj+Amx4Q==} peerDependencies: @@ -7296,9 +7789,25 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-visually-hidden@1.2.2': + resolution: {integrity: sha512-ORCmRUbNiZIv6uV5mhFrhsIKw4UX/N3syZtyqvry61tbGm4JlgQuSn0hk5TwCARsCjkcnuRkSdCE3xfb+ADHew==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/rect@1.1.0': resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==} + '@radix-ui/rect@1.1.1': + resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} + '@react-aria/autocomplete@3.0.0-beta.1': resolution: {integrity: sha512-ZeVR1tKJOZK5/RTuN8eprlP1lyeihdDfDYPBkdg2iT5h775LSZyOingPux9aLtdqt/uj6JIS5amK9ErI7+axug==} peerDependencies: @@ -8113,36 +8622,60 @@ packages: '@shikijs/core@3.2.1': resolution: {integrity: sha512-FhsdxMWYu/C11sFisEp7FMGBtX/OSSbnXZDMBhGuUDBNTdsoZlMSgQv5f90rwvzWAdWIW6VobD+G3IrazxA6dQ==} + '@shikijs/core@3.4.0': + resolution: {integrity: sha512-0YOzTSRDn/IAfQWtK791gs1u8v87HNGToU6IwcA3K7nPoVOrS2Dh6X6A6YfXgPTSkTwR5y6myk0MnI0htjnwrA==} + '@shikijs/engine-javascript@1.29.2': resolution: {integrity: sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==} '@shikijs/engine-javascript@3.2.1': resolution: {integrity: sha512-eMdcUzN3FMQYxOmRf2rmU8frikzoSHbQDFH2hIuXsrMO+IBOCI9BeeRkCiBkcLDHeRKbOCtYMJK3D6U32ooU9Q==} + '@shikijs/engine-javascript@3.4.0': + resolution: {integrity: sha512-1ywDoe+z/TPQKj9Jw0eU61B003J9DqUFRfH+DVSzdwPUFhR7yOmfyLzUrFz0yw8JxFg/NgzXoQyyykXgO21n5Q==} + '@shikijs/engine-oniguruma@1.29.2': resolution: {integrity: sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==} '@shikijs/engine-oniguruma@3.2.1': resolution: {integrity: sha512-wZZAkayEn6qu2+YjenEoFqj0OyQI64EWsNR6/71d1EkG4sxEOFooowKivsWPpaWNBu3sxAG+zPz5kzBL/SsreQ==} + '@shikijs/engine-oniguruma@3.4.0': + resolution: {integrity: sha512-zwcWlZ4OQuJ/+1t32ClTtyTU1AiDkK1lhtviRWoq/hFqPjCNyLj22bIg9rB7BfoZKOEOfrsGz7No33BPCf+WlQ==} + '@shikijs/langs@1.29.2': resolution: {integrity: sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==} '@shikijs/langs@3.2.1': resolution: {integrity: sha512-If0iDHYRSGbihiA8+7uRsgb1er1Yj11pwpX1c6HLYnizDsKAw5iaT3JXj5ZpaimXSWky/IhxTm7C6nkiYVym+A==} + '@shikijs/langs@3.4.0': + resolution: {integrity: sha512-bQkR+8LllaM2duU9BBRQU0GqFTx7TuF5kKlw/7uiGKoK140n1xlLAwCgXwSxAjJ7Htk9tXTFwnnsJTCU5nDPXQ==} + + '@shikijs/rehype@3.4.0': + resolution: {integrity: sha512-wm7RTSmrcmjZg+F9JRrsH0Brwi36joUMXkUWIDmBGW+XExNEi8Xjmmp2NOBXa3DujZtnL6Dbcg7V6gtZabGoXw==} + '@shikijs/themes@1.29.2': resolution: {integrity: sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==} '@shikijs/themes@3.2.1': resolution: {integrity: sha512-k5DKJUT8IldBvAm8WcrDT5+7GA7se6lLksR+2E3SvyqGTyFMzU2F9Gb7rmD+t+Pga1MKrYFxDIeyWjMZWM6uBQ==} + '@shikijs/themes@3.4.0': + resolution: {integrity: sha512-YPP4PKNFcFGLxItpbU0ZW1Osyuk8AyZ24YEFaq04CFsuCbcqydMvMUTi40V2dkc0qs1U2uZFrnU6s5zI6IH+uA==} + + '@shikijs/transformers@3.4.0': + resolution: {integrity: sha512-GrGaOj1/I6h75IU0VvjdWDpqGCynx0bqHzd1rErBTGxrcmusYIBhrV7aEySWyJ6HHb9figeXfcNxUFS1HKUfBw==} + '@shikijs/types@1.29.2': resolution: {integrity: sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==} '@shikijs/types@3.2.1': resolution: {integrity: sha512-/NTWAk4KE2M8uac0RhOsIhYQf4pdU0OywQuYDGIGAJ6Mjunxl2cGiuLkvu4HLCMn+OTTLRWkjZITp+aYJv60yA==} + '@shikijs/types@3.4.0': + resolution: {integrity: sha512-EUT/0lGiE//7j5N/yTMNMT3eCWNcHJLrRKxT0NDXWIfdfSmFJKfPX7nMmRBrQnWboAzIsUziCThrYMMhjbMS1A==} + '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} @@ -9271,6 +9804,9 @@ packages: '@sqds/mesh@1.0.6': resolution: {integrity: sha512-z+x1GjixJm8K3uPwaDebTsssU3B71zJzRCkywmtz2ZZoMvoz9w/C4nY+v7v6Wg/9OTbfSDgcX/Hoo/FlphkWvg==} + '@standard-schema/spec@1.0.0': + resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} + '@starknet-io/types-js@0.7.10': resolution: {integrity: sha512-1VtCqX4AHWJlRRSYGSn+4X1mqolI1Tdq62IwzoU2vUuEE72S1OlEeGhpvd6XsdqXcfHmVzYfj8k1XtKBQqwo9w==} @@ -9654,6 +10190,94 @@ packages: peerDependencies: tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1' + '@tailwindcss/node@4.1.6': + resolution: {integrity: sha512-ed6zQbgmKsjsVvodAS1q1Ld2BolEuxJOSyyNc+vhkjdmfNUDCmQnlXBfQkHrlzNmslxHsQU/bFmzcEbv4xXsLg==} + + '@tailwindcss/oxide-android-arm64@4.1.6': + resolution: {integrity: sha512-VHwwPiwXtdIvOvqT/0/FLH/pizTVu78FOnI9jQo64kSAikFSZT7K4pjyzoDpSMaveJTGyAKvDjuhxJxKfmvjiQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@tailwindcss/oxide-darwin-arm64@4.1.6': + resolution: {integrity: sha512-weINOCcqv1HVBIGptNrk7c6lWgSFFiQMcCpKM4tnVi5x8OY2v1FrV76jwLukfT6pL1hyajc06tyVmZFYXoxvhQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@tailwindcss/oxide-darwin-x64@4.1.6': + resolution: {integrity: sha512-3FzekhHG0ww1zQjQ1lPoq0wPrAIVXAbUkWdWM8u5BnYFZgb9ja5ejBqyTgjpo5mfy0hFOoMnMuVDI+7CXhXZaQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@tailwindcss/oxide-freebsd-x64@4.1.6': + resolution: {integrity: sha512-4m5F5lpkBZhVQJq53oe5XgJ+aFYWdrgkMwViHjRsES3KEu2m1udR21B1I77RUqie0ZYNscFzY1v9aDssMBZ/1w==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.6': + resolution: {integrity: sha512-qU0rHnA9P/ZoaDKouU1oGPxPWzDKtIfX7eOGi5jOWJKdxieUJdVV+CxWZOpDWlYTd4N3sFQvcnVLJWJ1cLP5TA==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-gnu@4.1.6': + resolution: {integrity: sha512-jXy3TSTrbfgyd3UxPQeXC3wm8DAgmigzar99Km9Sf6L2OFfn/k+u3VqmpgHQw5QNfCpPe43em6Q7V76Wx7ogIQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-musl@4.1.6': + resolution: {integrity: sha512-8kjivE5xW0qAQ9HX9reVFmZj3t+VmljDLVRJpVBEoTR+3bKMnvC7iLcoSGNIUJGOZy1mLVq7x/gerVg0T+IsYw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tailwindcss/oxide-linux-x64-gnu@4.1.6': + resolution: {integrity: sha512-A4spQhwnWVpjWDLXnOW9PSinO2PTKJQNRmL/aIl2U/O+RARls8doDfs6R41+DAXK0ccacvRyDpR46aVQJJCoCg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tailwindcss/oxide-linux-x64-musl@4.1.6': + resolution: {integrity: sha512-YRee+6ZqdzgiQAHVSLfl3RYmqeeaWVCk796MhXhLQu2kJu2COHBkqlqsqKYx3p8Hmk5pGCQd2jTAoMWWFeyG2A==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tailwindcss/oxide-wasm32-wasi@4.1.6': + resolution: {integrity: sha512-qAp4ooTYrBQ5pk5jgg54/U1rCJ/9FLYOkkQ/nTE+bVMseMfB6O7J8zb19YTpWuu4UdfRf5zzOrNKfl6T64MNrQ==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib + + '@tailwindcss/oxide-win32-arm64-msvc@4.1.6': + resolution: {integrity: sha512-nqpDWk0Xr8ELO/nfRUDjk1pc9wDJ3ObeDdNMHLaymc4PJBWj11gdPCWZFKSK2AVKjJQC7J2EfmSmf47GN7OuLg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@tailwindcss/oxide-win32-x64-msvc@4.1.6': + resolution: {integrity: sha512-5k9xF33xkfKpo9wCvYcegQ21VwIBU1/qEbYlVukfEIyQbEA47uK8AAwS7NVjNE3vHzcmxMYwd0l6L4pPjjm1rQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.1.6': + resolution: {integrity: sha512-0bpEBQiGx+227fW4G0fLQ8vuvyy5rsB1YIYNapTq3aRsJ9taF3f5cCaovDjN5pUGKKzcpMrZst/mhNaKAPOHOA==} + engines: {node: '>= 10'} + + '@tailwindcss/postcss@4.1.6': + resolution: {integrity: sha512-ELq+gDMBuRXPJlpE3PEen+1MhnHAQQrh2zF0dI1NXOlEWfr2qWf2CQdr5jl9yANv8RErQaQ2l6nIFO9OSCVq/g==} + '@tanstack/query-core@5.71.5': resolution: {integrity: sha512-XOQ5SyjCdwhxyLksGKWSL5poqyEXYPDnsrZAzJm2LgrMm4Yh6VOrfC+IFosXreDw9HNqC11YAMY3HlfHjNzuaA==} @@ -11604,6 +12228,10 @@ packages: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} + astring@1.9.0: + resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} + hasBin: true + async-eventemitter@0.2.4: resolution: {integrity: sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==} @@ -12501,6 +13129,9 @@ packages: resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} engines: {node: '>=0.10.0'} + collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + collect-v8-coverage@1.0.2: resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} @@ -12606,6 +13237,9 @@ packages: compare-versions@6.1.1: resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} + compute-scroll-into-view@3.1.1: + resolution: {integrity: sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==} + concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -13016,6 +13650,9 @@ packages: resolution: {integrity: sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==} engines: {node: '>=10'} + debounce@1.2.1: + resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} + debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -13240,6 +13877,10 @@ packages: resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} + detect-libc@2.0.4: + resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} + engines: {node: '>=8'} + detect-newline@3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} @@ -13619,6 +14260,12 @@ packages: resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==} engines: {node: '>=0.12'} + esast-util-from-estree@2.0.0: + resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} + + esast-util-from-js@2.0.1: + resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} + esbuild-android-64@0.14.47: resolution: {integrity: sha512-R13Bd9+tqLVFndncMHssZrPWe6/0Kpv2/dt4aA69soX4PRxlzsVpCvoJeFE8sOEoeVEiBkI0myjlkDodXlHa0g==} engines: {node: '>=12'} @@ -13754,8 +14401,8 @@ packages: engines: {node: '>=18'} hasBin: true - esbuild@0.25.2: - resolution: {integrity: sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==} + esbuild@0.25.4: + resolution: {integrity: sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==} engines: {node: '>=18'} hasBin: true @@ -13778,6 +14425,10 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + escodegen@2.1.0: resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} engines: {node: '>=6.0'} @@ -14047,9 +14698,27 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} + estree-util-attach-comments@3.0.0: + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + + estree-util-build-jsx@3.0.1: + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + estree-util-is-identifier-name@3.0.0: resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + estree-util-scope@1.0.0: + resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==} + + estree-util-to-js@2.0.0: + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + + estree-util-value-to-estree@3.4.0: + resolution: {integrity: sha512-Zlp+gxis+gCfK12d3Srl2PdX2ybsEA8ZYy6vQGVQTNNYLEGRQQ56XB64bjemN8kxIKXP1nC9ip4Z+ILy9LGzvQ==} + + estree-util-visit@2.0.0: + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} @@ -14288,6 +14957,10 @@ packages: ext@1.7.0: resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} + extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} @@ -14745,6 +15418,48 @@ packages: engines: {node: ^18.20.3 || ^20.0.0 || ^22.0.0} hasBin: true + fumadocs-core@15.3.0: + resolution: {integrity: sha512-6+j2qGntJknzQUyes5BQI3U5EE4GCIb1Pi31eAYZ8GLxMP1p1bh8nAyEeW6oZNZmqfstJoVLQNnw+vwuHJJHUw==} + peerDependencies: + '@oramacloud/client': 1.x.x || 2.x.x + algoliasearch: 4.24.0 + next: 14.x.x || 15.x.x + react: 18.x.x || 19.x.x + react-dom: 18.x.x || 19.x.x + peerDependenciesMeta: + '@oramacloud/client': + optional: true + algoliasearch: + optional: true + next: + optional: true + react: + optional: true + react-dom: + optional: true + + fumadocs-mdx@11.6.3: + resolution: {integrity: sha512-R7ca68TDnPwJGx3YhCzIrcZfqo8Buq9k3piZMFV8ydO6gNJijdJ9iyddHi/D3DABfmMrgEL551EFxRsaDUU27A==} + hasBin: true + peerDependencies: + '@fumadocs/mdx-remote': ^1.2.0 + fumadocs-core: ^14.0.0 || ^15.0.0 + next: ^15.3.0 + peerDependenciesMeta: + '@fumadocs/mdx-remote': + optional: true + + fumadocs-ui@15.3.0: + resolution: {integrity: sha512-jQeaKWD+rGoZMXuH3FA73p6N7f11Lmhyn31bn9Jtl1VdIopq7EaXhseUqw586wSNgGKO3qmfPOXCBvvuu6gDTw==} + peerDependencies: + next: 14.x.x || 15.x.x + react: 18.x.x || 19.x.x + react-dom: 18.x.x || 19.x.x + tailwindcss: ^3.4.14 || ^4.0.0 + peerDependenciesMeta: + tailwindcss: + optional: true + function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} @@ -14846,6 +15561,9 @@ packages: github-from-package@0.0.0: resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -14994,6 +15712,10 @@ packages: resolution: {integrity: sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + growl@1.10.5: resolution: {integrity: sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==} engines: {node: '>=4.x'} @@ -15086,12 +15808,18 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + hast-util-to-estree@3.1.3: + resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==} + hast-util-to-html@9.0.5: resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} hast-util-to-jsx-runtime@2.3.6: resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} + hast-util-to-string@3.0.1: + resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} + hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} @@ -15301,6 +16029,11 @@ packages: engines: {node: '>=16.x'} hasBin: true + image-size@2.0.2: + resolution: {integrity: sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==} + engines: {node: '>=16.x'} + hasBin: true + immediate@3.3.0: resolution: {integrity: sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==} @@ -15514,6 +16247,10 @@ packages: engines: {node: '>=8'} hasBin: true + is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -15963,6 +16700,10 @@ packages: resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} hasBin: true + jiti@2.4.2: + resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + hasBin: true + jito-ts@3.0.1: resolution: {integrity: sha512-TSofF7KqcwyaWGjPaSYC8RDoNBY1TPRNBHdrw24bdIi7mQ5bFEDdYK3D//llw/ml8YDvcZlgd644WxhjLTS9yg==} @@ -16341,6 +17082,70 @@ packages: lighthouse-logger@1.4.2: resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==} + lightningcss-darwin-arm64@1.29.2: + resolution: {integrity: sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.29.2: + resolution: {integrity: sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.29.2: + resolution: {integrity: sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.29.2: + resolution: {integrity: sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.29.2: + resolution: {integrity: sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-arm64-musl@1.29.2: + resolution: {integrity: sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.29.2: + resolution: {integrity: sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.29.2: + resolution: {integrity: sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-win32-arm64-msvc@1.29.2: + resolution: {integrity: sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.29.2: + resolution: {integrity: sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.29.2: + resolution: {integrity: sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==} + engines: {node: '>= 12.0.0'} + lightweight-charts@5.0.5: resolution: {integrity: sha512-o6/EDBLgvijwPatPosGmeS6JPsqBN3JJ8Wi6j+Zo5E1rmMOsiv3jG8/wBHFN/aqqE6eFMeKWFtGfVjB2HJtvtQ==} @@ -16515,6 +17320,10 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@11.1.0: + resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==} + engines: {node: 20 || >=22} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -16575,10 +17384,17 @@ packages: map-or-similar@1.5.0: resolution: {integrity: sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==} + markdown-extensions@2.0.0: + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} + engines: {node: '>=16'} + markdown-it@14.1.0: resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} hasBin: true + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + marked@4.3.0: resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==} engines: {node: '>= 12'} @@ -16597,15 +17413,39 @@ packages: md5.js@1.3.5: resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + mdast-util-from-markdown@2.0.2: resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + + mdast-util-gfm-footnote@2.1.0: + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.1.0: + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + mdast-util-mdx-expression@2.0.1: resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} mdast-util-mdx-jsx@3.2.0: resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} + mdast-util-mdx@3.0.0: + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + mdast-util-mdxjs-esm@2.0.1: resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} @@ -16755,12 +17595,51 @@ packages: micromark-core-commonmark@2.0.3: resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + + micromark-extension-gfm-table@2.1.1: + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-extension-mdx-expression@3.0.1: + resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==} + + micromark-extension-mdx-jsx@3.0.2: + resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==} + + micromark-extension-mdx-md@2.0.0: + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + + micromark-extension-mdxjs-esm@3.0.0: + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + + micromark-extension-mdxjs@3.0.0: + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + micromark-factory-destination@2.0.1: resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} micromark-factory-label@2.0.1: resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + micromark-factory-mdx-expression@2.0.3: + resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==} + micromark-factory-space@2.0.1: resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} @@ -16791,6 +17670,9 @@ packages: micromark-util-encode@2.0.1: resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + micromark-util-events-to-acorn@2.0.3: + resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==} + micromark-util-html-tag-name@2.0.1: resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} @@ -17042,6 +17924,10 @@ packages: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} + mrmime@2.0.1: + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} + engines: {node: '>=10'} + ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} @@ -17152,6 +18038,10 @@ packages: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} + negotiator@1.0.0: + resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} + engines: {node: '>= 0.6'} + neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} @@ -17488,6 +18378,9 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} + oniguruma-parser@0.12.1: + resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} + oniguruma-parser@0.5.4: resolution: {integrity: sha512-yNxcQ8sKvURiTwP0mV6bLQCYE7NKfKRRWunhbZnXgxSmB1OXa1lHrN3o4DZd+0Si0kU5blidK7BcROO8qv5TZA==} @@ -17497,6 +18390,9 @@ packages: oniguruma-to-es@4.1.0: resolution: {integrity: sha512-SNwG909cSLo4vPyyPbU/VJkEc9WOXqu2ycBlfd1UCXLqk1IijcQktSBb2yRQ2UFPsDhpkaf+C1dtT3PkLK/yWA==} + oniguruma-to-es@4.3.3: + resolution: {integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==} + open@7.4.2: resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} engines: {node: '>=8'} @@ -17515,6 +18411,10 @@ packages: openapi3-ts@3.1.0: resolution: {integrity: sha512-1qKTvCCVoV0rkwUh1zq5o8QyghmwYPuhdvtjv1rFjuOnJToXhQyF8eGjNETQ8QmGjr9Jz/tkAKLITIl2s7dw3A==} + opener@1.5.2: + resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} + hasBin: true + optimism@0.18.1: resolution: {integrity: sha512-mLXNwWPa9dgFyDqkNi54sjDyNJ9/fTI6WGBLgnXku1vdKY/jovHfZT5r+aiVeFFLOz+foPNOm5YJ4mqgld2GBQ==} @@ -18523,6 +19423,12 @@ packages: '@types/react': '>=18' react: '>=18' + react-medium-image-zoom@5.2.14: + resolution: {integrity: sha512-nfTVYcAUnBzXQpPDcZL+cG/e6UceYUIG+zDcnemL7jtAqbJjVVkA85RgneGtJeni12dTyiRPZVM6Szkmwd/o8w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-modal@3.16.3: resolution: {integrity: sha512-yCYRJB5YkeQDQlTt17WGAgFJ7jr2QYcWa1SHqZ3PluDmnKJ/7+tVU+E6uKyZ0nODaeEj+xCpK4LcSnKXLMC0Nw==} peerDependencies: @@ -18716,6 +19622,18 @@ packages: resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} engines: {node: '>= 0.10'} + recma-build-jsx@1.0.0: + resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} + + recma-jsx@1.0.0: + resolution: {integrity: sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==} + + recma-parse@1.0.0: + resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==} + + recma-stringify@1.0.0: + resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} + recursive-readdir@2.2.3: resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} engines: {node: '>=6.0.0'} @@ -18801,16 +19719,31 @@ packages: react: optional: true + rehype-recma@1.0.0: + resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} + relateurl@0.2.7: resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} engines: {node: '>= 0.10'} + remark-gfm@4.0.1: + resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} + + remark-mdx@3.1.0: + resolution: {integrity: sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==} + remark-parse@11.0.0: resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} remark-rehype@11.1.2: resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + + remark@15.0.1: + resolution: {integrity: sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==} + renderkid@3.0.0: resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} @@ -19104,6 +20037,9 @@ packages: resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==} engines: {node: '>= 10.13.0'} + scroll-into-view-if-needed@3.1.0: + resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} + scrypt-js@2.0.4: resolution: {integrity: sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==} @@ -19129,6 +20065,10 @@ packages: resolution: {integrity: sha512-lDFs9AAIaWP9UCdtWrotXWWF9t8PWgQDcxqgAnpM9rMqxb3Oaq2J0thzPVSxBwdJgyQtkU/sYtFtbM1RSt/iYA==} engines: {node: '>=18.0.0'} + section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + secure-json-parse@2.7.0: resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} @@ -19283,6 +20223,9 @@ packages: shiki@3.2.1: resolution: {integrity: sha512-VML/2o1/KGYkEf/stJJ+s9Ypn7jUKQPomGLGYso4JJFMFxVDyPNsjsI3MB3KLjlMOeH44gyaPdXC6rik2WXvUQ==} + shiki@3.4.0: + resolution: {integrity: sha512-Ni80XHcqhOEXv5mmDAvf5p6PAJqbUc/RzFeaOqk+zP5DLvTPS3j0ckvA+MI87qoxTQ5RGJDVTbdl/ENLSyyAnQ==} + shimmer@1.2.1: resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==} @@ -19339,6 +20282,10 @@ packages: sinon@18.0.1: resolution: {integrity: sha512-a2N2TDY1uGviajJ6r4D1CyRAkzE9NNVlYOV1wX5xQDuAk0ONgzgRl0EjCQuRCPxOwp13ghsMwt9Gdldujs39qw==} + sirv@2.0.4: + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} + engines: {node: '>= 10'} + sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} @@ -19645,6 +20592,10 @@ packages: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} + strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + strip-bom@2.0.0: resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==} engines: {node: '>=0.10.0'} @@ -19882,6 +20833,9 @@ packages: tailwind-merge@3.1.0: resolution: {integrity: sha512-aV27Oj8B7U/tAOMhJsSGdWqelfmudnGMdXIlMnk1JfsjwSjts6o8HyfN7SFH3EztzH4YH8kk6GbLTHzITJO39Q==} + tailwind-merge@3.3.0: + resolution: {integrity: sha512-fyW/pEfcQSiigd5SNn0nApUOxx0zB/dm6UDU/rEwc2c3sX2smWUNbapHv+QRqLGVp9GWX3THIa7MUGPo+YkDzQ==} + tailwindcss-animate@1.0.7: resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} peerDependencies: @@ -19897,6 +20851,9 @@ packages: engines: {node: '>=14.0.0'} hasBin: true + tailwindcss@4.1.6: + resolution: {integrity: sha512-j0cGLTreM6u4OWzBeLBpycK0WIh8w7kSwcUsQZoGLHZ7xDTdM69lN64AgoIEEwFi0tnhs4wSykUa5YWxAzgFYg==} + tanu@0.1.13: resolution: {integrity: sha512-UbRmX7ccZ4wMVOY/Uw+7ji4VOkEYSYJG1+I4qzbnn4qh/jtvVbrm6BFnF12NQQ4+jGv21wKmjb1iFyUSVnBWcQ==} @@ -20109,6 +21066,10 @@ packages: toposort@2.0.2: resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==} + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + tough-cookie@2.5.0: resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} engines: {node: '>=0.8'} @@ -20583,6 +21544,9 @@ packages: unist-util-is@6.0.0: resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + unist-util-position-from-estree@2.0.0: + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + unist-util-position@5.0.0: resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} @@ -21219,6 +22183,11 @@ packages: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} + webpack-bundle-analyzer@4.10.1: + resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==} + engines: {node: '>= 10.13.0'} + hasBin: true + webpack-dev-middleware@6.1.3: resolution: {integrity: sha512-A4ChP0Qj8oGociTs6UdlRUGANIGrCDL3y+pmQMc+dSsraXHCatFpmMey4mYELA+juqwUqwQsUgJJISXl1KWmiw==} engines: {node: '>= 14.15.0'} @@ -21690,6 +22659,9 @@ packages: zod@3.24.2: resolution: {integrity: sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==} + zod@3.24.4: + resolution: {integrity: sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==} + zustand@5.0.0: resolution: {integrity: sha512-LE+VcmbartOPM+auOjCCLQOsQ05zUTp8RkgwRzefUk+2jISdMMFnxvyTjA4YNWr5ZGXYbVsEMZosttuxUBkojQ==} engines: {node: '>=12.20.0'} @@ -24969,30 +25941,30 @@ snapshots: transitivePeerDependencies: - debug - '@cprussin/eslint-config@4.0.2(@testing-library/dom@10.4.0)(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@types/node@18.19.86)(typescript@5.8.2)))(ts-node@10.9.2(@types/node@18.19.86)(typescript@5.8.2))(turbo@2.4.4)(typescript@5.8.2)': + '@cprussin/eslint-config@4.0.2(@testing-library/dom@10.4.0)(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@types/node@18.19.86)(typescript@5.8.2)))(ts-node@10.9.2(@types/node@18.19.86)(typescript@5.8.2))(turbo@2.4.4)(typescript@5.8.2)': dependencies: '@eslint/eslintrc': 3.3.1 '@eslint/js': 9.23.0 '@next/eslint-plugin-next': 15.2.4 - eslint: 9.23.0(jiti@1.21.7) - eslint-config-prettier: 10.1.1(eslint@9.23.0(jiti@1.21.7)) - eslint-config-turbo: 2.4.4(eslint@9.23.0(jiti@1.21.7))(turbo@2.4.4) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7)) - eslint-plugin-jest: 28.11.0(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@types/node@18.19.86)(typescript@5.8.2)))(typescript@5.8.2) - eslint-plugin-jest-dom: 5.5.0(@testing-library/dom@10.4.0)(eslint@9.23.0(jiti@1.21.7)) - eslint-plugin-jsonc: 2.20.0(eslint@9.23.0(jiti@1.21.7)) - eslint-plugin-jsx-a11y: 6.10.2(eslint@9.23.0(jiti@1.21.7)) - eslint-plugin-n: 17.17.0(eslint@9.23.0(jiti@1.21.7)) - eslint-plugin-react: 7.37.4(eslint@9.23.0(jiti@1.21.7)) - eslint-plugin-react-hooks: 5.2.0(eslint@9.23.0(jiti@1.21.7)) - eslint-plugin-storybook: 0.11.6(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2) + eslint: 9.23.0(jiti@2.4.2) + eslint-config-prettier: 10.1.1(eslint@9.23.0(jiti@2.4.2)) + eslint-config-turbo: 2.4.4(eslint@9.23.0(jiti@2.4.2))(turbo@2.4.4) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-jest: 28.11.0(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@types/node@18.19.86)(typescript@5.8.2)))(typescript@5.8.2) + eslint-plugin-jest-dom: 5.5.0(@testing-library/dom@10.4.0)(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-jsonc: 2.20.0(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-n: 17.17.0(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-react: 7.37.4(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-react-hooks: 5.2.0(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-storybook: 0.11.6(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) eslint-plugin-tailwindcss: 3.18.0(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@18.19.86)(typescript@5.8.2))) - eslint-plugin-testing-library: 7.1.1(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2) + eslint-plugin-testing-library: 7.1.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) eslint-plugin-tsdoc: 0.4.0 - eslint-plugin-unicorn: 57.0.0(eslint@9.23.0(jiti@1.21.7)) + eslint-plugin-unicorn: 57.0.0(eslint@9.23.0(jiti@2.4.2)) globals: 16.0.0 tailwindcss: 3.4.17(ts-node@10.9.2(@types/node@18.19.86)(typescript@5.8.2)) - typescript-eslint: 8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2) + typescript-eslint: 8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) transitivePeerDependencies: - '@eslint/json' - '@testing-library/dom' @@ -25006,30 +25978,30 @@ snapshots: - turbo - typescript - '@cprussin/eslint-config@4.0.2(@testing-library/dom@10.4.0)(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2))(turbo@2.4.4)(typescript@5.8.2)': + '@cprussin/eslint-config@4.0.2(@testing-library/dom@10.4.0)(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2))(turbo@2.4.4)(typescript@5.8.2)': dependencies: '@eslint/eslintrc': 3.3.1 '@eslint/js': 9.23.0 '@next/eslint-plugin-next': 15.2.4 - eslint: 9.23.0(jiti@1.21.7) - eslint-config-prettier: 10.1.1(eslint@9.23.0(jiti@1.21.7)) - eslint-config-turbo: 2.4.4(eslint@9.23.0(jiti@1.21.7))(turbo@2.4.4) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7)) - eslint-plugin-jest: 28.11.0(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(typescript@5.8.2) - eslint-plugin-jest-dom: 5.5.0(@testing-library/dom@10.4.0)(eslint@9.23.0(jiti@1.21.7)) - eslint-plugin-jsonc: 2.20.0(eslint@9.23.0(jiti@1.21.7)) - eslint-plugin-jsx-a11y: 6.10.2(eslint@9.23.0(jiti@1.21.7)) - eslint-plugin-n: 17.17.0(eslint@9.23.0(jiti@1.21.7)) - eslint-plugin-react: 7.37.4(eslint@9.23.0(jiti@1.21.7)) - eslint-plugin-react-hooks: 5.2.0(eslint@9.23.0(jiti@1.21.7)) - eslint-plugin-storybook: 0.11.6(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2) + eslint: 9.23.0(jiti@2.4.2) + eslint-config-prettier: 10.1.1(eslint@9.23.0(jiti@2.4.2)) + eslint-config-turbo: 2.4.4(eslint@9.23.0(jiti@2.4.2))(turbo@2.4.4) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-jest: 28.11.0(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(typescript@5.8.2) + eslint-plugin-jest-dom: 5.5.0(@testing-library/dom@10.4.0)(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-jsonc: 2.20.0(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-n: 17.17.0(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-react: 7.37.4(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-react-hooks: 5.2.0(eslint@9.23.0(jiti@2.4.2)) + eslint-plugin-storybook: 0.11.6(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) eslint-plugin-tailwindcss: 3.18.0(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2))) - eslint-plugin-testing-library: 7.1.1(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2) + eslint-plugin-testing-library: 7.1.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) eslint-plugin-tsdoc: 0.4.0 - eslint-plugin-unicorn: 57.0.0(eslint@9.23.0(jiti@1.21.7)) + eslint-plugin-unicorn: 57.0.0(eslint@9.23.0(jiti@2.4.2)) globals: 16.0.0 tailwindcss: 3.4.17(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)) - typescript-eslint: 8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2) + typescript-eslint: 8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) transitivePeerDependencies: - '@eslint/json' - '@testing-library/dom' @@ -25043,15 +26015,15 @@ snapshots: - turbo - typescript - '@cprussin/jest-config@2.0.2(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(bufferutil@4.0.9)(esbuild@0.25.2)(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.1.0-rc.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(prettier@3.5.3)(typescript@5.8.2)(utf-8-validate@6.0.3)': + '@cprussin/jest-config@2.0.2(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(bufferutil@4.0.9)(esbuild@0.25.4)(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.1.0-rc.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(prettier@3.5.3)(typescript@5.8.2)(utf-8-validate@6.0.3)': dependencies: - '@cprussin/jest-runner-eslint': 0.0.1(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2))) + '@cprussin/jest-runner-eslint': 0.0.1(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2))) '@cprussin/jest-runner-prettier': 1.0.0(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(prettier@3.5.3) '@testing-library/jest-dom': 6.6.3 jest: 29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)) jest-environment-jsdom: 29.7.0(bufferutil@4.0.9)(utf-8-validate@6.0.3) prettier: 3.5.3 - ts-jest: 29.3.1(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(esbuild@0.25.2)(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(typescript@5.8.2) + ts-jest: 29.3.1(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(esbuild@0.25.4)(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(typescript@5.8.2) typescript: 5.8.2 optionalDependencies: next: 15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.1.0-rc.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1) @@ -25069,15 +26041,15 @@ snapshots: - supports-color - utf-8-validate - '@cprussin/jest-config@2.0.2(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(bufferutil@4.0.9)(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(prettier@3.5.3)(typescript@5.8.2)(utf-8-validate@5.0.10)': + '@cprussin/jest-config@2.0.2(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(bufferutil@4.0.9)(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(prettier@3.5.3)(typescript@5.8.2)(utf-8-validate@5.0.10)': dependencies: - '@cprussin/jest-runner-eslint': 0.0.1(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2))) + '@cprussin/jest-runner-eslint': 0.0.1(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2))) '@cprussin/jest-runner-prettier': 1.0.0(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(prettier@3.5.3) '@testing-library/jest-dom': 6.6.3 jest: 29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)) jest-environment-jsdom: 29.7.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) prettier: 3.5.3 - ts-jest: 29.3.1(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(esbuild@0.25.2)(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(typescript@5.8.2) + ts-jest: 29.3.1(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(esbuild@0.25.4)(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(typescript@5.8.2) typescript: 5.8.2 optionalDependencies: next: 15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.1.0-rc.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1) @@ -25095,13 +26067,13 @@ snapshots: - supports-color - utf-8-validate - '@cprussin/jest-runner-eslint@0.0.1(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))': + '@cprussin/jest-runner-eslint@0.0.1(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))': dependencies: chalk: 4.1.2 cosmiconfig: 7.1.0 create-jest-runner: 0.11.2 dot-prop: 6.0.1 - eslint: 9.23.0(jiti@1.21.7) + eslint: 9.23.0(jiti@2.4.2) jest: 29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)) transitivePeerDependencies: - '@jest/test-result' @@ -25160,6 +26132,8 @@ snapshots: dependencies: postcss-selector-parser: 7.1.0 + '@discoveryjs/json-ext@0.5.7': {} + '@dual-bundle/import-meta-resolve@4.1.0': {} '@ecies/ciphers@0.2.3(@noble/ciphers@1.2.1)': @@ -25257,151 +26231,151 @@ snapshots: '@esbuild/aix-ppc64@0.24.2': optional: true - '@esbuild/aix-ppc64@0.25.2': + '@esbuild/aix-ppc64@0.25.4': optional: true '@esbuild/android-arm64@0.24.2': optional: true - '@esbuild/android-arm64@0.25.2': + '@esbuild/android-arm64@0.25.4': optional: true '@esbuild/android-arm@0.24.2': optional: true - '@esbuild/android-arm@0.25.2': + '@esbuild/android-arm@0.25.4': optional: true '@esbuild/android-x64@0.24.2': optional: true - '@esbuild/android-x64@0.25.2': + '@esbuild/android-x64@0.25.4': optional: true '@esbuild/darwin-arm64@0.24.2': optional: true - '@esbuild/darwin-arm64@0.25.2': + '@esbuild/darwin-arm64@0.25.4': optional: true '@esbuild/darwin-x64@0.24.2': optional: true - '@esbuild/darwin-x64@0.25.2': + '@esbuild/darwin-x64@0.25.4': optional: true '@esbuild/freebsd-arm64@0.24.2': optional: true - '@esbuild/freebsd-arm64@0.25.2': + '@esbuild/freebsd-arm64@0.25.4': optional: true '@esbuild/freebsd-x64@0.24.2': optional: true - '@esbuild/freebsd-x64@0.25.2': + '@esbuild/freebsd-x64@0.25.4': optional: true '@esbuild/linux-arm64@0.24.2': optional: true - '@esbuild/linux-arm64@0.25.2': + '@esbuild/linux-arm64@0.25.4': optional: true '@esbuild/linux-arm@0.24.2': optional: true - '@esbuild/linux-arm@0.25.2': + '@esbuild/linux-arm@0.25.4': optional: true '@esbuild/linux-ia32@0.24.2': optional: true - '@esbuild/linux-ia32@0.25.2': + '@esbuild/linux-ia32@0.25.4': optional: true '@esbuild/linux-loong64@0.24.2': optional: true - '@esbuild/linux-loong64@0.25.2': + '@esbuild/linux-loong64@0.25.4': optional: true '@esbuild/linux-mips64el@0.24.2': optional: true - '@esbuild/linux-mips64el@0.25.2': + '@esbuild/linux-mips64el@0.25.4': optional: true '@esbuild/linux-ppc64@0.24.2': optional: true - '@esbuild/linux-ppc64@0.25.2': + '@esbuild/linux-ppc64@0.25.4': optional: true '@esbuild/linux-riscv64@0.24.2': optional: true - '@esbuild/linux-riscv64@0.25.2': + '@esbuild/linux-riscv64@0.25.4': optional: true '@esbuild/linux-s390x@0.24.2': optional: true - '@esbuild/linux-s390x@0.25.2': + '@esbuild/linux-s390x@0.25.4': optional: true '@esbuild/linux-x64@0.24.2': optional: true - '@esbuild/linux-x64@0.25.2': + '@esbuild/linux-x64@0.25.4': optional: true '@esbuild/netbsd-arm64@0.24.2': optional: true - '@esbuild/netbsd-arm64@0.25.2': + '@esbuild/netbsd-arm64@0.25.4': optional: true '@esbuild/netbsd-x64@0.24.2': optional: true - '@esbuild/netbsd-x64@0.25.2': + '@esbuild/netbsd-x64@0.25.4': optional: true '@esbuild/openbsd-arm64@0.24.2': optional: true - '@esbuild/openbsd-arm64@0.25.2': + '@esbuild/openbsd-arm64@0.25.4': optional: true '@esbuild/openbsd-x64@0.24.2': optional: true - '@esbuild/openbsd-x64@0.25.2': + '@esbuild/openbsd-x64@0.25.4': optional: true '@esbuild/sunos-x64@0.24.2': optional: true - '@esbuild/sunos-x64@0.25.2': + '@esbuild/sunos-x64@0.25.4': optional: true '@esbuild/win32-arm64@0.24.2': optional: true - '@esbuild/win32-arm64@0.25.2': + '@esbuild/win32-arm64@0.25.4': optional: true '@esbuild/win32-ia32@0.24.2': optional: true - '@esbuild/win32-ia32@0.25.2': + '@esbuild/win32-ia32@0.25.4': optional: true '@esbuild/win32-x64@0.24.2': optional: true - '@esbuild/win32-x64@0.25.2': + '@esbuild/win32-x64@0.25.4': optional: true '@eslint-community/eslint-utils@4.5.1(eslint@8.56.0)': @@ -25409,9 +26383,9 @@ snapshots: eslint: 8.56.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.5.1(eslint@9.23.0(jiti@1.21.7))': + '@eslint-community/eslint-utils@4.5.1(eslint@9.23.0(jiti@2.4.2))': dependencies: - eslint: 9.23.0(jiti@1.21.7) + eslint: 9.23.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} @@ -27953,14 +28927,14 @@ snapshots: '@ltd/j-toml@1.38.0': {} - '@lumina-dev/test@0.0.12(eslint@9.23.0(jiti@1.21.7))(typescript@4.9.5)(webpack@5.98.0)': + '@lumina-dev/test@0.0.12(eslint@9.23.0(jiti@2.4.2))(typescript@4.9.5)(webpack@5.98.0)': dependencies: bs58: 5.0.0 cors: 2.8.5 express: 4.21.2 nanoid: 3.3.11 - react-dev-utils: 12.0.1(eslint@9.23.0(jiti@1.21.7))(typescript@4.9.5)(webpack@5.98.0) - zod: 3.24.2 + react-dev-utils: 12.0.1(eslint@9.23.0(jiti@2.4.2))(typescript@4.9.5)(webpack@5.98.0) + zod: 3.24.4 transitivePeerDependencies: - eslint - supports-color @@ -27970,7 +28944,7 @@ snapshots: '@mapbox/node-pre-gyp@1.0.11(encoding@0.1.13)': dependencies: - detect-libc: 2.0.3 + detect-libc: 2.0.4 https-proxy-agent: 5.0.1 make-dir: 3.1.0 node-fetch: 2.7.0(encoding@0.1.13) @@ -27986,7 +28960,7 @@ snapshots: '@mapbox/node-pre-gyp@2.0.0(encoding@0.1.13)': dependencies: consola: 3.4.2 - detect-libc: 2.0.3 + detect-libc: 2.0.4 https-proxy-agent: 7.0.6 node-fetch: 2.7.0(encoding@0.1.13) nopt: 8.1.0 @@ -28254,6 +29228,36 @@ snapshots: - typescript - utf-8-validate + '@mdx-js/mdx@3.1.0(acorn@8.14.1)': + dependencies: + '@types/estree': 1.0.7 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdx': 2.0.13 + collapse-white-space: 2.1.0 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-util-scope: 1.0.0 + estree-walker: 3.0.3 + hast-util-to-jsx-runtime: 2.3.6 + markdown-extensions: 2.0.0 + recma-build-jsx: 1.0.0 + recma-jsx: 1.0.0(acorn@8.14.1) + recma-stringify: 1.0.0 + rehype-recma: 1.0.0 + remark-mdx: 3.1.0 + remark-parse: 11.0.0 + remark-rehype: 11.1.2 + source-map: 0.7.4 + unified: 11.0.5 + unist-util-position-from-estree: 2.0.0 + unist-util-stringify-position: 4.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + transitivePeerDependencies: + - acorn + - supports-color + '@mdx-js/react@3.1.0(@types/react@19.1.0)(react@19.1.0)': dependencies: '@types/mdx': 2.0.13 @@ -28663,6 +29667,13 @@ snapshots: transitivePeerDependencies: - encoding + '@next/bundle-analyzer@15.3.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + webpack-bundle-analyzer: 4.10.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + '@next/env@15.3.2': {} '@next/eslint-plugin-next@14.2.26': @@ -29385,6 +30396,8 @@ snapshots: transitivePeerDependencies: - supports-color + '@orama/orama@3.1.6': {} + '@orbs-network/ton-access@2.3.3(encoding@0.1.13)': dependencies: isomorphic-fetch: 3.0.0(encoding@0.1.13) @@ -29499,7 +30512,7 @@ snapshots: '@pkgr/core@0.2.0': {} - '@pmmmwh/react-refresh-webpack-plugin@0.5.16(react-refresh@0.14.2)(type-fest@4.39.0)(webpack-hot-middleware@2.26.1)(webpack@5.98.0(esbuild@0.25.2))': + '@pmmmwh/react-refresh-webpack-plugin@0.5.16(react-refresh@0.14.2)(type-fest@4.39.0)(webpack-hot-middleware@2.26.1)(webpack@5.98.0(esbuild@0.25.4))': dependencies: ansi-html: 0.0.9 core-js-pure: 3.41.0 @@ -29509,11 +30522,13 @@ snapshots: react-refresh: 0.14.2 schema-utils: 4.3.0 source-map: 0.7.4 - webpack: 5.98.0(esbuild@0.25.2) + webpack: 5.98.0(esbuild@0.25.4) optionalDependencies: type-fest: 4.39.0 webpack-hot-middleware: 2.26.1 + '@polka/url@1.0.0-next.29': {} + '@prisma/instrumentation@5.22.0': dependencies: '@opentelemetry/api': 1.9.0 @@ -29631,9 +30646,9 @@ snapshots: '@pythnetwork/hermes-client@1.4.0(axios@1.8.4)': dependencies: - '@zodios/core': 10.9.6(axios@1.8.4)(zod@3.24.2) + '@zodios/core': 10.9.6(axios@1.8.4)(zod@3.24.4) eventsource: 3.0.6 - zod: 3.24.2 + zod: 3.24.4 transitivePeerDependencies: - axios @@ -29661,8 +30676,29 @@ snapshots: '@radix-ui/number@1.1.0': {} + '@radix-ui/number@1.1.1': {} + '@radix-ui/primitive@1.1.1': {} + '@radix-ui/primitive@1.1.2': {} + + '@radix-ui/react-accordion@1.2.10(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collapsible': 1.1.10(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-collection': 1.1.6(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.0)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.0 + '@types/react-dom': 19.1.1(@types/react@19.1.0) + '@radix-ui/react-arrow@1.1.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -29672,6 +30708,31 @@ snapshots: '@types/react': 19.1.0 '@types/react-dom': 19.1.1(@types/react@19.1.0) + '@radix-ui/react-arrow@1.1.6(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.0 + '@types/react-dom': 19.1.1(@types/react@19.1.0) + + '@radix-ui/react-collapsible@1.1.10(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.0)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.0 + '@types/react-dom': 19.1.1(@types/react@19.1.0) + '@radix-ui/react-collection@1.1.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.0)(react@19.1.0) @@ -29684,24 +30745,76 @@ snapshots: '@types/react': 19.1.0 '@types/react-dom': 19.1.1(@types/react@19.1.0) + '@radix-ui/react-collection@1.1.6(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.2(@types/react@19.1.0)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.0 + '@types/react-dom': 19.1.1(@types/react@19.1.0) + '@radix-ui/react-compose-refs@1.1.1(@types/react@19.1.0)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: '@types/react': 19.1.0 + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.0)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.0 + '@radix-ui/react-context@1.1.1(@types/react@19.1.0)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: '@types/react': 19.1.0 + '@radix-ui/react-context@1.1.2(@types/react@19.1.0)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.0 + + '@radix-ui/react-dialog@1.1.13(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.9(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.6(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-portal': 1.1.8(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.0)(react@19.1.0) + aria-hidden: 1.2.4 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.0)(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.0 + '@types/react-dom': 19.1.1(@types/react@19.1.0) + '@radix-ui/react-direction@1.1.0(@types/react@19.1.0)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: '@types/react': 19.1.0 + '@radix-ui/react-direction@1.1.1(@types/react@19.1.0)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.0 + '@radix-ui/react-dismissable-layer@1.1.5(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.1 @@ -29715,12 +30828,31 @@ snapshots: '@types/react': 19.1.0 '@types/react-dom': 19.1.1(@types/react@19.1.0) + '@radix-ui/react-dismissable-layer@1.1.9(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.0)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.0 + '@types/react-dom': 19.1.1(@types/react@19.1.0) + '@radix-ui/react-focus-guards@1.1.1(@types/react@19.1.0)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: '@types/react': 19.1.0 + '@radix-ui/react-focus-guards@1.1.2(@types/react@19.1.0)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.0 + '@radix-ui/react-focus-scope@1.1.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.0)(react@19.1.0) @@ -29732,6 +30864,17 @@ snapshots: '@types/react': 19.1.0 '@types/react-dom': 19.1.1(@types/react@19.1.0) + '@radix-ui/react-focus-scope@1.1.6(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.0)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.0 + '@types/react-dom': 19.1.1(@types/react@19.1.0) + '@radix-ui/react-id@1.1.0(@types/react@19.1.0)(react@19.1.0)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.1.0)(react@19.1.0) @@ -29739,6 +30882,13 @@ snapshots: optionalDependencies: '@types/react': 19.1.0 + '@radix-ui/react-id@1.1.1(@types/react@19.1.0)(react@19.1.0)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.0)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.0 + '@radix-ui/react-label@2.1.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -29748,6 +30898,51 @@ snapshots: '@types/react': 19.1.0 '@types/react-dom': 19.1.1(@types/react@19.1.0) + '@radix-ui/react-navigation-menu@1.2.12(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collection': 1.1.6(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.9(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-visually-hidden': 1.2.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.0 + '@types/react-dom': 19.1.1(@types/react@19.1.0) + + '@radix-ui/react-popover@1.1.13(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.9(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.6(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-popper': 1.2.6(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.8(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.0)(react@19.1.0) + aria-hidden: 1.2.4 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.0)(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.0 + '@types/react-dom': 19.1.1(@types/react@19.1.0) + '@radix-ui/react-popper@1.2.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@floating-ui/react-dom': 2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -29766,6 +30961,24 @@ snapshots: '@types/react': 19.1.0 '@types/react-dom': 19.1.1(@types/react@19.1.0) + '@radix-ui/react-popper@1.2.6(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@floating-ui/react-dom': 2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-arrow': 1.1.6(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/rect': 1.1.1 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.0 + '@types/react-dom': 19.1.1(@types/react@19.1.0) + '@radix-ui/react-portal@1.1.4(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -29776,6 +30989,16 @@ snapshots: '@types/react': 19.1.0 '@types/react-dom': 19.1.1(@types/react@19.1.0) + '@radix-ui/react-portal@1.1.8(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.0)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.0 + '@types/react-dom': 19.1.1(@types/react@19.1.0) + '@radix-ui/react-presence@1.1.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.1.0)(react@19.1.0) @@ -29786,6 +31009,16 @@ snapshots: '@types/react': 19.1.0 '@types/react-dom': 19.1.1(@types/react@19.1.0) + '@radix-ui/react-presence@1.1.4(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.0)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.0 + '@types/react-dom': 19.1.1(@types/react@19.1.0) + '@radix-ui/react-primitive@2.0.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/react-slot': 1.1.2(@types/react@19.1.0)(react@19.1.0) @@ -29795,6 +31028,49 @@ snapshots: '@types/react': 19.1.0 '@types/react-dom': 19.1.1(@types/react@19.1.0) + '@radix-ui/react-primitive@2.1.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-slot': 1.2.2(@types/react@19.1.0)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.0 + '@types/react-dom': 19.1.1(@types/react@19.1.0) + + '@radix-ui/react-roving-focus@1.1.9(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collection': 1.1.6(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.0)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.0 + '@types/react-dom': 19.1.1(@types/react@19.1.0) + + '@radix-ui/react-scroll-area@1.2.8(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/number': 1.1.1 + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.0)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.0 + '@types/react-dom': 19.1.1(@types/react@19.1.0) + '@radix-ui/react-select@2.1.6(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/number': 1.1.0 @@ -29831,6 +31107,13 @@ snapshots: optionalDependencies: '@types/react': 19.1.0 + '@radix-ui/react-slot@1.2.2(@types/react@19.1.0)(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.0 + '@radix-ui/react-switch@1.1.3(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.1 @@ -29846,6 +31129,22 @@ snapshots: '@types/react': 19.1.0 '@types/react-dom': 19.1.1(@types/react@19.1.0) + '@radix-ui/react-tabs@1.1.11(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.9(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.0)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.0 + '@types/react-dom': 19.1.1(@types/react@19.1.0) + '@radix-ui/react-tooltip@1.1.8(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.1 @@ -29872,6 +31171,12 @@ snapshots: optionalDependencies: '@types/react': 19.1.0 + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.0)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.0 + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.1.0)(react@19.1.0)': dependencies: '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.1.0)(react@19.1.0) @@ -29879,6 +31184,21 @@ snapshots: optionalDependencies: '@types/react': 19.1.0 + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.0)(react@19.1.0)': + dependencies: + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.0)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.0 + + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.0)(react@19.1.0)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.0)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.0 + '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@19.1.0)(react@19.1.0)': dependencies: '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.1.0)(react@19.1.0) @@ -29886,18 +31206,37 @@ snapshots: optionalDependencies: '@types/react': 19.1.0 + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.0)(react@19.1.0)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.0)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.0 + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.1.0)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: '@types/react': 19.1.0 + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.0)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.0 + '@radix-ui/react-use-previous@1.1.0(@types/react@19.1.0)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: '@types/react': 19.1.0 + '@radix-ui/react-use-previous@1.1.1(@types/react@19.1.0)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.0 + '@radix-ui/react-use-rect@1.1.0(@types/react@19.1.0)(react@19.1.0)': dependencies: '@radix-ui/rect': 1.1.0 @@ -29905,6 +31244,13 @@ snapshots: optionalDependencies: '@types/react': 19.1.0 + '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.0)(react@19.1.0)': + dependencies: + '@radix-ui/rect': 1.1.1 + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.0 + '@radix-ui/react-use-size@1.1.0(@types/react@19.1.0)(react@19.1.0)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.1.0)(react@19.1.0) @@ -29912,6 +31258,13 @@ snapshots: optionalDependencies: '@types/react': 19.1.0 + '@radix-ui/react-use-size@1.1.1(@types/react@19.1.0)(react@19.1.0)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.0)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.0 + '@radix-ui/react-visually-hidden@1.1.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -29921,8 +31274,19 @@ snapshots: '@types/react': 19.1.0 '@types/react-dom': 19.1.1(@types/react@19.1.0) + '@radix-ui/react-visually-hidden@1.2.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.0 + '@types/react-dom': 19.1.1(@types/react@19.1.0) + '@radix-ui/rect@1.1.0': {} + '@radix-ui/rect@1.1.1': {} + '@react-aria/autocomplete@3.0.0-beta.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@react-aria/combobox': 3.12.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -31475,6 +32839,13 @@ snapshots: '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 + '@shikijs/core@3.4.0': + dependencies: + '@shikijs/types': 3.4.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 + '@shikijs/engine-javascript@1.29.2': dependencies: '@shikijs/types': 1.29.2 @@ -31487,6 +32858,12 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 4.1.0 + '@shikijs/engine-javascript@3.4.0': + dependencies: + '@shikijs/types': 3.4.0 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 4.3.3 + '@shikijs/engine-oniguruma@1.29.2': dependencies: '@shikijs/types': 1.29.2 @@ -31497,6 +32874,11 @@ snapshots: '@shikijs/types': 3.2.1 '@shikijs/vscode-textmate': 10.0.2 + '@shikijs/engine-oniguruma@3.4.0': + dependencies: + '@shikijs/types': 3.4.0 + '@shikijs/vscode-textmate': 10.0.2 + '@shikijs/langs@1.29.2': dependencies: '@shikijs/types': 1.29.2 @@ -31505,6 +32887,19 @@ snapshots: dependencies: '@shikijs/types': 3.2.1 + '@shikijs/langs@3.4.0': + dependencies: + '@shikijs/types': 3.4.0 + + '@shikijs/rehype@3.4.0': + dependencies: + '@shikijs/types': 3.4.0 + '@types/hast': 3.0.4 + hast-util-to-string: 3.0.1 + shiki: 3.4.0 + unified: 11.0.5 + unist-util-visit: 5.0.0 + '@shikijs/themes@1.29.2': dependencies: '@shikijs/types': 1.29.2 @@ -31513,6 +32908,15 @@ snapshots: dependencies: '@shikijs/types': 3.2.1 + '@shikijs/themes@3.4.0': + dependencies: + '@shikijs/types': 3.4.0 + + '@shikijs/transformers@3.4.0': + dependencies: + '@shikijs/core': 3.4.0 + '@shikijs/types': 3.4.0 + '@shikijs/types@1.29.2': dependencies: '@shikijs/vscode-textmate': 10.0.2 @@ -31523,6 +32927,11 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 + '@shikijs/types@3.4.0': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + '@shikijs/vscode-textmate@10.0.2': {} '@sideway/address@4.1.5': @@ -33688,6 +35097,8 @@ snapshots: - encoding - utf-8-validate + '@standard-schema/spec@1.0.0': {} + '@starknet-io/types-js@0.7.10': {} '@storybook/addon-actions@8.6.12(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3))': @@ -33759,10 +35170,10 @@ snapshots: storybook: 8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3) ts-dedent: 2.2.0 - '@storybook/addon-styling-webpack@1.0.1(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3))(webpack@5.98.0(esbuild@0.25.2))': + '@storybook/addon-styling-webpack@1.0.1(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3))(webpack@5.98.0(esbuild@0.25.4))': dependencies: '@storybook/node-logger': 8.6.12(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3)) - webpack: 5.98.0(esbuild@0.25.2) + webpack: 5.98.0(esbuild@0.25.4) transitivePeerDependencies: - storybook @@ -33789,7 +35200,7 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - '@storybook/builder-webpack5@8.6.12(esbuild@0.25.2)(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3))(typescript@5.8.2)': + '@storybook/builder-webpack5@8.6.12(esbuild@0.25.4)(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3))(typescript@5.8.2)': dependencies: '@storybook/core-webpack': 8.6.12(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3)) '@types/semver': 7.7.0 @@ -33797,23 +35208,23 @@ snapshots: case-sensitive-paths-webpack-plugin: 2.4.0 cjs-module-lexer: 1.4.3 constants-browserify: 1.0.0 - css-loader: 6.11.0(webpack@5.98.0(esbuild@0.25.2)) + css-loader: 6.11.0(webpack@5.98.0(esbuild@0.25.4)) es-module-lexer: 1.6.0 - fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.8.2)(webpack@5.98.0(esbuild@0.25.2)) - html-webpack-plugin: 5.6.3(webpack@5.98.0(esbuild@0.25.2)) + fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.8.2)(webpack@5.98.0(esbuild@0.25.4)) + html-webpack-plugin: 5.6.3(webpack@5.98.0(esbuild@0.25.4)) magic-string: 0.30.17 path-browserify: 1.0.1 process: 0.11.10 semver: 7.7.1 storybook: 8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3) - style-loader: 3.3.4(webpack@5.98.0(esbuild@0.25.2)) - terser-webpack-plugin: 5.3.14(esbuild@0.25.2)(webpack@5.98.0(esbuild@0.25.2)) + style-loader: 3.3.4(webpack@5.98.0(esbuild@0.25.4)) + terser-webpack-plugin: 5.3.14(esbuild@0.25.4)(webpack@5.98.0(esbuild@0.25.4)) ts-dedent: 2.2.0 url: 0.11.4 util: 0.12.5 util-deprecate: 1.0.2 - webpack: 5.98.0(esbuild@0.25.2) - webpack-dev-middleware: 6.1.3(webpack@5.98.0(esbuild@0.25.2)) + webpack: 5.98.0(esbuild@0.25.4) + webpack-dev-middleware: 6.1.3(webpack@5.98.0(esbuild@0.25.4)) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.6.2 optionalDependencies: @@ -33839,8 +35250,8 @@ snapshots: '@storybook/theming': 8.6.12(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3)) better-opn: 3.0.2 browser-assert: 1.2.1 - esbuild: 0.25.2 - esbuild-register: 3.6.0(esbuild@0.25.2) + esbuild: 0.25.4 + esbuild-register: 3.6.0(esbuild@0.25.4) jsdoc-type-pratt-parser: 4.1.0 process: 0.11.10 recast: 0.23.11 @@ -33881,7 +35292,7 @@ snapshots: dependencies: storybook: 8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3) - '@storybook/nextjs@8.6.12(esbuild@0.25.2)(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.1.0-rc.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1)(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3))(type-fest@4.39.0)(typescript@5.8.2)(webpack-hot-middleware@2.26.1)(webpack@5.98.0(esbuild@0.25.2))': + '@storybook/nextjs@8.6.12(esbuild@0.25.4)(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.1.0-rc.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1)(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3))(type-fest@4.39.0)(typescript@5.8.2)(webpack-hot-middleware@2.26.1)(webpack@5.98.0(esbuild@0.25.4))': dependencies: '@babel/core': 7.27.1 '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.27.1) @@ -33896,30 +35307,30 @@ snapshots: '@babel/preset-react': 7.26.3(@babel/core@7.27.1) '@babel/preset-typescript': 7.27.1(@babel/core@7.27.1) '@babel/runtime': 7.27.0 - '@pmmmwh/react-refresh-webpack-plugin': 0.5.16(react-refresh@0.14.2)(type-fest@4.39.0)(webpack-hot-middleware@2.26.1)(webpack@5.98.0(esbuild@0.25.2)) - '@storybook/builder-webpack5': 8.6.12(esbuild@0.25.2)(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3))(typescript@5.8.2) - '@storybook/preset-react-webpack': 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3)))(esbuild@0.25.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3))(typescript@5.8.2) + '@pmmmwh/react-refresh-webpack-plugin': 0.5.16(react-refresh@0.14.2)(type-fest@4.39.0)(webpack-hot-middleware@2.26.1)(webpack@5.98.0(esbuild@0.25.4)) + '@storybook/builder-webpack5': 8.6.12(esbuild@0.25.4)(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3))(typescript@5.8.2) + '@storybook/preset-react-webpack': 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3)))(esbuild@0.25.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3))(typescript@5.8.2) '@storybook/react': 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3))(typescript@5.8.2) '@storybook/test': 8.6.12(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3)) '@types/semver': 7.7.0 - babel-loader: 9.2.1(@babel/core@7.27.1)(webpack@5.98.0(esbuild@0.25.2)) - css-loader: 6.11.0(webpack@5.98.0(esbuild@0.25.2)) + babel-loader: 9.2.1(@babel/core@7.27.1)(webpack@5.98.0(esbuild@0.25.4)) + css-loader: 6.11.0(webpack@5.98.0(esbuild@0.25.4)) find-up: 5.0.0 image-size: 1.2.1 loader-utils: 3.3.1 next: 15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.1.0-rc.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1) - node-polyfill-webpack-plugin: 2.0.1(webpack@5.98.0(esbuild@0.25.2)) + node-polyfill-webpack-plugin: 2.0.1(webpack@5.98.0(esbuild@0.25.4)) pnp-webpack-plugin: 1.7.0(typescript@5.8.2) postcss: 8.5.3 - postcss-loader: 8.1.1(postcss@8.5.3)(typescript@5.8.2)(webpack@5.98.0(esbuild@0.25.2)) + postcss-loader: 8.1.1(postcss@8.5.3)(typescript@5.8.2)(webpack@5.98.0(esbuild@0.25.4)) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) react-refresh: 0.14.2 resolve-url-loader: 5.0.0 - sass-loader: 14.2.1(sass@1.86.1)(webpack@5.98.0(esbuild@0.25.2)) + sass-loader: 14.2.1(sass@1.86.1)(webpack@5.98.0(esbuild@0.25.4)) semver: 7.7.1 storybook: 8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3) - style-loader: 3.3.4(webpack@5.98.0(esbuild@0.25.2)) + style-loader: 3.3.4(webpack@5.98.0(esbuild@0.25.4)) styled-jsx: 5.1.6(@babel/core@7.27.1)(react@19.1.0) ts-dedent: 2.2.0 tsconfig-paths: 4.2.0 @@ -33927,7 +35338,7 @@ snapshots: optionalDependencies: sharp: 0.33.5 typescript: 5.8.2 - webpack: 5.98.0(esbuild@0.25.2) + webpack: 5.98.0(esbuild@0.25.4) transitivePeerDependencies: - '@rspack/core' - '@swc/core' @@ -33950,11 +35361,11 @@ snapshots: dependencies: storybook: 8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3) - '@storybook/preset-react-webpack@8.6.12(@storybook/test@8.6.12(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3)))(esbuild@0.25.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3))(typescript@5.8.2)': + '@storybook/preset-react-webpack@8.6.12(@storybook/test@8.6.12(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3)))(esbuild@0.25.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3))(typescript@5.8.2)': dependencies: '@storybook/core-webpack': 8.6.12(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3)) '@storybook/react': 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3))(typescript@5.8.2) - '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.8.2)(webpack@5.98.0(esbuild@0.25.2)) + '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.8.2)(webpack@5.98.0(esbuild@0.25.4)) '@types/semver': 7.7.0 find-up: 5.0.0 magic-string: 0.30.17 @@ -33965,7 +35376,7 @@ snapshots: semver: 7.7.1 storybook: 8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3) tsconfig-paths: 4.2.0 - webpack: 5.98.0(esbuild@0.25.2) + webpack: 5.98.0(esbuild@0.25.4) optionalDependencies: typescript: 5.8.2 transitivePeerDependencies: @@ -33980,7 +35391,7 @@ snapshots: dependencies: storybook: 8.6.12(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.3) - '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.8.2)(webpack@5.98.0(esbuild@0.25.2))': + '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.8.2)(webpack@5.98.0(esbuild@0.25.4))': dependencies: debug: 4.4.0(supports-color@8.1.1) endent: 2.1.0 @@ -33990,7 +35401,7 @@ snapshots: react-docgen-typescript: 2.2.2(typescript@5.8.2) tslib: 2.8.1 typescript: 5.8.2 - webpack: 5.98.0(esbuild@0.25.2) + webpack: 5.98.0(esbuild@0.25.4) transitivePeerDependencies: - supports-color @@ -34233,7 +35644,7 @@ snapshots: ipfs-unixfs-importer: 9.0.10(encoding@0.1.13) json-bigint: 1.0.0 path-normalize: 6.0.13 - zod: 3.24.2 + zod: 3.24.4 transitivePeerDependencies: - encoding - supports-color @@ -34248,6 +35659,78 @@ snapshots: mini-svg-data-uri: 1.4.4 tailwindcss: 3.4.17(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)) + '@tailwindcss/node@4.1.6': + dependencies: + '@ampproject/remapping': 2.3.0 + enhanced-resolve: 5.18.1 + jiti: 2.4.2 + lightningcss: 1.29.2 + magic-string: 0.30.17 + source-map-js: 1.2.1 + tailwindcss: 4.1.6 + + '@tailwindcss/oxide-android-arm64@4.1.6': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.1.6': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.1.6': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.1.6': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.6': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.1.6': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.1.6': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.1.6': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.1.6': + optional: true + + '@tailwindcss/oxide-wasm32-wasi@4.1.6': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.1.6': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.1.6': + optional: true + + '@tailwindcss/oxide@4.1.6': + dependencies: + detect-libc: 2.0.4 + tar: 7.4.3 + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.1.6 + '@tailwindcss/oxide-darwin-arm64': 4.1.6 + '@tailwindcss/oxide-darwin-x64': 4.1.6 + '@tailwindcss/oxide-freebsd-x64': 4.1.6 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.6 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.6 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.6 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.6 + '@tailwindcss/oxide-linux-x64-musl': 4.1.6 + '@tailwindcss/oxide-wasm32-wasi': 4.1.6 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.6 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.6 + + '@tailwindcss/postcss@4.1.6': + dependencies: + '@alloc/quick-lru': 5.2.0 + '@tailwindcss/node': 4.1.6 + '@tailwindcss/oxide': 4.1.6 + postcss: 8.5.3 + tailwindcss: 4.1.6 + '@tanstack/query-core@5.71.5': {} '@tanstack/react-query@5.71.5(react@19.1.0)': @@ -34455,7 +35938,7 @@ snapshots: dataloader: 2.2.3 symbol.inspect: 1.0.1 teslabot: 1.5.0 - zod: 3.24.2 + zod: 3.24.4 transitivePeerDependencies: - debug @@ -35847,15 +37330,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2)': + '@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2) + '@typescript-eslint/parser': 8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.29.0 - '@typescript-eslint/type-utils': 8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2) - '@typescript-eslint/utils': 8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2) + '@typescript-eslint/type-utils': 8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/utils': 8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/visitor-keys': 8.29.0 - eslint: 9.23.0(jiti@1.21.7) + eslint: 9.23.0(jiti@2.4.2) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -35914,14 +37397,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2)': + '@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: '@typescript-eslint/scope-manager': 8.29.0 '@typescript-eslint/types': 8.29.0 '@typescript-eslint/typescript-estree': 8.29.0(typescript@5.8.2) '@typescript-eslint/visitor-keys': 8.29.0 debug: 4.4.0(supports-color@8.1.1) - eslint: 9.23.0(jiti@1.21.7) + eslint: 9.23.0(jiti@2.4.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color @@ -35994,12 +37477,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2)': + '@typescript-eslint/type-utils@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: '@typescript-eslint/typescript-estree': 8.29.0(typescript@5.8.2) - '@typescript-eslint/utils': 8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2) + '@typescript-eslint/utils': 8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) debug: 4.4.0(supports-color@8.1.1) - eslint: 9.23.0(jiti@1.21.7) + eslint: 9.23.0(jiti@2.4.2) ts-api-utils: 2.1.0(typescript@5.8.2) typescript: 5.8.2 transitivePeerDependencies: @@ -36140,13 +37623,13 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2)': + '@typescript-eslint/utils@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@1.21.7)) + '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@2.4.2)) '@typescript-eslint/scope-manager': 8.29.0 '@typescript-eslint/types': 8.29.0 '@typescript-eslint/typescript-estree': 8.29.0(typescript@5.8.2) - eslint: 9.23.0(jiti@1.21.7) + eslint: 9.23.0(jiti@2.4.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color @@ -37326,6 +38809,11 @@ snapshots: axios: 1.8.4(debug@4.4.0) zod: 3.24.2 + '@zodios/core@10.9.6(axios@1.8.4)(zod@3.24.4)': + dependencies: + axios: 1.8.4(debug@4.4.0) + zod: 3.24.4 + JSONStream@1.3.2: dependencies: jsonparse: 1.3.1 @@ -37375,6 +38863,11 @@ snapshots: typescript: 5.8.2 zod: 3.24.2 + abitype@1.0.8(typescript@5.8.2)(zod@3.24.4): + optionalDependencies: + typescript: 5.8.2 + zod: 3.24.4 + abort-controller@3.0.0: dependencies: event-target-shim: 5.0.1 @@ -37888,6 +39381,8 @@ snapshots: astral-regex@2.0.0: {} + astring@1.9.0: {} + async-eventemitter@0.2.4: dependencies: async: 2.6.4 @@ -38045,12 +39540,12 @@ snapshots: transitivePeerDependencies: - supports-color - babel-loader@9.2.1(@babel/core@7.27.1)(webpack@5.98.0(esbuild@0.25.2)): + babel-loader@9.2.1(@babel/core@7.27.1)(webpack@5.98.0(esbuild@0.25.4)): dependencies: '@babel/core': 7.27.1 find-cache-dir: 4.0.0 schema-utils: 4.3.0 - webpack: 5.98.0(esbuild@0.25.2) + webpack: 5.98.0(esbuild@0.25.4) babel-plugin-istanbul@6.1.1: dependencies: @@ -39047,6 +40542,8 @@ snapshots: code-point-at@1.1.0: {} + collapse-white-space@2.1.0: {} + collect-v8-coverage@1.0.2: {} collection-utils@1.0.1: {} @@ -39129,6 +40626,8 @@ snapshots: compare-versions@6.1.1: {} + compute-scroll-into-view@3.1.1: {} + concat-map@0.0.1: {} concat-stream@1.6.2: @@ -39512,7 +41011,7 @@ snapshots: css-functions-list@3.2.3: {} - css-loader@6.11.0(webpack@5.98.0(esbuild@0.25.2)): + css-loader@6.11.0(webpack@5.98.0(esbuild@0.25.4)): dependencies: icss-utils: 5.1.0(postcss@8.5.3) postcss: 8.5.3 @@ -39523,9 +41022,9 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.7.1 optionalDependencies: - webpack: 5.98.0(esbuild@0.25.2) + webpack: 5.98.0(esbuild@0.25.4) - css-loader@7.1.2(webpack@5.98.0(esbuild@0.25.2)): + css-loader@7.1.2(webpack@5.98.0(esbuild@0.25.4)): dependencies: icss-utils: 5.1.0(postcss@8.5.3) postcss: 8.5.3 @@ -39536,7 +41035,7 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.7.1 optionalDependencies: - webpack: 5.98.0(esbuild@0.25.2) + webpack: 5.98.0(esbuild@0.25.4) css-select@4.3.0: dependencies: @@ -39695,6 +41194,8 @@ snapshots: dependencies: mimic-fn: 3.1.0 + debounce@1.2.1: {} + debug@2.6.9: dependencies: ms: 2.0.0 @@ -39852,6 +41353,8 @@ snapshots: detect-libc@2.0.3: {} + detect-libc@2.0.4: {} + detect-newline@3.1.0: {} detect-node-es@1.1.0: {} @@ -40373,6 +41876,20 @@ snapshots: d: 1.0.2 ext: 1.7.0 + esast-util-from-estree@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + unist-util-position-from-estree: 2.0.0 + + esast-util-from-js@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + acorn: 8.14.1 + esast-util-from-estree: 2.0.0 + vfile-message: 4.0.2 + esbuild-android-64@0.14.47: optional: true @@ -40421,10 +41938,10 @@ snapshots: esbuild-openbsd-64@0.14.47: optional: true - esbuild-register@3.6.0(esbuild@0.25.2): + esbuild-register@3.6.0(esbuild@0.25.4): dependencies: debug: 4.4.0(supports-color@8.1.1) - esbuild: 0.25.2 + esbuild: 0.25.4 transitivePeerDependencies: - supports-color @@ -40491,33 +42008,33 @@ snapshots: '@esbuild/win32-ia32': 0.24.2 '@esbuild/win32-x64': 0.24.2 - esbuild@0.25.2: - optionalDependencies: - '@esbuild/aix-ppc64': 0.25.2 - '@esbuild/android-arm': 0.25.2 - '@esbuild/android-arm64': 0.25.2 - '@esbuild/android-x64': 0.25.2 - '@esbuild/darwin-arm64': 0.25.2 - '@esbuild/darwin-x64': 0.25.2 - '@esbuild/freebsd-arm64': 0.25.2 - '@esbuild/freebsd-x64': 0.25.2 - '@esbuild/linux-arm': 0.25.2 - '@esbuild/linux-arm64': 0.25.2 - '@esbuild/linux-ia32': 0.25.2 - '@esbuild/linux-loong64': 0.25.2 - '@esbuild/linux-mips64el': 0.25.2 - '@esbuild/linux-ppc64': 0.25.2 - '@esbuild/linux-riscv64': 0.25.2 - '@esbuild/linux-s390x': 0.25.2 - '@esbuild/linux-x64': 0.25.2 - '@esbuild/netbsd-arm64': 0.25.2 - '@esbuild/netbsd-x64': 0.25.2 - '@esbuild/openbsd-arm64': 0.25.2 - '@esbuild/openbsd-x64': 0.25.2 - '@esbuild/sunos-x64': 0.25.2 - '@esbuild/win32-arm64': 0.25.2 - '@esbuild/win32-ia32': 0.25.2 - '@esbuild/win32-x64': 0.25.2 + esbuild@0.25.4: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.4 + '@esbuild/android-arm': 0.25.4 + '@esbuild/android-arm64': 0.25.4 + '@esbuild/android-x64': 0.25.4 + '@esbuild/darwin-arm64': 0.25.4 + '@esbuild/darwin-x64': 0.25.4 + '@esbuild/freebsd-arm64': 0.25.4 + '@esbuild/freebsd-x64': 0.25.4 + '@esbuild/linux-arm': 0.25.4 + '@esbuild/linux-arm64': 0.25.4 + '@esbuild/linux-ia32': 0.25.4 + '@esbuild/linux-loong64': 0.25.4 + '@esbuild/linux-mips64el': 0.25.4 + '@esbuild/linux-ppc64': 0.25.4 + '@esbuild/linux-riscv64': 0.25.4 + '@esbuild/linux-s390x': 0.25.4 + '@esbuild/linux-x64': 0.25.4 + '@esbuild/netbsd-arm64': 0.25.4 + '@esbuild/netbsd-x64': 0.25.4 + '@esbuild/openbsd-arm64': 0.25.4 + '@esbuild/openbsd-x64': 0.25.4 + '@esbuild/sunos-x64': 0.25.4 + '@esbuild/win32-arm64': 0.25.4 + '@esbuild/win32-ia32': 0.25.4 + '@esbuild/win32-x64': 0.25.4 escalade@3.2.0: {} @@ -40529,6 +42046,8 @@ snapshots: escape-string-regexp@4.0.0: {} + escape-string-regexp@5.0.0: {} + escodegen@2.1.0: dependencies: esprima: 4.0.1 @@ -40537,14 +42056,14 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-compat-utils@0.5.1(eslint@9.23.0(jiti@1.21.7)): + eslint-compat-utils@0.5.1(eslint@9.23.0(jiti@2.4.2)): dependencies: - eslint: 9.23.0(jiti@1.21.7) + eslint: 9.23.0(jiti@2.4.2) semver: 7.7.1 - eslint-compat-utils@0.6.4(eslint@9.23.0(jiti@1.21.7)): + eslint-compat-utils@0.6.4(eslint@9.23.0(jiti@2.4.2)): dependencies: - eslint: 9.23.0(jiti@1.21.7) + eslint: 9.23.0(jiti@2.4.2) semver: 7.7.1 eslint-config-next@14.2.26(eslint@8.56.0)(typescript@5.8.2): @@ -40567,18 +42086,18 @@ snapshots: - eslint-plugin-import-x - supports-color - eslint-config-prettier@10.1.1(eslint@9.23.0(jiti@1.21.7)): + eslint-config-prettier@10.1.1(eslint@9.23.0(jiti@2.4.2)): dependencies: - eslint: 9.23.0(jiti@1.21.7) + eslint: 9.23.0(jiti@2.4.2) eslint-config-prettier@8.10.0(eslint@8.56.0): dependencies: eslint: 8.56.0 - eslint-config-turbo@2.4.4(eslint@9.23.0(jiti@1.21.7))(turbo@2.4.4): + eslint-config-turbo@2.4.4(eslint@9.23.0(jiti@2.4.2))(turbo@2.4.4): dependencies: - eslint: 9.23.0(jiti@1.21.7) - eslint-plugin-turbo: 2.4.4(eslint@9.23.0(jiti@1.21.7))(turbo@2.4.4) + eslint: 9.23.0(jiti@2.4.2) + eslint-plugin-turbo: 2.4.4(eslint@9.23.0(jiti@2.4.2))(turbo@2.4.4) turbo: 2.4.4 eslint-import-resolver-node@0.3.9: @@ -40604,9 +42123,9 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-json-compat-utils@0.2.1(eslint@9.23.0(jiti@1.21.7))(jsonc-eslint-parser@2.4.0): + eslint-json-compat-utils@0.2.1(eslint@9.23.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0): dependencies: - eslint: 9.23.0(jiti@1.21.7) + eslint: 9.23.0(jiti@2.4.2) esquery: 1.6.0 jsonc-eslint-parser: 2.4.0 @@ -40621,22 +42140,22 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint@9.23.0(jiti@1.21.7)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint@9.23.0(jiti@2.4.2)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2) - eslint: 9.23.0(jiti@1.21.7) + '@typescript-eslint/parser': 8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.23.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-es-x@7.8.0(eslint@9.23.0(jiti@1.21.7)): + eslint-plugin-es-x@7.8.0(eslint@9.23.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@1.21.7)) + '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 - eslint: 9.23.0(jiti@1.21.7) - eslint-compat-utils: 0.5.1(eslint@9.23.0(jiti@1.21.7)) + eslint: 9.23.0(jiti@2.4.2) + eslint-compat-utils: 0.5.1(eslint@9.23.0(jiti@2.4.2)) eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.8.2))(eslint-import-resolver-typescript@3.10.0)(eslint@8.56.0): dependencies: @@ -40667,7 +42186,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7)): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -40676,9 +42195,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.23.0(jiti@1.21.7) + eslint: 9.23.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint@9.23.0(jiti@1.21.7)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint@9.23.0(jiti@2.4.2)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -40690,48 +42209,48 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2) + '@typescript-eslint/parser': 8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest-dom@5.5.0(@testing-library/dom@10.4.0)(eslint@9.23.0(jiti@1.21.7)): + eslint-plugin-jest-dom@5.5.0(@testing-library/dom@10.4.0)(eslint@9.23.0(jiti@2.4.2)): dependencies: '@babel/runtime': 7.27.0 - eslint: 9.23.0(jiti@1.21.7) + eslint: 9.23.0(jiti@2.4.2) requireindex: 1.2.0 optionalDependencies: '@testing-library/dom': 10.4.0 - eslint-plugin-jest@28.11.0(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@types/node@18.19.86)(typescript@5.8.2)))(typescript@5.8.2): + eslint-plugin-jest@28.11.0(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@types/node@18.19.86)(typescript@5.8.2)))(typescript@5.8.2): dependencies: - '@typescript-eslint/utils': 8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2) - eslint: 9.23.0(jiti@1.21.7) + '@typescript-eslint/utils': 8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.23.0(jiti@2.4.2) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2) + '@typescript-eslint/eslint-plugin': 8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) jest: 29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@types/node@18.19.86)(typescript@5.8.2)) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jest@28.11.0(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(typescript@5.8.2): + eslint-plugin-jest@28.11.0(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(typescript@5.8.2): dependencies: - '@typescript-eslint/utils': 8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2) - eslint: 9.23.0(jiti@1.21.7) + '@typescript-eslint/utils': 8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.23.0(jiti@2.4.2) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2) + '@typescript-eslint/eslint-plugin': 8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) jest: 29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jsonc@2.20.0(eslint@9.23.0(jiti@1.21.7)): + eslint-plugin-jsonc@2.20.0(eslint@9.23.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@1.21.7)) - eslint: 9.23.0(jiti@1.21.7) - eslint-compat-utils: 0.6.4(eslint@9.23.0(jiti@1.21.7)) - eslint-json-compat-utils: 0.2.1(eslint@9.23.0(jiti@1.21.7))(jsonc-eslint-parser@2.4.0) + '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@2.4.2)) + eslint: 9.23.0(jiti@2.4.2) + eslint-compat-utils: 0.6.4(eslint@9.23.0(jiti@2.4.2)) + eslint-json-compat-utils: 0.2.1(eslint@9.23.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0) espree: 10.3.0 graphemer: 1.4.0 jsonc-eslint-parser: 2.4.0 @@ -40759,7 +42278,7 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-jsx-a11y@6.10.2(eslint@9.23.0(jiti@1.21.7)): + eslint-plugin-jsx-a11y@6.10.2(eslint@9.23.0(jiti@2.4.2)): dependencies: aria-query: 5.3.2 array-includes: 3.1.8 @@ -40769,7 +42288,7 @@ snapshots: axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 9.23.0(jiti@1.21.7) + eslint: 9.23.0(jiti@2.4.2) hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -40778,12 +42297,12 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-n@17.17.0(eslint@9.23.0(jiti@1.21.7)): + eslint-plugin-n@17.17.0(eslint@9.23.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@1.21.7)) + '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@2.4.2)) enhanced-resolve: 5.18.1 - eslint: 9.23.0(jiti@1.21.7) - eslint-plugin-es-x: 7.8.0(eslint@9.23.0(jiti@1.21.7)) + eslint: 9.23.0(jiti@2.4.2) + eslint-plugin-es-x: 7.8.0(eslint@9.23.0(jiti@2.4.2)) get-tsconfig: 4.10.0 globals: 15.15.0 ignore: 5.3.2 @@ -40794,9 +42313,9 @@ snapshots: dependencies: eslint: 8.56.0 - eslint-plugin-react-hooks@5.2.0(eslint@9.23.0(jiti@1.21.7)): + eslint-plugin-react-hooks@5.2.0(eslint@9.23.0(jiti@2.4.2)): dependencies: - eslint: 9.23.0(jiti@1.21.7) + eslint: 9.23.0(jiti@2.4.2) eslint-plugin-react@7.37.4(eslint@8.56.0): dependencies: @@ -40820,7 +42339,7 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-react@7.37.4(eslint@9.23.0(jiti@1.21.7)): + eslint-plugin-react@7.37.4(eslint@9.23.0(jiti@2.4.2)): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -40828,7 +42347,7 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.1 - eslint: 9.23.0(jiti@1.21.7) + eslint: 9.23.0(jiti@2.4.2) estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -40842,11 +42361,11 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-storybook@0.11.6(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2): + eslint-plugin-storybook@0.11.6(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2): dependencies: '@storybook/csf': 0.1.13 - '@typescript-eslint/utils': 8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2) - eslint: 9.23.0(jiti@1.21.7) + '@typescript-eslint/utils': 8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.23.0(jiti@2.4.2) ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color @@ -40864,11 +42383,11 @@ snapshots: postcss: 8.5.3 tailwindcss: 3.4.17(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)) - eslint-plugin-testing-library@7.1.1(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2): + eslint-plugin-testing-library@7.1.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2): dependencies: '@typescript-eslint/scope-manager': 8.29.0 - '@typescript-eslint/utils': 8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2) - eslint: 9.23.0(jiti@1.21.7) + '@typescript-eslint/utils': 8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.23.0(jiti@2.4.2) transitivePeerDependencies: - supports-color - typescript @@ -40878,20 +42397,20 @@ snapshots: '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - eslint-plugin-turbo@2.4.4(eslint@9.23.0(jiti@1.21.7))(turbo@2.4.4): + eslint-plugin-turbo@2.4.4(eslint@9.23.0(jiti@2.4.2))(turbo@2.4.4): dependencies: dotenv: 16.0.3 - eslint: 9.23.0(jiti@1.21.7) + eslint: 9.23.0(jiti@2.4.2) turbo: 2.4.4 - eslint-plugin-unicorn@57.0.0(eslint@9.23.0(jiti@1.21.7)): + eslint-plugin-unicorn@57.0.0(eslint@9.23.0(jiti@2.4.2)): dependencies: '@babel/helper-validator-identifier': 7.25.9 - '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@1.21.7)) + '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@2.4.2)) ci-info: 4.2.0 clean-regexp: 1.0.0 core-js-compat: 3.41.0 - eslint: 9.23.0(jiti@1.21.7) + eslint: 9.23.0(jiti@2.4.2) esquery: 1.6.0 globals: 15.15.0 indent-string: 5.0.0 @@ -40966,9 +42485,9 @@ snapshots: transitivePeerDependencies: - supports-color - eslint@9.23.0(jiti@1.21.7): + eslint@9.23.0(jiti@2.4.2): dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@1.21.7)) + '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.19.2 '@eslint/config-helpers': 0.2.1 @@ -41004,7 +42523,7 @@ snapshots: natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: - jiti: 1.21.7 + jiti: 2.4.2 transitivePeerDependencies: - supports-color @@ -41041,8 +42560,39 @@ snapshots: estraverse@5.3.0: {} + estree-util-attach-comments@3.0.0: + dependencies: + '@types/estree': 1.0.7 + + estree-util-build-jsx@3.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-walker: 3.0.3 + estree-util-is-identifier-name@3.0.0: {} + estree-util-scope@1.0.0: + dependencies: + '@types/estree': 1.0.7 + devlop: 1.1.0 + + estree-util-to-js@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + astring: 1.9.0 + source-map: 0.7.4 + + estree-util-value-to-estree@3.4.0: + dependencies: + '@types/estree': 1.0.7 + + estree-util-visit@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/unist': 3.0.3 + estree-walker@2.0.2: {} estree-walker@3.0.3: @@ -41694,6 +43244,10 @@ snapshots: dependencies: type: 2.7.3 + extend-shallow@2.0.1: + dependencies: + is-extendable: 0.1.1 + extend@3.0.2: {} extension-port-stream@3.0.0: @@ -41970,7 +43524,7 @@ snapshots: forever-agent@0.6.1: {} - fork-ts-checker-webpack-plugin@6.5.3(eslint@9.23.0(jiti@1.21.7))(typescript@4.9.5)(webpack@5.98.0): + fork-ts-checker-webpack-plugin@6.5.3(eslint@9.23.0(jiti@2.4.2))(typescript@4.9.5)(webpack@5.98.0): dependencies: '@babel/code-frame': 7.26.2 '@types/json-schema': 7.0.15 @@ -41988,9 +43542,9 @@ snapshots: typescript: 4.9.5 webpack: 5.98.0 optionalDependencies: - eslint: 9.23.0(jiti@1.21.7) + eslint: 9.23.0(jiti@2.4.2) - fork-ts-checker-webpack-plugin@8.0.0(typescript@5.8.2)(webpack@5.98.0(esbuild@0.25.2)): + fork-ts-checker-webpack-plugin@8.0.0(typescript@5.8.2)(webpack@5.98.0(esbuild@0.25.4)): dependencies: '@babel/code-frame': 7.26.2 chalk: 4.1.2 @@ -42005,7 +43559,7 @@ snapshots: semver: 7.7.1 tapable: 2.2.1 typescript: 5.8.2 - webpack: 5.98.0(esbuild@0.25.2) + webpack: 5.98.0(esbuild@0.25.4) form-data-encoder@1.7.1: {} @@ -42231,6 +43785,84 @@ snapshots: - encoding - supports-color + fumadocs-core@15.3.0(@types/react@19.1.0)(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + dependencies: + '@formatjs/intl-localematcher': 0.6.1 + '@orama/orama': 3.1.6 + '@shikijs/rehype': 3.4.0 + '@shikijs/transformers': 3.4.0 + github-slugger: 2.0.0 + hast-util-to-estree: 3.1.3 + hast-util-to-jsx-runtime: 2.3.6 + image-size: 2.0.2 + negotiator: 1.0.0 + react-remove-scroll: 2.6.3(@types/react@19.1.0)(react@19.1.0) + remark: 15.0.1 + remark-gfm: 4.0.1 + scroll-into-view-if-needed: 3.1.0 + shiki: 3.4.0 + unist-util-visit: 5.0.0 + optionalDependencies: + next: 15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.1.0-rc.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - '@types/react' + - supports-color + + fumadocs-mdx@11.6.3(acorn@8.14.1)(fumadocs-core@15.3.0(@types/react@19.1.0)(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1)): + dependencies: + '@mdx-js/mdx': 3.1.0(acorn@8.14.1) + '@standard-schema/spec': 1.0.0 + chokidar: 4.0.3 + cross-spawn: 7.0.6 + esbuild: 0.25.4 + estree-util-value-to-estree: 3.4.0 + fast-glob: 3.3.3 + fumadocs-core: 15.3.0(@types/react@19.1.0)(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + gray-matter: 4.0.3 + js-yaml: 4.1.0 + lru-cache: 11.1.0 + next: 15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.1.0-rc.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1) + picocolors: 1.1.1 + unist-util-visit: 5.0.0 + zod: 3.24.4 + transitivePeerDependencies: + - acorn + - supports-color + + fumadocs-ui@15.3.0(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tailwindcss@4.1.6): + dependencies: + '@radix-ui/react-accordion': 1.2.10(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-collapsible': 1.1.10(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-dialog': 1.1.13(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-navigation-menu': 1.2.12(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-popover': 1.1.13(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-scroll-area': 1.2.8(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.2(@types/react@19.1.0)(react@19.1.0) + '@radix-ui/react-tabs': 1.1.11(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + class-variance-authority: 0.7.1 + fumadocs-core: 15.3.0(@types/react@19.1.0)(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + lodash.merge: 4.6.2 + next: 15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.1.0-rc.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1) + next-themes: 0.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + postcss-selector-parser: 7.1.0 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-medium-image-zoom: 5.2.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.0)(react@19.1.0) + tailwind-merge: 3.3.0 + optionalDependencies: + tailwindcss: 4.1.6 + transitivePeerDependencies: + - '@oramacloud/client' + - '@types/react' + - '@types/react-dom' + - algoliasearch + - supports-color + function-bind@1.1.2: {} function.prototype.name@1.1.8: @@ -42350,6 +43982,8 @@ snapshots: github-from-package@0.0.0: {} + github-slugger@2.0.0: {} + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -42560,6 +44194,13 @@ snapshots: graphql@16.10.0: {} + gray-matter@4.0.3: + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + growl@1.10.5: {} gsap@3.12.7: {} @@ -42703,6 +44344,27 @@ snapshots: dependencies: function-bind: 1.1.2 + hast-util-to-estree@3.1.3: + dependencies: + '@types/estree': 1.0.7 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-attach-comments: 3.0.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 7.0.0 + space-separated-tokens: 2.0.2 + style-to-js: 1.1.16 + unist-util-position: 5.0.0 + zwitch: 2.0.4 + transitivePeerDependencies: + - supports-color + hast-util-to-html@9.0.5: dependencies: '@types/hast': 3.0.4 @@ -42737,6 +44399,10 @@ snapshots: transitivePeerDependencies: - supports-color + hast-util-to-string@3.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-whitespace@3.0.0: dependencies: '@types/hast': 3.0.4 @@ -42819,7 +44485,7 @@ snapshots: html-void-elements@3.0.0: {} - html-webpack-plugin@5.6.3(webpack@5.98.0(esbuild@0.25.2)): + html-webpack-plugin@5.6.3(webpack@5.98.0(esbuild@0.25.4)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -42827,7 +44493,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.98.0(esbuild@0.25.2) + webpack: 5.98.0(esbuild@0.25.4) htmlparser2@6.1.0: dependencies: @@ -42962,6 +44628,8 @@ snapshots: dependencies: queue: 6.0.2 + image-size@2.0.2: {} + immediate@3.3.0: {} immer@9.0.21: {} @@ -43196,6 +44864,8 @@ snapshots: is-docker@2.2.1: {} + is-extendable@0.1.1: {} + is-extglob@2.1.1: {} is-finalizationregistry@1.1.1: @@ -44344,6 +46014,8 @@ snapshots: jiti@1.21.7: {} + jiti@2.4.2: {} + jito-ts@3.0.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10): dependencies: '@grpc/grpc-js': 1.13.2 @@ -44842,6 +46514,51 @@ snapshots: transitivePeerDependencies: - supports-color + lightningcss-darwin-arm64@1.29.2: + optional: true + + lightningcss-darwin-x64@1.29.2: + optional: true + + lightningcss-freebsd-x64@1.29.2: + optional: true + + lightningcss-linux-arm-gnueabihf@1.29.2: + optional: true + + lightningcss-linux-arm64-gnu@1.29.2: + optional: true + + lightningcss-linux-arm64-musl@1.29.2: + optional: true + + lightningcss-linux-x64-gnu@1.29.2: + optional: true + + lightningcss-linux-x64-musl@1.29.2: + optional: true + + lightningcss-win32-arm64-msvc@1.29.2: + optional: true + + lightningcss-win32-x64-msvc@1.29.2: + optional: true + + lightningcss@1.29.2: + dependencies: + detect-libc: 2.0.4 + optionalDependencies: + lightningcss-darwin-arm64: 1.29.2 + lightningcss-darwin-x64: 1.29.2 + lightningcss-freebsd-x64: 1.29.2 + lightningcss-linux-arm-gnueabihf: 1.29.2 + lightningcss-linux-arm64-gnu: 1.29.2 + lightningcss-linux-arm64-musl: 1.29.2 + lightningcss-linux-x64-gnu: 1.29.2 + lightningcss-linux-x64-musl: 1.29.2 + lightningcss-win32-arm64-msvc: 1.29.2 + lightningcss-win32-x64-msvc: 1.29.2 + lightweight-charts@5.0.5: dependencies: fancy-canvas: 2.1.0 @@ -45000,6 +46717,8 @@ snapshots: lru-cache@10.4.3: {} + lru-cache@11.1.0: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -45052,6 +46771,8 @@ snapshots: map-or-similar@1.5.0: {} + markdown-extensions@2.0.0: {} + markdown-it@14.1.0: dependencies: argparse: 2.0.1 @@ -45061,6 +46782,8 @@ snapshots: punycode.js: 2.3.1 uc.micro: 2.1.0 + markdown-table@3.0.4: {} + marked@4.3.0: {} marky@1.2.5: {} @@ -45075,6 +46798,13 @@ snapshots: inherits: 2.0.4 safe-buffer: 5.2.1 + mdast-util-find-and-replace@3.0.2: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + mdast-util-from-markdown@2.0.2: dependencies: '@types/mdast': 4.0.4 @@ -45092,6 +46822,63 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-gfm-autolink-literal@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.2 + micromark-util-character: 2.1.1 + + mdast-util-gfm-footnote@2.1.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + micromark-util-normalize-identifier: 2.0.1 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-table@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm@3.1.0: + dependencies: + mdast-util-from-markdown: 2.0.2 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.1.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + mdast-util-mdx-expression@2.0.1: dependencies: '@types/estree-jsx': 1.0.5 @@ -45120,6 +46907,16 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-mdx@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.2 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + mdast-util-mdxjs-esm@2.0.1: dependencies: '@types/estree-jsx': 1.0.5 @@ -45423,6 +47220,115 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 + micromark-extension-gfm-autolink-literal@2.1.0: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-strikethrough@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-table@2.1.1: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.2 + + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.1 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-mdx-expression@3.0.1: + dependencies: + '@types/estree': 1.0.7 + devlop: 1.1.0 + micromark-factory-mdx-expression: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-mdx-jsx@3.0.2: + dependencies: + '@types/estree': 1.0.7 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + micromark-factory-mdx-expression: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + vfile-message: 4.0.2 + + micromark-extension-mdx-md@2.0.0: + dependencies: + micromark-util-types: 2.0.2 + + micromark-extension-mdxjs-esm@3.0.0: + dependencies: + '@types/estree': 1.0.7 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.2 + + micromark-extension-mdxjs@3.0.0: + dependencies: + acorn: 8.14.1 + acorn-jsx: 5.3.2(acorn@8.14.1) + micromark-extension-mdx-expression: 3.0.1 + micromark-extension-mdx-jsx: 3.0.2 + micromark-extension-mdx-md: 2.0.0 + micromark-extension-mdxjs-esm: 3.0.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 + micromark-factory-destination@2.0.1: dependencies: micromark-util-character: 2.1.1 @@ -45436,6 +47342,18 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 + micromark-factory-mdx-expression@2.0.3: + dependencies: + '@types/estree': 1.0.7 + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.2 + micromark-factory-space@2.0.1: dependencies: micromark-util-character: 2.1.1 @@ -45488,6 +47406,16 @@ snapshots: micromark-util-encode@2.0.1: {} + micromark-util-events-to-acorn@2.0.3: + dependencies: + '@types/estree': 1.0.7 + '@types/unist': 3.0.3 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + vfile-message: 4.0.2 + micromark-util-html-tag-name@2.0.1: {} micromark-util-normalize-identifier@2.0.1: @@ -45807,6 +47735,8 @@ snapshots: mri@1.2.0: {} + mrmime@2.0.1: {} + ms@2.0.0: {} ms@2.1.1: {} @@ -45929,6 +47859,8 @@ snapshots: negotiator@0.6.3: {} + negotiator@1.0.0: {} + neo-async@2.6.2: {} neodoc@2.0.2: @@ -46087,7 +48019,7 @@ snapshots: node-mock-http@1.0.0: {} - node-polyfill-webpack-plugin@2.0.1(webpack@5.98.0(esbuild@0.25.2)): + node-polyfill-webpack-plugin@2.0.1(webpack@5.98.0(esbuild@0.25.4)): dependencies: assert: 2.1.0 browserify-zlib: 0.2.0 @@ -46114,7 +48046,7 @@ snapshots: url: 0.11.4 util: 0.12.5 vm-browserify: 1.1.2 - webpack: 5.98.0(esbuild@0.25.2) + webpack: 5.98.0(esbuild@0.25.4) node-releases@2.0.19: {} @@ -46185,7 +48117,7 @@ snapshots: optionalDependencies: next: 15.3.2(@babel/core@7.26.10)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1) - nuqs@2.4.1(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.1.0-rc.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(react@19.1.0): + nuqs@2.4.1(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(react@19.1.0): dependencies: mitt: 3.0.1 react: 19.1.0 @@ -46301,6 +48233,8 @@ snapshots: dependencies: mimic-fn: 2.1.0 + oniguruma-parser@0.12.1: {} + oniguruma-parser@0.5.4: {} oniguruma-to-es@2.3.0: @@ -46316,6 +48250,12 @@ snapshots: regex: 6.0.1 regex-recursion: 6.0.2 + oniguruma-to-es@4.3.3: + dependencies: + oniguruma-parser: 0.12.1 + regex: 6.0.1 + regex-recursion: 6.0.2 + open@7.4.2: dependencies: is-docker: 2.2.1 @@ -46333,7 +48273,7 @@ snapshots: dependencies: '@apidevtools/swagger-parser': 10.1.1(openapi-types@12.1.3) '@liuli-util/fs-extra': 0.1.0 - '@zodios/core': 10.9.6(axios@1.8.4)(zod@3.24.2) + '@zodios/core': 10.9.6(axios@1.8.4)(zod@3.24.4) axios: 1.8.4(debug@4.4.0) cac: 6.7.14 handlebars: 4.7.8 @@ -46344,7 +48284,7 @@ snapshots: tanu: 0.1.13 ts-pattern: 5.7.0 whence: 2.0.2 - zod: 3.24.2 + zod: 3.24.4 transitivePeerDependencies: - debug - react @@ -46355,6 +48295,8 @@ snapshots: dependencies: yaml: 2.7.1 + opener@1.5.2: {} + optimism@0.18.1: dependencies: '@wry/caches': 1.0.1 @@ -46441,6 +48383,20 @@ snapshots: transitivePeerDependencies: - zod + ox@0.6.9(typescript@5.8.2)(zod@3.24.4): + dependencies: + '@adraffy/ens-normalize': 1.11.0 + '@noble/curves': 1.8.1 + '@noble/hashes': 1.7.1 + '@scure/bip32': 1.6.2 + '@scure/bip39': 1.5.4 + abitype: 1.0.8(typescript@5.8.2)(zod@3.24.4) + eventemitter3: 5.0.1 + optionalDependencies: + typescript: 5.8.2 + transitivePeerDependencies: + - zod + p-cancelable@2.1.1: {} p-cancelable@3.0.0: {} @@ -46851,14 +48807,14 @@ snapshots: postcss: 8.5.3 ts-node: 10.9.2(@types/node@22.14.0)(typescript@5.8.2) - postcss-loader@8.1.1(postcss@8.5.3)(typescript@5.8.2)(webpack@5.98.0(esbuild@0.25.2)): + postcss-loader@8.1.1(postcss@8.5.3)(typescript@5.8.2)(webpack@5.98.0(esbuild@0.25.4)): dependencies: cosmiconfig: 9.0.0(typescript@5.8.2) jiti: 1.21.7 postcss: 8.5.3 semver: 7.7.1 optionalDependencies: - webpack: 5.98.0(esbuild@0.25.2) + webpack: 5.98.0(esbuild@0.25.4) transitivePeerDependencies: - typescript @@ -47106,7 +49062,7 @@ snapshots: prebuild-install@7.1.3: dependencies: - detect-libc: 2.0.3 + detect-libc: 2.0.4 expand-template: 2.0.3 github-from-package: 0.0.0 minimist: 1.2.8 @@ -47566,7 +49522,7 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - react-dev-utils@12.0.1(eslint@9.23.0(jiti@1.21.7))(typescript@4.9.5)(webpack@5.98.0): + react-dev-utils@12.0.1(eslint@9.23.0(jiti@2.4.2))(typescript@4.9.5)(webpack@5.98.0): dependencies: '@babel/code-frame': 7.26.2 address: 1.2.2 @@ -47577,7 +49533,7 @@ snapshots: escape-string-regexp: 4.0.0 filesize: 8.0.7 find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.23.0(jiti@1.21.7))(typescript@4.9.5)(webpack@5.98.0) + fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.23.0(jiti@2.4.2))(typescript@4.9.5)(webpack@5.98.0) global-modules: 2.0.0 globby: 11.1.0 gzip-size: 6.0.0 @@ -47667,6 +49623,11 @@ snapshots: transitivePeerDependencies: - supports-color + react-medium-image-zoom@5.2.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + dependencies: + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-modal@3.16.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: exenv: 1.2.2 @@ -48006,6 +49967,36 @@ snapshots: dependencies: resolve: 1.22.10 + recma-build-jsx@1.0.0: + dependencies: + '@types/estree': 1.0.7 + estree-util-build-jsx: 3.0.1 + vfile: 6.0.3 + + recma-jsx@1.0.0(acorn@8.14.1): + dependencies: + acorn-jsx: 5.3.2(acorn@8.14.1) + estree-util-to-js: 2.0.0 + recma-parse: 1.0.0 + recma-stringify: 1.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - acorn + + recma-parse@1.0.0: + dependencies: + '@types/estree': 1.0.7 + esast-util-from-js: 2.0.1 + unified: 11.0.5 + vfile: 6.0.3 + + recma-stringify@1.0.0: + dependencies: + '@types/estree': 1.0.7 + estree-util-to-js: 2.0.0 + unified: 11.0.5 + vfile: 6.0.3 + recursive-readdir@2.2.3: dependencies: minimatch: 3.1.2 @@ -48107,8 +50098,34 @@ snapshots: '@types/react': 19.1.0 react: 19.1.0 + rehype-recma@1.0.0: + dependencies: + '@types/estree': 1.0.7 + '@types/hast': 3.0.4 + hast-util-to-estree: 3.1.3 + transitivePeerDependencies: + - supports-color + relateurl@0.2.7: {} + remark-gfm@4.0.1: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.1.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-mdx@3.1.0: + dependencies: + mdast-util-mdx: 3.0.0 + micromark-extension-mdxjs: 3.0.0 + transitivePeerDependencies: + - supports-color + remark-parse@11.0.0: dependencies: '@types/mdast': 4.0.4 @@ -48126,6 +50143,21 @@ snapshots: unified: 11.0.5 vfile: 6.0.3 + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.2 + unified: 11.0.5 + + remark@15.0.1: + dependencies: + '@types/mdast': 4.0.4 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + renderkid@3.0.0: dependencies: css-select: 4.3.0 @@ -48409,19 +50441,19 @@ snapshots: '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) eventemitter3: 4.0.7 - sass-loader@14.2.1(sass@1.86.1)(webpack@5.98.0(esbuild@0.25.2)): + sass-loader@14.2.1(sass@1.86.1)(webpack@5.98.0(esbuild@0.25.4)): dependencies: neo-async: 2.6.2 optionalDependencies: sass: 1.86.1 - webpack: 5.98.0(esbuild@0.25.2) + webpack: 5.98.0(esbuild@0.25.4) - sass-loader@16.0.5(sass@1.86.1)(webpack@5.98.0(esbuild@0.25.2)): + sass-loader@16.0.5(sass@1.86.1)(webpack@5.98.0(esbuild@0.25.4)): dependencies: neo-async: 2.6.2 optionalDependencies: sass: 1.86.1 - webpack: 5.98.0(esbuild@0.25.2) + webpack: 5.98.0(esbuild@0.25.4) sass@1.86.1: dependencies: @@ -48458,6 +50490,10 @@ snapshots: ajv-formats: 2.1.1(ajv@8.17.1) ajv-keywords: 5.1.0(ajv@8.17.1) + scroll-into-view-if-needed@3.1.0: + dependencies: + compute-scroll-into-view: 3.1.1 + scrypt-js@2.0.4: {} scrypt-js@3.0.1: {} @@ -48495,6 +50531,11 @@ snapshots: node-gyp-build: 4.8.4 optional: true + section-matter@1.0.0: + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + secure-json-parse@2.7.0: {} seedrandom@3.0.5: {} @@ -48664,7 +50705,7 @@ snapshots: sharp@0.34.1: dependencies: color: 4.2.3 - detect-libc: 2.0.3 + detect-libc: 2.0.4 semver: 7.7.1 optionalDependencies: '@img/sharp-darwin-arm64': 0.34.1 @@ -48732,6 +50773,17 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 + shiki@3.4.0: + dependencies: + '@shikijs/core': 3.4.0 + '@shikijs/engine-javascript': 3.4.0 + '@shikijs/engine-oniguruma': 3.4.0 + '@shikijs/langs': 3.4.0 + '@shikijs/themes': 3.4.0 + '@shikijs/types': 3.4.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + shimmer@1.2.1: {} shx@0.3.4: @@ -48805,6 +50857,12 @@ snapshots: nise: 6.1.1 supports-color: 7.2.0 + sirv@2.0.4: + dependencies: + '@polka/url': 1.0.0-next.29 + mrmime: 2.0.1 + totalist: 3.0.1 + sisteransi@1.0.5: {} slash@2.0.0: {} @@ -49209,6 +51267,8 @@ snapshots: dependencies: ansi-regex: 6.1.0 + strip-bom-string@1.0.0: {} + strip-bom@2.0.0: dependencies: is-utf8: 0.2.1 @@ -49239,13 +51299,13 @@ snapshots: strnum@1.1.2: {} - style-loader@3.3.4(webpack@5.98.0(esbuild@0.25.2)): + style-loader@3.3.4(webpack@5.98.0(esbuild@0.25.4)): dependencies: - webpack: 5.98.0(esbuild@0.25.2) + webpack: 5.98.0(esbuild@0.25.4) - style-loader@4.0.0(webpack@5.98.0(esbuild@0.25.2)): + style-loader@4.0.0(webpack@5.98.0(esbuild@0.25.4)): dependencies: - webpack: 5.98.0(esbuild@0.25.2) + webpack: 5.98.0(esbuild@0.25.4) style-to-js@1.1.16: dependencies: @@ -49526,6 +51586,8 @@ snapshots: tailwind-merge@3.1.0: {} + tailwind-merge@3.3.0: {} + tailwindcss-animate@1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2))): dependencies: tailwindcss: 3.4.17(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)) @@ -49588,6 +51650,8 @@ snapshots: transitivePeerDependencies: - ts-node + tailwindcss@4.1.6: {} + tanu@0.1.13: dependencies: tslib: 2.8.1 @@ -49678,16 +51742,16 @@ snapshots: dependencies: bintrees: 1.0.2 - terser-webpack-plugin@5.3.14(esbuild@0.25.2)(webpack@5.98.0(esbuild@0.25.2)): + terser-webpack-plugin@5.3.14(esbuild@0.25.4)(webpack@5.98.0(esbuild@0.25.4)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 4.3.0 serialize-javascript: 6.0.2 terser: 5.39.0 - webpack: 5.98.0(esbuild@0.25.2) + webpack: 5.98.0(esbuild@0.25.4) optionalDependencies: - esbuild: 0.25.2 + esbuild: 0.25.4 terser-webpack-plugin@5.3.14(webpack@5.98.0): dependencies: @@ -49865,6 +51929,8 @@ snapshots: toposort@2.0.2: {} + totalist@3.0.1: {} + tough-cookie@2.5.0: dependencies: psl: 1.15.0 @@ -49973,7 +52039,7 @@ snapshots: babel-jest: 29.7.0(@babel/core@7.27.1) esbuild: 0.24.2 - ts-jest@29.3.1(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(esbuild@0.25.2)(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(typescript@5.8.2): + ts-jest@29.3.1(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(esbuild@0.25.4)(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(typescript@5.8.2): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 @@ -49992,7 +52058,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.27.1) - esbuild: 0.25.2 + esbuild: 0.25.4 ts-jest@29.3.1(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(jest@29.7.0(@types/node@16.18.126)(ts-node@10.9.2(@types/node@16.18.126)(typescript@4.9.5)))(typescript@4.9.5): dependencies: @@ -50459,12 +52525,12 @@ snapshots: dependencies: typescript-logic: 0.0.0 - typescript-eslint@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2): + typescript-eslint@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2))(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2) - '@typescript-eslint/parser': 8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2) - '@typescript-eslint/utils': 8.29.0(eslint@9.23.0(jiti@1.21.7))(typescript@5.8.2) - eslint: 9.23.0(jiti@1.21.7) + '@typescript-eslint/eslint-plugin': 8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/parser': 8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/utils': 8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.23.0(jiti@2.4.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color @@ -50579,6 +52645,10 @@ snapshots: dependencies: '@types/unist': 3.0.3 + unist-util-position-from-estree@2.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-position@5.0.0: dependencies: '@types/unist': 3.0.3 @@ -50922,6 +52992,23 @@ snapshots: - utf-8-validate - zod + viem@2.24.3(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.4): + dependencies: + '@noble/curves': 1.8.1 + '@noble/hashes': 1.7.1 + '@scure/bip32': 1.6.2 + '@scure/bip39': 1.5.4 + abitype: 1.0.8(typescript@5.8.2)(zod@3.24.4) + isows: 1.0.6(ws@8.18.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + ox: 0.6.9(typescript@5.8.2)(zod@3.24.4) + ws: 8.18.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + optionalDependencies: + typescript: 5.8.2 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - zod + viem@2.24.3(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@6.0.3)(zod@3.24.2): dependencies: '@noble/curves': 1.8.1 @@ -51675,7 +53762,7 @@ snapshots: util: 0.12.5 web3-errors: 1.3.1 web3-types: 1.10.0 - zod: 3.24.2 + zod: 3.24.4 web3@1.10.0(bufferutil@4.0.7)(encoding@0.1.13)(utf-8-validate@6.0.3): dependencies: @@ -51769,7 +53856,26 @@ snapshots: webidl-conversions@7.0.0: {} - webpack-dev-middleware@6.1.3(webpack@5.98.0(esbuild@0.25.2)): + webpack-bundle-analyzer@4.10.1(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + '@discoveryjs/json-ext': 0.5.7 + acorn: 8.14.1 + acorn-walk: 8.3.4 + commander: 7.2.0 + debounce: 1.2.1 + escape-string-regexp: 4.0.0 + gzip-size: 6.0.0 + html-escaper: 2.0.2 + is-plain-object: 5.0.0 + opener: 1.5.2 + picocolors: 1.1.1 + sirv: 2.0.4 + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + webpack-dev-middleware@6.1.3(webpack@5.98.0(esbuild@0.25.4)): dependencies: colorette: 2.0.20 memfs: 3.5.3 @@ -51777,7 +53883,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.0 optionalDependencies: - webpack: 5.98.0(esbuild@0.25.2) + webpack: 5.98.0(esbuild@0.25.4) webpack-hot-middleware@2.26.1: dependencies: @@ -51819,7 +53925,7 @@ snapshots: - esbuild - uglify-js - webpack@5.98.0(esbuild@0.25.2): + webpack@5.98.0(esbuild@0.25.4): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.7 @@ -51841,7 +53947,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.14(esbuild@0.25.2)(webpack@5.98.0(esbuild@0.25.2)) + terser-webpack-plugin: 5.3.14(esbuild@0.25.4)(webpack@5.98.0(esbuild@0.25.4)) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -52365,6 +54471,8 @@ snapshots: zod@3.24.2: {} + zod@3.24.4: {} + zustand@5.0.0(@types/react@19.1.0)(immer@9.0.21)(react@19.1.0)(use-sync-external-store@1.4.0(react@19.1.0)): optionalDependencies: '@types/react': 19.1.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 32347a42b4..0193adf1a2 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -61,6 +61,7 @@ catalog: "@floating-ui/react": ^0.27.6 "@headlessui/react": ^2.2.0 "@heroicons/react": ^2.2.0 + "@next/bundle-analyzer": "^15.3.2" "@next/third-parties": ^15.3.2 "@phosphor-icons/react": ^2.1.7 "@pythnetwork/client": ^2.22.1 @@ -82,8 +83,10 @@ catalog: "@storybook/react": ^8.6.12 "@svgr/webpack": ^8.1.0 "@tailwindcss/forms": ^0.5.10 + "@tailwindcss/postcss": "^4.1.6" "@tanstack/react-query": ^5.71.5 "@types/jest": ^29.5.14 + "@types/mdx": "^2.0.13" "@types/node": ^22.14.0 "@types/react": ^19.1.0 "@types/react-dom": ^19.1.1 @@ -101,6 +104,9 @@ catalog: dnum: ^2.14.0 eslint: ^9.23.0 framer-motion: ^12.6.3 + fumadocs-core: "^15.3.0" + fumadocs-mdx: "^11.6.3" + fumadocs-ui: "^15.3.0" highlight.js: ^11.11.1 ip-range-check: ^0.2.0 jest: ^29.7.0 @@ -153,6 +159,7 @@ onlyBuiltDependencies: - "@injectivelabs/utils" - "@parcel/watcher" - "@scarf/scarf" + - "@tailwindcss/oxide" - "@trufflesuite/bigint-buffer" - bigint-buffer - blake-hash From 1da438c0044a62c8873944c3d14fd749e4d53510 Mon Sep 17 00:00:00 2001 From: Aaron Bassett Date: Mon, 19 May 2025 14:58:00 +0100 Subject: [PATCH 02/15] chore: remove unnecessary nextjs configs See feedback on PR #2672 --- apps/developer-hub/next.config.js | 112 +++++++++++++----------------- 1 file changed, 47 insertions(+), 65 deletions(-) diff --git a/apps/developer-hub/next.config.js b/apps/developer-hub/next.config.js index 5db6b68764..16d8b7c804 100644 --- a/apps/developer-hub/next.config.js +++ b/apps/developer-hub/next.config.js @@ -2,74 +2,56 @@ import createBundleAnalyzer from "@next/bundle-analyzer"; import { createMDX } from "fumadocs-mdx/next"; const withAnalyzer = createBundleAnalyzer({ - enabled: process.env.ANALYZE === "true", + enabled: process.env.ANALYZE === "true", }); const config = { - reactStrictMode: true, - turbopack: { - resolveExtensions: [".mdx", ".tsx", ".ts", ".jsx", ".js", ".mjs", ".json"], - rules: { - "*.svg": { - loaders: ["@svgr/webpack"], - as: "*.js", - }, - }, - }, - - pageExtensions: ["ts", "tsx", "mdx"], - - experimental: { - useCache: true, - }, - - logging: { - fetches: { - fullUrl: true, - }, - }, - - webpack(config) { - config.module.rules.push({ - test: /\.svg$/i, - use: ["@svgr/webpack"], - }); - - config.resolve.extensionAlias = { - ".js": [".js", ".ts", ".tsx"], - }; - - return config; - }, - - headers: async () => [ - { - source: "/:path*", - headers: [ - { - key: "X-XSS-Protection", - value: "1; mode=block", - }, - { - key: "Referrer-Policy", - value: "strict-origin-when-cross-origin", - }, - { - key: "Strict-Transport-Security", - value: "max-age=2592000", - }, - { - key: "X-Content-Type-Options", - value: "nosniff", - }, - { - key: "Permissions-Policy", - value: - "vibrate=(), geolocation=(), midi=(), notifications=(), push=(), sync-xhr=(), microphone=(), camera=(), magnetometer=(), gyroscope=(), speaker=(), vibrate=(), fullscreen=self", - }, - ], - }, - ], + reactStrictMode: true, + pageExtensions: ["ts", "tsx", "mdx"], + + logging: { + fetches: { + fullUrl: true, + }, + }, + + webpack(config) { + config.module.rules.push({ + test: /\.svg$/i, + use: ["@svgr/webpack"], + }); + + return config; + }, + + headers: async () => [ + { + source: "/:path*", + headers: [ + { + key: "X-XSS-Protection", + value: "1; mode=block", + }, + { + key: "Referrer-Policy", + value: "strict-origin-when-cross-origin", + }, + { + key: "Strict-Transport-Security", + value: "max-age=2592000", + }, + { + key: "X-Content-Type-Options", + value: "nosniff", + }, + { + key: "Permissions-Policy", + value: + "vibrate=(), geolocation=(), midi=(), notifications=(), push=(), sync-xhr=(), microphone=(), camera=(), magnetometer=(), gyroscope=(), speaker=(), vibrate=(), fullscreen=self", + }, + ], + }, + ], }; const withMDX = createMDX(); From b01e0a36ea762bdf4be6db943aa021c998f030e5 Mon Sep 17 00:00:00 2001 From: Aaron Bassett Date: Mon, 19 May 2025 15:00:45 +0100 Subject: [PATCH 03/15] chore: change local server port Update start:dev and start:prod ports so they do not clash with Insights or other local apps. --- apps/developer-hub/package.json | 126 ++++++++++++++++---------------- 1 file changed, 63 insertions(+), 63 deletions(-) diff --git a/apps/developer-hub/package.json b/apps/developer-hub/package.json index 6e453fa988..3d83fcd966 100644 --- a/apps/developer-hub/package.json +++ b/apps/developer-hub/package.json @@ -1,65 +1,65 @@ { - "name": "@pythnetwork/developer-hub", - "version": "0.0.0", - "private": true, - "type": "module", - "engines": { - "node": "22" - }, - "scripts": { - "build:vercel": "next build", - "build:analyze": "ANALYZE=true next build", - "fix:format": "prettier --write .", - "fix:lint:eslint": "eslint --fix .", - "fix:lint:stylelint": "stylelint --fix 'src/**/*.scss'", - "pull:env": "[ $CI ] || VERCEL_ORG_ID=team_BKQrg3JJFLxZyTqpuYtIY0rj VERCEL_PROJECT_ID=prj_TBkf9EyQjQF37gs4Vk0sQKJj97kE vercel env pull", - "start:dev": "next dev --port 3003", - "start:prod": "next start --port 3003", - "test:format": "prettier --check .", - "test:lint:eslint": "eslint . --max-warnings 0", - "test:lint:stylelint": "stylelint 'src/**/*.scss' --max-warnings 0", - "test:types": "tsc" - }, - "dependencies": { - "@phosphor-icons/react": "catalog:", - "@pythnetwork/component-library": "workspace:*", - "@react-hookz/web": "catalog:", - "clsx": "catalog:", - "fumadocs-core": "catalog:", - "fumadocs-mdx": "catalog:", - "fumadocs-ui": "catalog:", - "next": "catalog:", - "next-themes": "catalog:", - "nuqs": "catalog:", - "react": "catalog:", - "react-aria": "catalog:", - "react-dom": "catalog:", - "zod": "catalog:", - "zod-validation-error": "catalog:" - }, - "devDependencies": { - "@cprussin/eslint-config": "catalog:", - "@cprussin/jest-config": "catalog:", - "@cprussin/prettier-config": "catalog:", - "@cprussin/tsconfig": "catalog:", - "@next/bundle-analyzer": "catalog:", - "@svgr/webpack": "catalog:", - "@tailwindcss/postcss": "catalog:", - "@types/jest": "catalog:", - "@types/mdx": "catalog:", - "@types/node": "catalog:", - "@types/react": "catalog:", - "@types/react-dom": "catalog:", - "autoprefixer": "catalog:", - "eslint": "catalog:", - "jest": "catalog:", - "postcss": "catalog:", - "prettier": "catalog:", - "sass": "catalog:", - "stylelint": "catalog:", - "stylelint-config-standard-scss": "catalog:", - "tailwindcss": "^4.1.6", - "typescript": "catalog:", - "vercel": "catalog:" - } + "name": "@pythnetwork/developer-hub", + "version": "0.0.0", + "private": true, + "type": "module", + "engines": { + "node": "22" + }, + "scripts": { + "build:vercel": "next build", + "build:analyze": "ANALYZE=true next build", + "fix:format": "prettier --write .", + "fix:lint:eslint": "eslint --fix .", + "fix:lint:stylelint": "stylelint --fix 'src/**/*.scss'", + "pull:env": "[ $CI ] || VERCEL_ORG_ID=team_BKQrg3JJFLxZyTqpuYtIY0rj VERCEL_PROJECT_ID=prj_TBkf9EyQjQF37gs4Vk0sQKJj97kE vercel env pull", + "start:dev": "next dev --port 3627", + "start:prod": "next start --port 3627", + "test:format": "prettier --check .", + "test:lint:eslint": "eslint . --max-warnings 0", + "test:lint:stylelint": "stylelint 'src/**/*.scss' --max-warnings 0", + "test:types": "tsc" + }, + "dependencies": { + "@phosphor-icons/react": "catalog:", + "@pythnetwork/component-library": "workspace:*", + "@react-hookz/web": "catalog:", + "clsx": "catalog:", + "fumadocs-core": "catalog:", + "fumadocs-mdx": "catalog:", + "fumadocs-ui": "catalog:", + "next": "catalog:", + "next-themes": "catalog:", + "nuqs": "catalog:", + "react": "catalog:", + "react-aria": "catalog:", + "react-dom": "catalog:", + "zod": "catalog:", + "zod-validation-error": "catalog:" + }, + "devDependencies": { + "@cprussin/eslint-config": "catalog:", + "@cprussin/jest-config": "catalog:", + "@cprussin/prettier-config": "catalog:", + "@cprussin/tsconfig": "catalog:", + "@next/bundle-analyzer": "catalog:", + "@svgr/webpack": "catalog:", + "@tailwindcss/postcss": "catalog:", + "@types/jest": "catalog:", + "@types/mdx": "catalog:", + "@types/node": "catalog:", + "@types/react": "catalog:", + "@types/react-dom": "catalog:", + "autoprefixer": "catalog:", + "eslint": "catalog:", + "jest": "catalog:", + "postcss": "catalog:", + "prettier": "catalog:", + "sass": "catalog:", + "stylelint": "catalog:", + "stylelint-config-standard-scss": "catalog:", + "tailwindcss": "^4.1.6", + "typescript": "catalog:", + "vercel": "catalog:" + } } From a6e9c64f1401623684bb151c766f7536bd112d78 Mon Sep 17 00:00:00 2001 From: Aaron Bassett Date: Mon, 19 May 2025 15:09:42 +0100 Subject: [PATCH 04/15] fix: update page imports and JSX rendering --- .../src/app/(docs)/[section]/[...slug]/page.tsx | 5 ++--- apps/developer-hub/src/app/(docs)/[section]/page.tsx | 5 ++--- apps/developer-hub/src/app/(homepage)/page.tsx | 4 +--- .../src/components/Pages/DocumentationPage/index.tsx | 5 +++-- .../developer-hub/src/components/Pages/LandingPage/index.tsx | 2 +- 5 files changed, 9 insertions(+), 12 deletions(-) diff --git a/apps/developer-hub/src/app/(docs)/[section]/[...slug]/page.tsx b/apps/developer-hub/src/app/(docs)/[section]/[...slug]/page.tsx index 343b8248ab..c1fbc19a55 100644 --- a/apps/developer-hub/src/app/(docs)/[section]/[...slug]/page.tsx +++ b/apps/developer-hub/src/app/(docs)/[section]/[...slug]/page.tsx @@ -1,4 +1,5 @@ -import { DocumentationPage } from "@/src/components/Pages/DocumentationPage"; +export { DocumentationPage as default } from "@/src/components/Pages/DocumentationPage"; + import { source } from "@/src/source"; import type { Metadata } from "next"; import { notFound } from "next/navigation"; @@ -21,5 +22,3 @@ export async function generateMetadata(props: { description: page.data.description, } satisfies Metadata; } - -export default DocumentationPage; diff --git a/apps/developer-hub/src/app/(docs)/[section]/page.tsx b/apps/developer-hub/src/app/(docs)/[section]/page.tsx index 260023220a..c6a4f2309d 100644 --- a/apps/developer-hub/src/app/(docs)/[section]/page.tsx +++ b/apps/developer-hub/src/app/(docs)/[section]/page.tsx @@ -1,4 +1,5 @@ -import { LandingPage } from "@/src/components/Pages/LandingPage"; +export { LandingPage as default } from "@/src/components/Pages/LandingPage"; + import { source } from "@/src/source"; import type { Metadata } from "next"; import { notFound } from "next/navigation"; @@ -20,5 +21,3 @@ export async function generateMetadata(props: { description: page.data.description, } satisfies Metadata; } - -export default LandingPage; diff --git a/apps/developer-hub/src/app/(homepage)/page.tsx b/apps/developer-hub/src/app/(homepage)/page.tsx index 78555a8bd1..dddc0af06a 100644 --- a/apps/developer-hub/src/app/(homepage)/page.tsx +++ b/apps/developer-hub/src/app/(homepage)/page.tsx @@ -1,3 +1 @@ -import { Homepage } from "@/src/components/Pages/Homepage"; - -export default Homepage; +export { Homepage as default } from "@/src/components/Pages/Homepage"; diff --git a/apps/developer-hub/src/components/Pages/DocumentationPage/index.tsx b/apps/developer-hub/src/components/Pages/DocumentationPage/index.tsx index 18e833c58b..5e6179db94 100644 --- a/apps/developer-hub/src/components/Pages/DocumentationPage/index.tsx +++ b/apps/developer-hub/src/components/Pages/DocumentationPage/index.tsx @@ -4,6 +4,7 @@ export async function DocumentationPage(props: { params: Promise<{ section: string; slug: string[] }>; }) { const params = await props.params; - params.slug.unshift(params.section); - return BasePage({ params }); + return ( + + ); } diff --git a/apps/developer-hub/src/components/Pages/LandingPage/index.tsx b/apps/developer-hub/src/components/Pages/LandingPage/index.tsx index fb8dd1d670..92e3e1f007 100644 --- a/apps/developer-hub/src/components/Pages/LandingPage/index.tsx +++ b/apps/developer-hub/src/components/Pages/LandingPage/index.tsx @@ -4,5 +4,5 @@ export async function LandingPage(props: { params: Promise<{ section: string }>; }) { const params = await props.params; - return BasePage({ params: { slug: [params.section] } }); + return ; } From a63891fcef1969fa418f5688acdd9d44f1e2c86e Mon Sep 17 00:00:00 2001 From: Aaron Bassett Date: Mon, 19 May 2025 15:10:21 +0100 Subject: [PATCH 05/15] chore: fix linting errors --- apps/developer-hub/next.config.js | 94 +++++++++++----------- apps/developer-hub/package.json | 126 +++++++++++++++--------------- 2 files changed, 110 insertions(+), 110 deletions(-) diff --git a/apps/developer-hub/next.config.js b/apps/developer-hub/next.config.js index 16d8b7c804..92877988a3 100644 --- a/apps/developer-hub/next.config.js +++ b/apps/developer-hub/next.config.js @@ -2,56 +2,56 @@ import createBundleAnalyzer from "@next/bundle-analyzer"; import { createMDX } from "fumadocs-mdx/next"; const withAnalyzer = createBundleAnalyzer({ - enabled: process.env.ANALYZE === "true", + enabled: process.env.ANALYZE === "true", }); const config = { - reactStrictMode: true, - pageExtensions: ["ts", "tsx", "mdx"], - - logging: { - fetches: { - fullUrl: true, - }, - }, - - webpack(config) { - config.module.rules.push({ - test: /\.svg$/i, - use: ["@svgr/webpack"], - }); - - return config; - }, - - headers: async () => [ - { - source: "/:path*", - headers: [ - { - key: "X-XSS-Protection", - value: "1; mode=block", - }, - { - key: "Referrer-Policy", - value: "strict-origin-when-cross-origin", - }, - { - key: "Strict-Transport-Security", - value: "max-age=2592000", - }, - { - key: "X-Content-Type-Options", - value: "nosniff", - }, - { - key: "Permissions-Policy", - value: - "vibrate=(), geolocation=(), midi=(), notifications=(), push=(), sync-xhr=(), microphone=(), camera=(), magnetometer=(), gyroscope=(), speaker=(), vibrate=(), fullscreen=self", - }, - ], - }, - ], + reactStrictMode: true, + pageExtensions: ["ts", "tsx", "mdx"], + + logging: { + fetches: { + fullUrl: true, + }, + }, + + webpack(config) { + config.module.rules.push({ + test: /\.svg$/i, + use: ["@svgr/webpack"], + }); + + return config; + }, + + headers: async () => [ + { + source: "/:path*", + headers: [ + { + key: "X-XSS-Protection", + value: "1; mode=block", + }, + { + key: "Referrer-Policy", + value: "strict-origin-when-cross-origin", + }, + { + key: "Strict-Transport-Security", + value: "max-age=2592000", + }, + { + key: "X-Content-Type-Options", + value: "nosniff", + }, + { + key: "Permissions-Policy", + value: + "vibrate=(), geolocation=(), midi=(), notifications=(), push=(), sync-xhr=(), microphone=(), camera=(), magnetometer=(), gyroscope=(), speaker=(), vibrate=(), fullscreen=self", + }, + ], + }, + ], }; const withMDX = createMDX(); diff --git a/apps/developer-hub/package.json b/apps/developer-hub/package.json index 3d83fcd966..ddd0af3890 100644 --- a/apps/developer-hub/package.json +++ b/apps/developer-hub/package.json @@ -1,65 +1,65 @@ { - "name": "@pythnetwork/developer-hub", - "version": "0.0.0", - "private": true, - "type": "module", - "engines": { - "node": "22" - }, - "scripts": { - "build:vercel": "next build", - "build:analyze": "ANALYZE=true next build", - "fix:format": "prettier --write .", - "fix:lint:eslint": "eslint --fix .", - "fix:lint:stylelint": "stylelint --fix 'src/**/*.scss'", - "pull:env": "[ $CI ] || VERCEL_ORG_ID=team_BKQrg3JJFLxZyTqpuYtIY0rj VERCEL_PROJECT_ID=prj_TBkf9EyQjQF37gs4Vk0sQKJj97kE vercel env pull", - "start:dev": "next dev --port 3627", - "start:prod": "next start --port 3627", - "test:format": "prettier --check .", - "test:lint:eslint": "eslint . --max-warnings 0", - "test:lint:stylelint": "stylelint 'src/**/*.scss' --max-warnings 0", - "test:types": "tsc" - }, - "dependencies": { - "@phosphor-icons/react": "catalog:", - "@pythnetwork/component-library": "workspace:*", - "@react-hookz/web": "catalog:", - "clsx": "catalog:", - "fumadocs-core": "catalog:", - "fumadocs-mdx": "catalog:", - "fumadocs-ui": "catalog:", - "next": "catalog:", - "next-themes": "catalog:", - "nuqs": "catalog:", - "react": "catalog:", - "react-aria": "catalog:", - "react-dom": "catalog:", - "zod": "catalog:", - "zod-validation-error": "catalog:" - }, - "devDependencies": { - "@cprussin/eslint-config": "catalog:", - "@cprussin/jest-config": "catalog:", - "@cprussin/prettier-config": "catalog:", - "@cprussin/tsconfig": "catalog:", - "@next/bundle-analyzer": "catalog:", - "@svgr/webpack": "catalog:", - "@tailwindcss/postcss": "catalog:", - "@types/jest": "catalog:", - "@types/mdx": "catalog:", - "@types/node": "catalog:", - "@types/react": "catalog:", - "@types/react-dom": "catalog:", - "autoprefixer": "catalog:", - "eslint": "catalog:", - "jest": "catalog:", - "postcss": "catalog:", - "prettier": "catalog:", - "sass": "catalog:", - "stylelint": "catalog:", - "stylelint-config-standard-scss": "catalog:", - "tailwindcss": "^4.1.6", - "typescript": "catalog:", - "vercel": "catalog:" - } + "name": "@pythnetwork/developer-hub", + "version": "0.0.0", + "private": true, + "type": "module", + "engines": { + "node": "22" + }, + "scripts": { + "build:vercel": "next build", + "build:analyze": "ANALYZE=true next build", + "fix:format": "prettier --write .", + "fix:lint:eslint": "eslint --fix .", + "fix:lint:stylelint": "stylelint --fix 'src/**/*.scss'", + "pull:env": "[ $CI ] || VERCEL_ORG_ID=team_BKQrg3JJFLxZyTqpuYtIY0rj VERCEL_PROJECT_ID=prj_TBkf9EyQjQF37gs4Vk0sQKJj97kE vercel env pull", + "start:dev": "next dev --port 3627", + "start:prod": "next start --port 3627", + "test:format": "prettier --check .", + "test:lint:eslint": "eslint . --max-warnings 0", + "test:lint:stylelint": "stylelint 'src/**/*.scss' --max-warnings 0", + "test:types": "tsc" + }, + "dependencies": { + "@phosphor-icons/react": "catalog:", + "@pythnetwork/component-library": "workspace:*", + "@react-hookz/web": "catalog:", + "clsx": "catalog:", + "fumadocs-core": "catalog:", + "fumadocs-mdx": "catalog:", + "fumadocs-ui": "catalog:", + "next": "catalog:", + "next-themes": "catalog:", + "nuqs": "catalog:", + "react": "catalog:", + "react-aria": "catalog:", + "react-dom": "catalog:", + "zod": "catalog:", + "zod-validation-error": "catalog:" + }, + "devDependencies": { + "@cprussin/eslint-config": "catalog:", + "@cprussin/jest-config": "catalog:", + "@cprussin/prettier-config": "catalog:", + "@cprussin/tsconfig": "catalog:", + "@next/bundle-analyzer": "catalog:", + "@svgr/webpack": "catalog:", + "@tailwindcss/postcss": "catalog:", + "@types/jest": "catalog:", + "@types/mdx": "catalog:", + "@types/node": "catalog:", + "@types/react": "catalog:", + "@types/react-dom": "catalog:", + "autoprefixer": "catalog:", + "eslint": "catalog:", + "jest": "catalog:", + "postcss": "catalog:", + "prettier": "catalog:", + "sass": "catalog:", + "stylelint": "catalog:", + "stylelint-config-standard-scss": "catalog:", + "tailwindcss": "^4.1.6", + "typescript": "catalog:", + "vercel": "catalog:" + } } From 6adee5d55dfc4aec31be180920201334babdbbf0 Mon Sep 17 00:00:00 2001 From: Aaron Bassett Date: Mon, 19 May 2025 15:12:21 +0100 Subject: [PATCH 06/15] chore: remove unused Vercel ignoreCommand --- apps/developer-hub/vercel.json | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/developer-hub/vercel.json b/apps/developer-hub/vercel.json index 4f5ad97408..922e63c804 100644 --- a/apps/developer-hub/vercel.json +++ b/apps/developer-hub/vercel.json @@ -1,5 +1,4 @@ { "$schema": "https://openapi.vercel.sh/vercel.json", - "ignoreCommand": "../../vercel-ignore.sh", "buildCommand": "turbo run build:vercel --filter @pythnetwork/developer-hub" } From 8ad2a7058730dcae380e36c13c0ecca4ec45f9c4 Mon Sep 17 00:00:00 2001 From: Aaron Bassett Date: Mon, 19 May 2025 15:16:53 +0100 Subject: [PATCH 07/15] fix: update notFound() usage to be consistent --- apps/developer-hub/src/components/Pages/BasePage/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/developer-hub/src/components/Pages/BasePage/index.tsx b/apps/developer-hub/src/components/Pages/BasePage/index.tsx index 3007ac2286..002c21e7cb 100644 --- a/apps/developer-hub/src/components/Pages/BasePage/index.tsx +++ b/apps/developer-hub/src/components/Pages/BasePage/index.tsx @@ -10,7 +10,7 @@ import { notFound } from "next/navigation"; export function BasePage(props: { params: { slug: string[] } }) { const page = source.getPage(props.params.slug); - if (!page) return notFound(); + if (!page) notFound(); const MDX = page.data.body; From 3d949282664513f4cf8f503d6e52eedb11b57fd5 Mon Sep 17 00:00:00 2001 From: Aaron Bassett Date: Tue, 20 May 2025 23:16:13 +0100 Subject: [PATCH 08/15] fix: remove pull:env command until Vercel is configured --- apps/developer-hub/package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/developer-hub/package.json b/apps/developer-hub/package.json index ddd0af3890..4d0d74579f 100644 --- a/apps/developer-hub/package.json +++ b/apps/developer-hub/package.json @@ -12,7 +12,6 @@ "fix:format": "prettier --write .", "fix:lint:eslint": "eslint --fix .", "fix:lint:stylelint": "stylelint --fix 'src/**/*.scss'", - "pull:env": "[ $CI ] || VERCEL_ORG_ID=team_BKQrg3JJFLxZyTqpuYtIY0rj VERCEL_PROJECT_ID=prj_TBkf9EyQjQF37gs4Vk0sQKJj97kE vercel env pull", "start:dev": "next dev --port 3627", "start:prod": "next start --port 3627", "test:format": "prettier --check .", From 68c4312c2051db33850493e026d18f8e3cb92578 Mon Sep 17 00:00:00 2001 From: Aaron Bassett Date: Tue, 20 May 2025 23:24:21 +0100 Subject: [PATCH 09/15] chore: stop using TypeScript path aliases --- .../src/app/(docs)/[section]/[...slug]/page.tsx | 5 ++--- apps/developer-hub/src/app/(docs)/[section]/page.tsx | 5 ++--- apps/developer-hub/src/app/(docs)/layout.tsx | 2 +- apps/developer-hub/src/app/(homepage)/layout.tsx | 2 +- apps/developer-hub/src/app/(homepage)/page.tsx | 2 +- .../developer-hub/src/components/Pages/BasePage/index.tsx | 4 ++-- apps/developer-hub/src/config/layout.config.tsx | 2 +- apps/developer-hub/src/source.ts | 2 +- apps/developer-hub/tsconfig.json | 8 +------- 9 files changed, 12 insertions(+), 20 deletions(-) diff --git a/apps/developer-hub/src/app/(docs)/[section]/[...slug]/page.tsx b/apps/developer-hub/src/app/(docs)/[section]/[...slug]/page.tsx index c1fbc19a55..eb996a2b5f 100644 --- a/apps/developer-hub/src/app/(docs)/[section]/[...slug]/page.tsx +++ b/apps/developer-hub/src/app/(docs)/[section]/[...slug]/page.tsx @@ -1,8 +1,7 @@ -export { DocumentationPage as default } from "@/src/components/Pages/DocumentationPage"; - -import { source } from "@/src/source"; +export { DocumentationPage as default } from "../../../../components/Pages/DocumentationPage"; import type { Metadata } from "next"; import { notFound } from "next/navigation"; +import { source } from "../../../../source"; export async function generateStaticParams() { return source.generateParams(); diff --git a/apps/developer-hub/src/app/(docs)/[section]/page.tsx b/apps/developer-hub/src/app/(docs)/[section]/page.tsx index c6a4f2309d..a99c9330d1 100644 --- a/apps/developer-hub/src/app/(docs)/[section]/page.tsx +++ b/apps/developer-hub/src/app/(docs)/[section]/page.tsx @@ -1,8 +1,7 @@ -export { LandingPage as default } from "@/src/components/Pages/LandingPage"; - -import { source } from "@/src/source"; +export { LandingPage as default } from "../../../components/Pages/LandingPage"; import type { Metadata } from "next"; import { notFound } from "next/navigation"; +import { source } from "../../../source"; export async function generateStaticParams() { return source.generateParams(); diff --git a/apps/developer-hub/src/app/(docs)/layout.tsx b/apps/developer-hub/src/app/(docs)/layout.tsx index d28060333f..a70b024839 100644 --- a/apps/developer-hub/src/app/(docs)/layout.tsx +++ b/apps/developer-hub/src/app/(docs)/layout.tsx @@ -1,6 +1,6 @@ -import { docsOptions } from "@/src/config/layout.config"; import { DocsLayout } from "fumadocs-ui/layouts/docs"; import type { ReactNode } from "react"; +import { docsOptions } from "../../config/layout.config"; export default function Layout({ children }: { children: ReactNode }) { return {children}; diff --git a/apps/developer-hub/src/app/(homepage)/layout.tsx b/apps/developer-hub/src/app/(homepage)/layout.tsx index d31cff4cbd..6c3fce3e10 100644 --- a/apps/developer-hub/src/app/(homepage)/layout.tsx +++ b/apps/developer-hub/src/app/(homepage)/layout.tsx @@ -1,6 +1,6 @@ -import { baseOptions } from "@/src/config/layout.config"; import { HomeLayout } from "fumadocs-ui/layouts/home"; import type { ReactNode } from "react"; +import { baseOptions } from "../../config/layout.config"; export default function Layout({ children }: { children: ReactNode }) { return {children}; diff --git a/apps/developer-hub/src/app/(homepage)/page.tsx b/apps/developer-hub/src/app/(homepage)/page.tsx index dddc0af06a..d3e3d42298 100644 --- a/apps/developer-hub/src/app/(homepage)/page.tsx +++ b/apps/developer-hub/src/app/(homepage)/page.tsx @@ -1 +1 @@ -export { Homepage as default } from "@/src/components/Pages/Homepage"; +export { Homepage as default } from "../../components/Pages/Homepage"; diff --git a/apps/developer-hub/src/components/Pages/BasePage/index.tsx b/apps/developer-hub/src/components/Pages/BasePage/index.tsx index 002c21e7cb..d12b170aa6 100644 --- a/apps/developer-hub/src/components/Pages/BasePage/index.tsx +++ b/apps/developer-hub/src/components/Pages/BasePage/index.tsx @@ -1,5 +1,3 @@ -import { getMDXComponents } from "@/src/mdx-components"; -import { source } from "@/src/source"; import { DocsBody, DocsDescription, @@ -7,6 +5,8 @@ import { DocsTitle, } from "fumadocs-ui/page"; import { notFound } from "next/navigation"; +import { getMDXComponents } from "../../../mdx-components"; +import { source } from "../../../source"; export function BasePage(props: { params: { slug: string[] } }) { const page = source.getPage(props.params.slug); diff --git a/apps/developer-hub/src/config/layout.config.tsx b/apps/developer-hub/src/config/layout.config.tsx index 97cdf9f5fa..bee5c2c4c4 100644 --- a/apps/developer-hub/src/config/layout.config.tsx +++ b/apps/developer-hub/src/config/layout.config.tsx @@ -1,6 +1,6 @@ -import { source } from "@/src/source"; import type { DocsLayoutProps } from "fumadocs-ui/layouts/docs"; import type { BaseLayoutProps } from "fumadocs-ui/layouts/shared"; +import { source } from "../source"; export const baseOptions: BaseLayoutProps = { nav: { diff --git a/apps/developer-hub/src/source.ts b/apps/developer-hub/src/source.ts index 14b3ad87c9..d97921f90f 100644 --- a/apps/developer-hub/src/source.ts +++ b/apps/developer-hub/src/source.ts @@ -1,4 +1,3 @@ -import { docs } from "@/.source"; import { CardsThree, ChartLine, @@ -10,6 +9,7 @@ import { import type { InferMetaType, InferPageType } from "fumadocs-core/source"; import { loader } from "fumadocs-core/source"; import { createElement } from "react"; +import { docs } from "../.source"; const icons: Record = { CardsThree, diff --git a/apps/developer-hub/tsconfig.json b/apps/developer-hub/tsconfig.json index 6557194d94..dfd9bf96d0 100644 --- a/apps/developer-hub/tsconfig.json +++ b/apps/developer-hub/tsconfig.json @@ -1,11 +1,5 @@ { "extends": "@cprussin/tsconfig/nextjs.json", "include": ["svg.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], - "exclude": ["node_modules"], - "compilerOptions": { - "baseUrl": ".", - "paths": { - "@/*": ["./*"] - } - } + "exclude": ["node_modules"] } From 93529348edb6c9a1bcee8fbece99a74e6057b517 Mon Sep 17 00:00:00 2001 From: Aaron Bassett Date: Tue, 20 May 2025 23:36:54 +0100 Subject: [PATCH 10/15] chore: ignore local command runner --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index bb8d886a6b..4251b4f5a1 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,4 @@ __pycache__ .turbo/ .cursorrules .corepack +justfile \ No newline at end of file From 67f61d1ed5d8476db7909cac4d350b5a4e298f13 Mon Sep 17 00:00:00 2001 From: Aaron Bassett Date: Tue, 20 May 2025 23:53:13 +0100 Subject: [PATCH 11/15] chore: add ts-ignore for import of generated file --- apps/developer-hub/src/source.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/developer-hub/src/source.ts b/apps/developer-hub/src/source.ts index d97921f90f..68eed3b59a 100644 --- a/apps/developer-hub/src/source.ts +++ b/apps/developer-hub/src/source.ts @@ -9,6 +9,7 @@ import { import type { InferMetaType, InferPageType } from "fumadocs-core/source"; import { loader } from "fumadocs-core/source"; import { createElement } from "react"; +//@ts-ignore: .source is generated at build time import { docs } from "../.source"; const icons: Record = { From 3e14458d1da76418a4a6c4a07d4c4f31de55568b Mon Sep 17 00:00:00 2001 From: Aaron Bassett Date: Tue, 20 May 2025 23:53:37 +0100 Subject: [PATCH 12/15] fix: remove missed use of path alias --- apps/developer-hub/src/app/api/search/route.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/developer-hub/src/app/api/search/route.ts b/apps/developer-hub/src/app/api/search/route.ts index fd26feb90b..e6f1d4df02 100644 --- a/apps/developer-hub/src/app/api/search/route.ts +++ b/apps/developer-hub/src/app/api/search/route.ts @@ -1,4 +1,4 @@ -import { source } from "@/src/source"; import { createFromSource } from "fumadocs-core/search/server"; +import { source } from "../../../source"; export const { GET } = createFromSource(source); From ee48c8c25652f3da1d2b15cb9d610ea3938e114b Mon Sep 17 00:00:00 2001 From: Aaron Bassett Date: Tue, 20 May 2025 23:55:49 +0100 Subject: [PATCH 13/15] fix: update frontmatter schema for docs and meta --- apps/developer-hub/source.config.ts | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/apps/developer-hub/source.config.ts b/apps/developer-hub/source.config.ts index 294eedc7b6..949c86910e 100644 --- a/apps/developer-hub/source.config.ts +++ b/apps/developer-hub/source.config.ts @@ -1,20 +1,24 @@ -import { - defineConfig, - defineDocs, - frontmatterSchema, - metaSchema, -} from "fumadocs-mdx/config"; +import { defineConfig, defineDocs } from "fumadocs-mdx/config"; import { z } from "zod"; export const docs = defineDocs({ docs: { - schema: frontmatterSchema.extend({ + schema: z.object({ + title: z.string(), + description: z.string(), + icon: z.string().optional(), + full: z.boolean().default(false), index: z.boolean().default(false), }), }, meta: { - schema: metaSchema.extend({ + schema: z.object({ + title: z.string().optional(), + pages: z.array(z.string()).optional(), description: z.string().optional(), + root: z.boolean().optional(), + defaultOpen: z.boolean().optional(), + icon: z.string().optional(), }), }, }); From f330b3dc06233f9a1b383c046777b30e3d1c4682 Mon Sep 17 00:00:00 2001 From: Aaron Bassett Date: Wed, 21 May 2025 00:03:46 +0100 Subject: [PATCH 14/15] chore: remove ts-ignore and ensure build runs before type checking --- apps/developer-hub/src/source.ts | 1 - apps/developer-hub/turbo.json | 3 +++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/developer-hub/src/source.ts b/apps/developer-hub/src/source.ts index 68eed3b59a..d97921f90f 100644 --- a/apps/developer-hub/src/source.ts +++ b/apps/developer-hub/src/source.ts @@ -9,7 +9,6 @@ import { import type { InferMetaType, InferPageType } from "fumadocs-core/source"; import { loader } from "fumadocs-core/source"; import { createElement } from "react"; -//@ts-ignore: .source is generated at build time import { docs } from "../.source"; const icons: Record = { diff --git a/apps/developer-hub/turbo.json b/apps/developer-hub/turbo.json index 5c225020e2..eb7ba80de8 100644 --- a/apps/developer-hub/turbo.json +++ b/apps/developer-hub/turbo.json @@ -36,6 +36,9 @@ }, "test:lint:stylelint": { "dependsOn": ["//#install:modules"] + }, + "test:types": { + "dependsOn": ["//#install:modules", "^build", "build"] } } } From 3914dcc8cecacbd5ce8204ce891539cbcc148b22 Mon Sep 17 00:00:00 2001 From: Aaron Bassett Date: Wed, 21 May 2025 01:12:39 +0100 Subject: [PATCH 15/15] chore: fix type and lint checking errors --- apps/developer-hub/next.config.js | 7 +- apps/developer-hub/package.json | 3 +- .../app/(docs)/[section]/[...slug]/page.tsx | 3 +- .../src/app/(docs)/[section]/page.tsx | 3 +- apps/developer-hub/src/app/(docs)/layout.tsx | 1 + .../src/app/(homepage)/layout.tsx | 1 + .../developer-hub/src/app/api/search/route.ts | 1 + .../src/components/Pages/BasePage/index.tsx | 3 +- .../src/components/Pages/Homepage/index.tsx | 9 +- .../src/config/layout.config.tsx | 1 + apps/developer-hub/src/source.ts | 5 +- apps/developer-hub/turbo.json | 4 +- pnpm-lock.yaml | 86 +------------------ pnpm-workspace.yaml | 1 - 14 files changed, 18 insertions(+), 110 deletions(-) diff --git a/apps/developer-hub/next.config.js b/apps/developer-hub/next.config.js index 92877988a3..0fda319c42 100644 --- a/apps/developer-hub/next.config.js +++ b/apps/developer-hub/next.config.js @@ -1,10 +1,5 @@ -import createBundleAnalyzer from "@next/bundle-analyzer"; import { createMDX } from "fumadocs-mdx/next"; -const withAnalyzer = createBundleAnalyzer({ - enabled: process.env.ANALYZE === "true", -}); - const config = { reactStrictMode: true, pageExtensions: ["ts", "tsx", "mdx"], @@ -56,4 +51,4 @@ const config = { const withMDX = createMDX(); -export default withAnalyzer(withMDX(config)); +export default withMDX(config); diff --git a/apps/developer-hub/package.json b/apps/developer-hub/package.json index 4d0d74579f..e7d14c824c 100644 --- a/apps/developer-hub/package.json +++ b/apps/developer-hub/package.json @@ -7,7 +7,7 @@ "node": "22" }, "scripts": { - "build:vercel": "next build", + "build": "next build", "build:analyze": "ANALYZE=true next build", "fix:format": "prettier --write .", "fix:lint:eslint": "eslint --fix .", @@ -41,7 +41,6 @@ "@cprussin/jest-config": "catalog:", "@cprussin/prettier-config": "catalog:", "@cprussin/tsconfig": "catalog:", - "@next/bundle-analyzer": "catalog:", "@svgr/webpack": "catalog:", "@tailwindcss/postcss": "catalog:", "@types/jest": "catalog:", diff --git a/apps/developer-hub/src/app/(docs)/[section]/[...slug]/page.tsx b/apps/developer-hub/src/app/(docs)/[section]/[...slug]/page.tsx index eb996a2b5f..f300f892e9 100644 --- a/apps/developer-hub/src/app/(docs)/[section]/[...slug]/page.tsx +++ b/apps/developer-hub/src/app/(docs)/[section]/[...slug]/page.tsx @@ -1,9 +1,10 @@ export { DocumentationPage as default } from "../../../../components/Pages/DocumentationPage"; import type { Metadata } from "next"; import { notFound } from "next/navigation"; + import { source } from "../../../../source"; -export async function generateStaticParams() { +export function generateStaticParams() { return source.generateParams(); } diff --git a/apps/developer-hub/src/app/(docs)/[section]/page.tsx b/apps/developer-hub/src/app/(docs)/[section]/page.tsx index a99c9330d1..590a016119 100644 --- a/apps/developer-hub/src/app/(docs)/[section]/page.tsx +++ b/apps/developer-hub/src/app/(docs)/[section]/page.tsx @@ -1,9 +1,10 @@ export { LandingPage as default } from "../../../components/Pages/LandingPage"; import type { Metadata } from "next"; import { notFound } from "next/navigation"; + import { source } from "../../../source"; -export async function generateStaticParams() { +export function generateStaticParams() { return source.generateParams(); } diff --git a/apps/developer-hub/src/app/(docs)/layout.tsx b/apps/developer-hub/src/app/(docs)/layout.tsx index a70b024839..85917a2d94 100644 --- a/apps/developer-hub/src/app/(docs)/layout.tsx +++ b/apps/developer-hub/src/app/(docs)/layout.tsx @@ -1,5 +1,6 @@ import { DocsLayout } from "fumadocs-ui/layouts/docs"; import type { ReactNode } from "react"; + import { docsOptions } from "../../config/layout.config"; export default function Layout({ children }: { children: ReactNode }) { diff --git a/apps/developer-hub/src/app/(homepage)/layout.tsx b/apps/developer-hub/src/app/(homepage)/layout.tsx index 6c3fce3e10..85274122b3 100644 --- a/apps/developer-hub/src/app/(homepage)/layout.tsx +++ b/apps/developer-hub/src/app/(homepage)/layout.tsx @@ -1,5 +1,6 @@ import { HomeLayout } from "fumadocs-ui/layouts/home"; import type { ReactNode } from "react"; + import { baseOptions } from "../../config/layout.config"; export default function Layout({ children }: { children: ReactNode }) { diff --git a/apps/developer-hub/src/app/api/search/route.ts b/apps/developer-hub/src/app/api/search/route.ts index e6f1d4df02..3e8843fef7 100644 --- a/apps/developer-hub/src/app/api/search/route.ts +++ b/apps/developer-hub/src/app/api/search/route.ts @@ -1,4 +1,5 @@ import { createFromSource } from "fumadocs-core/search/server"; + import { source } from "../../../source"; export const { GET } = createFromSource(source); diff --git a/apps/developer-hub/src/components/Pages/BasePage/index.tsx b/apps/developer-hub/src/components/Pages/BasePage/index.tsx index d12b170aa6..e2c129878c 100644 --- a/apps/developer-hub/src/components/Pages/BasePage/index.tsx +++ b/apps/developer-hub/src/components/Pages/BasePage/index.tsx @@ -5,6 +5,7 @@ import { DocsTitle, } from "fumadocs-ui/page"; import { notFound } from "next/navigation"; + import { getMDXComponents } from "../../../mdx-components"; import { source } from "../../../source"; @@ -15,7 +16,7 @@ export function BasePage(props: { params: { slug: string[] } }) { const MDX = page.data.body; return ( - + {page.data.title} {page.data.description} diff --git a/apps/developer-hub/src/components/Pages/Homepage/index.tsx b/apps/developer-hub/src/components/Pages/Homepage/index.tsx index a676fa3fb1..03ac745e3a 100644 --- a/apps/developer-hub/src/components/Pages/Homepage/index.tsx +++ b/apps/developer-hub/src/components/Pages/Homepage/index.tsx @@ -1,16 +1,9 @@ -import type { ReactNode } from "react"; - import styles from "./index.module.scss"; -type Props = { - children?: ReactNode; -}; - -export const Homepage = ({ children }: Props) => { +export const Homepage = () => { return (

Homepage Landing Page

- {children}
); }; diff --git a/apps/developer-hub/src/config/layout.config.tsx b/apps/developer-hub/src/config/layout.config.tsx index bee5c2c4c4..f0a50f1058 100644 --- a/apps/developer-hub/src/config/layout.config.tsx +++ b/apps/developer-hub/src/config/layout.config.tsx @@ -1,5 +1,6 @@ import type { DocsLayoutProps } from "fumadocs-ui/layouts/docs"; import type { BaseLayoutProps } from "fumadocs-ui/layouts/shared"; + import { source } from "../source"; export const baseOptions: BaseLayoutProps = { diff --git a/apps/developer-hub/src/source.ts b/apps/developer-hub/src/source.ts index d97921f90f..68dacccc7b 100644 --- a/apps/developer-hub/src/source.ts +++ b/apps/developer-hub/src/source.ts @@ -9,6 +9,7 @@ import { import type { InferMetaType, InferPageType } from "fumadocs-core/source"; import { loader } from "fumadocs-core/source"; import { createElement } from "react"; + import { docs } from "../.source"; const icons: Record = { @@ -22,9 +23,7 @@ const icons: Record = { export const source = loader({ baseUrl: "/", icon(icon) { - return icon - ? createElement(icons[icon as keyof typeof icons] ?? FolderSimpleDashed) - : undefined; + return icon ? createElement(icons[icon] ?? FolderSimpleDashed) : undefined; }, source: docs.toFumadocsSource(), }); diff --git a/apps/developer-hub/turbo.json b/apps/developer-hub/turbo.json index eb7ba80de8..13036bf4a4 100644 --- a/apps/developer-hub/turbo.json +++ b/apps/developer-hub/turbo.json @@ -2,7 +2,7 @@ "$schema": "https://turbo.build/schema.json", "extends": ["//"], "tasks": { - "build:vercel": { + "build": { "env": [ "VERCEL_ENV", "GOOGLE_ANALYTICS_ID", @@ -26,7 +26,7 @@ "cache": false }, "start:prod": { - "dependsOn": ["//#install:modules", "build:vercel"] + "dependsOn": ["//#install:modules", "build"] }, "test:lint": { "dependsOn": ["test:lint:eslint", "test:lint:stylelint"] diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d0693d66ec..0182fc47ea 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -54,9 +54,6 @@ catalogs: '@heroicons/react': specifier: ^2.2.0 version: 2.2.0 - '@next/bundle-analyzer': - specifier: ^15.3.2 - version: 15.3.2 '@next/third-parties': specifier: ^15.3.2 version: 15.3.2 @@ -533,16 +530,13 @@ importers: version: 4.0.2(@testing-library/dom@10.4.0)(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2))(turbo@2.4.4)(typescript@5.8.2) '@cprussin/jest-config': specifier: 'catalog:' - version: 2.0.2(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(bufferutil@4.0.9)(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(prettier@3.5.3)(typescript@5.8.2)(utf-8-validate@5.0.10) + version: 2.0.2(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(bufferutil@4.0.9)(esbuild@0.25.4)(eslint@9.23.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.14.0)(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.8.2)))(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.1.0-rc.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(sass@1.86.1))(prettier@3.5.3)(typescript@5.8.2)(utf-8-validate@6.0.3) '@cprussin/prettier-config': specifier: 'catalog:' version: 2.2.2(prettier@3.5.3) '@cprussin/tsconfig': specifier: 'catalog:' version: 3.1.2(typescript@5.8.2) - '@next/bundle-analyzer': - specifier: 'catalog:' - version: 15.3.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@svgr/webpack': specifier: 'catalog:' version: 8.1.0(typescript@5.8.2) @@ -4567,10 +4561,6 @@ packages: peerDependencies: postcss-selector-parser: ^7.0.0 - '@discoveryjs/json-ext@0.5.7': - resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} - engines: {node: '>=10.0.0'} - '@dual-bundle/import-meta-resolve@4.1.0': resolution: {integrity: sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==} @@ -6353,9 +6343,6 @@ packages: '@near-js/wallet-account@1.1.1': resolution: {integrity: sha512-NnoJKtogBQ7Qz+AP+LdF70BP8Az6UXQori7OjPqJLMo73bn6lh5Ywvegwd1EB7ZEVe4BRt9+f9QkbU5M8ANfAw==} - '@next/bundle-analyzer@15.3.2': - resolution: {integrity: sha512-zY5O1PNKNxWEjaFX8gKzm77z2oL0cnj+m5aiqNBgay9LPLCDO13Cf+FJONeNq/nJjeXptwHFT9EMmTecF9U4Iw==} - '@next/env@15.3.2': resolution: {integrity: sha512-xURk++7P7qR9JG1jJtLzPzf0qEvqCN0A/T3DXf8IPMKo9/6FfjxtEffRJIIew/bIL4T3C2jLLqBor8B/zVlx6g==} @@ -7084,9 +7071,6 @@ packages: webpack-plugin-serve: optional: true - '@polka/url@1.0.0-next.29': - resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} - '@prisma/instrumentation@5.22.0': resolution: {integrity: sha512-LxccF392NN37ISGxIurUljZSh1YWnphO34V5a0+T7FVQG2u9bhAXRTJpgmQ3483woVhkraQZFF7cbRrpbw/F4Q==} @@ -13650,9 +13634,6 @@ packages: resolution: {integrity: sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==} engines: {node: '>=10'} - debounce@1.2.1: - resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} - debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -17924,10 +17905,6 @@ packages: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} - mrmime@2.0.1: - resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} - engines: {node: '>=10'} - ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} @@ -18411,10 +18388,6 @@ packages: openapi3-ts@3.1.0: resolution: {integrity: sha512-1qKTvCCVoV0rkwUh1zq5o8QyghmwYPuhdvtjv1rFjuOnJToXhQyF8eGjNETQ8QmGjr9Jz/tkAKLITIl2s7dw3A==} - opener@1.5.2: - resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} - hasBin: true - optimism@0.18.1: resolution: {integrity: sha512-mLXNwWPa9dgFyDqkNi54sjDyNJ9/fTI6WGBLgnXku1vdKY/jovHfZT5r+aiVeFFLOz+foPNOm5YJ4mqgld2GBQ==} @@ -20282,10 +20255,6 @@ packages: sinon@18.0.1: resolution: {integrity: sha512-a2N2TDY1uGviajJ6r4D1CyRAkzE9NNVlYOV1wX5xQDuAk0ONgzgRl0EjCQuRCPxOwp13ghsMwt9Gdldujs39qw==} - sirv@2.0.4: - resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} - engines: {node: '>= 10'} - sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} @@ -21066,10 +21035,6 @@ packages: toposort@2.0.2: resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==} - totalist@3.0.1: - resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} - engines: {node: '>=6'} - tough-cookie@2.5.0: resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} engines: {node: '>=0.8'} @@ -22183,11 +22148,6 @@ packages: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} - webpack-bundle-analyzer@4.10.1: - resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==} - engines: {node: '>= 10.13.0'} - hasBin: true - webpack-dev-middleware@6.1.3: resolution: {integrity: sha512-A4ChP0Qj8oGociTs6UdlRUGANIGrCDL3y+pmQMc+dSsraXHCatFpmMey4mYELA+juqwUqwQsUgJJISXl1KWmiw==} engines: {node: '>= 14.15.0'} @@ -26132,8 +26092,6 @@ snapshots: dependencies: postcss-selector-parser: 7.1.0 - '@discoveryjs/json-ext@0.5.7': {} - '@dual-bundle/import-meta-resolve@4.1.0': {} '@ecies/ciphers@0.2.3(@noble/ciphers@1.2.1)': @@ -29667,13 +29625,6 @@ snapshots: transitivePeerDependencies: - encoding - '@next/bundle-analyzer@15.3.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)': - dependencies: - webpack-bundle-analyzer: 4.10.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) - transitivePeerDependencies: - - bufferutil - - utf-8-validate - '@next/env@15.3.2': {} '@next/eslint-plugin-next@14.2.26': @@ -30527,8 +30478,6 @@ snapshots: type-fest: 4.39.0 webpack-hot-middleware: 2.26.1 - '@polka/url@1.0.0-next.29': {} - '@prisma/instrumentation@5.22.0': dependencies: '@opentelemetry/api': 1.9.0 @@ -41194,8 +41143,6 @@ snapshots: dependencies: mimic-fn: 3.1.0 - debounce@1.2.1: {} - debug@2.6.9: dependencies: ms: 2.0.0 @@ -47735,8 +47682,6 @@ snapshots: mri@1.2.0: {} - mrmime@2.0.1: {} - ms@2.0.0: {} ms@2.1.1: {} @@ -48295,8 +48240,6 @@ snapshots: dependencies: yaml: 2.7.1 - opener@1.5.2: {} - optimism@0.18.1: dependencies: '@wry/caches': 1.0.1 @@ -50857,12 +50800,6 @@ snapshots: nise: 6.1.1 supports-color: 7.2.0 - sirv@2.0.4: - dependencies: - '@polka/url': 1.0.0-next.29 - mrmime: 2.0.1 - totalist: 3.0.1 - sisteransi@1.0.5: {} slash@2.0.0: {} @@ -51929,8 +51866,6 @@ snapshots: toposort@2.0.2: {} - totalist@3.0.1: {} - tough-cookie@2.5.0: dependencies: psl: 1.15.0 @@ -53856,25 +53791,6 @@ snapshots: webidl-conversions@7.0.0: {} - webpack-bundle-analyzer@4.10.1(bufferutil@4.0.9)(utf-8-validate@5.0.10): - dependencies: - '@discoveryjs/json-ext': 0.5.7 - acorn: 8.14.1 - acorn-walk: 8.3.4 - commander: 7.2.0 - debounce: 1.2.1 - escape-string-regexp: 4.0.0 - gzip-size: 6.0.0 - html-escaper: 2.0.2 - is-plain-object: 5.0.0 - opener: 1.5.2 - picocolors: 1.1.1 - sirv: 2.0.4 - ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) - transitivePeerDependencies: - - bufferutil - - utf-8-validate - webpack-dev-middleware@6.1.3(webpack@5.98.0(esbuild@0.25.4)): dependencies: colorette: 2.0.20 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 0193adf1a2..090b5ff9f8 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -61,7 +61,6 @@ catalog: "@floating-ui/react": ^0.27.6 "@headlessui/react": ^2.2.0 "@heroicons/react": ^2.2.0 - "@next/bundle-analyzer": "^15.3.2" "@next/third-parties": ^15.3.2 "@phosphor-icons/react": ^2.1.7 "@pythnetwork/client": ^2.22.1