diff --git a/.agents/skills/anticapture-design-system/references/auditing-checklist.md b/.agents/skills/anticapture-design-system/references/auditing-checklist.md index d09cec7f4..f1b919961 100644 --- a/.agents/skills/anticapture-design-system/references/auditing-checklist.md +++ b/.agents/skills/anticapture-design-system/references/auditing-checklist.md @@ -18,7 +18,20 @@ Use this checklist when **updating an existing** design system component. Always - [ ] Read the `index.ts` re-export if present - [ ] Check for other components that import from the same shared types/styles -### 3. Diff: Code vs Figma +### 3. Audit Folder Structure + +Before touching any code, verify the component follows the hierarchy rule: + +- [ ] **Root composite** (`Component.tsx`) has `.stories.tsx` + `.figma.tsx` alongside it +- [ ] **Sub-parts that are named Figma components** live in their own `component-name/` subfolder with `.stories.tsx` + `.figma.tsx` +- [ ] **Internal building blocks** (only used by one parent, no independent Figma frame) are flat `.tsx` files inside the parent subfolder — no own subfolder, no stories, no figma +- [ ] **`index.ts`** uses explicit named exports (`export { X }`, `export type { Y }`) — never `export *` +- [ ] **`types.ts`** exists for shared prop types; inline prop types only acceptable when tied to a CVA variant object +- [ ] **`cn()`** imported from `@/shared/utils/cn` (not `@/shared/utils`) +- [ ] **No imports from `@/shared/components`** inside design-system components — use direct source paths to avoid circular deps +- [ ] Component belongs in the correct category (`RadioButton` → `form/fields/`, not `buttons/`) + +### 4. Diff: Code vs Figma Compare what the code currently implements against what Figma defines: diff --git a/.agents/skills/anticapture-design-system/references/new-component-checklist.md b/.agents/skills/anticapture-design-system/references/new-component-checklist.md index 6223239a3..dd9bc35d7 100644 --- a/.agents/skills/anticapture-design-system/references/new-component-checklist.md +++ b/.agents/skills/anticapture-design-system/references/new-component-checklist.md @@ -72,6 +72,44 @@ Before building any sub-element from scratch, ask: | Standalone (one variant axis) | `category/Component.tsx` + `Component.stories.tsx` + `Component.figma.tsx` | | A family with shared types/styles | `category/types.ts` + `category/styles.ts` + `category/component/Component.tsx` + `Component.stories.tsx` + `Component.figma.tsx` | +### Composite vs internal sub-parts + +When a component has sub-parts (e.g. a Drawer with a header and body), apply this rule: + +**A sub-part gets its own named subfolder + `.stories.tsx` + `.figma.tsx` when:** + +- A consumer would use it directly (it appears in the public `index.ts`) +- It exists as a named, documented component in Figma + +**A sub-part is a flat file inside the composite's folder when:** + +- It is only ever used by one parent composite (not re-exported publicly) +- It is purely structural — renders one specific slot of its parent +- It has no independent Figma frame + +> Ask yourself: "Does this appear in Figma as its own named component?" If yes → subfolder + stories + figma. If it's just a structural slot inside a bigger component → flat file. + +**Example — Drawer:** + +``` +drawer/ +├── Drawer.tsx ← composite root → stories + figma +├── Drawer.stories.tsx +├── Drawer.figma.tsx +├── drawer-header/ ← composite sub-part → stories + figma +│ ├── DrawerHeader.tsx +│ ├── DrawerHeader.stories.tsx +│ ├── DrawerHeader.figma.tsx +│ ├── DrawerTitle.tsx ← internal flat file (only used by DrawerHeader) +│ ├── DrawerSubtitle.tsx +│ ├── DrawerTabs.tsx +│ └── DrawerCloseButton.tsx +└── drawer-body/ ← composite sub-part → stories + figma + ├── DrawerBody.tsx + ├── DrawerBody.stories.tsx + └── DrawerBody.figma.tsx +``` + --- ## 4. Create Files diff --git a/.agents/skills/dao-integration/SKILL.md b/.agents/skills/dao-integration/SKILL.md new file mode 100644 index 000000000..c22ebcda7 --- /dev/null +++ b/.agents/skills/dao-integration/SKILL.md @@ -0,0 +1,345 @@ +--- +name: dao-integration +description: Use when adding a new DAO to the Anticapture platform. Covers all five components — indexer, API, gateway, dashboard, and enum sync — with a step-by-step checklist. +--- + +# DAO Integration Guide + +## Use This Skill When + +- You are adding a new DAO to the platform. +- You need to understand what files to create/modify for a new DAO. +- You are debugging why a DAO is missing from a component. + +## Prerequisites + +Before starting, gather these details about the DAO: + +- **DAO ID**: Short uppercase identifier (e.g. `ENS`, `UNI`, `AAVE`) +- **Chain**: Which EVM chain (mainnet, arbitrum, optimism, etc.) +- **Token contract**: Address, decimals, deploy block, type (ERC20/ERC721) +- **Governor contract**: Address, deploy block, governor type (Compound-style, Azorius, etc.) +- **Timelock contract**: Address (if applicable) +- **Treasury addresses**: DAO multisigs, vesting contracts +- **CEX/DEX/Lending addresses**: Known exchange wallets, LP pools, lending contracts holding the token +- **Governance rules**: Voting delay, period, quorum calculation, cancel function, vote logic + +## Integration Checklist + +The integration touches 5 components. Work through them in order. + +### Step 0: Governance Architecture Discovery + +**This step is mandatory before writing any code.** Many DAOs have non-standard governance architectures. Skipping this step risks building an integration that misses the core governance mechanism. + +#### 0a. Verify the governor's voting token + +Call `governor.token()` on-chain to find what contract the governor actually uses for voting power: + +```bash +cast call "token()(address)" --rpc-url +``` + +Compare the result against the token address the user provided. They may differ — e.g. the governor may point to a vote-escrow wrapper, not the ERC20. + +#### 0b. Classify the voting token + +Check what the voting token actually is: + +| Check | Command | What it tells you | +|---|---|---| +| Is it the same as the ERC20? | Compare addresses | If different, there's an intermediary | +| Does it have `delegates()`? | `cast call "delegates(address)(address)" ` | If reverts → no delegation, voting power comes from elsewhere | +| Does it emit `DelegateChanged`? | Check ABI on block explorer | If missing → `delegatedSupply` and `accountPower` will be empty | +| Is it a vote-escrow (veToken)? | Check contract name/source on block explorer | veTokens use lock-based voting power with `Deposit`/`Withdraw` events | +| Is it a wrapper? | Check if it references another contract | Wrappers (like wveOLAS) proxy reads to an underlying contract | + +#### 0c. Determine integration scope + +Based on the findings, classify the integration: + +| Architecture | Token events available | Delegation tracking | Example | +|---|---|---|---| +| **Standard ERC20Votes** | Transfer, DelegateChanged, DelegateVotesChanged | Full | ENS, UNI, OBOL | +| **Plain ERC20 + veToken** | Transfer only (on ERC20); Deposit/Withdraw (on veToken) | Requires custom veToken indexing | OLAS | +| **ERC721 (NFT)** | Transfer (minting = delegation) | Via transfer events | NOUNS | +| **Multi-token** | Transfer + delegation per token | Aggregated across tokens | AAVE | + +#### 0d. Document findings in INTEGRATION.md + +Create `apps/indexer/src/indexer//INTEGRATION.md` documenting: + +1. **Architecture**: What contracts exist and how they connect +2. **What's integrated**: Which events and metrics are covered +3. **What's pending**: Gaps that need follow-up work (e.g. veToken indexing) +4. **Addresses provided vs discovered**: Any discrepancies from user-provided info + +This file is the source of truth for the integration status of each DAO. See the template below in "INTEGRATION.md Template". + +### Step 1: Enum Sync + +Add the DAO ID to the enum in **all three locations** (they must match): + +| File | Package | +| ------------------------------------- | --------- | +| `apps/indexer/src/lib/enums.ts` | Indexer | +| `apps/api/src/lib/enums.ts` | API | +| `apps/dashboard/shared/types/daos.ts` | Dashboard | + +```typescript +export enum DaoIdEnum { + // ... existing entries ... + NEW_DAO = "NEW_DAO", +} +``` + +### Step 2: Indexer + +#### 2a. Constants (`apps/indexer/src/lib/constants.ts`) + +Add entry to `CONTRACT_ADDRESSES[DaoIdEnum.NEW_DAO]`: + +```typescript +[DaoIdEnum.NEW_DAO]: { + blockTime: 12, // seconds per block on the chain + token: { + address: "0x..." as Address, + decimals: 18, + startBlock: 12345678, + }, + governor: { + address: "0x..." as Address, + startBlock: 12345678, + }, +}, +``` + +Add entries to `TreasuryAddresses`, `CEXAddresses`, `DEXAddresses`, `LendingAddresses`, `BurningAddresses`. + +#### 2b. ABIs (`apps/indexer/src/indexer//abi/`) + +Create ABI files for the token and governor contracts. Use viem's built-in ABIs where possible, or extract from block explorer. + +``` +apps/indexer/src/indexer// +├── abi/ +│ └── index.ts # exports TokenAbi, GovernorAbi +├── erc20.ts # token event handlers (Transfer, DelegateChanged, DelegateVotesChanged) +├── governor.ts # governor event handlers (ProposalCreated, VoteCast, etc.) +└── index.ts # re-exports everything +``` + +#### 2c. Event Handlers + +**Token handler** (`erc20.ts`): Follow the pattern in `apps/indexer/src/indexer/ens/erc20.ts`: + +- `setup` event: Insert token record +- `Transfer`: Track balances, CEX/DEX/Lending/Treasury flows +- `DelegateChanged`: Track delegation changes +- `DelegateVotesChanged`: Track voting power changes + +**Governor handler** (`governor.ts`): Follow the pattern in `apps/indexer/src/indexer/ens/governor.ts`: + +- `ProposalCreated`: Insert proposal +- `VoteCast` / `VoteCastWithParams`: Record votes +- `ProposalQueued`, `ProposalExecuted`, `ProposalCanceled`: Update proposal status + +#### 2d. Ponder Config (`apps/indexer/config/.config.ts`) + +Follow the pattern in `apps/indexer/config/ens.config.ts`: + +```typescript +import { createConfig } from "ponder"; +import { CONTRACT_ADDRESSES } from "@/lib/constants"; +import { DaoIdEnum } from "@/lib/enums"; +import { env } from "@/env"; +import { TokenAbi, GovernorAbi } from "@/indexer//abi"; + +const CONTRACTS = CONTRACT_ADDRESSES[DaoIdEnum.NEW_DAO]; + +export default createConfig({ + database: { kind: "postgres", connectionString: env.DATABASE_URL }, + chains: { + ethereum_mainnet: { + id: 1, + rpc: env.RPC_URL, + maxRequestsPerSecond: env.MAX_REQUESTS_PER_SECOND, + pollingInterval: env.POLLING_INTERVAL, + }, + }, + contracts: { + NEW_DAOToken: { + abi: TokenAbi, + chain: "ethereum_mainnet", + address: CONTRACTS.token.address, + startBlock: CONTRACTS.token.startBlock, + }, + NEW_DAOGovernor: { + abi: GovernorAbi, + chain: "ethereum_mainnet", + address: CONTRACTS.governor.address, + startBlock: CONTRACTS.governor.startBlock, + }, + }, +}); +``` + +#### 2e. Wire into Ponder (`apps/indexer/ponder.config.ts`) + +Import the new config and spread its chains/contracts into the merged config. + +#### 2f. Wire into entry point (`apps/indexer/src/index.ts`) + +Add import and switch case: + +```typescript +import { NEW_DAOTokenIndexer, NEW_DAOGovernorIndexer } from "@/indexer/"; + +case DaoIdEnum.NEW_DAO: { + NEW_DAOTokenIndexer(token.address, token.decimals); + NEW_DAOGovernorIndexer(blockTime); + break; +} +``` + +### Step 3: API + +#### 3a. Constants (`apps/api/src/lib/constants.ts`) + +Mirror the same `CONTRACT_ADDRESSES[DaoIdEnum.NEW_DAO]` entry from the indexer. + +#### 3b. Client (`apps/api/src/clients//index.ts`) + +Create a client class extending `GovernorBase` and implementing `DAOClient`: + +```typescript +export class NEW_DAOClient extends GovernorBase implements DAOClient { + // Implement: getDaoId, getQuorum, getTimelockDelay, + // alreadySupportCalldataReview, calculateQuorum +} +``` + +Follow the pattern in `apps/api/src/clients/ens/index.ts`. + +#### 3c. Register client (`apps/api/src/clients/index.ts`) + +Add `export * from "./";` + +### Step 4: Gateway + +The gateway auto-discovers DAOs from `DAO_API_*` environment variables. Add: + +``` +DAO_API_NEW_DAO= +``` + +No code changes needed unless the API exposes new endpoint patterns. + +### Step 5: Dashboard + +#### 5a. DAO Config (`apps/dashboard/shared/dao-config/.ts`) + +Create a `DaoConfiguration` object. Follow `apps/dashboard/shared/dao-config/ens.ts` as a template. Required fields: + +```typescript +export const NEW_DAO: DaoConfiguration = { + name: "New DAO", + decimals: 18, + color: { svgColor: "#...", svgBgColor: "#..." }, + ogIcon: NewDaoOgIcon, + daoOverview: { + token: "ERC20", + chain: { ...mainnet, icon: MainnetIcon }, + contracts: { governor: "0x...", token: "0x...", timelock: "0x..." }, + rules: { + delay: true, + changeVote: false, + timelock: true, + cancelFunction: false, + logic: "For", + quorumCalculation: "...", + }, + }, + // Feature flags + resilienceStages: true, + tokenDistribution: true, + dataTables: true, + governancePage: true, +}; +``` + +#### 5b. Register config (`apps/dashboard/shared/dao-config/index.ts`) + +Import and add to the default export object. + +#### 5c. Icons (optional) + +Add DAO icon component in `apps/dashboard/shared/components/icons/` and OG icon in `apps/dashboard/shared/og/dao-og-icons/`. + +## Verification + +After all changes, run typecheck and lint on each affected package: + +```bash +pnpm indexer typecheck && pnpm indexer lint +pnpm api typecheck && pnpm api lint +pnpm gateway typecheck && pnpm gateway lint +pnpm dashboard typecheck && pnpm dashboard lint +``` + +## Common Patterns & Variations + +| Variation | Example DAO | Key Difference | +| ---------------------------------- | ----------------- | --------------------------------------------------- | +| Standard ERC20 + Compound Governor | ENS, UNI, GTC, OP | Straightforward, follow ENS pattern | +| ERC721 (NFT) token | NOUNS | Token is NFT, auto-delegates on transfer | +| Multi-token tracking | AAVE | Tracks AAVE + stkAAVE + aAAVE separately | +| Azorius governance (Fractal) | SHU | Different governor events, custom proposal handling | +| Multi-chain | ARB, OP, SCR | Config needs chain-specific RPC and chain ID | +| No governor (token-only) | ARB | Only token indexer, no governor handler | +| Vote-escrow (veToken) governance | OLAS | ERC20 has no delegation; voting power from veToken lock. Requires custom veToken indexer for `Deposit`/`Withdraw` events to track `delegatedSupply` and `accountPower`. Governor events are standard. | + +## INTEGRATION.md Template + +Every DAO integration **must** include an `INTEGRATION.md` file at `apps/indexer/src/indexer//INTEGRATION.md`. This is the source of truth for what's integrated and what's pending. + +```markdown +# Integration Status + +## Architecture + +| Contract | Address | Type | Events used | +|---|---|---|---| +| Token | 0x... | ERC20 / ERC721 / veToken | Transfer, DelegateChanged, ... | +| Governor | 0x... | OZ Governor / Azorius / ... | ProposalCreated, VoteCast, ... | +| Timelock | 0x... | TimelockController | (not indexed) | + +Governor voting token: `
` (same as token / veToken wrapper / other) + +## What's Integrated + +- [ ] Token supply tracking (Transfer events) +- [ ] Delegation tracking (DelegateChanged / DelegateVotesChanged) +- [ ] Voting power tracking (accountPower, votingPowerHistory) +- [ ] Governor proposals (ProposalCreated, status updates) +- [ ] Governor votes (VoteCast) +- [ ] CEX/DEX/Lending address classification +- [ ] Treasury tracking + +## What's Pending + +List gaps with context on why and what's needed to close them. + +## Notes + +Any DAO-specific quirks, discrepancies, or decisions made during integration. +``` + +## Guardrails + +- Enums **must** be identical across indexer, API, and dashboard +- Constants (contract addresses) **must** match between indexer and API +- ABIs **must** match the deployed contracts — verify on block explorer +- Do **not** run the indexer unless explicitly asked (reindexing is expensive) +- Test the API client against the real chain before deploying +- **Always** run Step 0 (Governance Architecture Discovery) before writing code — never assume the token the user provides is the voting token diff --git a/.agents/skills/local-dev/SKILL.md b/.agents/skills/local-dev/SKILL.md new file mode 100644 index 000000000..a01669482 --- /dev/null +++ b/.agents/skills/local-dev/SKILL.md @@ -0,0 +1,134 @@ +--- +name: local-dev +description: Use when setting up, running, or troubleshooting the local development environment. Covers the full-stack dev script, individual service startup, port assignments, startup order, and common issues. +--- + +# Local Development Guide + +## Use This Skill When + +- You need to run the full local stack or a subset of services. +- You are debugging service startup, port conflicts, or readiness issues. +- You need to understand the startup order and service dependencies. +- A user asks "how do I run this locally?" or needs help with `pnpm dev`. + +## Prerequisites + +### Railway CLI Login (one-time setup) + +The local dev environment connects to the **Railway cluster** for databases, RPCs, and shared services. You must authenticate once before running any services: + +```bash +railway login +``` + +This is a one-time step -- once authenticated, the session persists across restarts. + +### Important: Real Data + +Local services are **pointed at real Railway databases and infrastructure**. This means: + +- You are reading/writing to **staging databases**. +- Changes made through the local API or indexer **affect real data**. +- Treat local development with the same care as a deployed environment. + +## Quick Start + +```bash +# Full stack without a local API (uses remote/Railway API endpoints) +pnpm dev + +# Full stack with a local API for a specific DAO +pnpm dev +# Example: pnpm dev ens +``` + +## Services & Ports + +| Service | Command | Port | Description | +| ------------- | -------------------- | ----- | --------------------------------------- | +| **API** | `pnpm api dev ` | 42069 | REST API (only when dao_id is provided) | +| **Gateway** | `pnpm gateway dev` | 4000 | GraphQL Mesh aggregating DAO APIs | +| **Gateful** | `pnpm gateful dev` | 5000 | REST gateway wrapping the GraphQL layer | +| **Client** | `pnpm client dev` | -- | GraphQL codegen + build watch (no port) | +| **Dashboard** | `pnpm dashboard dev` | 3000 | Next.js frontend | + +## Startup Order & Dependencies + +The services must start in this exact order because each depends on the previous one being ready: + +``` +1. API (optional) -- listens on :42069 + | +2. Gateway -- needs API URLs via DAO_API_* env vars; listens on :4000 + | +3. Gateful -- needs Gateway; listens on :5000 + | +4. Client (codegen) -- needs Gateway schema to generate types + | +5. Dashboard -- needs generated client types; listens on :3000 +``` + +### How `pnpm dev` orchestrates this + +1. If a `dao_id` argument is provided, starts the API and waits for port 42069 to be listening. Sets `DAO_API_=http://localhost:42069` so the Gateway discovers it. +2. Starts the Gateway and waits for the log line `"Mesh running at"` to confirm readiness. +3. Starts Gateful and waits for the log line `"REST Gateway running"` to confirm readiness. +4. Starts Client in errors-only mode (suppresses output unless error/fail is detected). +5. Starts the Dashboard. +6. On `Ctrl+C`, sends TERM to all child processes and cleans up temp files. + +## Running Individual Services + +When you only need a subset (common during development): + +### UI-only work (dashboard changes) + +Point the client and dashboard at the deployed dev Gateway -- no need to run API/Gateway locally: + +```bash +pnpm client dev # codegen against remote gateway +pnpm dashboard dev # start frontend +``` + +### API feature work + +```bash +pnpm api dev # start local API +pnpm gateway dev # start gateway (picks up local API via env) +# Only add client + dashboard if you need to verify the UI +``` + +### Gateway/Gateful work + +```bash +pnpm gateway dev +pnpm gateful dev +``` + +## Environment Variables + +- `DAO_API_`: Tells the Gateway where each DAO's API lives. When running a local API, `pnpm dev` sets this automatically (e.g., `DAO_API_ENS=http://localhost:42069`). For remote APIs, these come from `.env` files. + +## Troubleshooting + +| Problem | Likely Cause | Fix | +| -------------------------------------- | ---------------------------------------- | ---------------------------------------------------------------- | +| Gateway fails to start | Missing `DAO_API_*` env vars | Ensure at least one DAO API URL is set in env or run with dao_id | +| Port already in use | Another process on 42069/4000/5000/3000 | `lsof -i :` to find and kill the process | +| Client codegen errors | Gateway not ready or schema changed | Ensure Gateway is running and healthy before starting client | +| Dashboard type errors after API change | Stale generated types | Re-run `pnpm client dev` or `pnpm client codegen` | +| Timeout waiting for service | Service crashed silently or slow startup | Check service logs directly: `pnpm dev` | + +## pnpm Shortcuts Reference + +These are defined in the root `package.json` and map to workspace filters: + +```bash +pnpm api # --filter=@anticapture/api +pnpm gateway # --filter=@anticapture/api-gateway +pnpm gateful # --filter=@anticapture/gateful +pnpm client # --filter=@anticapture/graphql-client +pnpm dashboard # --filter=@anticapture/dashboard (with dotenv) +pnpm indexer # --filter=@anticapture/indexer +``` diff --git a/.gitignore b/.gitignore index ef6808e2c..c61a001a8 100644 --- a/.gitignore +++ b/.gitignore @@ -150,4 +150,6 @@ dist .github/skills/* .github/copilot-instructions.md -.claude/worktrees \ No newline at end of file +.claude/worktrees +.claude/settings.local.json +**/.claude/settings.local.json \ No newline at end of file diff --git a/apps/api-gateway/.env.example b/apps/api-gateway/.env.example index 6d8544d6e..89e619e55 100644 --- a/apps/api-gateway/.env.example +++ b/apps/api-gateway/.env.example @@ -1,5 +1,5 @@ -PETITION_API_URL=http://localhost:5000/docs/json DAO_API_ENS=https://localhost:3000 ADDRESS_ENRICHMENT_API_URL=http://localhost:3001 OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 +# (OPTIONAL) enables auth header API_TOKEN= diff --git a/apps/api-gateway/schema.graphql b/apps/api-gateway/schema.graphql index 382fc219d..3d880a4ef 100644 --- a/apps/api-gateway/schema.graphql +++ b/apps/api-gateway/schema.graphql @@ -11,88 +11,102 @@ directive @typescript(subgraph: String, type: String) on SCALAR | ENUM directive @example(subgraph: String, value: ObjMap) repeatable on FIELD_DEFINITION | OBJECT | INPUT_OBJECT | ENUM | SCALAR type Query { - "\n>**Method**: `GET`\n>**Base URL**: `https://address-enrichment-service-dev.up.railway.app`\n>**Path**: `/address/{args.address}`\nReturns label information from Arkham, ENS data, and whether the address is an EOA or contract. Arkham data is stored permanently. ENS data is cached with a configurable TTL.\n" + """ + Returns label information from Arkham, ENS data, and whether the address is an EOA or contract. Arkham data is stored permanently. ENS data is cached with a configurable TTL. + """ getAddress(address: String!): getAddress_200_response - "\n>**Method**: `GET`\n>**Base URL**: `https://address-enrichment-service-dev.up.railway.app`\n>**Path**: `/addresses`\nReturns label information from Arkham, ENS data, and address type for multiple addresses. Maximum 100 addresses per request. Arkham data is stored permanently. ENS data is cached with a configurable TTL.\n" + """ + Returns label information from Arkham, ENS data, and address type for multiple addresses. Maximum 100 addresses per request. Arkham data is stored permanently. ENS data is cached with a configurable TTL. + """ getAddresses(addresses: JSON!): getAddresses_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/accounts/{args.address}/delegations/historical`\nGet historical delegations for an account, with optional filtering and sorting\n" + """ + Get historical delegations for an account, with optional filtering and sorting + """ historicalDelegations(address: String!, delegateAddressIn: JSON, skip: NonNegativeInt, limit: PositiveInt = 10, fromValue: String, toValue: String, orderDirection: queryInput_historicalDelegations_orderDirection = desc): historicalDelegations_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/accounts/{args.address}/delegations`\nGet current delegations for an account\n" + """Get current delegations for an account""" delegations(address: String!): delegations_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/accounts/{args.address}/delegators`\nGet current delegators of an account with voting power\n" + """Get current delegators of an account with voting power""" delegators(address: String!, skip: NonNegativeInt, limit: PositiveInt = 10, orderBy: queryInput_delegators_orderBy = amount, orderDirection: queryInput_delegators_orderDirection = desc): delegators_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/treasury/liquid`\nGet historical Liquid Treasury (treasury without DAO tokens) from external providers (DefiLlama/Dune)\n" + """ + Get historical Liquid Treasury (treasury without DAO tokens) from external providers (DefiLlama/Dune) + """ getLiquidTreasury(days: queryInput_getLiquidTreasury_days = _365d, order: queryInput_getLiquidTreasury_order = asc): getLiquidTreasury_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/treasury/dao-token`\nGet historical DAO Token Treasury value (governance token quantity × token price)\n" + """ + Get historical DAO Token Treasury value (governance token quantity × token price) + """ getDaoTokenTreasury(days: queryInput_getDaoTokenTreasury_days = _365d, order: queryInput_getDaoTokenTreasury_order = asc): getDaoTokenTreasury_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/treasury/total`\nGet historical Total Treasury (liquid treasury + DAO token treasury)\n" + """Get historical Total Treasury (liquid treasury + DAO token treasury)""" getTotalTreasury(days: queryInput_getTotalTreasury_days = _365d, order: queryInput_getTotalTreasury_order = asc): getTotalTreasury_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/token/historical-data`\nGet historical market data for a specific token\n" + """Get historical market data for a specific token""" historicalTokenData(skip: NonNegativeInt, limit: Float = 365): [query_historicalTokenData_items] - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/token`\nGet property data for a specific token\n" + """Get property data for a specific token""" token(currency: queryInput_token_currency = usd): token_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/feed/events`\nGet feed events\n" + """Get feed events""" feedEvents(skip: Float, limit: Float = 10, orderBy: queryInput_feedEvents_orderBy = timestamp, orderDirection: queryInput_feedEvents_orderDirection = desc, relevance: queryInput_feedEvents_relevance = MEDIUM, type: queryInput_feedEvents_type, fromDate: Float, toDate: Float): feedEvents_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/event-relevance/threshold`\nGet event relevance threshold\n" + """Get event relevance threshold""" getEventRelevanceThreshold(type: queryInput_getEventRelevanceThreshold_type!, relevance: queryInput_getEventRelevanceThreshold_relevance!): getEventRelevanceThreshold_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/total-supply/compare`\nCompare total supply between periods\n" + """Compare total supply between periods""" compareTotalSupply(days: queryInput_compareTotalSupply_days = _90d): compareTotalSupply_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/delegated-supply/compare`\nCompare delegated supply between periods\n" + """Compare delegated supply between periods""" compareDelegatedSupply(days: queryInput_compareDelegatedSupply_days = _90d): compareDelegatedSupply_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/circulating-supply/compare`\nCompare circulating supply between periods\n" + """Compare circulating supply between periods""" compareCirculatingSupply(days: queryInput_compareCirculatingSupply_days = _90d): compareCirculatingSupply_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/treasury/compare`\nCompare treasury between periods\n" + """Compare treasury between periods""" compareTreasury(days: queryInput_compareTreasury_days = _90d): compareTreasury_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/cex-supply/compare`\nCompare cex supply between periods\n" + """Compare cex supply between periods""" compareCexSupply(days: queryInput_compareCexSupply_days = _90d): compareCexSupply_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/dex-supply/compare`\nCompare dex supply between periods\n" + """Compare dex supply between periods""" compareDexSupply(days: queryInput_compareDexSupply_days = _90d): compareDexSupply_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/lending-supply/compare`\nCompare lending supply between periods\n" + """Compare lending supply between periods""" compareLendingSupply(days: queryInput_compareLendingSupply_days = _90d): compareLendingSupply_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/active-supply/compare`\nGet active token supply for DAO\n" + """Get active token supply for DAO""" compareActiveSupply(days: queryInput_compareActiveSupply_days = _90d): compareActiveSupply_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/proposals/compare`\nCompare number of proposals between time periods\n" + """Compare number of proposals between time periods""" compareProposals(days: queryInput_compareProposals_days = _90d): compareProposals_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/votes/compare`\nCompare number of votes between time periods\n" + """Compare number of votes between time periods""" compareVotes(days: queryInput_compareVotes_days = _90d): compareVotes_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/average-turnout/compare`\nCompare average turnout between time periods\n" + """Compare average turnout between time periods""" compareAverageTurnout(days: queryInput_compareAverageTurnout_days = _90d): compareAverageTurnout_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/proposals-activity`\nReturns proposal activity data including voting history, win rates, and detailed proposal information for the specified delegate within the given time window\n" + """ + Returns proposal activity data including voting history, win rates, and detailed proposal information for the specified delegate within the given time window + """ proposalsActivity(address: String!, fromDate: String, skip: NonNegativeInt, limit: PositiveInt = 10, orderBy: queryInput_proposalsActivity_orderBy = timestamp, orderDirection: queryInput_proposalsActivity_orderDirection = desc, userVoteFilter: queryInput_proposalsActivity_userVoteFilter): proposalsActivity_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/proposals`\nReturns a list of proposal\n" + """Returns a list of proposal""" proposals(skip: NonNegativeInt, limit: PositiveInt = 10, orderDirection: queryInput_proposals_orderDirection = desc, status: JSON, fromDate: Float, fromEndDate: Float, includeOptimisticProposals: queryInput_proposals_includeOptimisticProposals = TRUE): proposals_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/proposals/{args.id}`\nReturns a single proposal by its ID\n" + """Returns a single proposal by its ID""" proposal(id: String!): proposal_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/accounts/{args.address}/balances/historical`\nTODO\n" + """TODO""" historicalBalances(address: String!, skip: NonNegativeInt, limit: PositiveInt = 10, orderBy: queryInput_historicalBalances_orderBy = timestamp, orderDirection: queryInput_historicalBalances_orderDirection = desc, fromDate: String, toDate: String, fromValue: String, toValue: String): historicalBalances_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/transactions`\nGet transactions with their associated transfers and delegations, with optional filtering and sorting\n" + """ + Get transactions with their associated transfers and delegations, with optional filtering and sorting + """ transactions( limit: PositiveInt = 50 offset: NonNegativeInt @@ -114,73 +128,82 @@ type Query { includes: JSON ): transactions_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/last-update`\nGet the last update time\n" + """Get the last update time""" lastUpdate(chart: queryInput_lastUpdate_chart!): lastUpdate_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/delegation-percentage`\nGet delegation percentage day buckets with forward-fill\n" + """Get delegation percentage day buckets with forward-fill""" delegationPercentageByDay(startDate: String, endDate: String, orderDirection: queryInput_delegationPercentageByDay_orderDirection = asc, limit: NonNegativeInt = 365, after: String, before: String): delegationPercentageByDay_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/accounts/{args.address}/voting-powers/historical`\nReturns a list of voting power changes for a specific account\n" + """Returns a list of voting power changes for a specific account""" historicalVotingPowerByAccountId(address: String!, skip: NonNegativeInt, limit: PositiveInt = 10, orderBy: queryInput_historicalVotingPowerByAccountId_orderBy = timestamp, orderDirection: queryInput_historicalVotingPowerByAccountId_orderDirection = desc, fromDate: String, toDate: String, fromValue: String, toValue: String): historicalVotingPowerByAccountId_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/voting-powers/historical`\nReturns a list of voting power changes.\n" + """Returns a list of voting power changes.""" historicalVotingPower(skip: NonNegativeInt, limit: PositiveInt = 10, orderBy: queryInput_historicalVotingPower_orderBy = timestamp, orderDirection: queryInput_historicalVotingPower_orderDirection = desc, fromDate: String, toDate: String, fromValue: String, toValue: String, address: String): historicalVotingPower_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/accounts/voting-powers/variations`\nReturns a mapping of the voting power changes within a time frame for the given addresses\n" + """ + Returns a mapping of the voting power changes within a time frame for the given addresses + """ votingPowerVariations(limit: PositiveInt = 20, skip: NonNegativeInt, orderDirection: queryInput_votingPowerVariations_orderDirection = desc, addresses: JSON, fromDate: String, toDate: String): votingPowerVariations_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/accounts/{args.address}/voting-powers/variations`\nReturns a the changes to voting power by period and accountId\n" + """Returns a the changes to voting power by period and accountId""" votingPowerVariationsByAccountId(address: String!, fromDate: String, toDate: String): votingPowerVariationsByAccountId_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/voting-powers`\nReturns sorted and paginated account voting power records\n" + """Returns sorted and paginated account voting power records""" votingPowers(limit: PositiveInt = 20, skip: NonNegativeInt, orderDirection: queryInput_votingPowers_orderDirection = desc, orderBy: queryInput_votingPowers_orderBy = votingPower, addresses: JSON, fromValue: String, toValue: String, fromDate: String, toDate: String): votingPowers_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/voting-powers/{args.accountId}`\nReturns voting power information for a specific address (account)\n" + """Returns voting power information for a specific address (account)""" votingPowerByAccountId(accountId: String!, fromDate: Float, toDate: Float): votingPowerByAccountId_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/balances/variations`\nReturns a mapping of the biggest variations to account balances associated by account address\n" + """ + Returns a mapping of the biggest variations to account balances associated by account address + """ accountBalanceVariations(fromDate: String, toDate: String, limit: PositiveInt = 20, skip: NonNegativeInt, orderDirection: queryInput_accountBalanceVariations_orderDirection = desc, addresses: JSON): accountBalanceVariations_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/accounts/{args.address}/balances/variations`\nReturns a the changes to balance by period and accountId\n" + """Returns a the changes to balance by period and accountId""" accountBalanceVariationsByAccountId(address: String!, fromDate: String, toDate: String): accountBalanceVariationsByAccountId_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/balances`\nReturns sorted and paginated account balance records\n" + """Returns sorted and paginated account balance records""" accountBalances(fromDate: String, toDate: String, limit: PositiveInt = 20, skip: NonNegativeInt, orderDirection: queryInput_accountBalances_orderDirection = desc, orderBy: queryInput_accountBalances_orderBy = balance, excludeDaoAddresses: Boolean, addresses: JSON, delegates: JSON, fromValue: String, toValue: String): accountBalances_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/accounts/{args.address}/balances`\nReturns account balance information for a specific address\n" + """Returns account balance information for a specific address""" accountBalanceByAccountId(address: String!, fromDate: String, toDate: String): accountBalanceByAccountId_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/balances/{args.address}/interactions`\nReturns a mapping of the largest interactions between accounts. \nPositive amounts signify net token transfers FROM
, whilst negative amounts refer to net transfers TO
\n" + """ + Returns a mapping of the largest interactions between accounts. + Positive amounts signify net token transfers FROM
, whilst negative amounts refer to net transfers TO
+ """ accountInteractions(address: String!, fromDate: String, toDate: String, limit: PositiveInt = 20, skip: NonNegativeInt, orderDirection: queryInput_accountInteractions_orderDirection = desc, minAmount: String, maxAmount: String, orderBy: queryInput_accountInteractions_orderBy = count, filterAddress: String): accountInteractions_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/accounts/{args.address}/transfers`\nGet transfers of a given address\n" + """Get transfers of a given address""" transfers(address: String!, limit: Float = 10, offset: Float, sortBy: queryInput_transfers_sortBy = timestamp, sortOrder: queryInput_transfers_sortOrder = asc, from: String, to: String, fromDate: Float, toDate: Float, fromValue: String, toValue: String): transfers_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/proposals/{args.id}/votes`\nReturns a paginated list of votes cast on a specific proposal\n" + """Returns a paginated list of votes cast on a specific proposal""" votesByProposalId(id: String!, skip: NonNegativeInt, limit: Float = 10, voterAddressIn: JSON, orderBy: queryInput_votesByProposalId_orderBy = timestamp, orderDirection: queryInput_votesByProposalId_orderDirection = desc, support: Float, fromDate: Float, toDate: Float): votesByProposalId_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/votes`\nGet all votes ordered by timestamp or voting power\n" + """Get all votes ordered by timestamp or voting power""" votes(skip: NonNegativeInt, limit: Float = 10, voterAddressIn: JSON, orderBy: queryInput_votes_orderBy = timestamp, orderDirection: queryInput_votes_orderDirection = desc, support: Float, fromDate: Float, toDate: Float): votes_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/proposals/{args.id}/non-voters`\nReturns the active delegates that did not vote on a given proposal\n" + """Returns the active delegates that did not vote on a given proposal""" proposalNonVoters(id: String!, skip: NonNegativeInt, limit: PositiveInt = 10, orderDirection: queryInput_proposalNonVoters_orderDirection = desc, addresses: JSON): proposalNonVoters_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/dao`\nReturns current governance parameters for this DAO\n" + """Returns current governance parameters for this DAO""" dao: dao_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/token-metrics`\nReturns token related metrics for a single metric type.\n" + """Returns token related metrics for a single metric type.""" tokenMetrics(metricType: queryInput_tokenMetrics_metricType!, startDate: Float, endDate: Float, orderDirection: queryInput_tokenMetrics_orderDirection = asc, limit: NonNegativeInt = 365, skip: NonNegativeInt): tokenMetrics_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/offchain/proposals`\nReturns a list of offchain (Snapshot) proposals\n" + """Returns a list of offchain (Snapshot) proposals""" offchainProposals(skip: NonNegativeInt, limit: PositiveInt = 10, orderDirection: queryInput_offchainProposals_orderDirection = desc, status: JSON, fromDate: Float): offchainProposals_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/offchain/proposals/{args.id}`\nReturns a single offchain (Snapshot) proposal by its ID\n" + """Returns a single offchain (Snapshot) proposal by its ID""" offchainProposalById(id: String!): offchainProposalById_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/offchain/votes`\nReturns a list of offchain (Snapshot) votes\n" + """Returns a list of offchain (Snapshot) votes""" votesOffchain(skip: NonNegativeInt, limit: Float = 10, orderBy: queryInput_votesOffchain_orderBy = timestamp, orderDirection: queryInput_votesOffchain_orderDirection = desc, voterAddresses: JSON, fromDate: Float, toDate: Float): votesOffchain_200_response - "\n>**Method**: `GET`\n>**Base URL**: `http://localhost:42069`\n>**Path**: `/offchain/proposals/{args.id}/votes`\nReturns a paginated list of offchain (Snapshot) votes for a specific proposal\n" + """ + Returns a paginated list of offchain (Snapshot) votes for a specific proposal + """ votesOffchainByProposalId(id: String!, skip: NonNegativeInt, limit: Float = 10, orderBy: queryInput_votesOffchainByProposalId_orderBy = timestamp, orderDirection: queryInput_votesOffchainByProposalId_orderDirection = desc, voterAddresses: JSON, fromDate: Float, toDate: Float): votesOffchainByProposalId_200_response """ diff --git a/apps/api-gateway/src/index.ts b/apps/api-gateway/src/index.ts index 74a5657c5..d123ef4ab 100644 --- a/apps/api-gateway/src/index.ts +++ b/apps/api-gateway/src/index.ts @@ -25,6 +25,11 @@ const bootstrap = async () => { }); const server = createServer(async (req, res) => { + if (req.url === "/health") { + res.writeHead(200, { "Content-Type": "application/json" }); + res.end(JSON.stringify({ status: "ok" })); + return; + } if (req.url === "/metrics") { try { const result = await exporter.collect(); diff --git a/apps/api/.env.example b/apps/api/.env.example index b1886bf75..be2d0222a 100644 --- a/apps/api/.env.example +++ b/apps/api/.env.example @@ -3,5 +3,15 @@ DAO_ID=ENS CHAIN_ID=1 RPC_URL= + +# Token Price +COINGECKO_API_KEY= +COINGECKO_API_URL= + +# Liquid treasury +TREASURY_DATA_PROVIDER_ID= +TREASURY_DATA_PROVIDER_API_KEY= +TREASURY_DATA_PROVIDER_API_URL= + # OpenTelemetry collector endpoint (OTLP HTTP). Leave unset to skip OTLP push. OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 diff --git a/apps/api/package.json b/apps/api/package.json index 1da03b918..8e4cc1a54 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -15,8 +15,7 @@ "build:watch": "tsc --watch", "lint": "eslint src", "lint:fix": "eslint src --fix", - "dev": "tsx watch cmd/index.ts", - "dev:aave": "tsx watch cmd/aave.ts" + "dev": "sh -c 'dao_id=\"$1\"; if [ -n \"$dao_id\" ] && [ -f \"cmd/$dao_id.ts\" ]; then exec tsx watch \"cmd/$dao_id.ts\"; else exec tsx watch cmd/index.ts; fi' --" }, "keywords": [], "author": "", diff --git a/apps/api/src/clients/index.ts b/apps/api/src/clients/index.ts index d18400cb4..5fbcd437c 100644 --- a/apps/api/src/clients/index.ts +++ b/apps/api/src/clients/index.ts @@ -9,6 +9,7 @@ export * from "./zk"; export * from "./uni"; export * from "./shu"; export * from "./aave"; +export * from "./truefi"; export interface DAOClient { getDaoId: () => string; diff --git a/apps/api/src/clients/truefi/abi/governor.ts b/apps/api/src/clients/truefi/abi/governor.ts new file mode 100644 index 000000000..7e9110ece --- /dev/null +++ b/apps/api/src/clients/truefi/abi/governor.ts @@ -0,0 +1,37 @@ +export const GovernorAbi = [ + { + inputs: [], + name: "votingDelay", + outputs: [{ internalType: "uint256", name: "", type: "uint256" }], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "votingPeriod", + outputs: [{ internalType: "uint256", name: "", type: "uint256" }], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "proposalThreshold", + outputs: [{ internalType: "uint256", name: "", type: "uint256" }], + stateMutability: "view", + type: "function", + }, + { + inputs: [{ internalType: "uint256", name: "timepoint", type: "uint256" }], + name: "quorum", + outputs: [{ internalType: "uint256", name: "", type: "uint256" }], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "timelock", + outputs: [{ internalType: "address", name: "", type: "address" }], + stateMutability: "view", + type: "function", + }, +] as const; diff --git a/apps/api/src/clients/truefi/abi/index.ts b/apps/api/src/clients/truefi/abi/index.ts new file mode 100644 index 000000000..c1c0da710 --- /dev/null +++ b/apps/api/src/clients/truefi/abi/index.ts @@ -0,0 +1 @@ +export { GovernorAbi as TrueFiGovernorAbi } from "./governor"; diff --git a/apps/api/src/clients/truefi/index.ts b/apps/api/src/clients/truefi/index.ts new file mode 100644 index 000000000..b8f691a1c --- /dev/null +++ b/apps/api/src/clients/truefi/index.ts @@ -0,0 +1,80 @@ +import { Account, Address, Chain, Client, Transport } from "viem"; + +import { DAOClient } from "@/clients"; + +import { GovernorBase } from "../governor.base"; + +import { TrueFiGovernorAbi } from "./abi"; + +export class TrueFiClient< + TTransport extends Transport = Transport, + TChain extends Chain = Chain, + TAccount extends Account | undefined = Account | undefined, +> + extends GovernorBase + implements DAOClient +{ + protected abi: typeof TrueFiGovernorAbi; + protected address: Address; + + constructor(client: Client, address: Address) { + super(client); + this.address = address; + this.abi = TrueFiGovernorAbi; + } + + getDaoId(): string { + return "TRUEFI"; + } + + async getQuorum(): Promise { + return this.getCachedQuorum(async () => { + const blockNumber = await this.getBlockNumber(); + const targetBlock = blockNumber - 10n; + return this.readContract({ + abi: this.abi, + address: this.address, + functionName: "quorum", + args: [targetBlock < 0n ? 0n : targetBlock], + }); + }); + } + + async getTimelockDelay(): Promise { + if (!this.cache.timelockDelay) { + const timelockAddress = await this.readContract({ + abi: this.abi, + address: this.address, + functionName: "timelock", + }); + this.cache.timelockDelay = await this.readContract({ + abi: [ + { + constant: true, + inputs: [], + outputs: [{ internalType: "uint256", name: "", type: "uint256" }], + payable: false, + stateMutability: "view", + type: "function", + name: "getMinDelay", + }, + ], + address: timelockAddress, + functionName: "getMinDelay", + }); + } + return this.cache.timelockDelay; + } + + alreadySupportCalldataReview(): boolean { + return true; + } + + calculateQuorum(votes: { + forVotes: bigint; + againstVotes: bigint; + abstainVotes: bigint; + }): bigint { + return votes.forVotes + votes.abstainVotes; + } +} diff --git a/apps/api/src/lib/client.ts b/apps/api/src/lib/client.ts index 51c36acf4..75e43cc21 100644 --- a/apps/api/src/lib/client.ts +++ b/apps/api/src/lib/client.ts @@ -13,6 +13,7 @@ import { DAOClient, SHUClient, AAVEClient, + TrueFiClient, } from "@/clients"; import { CONTRACT_ADDRESSES } from "./constants"; @@ -72,6 +73,10 @@ export function getClient< linearVotingStrategy.address, ); } + case DaoIdEnum.TRUEFI: { + const { governor } = CONTRACT_ADDRESSES[daoId]; + return new TrueFiClient(client, governor.address); + } case DaoIdEnum.AAVE: { return new AAVEClient(client); } diff --git a/apps/api/src/lib/constants.ts b/apps/api/src/lib/constants.ts index 95aaf98fe..7ae28b882 100644 --- a/apps/api/src/lib/constants.ts +++ b/apps/api/src/lib/constants.ts @@ -181,6 +181,21 @@ export const CONTRACT_ADDRESSES = { startBlock: 19021698, }, }, + [DaoIdEnum.TRUEFI]: { + blockTime: 12, + tokenType: "ERC20", + // https://etherscan.io/address/0x23696914Ca9737466D8553a2d619948f548Ee424 + token: { + address: "0x23696914Ca9737466D8553a2d619948f548Ee424", + decimals: 8, + startBlock: 11884565, + }, + // https://etherscan.io/address/0x585CcA060422ef1779Fb0Dd710A49e7C49A823C9 + governor: { + address: "0x585CcA060422ef1779Fb0Dd710A49e7C49A823C9", + startBlock: 14789712, + }, + }, [DaoIdEnum.AAVE]: { blockTime: 12, tokenType: "ERC20", @@ -334,6 +349,9 @@ export const TreasuryAddresses: Record> = { [DaoIdEnum.ZK]: { timelock: "0xe5d21A9179CA2E1F0F327d598D464CcF60d89c3d", }, + [DaoIdEnum.TRUEFI]: { + timelock: "0x4f4AC7a7032A14243aEbDa98Ee04a5D7Fe293d07", + }, }; export enum ProposalStatus { diff --git a/apps/api/src/lib/enums.ts b/apps/api/src/lib/enums.ts index f79d1e50a..3ab22743b 100644 --- a/apps/api/src/lib/enums.ts +++ b/apps/api/src/lib/enums.ts @@ -11,6 +11,7 @@ export enum DaoIdEnum { COMP = "COMP", OBOL = "OBOL", ZK = "ZK", + TRUEFI = "TRUEFI", } export const SECONDS_IN_DAY = 24 * 60 * 60; diff --git a/apps/api/src/lib/eventRelevance.ts b/apps/api/src/lib/eventRelevance.ts index 87e1b0514..4cd0cb72b 100644 --- a/apps/api/src/lib/eventRelevance.ts +++ b/apps/api/src/lib/eventRelevance.ts @@ -218,6 +218,13 @@ const DAO_RELEVANCE_THRESHOLDS: Record = { [FeedEventType.PROPOSAL]: EMPTY_THRESHOLDS, [FeedEventType.PROPOSAL_EXTENDED]: EMPTY_THRESHOLDS, }, + [DaoIdEnum.TRUEFI]: { + [FeedEventType.TRANSFER]: EMPTY_THRESHOLDS, + [FeedEventType.DELEGATION]: EMPTY_THRESHOLDS, + [FeedEventType.VOTE]: EMPTY_THRESHOLDS, + [FeedEventType.PROPOSAL]: EMPTY_THRESHOLDS, + [FeedEventType.PROPOSAL_EXTENDED]: EMPTY_THRESHOLDS, + }, }; export function getDaoRelevanceThreshold(daoId: DaoIdEnum): EventRelevanceMap { diff --git a/apps/api/src/services/coingecko/types.ts b/apps/api/src/services/coingecko/types.ts index a78335c18..cf681dc26 100644 --- a/apps/api/src/services/coingecko/types.ts +++ b/apps/api/src/services/coingecko/types.ts @@ -24,6 +24,7 @@ export const CoingeckoTokenIdEnum: Record = { OBOL: "obol-2", ZK: "zksync", SHU: "shutter", + TRUEFI: "truefi", } as const; export const CoingeckoIdToAssetPlatformId = { @@ -38,6 +39,7 @@ export const CoingeckoIdToAssetPlatformId = { [CoingeckoTokenIdEnum.OBOL]: AssetPlatformEnum.ETHEREUM, [CoingeckoTokenIdEnum.ZK]: AssetPlatformEnum.ZKSYNC, [CoingeckoTokenIdEnum.SHU]: AssetPlatformEnum.ETHEREUM, + [CoingeckoTokenIdEnum.TRUEFI]: AssetPlatformEnum.ETHEREUM, } as const; export interface CoingeckoHistoricalMarketData { diff --git a/apps/dashboard/.storybook/main.ts b/apps/dashboard/.storybook/main.ts index fadaf5b9c..3e2d0eef7 100644 --- a/apps/dashboard/.storybook/main.ts +++ b/apps/dashboard/.storybook/main.ts @@ -4,9 +4,11 @@ import { dirname } from "path"; import { resolve } from "path"; import { fileURLToPath } from "url"; import dotenv from "dotenv"; +import { createRequire } from "module"; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); +const require = createRequire(import.meta.url); dotenv.config({ path: resolve(__dirname, "../.env.local"), @@ -30,6 +32,17 @@ const config: StorybookConfig = { }, staticDirs: ["../public"], + webpackFinal: async (config) => { + config.resolve = config.resolve ?? {}; + config.resolve.alias = { + ...config.resolve.alias, + "@apollo/client": dirname( + require.resolve("@apollo/client/package.json"), + ), + }; + return config; + }, + env: (config) => ({ ...config, FIGMA_TOKEN: process.env.FIGMA_TOKEN || "", diff --git a/apps/dashboard/.storybook/preview.ts b/apps/dashboard/.storybook/preview.ts index 6c8d5a3a9..119c2408b 100644 --- a/apps/dashboard/.storybook/preview.ts +++ b/apps/dashboard/.storybook/preview.ts @@ -1,9 +1,24 @@ import type { Preview } from "@storybook/nextjs"; import React, { useEffect } from "react"; import { TooltipProvider } from "@radix-ui/react-tooltip"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import { + ApolloClient, + ApolloLink, + ApolloProvider, + InMemoryCache, + Observable, +} from "@apollo/client"; import "../app/globals.css"; +const queryClient = new QueryClient(); + +const mockApolloClient = new ApolloClient({ + link: new ApolloLink(() => new Observable(() => {})), + cache: new InMemoryCache(), +}); + const preview: Preview = { parameters: { backgrounds: { @@ -34,12 +49,20 @@ const preview: Preview = { }, []); return React.createElement( - TooltipProvider, - null, + ApolloProvider, + { client: mockApolloClient }, React.createElement( - "div", - { className: "dark" }, - React.createElement(Story), + QueryClientProvider, + { client: queryClient }, + React.createElement( + TooltipProvider, + null, + React.createElement( + "div", + { className: "dark" }, + React.createElement(Story), + ), + ), ), ); }, diff --git a/apps/dashboard/features/attack-profitability/AttackProfitabilitySection.tsx b/apps/dashboard/features/attack-profitability/AttackProfitabilitySection.tsx index f8bc115aa..36c7b2334 100644 --- a/apps/dashboard/features/attack-profitability/AttackProfitabilitySection.tsx +++ b/apps/dashboard/features/attack-profitability/AttackProfitabilitySection.tsx @@ -11,7 +11,7 @@ import { } from "@/features/attack-profitability/components"; import { useLastUpdateLabel } from "@/features/attack-profitability/hooks/useLastUpdateLabel"; import { TheCardChartLayout, SwitcherDate } from "@/shared/components"; -import { BadgeStatus } from "@/shared/components/design-system/badges/BadgeStatus"; +import { BadgeStatus } from "@/shared/components/design-system/badges"; import type { Option } from "@/shared/components/dropdowns/Dropdown"; import { Dropdown } from "@/shared/components/dropdowns/Dropdown"; import type { AttackProfitabilityConfig } from "@/shared/dao-config/types"; diff --git a/apps/dashboard/features/dao-overview/DaoOverviewSection.tsx b/apps/dashboard/features/dao-overview/DaoOverviewSection.tsx index 7c6f9e072..29aa9eeb4 100644 --- a/apps/dashboard/features/dao-overview/DaoOverviewSection.tsx +++ b/apps/dashboard/features/dao-overview/DaoOverviewSection.tsx @@ -85,7 +85,7 @@ export const DaoOverviewSection = ({ daoId }: { daoId: DaoIdEnum }) => { icon={} text="This DAO is needing review. Enable monitoring for faster governance risk signals." storageKey={`donate-banner-dismissed-${daoId}`} - link={{ + links={{ url: `/donate`, text: "Donate", openInNewTab: true, diff --git a/apps/dashboard/features/dao-overview/components/DaoOverviewHeader.tsx b/apps/dashboard/features/dao-overview/components/DaoOverviewHeader.tsx index f3713aa50..4f534b5dd 100644 --- a/apps/dashboard/features/dao-overview/components/DaoOverviewHeader.tsx +++ b/apps/dashboard/features/dao-overview/components/DaoOverviewHeader.tsx @@ -1,7 +1,7 @@ import { DollarSign } from "lucide-react"; import { SkeletonRow, TooltipInfo } from "@/shared/components"; -import { BadgeStatus } from "@/shared/components/design-system/badges/BadgeStatus"; +import { BadgeStatus } from "@/shared/components/design-system/badges"; import { DefaultLink } from "@/shared/components/design-system/links/default-link"; import { EthereumIcon } from "@/shared/components/icons/EthereumIcon"; import { OPMainnetIcon } from "@/shared/components/icons/OPMainnetIcon"; diff --git a/apps/dashboard/features/dao-overview/components/OngoingProposalBanner.tsx b/apps/dashboard/features/dao-overview/components/OngoingProposalBanner.tsx index 93603fad8..5ce06b8f5 100644 --- a/apps/dashboard/features/dao-overview/components/OngoingProposalBanner.tsx +++ b/apps/dashboard/features/dao-overview/components/OngoingProposalBanner.tsx @@ -33,7 +33,7 @@ export const OngoingProposalBanner = ({ daoId }: { daoId: string }) => { icon={} text="This DAO has an ongoing proposal, cast your vote now." storageKey={`banner-dismissed-${daoId}`} - link={{ + links={{ url: `/${daoId.toLowerCase()}/governance`, text: "View proposals", openInNewTab: false, diff --git a/apps/dashboard/features/feed/components/ActivityFeedFilters.tsx b/apps/dashboard/features/feed/components/ActivityFeedFilters.tsx index cc98e1a85..77def0432 100644 --- a/apps/dashboard/features/feed/components/ActivityFeedFilters.tsx +++ b/apps/dashboard/features/feed/components/ActivityFeedFilters.tsx @@ -11,7 +11,7 @@ import { DrawerContent, DrawerHeader, } from "@/shared/components"; -import { RadioButton } from "@/shared/components/design-system/buttons/RadioButton"; +import { RadioButton } from "@/shared/components/design-system/form/fields"; import { Input } from "@/shared/components/design-system/form/fields/input/Input"; interface ActivityFeedFiltersDrawerProps { diff --git a/apps/dashboard/features/feed/components/FeedEventItem.tsx b/apps/dashboard/features/feed/components/FeedEventItem.tsx index 7e33f3195..e83e34165 100644 --- a/apps/dashboard/features/feed/components/FeedEventItem.tsx +++ b/apps/dashboard/features/feed/components/FeedEventItem.tsx @@ -19,7 +19,7 @@ import { FeedEventRelevance, FeedEventType } from "@/features/feed/types"; import type { EntityType } from "@/features/holders-and-delegates/components/HoldersAndDelegatesDrawer"; import { CopyAndPasteButton } from "@/shared/components/buttons/CopyAndPasteButton"; import { EnsAvatar } from "@/shared/components/design-system/avatars/ens-avatar/EnsAvatar"; -import { BadgeStatus } from "@/shared/components/design-system/badges/BadgeStatus"; +import { BadgeStatus } from "@/shared/components/design-system/badges"; import { DividerDefault } from "@/shared/components/design-system/divider/DividerDefault"; import { BulletDivider } from "@/shared/components/design-system/section"; import daoConfig from "@/shared/dao-config"; diff --git a/apps/dashboard/features/governance/components/proposal-overview/ProposalInfoSection.tsx b/apps/dashboard/features/governance/components/proposal-overview/ProposalInfoSection.tsx index 344036a4c..de61088bf 100644 --- a/apps/dashboard/features/governance/components/proposal-overview/ProposalInfoSection.tsx +++ b/apps/dashboard/features/governance/components/proposal-overview/ProposalInfoSection.tsx @@ -11,7 +11,7 @@ import { formatUnits } from "viem"; import { ProposalInfoText } from "@/features/governance/components/proposal-overview/ProposalInfoText"; import { getTimeLeftText } from "@/features/governance/utils"; -import { BulletDivider } from "@/shared/components/design-system/section/BulletDivider"; +import { BulletDivider } from "@/shared/components/design-system/section"; import { Tooltip } from "@/shared/components/design-system/tooltips/Tooltip"; import { formatNumberUserReadable } from "@/shared/utils"; diff --git a/apps/dashboard/features/governance/components/proposal-overview/ProposalItem.tsx b/apps/dashboard/features/governance/components/proposal-overview/ProposalItem.tsx index 576cfb949..777f4ed45 100644 --- a/apps/dashboard/features/governance/components/proposal-overview/ProposalItem.tsx +++ b/apps/dashboard/features/governance/components/proposal-overview/ProposalItem.tsx @@ -8,7 +8,7 @@ import type { Address } from "viem"; import type { Proposal } from "@/features/governance/types"; import { ProposalStatus } from "@/features/governance/types"; import { EnsAvatar } from "@/shared/components/design-system/avatars/ens-avatar/EnsAvatar"; -import { BulletDivider } from "@/shared/components/design-system/section/BulletDivider"; +import { BulletDivider } from "@/shared/components/design-system/section"; import type { DaoIdEnum } from "@/shared/types/daos"; import { cn, formatNumberUserReadable } from "@/shared/utils"; diff --git a/apps/dashboard/features/governance/components/proposal-overview/TitleSection.tsx b/apps/dashboard/features/governance/components/proposal-overview/TitleSection.tsx index 3bcd39d4e..f2e412b57 100644 --- a/apps/dashboard/features/governance/components/proposal-overview/TitleSection.tsx +++ b/apps/dashboard/features/governance/components/proposal-overview/TitleSection.tsx @@ -7,7 +7,7 @@ import { ProposalBadge } from "@/features/governance/components/proposal-overvie import type { ProposalStatus } from "@/features/governance/types"; import { EnsAvatar } from "@/shared/components/design-system/avatars/ens-avatar/EnsAvatar"; import { DefaultLink } from "@/shared/components/design-system/links/default-link"; -import { BulletDivider } from "@/shared/components/design-system/section/BulletDivider"; +import { BulletDivider } from "@/shared/components/design-system/section"; import daoConfigByDaoId from "@/shared/dao-config"; import type { DaoIdEnum } from "@/shared/types/daos"; diff --git a/apps/dashboard/features/governance/components/proposal-overview/VoteOption.tsx b/apps/dashboard/features/governance/components/proposal-overview/VoteOption.tsx index 55f728e57..ba573ae57 100644 --- a/apps/dashboard/features/governance/components/proposal-overview/VoteOption.tsx +++ b/apps/dashboard/features/governance/components/proposal-overview/VoteOption.tsx @@ -1,6 +1,6 @@ import { formatUnits } from "viem"; -import { RadioIndicator } from "@/shared/components/design-system/buttons/RadioIndicator"; +import { RadioIndicator } from "@/shared/components/design-system/form/fields"; import { cn, formatNumberUserReadable } from "@/shared/utils"; interface VoteOptionProps { diff --git a/apps/dashboard/features/holders-and-delegates/token-holder/TokenHolders.tsx b/apps/dashboard/features/holders-and-delegates/token-holder/TokenHolders.tsx index faa8368a8..7d55871c5 100644 --- a/apps/dashboard/features/holders-and-delegates/token-holder/TokenHolders.tsx +++ b/apps/dashboard/features/holders-and-delegates/token-holder/TokenHolders.tsx @@ -15,7 +15,7 @@ import { DEFAULT_ITEMS_PER_PAGE } from "@/features/holders-and-delegates/utils"; import { Button } from "@/shared/components"; import { CopyAndPasteButton } from "@/shared/components/buttons/CopyAndPasteButton"; import { EnsAvatar } from "@/shared/components/design-system/avatars/ens-avatar/EnsAvatar"; -import { BadgeStatus } from "@/shared/components/design-system/badges/BadgeStatus"; +import { BadgeStatus } from "@/shared/components/design-system/badges"; import { AddressFilter } from "@/shared/components/design-system/table/filters/AddressFilter"; import { Percentage } from "@/shared/components/design-system/table/Percentage"; import { Table } from "@/shared/components/design-system/table/Table"; diff --git a/apps/dashboard/features/holders-and-delegates/token-holder/drawer/balance-history/BalanceHistoryTable.tsx b/apps/dashboard/features/holders-and-delegates/token-holder/drawer/balance-history/BalanceHistoryTable.tsx index 957bf9089..01da7759a 100644 --- a/apps/dashboard/features/holders-and-delegates/token-holder/drawer/balance-history/BalanceHistoryTable.tsx +++ b/apps/dashboard/features/holders-and-delegates/token-holder/drawer/balance-history/BalanceHistoryTable.tsx @@ -17,7 +17,7 @@ import { DEFAULT_ITEMS_PER_PAGE } from "@/features/holders-and-delegates/utils"; import { SkeletonRow, Button, IconButton } from "@/shared/components"; import { CopyAndPasteButton } from "@/shared/components/buttons/CopyAndPasteButton"; import { EnsAvatar } from "@/shared/components/design-system/avatars/ens-avatar/EnsAvatar"; -import { BadgeStatus } from "@/shared/components/design-system/badges/BadgeStatus"; +import { BadgeStatus } from "@/shared/components/design-system/badges"; import { DateCell } from "@/shared/components/design-system/table/cells/DateCell"; import { AddressFilter } from "@/shared/components/design-system/table/filters"; import { AmountFilter } from "@/shared/components/design-system/table/filters/amount-filter/AmountFilter"; diff --git a/apps/dashboard/features/panel/components/PanelTable.tsx b/apps/dashboard/features/panel/components/PanelTable.tsx index ee2358ff4..3baab6518 100644 --- a/apps/dashboard/features/panel/components/PanelTable.tsx +++ b/apps/dashboard/features/panel/components/PanelTable.tsx @@ -22,7 +22,7 @@ import { Table } from "@/shared/components/design-system/table/Table"; import { Tooltip } from "@/shared/components/design-system/tooltips/Tooltip"; import daoConfigByDaoId from "@/shared/dao-config"; import { DaoIdEnum } from "@/shared/types/daos"; -import { BadgeStatus } from "@/shared/components/design-system/badges/BadgeStatus"; +import { BadgeStatus } from "@/shared/components/design-system/badges"; type PanelDao = { dao: string; diff --git a/apps/dashboard/shared/components/cards/RiskLevelCardSmall.tsx b/apps/dashboard/shared/components/cards/RiskLevelCardSmall.tsx index 96472edc3..eae468b5f 100644 --- a/apps/dashboard/shared/components/cards/RiskLevelCardSmall.tsx +++ b/apps/dashboard/shared/components/cards/RiskLevelCardSmall.tsx @@ -8,7 +8,7 @@ import { } from "lucide-react"; import type { ReactNode } from "react"; -import { BadgeStatus } from "@/shared/components/design-system/badges/BadgeStatus"; +import { BadgeStatus } from "@/shared/components/design-system/badges"; import { RiskLevel } from "@/shared/types/enums/RiskLevel"; import { cn } from "@/shared/utils/"; diff --git a/apps/dashboard/shared/components/containers/TheSectionLayout.tsx b/apps/dashboard/shared/components/containers/TheSectionLayout.tsx index 0e59eca60..9f65a944d 100644 --- a/apps/dashboard/shared/components/containers/TheSectionLayout.tsx +++ b/apps/dashboard/shared/components/containers/TheSectionLayout.tsx @@ -1,7 +1,7 @@ import type { ReactNode } from "react"; import { SubSection } from "@/shared/components/design-system/section"; -import { SectionTitle } from "@/shared/components/design-system/section/SectionTitle"; +import { SectionTitle } from "@/shared/components/design-system/section"; import { getDateRange, cn } from "@/shared/utils"; interface TheSectionLayoutProps { diff --git a/apps/dashboard/shared/components/design-system/alerts/banner-alert/BannerAlert.stories.tsx b/apps/dashboard/shared/components/design-system/alerts/banner-alert/BannerAlert.stories.tsx index 5fc285ba6..d31985973 100644 --- a/apps/dashboard/shared/components/design-system/alerts/banner-alert/BannerAlert.stories.tsx +++ b/apps/dashboard/shared/components/design-system/alerts/banner-alert/BannerAlert.stories.tsx @@ -5,7 +5,7 @@ import { BannerAlert } from "@/shared/components/design-system/alerts/banner-ale import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; const meta: Meta = { - title: "Design System/Alerts/BannerAlert", + title: "Feedback/Alerts/BannerAlert", component: BannerAlert, parameters: { layout: "fullwidth", @@ -15,7 +15,7 @@ const meta: Meta = { argTypes: { icon: { control: false }, text: { control: "text", description: "Banner message text" }, - link: { control: "object", description: "Optional link" }, + links: { control: "object", description: "Optional link or links" }, storageKey: { control: "text", description: "localStorage key to persist dismissed state", @@ -66,7 +66,7 @@ export const AllStates: Story = { } text="Check out the latest protocol updates." - link={{ url: "https://example.com", text: "Learn more" }} + links={{ url: "https://example.com", text: "Learn more" }} storageKey="sb-states-default-link" variant="default" /> @@ -76,7 +76,7 @@ export const AllStates: Story = { } text="Important security update available." - link={{ url: "https://example.com/security", text: "Update now" }} + links={{ url: "https://example.com/security", text: "Update now" }} storageKey="sb-states-highlight-link" variant="highlight" /> diff --git a/apps/dashboard/shared/components/design-system/alerts/banner-alert/BannerAlert.tsx b/apps/dashboard/shared/components/design-system/alerts/banner-alert/BannerAlert.tsx index 11a4bcc75..938fbb5e0 100644 --- a/apps/dashboard/shared/components/design-system/alerts/banner-alert/BannerAlert.tsx +++ b/apps/dashboard/shared/components/design-system/alerts/banner-alert/BannerAlert.tsx @@ -1,29 +1,14 @@ "use client"; import { X } from "lucide-react"; -import type { ReactNode } from "react"; import { useState, useEffect } from "react"; import { IconButton } from "@/shared/components/design-system/buttons/icon-button/IconButton"; import { DefaultLink } from "@/shared/components/design-system/links/default-link"; -import { BulletDivider } from "@/shared/components/design-system/section/BulletDivider"; +import { BulletDivider } from "@/shared/components/design-system/section"; import { cn } from "@/shared/utils/cn"; -type BannerLink = { - url: string; - text: string; - openInNewTab?: boolean; -}; - -interface BannerAlertProps { - icon: ReactNode; - text: string; - link?: BannerLink; - links?: BannerLink[]; - storageKey: string; - variant?: "default" | "highlight"; - persist?: boolean; -} +import type { BannerAlertProps } from "@/shared/components/design-system/alerts/types"; const mapVariantToColor = { default: "bg-surface-banner-default", @@ -33,11 +18,11 @@ const mapVariantToColor = { export const BannerAlert = ({ icon, text, - link, links, storageKey, variant = "default", persist = true, + className, }: BannerAlertProps) => { // Initialize as null to prevent rendering during hydration const [isVisible, setIsVisible] = useState(null); @@ -63,13 +48,14 @@ export const BannerAlert = ({ // Don't render anything until we've checked localStorage if (isVisible === null || isVisible === false) return null; - const allLinks = links ?? (link ? [link] : []); + const allLinks = links ? (Array.isArray(links) ? links : [links]) : []; return (
diff --git a/apps/dashboard/shared/components/design-system/alerts/index.ts b/apps/dashboard/shared/components/design-system/alerts/index.ts new file mode 100644 index 000000000..13bbd1f2f --- /dev/null +++ b/apps/dashboard/shared/components/design-system/alerts/index.ts @@ -0,0 +1,7 @@ +export { InlineAlert } from "@/shared/components/design-system/alerts/inline-alert/InlineAlert"; +export { BannerAlert } from "@/shared/components/design-system/alerts/banner-alert/BannerAlert"; +export type { + InlineAlertProps, + BannerAlertProps, + BannerLink, +} from "@/shared/components/design-system/alerts/types"; diff --git a/apps/dashboard/shared/components/design-system/alerts/inline-alert/InlineAlert.stories.tsx b/apps/dashboard/shared/components/design-system/alerts/inline-alert/InlineAlert.stories.tsx index 29f0dd4c0..2684e14b5 100644 --- a/apps/dashboard/shared/components/design-system/alerts/inline-alert/InlineAlert.stories.tsx +++ b/apps/dashboard/shared/components/design-system/alerts/inline-alert/InlineAlert.stories.tsx @@ -4,7 +4,7 @@ import { InlineAlert } from "@/shared/components/design-system/alerts/inline-ale import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; const meta: Meta = { - title: "Design System/Alerts/InlineAlert", + title: "Feedback/Alerts/InlineAlert", component: InlineAlert, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/alerts/inline-alert/InlineAlert.tsx b/apps/dashboard/shared/components/design-system/alerts/inline-alert/InlineAlert.tsx index cf5f21bc0..66a183756 100644 --- a/apps/dashboard/shared/components/design-system/alerts/inline-alert/InlineAlert.tsx +++ b/apps/dashboard/shared/components/design-system/alerts/inline-alert/InlineAlert.tsx @@ -3,10 +3,7 @@ import { AlertCircle, AlertTriangle, Info } from "lucide-react"; import { CardDescription } from "@/shared/components/ui/card"; import { cn } from "@/shared/utils/cn"; -interface InlineAlertProps { - text: string; - variant: "info" | "warning" | "error"; -} +import type { InlineAlertProps } from "@/shared/components/design-system/alerts/types"; const mapVariantToIcon = { info: { @@ -26,9 +23,13 @@ const mapVariantToIcon = { }, }; -export const InlineAlert = ({ text, variant = "info" }: InlineAlertProps) => { +export const InlineAlert = ({ + text, + variant = "info", + className, +}: InlineAlertProps) => { return ( -
+
= { - title: "Design System/Avatars/EnsAvatar", + title: "Data Display/EnsAvatar", component: EnsAvatar, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/avatars/ens-avatar/EnsAvatar.tsx b/apps/dashboard/shared/components/design-system/avatars/ens-avatar/EnsAvatar.tsx index 79c10fa48..8ba8d70b8 100644 --- a/apps/dashboard/shared/components/design-system/avatars/ens-avatar/EnsAvatar.tsx +++ b/apps/dashboard/shared/components/design-system/avatars/ens-avatar/EnsAvatar.tsx @@ -7,7 +7,7 @@ import Blockies from "react-blockies"; import type { Address } from "viem"; import { CopyAndPasteButton } from "@/shared/components/buttons/CopyAndPasteButton"; -import { BadgeStatus } from "@/shared/components/design-system/badges/BadgeStatus"; +import { BadgeStatus } from "@/shared/components/design-system/badges"; import { SkeletonRow } from "@/shared/components/skeletons/SkeletonRow"; import { AddressDetailsTooltip } from "@/shared/components/tooltips/AddressDetailsTooltip"; import { useArkhamData } from "@/shared/hooks/graphql-client/useArkhamData"; diff --git a/apps/dashboard/shared/components/design-system/badges/badge-icon/BadgeIcon.figma.tsx b/apps/dashboard/shared/components/design-system/badges/badge-icon/BadgeIcon.figma.tsx new file mode 100644 index 000000000..fb7a3ac84 --- /dev/null +++ b/apps/dashboard/shared/components/design-system/badges/badge-icon/BadgeIcon.figma.tsx @@ -0,0 +1,29 @@ +import figma from "@figma/code-connect"; +import { Zap } from "lucide-react"; + +import { BadgeIcon } from "@/shared/components/design-system/badges/badge-icon/BadgeIcon"; + +figma.connect( + BadgeIcon, + "https://www.figma.com/design/DEKMQifA8YOb3oxznHboSY/%F0%9F%93%81-Orbit-UI?node-id=11222-54092", + { + props: { + variant: figma.enum("variant", { + Primary: "primary", + Secondary: "secondary", + Error: "error", + Outline: "outline", + Dimmed: "dimmed", + Warning: "warning", + Success: "success", + }), + size: figma.enum("size", { + Default: "default", + LG: "lg", + }), + }, + example: ({ variant, size }) => ( + + ), + }, +); diff --git a/apps/dashboard/shared/components/design-system/badges/badge-icon/BadgeIcon.stories.tsx b/apps/dashboard/shared/components/design-system/badges/badge-icon/BadgeIcon.stories.tsx new file mode 100644 index 000000000..e814f991a --- /dev/null +++ b/apps/dashboard/shared/components/design-system/badges/badge-icon/BadgeIcon.stories.tsx @@ -0,0 +1,96 @@ +import type { Meta, StoryObj } from "@storybook/nextjs"; +import { + Zap, + CheckCircle2, + AlertTriangle, + XCircle, + Info, + Clock, +} from "lucide-react"; + +import { BadgeIcon } from "@/shared/components/design-system/badges/badge-icon/BadgeIcon"; +import type { BadgeIconProps } from "@/shared/components/design-system/badges/badge-icon/BadgeIcon"; +import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; + +const meta: Meta = { + title: "Data Display/Badges/BadgeIcon", + component: BadgeIcon, + parameters: { + layout: "centered", + design: getFigmaDesignConfigByNodeId("11222-54092"), + }, + tags: ["autodocs"], + argTypes: { + variant: { + control: "select", + options: [ + "primary", + "secondary", + "error", + "outline", + "dimmed", + "warning", + "success", + ], + description: "The visual style variant of the badge", + }, + size: { + control: "select", + options: ["default", "lg"], + description: "Badge size", + }, + icon: { + control: false, + description: "Icon component from lucide-react (required)", + }, + isLoading: { + control: "boolean", + description: "Show loading skeleton state", + }, + className: { + control: "text", + description: "Additional CSS classes", + }, + }, +}; + +export default meta; +type Story = StoryObj; + +export const Default: Story = { + args: { + icon: Zap, + variant: "primary", + size: "default", + }, +}; + +export const AllStates = { + render: () => ( +
+
+ Variants +
+ + + + + + + +
+
+
+ Sizes +
+ + +
+
+
+ Loading + +
+
+ ), +}; diff --git a/apps/dashboard/shared/components/design-system/badges/BadgeIcon.tsx b/apps/dashboard/shared/components/design-system/badges/badge-icon/BadgeIcon.tsx similarity index 89% rename from apps/dashboard/shared/components/design-system/badges/BadgeIcon.tsx rename to apps/dashboard/shared/components/design-system/badges/badge-icon/BadgeIcon.tsx index ed54d396d..9ca730d61 100644 --- a/apps/dashboard/shared/components/design-system/badges/BadgeIcon.tsx +++ b/apps/dashboard/shared/components/design-system/badges/badge-icon/BadgeIcon.tsx @@ -1,9 +1,9 @@ import { cva, type VariantProps } from "class-variance-authority"; import type { ElementType } from "react"; -import { cn } from "@/shared/utils"; +import { cn } from "@/shared/utils/cn"; -export type BadgeSize = "default" | "lg"; +import type { BadgeSize } from "@/shared/components/design-system/badges/types"; const sizeStyles: Record = { default: "size-6", @@ -53,7 +53,7 @@ const iconVariants = cva("size-3", { }, }); -type BadgeIconProps = VariantProps & { +export type BadgeIconProps = VariantProps & { icon: ElementType; className?: string; size?: BadgeSize; @@ -76,7 +76,7 @@ export const BadgeIcon = ({ return (
diff --git a/apps/dashboard/shared/components/design-system/badges/badge-status/BadgeStatus.figma.tsx b/apps/dashboard/shared/components/design-system/badges/badge-status/BadgeStatus.figma.tsx new file mode 100644 index 000000000..bf85d3085 --- /dev/null +++ b/apps/dashboard/shared/components/design-system/badges/badge-status/BadgeStatus.figma.tsx @@ -0,0 +1,28 @@ +import figma from "@figma/code-connect"; +import { CheckCircle2 } from "lucide-react"; + +import { BadgeStatus } from "@/shared/components/design-system/badges/badge-status/BadgeStatus"; + +figma.connect( + BadgeStatus, + "https://www.figma.com/design/DEKMQifA8YOb3oxznHboSY/%F0%9F%93%81-Orbit-UI?node-id=136-1178", + { + props: { + children: figma.string("label"), + variant: figma.enum("variant", { + Primary: "primary", + Secondary: "secondary", + Error: "error", + Outline: "outline", + Dimmed: "dimmed", + Warning: "warning", + Success: "success", + }), + }, + example: ({ children, variant }) => ( + + {children} + + ), + }, +); diff --git a/apps/dashboard/shared/components/design-system/badges/BadgeStatus.stories.tsx b/apps/dashboard/shared/components/design-system/badges/badge-status/BadgeStatus.stories.tsx similarity index 98% rename from apps/dashboard/shared/components/design-system/badges/BadgeStatus.stories.tsx rename to apps/dashboard/shared/components/design-system/badges/badge-status/BadgeStatus.stories.tsx index c15ce4165..5e85657fc 100644 --- a/apps/dashboard/shared/components/design-system/badges/BadgeStatus.stories.tsx +++ b/apps/dashboard/shared/components/design-system/badges/badge-status/BadgeStatus.stories.tsx @@ -9,11 +9,11 @@ import { Zap, } from "lucide-react"; -import { BadgeStatus } from "@/shared/components/design-system/badges/BadgeStatus"; +import { BadgeStatus } from "@/shared/components/design-system/badges"; import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; const meta = { - title: "Design System/Badges/BadgeStatus", + title: "Data Display/Badges/BadgeStatus", component: BadgeStatus, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/badges/BadgeStatus.tsx b/apps/dashboard/shared/components/design-system/badges/badge-status/BadgeStatus.tsx similarity index 94% rename from apps/dashboard/shared/components/design-system/badges/BadgeStatus.tsx rename to apps/dashboard/shared/components/design-system/badges/badge-status/BadgeStatus.tsx index 4e424805d..adf6bf871 100644 --- a/apps/dashboard/shared/components/design-system/badges/BadgeStatus.tsx +++ b/apps/dashboard/shared/components/design-system/badges/badge-status/BadgeStatus.tsx @@ -1,7 +1,7 @@ import { cva, type VariantProps } from "class-variance-authority"; import type { ElementType, ReactNode } from "react"; -import { cn } from "@/shared/utils"; +import { cn } from "@/shared/utils/cn"; const badgeStatusVariants = cva( "rounded-full h-5 gap-1.5 px-1.5 flex items-center text-xs font-medium whitespace-nowrap", @@ -41,7 +41,7 @@ const iconVariants = cva("size-3", { }, }); -type BadgeStatusProps = VariantProps & { +export type BadgeStatusProps = VariantProps & { children?: ReactNode; className?: string; icon?: ElementType; diff --git a/apps/dashboard/shared/components/design-system/badges/index.ts b/apps/dashboard/shared/components/design-system/badges/index.ts new file mode 100644 index 000000000..cc297e25f --- /dev/null +++ b/apps/dashboard/shared/components/design-system/badges/index.ts @@ -0,0 +1,5 @@ +export { BadgeStatus } from "@/shared/components/design-system/badges/badge-status/BadgeStatus"; +export type { BadgeStatusProps } from "@/shared/components/design-system/badges/badge-status/BadgeStatus"; +export { BadgeIcon } from "@/shared/components/design-system/badges/badge-icon/BadgeIcon"; +export type { BadgeIconProps } from "@/shared/components/design-system/badges/badge-icon/BadgeIcon"; +export type { BadgeSize } from "@/shared/components/design-system/badges/types"; diff --git a/apps/dashboard/shared/components/design-system/badges/types.ts b/apps/dashboard/shared/components/design-system/badges/types.ts new file mode 100644 index 000000000..788081c60 --- /dev/null +++ b/apps/dashboard/shared/components/design-system/badges/types.ts @@ -0,0 +1 @@ +export type BadgeSize = "default" | "lg"; diff --git a/apps/dashboard/shared/components/design-system/blank-slate/BlankSlate.stories.tsx b/apps/dashboard/shared/components/design-system/blank-slate/BlankSlate.stories.tsx index 474c804b7..7df808a55 100644 --- a/apps/dashboard/shared/components/design-system/blank-slate/BlankSlate.stories.tsx +++ b/apps/dashboard/shared/components/design-system/blank-slate/BlankSlate.stories.tsx @@ -16,7 +16,7 @@ import { BlankSlate } from "@/shared/components/design-system/blank-slate/BlankS import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; const meta = { - title: "Design System/Feedback/BlankSlate", + title: "Feedback/BlankSlate", component: BlankSlate, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/blank-slate/BlankSlate.tsx b/apps/dashboard/shared/components/design-system/blank-slate/BlankSlate.tsx index 74e27dc3f..f802dbda6 100644 --- a/apps/dashboard/shared/components/design-system/blank-slate/BlankSlate.tsx +++ b/apps/dashboard/shared/components/design-system/blank-slate/BlankSlate.tsx @@ -1,10 +1,11 @@ "use client"; import { cva } from "class-variance-authority"; -import type { ElementType, ReactNode } from "react"; import { cn } from "@/shared/utils/cn"; +import type { BlankSlateProps } from "./types"; + const blankSlateVariants = cva( "w-full flex items-center justify-center text-secondary p-4 gap-2 bg-surface-contrast", { @@ -34,15 +35,6 @@ const iconVariants = cva("size-6", { }, }); -interface BlankSlateProps { - variant: "default" | "title" | "small"; - icon: ElementType; - title?: string; - className?: string; - description: string; - children?: ReactNode; -} - export const BlankSlate = ({ variant, icon: Icon, diff --git a/apps/dashboard/shared/components/design-system/blank-slate/index.ts b/apps/dashboard/shared/components/design-system/blank-slate/index.ts new file mode 100644 index 000000000..979d289ce --- /dev/null +++ b/apps/dashboard/shared/components/design-system/blank-slate/index.ts @@ -0,0 +1,2 @@ +export { BlankSlate } from "@/shared/components/design-system/blank-slate/BlankSlate"; +export type { BlankSlateProps } from "@/shared/components/design-system/blank-slate/types"; diff --git a/apps/dashboard/shared/components/design-system/blank-slate/types.ts b/apps/dashboard/shared/components/design-system/blank-slate/types.ts new file mode 100644 index 000000000..b01324a7e --- /dev/null +++ b/apps/dashboard/shared/components/design-system/blank-slate/types.ts @@ -0,0 +1,10 @@ +import type { ElementType, ReactNode } from "react"; + +export type BlankSlateProps = { + variant: "default" | "title" | "small"; + icon: ElementType; + title?: string; + className?: string; + description: string; + children?: ReactNode; +}; diff --git a/apps/dashboard/shared/components/design-system/buttons/button/Button.stories.tsx b/apps/dashboard/shared/components/design-system/buttons/button/Button.stories.tsx index 85d64120b..5d4d7a05b 100644 --- a/apps/dashboard/shared/components/design-system/buttons/button/Button.stories.tsx +++ b/apps/dashboard/shared/components/design-system/buttons/button/Button.stories.tsx @@ -14,7 +14,7 @@ type ButtonStoryArgs = ButtonProps & { }; const meta: Meta = { - title: "Design System/Buttons/Button", + title: "Data Entry/Buttons/Button", component: Button, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/buttons/button/Button.tsx b/apps/dashboard/shared/components/design-system/buttons/button/Button.tsx index fccabcd04..b0d4f38ee 100644 --- a/apps/dashboard/shared/components/design-system/buttons/button/Button.tsx +++ b/apps/dashboard/shared/components/design-system/buttons/button/Button.tsx @@ -6,7 +6,7 @@ import type { ButtonSize, } from "@/shared/components/design-system/buttons/types"; import Spinner from "@/shared/components/ui/spinner"; -import { cn } from "@/shared/utils"; +import { cn } from "@/shared/utils/cn"; const sizeStyles: Record = { sm: "py-1 px-2", diff --git a/apps/dashboard/shared/components/design-system/buttons/icon-button/IconButton.figma.tsx b/apps/dashboard/shared/components/design-system/buttons/icon-button/IconButton.figma.tsx new file mode 100644 index 000000000..50a4ceb4a --- /dev/null +++ b/apps/dashboard/shared/components/design-system/buttons/icon-button/IconButton.figma.tsx @@ -0,0 +1,38 @@ +import figma from "@figma/code-connect"; +import { Search } from "lucide-react"; + +import { IconButton } from "@/shared/components/design-system/buttons/icon-button/IconButton"; + +figma.connect( + IconButton, + "https://www.figma.com/design/DEKMQifA8YOb3oxznHboSY/%F0%9F%93%81-Orbit-UI?node-id=1-85", + { + props: { + variant: figma.enum("variant", { + Primary: "primary", + Outline: "outline", + Ghost: "ghost", + Destructive: "destructive", + }), + size: figma.enum("size", { + SM: "sm", + MD: "md", + LG: "lg", + }), + disabled: figma.enum("state", { + Disabled: true, + Default: false, + Hover: false, + Active: false, + }), + }, + example: ({ variant, size, disabled }) => ( + + ), + }, +); diff --git a/apps/dashboard/shared/components/design-system/buttons/icon-button/IconButton.stories.tsx b/apps/dashboard/shared/components/design-system/buttons/icon-button/IconButton.stories.tsx index fa8149cbb..39e4d7896 100644 --- a/apps/dashboard/shared/components/design-system/buttons/icon-button/IconButton.stories.tsx +++ b/apps/dashboard/shared/components/design-system/buttons/icon-button/IconButton.stories.tsx @@ -5,7 +5,7 @@ import { IconButton } from "@/shared/components/design-system/buttons/icon-butto import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; const meta: Meta = { - title: "Design System/Buttons/IconButton", + title: "Data Entry/Buttons/IconButton", component: IconButton, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/buttons/icon-button/IconButton.tsx b/apps/dashboard/shared/components/design-system/buttons/icon-button/IconButton.tsx index 0cd709450..9e0a0c0ac 100644 --- a/apps/dashboard/shared/components/design-system/buttons/icon-button/IconButton.tsx +++ b/apps/dashboard/shared/components/design-system/buttons/icon-button/IconButton.tsx @@ -7,7 +7,7 @@ import type { ButtonProps, } from "@/shared/components/design-system/buttons/types"; import Spinner from "@/shared/components/ui/spinner"; -import { cn } from "@/shared/utils"; +import { cn } from "@/shared/utils/cn"; interface IconButtonProps extends ButtonProps { icon?: ElementType; diff --git a/apps/dashboard/shared/components/design-system/buttons/index.ts b/apps/dashboard/shared/components/design-system/buttons/index.ts new file mode 100644 index 000000000..f4c3da4cd --- /dev/null +++ b/apps/dashboard/shared/components/design-system/buttons/index.ts @@ -0,0 +1,7 @@ +export { Button } from "@/shared/components/design-system/buttons/button/Button"; +export { IconButton } from "@/shared/components/design-system/buttons/icon-button/IconButton"; +export type { + ButtonSize, + ButtonVariant, + ButtonProps, +} from "@/shared/components/design-system/buttons/types"; diff --git a/apps/dashboard/shared/components/design-system/carousel/Carousel.tsx b/apps/dashboard/shared/components/design-system/carousel/Carousel.tsx index 00d20449c..4cb765c55 100644 --- a/apps/dashboard/shared/components/design-system/carousel/Carousel.tsx +++ b/apps/dashboard/shared/components/design-system/carousel/Carousel.tsx @@ -2,7 +2,10 @@ import { useRef, useState } from "react"; -export const Carousel = ({ slides }: { slides: React.ReactNode[] }) => { +import type { CarouselProps } from "@/shared/components/design-system/carousel/types"; +import { cn } from "@/shared/utils/cn"; + +export const Carousel = ({ slides, className }: CarouselProps) => { const [current, setCurrent] = useState(0); const touchStartX = useRef(null); @@ -26,7 +29,7 @@ export const Carousel = ({ slides }: { slides: React.ReactNode[] }) => { }; return ( -
+
= { - title: "Design System/Combobox/Combobox", + title: "Data Entry/Combobox/Combobox", component: Combobox, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/combobox/combobox-item/ComboboxItem.stories.tsx b/apps/dashboard/shared/components/design-system/combobox/combobox-item/ComboboxItem.stories.tsx index b369d9bd2..ac746291d 100644 --- a/apps/dashboard/shared/components/design-system/combobox/combobox-item/ComboboxItem.stories.tsx +++ b/apps/dashboard/shared/components/design-system/combobox/combobox-item/ComboboxItem.stories.tsx @@ -8,7 +8,7 @@ import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; type ComboboxItemStoryArgs = ComboboxItemProps & { showIcon?: boolean }; const meta: Meta = { - title: "Design System/Combobox/ComboboxItem", + title: "Data Entry/Combobox/ComboboxItem", component: ComboboxItem, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/divider/DividerDefault.stories.tsx b/apps/dashboard/shared/components/design-system/divider/DividerDefault.stories.tsx index b3f08e5fc..8f9c987d3 100644 --- a/apps/dashboard/shared/components/design-system/divider/DividerDefault.stories.tsx +++ b/apps/dashboard/shared/components/design-system/divider/DividerDefault.stories.tsx @@ -4,7 +4,7 @@ import { DividerDefault } from "@/shared/components/design-system/divider/Divide import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; const meta = { - title: "Design System/Dividers/DividerDefault", + title: "Layout/Dividers/DividerDefault", component: DividerDefault, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/divider/DividerDefault.tsx b/apps/dashboard/shared/components/design-system/divider/DividerDefault.tsx index 3b4ce2e25..31ef26921 100644 --- a/apps/dashboard/shared/components/design-system/divider/DividerDefault.tsx +++ b/apps/dashboard/shared/components/design-system/divider/DividerDefault.tsx @@ -1,11 +1,6 @@ -import { cn } from "@/shared/utils"; +import { cn } from "@/shared/utils/cn"; -type DividerDefaultProps = { - isVertical?: boolean; - isHorizontal?: boolean; - isDashed?: boolean; - className?: string; -}; +import type { DividerDefaultProps } from "./types"; export const DividerDefault = ({ isVertical, diff --git a/apps/dashboard/shared/components/design-system/divider/index.ts b/apps/dashboard/shared/components/design-system/divider/index.ts new file mode 100644 index 000000000..37ee77f64 --- /dev/null +++ b/apps/dashboard/shared/components/design-system/divider/index.ts @@ -0,0 +1,2 @@ +export { DividerDefault } from "@/shared/components/design-system/divider/DividerDefault"; +export type { DividerDefaultProps } from "@/shared/components/design-system/divider/types"; diff --git a/apps/dashboard/shared/components/design-system/divider/types.ts b/apps/dashboard/shared/components/design-system/divider/types.ts new file mode 100644 index 000000000..bfa5b4932 --- /dev/null +++ b/apps/dashboard/shared/components/design-system/divider/types.ts @@ -0,0 +1,6 @@ +export type DividerDefaultProps = { + isVertical?: boolean; + isHorizontal?: boolean; + isDashed?: boolean; + className?: string; +}; diff --git a/apps/dashboard/shared/components/design-system/drawer/Drawer.figma.tsx b/apps/dashboard/shared/components/design-system/drawer/Drawer.figma.tsx new file mode 100644 index 000000000..abcad042e --- /dev/null +++ b/apps/dashboard/shared/components/design-system/drawer/Drawer.figma.tsx @@ -0,0 +1,28 @@ +import figma from "@figma/code-connect"; + +import { + DrawerRoot, + DrawerContent, + DrawerHeader, + DrawerBody, +} from "@/shared/components/design-system/drawer"; + +figma.connect( + DrawerRoot, + "https://www.figma.com/design/DEKMQifA8YOb3oxznHboSY/%F0%9F%93%81-Orbit-UI?node-id=10752-16973", + { + props: { + title: figma.string("title"), + }, + example: ({ title }) => ( + undefined}> + + undefined} /> + +
Place the content here
+
+
+
+ ), + }, +); diff --git a/apps/dashboard/shared/components/design-system/drawer/Drawer.stories.tsx b/apps/dashboard/shared/components/design-system/drawer/Drawer.stories.tsx new file mode 100644 index 000000000..08e430503 --- /dev/null +++ b/apps/dashboard/shared/components/design-system/drawer/Drawer.stories.tsx @@ -0,0 +1,90 @@ +"use client"; + +import type { Meta } from "@storybook/nextjs"; +import { useState } from "react"; + +import { Button } from "@/shared/components/design-system/buttons/button/Button"; +import { + DrawerRoot, + DrawerContent, + DrawerHeader, + DrawerBody, +} from "@/shared/components/design-system/drawer"; +import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; + +const meta = { + title: "Feedback/Drawer/Drawer", + component: DrawerRoot, + parameters: { + layout: "centered", + design: getFigmaDesignConfigByNodeId("10752-16973"), + }, + tags: ["autodocs"], + argTypes: { + open: { + control: "boolean", + description: "Whether the drawer is open", + }, + }, +} satisfies Meta; + +export default meta; + +const DrawerWithTrigger = ({ + title = "Drawer title", + subtitle, + withTabs = false, +}: { + title?: string; + subtitle?: string; + withTabs?: boolean; +}) => { + const [open, setOpen] = useState(false); + const tabs = withTabs + ? [ + { id: "overview", label: "Overview", content: null }, + { id: "activity", label: "Activity", content: null }, + { id: "settings", label: "Settings", content: null }, + ] + : undefined; + const [activeTab, setActiveTab] = useState("overview"); + + return ( + <> + + + + setOpen(false)} + tabs={tabs} + activeTab={activeTab} + onTabChange={setActiveTab} + /> + +
+ Place the content here +
+
+
+
+ + ); +}; + +export const Default = { + render: () => , +}; + +export const AllStates = { + render: () => ( +
+ + + +
+ ), +}; diff --git a/apps/dashboard/shared/components/design-system/drawer/Drawer.tsx b/apps/dashboard/shared/components/design-system/drawer/Drawer.tsx index 108066034..033bbfa4b 100644 --- a/apps/dashboard/shared/components/design-system/drawer/Drawer.tsx +++ b/apps/dashboard/shared/components/design-system/drawer/Drawer.tsx @@ -5,7 +5,7 @@ import { Drawer as DrawerPrimitive } from "vaul"; import type { DrawerRootProps } from "@/shared/components/design-system/drawer/types"; import { useScreenSize } from "@/shared/hooks"; -import { cn } from "@/shared/utils"; +import { cn } from "@/shared/utils/cn"; const DrawerRoot = ({ open, onOpenChange, children }: DrawerRootProps) => { const { isMobile } = useScreenSize(); diff --git a/apps/dashboard/shared/components/design-system/drawer/components/DrawerTitle.tsx b/apps/dashboard/shared/components/design-system/drawer/components/DrawerTitle.tsx deleted file mode 100644 index 1cd84e0e7..000000000 --- a/apps/dashboard/shared/components/design-system/drawer/components/DrawerTitle.tsx +++ /dev/null @@ -1,17 +0,0 @@ -"use client"; - -import type { DrawerTitleProps } from "@/shared/components/design-system/drawer/types"; - -export const DrawerTitle = ({ children }: DrawerTitleProps) => { - if (typeof children === "string") { - return ( - - {children} - - ); - } - - return ( -
{children}
- ); -}; diff --git a/apps/dashboard/shared/components/design-system/drawer/drawer-body/DrawerBody.figma.tsx b/apps/dashboard/shared/components/design-system/drawer/drawer-body/DrawerBody.figma.tsx new file mode 100644 index 000000000..cd7cb618d --- /dev/null +++ b/apps/dashboard/shared/components/design-system/drawer/drawer-body/DrawerBody.figma.tsx @@ -0,0 +1,15 @@ +import figma from "@figma/code-connect"; + +import { DrawerBody } from "@/shared/components/design-system/drawer/drawer-body/DrawerBody"; + +figma.connect( + DrawerBody, + "https://www.figma.com/design/DEKMQifA8YOb3oxznHboSY/%F0%9F%93%81-Orbit-UI?node-id=22016-174", + { + example: () => ( + +
Place the content here
+
+ ), + }, +); diff --git a/apps/dashboard/shared/components/design-system/drawer/drawer-body/DrawerBody.stories.tsx b/apps/dashboard/shared/components/design-system/drawer/drawer-body/DrawerBody.stories.tsx new file mode 100644 index 000000000..3ba64af12 --- /dev/null +++ b/apps/dashboard/shared/components/design-system/drawer/drawer-body/DrawerBody.stories.tsx @@ -0,0 +1,83 @@ +import type { Meta, StoryObj } from "@storybook/nextjs"; + +import { DrawerBody } from "@/shared/components/design-system/drawer/drawer-body/DrawerBody"; +import type { DrawerBodyProps } from "@/shared/components/design-system/drawer/types"; +import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; + +const meta: Meta = { + title: "Feedback/Drawer/DrawerBody", + component: DrawerBody, + parameters: { + layout: "padded", + design: getFigmaDesignConfigByNodeId("22016-174"), + }, + tags: ["autodocs"], + argTypes: { + children: { + control: false, + description: "Body content", + }, + className: { + control: "text", + description: "Additional CSS classes", + }, + }, + decorators: [ + (Story) => ( +
+ +
+ ), + ], +}; + +export default meta; +type Story = StoryObj; + +export const Default: Story = { + args: { + children: ( +
+ Place the content here +
+ ), + }, + decorators: [ + (Story) => ( +
+ +
+ ), + ], +}; + +export const AllStates = { + render: () => ( +
+
+ Default +
+ +
+ Default body with overflow hidden +
+
+
+
+
+ + With scrollable content + +
+ +
+ {Array.from({ length: 10 }).map((_, i) => ( +

Scrollable content row {i + 1}

+ ))} +
+
+
+
+
+ ), +}; diff --git a/apps/dashboard/shared/components/design-system/drawer/components/DrawerBody.tsx b/apps/dashboard/shared/components/design-system/drawer/drawer-body/DrawerBody.tsx similarity index 88% rename from apps/dashboard/shared/components/design-system/drawer/components/DrawerBody.tsx rename to apps/dashboard/shared/components/design-system/drawer/drawer-body/DrawerBody.tsx index ce787cccc..ce9597a7e 100644 --- a/apps/dashboard/shared/components/design-system/drawer/components/DrawerBody.tsx +++ b/apps/dashboard/shared/components/design-system/drawer/drawer-body/DrawerBody.tsx @@ -1,7 +1,7 @@ "use client"; import type { DrawerBodyProps } from "@/shared/components/design-system/drawer/types"; -import { cn } from "@/shared/utils"; +import { cn } from "@/shared/utils/cn"; export const DrawerBody = ({ children, className }: DrawerBodyProps) => { return ( diff --git a/apps/dashboard/shared/components/design-system/drawer/components/DrawerCloseButton.tsx b/apps/dashboard/shared/components/design-system/drawer/drawer-header/DrawerCloseButton.tsx similarity index 63% rename from apps/dashboard/shared/components/design-system/drawer/components/DrawerCloseButton.tsx rename to apps/dashboard/shared/components/design-system/drawer/drawer-header/DrawerCloseButton.tsx index 992cc2433..18e9c8c38 100644 --- a/apps/dashboard/shared/components/design-system/drawer/components/DrawerCloseButton.tsx +++ b/apps/dashboard/shared/components/design-system/drawer/drawer-header/DrawerCloseButton.tsx @@ -2,9 +2,10 @@ import { X } from "lucide-react"; -import { IconButton } from "@/shared/components"; +import { IconButton } from "@/shared/components/design-system/buttons/icon-button/IconButton"; import type { DrawerCloseButtonProps } from "@/shared/components/design-system/drawer/types"; +/** @internal Used internally by DrawerHeader. Not part of the public API. */ export const DrawerCloseButton = ({ onClick }: DrawerCloseButtonProps) => { return ; }; diff --git a/apps/dashboard/shared/components/design-system/drawer/drawer-header/DrawerHeader.figma.tsx b/apps/dashboard/shared/components/design-system/drawer/drawer-header/DrawerHeader.figma.tsx new file mode 100644 index 000000000..74b8d6013 --- /dev/null +++ b/apps/dashboard/shared/components/design-system/drawer/drawer-header/DrawerHeader.figma.tsx @@ -0,0 +1,21 @@ +import figma from "@figma/code-connect"; + +import { DrawerHeader } from "@/shared/components/design-system/drawer/drawer-header/DrawerHeader"; + +figma.connect( + DrawerHeader, + "https://www.figma.com/design/DEKMQifA8YOb3oxznHboSY/%F0%9F%93%81-Orbit-UI?node-id=10752-17019", + { + props: { + title: figma.string("title"), + subtitle: figma.string("subtitle"), + }, + example: ({ title, subtitle }) => ( + undefined} + /> + ), + }, +); diff --git a/apps/dashboard/shared/components/design-system/drawer/drawer-header/DrawerHeader.stories.tsx b/apps/dashboard/shared/components/design-system/drawer/drawer-header/DrawerHeader.stories.tsx new file mode 100644 index 000000000..2969501a7 --- /dev/null +++ b/apps/dashboard/shared/components/design-system/drawer/drawer-header/DrawerHeader.stories.tsx @@ -0,0 +1,108 @@ +"use client"; + +import type { Meta, StoryObj } from "@storybook/nextjs"; +import { useState } from "react"; + +import { DrawerHeader } from "@/shared/components/design-system/drawer/drawer-header/DrawerHeader"; +import type { DrawerHeaderProps } from "@/shared/components/design-system/drawer/types"; +import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; + +const meta: Meta = { + title: "Feedback/Drawer/DrawerHeader", + component: DrawerHeader, + parameters: { + layout: "padded", + design: getFigmaDesignConfigByNodeId("10752-17019"), + }, + tags: ["autodocs"], + argTypes: { + title: { + control: "text", + description: "Drawer title (string or ReactNode)", + }, + subtitle: { + control: "text", + description: "Optional subtitle rendered above the title", + }, + onClose: { + control: false, + description: "Close callback", + }, + tabs: { + control: false, + description: "Optional tab configuration", + }, + activeTab: { + control: "text", + description: "Currently active tab ID", + }, + onTabChange: { + control: false, + description: "Tab change callback", + }, + }, + decorators: [ + (Story) => ( +
+ +
+ ), + ], +}; + +export default meta; +type Story = StoryObj; + +export const Default: Story = { + args: { + title: "Proposal details", + onClose: () => undefined, + }, +}; + +const AllStatesRender = () => { + const [activeTab, setActiveTab] = useState("overview"); + const tabs = [ + { id: "overview", label: "Overview", content: null }, + { id: "activity", label: "Activity", content: null }, + { id: "settings", label: "Settings", content: null }, + ]; + + return ( +
+
+
+ undefined} /> +
+ Without subtitle +
+
+
+ undefined} + /> +
+ With subtitle +
+
+
+ undefined} + tabs={tabs} + activeTab={activeTab} + onTabChange={setActiveTab} + /> +
+ With subtitle and tabs +
+
+ ); +}; + +export const AllStates = { + render: () => , +}; diff --git a/apps/dashboard/shared/components/design-system/drawer/components/DrawerHeader.tsx b/apps/dashboard/shared/components/design-system/drawer/drawer-header/DrawerHeader.tsx similarity index 77% rename from apps/dashboard/shared/components/design-system/drawer/components/DrawerHeader.tsx rename to apps/dashboard/shared/components/design-system/drawer/drawer-header/DrawerHeader.tsx index 8f52420d2..a1a7e1771 100644 --- a/apps/dashboard/shared/components/design-system/drawer/components/DrawerHeader.tsx +++ b/apps/dashboard/shared/components/design-system/drawer/drawer-header/DrawerHeader.tsx @@ -1,11 +1,13 @@ "use client"; -import { DrawerCloseButton } from "@/shared/components/design-system/drawer/components/DrawerCloseButton"; -import { DrawerSubtitle } from "@/shared/components/design-system/drawer/components/DrawerSubtitle"; -import { DrawerTabs } from "@/shared/components/design-system/drawer/components/DrawerTabs"; -import { DrawerTitle } from "@/shared/components/design-system/drawer/components/DrawerTitle"; +import { DrawerCloseButton } from "@/shared/components/design-system/drawer/drawer-header/DrawerCloseButton"; +import { DrawerSubtitle } from "@/shared/components/design-system/drawer/drawer-header/DrawerSubtitle"; +import { DrawerTabs } from "@/shared/components/design-system/drawer/drawer-header/DrawerTabs"; +import { DrawerTitle } from "@/shared/components/design-system/drawer/drawer-header/DrawerTitle"; import type { DrawerHeaderProps } from "@/shared/components/design-system/drawer/types"; +import { cn } from "@/shared/utils/cn"; + export const DrawerHeader = ({ subtitle, title, @@ -13,9 +15,10 @@ export const DrawerHeader = ({ tabs, activeTab, onTabChange, + className, }: DrawerHeaderProps) => { return ( -
+
{subtitle && {subtitle}} diff --git a/apps/dashboard/shared/components/design-system/drawer/components/DrawerSubtitle.tsx b/apps/dashboard/shared/components/design-system/drawer/drawer-header/DrawerSubtitle.tsx similarity index 80% rename from apps/dashboard/shared/components/design-system/drawer/components/DrawerSubtitle.tsx rename to apps/dashboard/shared/components/design-system/drawer/drawer-header/DrawerSubtitle.tsx index 6ca63a2ab..efc6159c9 100644 --- a/apps/dashboard/shared/components/design-system/drawer/components/DrawerSubtitle.tsx +++ b/apps/dashboard/shared/components/design-system/drawer/drawer-header/DrawerSubtitle.tsx @@ -2,6 +2,7 @@ import type { DrawerSubtitleProps } from "@/shared/components/design-system/drawer/types"; +/** @internal Used internally by DrawerHeader. Not part of the public API. */ export const DrawerSubtitle = ({ children }: DrawerSubtitleProps) => { return ( diff --git a/apps/dashboard/shared/components/design-system/drawer/components/DrawerTabs.tsx b/apps/dashboard/shared/components/design-system/drawer/drawer-header/DrawerTabs.tsx similarity index 89% rename from apps/dashboard/shared/components/design-system/drawer/components/DrawerTabs.tsx rename to apps/dashboard/shared/components/design-system/drawer/drawer-header/DrawerTabs.tsx index 1721e00a0..8341574d4 100644 --- a/apps/dashboard/shared/components/design-system/drawer/components/DrawerTabs.tsx +++ b/apps/dashboard/shared/components/design-system/drawer/drawer-header/DrawerTabs.tsx @@ -3,8 +3,9 @@ import { Tabs, TabsList, TabsTrigger } from "@radix-ui/react-tabs"; import type { DrawerTabsProps } from "@/shared/components/design-system/drawer/types"; -import { cn } from "@/shared/utils"; +import { cn } from "@/shared/utils/cn"; +/** @internal Used internally by DrawerHeader. Not part of the public API. */ export const DrawerTabs = ({ tabs, activeTab, diff --git a/apps/dashboard/shared/components/design-system/drawer/drawer-header/DrawerTitle.tsx b/apps/dashboard/shared/components/design-system/drawer/drawer-header/DrawerTitle.tsx new file mode 100644 index 000000000..21312c661 --- /dev/null +++ b/apps/dashboard/shared/components/design-system/drawer/drawer-header/DrawerTitle.tsx @@ -0,0 +1,24 @@ +"use client"; + +import { cn } from "@/shared/utils/cn"; + +import type { DrawerTitleProps } from "@/shared/components/design-system/drawer/types"; + +/** @internal Used internally by DrawerHeader. Not part of the public API. */ +export const DrawerTitle = ({ children, className }: DrawerTitleProps) => { + if (typeof children === "string") { + return ( + + {children} + + ); + } + + return ( +
+ {children} +
+ ); +}; diff --git a/apps/dashboard/shared/components/design-system/drawer/index.ts b/apps/dashboard/shared/components/design-system/drawer/index.ts index 52ef7f90f..b50db23c8 100644 --- a/apps/dashboard/shared/components/design-system/drawer/index.ts +++ b/apps/dashboard/shared/components/design-system/drawer/index.ts @@ -2,12 +2,12 @@ export { DrawerRoot, DrawerContent, } from "@/shared/components/design-system/drawer/Drawer"; -export { DrawerHeader } from "@/shared/components/design-system/drawer/components/DrawerHeader"; -export { DrawerSubtitle } from "@/shared/components/design-system/drawer/components/DrawerSubtitle"; -export { DrawerTitle } from "@/shared/components/design-system/drawer/components/DrawerTitle"; -export { DrawerTabs } from "@/shared/components/design-system/drawer/components/DrawerTabs"; -export { DrawerBody } from "@/shared/components/design-system/drawer/components/DrawerBody"; -export { DrawerCloseButton } from "@/shared/components/design-system/drawer/components/DrawerCloseButton"; +export { DrawerHeader } from "@/shared/components/design-system/drawer/drawer-header/DrawerHeader"; +export { DrawerSubtitle } from "@/shared/components/design-system/drawer/drawer-header/DrawerSubtitle"; +export { DrawerTitle } from "@/shared/components/design-system/drawer/drawer-header/DrawerTitle"; +export { DrawerTabs } from "@/shared/components/design-system/drawer/drawer-header/DrawerTabs"; +export { DrawerBody } from "@/shared/components/design-system/drawer/drawer-body/DrawerBody"; +export { DrawerCloseButton } from "@/shared/components/design-system/drawer/drawer-header/DrawerCloseButton"; export type { DrawerRootProps, diff --git a/apps/dashboard/shared/components/design-system/drawer/types.ts b/apps/dashboard/shared/components/design-system/drawer/types.ts index 148981f12..ee98cfcc7 100644 --- a/apps/dashboard/shared/components/design-system/drawer/types.ts +++ b/apps/dashboard/shared/components/design-system/drawer/types.ts @@ -13,6 +13,7 @@ export interface DrawerHeaderProps { tabs?: DrawerTabConfig[]; activeTab?: string; onTabChange?: (tabId: string) => void; + className?: string; } export interface DrawerSubtitleProps { @@ -21,6 +22,7 @@ export interface DrawerSubtitleProps { export interface DrawerTitleProps { children: string | ReactNode; + className?: string; } export interface DrawerTabConfig { diff --git a/apps/dashboard/shared/components/design-system/footer/Footer.stories.tsx b/apps/dashboard/shared/components/design-system/footer/Footer.stories.tsx index b6c347bb0..0f8d11f0f 100644 --- a/apps/dashboard/shared/components/design-system/footer/Footer.stories.tsx +++ b/apps/dashboard/shared/components/design-system/footer/Footer.stories.tsx @@ -4,7 +4,7 @@ import { Footer } from "@/shared/components/design-system/footer/Footer"; import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; const meta = { - title: "Design System/Layout/Footer", + title: "Layout/Footer", component: Footer, parameters: { layout: "fullscreen", diff --git a/apps/dashboard/shared/components/design-system/footer/Footer.tsx b/apps/dashboard/shared/components/design-system/footer/Footer.tsx index 8a7c319d2..976b7115d 100644 --- a/apps/dashboard/shared/components/design-system/footer/Footer.tsx +++ b/apps/dashboard/shared/components/design-system/footer/Footer.tsx @@ -7,7 +7,7 @@ import Link from "next/link"; import { DefaultLink } from "@/shared/components/design-system/links/default-link"; import { TelegramIcon } from "@/shared/components/icons/TelegramIcon"; import { useGitHubRelease } from "@/shared/hooks"; -import { cn } from "@/shared/utils"; +import { cn } from "@/shared/utils/cn"; const footerVariant = cva( "w-full justify-center items-center px-4 py-3 opacity-60 hover:opacity-100 transition-opacity duration-300 ", @@ -23,7 +23,7 @@ const footerVariant = cva( }, ); -type FooterProps = VariantProps & { +export type FooterProps = VariantProps & { className?: string; }; diff --git a/apps/dashboard/shared/components/design-system/footer/index.ts b/apps/dashboard/shared/components/design-system/footer/index.ts index 6f1e7a752..5ccb6bde8 100644 --- a/apps/dashboard/shared/components/design-system/footer/index.ts +++ b/apps/dashboard/shared/components/design-system/footer/index.ts @@ -1 +1,2 @@ -export * from "@/shared/components/design-system/footer/Footer"; +export { Footer } from "@/shared/components/design-system/footer/Footer"; +export type { FooterProps } from "@/shared/components/design-system/footer/Footer"; diff --git a/apps/dashboard/shared/components/design-system/form/Form.tsx b/apps/dashboard/shared/components/design-system/form/Form.tsx index 9a8663581..0715244b6 100644 --- a/apps/dashboard/shared/components/design-system/form/Form.tsx +++ b/apps/dashboard/shared/components/design-system/form/Form.tsx @@ -5,7 +5,7 @@ import * as React from "react"; import type { ControllerProps, FieldPath, FieldValues } from "react-hook-form"; import { Controller, FormProvider, useFormContext } from "react-hook-form"; -import { cn } from "@/shared/utils"; +import { cn } from "@/shared/utils/cn"; const Form = FormProvider; diff --git a/apps/dashboard/shared/components/design-system/form/fields/checkbox/Checkbox.stories.tsx b/apps/dashboard/shared/components/design-system/form/fields/checkbox/Checkbox.stories.tsx index 828cd72c2..7d602c346 100644 --- a/apps/dashboard/shared/components/design-system/form/fields/checkbox/Checkbox.stories.tsx +++ b/apps/dashboard/shared/components/design-system/form/fields/checkbox/Checkbox.stories.tsx @@ -4,7 +4,7 @@ import * as React from "react"; import { Checkbox } from "@/shared/components/design-system/form/fields/checkbox/Checkbox"; const meta: Meta = { - title: "Design System/Form/Checkbox", + title: "Data Entry/Form/Checkbox", component: Checkbox, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/form/fields/checkbox/Checkbox.tsx b/apps/dashboard/shared/components/design-system/form/fields/checkbox/Checkbox.tsx index 37eebfcf3..57e7c6254 100644 --- a/apps/dashboard/shared/components/design-system/form/fields/checkbox/Checkbox.tsx +++ b/apps/dashboard/shared/components/design-system/form/fields/checkbox/Checkbox.tsx @@ -2,7 +2,7 @@ import * as CheckboxPrimitive from "@radix-ui/react-checkbox"; import { Check } from "lucide-react"; import * as React from "react"; -import { cn } from "@/shared/utils"; +import { cn } from "@/shared/utils/cn"; const Checkbox = React.forwardRef< React.ElementRef, diff --git a/apps/dashboard/shared/components/design-system/form/fields/form-label/FormLabel.stories.tsx b/apps/dashboard/shared/components/design-system/form/fields/form-label/FormLabel.stories.tsx index d0337b047..ec17b4560 100644 --- a/apps/dashboard/shared/components/design-system/form/fields/form-label/FormLabel.stories.tsx +++ b/apps/dashboard/shared/components/design-system/form/fields/form-label/FormLabel.stories.tsx @@ -3,7 +3,7 @@ import type { Meta, StoryObj } from "@storybook/nextjs"; import { FormLabel } from "@/shared/components/design-system/form/fields/form-label/FormLabel"; const meta: Meta = { - title: "Design System/Form/FormLabel", + title: "Data Entry/Form/FormLabel", component: FormLabel, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/form/fields/form-label/FormLabel.tsx b/apps/dashboard/shared/components/design-system/form/fields/form-label/FormLabel.tsx index b65d6380c..73d767aa0 100644 --- a/apps/dashboard/shared/components/design-system/form/fields/form-label/FormLabel.tsx +++ b/apps/dashboard/shared/components/design-system/form/fields/form-label/FormLabel.tsx @@ -1,15 +1,8 @@ import * as React from "react"; -import { cn } from "@/shared/utils"; +import { cn } from "@/shared/utils/cn"; -export interface FormLabelProps extends React.LabelHTMLAttributes { - /** The label text */ - children: React.ReactNode; - /** Shows a red asterisk after the label */ - isRequired?: boolean; - /** Shows "(Optional)" after the label */ - isOptional?: boolean; -} +import type { FormLabelProps } from "./types"; const FormLabel = React.forwardRef( ({ className, children, isRequired, isOptional, ...props }, ref) => { diff --git a/apps/dashboard/shared/components/design-system/form/fields/form-label/types.ts b/apps/dashboard/shared/components/design-system/form/fields/form-label/types.ts new file mode 100644 index 000000000..c09021cc1 --- /dev/null +++ b/apps/dashboard/shared/components/design-system/form/fields/form-label/types.ts @@ -0,0 +1,7 @@ +import type * as React from "react"; + +export type FormLabelProps = React.LabelHTMLAttributes & { + children: React.ReactNode; + isRequired?: boolean; + isOptional?: boolean; +}; diff --git a/apps/dashboard/shared/components/design-system/form/fields/index.ts b/apps/dashboard/shared/components/design-system/form/fields/index.ts index ce0824155..254af6211 100644 --- a/apps/dashboard/shared/components/design-system/form/fields/index.ts +++ b/apps/dashboard/shared/components/design-system/form/fields/index.ts @@ -1,4 +1,14 @@ -export * from "@/shared/components/design-system/form/fields/checkbox/Checkbox"; -export * from "@/shared/components/design-system/form/fields/form-label/FormLabel"; -export * from "@/shared/components/design-system/form/fields/input/Input"; -export * from "@/shared/components/design-system/form/fields/textarea/Textarea"; +export { Checkbox } from "@/shared/components/design-system/form/fields/checkbox/Checkbox"; +export { RadioButton } from "@/shared/components/design-system/form/fields/radio-button/RadioButton"; +export type { RadioButtonProps } from "@/shared/components/design-system/form/fields/radio-button/RadioButton"; +export { + RadioIndicator, + getRadioState, +} from "@/shared/components/design-system/form/fields/radio-button/RadioIndicator"; +export type { RadioIndicatorProps } from "@/shared/components/design-system/form/fields/radio-button/RadioIndicator"; +export { FormLabel } from "@/shared/components/design-system/form/fields/form-label/FormLabel"; +export type { FormLabelProps } from "@/shared/components/design-system/form/fields/form-label/types"; +export { Input } from "@/shared/components/design-system/form/fields/input/Input"; +export type { InputProps } from "@/shared/components/design-system/form/fields/input/types"; +export { Textarea } from "@/shared/components/design-system/form/fields/textarea/Textarea"; +export type { TextareaProps } from "@/shared/components/design-system/form/fields/textarea/types"; diff --git a/apps/dashboard/shared/components/design-system/form/fields/input/Input.stories.tsx b/apps/dashboard/shared/components/design-system/form/fields/input/Input.stories.tsx index 35073be7e..65763e9a6 100644 --- a/apps/dashboard/shared/components/design-system/form/fields/input/Input.stories.tsx +++ b/apps/dashboard/shared/components/design-system/form/fields/input/Input.stories.tsx @@ -3,7 +3,7 @@ import type { Meta, StoryObj } from "@storybook/nextjs"; import { Input } from "@/shared/components/design-system/form/fields/input/Input"; const meta: Meta = { - title: "Design System/Form/Input", + title: "Data Entry/Form/Input", component: Input, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/form/fields/input/Input.tsx b/apps/dashboard/shared/components/design-system/form/fields/input/Input.tsx index 0fbd599c9..75e6a6311 100644 --- a/apps/dashboard/shared/components/design-system/form/fields/input/Input.tsx +++ b/apps/dashboard/shared/components/design-system/form/fields/input/Input.tsx @@ -1,12 +1,9 @@ import { Search } from "lucide-react"; import * as React from "react"; -import { cn } from "@/shared/utils"; +import { cn } from "@/shared/utils/cn"; -export interface InputProps extends React.InputHTMLAttributes { - hasIcon?: boolean; - error?: boolean; -} +import type { InputProps } from "./types"; const Input = React.forwardRef( ({ className, type, hasIcon, error, ...props }, ref) => { diff --git a/apps/dashboard/shared/components/design-system/form/fields/input/types.ts b/apps/dashboard/shared/components/design-system/form/fields/input/types.ts new file mode 100644 index 000000000..6c5eefcf5 --- /dev/null +++ b/apps/dashboard/shared/components/design-system/form/fields/input/types.ts @@ -0,0 +1,6 @@ +import type * as React from "react"; + +export type InputProps = React.InputHTMLAttributes & { + hasIcon?: boolean; + error?: boolean; +}; diff --git a/apps/dashboard/shared/components/design-system/form/fields/radio-button/RadioButton.figma.tsx b/apps/dashboard/shared/components/design-system/form/fields/radio-button/RadioButton.figma.tsx new file mode 100644 index 000000000..65e876ee1 --- /dev/null +++ b/apps/dashboard/shared/components/design-system/form/fields/radio-button/RadioButton.figma.tsx @@ -0,0 +1,33 @@ +import figma from "@figma/code-connect"; + +import { RadioButton } from "@/shared/components/design-system/form/fields/radio-button/RadioButton"; + +figma.connect( + RadioButton, + "https://www.figma.com/design/DEKMQifA8YOb3oxznHboSY/%F0%9F%93%81-Orbit-UI?node-id=13-1660", + { + props: { + label: figma.string("label"), + checked: figma.enum("State", { + Selected: true, + Default: false, + Hover: false, + Disabled: false, + }), + disabled: figma.enum("State", { + Disabled: true, + Default: false, + Hover: false, + Selected: false, + }), + }, + example: ({ label, checked, disabled }) => ( + undefined} + /> + ), + }, +); diff --git a/apps/dashboard/shared/components/design-system/form/fields/radio-button/RadioButton.stories.tsx b/apps/dashboard/shared/components/design-system/form/fields/radio-button/RadioButton.stories.tsx new file mode 100644 index 000000000..714f4edb2 --- /dev/null +++ b/apps/dashboard/shared/components/design-system/form/fields/radio-button/RadioButton.stories.tsx @@ -0,0 +1,96 @@ +import type { Meta, StoryObj } from "@storybook/nextjs"; + +import { RadioButton } from "@/shared/components/design-system/form/fields/radio-button/RadioButton"; +import type { RadioButtonProps } from "@/shared/components/design-system/form/fields/radio-button/RadioButton"; +import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; + +const meta: Meta = { + title: "Data Entry/Form/RadioButton", + component: RadioButton, + parameters: { + layout: "centered", + design: getFigmaDesignConfigByNodeId("13-1660"), + }, + tags: ["autodocs"], + argTypes: { + label: { + control: "text", + description: "Label text displayed next to the radio indicator", + }, + checked: { + control: "boolean", + description: "Whether the radio button is selected", + }, + disabled: { + control: "boolean", + description: "Whether the radio button is disabled", + }, + className: { + control: "text", + description: "Additional CSS classes", + }, + }, +}; + +export default meta; +type Story = StoryObj; + +export const Default: Story = { + args: { + label: "Option A", + checked: false, + disabled: false, + }, +}; + +export const AllStates = { + render: () => ( +
+
+ undefined} + /> + Default +
+
+ undefined} /> + Checked +
+
+ undefined} /> + Disabled +
+
+ undefined} + /> + Disabled + checked +
+
+ ), +}; + +export const Group = { + render: () => { + const options = ["For", "Against", "Abstain"]; + return ( +
+ {options.map((option, i) => ( + undefined} + /> + ))} +
+ ); + }, +}; diff --git a/apps/dashboard/shared/components/design-system/buttons/RadioButton.tsx b/apps/dashboard/shared/components/design-system/form/fields/radio-button/RadioButton.tsx similarity index 88% rename from apps/dashboard/shared/components/design-system/buttons/RadioButton.tsx rename to apps/dashboard/shared/components/design-system/form/fields/radio-button/RadioButton.tsx index 738136340..ebc81026d 100644 --- a/apps/dashboard/shared/components/design-system/buttons/RadioButton.tsx +++ b/apps/dashboard/shared/components/design-system/form/fields/radio-button/RadioButton.tsx @@ -5,8 +5,8 @@ import { forwardRef } from "react"; import { RadioIndicator, getRadioState, -} from "@/shared/components/design-system/buttons/RadioIndicator"; -import { cn } from "@/shared/utils"; +} from "@/shared/components/design-system/form/fields/radio-button/RadioIndicator"; +import { cn } from "@/shared/utils/cn"; const radioButtonVariants = cva( "relative flex items-center gap-2 cursor-pointer", @@ -37,7 +37,10 @@ const radioLabelVariants = cva("text-sm transition-colors duration-200", { }, }); -type RadioButtonProps = Omit, "type"> & +export type RadioButtonProps = Omit< + InputHTMLAttributes, + "type" +> & VariantProps & { label: string; className?: string; diff --git a/apps/dashboard/shared/components/design-system/buttons/RadioIndicator.tsx b/apps/dashboard/shared/components/design-system/form/fields/radio-button/RadioIndicator.tsx similarity index 98% rename from apps/dashboard/shared/components/design-system/buttons/RadioIndicator.tsx rename to apps/dashboard/shared/components/design-system/form/fields/radio-button/RadioIndicator.tsx index 84156189d..bf110b844 100644 --- a/apps/dashboard/shared/components/design-system/buttons/RadioIndicator.tsx +++ b/apps/dashboard/shared/components/design-system/form/fields/radio-button/RadioIndicator.tsx @@ -2,7 +2,7 @@ import { cva } from "class-variance-authority"; import type { InputHTMLAttributes } from "react"; import { forwardRef } from "react"; -import { cn } from "@/shared/utils"; +import { cn } from "@/shared/utils/cn"; const radioIndicatorVariants = cva( "size-4 rounded-full border-2 transition-all duration-200 relative bg-transparent shrink-0", diff --git a/apps/dashboard/shared/components/design-system/form/fields/textarea/Textarea.stories.tsx b/apps/dashboard/shared/components/design-system/form/fields/textarea/Textarea.stories.tsx index c00e974a9..ed48d17e6 100644 --- a/apps/dashboard/shared/components/design-system/form/fields/textarea/Textarea.stories.tsx +++ b/apps/dashboard/shared/components/design-system/form/fields/textarea/Textarea.stories.tsx @@ -3,7 +3,7 @@ import type { Meta, StoryObj } from "@storybook/nextjs"; import { Textarea } from "@/shared/components/design-system/form/fields/textarea/Textarea"; const meta: Meta = { - title: "Design System/Form/Textarea", + title: "Data Entry/Form/Textarea", component: Textarea, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/form/fields/textarea/Textarea.tsx b/apps/dashboard/shared/components/design-system/form/fields/textarea/Textarea.tsx index fda9da65e..71820a61a 100644 --- a/apps/dashboard/shared/components/design-system/form/fields/textarea/Textarea.tsx +++ b/apps/dashboard/shared/components/design-system/form/fields/textarea/Textarea.tsx @@ -1,10 +1,8 @@ import * as React from "react"; -import { cn } from "@/shared/utils"; +import { cn } from "@/shared/utils/cn"; -export interface TextareaProps extends React.TextareaHTMLAttributes { - error?: boolean; -} +import type { TextareaProps } from "./types"; const Textarea = React.forwardRef( ({ className, error, ...props }, ref) => { diff --git a/apps/dashboard/shared/components/design-system/form/fields/textarea/types.ts b/apps/dashboard/shared/components/design-system/form/fields/textarea/types.ts new file mode 100644 index 000000000..8268d868e --- /dev/null +++ b/apps/dashboard/shared/components/design-system/form/fields/textarea/types.ts @@ -0,0 +1,6 @@ +import type * as React from "react"; + +export type TextareaProps = + React.TextareaHTMLAttributes & { + error?: boolean; + }; diff --git a/apps/dashboard/shared/components/design-system/form/index.ts b/apps/dashboard/shared/components/design-system/form/index.ts index 011651e70..509690399 100644 --- a/apps/dashboard/shared/components/design-system/form/index.ts +++ b/apps/dashboard/shared/components/design-system/form/index.ts @@ -1 +1,9 @@ -export * from "@/shared/components/design-system/form/Form"; +export { + useFormField, + Form, + FormItem, + FormControl, + FormDescription, + FormMessage, + FormField, +} from "@/shared/components/design-system/form/Form"; diff --git a/apps/dashboard/shared/components/design-system/help-popover/HelpPopover.tsx b/apps/dashboard/shared/components/design-system/help-popover/HelpPopover.tsx index 6d0e09251..b36d8fb9f 100644 --- a/apps/dashboard/shared/components/design-system/help-popover/HelpPopover.tsx +++ b/apps/dashboard/shared/components/design-system/help-popover/HelpPopover.tsx @@ -17,9 +17,9 @@ import { } from "lucide-react"; import { useState } from "react"; -import { BadgeIcon } from "@/shared/components/design-system/badges/BadgeIcon"; +import { BadgeIcon } from "@/shared/components/design-system/badges"; import { Button } from "@/shared/components/design-system/buttons/button/Button"; -import { cn } from "@/shared/utils"; +import { cn } from "@/shared/utils/cn"; interface HelpPopoverProps { className?: string; diff --git a/apps/dashboard/shared/components/design-system/iconography/Iconography.stories.tsx b/apps/dashboard/shared/components/design-system/iconography/Iconography.stories.tsx index cf672dd69..1f1bbb12f 100644 --- a/apps/dashboard/shared/components/design-system/iconography/Iconography.stories.tsx +++ b/apps/dashboard/shared/components/design-system/iconography/Iconography.stories.tsx @@ -8,7 +8,7 @@ import { import type { IconSize } from "@/shared/components/design-system/iconography/Iconography"; const meta = { - title: "Design System/Primitives/Iconography", + title: "Foundation/Iconography", component: IconGallery, parameters: { layout: "padded", diff --git a/apps/dashboard/shared/components/design-system/illustration/Illustration.stories.tsx b/apps/dashboard/shared/components/design-system/illustration/Illustration.stories.tsx index c832986ae..278140f54 100644 --- a/apps/dashboard/shared/components/design-system/illustration/Illustration.stories.tsx +++ b/apps/dashboard/shared/components/design-system/illustration/Illustration.stories.tsx @@ -7,7 +7,7 @@ import { import type { IllustrationName } from "@/shared/components/design-system/illustration/Illustration"; const meta = { - title: "Design System/Primitives/Illustration", + title: "Foundation/Illustration", component: Illustration, parameters: { layout: "padded", diff --git a/apps/dashboard/shared/components/design-system/links/default-link/DefaultLink.stories.tsx b/apps/dashboard/shared/components/design-system/links/default-link/DefaultLink.stories.tsx index f9d25bea6..76738976b 100644 --- a/apps/dashboard/shared/components/design-system/links/default-link/DefaultLink.stories.tsx +++ b/apps/dashboard/shared/components/design-system/links/default-link/DefaultLink.stories.tsx @@ -4,7 +4,7 @@ import { DefaultLink } from "@/shared/components/design-system/links/default-lin import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; const meta: Meta = { - title: "Design System/Links/DefaultLink", + title: "Navigation/Links/DefaultLink", component: DefaultLink, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/links/default-link/DefaultLink.tsx b/apps/dashboard/shared/components/design-system/links/default-link/DefaultLink.tsx index e6a28596b..bb09938db 100644 --- a/apps/dashboard/shared/components/design-system/links/default-link/DefaultLink.tsx +++ b/apps/dashboard/shared/components/design-system/links/default-link/DefaultLink.tsx @@ -3,7 +3,7 @@ import type { LinkProps } from "next/link"; import Link from "next/link"; import type { ReactNode } from "react"; -import { cn } from "@/shared/utils"; +import { cn } from "@/shared/utils/cn"; export const defaultLinkVariants = cva( "flex items-center gap-1 font-mono tracking-wider uppercase leading-none font-medium transition-colors duration-300", @@ -25,7 +25,7 @@ export const defaultLinkVariants = cva( }, ); -type DefaultLinkProps = LinkProps & +export type DefaultLinkProps = LinkProps & VariantProps & { children?: ReactNode; openInNewTab: boolean; diff --git a/apps/dashboard/shared/components/design-system/links/default-link/index.ts b/apps/dashboard/shared/components/design-system/links/default-link/index.ts index 3de7261f0..ba88a86da 100644 --- a/apps/dashboard/shared/components/design-system/links/default-link/index.ts +++ b/apps/dashboard/shared/components/design-system/links/default-link/index.ts @@ -1,2 +1,5 @@ -export * from "@/shared/components/design-system/links/default-link/DefaultLink"; -export * from "@/shared/components/design-system/links/default-link/DefaultLink.stories"; +export { + DefaultLink, + defaultLinkVariants, +} from "@/shared/components/design-system/links/default-link/DefaultLink"; +export type { DefaultLinkProps } from "@/shared/components/design-system/links/default-link/DefaultLink"; diff --git a/apps/dashboard/shared/components/design-system/links/index.ts b/apps/dashboard/shared/components/design-system/links/index.ts new file mode 100644 index 000000000..77581fda8 --- /dev/null +++ b/apps/dashboard/shared/components/design-system/links/index.ts @@ -0,0 +1,12 @@ +export { + DefaultLink, + defaultLinkVariants, +} from "@/shared/components/design-system/links/default-link/DefaultLink"; +export type { DefaultLinkProps } from "@/shared/components/design-system/links/default-link/DefaultLink"; +export { + UnderlinedLink, + underlinedStyles, +} from "@/shared/components/design-system/links/underlined-link/UnderlinedLink"; +export type { UnderlinedLinkProps } from "@/shared/components/design-system/links/underlined-link/UnderlinedLink"; +export { UnderlinedButton } from "@/shared/components/design-system/links/underlined-link/UnderlinedButton"; +export type { UnderlinedButtonProps } from "@/shared/components/design-system/links/underlined-link/UnderlinedButton"; diff --git a/apps/dashboard/shared/components/design-system/links/underlined-link/UnderlinedButton.tsx b/apps/dashboard/shared/components/design-system/links/underlined-link/UnderlinedButton.tsx index 56939048a..838ecbde3 100644 --- a/apps/dashboard/shared/components/design-system/links/underlined-link/UnderlinedButton.tsx +++ b/apps/dashboard/shared/components/design-system/links/underlined-link/UnderlinedButton.tsx @@ -1,9 +1,9 @@ import type { ButtonHTMLAttributes, ReactNode } from "react"; import { underlinedStyles } from "@/shared/components/design-system/links/underlined-link/UnderlinedLink"; -import { cn } from "@/shared/utils"; +import { cn } from "@/shared/utils/cn"; -type UnderlinedButtonProps = ButtonHTMLAttributes & { +export type UnderlinedButtonProps = ButtonHTMLAttributes & { children: ReactNode; className?: string; }; diff --git a/apps/dashboard/shared/components/design-system/links/underlined-link/UnderlinedLink.stories.tsx b/apps/dashboard/shared/components/design-system/links/underlined-link/UnderlinedLink.stories.tsx index 642483620..c75d367d9 100644 --- a/apps/dashboard/shared/components/design-system/links/underlined-link/UnderlinedLink.stories.tsx +++ b/apps/dashboard/shared/components/design-system/links/underlined-link/UnderlinedLink.stories.tsx @@ -5,7 +5,7 @@ import { UnderlinedLink } from "@/shared/components/design-system/links/underlin import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; const meta: Meta = { - title: "Design System/Links/UnderlinedLink", + title: "Navigation/Links/UnderlinedLink", component: UnderlinedLink, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/links/underlined-link/UnderlinedLink.tsx b/apps/dashboard/shared/components/design-system/links/underlined-link/UnderlinedLink.tsx index 981e0bfa4..f1ecd5703 100644 --- a/apps/dashboard/shared/components/design-system/links/underlined-link/UnderlinedLink.tsx +++ b/apps/dashboard/shared/components/design-system/links/underlined-link/UnderlinedLink.tsx @@ -5,7 +5,7 @@ import type { ReactNode } from "react"; export const underlinedStyles = "group border-foreground text-secondary hover:text-primary flex items-center gap-1 border-b border-dashed font-mono text-sm text-[13px] leading-[18px] font-medium tracking-wide uppercase duration-300 hover:border-white"; -type UnderlinedLinkProps = LinkProps & { +export type UnderlinedLinkProps = LinkProps & { children: ReactNode; openInNewTab: boolean; className?: string; diff --git a/apps/dashboard/shared/components/design-system/links/underlined-link/index.ts b/apps/dashboard/shared/components/design-system/links/underlined-link/index.ts index 244bf9795..060103a00 100644 --- a/apps/dashboard/shared/components/design-system/links/underlined-link/index.ts +++ b/apps/dashboard/shared/components/design-system/links/underlined-link/index.ts @@ -1,3 +1,7 @@ -export * from "@/shared/components/design-system/links/underlined-link/UnderlinedLink"; -export * from "@/shared/components/design-system/links/underlined-link/UnderlinedButton"; -export * from "@/shared/components/design-system/links/underlined-link/UnderlinedLink.stories"; +export { + UnderlinedLink, + underlinedStyles, +} from "@/shared/components/design-system/links/underlined-link/UnderlinedLink"; +export type { UnderlinedLinkProps } from "@/shared/components/design-system/links/underlined-link/UnderlinedLink"; +export { UnderlinedButton } from "@/shared/components/design-system/links/underlined-link/UnderlinedButton"; +export type { UnderlinedButtonProps } from "@/shared/components/design-system/links/underlined-link/UnderlinedButton"; diff --git a/apps/dashboard/shared/components/design-system/logo/Logo.stories.tsx b/apps/dashboard/shared/components/design-system/logo/Logo.stories.tsx index 42ba1bcd7..3aff49042 100644 --- a/apps/dashboard/shared/components/design-system/logo/Logo.stories.tsx +++ b/apps/dashboard/shared/components/design-system/logo/Logo.stories.tsx @@ -7,7 +7,7 @@ import type { } from "@/shared/components/design-system/logo/Logo"; const meta = { - title: "Design System/Primitives/Logo", + title: "Foundation/Logo", component: Logo, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/modal/Modal.stories.tsx b/apps/dashboard/shared/components/design-system/modal/Modal.stories.tsx index be67bdf7a..bd1338160 100644 --- a/apps/dashboard/shared/components/design-system/modal/Modal.stories.tsx +++ b/apps/dashboard/shared/components/design-system/modal/Modal.stories.tsx @@ -9,7 +9,7 @@ import type { ModalProps } from "@/shared/components/design-system/modal/types"; import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; const meta: Meta = { - title: "Design System/Modal/Modal", + title: "Feedback/Modal/Modal", component: Modal, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/modal/modal-footer/ModalFooter.stories.tsx b/apps/dashboard/shared/components/design-system/modal/modal-footer/ModalFooter.stories.tsx index 5fe1dfbc6..142ff5f93 100644 --- a/apps/dashboard/shared/components/design-system/modal/modal-footer/ModalFooter.stories.tsx +++ b/apps/dashboard/shared/components/design-system/modal/modal-footer/ModalFooter.stories.tsx @@ -5,7 +5,7 @@ import type { ModalFooterProps } from "@/shared/components/design-system/modal/t import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; const meta: Meta = { - title: "Design System/Modal/ModalFooter", + title: "Feedback/Modal/ModalFooter", component: ModalFooter, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/modal/modal-header/ModalHeader.stories.tsx b/apps/dashboard/shared/components/design-system/modal/modal-header/ModalHeader.stories.tsx index 5ed4488f0..3854394e8 100644 --- a/apps/dashboard/shared/components/design-system/modal/modal-header/ModalHeader.stories.tsx +++ b/apps/dashboard/shared/components/design-system/modal/modal-header/ModalHeader.stories.tsx @@ -6,7 +6,7 @@ import type { ModalHeaderProps } from "@/shared/components/design-system/modal/t import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; const meta: Meta = { - title: "Design System/Modal/ModalHeader", + title: "Feedback/Modal/ModalHeader", component: ModalHeader, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/progress-bar/ProgressBar.stories.tsx b/apps/dashboard/shared/components/design-system/progress-bar/ProgressBar.stories.tsx index b851b4081..98844625f 100644 --- a/apps/dashboard/shared/components/design-system/progress-bar/ProgressBar.stories.tsx +++ b/apps/dashboard/shared/components/design-system/progress-bar/ProgressBar.stories.tsx @@ -5,7 +5,7 @@ import type { ProgressBarProps } from "@/shared/components/design-system/progres import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; const meta: Meta = { - title: "Design System/Progress Bar/ProgressBar", + title: "Data Display/ProgressBar", component: ProgressBar, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/section/BulletDivider.tsx b/apps/dashboard/shared/components/design-system/section/BulletDivider.tsx deleted file mode 100644 index e98160cf9..000000000 --- a/apps/dashboard/shared/components/design-system/section/BulletDivider.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import { cn } from "@/shared/utils"; - -export const BulletDivider = ({ className }: { className?: string }) => { - return ( -
- ); -}; diff --git a/apps/dashboard/shared/components/design-system/section/bullet-divider/BulletDivider.figma.tsx b/apps/dashboard/shared/components/design-system/section/bullet-divider/BulletDivider.figma.tsx new file mode 100644 index 000000000..ab3c49151 --- /dev/null +++ b/apps/dashboard/shared/components/design-system/section/bullet-divider/BulletDivider.figma.tsx @@ -0,0 +1,11 @@ +import figma from "@figma/code-connect"; + +import { BulletDivider } from "@/shared/components/design-system/section/bullet-divider/BulletDivider"; + +figma.connect( + BulletDivider, + "https://www.figma.com/design/DEKMQifA8YOb3oxznHboSY/%F0%9F%93%81-Orbit-UI?node-id=11304-19660", + { + example: () => , + }, +); diff --git a/apps/dashboard/shared/components/design-system/section/bullet-divider/BulletDivider.stories.tsx b/apps/dashboard/shared/components/design-system/section/bullet-divider/BulletDivider.stories.tsx new file mode 100644 index 000000000..409a15204 --- /dev/null +++ b/apps/dashboard/shared/components/design-system/section/bullet-divider/BulletDivider.stories.tsx @@ -0,0 +1,51 @@ +import type { Meta, StoryObj } from "@storybook/nextjs"; + +import { BulletDivider } from "@/shared/components/design-system/section/bullet-divider/BulletDivider"; +import type { BulletDividerProps } from "@/shared/components/design-system/section/types"; +import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; + +const meta: Meta = { + title: "Layout/Sections/BulletDivider", + component: BulletDivider, + parameters: { + layout: "centered", + design: getFigmaDesignConfigByNodeId("11304-19660"), + }, + tags: ["autodocs"], + argTypes: { + className: { + control: "text", + description: "Additional CSS classes", + }, + }, +}; + +export default meta; +type Story = StoryObj; + +export const Default: Story = { + args: {}, +}; + +export const AllStates = { + render: () => ( +
+
+ Default + +
+
+ + In context (inline between text items) + +
+ Overview + + Jan 1 – Dec 31, 2024 + + 1,234 members +
+
+
+ ), +}; diff --git a/apps/dashboard/shared/components/design-system/section/bullet-divider/BulletDivider.tsx b/apps/dashboard/shared/components/design-system/section/bullet-divider/BulletDivider.tsx new file mode 100644 index 000000000..b4546868f --- /dev/null +++ b/apps/dashboard/shared/components/design-system/section/bullet-divider/BulletDivider.tsx @@ -0,0 +1,9 @@ +import { cn } from "@/shared/utils/cn"; + +import type { BulletDividerProps } from "@/shared/components/design-system/section/types"; + +export const BulletDivider = ({ className }: BulletDividerProps) => { + return ( +
+ ); +}; diff --git a/apps/dashboard/shared/components/design-system/section/index.ts b/apps/dashboard/shared/components/design-system/section/index.ts index a132c9b01..5a8e8608b 100644 --- a/apps/dashboard/shared/components/design-system/section/index.ts +++ b/apps/dashboard/shared/components/design-system/section/index.ts @@ -1,5 +1,12 @@ -export * from "@/shared/components/design-system/section/SectionTitle"; -export * from "@/shared/components/design-system/section/SubsectionTitle"; -export * from "@/shared/components/design-system/section/SubSection"; -export * from "@/shared/components/design-system/section/SubSectionsContainer"; -export * from "@/shared/components/design-system/section/BulletDivider"; +export { SectionTitle } from "@/shared/components/design-system/section/section-title/SectionTitle"; +export { SubsectionTitle } from "@/shared/components/design-system/section/subsection-title/SubsectionTitle"; +export { SubSection } from "@/shared/components/design-system/section/sub-section/SubSection"; +export { SubSectionsContainer } from "@/shared/components/design-system/section/subsections-container/SubSectionsContainer"; +export { BulletDivider } from "@/shared/components/design-system/section/bullet-divider/BulletDivider"; +export type { + SectionTitleProps, + SubsectionTitleProps, + SubSectionProps, + SubSectionsContainerProps, + BulletDividerProps, +} from "@/shared/components/design-system/section/types"; diff --git a/apps/dashboard/shared/components/design-system/section/section-title/SectionTitle.figma.tsx b/apps/dashboard/shared/components/design-system/section/section-title/SectionTitle.figma.tsx new file mode 100644 index 000000000..79d487725 --- /dev/null +++ b/apps/dashboard/shared/components/design-system/section/section-title/SectionTitle.figma.tsx @@ -0,0 +1,22 @@ +import figma from "@figma/code-connect"; +import { Shield } from "lucide-react"; + +import { SectionTitle } from "@/shared/components/design-system/section/section-title/SectionTitle"; + +figma.connect( + SectionTitle, + "https://www.figma.com/design/DEKMQifA8YOb3oxznHboSY/%F0%9F%93%81-Orbit-UI?node-id=10339-58367", + { + props: { + title: figma.string("title"), + description: figma.string("description"), + }, + example: ({ title, description }) => ( + } + title={title} + description={description} + /> + ), + }, +); diff --git a/apps/dashboard/shared/components/design-system/section/SectionTitle.stories.tsx b/apps/dashboard/shared/components/design-system/section/section-title/SectionTitle.stories.tsx similarity index 99% rename from apps/dashboard/shared/components/design-system/section/SectionTitle.stories.tsx rename to apps/dashboard/shared/components/design-system/section/section-title/SectionTitle.stories.tsx index fdcbb6eb2..b67227577 100644 --- a/apps/dashboard/shared/components/design-system/section/SectionTitle.stories.tsx +++ b/apps/dashboard/shared/components/design-system/section/section-title/SectionTitle.stories.tsx @@ -10,11 +10,11 @@ import { Settings, } from "lucide-react"; -import { SectionTitle } from "@/shared/components/design-system/section/SectionTitle"; +import { SectionTitle } from "@/shared/components/design-system/section"; import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; const meta = { - title: "Design System/Sections/SectionTitle", + title: "Layout/Sections/SectionTitle", component: SectionTitle, parameters: { layout: "padded", diff --git a/apps/dashboard/shared/components/design-system/section/SectionTitle.tsx b/apps/dashboard/shared/components/design-system/section/section-title/SectionTitle.tsx similarity index 81% rename from apps/dashboard/shared/components/design-system/section/SectionTitle.tsx rename to apps/dashboard/shared/components/design-system/section/section-title/SectionTitle.tsx index 0ac2d328c..75172cdb6 100644 --- a/apps/dashboard/shared/components/design-system/section/SectionTitle.tsx +++ b/apps/dashboard/shared/components/design-system/section/section-title/SectionTitle.tsx @@ -1,20 +1,16 @@ -import type { ReactNode } from "react"; +import { cn } from "@/shared/utils/cn"; -type SectionTitleProps = { - icon: ReactNode; - title: string; - riskLevel?: ReactNode; - description: string; -}; +import type { SectionTitleProps } from "@/shared/components/design-system/section/types"; export const SectionTitle = ({ icon, title, riskLevel, description, + className, }: SectionTitleProps) => { return ( -
+
diff --git a/apps/dashboard/shared/components/design-system/section/sub-section/SubSection.figma.tsx b/apps/dashboard/shared/components/design-system/section/sub-section/SubSection.figma.tsx new file mode 100644 index 000000000..20ed85e52 --- /dev/null +++ b/apps/dashboard/shared/components/design-system/section/sub-section/SubSection.figma.tsx @@ -0,0 +1,19 @@ +import figma from "@figma/code-connect"; + +import { SubSection } from "@/shared/components/design-system/section/sub-section/SubSection"; + +figma.connect( + SubSection, + "https://www.figma.com/design/DEKMQifA8YOb3oxznHboSY/%F0%9F%93%81-Orbit-UI?node-id=10339-58558", + { + props: { + subsectionTitle: figma.string("title"), + dateRange: figma.string("dateRange"), + }, + example: ({ subsectionTitle, dateRange }) => ( + +
Place the content here
+
+ ), + }, +); diff --git a/apps/dashboard/shared/components/design-system/section/SubSection.stories.tsx b/apps/dashboard/shared/components/design-system/section/sub-section/SubSection.stories.tsx similarity index 99% rename from apps/dashboard/shared/components/design-system/section/SubSection.stories.tsx rename to apps/dashboard/shared/components/design-system/section/sub-section/SubSection.stories.tsx index 60d396e2f..a61857320 100644 --- a/apps/dashboard/shared/components/design-system/section/SubSection.stories.tsx +++ b/apps/dashboard/shared/components/design-system/section/sub-section/SubSection.stories.tsx @@ -1,11 +1,11 @@ import type { Meta, StoryObj } from "@storybook/nextjs"; import { Calendar, TrendingUp, Users, Activity } from "lucide-react"; -import { SubSection } from "@/shared/components/design-system/section/SubSection"; +import { SubSection } from "@/shared/components/design-system/section"; import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; const meta = { - title: "Design System/Sections/SubSection", + title: "Layout/Sections/SubSection", component: SubSection, parameters: { layout: "padded", diff --git a/apps/dashboard/shared/components/design-system/section/SubSection.tsx b/apps/dashboard/shared/components/design-system/section/sub-section/SubSection.tsx similarity index 68% rename from apps/dashboard/shared/components/design-system/section/SubSection.tsx rename to apps/dashboard/shared/components/design-system/section/sub-section/SubSection.tsx index d28538574..3d8b9dac4 100644 --- a/apps/dashboard/shared/components/design-system/section/SubSection.tsx +++ b/apps/dashboard/shared/components/design-system/section/sub-section/SubSection.tsx @@ -1,17 +1,8 @@ "use client"; -import type { ReactNode } from "react"; +import { SubsectionTitle } from "@/shared/components/design-system/section/subsection-title/SubsectionTitle"; -import { SubsectionTitle } from "@/shared/components/design-system/section/SubsectionTitle"; - -type SubSectionProps = { - subsectionTitle: string | ReactNode; - subsectionDescription?: string; - dateRange: string; - switcherComponent?: ReactNode; - children: ReactNode; - className?: string; -}; +import type { SubSectionProps } from "@/shared/components/design-system/section/types"; export const SubSection = ({ subsectionTitle, diff --git a/apps/dashboard/shared/components/design-system/section/SubSectionTitle.stories.tsx b/apps/dashboard/shared/components/design-system/section/subsection-title/SubSectionTitle.stories.tsx similarity index 99% rename from apps/dashboard/shared/components/design-system/section/SubSectionTitle.stories.tsx rename to apps/dashboard/shared/components/design-system/section/subsection-title/SubSectionTitle.stories.tsx index 22906217a..e7691a5e7 100644 --- a/apps/dashboard/shared/components/design-system/section/SubSectionTitle.stories.tsx +++ b/apps/dashboard/shared/components/design-system/section/subsection-title/SubSectionTitle.stories.tsx @@ -1,11 +1,11 @@ import type { Meta, StoryObj } from "@storybook/nextjs"; import { Calendar, TrendingUp, Filter, RefreshCw } from "lucide-react"; -import { SubsectionTitle } from "@/shared/components/design-system/section/SubsectionTitle"; +import { SubsectionTitle } from "@/shared/components/design-system/section"; import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; const meta = { - title: "Design System/Sections/SubsectionTitle", + title: "Layout/Sections/SubsectionTitle", component: SubsectionTitle, parameters: { layout: "padded", diff --git a/apps/dashboard/shared/components/design-system/section/subsection-title/SubsectionTitle.figma.tsx b/apps/dashboard/shared/components/design-system/section/subsection-title/SubsectionTitle.figma.tsx new file mode 100644 index 000000000..7a2a3b65b --- /dev/null +++ b/apps/dashboard/shared/components/design-system/section/subsection-title/SubsectionTitle.figma.tsx @@ -0,0 +1,23 @@ +import figma from "@figma/code-connect"; + +import { SubsectionTitle } from "@/shared/components/design-system/section/subsection-title/SubsectionTitle"; + +figma.connect( + SubsectionTitle, + "https://www.figma.com/design/DEKMQifA8YOb3oxznHboSY/%F0%9F%93%81-Orbit-UI?node-id=11508-25396", + { + props: { + subsectionTitle: figma.string("title"), + subsectionDescription: figma.string("description"), + dateRange: figma.string("dateRange"), + }, + example: ({ subsectionTitle, subsectionDescription, dateRange }) => ( + + ), + }, +); diff --git a/apps/dashboard/shared/components/design-system/section/SubsectionTitle.tsx b/apps/dashboard/shared/components/design-system/section/subsection-title/SubsectionTitle.tsx similarity index 76% rename from apps/dashboard/shared/components/design-system/section/SubsectionTitle.tsx rename to apps/dashboard/shared/components/design-system/section/subsection-title/SubsectionTitle.tsx index a3bc893e5..23bc8d996 100644 --- a/apps/dashboard/shared/components/design-system/section/SubsectionTitle.tsx +++ b/apps/dashboard/shared/components/design-system/section/subsection-title/SubsectionTitle.tsx @@ -1,15 +1,8 @@ "use client"; -import type { ReactNode } from "react"; +import { cn } from "@/shared/utils/cn"; -import { cn } from "@/shared/utils"; - -type SubsectionTitleProps = { - subsectionTitle: string | ReactNode; - subsectionDescription: string; - dateRange: string; - switcherComponent: ReactNode; -}; +import type { SubsectionTitleProps } from "@/shared/components/design-system/section/types"; export const SubsectionTitle = ({ subsectionTitle, diff --git a/apps/dashboard/shared/components/design-system/section/SubSectionContainer.stories.tsx b/apps/dashboard/shared/components/design-system/section/subsections-container/SubSectionContainer.stories.tsx similarity index 99% rename from apps/dashboard/shared/components/design-system/section/SubSectionContainer.stories.tsx rename to apps/dashboard/shared/components/design-system/section/subsections-container/SubSectionContainer.stories.tsx index 28e300b96..19115a8ac 100644 --- a/apps/dashboard/shared/components/design-system/section/SubSectionContainer.stories.tsx +++ b/apps/dashboard/shared/components/design-system/section/subsections-container/SubSectionContainer.stories.tsx @@ -1,12 +1,12 @@ import type { Meta, StoryObj } from "@storybook/nextjs"; import { Calendar, TrendingUp, Users } from "lucide-react"; -import { SubSection } from "@/shared/components/design-system/section/SubSection"; -import { SubSectionsContainer } from "@/shared/components/design-system/section/SubSectionsContainer"; +import { SubSection } from "@/shared/components/design-system/section"; +import { SubSectionsContainer } from "@/shared/components/design-system/section"; import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; const meta = { - title: "Design System/Sections/SubSectionsContainer", + title: "Layout/Sections/SubSectionsContainer", component: SubSectionsContainer, parameters: { layout: "fullscreen", diff --git a/apps/dashboard/shared/components/design-system/section/subsections-container/SubSectionsContainer.figma.tsx b/apps/dashboard/shared/components/design-system/section/subsections-container/SubSectionsContainer.figma.tsx new file mode 100644 index 000000000..a2a1828fe --- /dev/null +++ b/apps/dashboard/shared/components/design-system/section/subsections-container/SubSectionsContainer.figma.tsx @@ -0,0 +1,18 @@ +import figma from "@figma/code-connect"; + +import { SubSection } from "@/shared/components/design-system/section/sub-section/SubSection"; +import { SubSectionsContainer } from "@/shared/components/design-system/section/subsections-container/SubSectionsContainer"; + +figma.connect( + SubSectionsContainer, + "https://www.figma.com/design/DEKMQifA8YOb3oxznHboSY/%F0%9F%93%81-Orbit-UI?node-id=10339-58558", + { + example: () => ( + + +
Place the content here
+
+
+ ), + }, +); diff --git a/apps/dashboard/shared/components/design-system/section/SubSectionsContainer.tsx b/apps/dashboard/shared/components/design-system/section/subsections-container/SubSectionsContainer.tsx similarity index 65% rename from apps/dashboard/shared/components/design-system/section/SubSectionsContainer.tsx rename to apps/dashboard/shared/components/design-system/section/subsections-container/SubSectionsContainer.tsx index 6bad3c0e7..017f9602b 100644 --- a/apps/dashboard/shared/components/design-system/section/SubSectionsContainer.tsx +++ b/apps/dashboard/shared/components/design-system/section/subsections-container/SubSectionsContainer.tsx @@ -1,13 +1,8 @@ "use client"; -import type { ReactNode } from "react"; +import { cn } from "@/shared/utils/cn"; -import { cn } from "@/shared/utils"; - -type SubSectionsContainerProps = { - children: ReactNode; - className?: string; -}; +import type { SubSectionsContainerProps } from "@/shared/components/design-system/section/types"; export const SubSectionsContainer = ({ children, diff --git a/apps/dashboard/shared/components/design-system/section/types.ts b/apps/dashboard/shared/components/design-system/section/types.ts new file mode 100644 index 000000000..e83d68038 --- /dev/null +++ b/apps/dashboard/shared/components/design-system/section/types.ts @@ -0,0 +1,34 @@ +import type { ReactNode } from "react"; + +export type SectionTitleProps = { + icon: ReactNode; + title: string; + riskLevel?: ReactNode; + description: string; + className?: string; +}; + +export type SubsectionTitleProps = { + subsectionTitle: string | ReactNode; + subsectionDescription: string; + dateRange: string; + switcherComponent: ReactNode; +}; + +export type SubSectionProps = { + subsectionTitle: string | ReactNode; + subsectionDescription?: string; + dateRange: string; + switcherComponent?: ReactNode; + children: ReactNode; + className?: string; +}; + +export type SubSectionsContainerProps = { + children: ReactNode; + className?: string; +}; + +export type BulletDividerProps = { + className?: string; +}; diff --git a/apps/dashboard/shared/components/design-system/segmented-control/SegmentedControl.stories.tsx b/apps/dashboard/shared/components/design-system/segmented-control/SegmentedControl.stories.tsx index 1f0828708..c6afb2ad7 100644 --- a/apps/dashboard/shared/components/design-system/segmented-control/SegmentedControl.stories.tsx +++ b/apps/dashboard/shared/components/design-system/segmented-control/SegmentedControl.stories.tsx @@ -9,7 +9,7 @@ type SegmentedControlStoryArgs = SegmentedControlProps & { }; const meta: Meta = { - title: "Design System/Segmented Control/SegmentedControl", + title: "Data Entry/Segmented Control/SegmentedControl", component: SegmentedControl, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/segmented-control/segmented-control-item/SegmentedControlItem.stories.tsx b/apps/dashboard/shared/components/design-system/segmented-control/segmented-control-item/SegmentedControlItem.stories.tsx index 3b1b98772..4a04d0467 100644 --- a/apps/dashboard/shared/components/design-system/segmented-control/segmented-control-item/SegmentedControlItem.stories.tsx +++ b/apps/dashboard/shared/components/design-system/segmented-control/segmented-control-item/SegmentedControlItem.stories.tsx @@ -9,7 +9,7 @@ type SegmentedControlItemStoryArgs = SegmentedControlItemProps & { }; const meta: Meta = { - title: "Design System/Segmented Control/SegmentedControlItem", + title: "Data Entry/Segmented Control/SegmentedControlItem", component: SegmentedControlItem, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/segmented-control/segmented-control-item/SegmentedControlItem.tsx b/apps/dashboard/shared/components/design-system/segmented-control/segmented-control-item/SegmentedControlItem.tsx index ab935f97a..c0ac1278e 100644 --- a/apps/dashboard/shared/components/design-system/segmented-control/segmented-control-item/SegmentedControlItem.tsx +++ b/apps/dashboard/shared/components/design-system/segmented-control/segmented-control-item/SegmentedControlItem.tsx @@ -1,6 +1,6 @@ // ⚠️ Internal component — use instead of rendering SegmentedControlItem directly. -import { BadgeStatus } from "@/shared/components/design-system/badges/BadgeStatus"; +import { BadgeStatus } from "@/shared/components/design-system/badges"; import { sizeStyles } from "@/shared/components/design-system/segmented-control/styles"; import type { SegmentedControlItemProps } from "@/shared/components/design-system/segmented-control/types"; import { cn } from "@/shared/utils/cn"; diff --git a/apps/dashboard/shared/components/design-system/table/filters/amount-filter/components/FilterSort.tsx b/apps/dashboard/shared/components/design-system/table/filters/amount-filter/components/FilterSort.tsx index b8bb36628..3001282ff 100644 --- a/apps/dashboard/shared/components/design-system/table/filters/amount-filter/components/FilterSort.tsx +++ b/apps/dashboard/shared/components/design-system/table/filters/amount-filter/components/FilterSort.tsx @@ -2,7 +2,7 @@ import { useState, useEffect } from "react"; -import { RadioButton } from "@/shared/components/design-system/buttons/RadioButton"; +import { RadioButton } from "@/shared/components/design-system/form/fields"; import { cn } from "@/shared/utils"; export interface SortOption { diff --git a/apps/dashboard/shared/components/design-system/tabs/pill-tab-group/PillTabGroup.stories.tsx b/apps/dashboard/shared/components/design-system/tabs/pill-tab-group/PillTabGroup.stories.tsx index 49cd444e9..04ed44cd4 100644 --- a/apps/dashboard/shared/components/design-system/tabs/pill-tab-group/PillTabGroup.stories.tsx +++ b/apps/dashboard/shared/components/design-system/tabs/pill-tab-group/PillTabGroup.stories.tsx @@ -5,7 +5,7 @@ import type { PillTabGroupProps } from "@/shared/components/design-system/tabs/t import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; const meta: Meta = { - title: "Design System/Tabs/PillTabGroup", + title: "Navigation/Tabs/PillTabGroup", component: PillTabGroup, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/tabs/pill-tab/PillTab.stories.tsx b/apps/dashboard/shared/components/design-system/tabs/pill-tab/PillTab.stories.tsx index dbd7dd9b6..5d631ec5b 100644 --- a/apps/dashboard/shared/components/design-system/tabs/pill-tab/PillTab.stories.tsx +++ b/apps/dashboard/shared/components/design-system/tabs/pill-tab/PillTab.stories.tsx @@ -7,7 +7,7 @@ import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; type PillTabStoryArgs = PillTabProps & { showCounter?: boolean }; const meta: Meta = { - title: "Design System/Tabs/PillTab", + title: "Navigation/Tabs/PillTab", component: PillTab, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/tabs/tab-group/TabGroup.stories.tsx b/apps/dashboard/shared/components/design-system/tabs/tab-group/TabGroup.stories.tsx index 4f20a0b4b..6827871a3 100644 --- a/apps/dashboard/shared/components/design-system/tabs/tab-group/TabGroup.stories.tsx +++ b/apps/dashboard/shared/components/design-system/tabs/tab-group/TabGroup.stories.tsx @@ -7,7 +7,7 @@ import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; type TabGroupStoryArgs = TabGroupProps & { showBadges?: boolean }; const meta: Meta = { - title: "Design System/Tabs/TabGroup", + title: "Navigation/Tabs/TabGroup", component: TabGroup, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/tabs/tab/Tab.stories.tsx b/apps/dashboard/shared/components/design-system/tabs/tab/Tab.stories.tsx index 78c63c111..413ec451e 100644 --- a/apps/dashboard/shared/components/design-system/tabs/tab/Tab.stories.tsx +++ b/apps/dashboard/shared/components/design-system/tabs/tab/Tab.stories.tsx @@ -7,7 +7,7 @@ import { getFigmaDesignConfigByNodeId } from "@/shared/utils/figma-storybook"; type TabStoryArgs = TabProps & { showBadge?: boolean }; const meta: Meta = { - title: "Design System/Tabs/Tab", + title: "Navigation/Tabs/Tab", component: Tab, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/tabs/tab/Tab.tsx b/apps/dashboard/shared/components/design-system/tabs/tab/Tab.tsx index 24f361705..61bfcde05 100644 --- a/apps/dashboard/shared/components/design-system/tabs/tab/Tab.tsx +++ b/apps/dashboard/shared/components/design-system/tabs/tab/Tab.tsx @@ -1,4 +1,4 @@ -import { BadgeStatus } from "@/shared/components/design-system/badges/BadgeStatus"; +import { BadgeStatus } from "@/shared/components/design-system/badges"; import { sizeStyles } from "@/shared/components/design-system/tabs/styles"; import type { TabProps } from "@/shared/components/design-system/tabs/types"; import { cn } from "@/shared/utils/cn"; diff --git a/apps/dashboard/shared/components/design-system/toast/Toast.stories.tsx b/apps/dashboard/shared/components/design-system/toast/Toast.stories.tsx index d7e93dde1..1ddaad195 100644 --- a/apps/dashboard/shared/components/design-system/toast/Toast.stories.tsx +++ b/apps/dashboard/shared/components/design-system/toast/Toast.stories.tsx @@ -3,7 +3,7 @@ import type { Meta, StoryObj } from "@storybook/nextjs"; import { Toast } from "@/shared/components/design-system/toast/Toast"; const meta: Meta = { - title: "Design System/Toast", + title: "Feedback/Toast", component: Toast, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/toast/Toast.tsx b/apps/dashboard/shared/components/design-system/toast/Toast.tsx index b1b163082..731d65da2 100644 --- a/apps/dashboard/shared/components/design-system/toast/Toast.tsx +++ b/apps/dashboard/shared/components/design-system/toast/Toast.tsx @@ -1,13 +1,8 @@ import { AlertTriangle, CheckCircle2, X } from "lucide-react"; -import { cn } from "@/shared/utils"; +import { cn } from "@/shared/utils/cn"; -export interface ToastProps { - message: string; - type: "success" | "error"; - visible: boolean; - onClose: () => void; -} +import type { ToastProps } from "./types"; const toastConfig = { success: { diff --git a/apps/dashboard/shared/components/design-system/toast/index.ts b/apps/dashboard/shared/components/design-system/toast/index.ts index a4dfe8be0..1e0cbeb90 100644 --- a/apps/dashboard/shared/components/design-system/toast/index.ts +++ b/apps/dashboard/shared/components/design-system/toast/index.ts @@ -1,2 +1,2 @@ export { Toast } from "@/shared/components/design-system/toast/Toast"; -export type { ToastProps } from "@/shared/components/design-system/toast/Toast"; +export type { ToastProps } from "@/shared/components/design-system/toast/types"; diff --git a/apps/dashboard/shared/components/design-system/toast/types.ts b/apps/dashboard/shared/components/design-system/toast/types.ts new file mode 100644 index 000000000..c08f444ab --- /dev/null +++ b/apps/dashboard/shared/components/design-system/toast/types.ts @@ -0,0 +1,6 @@ +export type ToastProps = { + message: string; + type: "success" | "error"; + visible: boolean; + onClose: () => void; +}; diff --git a/apps/dashboard/shared/components/design-system/tooltips/Tooltip.stories.tsx b/apps/dashboard/shared/components/design-system/tooltips/Tooltip.stories.tsx index 4615cb36e..73739a367 100644 --- a/apps/dashboard/shared/components/design-system/tooltips/Tooltip.stories.tsx +++ b/apps/dashboard/shared/components/design-system/tooltips/Tooltip.stories.tsx @@ -6,7 +6,7 @@ import { Tooltip } from "@/shared/components/design-system/tooltips/Tooltip"; import { RiskLevel } from "@/shared/types/enums"; const meta: Meta = { - title: "Design System/Tooltips/Tooltip", + title: "Feedback/Tooltip", component: Tooltip, parameters: { layout: "centered", diff --git a/apps/dashboard/shared/components/design-system/tooltips/Tooltip.tsx b/apps/dashboard/shared/components/design-system/tooltips/Tooltip.tsx index 18232dd8e..2b921327a 100644 --- a/apps/dashboard/shared/components/design-system/tooltips/Tooltip.tsx +++ b/apps/dashboard/shared/components/design-system/tooltips/Tooltip.tsx @@ -1,23 +1,13 @@ "use client"; import { Content, Trigger, Root, Portal } from "@radix-ui/react-tooltip"; -import type { ReactNode } from "react"; import { useState } from "react"; import { DividerDefault } from "@/shared/components/design-system/divider/DividerDefault"; import { useScreenSize } from "@/shared/hooks/useScreenSize"; -import { cn } from "@/shared/utils/"; +import { cn } from "@/shared/utils/cn"; -interface TooltipProps { - children: ReactNode; - tooltipContent: ReactNode; - className?: string; - triggerClassName?: string; - title?: ReactNode; - titleRight?: ReactNode; - asChild?: boolean; - disableMobileClick?: boolean; -} +import type { TooltipProps } from "./types"; export function Tooltip({ children, diff --git a/apps/dashboard/shared/components/design-system/tooltips/index.ts b/apps/dashboard/shared/components/design-system/tooltips/index.ts new file mode 100644 index 000000000..a67dcd53a --- /dev/null +++ b/apps/dashboard/shared/components/design-system/tooltips/index.ts @@ -0,0 +1,2 @@ +export { Tooltip } from "@/shared/components/design-system/tooltips/Tooltip"; +export type { TooltipProps } from "@/shared/components/design-system/tooltips/types"; diff --git a/apps/dashboard/shared/components/design-system/tooltips/types.ts b/apps/dashboard/shared/components/design-system/tooltips/types.ts new file mode 100644 index 000000000..42431d72a --- /dev/null +++ b/apps/dashboard/shared/components/design-system/tooltips/types.ts @@ -0,0 +1,12 @@ +import type { ReactNode } from "react"; + +export type TooltipProps = { + children: ReactNode; + tooltipContent: ReactNode; + className?: string; + triggerClassName?: string; + title?: ReactNode; + titleRight?: ReactNode; + asChild?: boolean; + disableMobileClick?: boolean; +}; diff --git a/apps/dashboard/shared/components/design-system/typography/Typography.stories.tsx b/apps/dashboard/shared/components/design-system/typography/Typography.stories.tsx index 28719b332..164402c23 100644 --- a/apps/dashboard/shared/components/design-system/typography/Typography.stories.tsx +++ b/apps/dashboard/shared/components/design-system/typography/Typography.stories.tsx @@ -3,7 +3,7 @@ import type { Meta, StoryObj } from "@storybook/nextjs"; import { TypographyShowcase } from "@/shared/components/design-system/typography/Typography"; const meta = { - title: "Design System/Primitives/Typography", + title: "Foundation/Typography", component: TypographyShowcase, parameters: { layout: "padded", diff --git a/apps/dashboard/shared/components/index.ts b/apps/dashboard/shared/components/index.ts index 06722776c..732f4ed2a 100644 --- a/apps/dashboard/shared/components/index.ts +++ b/apps/dashboard/shared/components/index.ts @@ -1,6 +1,6 @@ export * from "@/shared/components/badges/Badge"; export * from "@/shared/components/badges/SupplyLabel"; -export * from "@/shared/components/design-system/badges/BadgeStatus"; +export * from "@/shared/components/design-system/badges"; export * from "@/shared/components/cards/BaseCardDaoInfo"; export * from "@/shared/components/buttons/ButtonHeaderSidebar"; export * from "@/shared/components/buttons/ButtonHeaderDAOSidebarMobile"; diff --git a/apps/dashboard/shared/components/tooltips/AddressDetailsTooltip.tsx b/apps/dashboard/shared/components/tooltips/AddressDetailsTooltip.tsx index ee3332a99..eb5a7dd15 100644 --- a/apps/dashboard/shared/components/tooltips/AddressDetailsTooltip.tsx +++ b/apps/dashboard/shared/components/tooltips/AddressDetailsTooltip.tsx @@ -3,7 +3,7 @@ import type { ReactNode } from "react"; import type { Address } from "viem"; -import { BadgeStatus } from "@/shared/components/design-system/badges/BadgeStatus"; +import { BadgeStatus } from "@/shared/components/design-system/badges"; import { Tooltip } from "@/shared/components/design-system/tooltips/Tooltip"; import { SkeletonRow } from "@/shared/components/skeletons/SkeletonRow"; import type { ArkhamDataResult } from "@/shared/hooks/graphql-client/useArkhamData"; diff --git a/apps/gateful/src/config.ts b/apps/gateful/src/config.ts index 58ebf24c7..21f706d0e 100644 --- a/apps/gateful/src/config.ts +++ b/apps/gateful/src/config.ts @@ -4,7 +4,7 @@ import { z } from "zod"; dotenv.config(); const envSchema = z.object({ - PORT: z.coerce.number().default(4000), + PORT: z.coerce.number().default(4001), ADDRESS_ENRICHMENT_API_URL: z.url().optional(), BLOCKFUL_API_TOKEN: z.string().optional(), }); diff --git a/apps/gateful/src/proxy/route.test.ts b/apps/gateful/src/proxy/route.test.ts index 11a2bb2f7..fb4343bea 100644 --- a/apps/gateful/src/proxy/route.test.ts +++ b/apps/gateful/src/proxy/route.test.ts @@ -41,24 +41,12 @@ describe("proxy route", () => { expect(res.status).toBe(200); }); - it("should resolve DAO from anticapture-dao-id header", async () => { - vi.spyOn(global, "fetch").mockResolvedValue( - new Response(JSON.stringify({ ok: true }), { status: 200 }), - ); - - const res = await app.request("http://localhost/", { - headers: { "anticapture-dao-id": "uni" }, - }); - - expect(res.status).toBe(200); - }); - it("should return 400 when no DAO identifier is provided", async () => { const res = await app.request("/"); expect(res.status).toBe(400); const body = (await res.json()) as { error: string }; - expect(body.error).toContain("Missing DAO identifier"); + expect(body.error).toContain("Use /:dao/* path"); }); it("should resolve DAO case-insensitively from path", async () => { diff --git a/apps/gateful/src/proxy/route.ts b/apps/gateful/src/proxy/route.ts index bd33eacfe..7d252e735 100644 --- a/apps/gateful/src/proxy/route.ts +++ b/apps/gateful/src/proxy/route.ts @@ -10,16 +10,18 @@ import { proxy as honoProxy } from "hono/proxy"; * so it only catches unmatched requests. */ export function proxy(app: OpenAPIHono, daoApis: Map) { - // Two route patterns share the same handler — path-based matches first + // Register path-based matches before the fallback catch-alls so the DAO + // param is available when present in the URL. app.all("/:dao{[^/]+}/*", handler); + app.all("/", handler); + app.all("/*", handler); async function handler(c: Context) { const paramDao = c.req.param("dao"); if (!paramDao) { return c.json( { - error: - "Missing DAO identifier. Use /:dao/* path or anticapture-dao-id header", + error: "Missing DAO identifier. Use /:dao/* path", }, 400, ); diff --git a/apps/indexer/.env.example b/apps/indexer/.env.example index 4f4ca6d51..d9aefa799 100644 --- a/apps/indexer/.env.example +++ b/apps/indexer/.env.example @@ -5,13 +5,3 @@ OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 DATABASE_URL=postgresql://postgres:admin@localhost:5432/postgres DAO_ID=ENS CHAIN_ID=31337 - -# Treasury Provider -DEFILLAMA_API_URL=https://api.llama.fi/treasury -# Examples: ENS, uniswap, optimism-foundation, arbitrum-dao -TREASURY_PROVIDER_PROTOCOL_ID=ENS - -# Petition -COINGECKO_API_KEY= -DUNE_API_KEY= -DUNE_API_URL= diff --git a/apps/indexer/config/truefi.config.ts b/apps/indexer/config/truefi.config.ts new file mode 100644 index 000000000..6be4695a1 --- /dev/null +++ b/apps/indexer/config/truefi.config.ts @@ -0,0 +1,37 @@ +import { createConfig } from "ponder"; +import { CONTRACT_ADDRESSES } from "@/lib/constants"; +import { DaoIdEnum } from "@/lib/enums"; + +import { env } from "@/env"; +import { TrueFiGovernorAbi, TrueFiTokenAbi } from "@/indexer/truefi/abi"; + +const TRUEFI_CONTRACTS = CONTRACT_ADDRESSES[DaoIdEnum.TRUEFI]; + +export default createConfig({ + database: { + kind: "postgres", + connectionString: env.DATABASE_URL, + }, + chains: { + ethereum_mainnet: { + id: 1, + rpc: env.RPC_URL, + maxRequestsPerSecond: env.MAX_REQUESTS_PER_SECOND, + pollingInterval: env.POLLING_INTERVAL, + }, + }, + contracts: { + TrueFiToken: { + abi: TrueFiTokenAbi, + chain: "ethereum_mainnet", + address: TRUEFI_CONTRACTS.token.address, + startBlock: TRUEFI_CONTRACTS.token.startBlock, + }, + TrueFiGovernor: { + abi: TrueFiGovernorAbi, + chain: "ethereum_mainnet", + address: TRUEFI_CONTRACTS.governor.address, + startBlock: TRUEFI_CONTRACTS.governor.startBlock, + }, + }, +}); diff --git a/apps/indexer/ponder.config.ts b/apps/indexer/ponder.config.ts index 0317f2c17..2436a416b 100644 --- a/apps/indexer/ponder.config.ts +++ b/apps/indexer/ponder.config.ts @@ -8,6 +8,7 @@ import obolConfig from "./config/obol.config"; import optimismConfig from "./config/optimism.config"; import scrollConfig from "./config/scroll.config"; import shutterConfig from "./config/shutter.config"; +import truefiConfig from "./config/truefi.config"; import uniswapConfig from "./config/uniswap.config"; import zkConfig from "./config/zk.config"; @@ -25,6 +26,7 @@ export default { ...obolConfig.chains, ...zkConfig.chains, ...shutterConfig.chains, + ...truefiConfig.chains, }, contracts: { ...aaveConfig.contracts, @@ -39,5 +41,6 @@ export default { ...obolConfig.contracts, ...zkConfig.contracts, ...shutterConfig.contracts, + ...truefiConfig.contracts, }, }; diff --git a/apps/indexer/src/index.ts b/apps/indexer/src/index.ts index b38c1676b..fd4f58e10 100644 --- a/apps/indexer/src/index.ts +++ b/apps/indexer/src/index.ts @@ -30,6 +30,7 @@ import { CONTRACT_ADDRESSES } from "@/lib/constants"; import { DaoIdEnum } from "@/lib/enums"; import { SHUGovernorIndexer, SHUTokenIndexer } from "./indexer/shu"; +import { TrueFiTokenIndexer, TrueFiGovernorIndexer } from "./indexer/truefi"; import { AAVETokenIndexer, stkAAVETokenIndexer, @@ -105,6 +106,11 @@ switch (daoId) { SHUGovernorIndexer(blockTime); break; } + case DaoIdEnum.TRUEFI: { + TrueFiTokenIndexer(token.address, token.decimals); + TrueFiGovernorIndexer(blockTime); + break; + } case DaoIdEnum.AAVE: { const { aave, stkAAVE, aAAVE } = CONTRACT_ADDRESSES[DaoIdEnum.AAVE]; AAVETokenIndexer(aave.address, aave.decimals); diff --git a/apps/indexer/src/indexer/truefi/INTEGRATION.md b/apps/indexer/src/indexer/truefi/INTEGRATION.md new file mode 100644 index 000000000..83f67251c --- /dev/null +++ b/apps/indexer/src/indexer/truefi/INTEGRATION.md @@ -0,0 +1,51 @@ +# TrueFi Integration Status + +## Architecture + +| Contract | Address | Type | Events used | +| -------------- | ------------------------------------------ | --------------------------------------------------- | ------------------------------------------------------------------------------------------------- | +| Token (stkTRU) | 0x23696914Ca9737466D8553a2d619948f548Ee424 | ERC20 proxy w/ delegation (8 decimals) | Transfer, DelegateChanged, DelegateVotesChanged | +| Governor | 0x585CcA060422ef1779Fb0Dd710A49e7C49A823C9 | OZ Governor v1 (`support=bravo&quorum=for,abstain`) | ProposalCreated, VoteCast, VoteCastWithParams, ProposalQueued, ProposalExecuted, ProposalCanceled | +| Timelock | 0x4f4AC7a7032A14243aEbDa98Ee04a5D7Fe293d07 | OZ TimelockController (2-day delay) | (not indexed directly) | + +Governor voting token: `0x23696914Ca9737466D8553a2d619948f548Ee424` (stkTRU — staking wrapper, **not** the underlying TRU token) + +Underlying TRU token: `0x4C19596f5aAfF459fA38B0f7eD92F11AE6543784` (ERC20, 8 decimals, ~1.45B total supply) + +## What's Integrated + +- [x] Token supply tracking (Transfer events on stkTRU) +- [x] Delegation tracking (DelegateChanged / DelegateVotesChanged) +- [x] Voting power tracking (accountPower, votingPowerHistory) +- [x] Governor proposals (ProposalCreated, status updates) +- [x] Governor votes (VoteCast, VoteCastWithParams) +- [ ] CEX/DEX/Lending address classification (no addresses provided) +- [x] Treasury tracking (timelock address configured) +- [x] API client with computed proposal statuses (DEFEATED, SUCCEEDED, NO_QUORUM, etc.) + +## What's Pending + +### TRU token indexing (token distribution analytics) + +The governor uses stkTRU (staking wrapper) for voting, but the underlying TRU token is the tradeable asset listed on exchanges. Currently we only index stkTRU, which means: + +- **Circulating supply** reflects only staked supply (~38M stkTRU) rather than total TRU supply (~1.45B). Only ~2.4% of TRU is staked. +- **CEX/DEX/Lending tracking** should be on TRU, not stkTRU — TRU is what's traded on exchanges and used in DeFi. +- **Token distribution** metrics are incomplete without TRU. + +To close this gap, add TRU (`0x4C19596f5aAfF459fA38B0f7eD92F11AE6543784`) as a second indexed token, similar to the AAVE multi-token pattern (AAVE + stkAAVE + aAAVE). The governance (proposals, votes, delegation) would remain on stkTRU. + +### CEX/DEX/Lending addresses + +No exchange or DeFi addresses were provided. These should be researched and added for TRU (the tradeable token) once TRU indexing is implemented. + +### Dashboard configuration + +Dashboard DAO config (`apps/dashboard/shared/dao-config/truefi.ts`) has not been created yet. Needed for the frontend to display TrueFi. + +## Notes + +- stkTRU is a proxy contract (impl: `0xBFE206c8eCd49751Bf7c9C8C1331738FC29F084d`). Uses Compound-style delegation (`getCurrentVotes`/`getPriorVotes`) rather than OZ-style (`getVotes`/`getPastVotes`), but emits the same standard events. +- Governor COUNTING_MODE is `support=bravo&quorum=for,abstain` — quorum counts both For and Abstain votes. +- Deployment blocks: Token at 11,884,565 / Timelock at 14,789,709 / Governor at 14,789,712. +- 71 proposals indexed as of March 2026, latest being TFIP-41 (TrueFi Reconstitution and Transition to Brila). diff --git a/apps/indexer/src/indexer/truefi/abi/governor.ts b/apps/indexer/src/indexer/truefi/abi/governor.ts new file mode 100644 index 000000000..bc0972615 --- /dev/null +++ b/apps/indexer/src/indexer/truefi/abi/governor.ts @@ -0,0 +1,173 @@ +export const GovernorAbi = [ + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "proposalId", + type: "uint256", + }, + ], + name: "ProposalCanceled", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "proposalId", + type: "uint256", + }, + { + indexed: false, + internalType: "address", + name: "proposer", + type: "address", + }, + { + indexed: false, + internalType: "address[]", + name: "targets", + type: "address[]", + }, + { + indexed: false, + internalType: "uint256[]", + name: "values", + type: "uint256[]", + }, + { + indexed: false, + internalType: "string[]", + name: "signatures", + type: "string[]", + }, + { + indexed: false, + internalType: "bytes[]", + name: "calldatas", + type: "bytes[]", + }, + { + indexed: false, + internalType: "uint256", + name: "voteStart", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "voteEnd", + type: "uint256", + }, + { + indexed: false, + internalType: "string", + name: "description", + type: "string", + }, + ], + name: "ProposalCreated", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "proposalId", + type: "uint256", + }, + ], + name: "ProposalExecuted", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "proposalId", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "etaSeconds", + type: "uint256", + }, + ], + name: "ProposalQueued", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "voter", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "proposalId", + type: "uint256", + }, + { indexed: false, internalType: "uint8", name: "support", type: "uint8" }, + { + indexed: false, + internalType: "uint256", + name: "weight", + type: "uint256", + }, + { + indexed: false, + internalType: "string", + name: "reason", + type: "string", + }, + ], + name: "VoteCast", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "voter", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "proposalId", + type: "uint256", + }, + { indexed: false, internalType: "uint8", name: "support", type: "uint8" }, + { + indexed: false, + internalType: "uint256", + name: "weight", + type: "uint256", + }, + { + indexed: false, + internalType: "string", + name: "reason", + type: "string", + }, + { indexed: false, internalType: "bytes", name: "params", type: "bytes" }, + ], + name: "VoteCastWithParams", + type: "event", + }, +] as const; diff --git a/apps/indexer/src/indexer/truefi/abi/index.ts b/apps/indexer/src/indexer/truefi/abi/index.ts new file mode 100644 index 000000000..ed7298da4 --- /dev/null +++ b/apps/indexer/src/indexer/truefi/abi/index.ts @@ -0,0 +1,2 @@ +export { GovernorAbi as TrueFiGovernorAbi } from "./governor"; +export { TokenAbi as TrueFiTokenAbi } from "./token"; diff --git a/apps/indexer/src/indexer/truefi/abi/token.ts b/apps/indexer/src/indexer/truefi/abi/token.ts new file mode 100644 index 000000000..6947b0377 --- /dev/null +++ b/apps/indexer/src/indexer/truefi/abi/token.ts @@ -0,0 +1,92 @@ +export const TokenAbi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "delegator", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "fromDelegate", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "toDelegate", + type: "address", + }, + ], + name: "DelegateChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "delegate", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "previousBalance", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "newBalance", + type: "uint256", + }, + ], + name: "DelegateVotesChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { indexed: true, internalType: "address", name: "from", type: "address" }, + { indexed: true, internalType: "address", name: "to", type: "address" }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, +] as const; diff --git a/apps/indexer/src/indexer/truefi/erc20.ts b/apps/indexer/src/indexer/truefi/erc20.ts new file mode 100644 index 000000000..7fba9d797 --- /dev/null +++ b/apps/indexer/src/indexer/truefi/erc20.ts @@ -0,0 +1,206 @@ +import { ponder } from "ponder:registry"; +import { token } from "ponder:schema"; +import { Address } from "viem"; + +import { + delegateChanged, + delegatedVotesChanged, + tokenTransfer, +} from "@/eventHandlers"; +import { + updateDelegatedSupply, + updateCirculatingSupply, + updateSupplyMetric, + updateTotalSupply, +} from "@/eventHandlers/metrics"; +import { handleTransaction } from "@/eventHandlers/shared"; +import { + MetricTypesEnum, + BurningAddresses, + CEXAddresses, + DEXAddresses, + LendingAddresses, + TreasuryAddresses, +} from "@/lib/constants"; +import { DaoIdEnum } from "@/lib/enums"; + +export function TrueFiTokenIndexer( + address: Address, + decimals: number, + daoId: DaoIdEnum = DaoIdEnum.TRUEFI, +) { + ponder.on("TrueFiToken:setup", async ({ context }) => { + await context.db.insert(token).values({ + id: address, + name: daoId, + decimals, + }); + }); + + ponder.on("TrueFiToken:Transfer", async ({ event, context }) => { + const { from, to, value } = event.args; + const { timestamp } = event.block; + + const cexAddressList = Object.values(CEXAddresses[daoId]); + const dexAddressList = Object.values(DEXAddresses[daoId]); + const lendingAddressList = Object.values(LendingAddresses[daoId]); + const burningAddressList = Object.values(BurningAddresses[daoId]); + const treasuryAddressList = Object.values(TreasuryAddresses[daoId]); + + await tokenTransfer( + context, + daoId, + { + from, + to, + value, + token: address, + transactionHash: event.transaction.hash, + timestamp: event.block.timestamp, + logIndex: event.log.logIndex, + }, + { + cex: cexAddressList, + dex: dexAddressList, + lending: lendingAddressList, + burning: burningAddressList, + }, + ); + + await updateSupplyMetric( + context, + "lendingSupply", + lendingAddressList, + MetricTypesEnum.LENDING_SUPPLY, + from, + to, + value, + daoId, + address, + timestamp, + ); + + await updateSupplyMetric( + context, + "cexSupply", + cexAddressList, + MetricTypesEnum.CEX_SUPPLY, + from, + to, + value, + daoId, + address, + timestamp, + ); + + await updateSupplyMetric( + context, + "dexSupply", + dexAddressList, + MetricTypesEnum.DEX_SUPPLY, + from, + to, + value, + daoId, + address, + timestamp, + ); + + await updateSupplyMetric( + context, + "treasury", + treasuryAddressList, + MetricTypesEnum.TREASURY, + from, + to, + value, + daoId, + address, + timestamp, + ); + + await updateTotalSupply( + context, + burningAddressList, + MetricTypesEnum.TOTAL_SUPPLY, + from, + to, + value, + daoId, + address, + timestamp, + ); + + await updateCirculatingSupply(context, daoId, address, timestamp); + + if (!event.transaction.to) return; + + await handleTransaction( + context, + event.transaction.hash, + event.transaction.from, + event.transaction.to, + event.block.timestamp, + [event.args.from, event.args.to], + { + cex: cexAddressList, + dex: dexAddressList, + lending: lendingAddressList, + burning: burningAddressList, + }, + ); + }); + + ponder.on(`TrueFiToken:DelegateChanged`, async ({ event, context }) => { + await delegateChanged(context, daoId, { + delegator: event.args.delegator, + delegate: event.args.toDelegate, + tokenId: event.log.address, + previousDelegate: event.args.fromDelegate, + txHash: event.transaction.hash, + timestamp: event.block.timestamp, + logIndex: event.log.logIndex, + }); + + if (!event.transaction.to) return; + + await handleTransaction( + context, + event.transaction.hash, + event.transaction.from, + event.transaction.to, + event.block.timestamp, + [event.args.delegator, event.args.toDelegate], + ); + }); + + ponder.on(`TrueFiToken:DelegateVotesChanged`, async ({ event, context }) => { + await delegatedVotesChanged(context, daoId, { + delegate: event.args.delegate, + txHash: event.transaction.hash, + newBalance: event.args.newBalance, + oldBalance: event.args.previousBalance, + timestamp: event.block.timestamp, + logIndex: event.log.logIndex, + }); + + await updateDelegatedSupply( + context, + daoId, + event.log.address, + event.args.newBalance - event.args.previousBalance, + event.block.timestamp, + ); + + if (!event.transaction.to) return; + + await handleTransaction( + context, + event.transaction.hash, + event.transaction.from, + event.transaction.to, + event.block.timestamp, + [event.args.delegate], + ); + }); +} diff --git a/apps/indexer/src/indexer/truefi/governor.ts b/apps/indexer/src/indexer/truefi/governor.ts new file mode 100644 index 000000000..cda618ba8 --- /dev/null +++ b/apps/indexer/src/indexer/truefi/governor.ts @@ -0,0 +1,68 @@ +import { ponder } from "ponder:registry"; + +import { + updateProposalStatus, + proposalCreated, + voteCast, +} from "@/eventHandlers"; +import { DaoIdEnum } from "@/lib/enums"; +import { ProposalStatus } from "@/lib/constants"; + +export function TrueFiGovernorIndexer(blockTime: number) { + const daoId = DaoIdEnum.TRUEFI; + + ponder.on(`TrueFiGovernor:VoteCast`, async ({ event, context }) => { + await voteCast(context, daoId, { + proposalId: event.args.proposalId.toString(), + voter: event.args.voter, + reason: event.args.reason, + support: event.args.support, + timestamp: event.block.timestamp, + txHash: event.transaction.hash, + votingPower: event.args.weight, + logIndex: event.log.logIndex, + }); + }); + + ponder.on(`TrueFiGovernor:ProposalCreated`, async ({ event, context }) => { + await proposalCreated(context, daoId, blockTime, { + proposalId: event.args.proposalId.toString(), + txHash: event.transaction.hash, + proposer: event.args.proposer, + targets: [...event.args.targets], + values: [...event.args.values], + signatures: [...event.args.signatures], + calldatas: [...event.args.calldatas], + startBlock: event.args.voteStart.toString(), + endBlock: event.args.voteEnd.toString(), + description: event.args.description, + timestamp: event.block.timestamp, + blockNumber: event.block.number, + logIndex: event.log.logIndex, + }); + }); + + ponder.on(`TrueFiGovernor:ProposalCanceled`, async ({ event, context }) => { + await updateProposalStatus( + context, + event.args.proposalId.toString(), + ProposalStatus.CANCELED, + ); + }); + + ponder.on(`TrueFiGovernor:ProposalExecuted`, async ({ event, context }) => { + await updateProposalStatus( + context, + event.args.proposalId.toString(), + ProposalStatus.EXECUTED, + ); + }); + + ponder.on(`TrueFiGovernor:ProposalQueued`, async ({ event, context }) => { + await updateProposalStatus( + context, + event.args.proposalId.toString(), + ProposalStatus.QUEUED, + ); + }); +} diff --git a/apps/indexer/src/indexer/truefi/index.ts b/apps/indexer/src/indexer/truefi/index.ts new file mode 100644 index 000000000..324693e85 --- /dev/null +++ b/apps/indexer/src/indexer/truefi/index.ts @@ -0,0 +1,4 @@ +export * from "./abi"; + +export * from "./governor"; +export * from "./erc20"; diff --git a/apps/indexer/src/lib/constants.ts b/apps/indexer/src/lib/constants.ts index 9471b4b0e..ab41db167 100644 --- a/apps/indexer/src/lib/constants.ts +++ b/apps/indexer/src/lib/constants.ts @@ -183,6 +183,20 @@ export const CONTRACT_ADDRESSES = { startBlock: 19021698, }, }, + [DaoIdEnum.TRUEFI]: { + blockTime: 12, + // https://etherscan.io/address/0x23696914Ca9737466D8553a2d619948f548Ee424 + token: { + address: "0x23696914Ca9737466D8553a2d619948f548Ee424", + decimals: 8, + startBlock: 11884565, + }, + // https://etherscan.io/address/0x585CcA060422ef1779Fb0Dd710A49e7C49A823C9 + governor: { + address: "0x585CcA060422ef1779Fb0Dd710A49e7C49A823C9", + startBlock: 14789712, + }, + }, [DaoIdEnum.AAVE]: { blockTime: 1, token: { @@ -349,6 +363,9 @@ export const TreasuryAddresses: Record> = { [DaoIdEnum.SHU]: { timelock: "0x36bD3044ab68f600f6d3e081056F34f2a58432c4", }, + [DaoIdEnum.TRUEFI]: { + timelock: "0x4f4AC7a7032A14243aEbDa98Ee04a5D7Fe293d07", + }, }; export const CEXAddresses: Record> = { @@ -562,6 +579,7 @@ export const CEXAddresses: Record> = { OKX3: "0xecf17c7f6a6090f1edd21e0beb2268197270fb44", }, [DaoIdEnum.SHU]: {}, + [DaoIdEnum.TRUEFI]: {}, }; export const DEXAddresses: Record> = { @@ -631,6 +649,7 @@ export const DEXAddresses: Record> = { [DaoIdEnum.SHU]: { "Uniswap V3": "0x7A922aea89288d8c91777BeECc68DF4A17151df1", }, + [DaoIdEnum.TRUEFI]: {}, }; export const LendingAddresses: Record> = { @@ -679,6 +698,7 @@ export const LendingAddresses: Record> = { Venus: "0x697a70779c1a03ba2bd28b7627a902bff831b616", }, [DaoIdEnum.SHU]: {}, + [DaoIdEnum.TRUEFI]: {}, }; export const BurningAddresses: Record< @@ -756,6 +776,11 @@ export const BurningAddresses: Record< Dead: "0x000000000000000000000000000000000000dEaD", TokenContract: "0xe485E2f1bab389C08721B291f6b59780feC83Fd7", }, + [DaoIdEnum.TRUEFI]: { + ZeroAddress: zeroAddress, + Dead: "0x000000000000000000000000000000000000dEaD", + TokenContract: "0x23696914Ca9737466D8553a2d619948f548Ee424", + }, }; export enum ProposalStatus { diff --git a/apps/indexer/src/lib/enums.ts b/apps/indexer/src/lib/enums.ts index b29e2d240..7e401a0c4 100644 --- a/apps/indexer/src/lib/enums.ts +++ b/apps/indexer/src/lib/enums.ts @@ -12,6 +12,7 @@ export enum DaoIdEnum { OBOL = "OBOL", ZK = "ZK", SHU = "SHU", + TRUEFI = "TRUEFI", } export const SECONDS_IN_DAY = 24 * 60 * 60; diff --git a/infra/erpc/Dockerfile b/infra/erpc/Dockerfile new file mode 100644 index 000000000..7db31beed --- /dev/null +++ b/infra/erpc/Dockerfile @@ -0,0 +1,6 @@ +FROM ghcr.io/erpc/erpc:latest +COPY erpc.yaml /root/erpc.yaml +# 4000 -> eRPC +# 4001 -> Monitoring +EXPOSE 4000 4001 +CMD ["/erpc-server"] \ No newline at end of file diff --git a/infra/erpc/Dockerfile.monitoring b/infra/erpc/Dockerfile.monitoring new file mode 100644 index 000000000..fddfac32c --- /dev/null +++ b/infra/erpc/Dockerfile.monitoring @@ -0,0 +1,36 @@ +FROM ubuntu:22.04 AS erpc_fetcher + +RUN apt-get update && apt-get install -y git curl + +# clone the entire eRPC repo, but only keep certain folders with sparse checkout +RUN git clone --depth=1 --filter=blob:none --sparse \ + https://github.com/erpc/erpc /tmp/erpc \ + && cd /tmp/erpc \ + && git sparse-checkout init --cone \ + && git sparse-checkout set monitoring/prometheus monitoring/grafana monitoring/scripts + +FROM prom/prometheus:v2.37.0 as prometheus +FROM grafana/grafana:9.3.2 as grafana +FROM ubuntu:22.04 + +# Set rwailway environment variables +ENV SERVICE_ENDPOINT="" +ENV SERVICE_PORT="" + +COPY --from=prometheus /bin/prometheus /bin/prometheus +COPY --from=prometheus /bin/promtool /bin/promtool +COPY --from=erpc_fetcher /tmp/erpc/monitoring/prometheus/prometheus.yml /etc/prometheus/prometheus.yml +COPY --from=erpc_fetcher /tmp/erpc/monitoring/prometheus/alert.rules /etc/prometheus/alert.rules + +COPY --from=grafana /usr/share/grafana /usr/share/grafana +COPY --from=grafana /etc/grafana /etc/grafana +COPY --from=erpc_fetcher /tmp/erpc/monitoring/grafana/grafana.ini /etc/grafana/grafana.ini +COPY --from=erpc_fetcher /tmp/erpc/monitoring/grafana/datasources/prometheus.yml /etc/grafana/provisioning/datasources/prometheus.yml +COPY --from=erpc_fetcher /tmp/erpc/monitoring/grafana/dashboards/default.yml /etc/grafana/provisioning/dashboards/default.yml +COPY --from=erpc_fetcher /tmp/erpc/monitoring/grafana/dashboards/erpc.json /etc/grafana/provisioning/dashboards/erpc.json + +COPY --from=erpc_fetcher /tmp/erpc/monitoring/scripts/entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh + +EXPOSE 3000 9090 +ENTRYPOINT ["/entrypoint.sh"] \ No newline at end of file diff --git a/infra/erpc/erpc.yaml b/infra/erpc/erpc.yaml new file mode 100644 index 000000000..13c83857c --- /dev/null +++ b/infra/erpc/erpc.yaml @@ -0,0 +1,109 @@ +logLevel: ${LOG_LEVEL:-warn} + +server: + httpHostV4: "0.0.0.0" + httpHostV6: "[::]" + httpPort: 4000 + +metrics: + enabled: true + hostV4: "0.0.0.0" + hostV6: "[::]" + port: 4001 + +# Two projects: indexer (high throughput) vs api (conservative per-IP limits) +# Access via: http://erpc:4000/indexer/evm/ or http://erpc:4000/api/evm/ +projects: + - id: indexer + rateLimitBudget: indexer-limit + networks: + - architecture: evm + evm: + chainId: 1 + - architecture: evm + evm: + chainId: 534352 + upstreams: + - id: chainstack + endpoint: chainstack://${CHAINSTACK_API_KEY} + rateLimitBudget: chainstack-indexer + group: primary + autoIgnoreUnsupportedMethods: true + failsafe: + - matchMethod: "*" + timeout: + duration: 15s + retry: + maxAttempts: 3 + delay: 300ms + backoffMaxDelay: 5s + backoffFactor: 1.5 + + - id: api + rateLimitBudget: api-limit + networks: + - architecture: evm + evm: + chainId: 1 + - architecture: evm + evm: + chainId: 534352 + upstreams: + - id: chainstack + endpoint: chainstack://${CHAINSTACK_API_KEY} + rateLimitBudget: chainstack-api + group: primary + autoIgnoreUnsupportedMethods: true + failsafe: + - matchMethod: "*" + timeout: + duration: 10s + retry: + maxAttempts: 2 + delay: 200ms + +rateLimiters: + store: + driver: memory + + budgets: + # Upstream-level: split Chainstack's 400 req/s between indexer and api + - id: chainstack-indexer + rules: + - method: "*" + maxCount: 300 + period: second + - id: chainstack-api + rules: + - method: "*" + maxCount: 100 + period: second + # Project-level: self-imposed limits + - id: indexer-limit + rules: + - method: "*" + maxCount: 300 + period: second + - id: api-limit + rules: + - method: "*" + maxCount: 20 + period: second + perIP: true + +database: + evmJsonRpcCache: + connectors: + - id: postgres-cache + driver: postgresql + postgresql: + connectionUri: "${DATABASE_URL}" + table: rpc_cache + initTimeout: 5s + getTimeout: 1s + setTimeout: 2s + policies: + - network: "*" + method: "*" + finality: finalized + connector: postgres-cache diff --git a/infra/monitoring/Dockerfile.grafana b/infra/monitoring/Dockerfile.grafana index 400a3d2be..6939ab2ed 100644 --- a/infra/monitoring/Dockerfile.grafana +++ b/infra/monitoring/Dockerfile.grafana @@ -1,4 +1,4 @@ FROM grafana/grafana:latest -COPY --chown=grafana:root datasources /etc/grafana/provisioning/datasources +COPY --chown=grafana:root grafana/datasources /etc/grafana/provisioning/datasources COPY --chown=grafana:root grafana/dashboards /etc/grafana/provisioning/dashboards COPY --chown=grafana:root grafana/grafana.ini /etc/grafana/grafana.ini diff --git a/infra/monitoring/Dockerfile.tempo b/infra/monitoring/Dockerfile.tempo index caf539eb9..8322061d8 100644 --- a/infra/monitoring/Dockerfile.tempo +++ b/infra/monitoring/Dockerfile.tempo @@ -1,3 +1,3 @@ FROM grafana/tempo:2.6.1 COPY tempo.yaml /etc/tempo.yaml -CMD ["-config.file=/etc/tempo.yaml"] +CMD ["-config.file=/etc/tempo.yaml", "-config.expand-env=true"] diff --git a/infra/monitoring/datasources/prometheus.yml b/infra/monitoring/datasources/prometheus.yml deleted file mode 100644 index db23444aa..000000000 --- a/infra/monitoring/datasources/prometheus.yml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: 1 -datasources: - - name: Prometheus - type: prometheus - access: proxy - url: ${PROMETHEUS_URL} - editable: true diff --git a/infra/monitoring/datasources/tempo.yml b/infra/monitoring/datasources/tempo.yml deleted file mode 100644 index f2a610407..000000000 --- a/infra/monitoring/datasources/tempo.yml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: 1 -datasources: - - name: Tempo - type: tempo - access: proxy - url: ${TEMPO_URL} - editable: true diff --git a/infra/monitoring/entrypoint.prometheus.sh b/infra/monitoring/entrypoint.prometheus.sh index 735e899f9..27392274e 100644 --- a/infra/monitoring/entrypoint.prometheus.sh +++ b/infra/monitoring/entrypoint.prometheus.sh @@ -1,3 +1,3 @@ #!/bin/sh envsubst < /etc/prometheus/prometheus.yml.tmpl > /etc/prometheus/prometheus.yml -exec /bin/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/prometheus --web.enable-lifecycle "$@" +exec /bin/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/prometheus --web.enable-lifecycle --web.enable-remote-write-receiver "$@" diff --git a/infra/monitoring/grafana/dashboards/anticapture.json b/infra/monitoring/grafana/dashboards/anticapture.json index b168c9515..e52bb7208 100644 --- a/infra/monitoring/grafana/dashboards/anticapture.json +++ b/infra/monitoring/grafana/dashboards/anticapture.json @@ -22,7 +22,7 @@ }, "datasource": { "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "uid": "prometheus" }, "fieldConfig": { "defaults": { @@ -58,7 +58,7 @@ }, "datasource": { "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "uid": "prometheus" }, "fieldConfig": { "defaults": { @@ -95,7 +95,7 @@ }, "datasource": { "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "uid": "prometheus" }, "fieldConfig": { "defaults": { @@ -141,7 +141,7 @@ }, "datasource": { "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "uid": "prometheus" }, "fieldConfig": { "defaults": { @@ -177,7 +177,7 @@ }, "datasource": { "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "uid": "prometheus" }, "fieldConfig": { "defaults": { @@ -232,7 +232,7 @@ }, "datasource": { "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "uid": "prometheus" }, "targets": [ { @@ -308,7 +308,7 @@ }, "datasource": { "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "uid": "prometheus" }, "targets": [ { @@ -362,7 +362,7 @@ }, "datasource": { "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "uid": "prometheus" }, "fieldConfig": { "defaults": { @@ -400,7 +400,7 @@ }, "datasource": { "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "uid": "prometheus" }, "fieldConfig": { "defaults": { @@ -436,7 +436,7 @@ }, "datasource": { "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "uid": "prometheus" }, "fieldConfig": { "defaults": { @@ -474,7 +474,7 @@ }, "datasource": { "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "uid": "prometheus" }, "fieldConfig": { "defaults": { @@ -510,7 +510,7 @@ }, "datasource": { "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "uid": "prometheus" }, "fieldConfig": { "defaults": { @@ -546,7 +546,7 @@ }, "datasource": { "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "uid": "prometheus" }, "fieldConfig": { "defaults": { diff --git a/infra/monitoring/grafana/datasources/prometheus.yml b/infra/monitoring/grafana/datasources/prometheus.yml index 6561365f8..4f401733a 100644 --- a/infra/monitoring/grafana/datasources/prometheus.yml +++ b/infra/monitoring/grafana/datasources/prometheus.yml @@ -2,7 +2,8 @@ apiVersion: 1 datasources: - name: Prometheus + uid: prometheus type: prometheus access: proxy - url: $PROMETHEUS_URL + url: ${PROMETHEUS_URL} editable: true diff --git a/infra/monitoring/grafana/datasources/tempo.yml b/infra/monitoring/grafana/datasources/tempo.yml index 22ffcc705..5c28da119 100644 --- a/infra/monitoring/grafana/datasources/tempo.yml +++ b/infra/monitoring/grafana/datasources/tempo.yml @@ -3,5 +3,11 @@ datasources: - name: Tempo type: tempo access: proxy - url: http://tempo:3200 + url: ${TEMPO_URL} editable: true + jsonData: + httpMethod: GET + serviceMap: + datasourceUid: prometheus + nodeGraph: + enabled: true diff --git a/infra/monitoring/prometheus.yml b/infra/monitoring/prometheus.yml index 16272b2f3..78fb57f94 100644 --- a/infra/monitoring/prometheus.yml +++ b/infra/monitoring/prometheus.yml @@ -120,3 +120,9 @@ scrape_configs: scrape_interval: 15s static_configs: - targets: ["${GATEWAY_ENDPOINT}"] + + - job_name: tempo + metrics_path: "/metrics" + scrape_interval: 15s + static_configs: + - targets: ["${TEMPO_ENDPOINT}"] diff --git a/infra/monitoring/tempo.yaml b/infra/monitoring/tempo.yaml index 75cc18f63..544be0780 100644 --- a/infra/monitoring/tempo.yaml +++ b/infra/monitoring/tempo.yaml @@ -15,6 +15,24 @@ ingester: trace_idle_period: 10s max_block_duration: 5m +metrics_generator: + registry: + external_labels: + source: tempo + storage: + path: /var/tempo/generator/wal + remote_write: + - url: ${PROMETHEUS_REMOTE_WRITE_URL} + send_exemplars: true + traces_storage: + path: /var/tempo/generator/traces + processor: + service_graphs: + enable_virtual_node_label: true + span_metrics: + enable_target_info: true + local_blocks: + filter_server_spans: false storage: trace: backend: local @@ -22,3 +40,8 @@ storage: path: /var/tempo/blocks wal: path: /var/tempo/wal + +overrides: + defaults: + metrics_generator: + processors: [service-graphs, span-metrics, local-blocks] diff --git a/package.json b/package.json index 9b8bb029e..c92e108d8 100644 --- a/package.json +++ b/package.json @@ -3,14 +3,15 @@ "version": "0.3.1", "description": "Anticapture Monorepo", "scripts": { - "dashboard": "dotenv -- pnpm run --filter=@anticapture/dashboard", - "indexer": "dotenv -- pnpm run --filter=@anticapture/indexer", - "gateway": "dotenv -- pnpm run --filter=@anticapture/api-gateway", - "gateful": "dotenv -- pnpm run --filter=@anticapture/gateful", - "api": "dotenv -- pnpm run --filter=@anticapture/api", - "client": "dotenv -- pnpm run --filter=@anticapture/graphql-client", - "offchain-indexer": "dotenv -- pnpm run --filter=@anticapture/offchain-indexer", - "address": "dotenv -- pnpm run --filter=@anticapture/address-enrichment", + "dashboard": "dotenv -- turbo run --filter=@anticapture/dashboard", + "indexer": "dotenv -- turbo run --filter=@anticapture/indexer", + "gateway": "dotenv -- turbo run --filter=@anticapture/api-gateway", + "gateful": "dotenv -- turbo run --filter=@anticapture/gateful", + "api": "dotenv -- turbo run --filter=@anticapture/api", + "client": "turbo run --filter=@anticapture/graphql-client", + "offchain-indexer": "turbo run --filter=@anticapture/offchain-indexer", + "address": "turbo run --filter=@anticapture/address-enrichment", + "dev": "bash scripts/dev.sh", "clean": "turbo clean && rm -rf node_modules .turbo .parcel-cache coverage *.log *.tsbuildinfo", "lint": "turbo lint", "lint:fix": "turbo lint:fix", @@ -50,7 +51,8 @@ "prettier": "^3.4.2", "prettier-plugin-tailwindcss": "^0.6.11", "turbo": "^2.3.1", - "typescript": "^5.8.3" + "typescript": "^5.8.3", + "@railway/cli": "^4.31.0" }, "pnpm": { "overrides": { diff --git a/packages/graphql-client/generated.ts b/packages/graphql-client/generated.ts index e4d1e5411..afc4f67e3 100644 --- a/packages/graphql-client/generated.ts +++ b/packages/graphql-client/generated.ts @@ -723,6 +723,7 @@ export type CompareVotes_200_Response = { export type Dao_200_Response = { __typename?: 'dao_200_response'; + alreadySupportCalldataReview: Scalars['Boolean']['output']; chainId: Scalars['Float']['output']; id: Scalars['String']['output']; proposalThreshold: Scalars['String']['output']; diff --git a/packages/graphql-client/types.ts b/packages/graphql-client/types.ts index 2f4fe366e..f833935f1 100644 --- a/packages/graphql-client/types.ts +++ b/packages/graphql-client/types.ts @@ -720,6 +720,7 @@ export type CompareVotes_200_Response = { export type Dao_200_Response = { __typename?: 'dao_200_response'; + alreadySupportCalldataReview: Scalars['Boolean']['output']; chainId: Scalars['Float']['output']; id: Scalars['String']['output']; proposalThreshold: Scalars['String']['output']; diff --git a/packages/observability/package.json b/packages/observability/package.json index 546b1fd6e..94cd7fd7b 100644 --- a/packages/observability/package.json +++ b/packages/observability/package.json @@ -13,8 +13,8 @@ "typecheck": "tsc --noEmit", "lint": "eslint src", "lint:fix": "eslint src --fix", - "build": "tsup src/index.ts --format esm,cjs --dts --out-dir dist", - "dev": "tsup src/index.ts --format esm,cjs --dts --out-dir dist --watch" + "build": "tsup", + "dev": "tsup --watch" }, "devDependencies": { "tsup": "^8.5.1", diff --git a/packages/observability/tsup.config.ts b/packages/observability/tsup.config.ts new file mode 100644 index 000000000..c04a779cd --- /dev/null +++ b/packages/observability/tsup.config.ts @@ -0,0 +1,28 @@ +import { defineConfig } from "tsup"; + +const shared = { + entry: ["src/index.ts"], + dts: true, + outDir: "dist", + // Bundle all OTel packages to avoid ESM/CJS resolution issues in consumers + // like ponder. Keep @opentelemetry/api external so it remains a singleton. + noExternal: [/^@opentelemetry\/(?!api$)/], + external: ["@opentelemetry/api"], +} as const; + +export default defineConfig([ + { + ...shared, + format: ["esm"], + // The bundled OTel CJS packages use require() internally. Provide a shim + // so the ESM output can resolve those calls at runtime. + banner: { + js: 'import { createRequire } from "module"; const require = createRequire(import.meta.url);', + }, + }, + { + ...shared, + format: ["cjs"], + dts: false, // only emit .d.ts once from the ESM build + }, +]); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9053e1ca2..47484d9b5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,58 +12,61 @@ importers: devDependencies: "@commitlint/cli": specifier: ^19.5.0 - version: 19.8.1(@types/node@20.19.33)(typescript@5.9.3) + version: 19.8.1(@types/node@20.19.37)(typescript@5.9.3) "@commitlint/config-conventional": specifier: ^19.5.0 version: 19.8.1 "@eslint/js": specifier: ^9 - version: 9.39.2 + version: 9.39.4 "@next/eslint-plugin-next": specifier: 16.1.3 version: 16.1.3 + "@railway/cli": + specifier: ^4.31.0 + version: 4.31.0 "@types/node": specifier: ^20.16.5 - version: 20.19.33 + version: 20.19.37 "@typescript-eslint/eslint-plugin": specifier: ^8 - version: 8.55.0(@typescript-eslint/parser@8.55.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.57.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) "@typescript-eslint/parser": specifier: ^8 - version: 8.55.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) dotenv-cli: specifier: ^7.4.4 version: 7.4.4 eslint: specifier: ^9 - version: 9.39.2(jiti@2.6.1) + version: 9.39.4(jiti@2.6.1) eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.2(eslint@9.39.2(jiti@2.6.1)) + version: 9.1.2(eslint@9.39.4(jiti@2.6.1)) eslint-import-resolver-typescript: specifier: ^4.4.4 - version: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1)) + version: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)) eslint-plugin-import: specifier: ^2.32.0 - version: 2.32.0(@typescript-eslint/parser@8.55.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.2(jiti@2.6.1)) + version: 2.32.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.4(jiti@2.6.1)) eslint-plugin-prettier: specifier: ^5.2.1 - version: 5.5.5(@types/eslint@9.6.1)(eslint-config-prettier@9.1.2(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))(prettier@3.8.1) + version: 5.5.5(@types/eslint@9.6.1)(eslint-config-prettier@9.1.2(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1))(prettier@3.8.1) eslint-plugin-react-hooks: specifier: ^7.0.0 - version: 7.0.1(eslint@9.39.2(jiti@2.6.1)) + version: 7.0.1(eslint@9.39.4(jiti@2.6.1)) eslint-plugin-storybook: specifier: ^10.2.0 - version: 10.2.8(eslint@9.39.2(jiti@2.6.1))(storybook@10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(typescript@5.9.3) + version: 10.2.17(eslint@9.39.4(jiti@2.6.1))(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(typescript@5.9.3) globals: specifier: ^17.3.0 - version: 17.3.0 + version: 17.4.0 husky: specifier: ^9.1.6 version: 9.1.7 lint-staged: specifier: ^16.1.2 - version: 16.2.7 + version: 16.3.3 prettier: specifier: ^3.4.2 version: 3.8.1 @@ -72,7 +75,7 @@ importers: version: 0.6.14(prettier@3.8.1) turbo: specifier: ^2.3.1 - version: 2.8.6 + version: 2.8.16 typescript: specifier: ^5.8.3 version: 5.9.3 @@ -81,47 +84,47 @@ importers: dependencies: "@hono/node-server": specifier: ^1.13.7 - version: 1.19.9(hono@4.12.8) + version: 1.19.11(hono@4.12.7) "@hono/swagger-ui": specifier: ^0.5.1 - version: 0.5.3(hono@4.12.8) + version: 0.5.3(hono@4.12.7) "@hono/zod-openapi": specifier: ^0.19.6 - version: 0.19.10(hono@4.12.8)(zod@3.25.76) + version: 0.19.10(hono@4.12.7)(zod@3.25.76) dotenv: specifier: ^17.2.4 - version: 17.2.4 + version: 17.3.1 drizzle-kit: specifier: ^0.31.4 version: 0.31.9 drizzle-orm: specifier: ~0.41.0 - version: 0.41.0(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@types/pg@8.16.0)(kysely@0.26.3)(pg@8.18.0) + version: 0.41.0(@electric-sql/pglite@0.3.16)(@opentelemetry/api@1.9.0)(@types/pg@8.18.0)(kysely@0.26.3)(pg@8.20.0) hono: specifier: ^4.7.10 - version: 4.12.8 + version: 4.12.7 pg: specifier: ^8.13.1 - version: 8.18.0 + version: 8.20.0 viem: specifier: ^2.37.11 - version: 2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + version: 2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) zod: specifier: ^3.25.3 version: 3.25.76 devDependencies: "@types/node": specifier: ^20.16.5 - version: 20.19.33 + version: 20.19.37 "@types/pg": specifier: ^8.11.10 - version: 8.16.0 + version: 8.18.0 prettier: specifier: ^3.5.3 version: 3.8.1 tsup: specifier: ^8.5.1 - version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) + version: 8.5.1(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) tsx: specifier: ^4.19.4 version: 4.21.0 @@ -136,10 +139,10 @@ importers: version: link:../../packages/observability "@hono/node-server": specifier: ^1.19.9 - version: 1.19.9(hono@4.12.8) + version: 1.19.11(hono@4.12.7) "@hono/zod-openapi": specifier: ^0.19.6 - version: 0.19.10(hono@4.12.8)(zod@3.25.76) + version: 0.19.10(hono@4.12.7)(zod@3.25.76) "@opentelemetry/api": specifier: ^1.9.0 version: 1.9.0 @@ -148,22 +151,22 @@ importers: version: 1.40.0 axios: specifier: ^1.9.0 - version: 1.13.5 + version: 1.13.6 drizzle-kit: specifier: ^0.31.9 version: 0.31.9 drizzle-orm: specifier: ^0.45.1 - version: 0.45.1(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@types/pg@8.16.0)(kysely@0.26.3)(pg@8.18.0) + version: 0.45.1(@electric-sql/pglite@0.3.16)(@opentelemetry/api@1.9.0)(@types/pg@8.18.0)(kysely@0.26.3)(pg@8.20.0) hono: specifier: ^4.7.10 - version: 4.12.8 + version: 4.12.7 pg: specifier: ^8.17.2 - version: 8.18.0 + version: 8.20.0 viem: specifier: ^2.41.2 - version: 2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + version: 2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) zod: specifier: ^3.25.3 version: 3.25.76 @@ -173,37 +176,37 @@ importers: devDependencies: "@electric-sql/pglite": specifier: ^0.3.15 - version: 0.3.15 + version: 0.3.16 "@types/node": specifier: ^20.16.5 - version: 20.19.33 + version: 20.19.37 "@types/pg": specifier: ^8.15.6 - version: 8.16.0 + version: 8.18.0 "@vitest/coverage-v8": specifier: 3.2.4 - version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.33)(jiti@2.6.1)(jsdom@24.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.30.2)(msw@2.12.10(@types/node@20.19.33)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) + version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.37)(jiti@2.6.1)(jsdom@24.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.31.1)(msw@2.12.10(@types/node@20.19.37)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) dotenv: specifier: ^16.5.0 version: 16.6.1 eslint: specifier: ^9 - version: 9.39.2(jiti@2.6.1) + version: 9.39.4(jiti@2.6.1) eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.2(eslint@9.39.2(jiti@2.6.1)) + version: 9.1.2(eslint@9.39.4(jiti@2.6.1)) eslint-plugin-prettier: specifier: ^5.2.1 - version: 5.5.5(@types/eslint@9.6.1)(eslint-config-prettier@9.1.2(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))(prettier@3.8.1) + version: 5.5.5(@types/eslint@9.6.1)(eslint-config-prettier@9.1.2(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1))(prettier@3.8.1) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@20.19.33)(ts-node@10.9.2(@types/node@20.19.33)(typescript@5.9.3)) + version: 29.7.0(@types/node@20.19.37)(ts-node@10.9.2(@types/node@20.19.37)(typescript@5.9.3)) prettier: specifier: ^3.5.3 version: 3.8.1 tsup: specifier: ^8.5.1 - version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) + version: 8.5.1(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) tsx: specifier: ^4.21.0 version: 4.21.0 @@ -212,7 +215,7 @@ importers: version: 5.9.3 vitest: specifier: ^3.0.5 - version: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.33)(jiti@2.6.1)(jsdom@24.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.30.2)(msw@2.12.10(@types/node@20.19.33)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.37)(jiti@2.6.1)(jsdom@24.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.31.1)(msw@2.12.10(@types/node@20.19.37)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) apps/api-gateway: dependencies: @@ -221,47 +224,47 @@ importers: version: link:../../packages/observability "@graphql-mesh/config": specifier: ^0.108.4 - version: 0.108.27(graphql@16.12.0) + version: 0.108.31(graphql@16.13.1) "@graphql-mesh/graphql": specifier: ^0.104.3 - version: 0.104.24(@types/node@25.5.0)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.12.0)(utf-8-validate@5.0.10) + version: 0.104.24(@types/node@25.4.0)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.13.1)(utf-8-validate@5.0.10) "@graphql-mesh/http": specifier: ^0.106.3 - version: 0.106.25(graphql@16.12.0) + version: 0.106.29(graphql@16.13.1) "@graphql-mesh/openapi": specifier: ^0.109.8 - version: 0.109.31(graphql@16.12.0) + version: 0.109.37(graphql@16.13.1) "@graphql-mesh/runtime": specifier: ^0.106.3 - version: 0.106.24(graphql@16.12.0) + version: 0.106.27(graphql@16.13.1) "@graphql-mesh/transform-filter-schema": specifier: ^0.104.19 - version: 0.104.22(graphql@16.12.0) + version: 0.104.26(graphql@16.13.1) "@graphql-mesh/transform-rename": specifier: ^0.105.7 - version: 0.105.23(graphql@16.12.0) + version: 0.105.26(graphql@16.13.1) "@graphql-mesh/types": specifier: ^0.104.3 - version: 0.104.20(graphql@16.12.0) + version: 0.104.23(graphql@16.13.1) dotenv: specifier: ^16.5.0 version: 16.6.1 graphql: specifier: ^16.11.0 - version: 16.12.0 + version: 16.13.1 devDependencies: "@graphql-mesh/cli": specifier: ^0.100.4 - version: 0.100.27(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.12.0)(utf-8-validate@5.0.10) + version: 0.100.36(@types/node@25.4.0)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.13.1)(utf-8-validate@5.0.10) "@types/jest": specifier: ^29.5.14 version: 29.5.14 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)) + version: 29.7.0(@types/node@25.4.0)(ts-node@10.9.2(@types/node@25.4.0)(typescript@5.9.3)) ts-jest: specifier: ^29.4.1 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.0))(jest-util@29.7.0)(jest@29.7.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.6(@babel/core@7.29.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.0))(jest-util@29.7.0)(jest@29.7.0(@types/node@25.4.0)(ts-node@10.9.2(@types/node@25.4.0)(typescript@5.9.3)))(typescript@5.9.3) tsx: specifier: ^4.19.4 version: 4.21.0 @@ -276,13 +279,13 @@ importers: version: link:../../packages/graphql-client "@apollo/client": specifier: ^3.13.8 - version: 3.14.0(@types/react@19.2.8)(graphql-ws@6.0.7(crossws@0.3.5)(graphql@16.12.0)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(graphql@16.12.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 3.14.0(@types/react@19.2.8)(graphql-ws@6.0.7(crossws@0.3.5)(graphql@16.13.1)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(graphql@16.13.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) "@ethersproject/providers": specifier: ^5.8.0 version: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) "@hookform/resolvers": specifier: ^5.2.2 - version: 5.2.2(react-hook-form@7.71.1(react@19.2.3)) + version: 5.2.2(react-hook-form@7.71.2(react@19.2.3)) "@radix-ui/react-accordion": specifier: ^1.2.3 version: 1.2.12(@types/react-dom@19.2.3(@types/react@19.2.8))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -312,7 +315,7 @@ importers: version: 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.8))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) "@rainbow-me/rainbowkit": specifier: ^2.2.0 - version: 2.2.10(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76)) + version: 2.2.10(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76)) "@snapshot-labs/snapshot.js": specifier: ^0.12.62 version: 0.12.65(bufferutil@4.0.9)(utf-8-validate@5.0.10) @@ -324,7 +327,7 @@ importers: version: 8.21.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3) axios: specifier: ^1.9.0 - version: 1.13.5 + version: 1.13.6 class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -336,7 +339,7 @@ importers: version: 6.16.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) graphql: specifier: ^16.11.0 - version: 16.12.0 + version: 16.13.1 lottie-react: specifier: ^2.4.1 version: 2.4.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -366,7 +369,7 @@ importers: version: 19.2.3(react@19.2.3) react-hook-form: specifier: ^7.69.0 - version: 7.71.1(react@19.2.3) + version: 7.71.2(react@19.2.3) react-hot-toast: specifier: ^2.6.0 version: 2.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -381,10 +384,10 @@ importers: version: 2.15.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3) resend: specifier: ^6.6.0 - version: 6.9.2 + version: 6.9.3 swr: specifier: ^2.3.2 - version: 2.4.0(react@19.2.3) + version: 2.4.1(react@19.2.3) tailwind-merge: specifier: ^2.5.4 version: 2.6.1 @@ -393,10 +396,10 @@ importers: version: 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.8))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) viem: specifier: ^2.37.11 - version: 2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + version: 2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) wagmi: specifier: ^2.12.25 - version: 2.19.5(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76) + version: 2.19.5(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76) zod: specifier: ^3.25.76 version: 3.25.76 @@ -406,37 +409,37 @@ importers: devDependencies: "@chromatic-com/storybook": specifier: ^4.1.1 - version: 4.1.3(storybook@10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10)) + version: 4.1.3(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10)) "@figma/code-connect": specifier: ^1.4.1 - version: 1.4.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + version: 1.4.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) "@storybook/addon-designs": specifier: ^11.1.0 - version: 11.1.2(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10)) + version: 11.1.2(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10)) "@storybook/addon-onboarding": specifier: ^10.2.0 - version: 10.2.8(storybook@10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10)) + version: 10.2.17(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10)) "@storybook/addon-vitest": specifier: ^10.2.0 - version: 10.2.8(@vitest/runner@4.1.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.33)(jiti@2.6.1)(jsdom@24.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.30.2)(msw@2.12.10(@types/node@20.19.33)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) + version: 10.2.8(@vitest/runner@4.1.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.37)(jiti@2.6.1)(jsdom@24.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.31.1)(msw@2.12.10(@types/node@20.19.37)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) "@storybook/nextjs": specifier: ^10.2.0 - version: 10.2.8(next@16.1.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(type-fest@4.41.0)(typescript@5.9.3)(webpack-hot-middleware@2.26.1)(webpack@5.105.1) + version: 10.2.8(next@16.1.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(type-fest@4.41.0)(typescript@5.9.3)(webpack-hot-middleware@2.26.1)(webpack@5.105.4) "@storybook/react": specifier: ^10.2.0 - version: 10.2.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(typescript@5.9.3) + version: 10.2.17(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(typescript@5.9.3) "@tailwindcss/postcss": specifier: ^4.1.7 - version: 4.1.18 + version: 4.2.1 "@types/jest": specifier: ^29.5.14 version: 29.5.14 "@types/lodash": specifier: ^4.17.16 - version: 4.17.23 + version: 4.17.24 "@types/node": specifier: ^20 - version: 20.19.33 + version: 20.19.37 "@types/react": specifier: 19.2.8 version: 19.2.8 @@ -454,22 +457,22 @@ importers: version: 16.6.1 eslint: specifier: ^9 - version: 9.39.2(jiti@2.6.1) + version: 9.39.4(jiti@2.6.1) eslint-config-next: specifier: 16.1.3 - version: 16.1.3(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 16.1.3(@typescript-eslint/parser@8.53.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint-plugin-storybook: specifier: ^10.2.0 - version: 10.2.8(eslint@9.39.2(jiti@2.6.1))(storybook@10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(typescript@5.9.3) + version: 10.2.17(eslint@9.39.4(jiti@2.6.1))(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(typescript@5.9.3) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@20.19.33)(ts-node@10.9.2(@types/node@20.19.33)(typescript@5.9.3)) + version: 29.7.0(@types/node@20.19.37)(ts-node@10.9.2(@types/node@20.19.37)(typescript@5.9.3)) playwright: specifier: ^1.52.0 version: 1.58.2 postcss: specifier: ^8 - version: 8.5.6 + version: 8.5.8 prettier: specifier: ^3.4.2 version: 3.8.1 @@ -478,13 +481,13 @@ importers: version: 0.6.14(prettier@3.8.1) storybook: specifier: ^10.2.0 - version: 10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10) + version: 10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10) tailwindcss: specifier: ^4.1.7 - version: 4.1.18 + version: 4.2.1 ts-jest: specifier: ^29.2.6 - version: 29.4.6(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.33)(ts-node@10.9.2(@types/node@20.19.33)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.6(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.37)(ts-node@10.9.2(@types/node@20.19.37)(typescript@5.9.3)))(typescript@5.9.3) tw-animate-css: specifier: ^1.3.0 version: 1.4.0 @@ -493,25 +496,25 @@ importers: version: 5.9.3 vitest: specifier: ^3.2.1 - version: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.33)(jiti@2.6.1)(jsdom@24.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.30.2)(msw@2.12.10(@types/node@20.19.33)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.37)(jiti@2.6.1)(jsdom@24.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.31.1)(msw@2.12.10(@types/node@20.19.37)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) apps/gateful: dependencies: "@hono/node-server": specifier: ^1.14.0 - version: 1.19.9(hono@4.12.8) + version: 1.19.11(hono@4.12.7) "@hono/swagger-ui": specifier: ^0.5.3 - version: 0.5.3(hono@4.12.8) + version: 0.5.3(hono@4.12.7) "@hono/zod-openapi": specifier: ^1.2.2 - version: 1.2.2(hono@4.12.8)(zod@4.3.6) + version: 1.2.2(hono@4.12.7)(zod@4.3.6) dotenv: specifier: ^16.5.0 version: 16.6.1 hono: specifier: ^4.12.7 - version: 4.12.8 + version: 4.12.7 openapi3-ts: specifier: ^4.5.0 version: 4.5.0 @@ -521,7 +524,7 @@ importers: devDependencies: "@types/node": specifier: ^25.4.0 - version: 25.5.0 + version: 25.4.0 openapi-types: specifier: ^12.1.3 version: 12.1.3 @@ -533,7 +536,7 @@ importers: version: 5.9.3 vitest: specifier: ^4.0.18 - version: 4.1.0(@opentelemetry/api@1.9.0)(@types/node@25.5.0)(jsdom@24.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(msw@2.12.10(@types/node@25.5.0)(typescript@5.9.3))(vite@7.0.5(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) + version: 4.1.0(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(jsdom@24.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(msw@2.12.10(@types/node@25.4.0)(typescript@5.9.3))(vite@7.0.5(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) apps/indexer: dependencies: @@ -545,41 +548,41 @@ importers: version: 1.9.0 hono: specifier: ^4.10.7 - version: 4.12.8 + version: 4.12.7 ponder: specifier: ^0.16.2 - version: 0.16.3(@opentelemetry/api@1.9.0)(@types/node@20.19.33)(@types/pg@8.16.0)(bufferutil@4.0.9)(hono@4.12.8)(lightningcss@1.30.2)(terser@5.46.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) + version: 0.16.3(@opentelemetry/api@1.9.0)(@types/node@20.19.37)(@types/pg@8.18.0)(bufferutil@4.0.9)(hono@4.12.7)(lightningcss@1.31.1)(terser@5.46.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) viem: specifier: ^2.37.11 - version: 2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + version: 2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) zod: specifier: ^3.25.3 version: 3.25.76 devDependencies: "@types/node": specifier: ^20.16.5 - version: 20.19.33 + version: 20.19.37 "@types/pg": specifier: ^8.15.6 - version: 8.16.0 + version: 8.18.0 dotenv: specifier: ^16.5.0 version: 16.6.1 eslint: specifier: ^9 - version: 9.39.2(jiti@2.6.1) + version: 9.39.4(jiti@2.6.1) eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.2(eslint@9.39.2(jiti@2.6.1)) + version: 9.1.2(eslint@9.39.4(jiti@2.6.1)) eslint-plugin-prettier: specifier: ^5.2.1 - version: 5.5.5(@types/eslint@9.6.1)(eslint-config-prettier@9.1.2(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))(prettier@3.8.1) + version: 5.5.5(@types/eslint@9.6.1)(eslint-config-prettier@9.1.2(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1))(prettier@3.8.1) prettier: specifier: ^3.5.3 version: 3.8.1 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@20.19.33)(typescript@5.9.3) + version: 10.9.2(@types/node@20.19.37)(typescript@5.9.3) typescript: specifier: ^5.8.3 version: 5.9.3 @@ -588,26 +591,26 @@ importers: dependencies: "@electric-sql/pglite": specifier: ^0.3.15 - version: 0.3.15 + version: 0.3.16 axios: specifier: ^1.9.0 - version: 1.13.5 + version: 1.13.6 drizzle-orm: specifier: ^0.45.1 - version: 0.45.1(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@types/pg@8.16.0)(kysely@0.26.3)(pg@8.18.0) + version: 0.45.1(@electric-sql/pglite@0.3.16)(@opentelemetry/api@1.9.0)(@types/pg@8.18.0)(kysely@0.26.3)(pg@8.20.0) pg: specifier: ^8.17.2 - version: 8.18.0 + version: 8.20.0 zod: specifier: ^3.25.3 version: 3.25.76 devDependencies: "@types/node": specifier: ^20.16.5 - version: 20.19.33 + version: 20.19.37 "@types/pg": specifier: ^8.15.6 - version: 8.16.0 + version: 8.18.0 dotenv: specifier: ^16.5.0 version: 16.6.1 @@ -616,10 +619,10 @@ importers: version: 0.31.9 msw: specifier: ^2.12.10 - version: 2.12.10(@types/node@20.19.33)(typescript@5.9.3) + version: 2.12.10(@types/node@20.19.37)(typescript@5.9.3) tsup: specifier: ^8.5.1 - version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) + version: 8.5.1(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) tsx: specifier: ^4.21.0 version: 4.21.0 @@ -628,31 +631,31 @@ importers: version: 5.9.3 vitest: specifier: ^3.0.5 - version: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.33)(jiti@2.6.1)(jsdom@24.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.30.2)(msw@2.12.10(@types/node@20.19.33)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.37)(jiti@2.6.1)(jsdom@24.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.31.1)(msw@2.12.10(@types/node@20.19.37)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) packages/graphql-client: dependencies: "@apollo/client": specifier: ^3.9.0 - version: 3.14.0(@types/react@19.2.8)(graphql-ws@6.0.7(crossws@0.3.5)(graphql@16.12.0)(ws@8.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(graphql@16.12.0)(react-dom@19.2.3(react@18.3.1))(react@18.3.1) + version: 3.14.0(@types/react@19.2.8)(graphql-ws@6.0.7(crossws@0.3.5)(graphql@16.13.1)(ws@8.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(graphql@16.13.1)(react-dom@19.2.3(react@18.3.1))(react@18.3.1) "@graphql-codegen/cli": specifier: ^5.0.7 - version: 5.0.7(@parcel/watcher@2.5.6)(@types/node@20.19.33)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.12.0)(typescript@5.9.3)(utf-8-validate@5.0.10) + version: 5.0.7(@parcel/watcher@2.5.6)(@types/node@20.19.37)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.13.1)(typescript@5.9.3)(utf-8-validate@5.0.10) "@graphql-codegen/typescript": specifier: ^4.1.6 - version: 4.1.6(graphql@16.12.0) + version: 4.1.6(graphql@16.13.1) "@graphql-codegen/typescript-operations": specifier: ^4.6.1 - version: 4.6.1(graphql@16.12.0) + version: 4.6.1(graphql@16.13.1) "@graphql-codegen/typescript-react-apollo": specifier: ^4.3.3 - version: 4.4.0(graphql@16.12.0) + version: 4.4.1(graphql@16.13.1) concurrently: specifier: ^9.2.0 version: 9.2.1 graphql: specifier: ^16.11.0 - version: 16.12.0 + version: 16.13.1 react: specifier: ^18.0.0 version: 18.3.1 @@ -665,7 +668,7 @@ importers: version: 2.5.6 "@types/node": specifier: ^20.16.5 - version: 20.19.33 + version: 20.19.37 packages/local-node: dependencies: @@ -717,7 +720,7 @@ importers: devDependencies: tsup: specifier: ^8.5.1 - version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) + version: 8.5.1(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) typescript: specifier: ^5.8.3 version: 5.9.3 @@ -776,21 +779,20 @@ packages: subscriptions-transport-ws: optional: true - "@ardatan/relay-compiler@12.0.0": + "@ardatan/relay-compiler@12.0.3": resolution: { - integrity: sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q==, + integrity: sha512-mBDFOGvAoVlWaWqs3hm1AciGHSQE1rqFc/liZTyYz/Oek9yZdT5H26pH2zAFuEiTiBVPPyMuqf5VjOFPI2DGsQ==, } hasBin: true peerDependencies: graphql: "*" - "@ardatan/relay-compiler@12.0.3": + "@ardatan/relay-compiler@13.0.0": resolution: { - integrity: sha512-mBDFOGvAoVlWaWqs3hm1AciGHSQE1rqFc/liZTyYz/Oek9yZdT5H26pH2zAFuEiTiBVPPyMuqf5VjOFPI2DGsQ==, + integrity: sha512-ite4+xng5McO8MflWCi0un0YmnorTujsDnfPfhzYzAgoJ+jkI1pZj6jtmTl8Jptyi1H+Pa0zlatJIsxDD++ETA==, } - hasBin: true peerDependencies: graphql: "*" @@ -1110,26 +1112,6 @@ packages: peerDependencies: "@babel/core": ^7.0.0 - "@babel/plugin-proposal-class-properties@7.18.6": - resolution: - { - integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==, - } - engines: { node: ">=6.9.0" } - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. - peerDependencies: - "@babel/core": ^7.0.0-0 - - "@babel/plugin-proposal-object-rest-spread@7.20.7": - resolution: - { - integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==, - } - engines: { node: ">=6.9.0" } - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. - peerDependencies: - "@babel/core": ^7.0.0-0 - "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": resolution: { @@ -1180,15 +1162,6 @@ packages: peerDependencies: "@babel/core": ^7.0.0-0 - "@babel/plugin-syntax-flow@7.27.1": - resolution: - { - integrity: sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA==, - } - engines: { node: ">=6.9.0" } - peerDependencies: - "@babel/core": ^7.0.0-0 - "@babel/plugin-syntax-import-assertions@7.27.1": resolution: { @@ -1379,15 +1352,6 @@ packages: peerDependencies: "@babel/core": ^7.0.0-0 - "@babel/plugin-transform-block-scoping@7.28.0": - resolution: - { - integrity: sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q==, - } - engines: { node: ">=6.9.0" } - peerDependencies: - "@babel/core": ^7.0.0-0 - "@babel/plugin-transform-block-scoping@7.28.6": resolution: { @@ -1424,15 +1388,6 @@ packages: peerDependencies: "@babel/core": ^7.12.0 - "@babel/plugin-transform-classes@7.28.0": - resolution: - { - integrity: sha512-IjM1IoJNw72AZFlj33Cu8X0q2XK/6AaVC3jQu+cgQ5lThWD5ajnuUAml80dqRmOhmPkTH8uAwnpMu9Rvj0LTRA==, - } - engines: { node: ">=6.9.0" } - peerDependencies: - "@babel/core": ^7.0.0-0 - "@babel/plugin-transform-classes@7.28.6": resolution: { @@ -1442,15 +1397,6 @@ packages: peerDependencies: "@babel/core": ^7.0.0-0 - "@babel/plugin-transform-computed-properties@7.27.1": - resolution: - { - integrity: sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==, - } - engines: { node: ">=6.9.0" } - peerDependencies: - "@babel/core": ^7.0.0-0 - "@babel/plugin-transform-computed-properties@7.28.6": resolution: { @@ -1460,15 +1406,6 @@ packages: peerDependencies: "@babel/core": ^7.0.0-0 - "@babel/plugin-transform-destructuring@7.28.0": - resolution: - { - integrity: sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==, - } - engines: { node: ">=6.9.0" } - peerDependencies: - "@babel/core": ^7.0.0-0 - "@babel/plugin-transform-destructuring@7.28.5": resolution: { @@ -1541,15 +1478,6 @@ packages: peerDependencies: "@babel/core": ^7.0.0-0 - "@babel/plugin-transform-flow-strip-types@7.27.1": - resolution: - { - integrity: sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==, - } - engines: { node: ">=6.9.0" } - peerDependencies: - "@babel/core": ^7.0.0-0 - "@babel/plugin-transform-for-of@7.27.1": resolution: { @@ -1847,15 +1775,6 @@ packages: peerDependencies: "@babel/core": ^7.0.0-0 - "@babel/plugin-transform-spread@7.27.1": - resolution: - { - integrity: sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==, - } - engines: { node: ">=6.9.0" } - peerDependencies: - "@babel/core": ^7.0.0-0 - "@babel/plugin-transform-spread@7.28.6": resolution: { @@ -2280,10 +2199,10 @@ packages: integrity: sha512-YRY806NnScVqa21/1L1vaysSQ+0/cAva50z7vlwzaGiBOTS9JhdzIRHN0KfgMhobFAphbznZJ7urMso4RtMBIQ==, } - "@electric-sql/pglite@0.3.15": + "@electric-sql/pglite@0.3.16": resolution: { - integrity: sha512-Cj++n1Mekf9ETfdc16TlDi+cDDQF0W7EcbyRHYOAeZdsAe8M/FJg18itDTSwyHfar2WIezawM9o0EKaRGVKygQ==, + integrity: sha512-mZkZfOd9OqTMHsK+1cje8OSzfAQcpD7JmILXTl5ahdempjUDdmg4euf1biDex5/LfQIDJ3gvCu6qDgdnDxfJmA==, } "@emnapi/core@1.4.5": @@ -2316,38 +2235,38 @@ packages: integrity: sha512-JRDFP6+Hczb1E0/HhIg0PONgBYasfGfDheujmfxaZaAv/NAH4jE6Kf48WbqfRZdxt4IZI3jl3Ri7sZ1nP09lgw==, } - "@envelop/core@5.4.0": + "@envelop/core@5.5.0": resolution: { - integrity: sha512-/1fat63pySE8rw/dZZArEVytLD90JApY85deDJ0/34gm+yhQ3k70CloSUevxoOE4YCGveG3s9SJJfQeeB4NAtQ==, + integrity: sha512-nsU1EyJQAStaKHR1ZkB/ug9XBm+WPTliYtdedbJ/L1ykrp7dbbn0srqBeDnZ2mbZVp4hH3d0Fy+Og9OgPWZx+g==, } engines: { node: ">=18.0.0" } - "@envelop/core@5.5.0": + "@envelop/core@5.5.1": resolution: { - integrity: sha512-nsU1EyJQAStaKHR1ZkB/ug9XBm+WPTliYtdedbJ/L1ykrp7dbbn0srqBeDnZ2mbZVp4hH3d0Fy+Og9OgPWZx+g==, + integrity: sha512-3DQg8sFskDo386TkL5j12jyRAdip/8yzK3x7YGbZBgobZ4aKXrvDU0GppU0SnmrpQnNaiTUsxBs9LKkwQ/eyvw==, } engines: { node: ">=18.0.0" } - "@envelop/extended-validation@7.1.0": + "@envelop/extended-validation@7.1.1": resolution: { - integrity: sha512-2PQdgc0ohbWJ1HiCGByWOd+FjLumUyLH8QKUxf5m5hBYTLD9R3LySWS00cHwnc5SMBXkRyMKCBT87GKxZv/ocg==, + integrity: sha512-izDhqZC3A5S04i2oS5IN4J7x5ODaFZeB3HxavGyfVeJfgwyqiZ37nGdyRrx6ALXzrpYXd89kQuizMYz+kcZcEg==, } engines: { node: ">=18.0.0" } peerDependencies: - "@envelop/core": ^5.5.0 + "@envelop/core": ^5.5.1 graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - "@envelop/graphql-jit@11.1.0": + "@envelop/graphql-jit@11.1.1": resolution: { - integrity: sha512-mWlvcFL5AbP185qzzqT6pOFnfbME5+MKOy/dC4lHyC4WENK+5jzHbhp3zSag5Vi8It1KDY5eU9mVO0QWPHklVw==, + integrity: sha512-hXglHnwmxhIaHcwYJf+qSD1WouxlIPljDAFeA70KpBtnQbk0JvGKuPPB79gRJCtU8wyVPIpdSfhab2NEJ6XWpA==, } engines: { node: ">=18.0.0" } peerDependencies: - "@envelop/core": ^5.5.0 + "@envelop/core": ^5.5.1 graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 "@envelop/instrumentation@1.0.0": @@ -3294,10 +3213,10 @@ packages: } engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 } - "@eslint/config-array@0.21.1": + "@eslint/config-array@0.21.2": resolution: { - integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==, + integrity: sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } @@ -3315,17 +3234,17 @@ packages: } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - "@eslint/eslintrc@3.3.3": + "@eslint/eslintrc@3.3.5": resolution: { - integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==, + integrity: sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - "@eslint/js@9.39.2": + "@eslint/js@9.39.4": resolution: { - integrity: sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==, + integrity: sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } @@ -3563,10 +3482,10 @@ packages: integrity: sha512-fERDVz7topgNjtXsJTTW1JKLy0rhuLRcquYqNR9rF7OcVpCa2OVW49ZPDIhaRRCaUuvVxI+N416xUoF76HNSXA==, } - "@figma/code-connect@1.4.2": + "@figma/code-connect@1.4.1": resolution: { - integrity: sha512-5DobQUw5xd96d52v4vwrb/YvOQkXY6puVHBZlOP+1ATB4t+FUwH8UHWEBcYYdhVpZGnDWe2EtkP8I3hVVrHJKg==, + integrity: sha512-IwKN4W72B7R7d2EL2bCJ6UxgH/iDLhu+SHUVc5zDBhWDSG91nWIsa7XGejWwiya4+3a0teacgrGjgivgwCmi9Q==, } engines: { node: ">=18" } hasBin: true @@ -3663,10 +3582,10 @@ packages: peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - "@graphql-codegen/core@5.0.0": + "@graphql-codegen/core@5.0.1": resolution: { - integrity: sha512-vLTEW0m8LbE4xgRwbFwCdYxVkJ1dBlVJbQyLb9Q7bHnVFgHAP982Xo8Uv7FuPBmON+2IbTjkCqhFLHVZbqpvjQ==, + integrity: sha512-eQD7aXpKkKvaydMv5Bu0FnKCPnNMAhZ3vZW+K4Rl9IAC2w5PDv9lJhs3YTWM9W58zNOZpGQGT2F0ekS3QNIiKw==, } engines: { node: ">=16" } peerDependencies: @@ -3681,27 +3600,28 @@ packages: peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - "@graphql-codegen/plugin-helpers@3.1.2": + "@graphql-codegen/plugin-helpers@5.1.1": resolution: { - integrity: sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg==, + integrity: sha512-28GHODK2HY1NhdyRcPP3sCz0Kqxyfiz7boIZ8qIxFYmpLYnlDgiYok5fhFLVSZihyOpCs4Fa37gVHf/Q4I2FEg==, } + engines: { node: ">=16" } peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - "@graphql-codegen/plugin-helpers@5.1.1": + "@graphql-codegen/plugin-helpers@6.1.1": resolution: { - integrity: sha512-28GHODK2HY1NhdyRcPP3sCz0Kqxyfiz7boIZ8qIxFYmpLYnlDgiYok5fhFLVSZihyOpCs4Fa37gVHf/Q4I2FEg==, + integrity: sha512-ipWZHA4ZG8PUdZWx87rvL6LCoIZVhrovVl+448FuxnKIGdzyLmL3+FJc/x96jsQZqKKrUcId9oEgssyh6p15eg==, } engines: { node: ">=16" } peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - "@graphql-codegen/plugin-helpers@6.1.0": + "@graphql-codegen/plugin-helpers@6.2.0": resolution: { - integrity: sha512-JJypehWTcty9kxKiqH7TQOetkGdOYjY78RHlI+23qB59cV2wxjFFVf8l7kmuXS4cpGVUNfIjFhVr7A1W7JMtdA==, + integrity: sha512-TKm0Q0+wRlg354Qt3PyXc+sy6dCKxmNofBsgmHoFZNVHtzMQSSgNT+rUWdwBwObQ9bFHiUVsDIv8QqxKMiKmpw==, } engines: { node: ">=16" } peerDependencies: @@ -3715,10 +3635,10 @@ packages: peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - "@graphql-codegen/schema-ast@5.0.0": + "@graphql-codegen/schema-ast@5.0.1": resolution: { - integrity: sha512-jn7Q3PKQc0FxXjbpo9trxzlz/GSFQWxL042l0iC8iSbM/Ar+M7uyBwMtXPsev/3Razk+osQyreghIz0d2+6F7Q==, + integrity: sha512-svLffXddnXxq1qFXQqqh+zYrxdiMnIKm+CXCUv0MYhLh0R4L5vpnaTzIUCk3icHNNXhKRm2uBD70+K8VY0xiCg==, } engines: { node: ">=16" } peerDependencies: @@ -3733,19 +3653,19 @@ packages: peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - "@graphql-codegen/typed-document-node@6.1.5": + "@graphql-codegen/typed-document-node@6.1.7": resolution: { - integrity: sha512-6dgEPz+YRMzSPpATj7tsKh/L6Y8OZImiyXIUzvSq/dRAEgoinahrES5y/eZQyc7CVxfoFCyHF9KMQQ9jiLn7lw==, + integrity: sha512-VLL9hB+YPigc/W2QYCkSNMZrkKv42nTchb9mJ0h5VY98YmW/zWb6NeYM80iHSpk8ZvHsuUT5geA53/s1phO2NQ==, } engines: { node: ">=16" } peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - "@graphql-codegen/typescript-generic-sdk@4.1.0": + "@graphql-codegen/typescript-generic-sdk@5.0.0": resolution: { - integrity: sha512-e2YYHr+tEglPwQDnpvp7USpPfwHC+ZMFiH5uDI4LygbLm0SIwh4vjwG8dt9eTkB+T20lgVQUy9EXaTzgTBiR9A==, + integrity: sha512-fwsgeWccJi7+u6P6Ls7HA4e0vChrauAnOd6ceKMjT4FtYFt44eWfRzFIVRtdkirCRhHSKK5Av2BtWbunwa8ytg==, } engines: { node: ">= 16.0.0" } peerDependencies: @@ -3765,10 +3685,10 @@ packages: graphql-sock: optional: true - "@graphql-codegen/typescript-operations@5.0.6": + "@graphql-codegen/typescript-operations@5.0.9": resolution: { - integrity: sha512-pkR/82qWO50OHWeV3BiDuVxNFxiJerpmNjFep71VlabADXiU3GIeSaDd6G9a1/SCniVTXZQk2ivCb0ZJiuwo1A==, + integrity: sha512-jJFdJKMS5Cqisb5QMi7xXHPsJH9yHBMYOxBc8laFkFjHk/AOqJK90qCKbO9lwwTMPZUDe6N/HslmA0ax4J0zsg==, } engines: { node: ">=16" } peerDependencies: @@ -3778,19 +3698,19 @@ packages: graphql-sock: optional: true - "@graphql-codegen/typescript-react-apollo@4.4.0": + "@graphql-codegen/typescript-react-apollo@4.4.1": resolution: { - integrity: sha512-4U0bRMDanxhUnGh/4qemQaUsuVq8HwqOMf/U9nuDXwnzxBSIPAZx/XpmUWHMtgF66J8RmzIjjB+U8Ykg48M//g==, + integrity: sha512-lrjUfDCNlCWQU07jO6EvZE8I2OLfJl9XKKGCcol27OhW6B9xaUEPaId+TvL6o/NfV+T4z4eQ/Y8BuKWyYjD+mQ==, } engines: { node: ">= 16.0.0" } peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - "@graphql-codegen/typescript-resolvers@5.1.4": + "@graphql-codegen/typescript-resolvers@5.1.7": resolution: { - integrity: sha512-dgDs68p+M6n24IQ0yHfgrPFZaAJtFDQIU5kXGSDY4MmUAvl/rY0Iv3vZoRixFyf8iYS/ySjJ9KV8gHCnCLkrOw==, + integrity: sha512-fhsyG+GWs+MClzQy3KuzUEcztzhPWM7O/66bK5qmL0JfR+XRv5kBIjOGpHJ/A//xF0dPTEctsf+cJm7XfKYMKw==, } engines: { node: ">=16" } peerDependencies: @@ -3809,23 +3729,15 @@ packages: peerDependencies: graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - "@graphql-codegen/typescript@5.0.6": + "@graphql-codegen/typescript@5.0.9": resolution: { - integrity: sha512-rKW3wYInAnmO/DmKjhW3/KLMxUauUCZuMEPQmuoHChnwIuMjn5kVXCdArGyQqv+vVtFj55aS+sJLN4MPNNjSNg==, + integrity: sha512-YlIZ4nqdFdzr5vxuNtQtZnnMYuZ5cLYB2HaGhGI2zvqHxCmkBjIRpu/5sfccawKy23wetV+aoWvoNqxGKIryig==, } engines: { node: ">=16" } peerDependencies: graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - "@graphql-codegen/visitor-plugin-common@2.13.8": - resolution: - { - integrity: sha512-IQWu99YV4wt8hGxIbBQPtqRuaWZhkQRG2IZKbMoSvh0vGeWb3dB0n0hSgKaOOxDY+tljtOf9MTcUYvJslQucMQ==, - } - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - "@graphql-codegen/visitor-plugin-common@5.8.0": resolution: { @@ -3835,28 +3747,19 @@ packages: peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - "@graphql-codegen/visitor-plugin-common@6.2.1": + "@graphql-codegen/visitor-plugin-common@6.2.4": resolution: { - integrity: sha512-5QT1hCV3286mrmoIC7vlFXsTlwELMexhuFIkjh+oVGGL1E8hxkIPAU0kfH/lsPbQHKi8zKmic2pl3tAdyYxNyg==, + integrity: sha512-iwiVCc7Mv8/XAa3K35AdFQ9chJSDv/gYEnBeQFF/Sq/W8EyJoHypOGOTTLk7OSrWO4xea65ggv0e7fGt7rPJjQ==, } engines: { node: ">=16" } peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - "@graphql-codegen/visitor-plugin-common@6.2.2": + "@graphql-hive/logger@1.1.0": resolution: { - integrity: sha512-wEJ4zJj58PKlXISItZfr0xIHyM1lAuRfoflPegsb1L17Mx5+YzNOy0WAlLele3yzyV89WvCiprFKMcVQ7KfDXg==, - } - engines: { node: ">=16" } - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - - "@graphql-hive/logger@1.0.10": - resolution: - { - integrity: sha512-YkbYBwQfAr4nPUl/52TWxmr4nIMXAs8x2fM6TohQTW2I5Wpw+qjhfXTNpj6hY4WtCpXiBhuF9FpSTTarYdHrJQ==, + integrity: sha512-6Cjed+xunX50iVewzOoeddzea522oTBDG5fue5Df6PypvEiw/38yW1IxPFaE1nVdiVuDHm4WmV9/GAgWk9klMw==, } engines: { node: ">=20.0.0" } peerDependencies: @@ -3909,38 +3812,38 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - "@graphql-mesh/cache-inmemory-lru@0.8.23": + "@graphql-mesh/cache-inmemory-lru@0.8.26": resolution: { - integrity: sha512-7ofTeef724J37u7bN6hIrfcrCRwINHVKPoku8LpjjxgNmnWzOP38nz0iCjMHfxYb+nHFxXw3VU9a+6HghagUEg==, + integrity: sha512-cRncK2QYDcAYtVkQS0+0zB2Yf9lhRWxBAw3D/4ATjl7qxD+9Rbt5ui6bd5HREUnmsqyCYSjpE9YfX6XWzNb1uw==, } engines: { node: ">=16.0.0" } peerDependencies: graphql: "*" - "@graphql-mesh/cache-localforage@0.105.23": + "@graphql-mesh/cache-localforage@0.105.26": resolution: { - integrity: sha512-b+eC28boToY+KVJTrg8/Vfed6J10QzQ2dsNv4RckDkLOYdNaD2FZ/B05VjLYjbFmhkPtEFQoRZv5r/JUsx3YvQ==, + integrity: sha512-TR8GU+Tk5TbPyanUaVZ3gByoCezUU+yxB6lVUfbSpf7PdWNXEequ0igY5DBNxqyaqbmetLLx5ivm2rEjNfl4Hw==, } engines: { node: ">=16.0.0" } peerDependencies: graphql: "*" - "@graphql-mesh/cli@0.100.27": + "@graphql-mesh/cli@0.100.36": resolution: { - integrity: sha512-mIkme9iH7jkkRkGf4mhJtWGePsgnxUeCm3v/rKS4Z7tUzTksMrlyz5WGIRwh/mpFT5GyB3Rdz1GnDeQI5DQXfw==, + integrity: sha512-OHMyBqvFBAsXWLIm/QpTS4FRiqSBfjy8icxNO/oMQ2xkSrS8+Aieh5+DLYDM7ccgUokZ9xFM1DxwfStXwdHchA==, } engines: { node: ">=16.0.0" } hasBin: true peerDependencies: graphql: "*" - "@graphql-mesh/config@0.108.27": + "@graphql-mesh/config@0.108.31": resolution: { - integrity: sha512-mzzksZlylmLXnjbmliRq/amqGoIAg3/cjiKDPJu3ikM+sS1KS/y1e9KhJ9BSul/rLfuWFH9huI2BqfMLKm4SOw==, + integrity: sha512-dYQ7a3oh9XpzNvgkxEMYrHcglZR+vpNHlBfaa8QTI0AKflTzRNTvhwdMrI7auIFzfA0p62e9HKw1te15mWipAg==, } engines: { node: ">=16.0.0" } peerDependencies: @@ -3955,15 +3858,24 @@ packages: peerDependencies: graphql: "*" - "@graphql-mesh/fusion-composition@0.8.27": + "@graphql-mesh/fusion-composition@0.8.32": resolution: { - integrity: sha512-VoSdqZAW8GaLlC47dIqlSg6n7npvCxwgVnQLvm2ncfW/zyIJhSnzkPUsyU2vlZB6AWn1y1J6Y0jkdm+JvuCztw==, + integrity: sha512-yykk3rNE202LEKhUW+A3P9qqc+vgMR5mV0CChzPhWOdkMTRZQYQwJgmNsoQl93iiS4mpejc42sgVmvNZJiz0ZQ==, } engines: { node: ">=16.0.0" } peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + "@graphql-mesh/fusion-runtime@1.8.1": + resolution: + { + integrity: sha512-+RifuiRU7gljLA6APN2nWZtdyGsi8wb29PJ4162NCJ4A9kXFJfd1VwnvEVKRE1efUOc8PG6a3iM6vbalRQYFDA==, + } + engines: { node: ">=20.0.0" } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + "@graphql-mesh/graphql@0.104.24": resolution: { @@ -3973,64 +3885,73 @@ packages: peerDependencies: graphql: "*" - "@graphql-mesh/http@0.106.25": + "@graphql-mesh/http@0.106.29": + resolution: + { + integrity: sha512-NcR80SoPLJtvhlYNM7BeTmrMd1Zo6ACoAX1+KVVUIW9UtRbYv8MYGun6slpseJIEfGpykW2MKgvKJNncb3D6vg==, + } + engines: { node: ">=16.0.0" } + peerDependencies: + graphql: "*" + + "@graphql-mesh/include@0.3.26": resolution: { - integrity: sha512-CXCLsBkIyOVLFHkZ9Hb4Ooqoggvm0UaVzNC8H6moEZfQxVvCouzgesEmiyCBA6bjjAuz91EIn6kp8I74V9jsXw==, + integrity: sha512-YtbNUp0WiZIpL95Mht+/i+VtuWGMB1lbpGDU97GtUXZYdYqjFb5DIW6GLLHEKf72X/cXYZIn0fVy5UbwrUqIFg==, } engines: { node: ">=16.0.0" } peerDependencies: graphql: "*" - "@graphql-mesh/include@0.3.22": + "@graphql-mesh/incontext-sdk-codegen@0.0.2": resolution: { - integrity: sha512-locxSfWIM79Y4wa4oMXTCMQxcXBtyLFQrlck5qK3XWi3HX0CsIFstxQi7E+nryWn6ew7IP1wDcByZqkSPCoJQg==, + integrity: sha512-7oehZMsShGic4TvRyTKLTR171T8YUIlRdAHzEvlmdD//kfXOOoAEyrkpAZiq8Fpunf6fY527egUrHkTOFuaVlQ==, } engines: { node: ">=16.0.0" } peerDependencies: graphql: "*" - "@graphql-mesh/merger-bare@0.105.24": + "@graphql-mesh/merger-bare@0.105.27": resolution: { - integrity: sha512-6GPCX2tSsJ55Ub2h7G6fWWWMtpDPWJCF/201UBS3MNLY2+1DgqhAWjnlB8Q/EAG4Dju12H3x63IaXuaB6IehBA==, + integrity: sha512-ED+QrL/Ig7Ky1foyhDnySGFh9gSYhBUaMQcgBgNCNs/q25FPedsrFz4lncH0m8bF9Dh9fW75zIDNBJZibbsyAw==, } engines: { node: ">=16.0.0" } peerDependencies: graphql: "*" - "@graphql-mesh/merger-stitching@0.105.24": + "@graphql-mesh/merger-stitching@0.105.27": resolution: { - integrity: sha512-Vk6htj7mGujUeaqtz7orBcYqkpT2GmMa9hmTJ5/EzxeP9+l6DBlfQqz10jqpeWtheb958CHIlLsKuDQ78hGu7Q==, + integrity: sha512-hNxOnQQHRieucg0uHWeu3q1M8sRHZMUyr+ZlFJ2a4WiQckyw1U2bzWgOVNWZU2TBWW2J8ysyWaK5ms/0DQiIZQ==, } engines: { node: ">=16.0.0" } peerDependencies: graphql: "*" - "@graphql-mesh/openapi@0.109.31": + "@graphql-mesh/openapi@0.109.37": resolution: { - integrity: sha512-/QJ+fm4/LFZHcU5lEF0rLQdmHtcoISiQ9BOZcCJgp3qstXnynonSNuG9omI+WaajsWDBCRUDHJVoG6ewNbMgkg==, + integrity: sha512-dZ8VN4ZUxusVBarFwIThr7zq0g5zN60T05B/61ua7u/nmRUILKqT886PiILFwkLuKpMWz0fliN5/PDffsSEs4w==, } engines: { node: ">=16.0.0" } peerDependencies: graphql: "*" - "@graphql-mesh/runtime@0.106.24": + "@graphql-mesh/runtime@0.106.27": resolution: { - integrity: sha512-IL4/+k4VtW5aOT4ccVfO3tx24iLhpMerwyF4y72CyIOpQyIbSi414iZCgbUOThp1BP31PYwLwD2ZSvN0bqbhrQ==, + integrity: sha512-fCX/RxKmscaALz1Wmw63U1G3/sME2B8Ouq/iGDv2rmPdwRAPs/4o43GrSKWaDc04DD0ryH+UBZ4sjPnGkh6llg==, } engines: { node: ">=16.0.0" } peerDependencies: graphql: "*" - "@graphql-mesh/store@0.104.24": + "@graphql-mesh/store@0.104.27": resolution: { - integrity: sha512-gNnftTsVVUkUtu+SqnF9YwYgoJVvTVUFouFCZWLJwObROOMi0uTxp2cx5UCXJ02eqGuPJbKnNc7cdaWMEBpuTw==, + integrity: sha512-obmkd2Ely4RlH+nMj6wuuFDo6JRXTCa7QjH39S3Vj+yfmWcaSdu+MDWKl6PK0FetnM2+0d4omuja2ch8o6zFdg==, } engines: { node: ">=16.0.0" } peerDependencies: @@ -4045,55 +3966,55 @@ packages: peerDependencies: graphql: "*" - "@graphql-mesh/transform-filter-schema@0.104.22": + "@graphql-mesh/transform-filter-schema@0.104.26": resolution: { - integrity: sha512-BtzE2mZJ/4RJMZoZ4mGP9AeevwtMkwK5B1tWKVEZmtMJp7EAPYT7Wy0/sBDx5wwg4isEXkz8YP+iPSyW8KYCbQ==, + integrity: sha512-ZwRfNATA+hfqbz7I6fe8Dvkwu5bH7JZO5/+p1FNvavCZaB6gO6vEbsW0r997RqrQmD+G41jbUg2OBe72UcS5ng==, } engines: { node: ">=16.0.0" } peerDependencies: graphql: "*" - "@graphql-mesh/transform-rename@0.105.23": + "@graphql-mesh/transform-rename@0.105.26": resolution: { - integrity: sha512-OFKFRMZDeWyk7mNtVXUMSZLkQ/9bEPEjmJdPTtyBXi0sPcyEZ+2LRfmC0pYDNaA4VMRbLM+ZqQPmhJns+HseNQ==, + integrity: sha512-kS0GU1zv1TyrYuileCFpqAHCrATB3l8eJALAeRTSuAgeqOmjsTpKkTfX99non6mh5vsQRrrOEkT53B+yMR6KcQ==, } engines: { node: ">=16.0.0" } peerDependencies: graphql: "*" - "@graphql-mesh/transport-common@1.0.14": + "@graphql-mesh/transport-common@1.0.15": resolution: { - integrity: sha512-aIbMis/ex453A8w9ewhHOQ+wZ0CTyI6sisHqgqPvMai4gw2IAQ/97RMIWUVVmpSLN4vJ7p4DeZMPRfs6uWDLcg==, + integrity: sha512-46V4Ri1YUPphqkMvpo/HO4V8VvvpIhqXGBGWIhHW8S9hMoY8Uh57nT2YWBtWi4YnuqabnsMrApVthZzLpfsSeQ==, } engines: { node: ">=20.0.0" } peerDependencies: graphql: ^15.9.0 || ^16.9.0 - "@graphql-mesh/transport-rest@0.9.24": + "@graphql-mesh/transport-rest@0.9.28": resolution: { - integrity: sha512-EhCjReSmX3iSEBHdUWepht2GZMLL2JM9nPFKkZs54PWOGST0iND3sKvR9OEnTPThDFXOi87Ch1BKLJFExGxibg==, + integrity: sha512-g/2c75j0IHOVpt1W9Wqf99C0XePF7XOMoxGehPZSrMx0Lc7UCRPvt6PH/KJ50fcn8bi1JROb2YilU5EVwKy5EQ==, } engines: { node: ">=16.0.0" } peerDependencies: graphql: "*" - "@graphql-mesh/types@0.104.20": + "@graphql-mesh/types@0.104.23": resolution: { - integrity: sha512-mQU/q1h80BernNfYbFR1pT7fVBPx3dgEnUXu5PU8lNEYjnQVLVjw5ekx64moJa5e1rTM7UGKgn8u7YsvLafGTw==, + integrity: sha512-PbdGwMxgctHL0NhjDmrlsuY6I6th1k0F2la71CWU2k13tU57R4RbDZE6KNwsVkoIUqpHqdriPQplGJpcGGE/eA==, } engines: { node: ">=16.0.0" } peerDependencies: graphql: "*" - "@graphql-mesh/utils@0.104.22": + "@graphql-mesh/utils@0.104.25": resolution: { - integrity: sha512-d1u6HhT82tZA5ESc9/GZrPqejcCp4ZqoW1Wra5w9lDtPUAJ/ZPP93uYE7ciQ+ktS7MntquFo0/LiYUFTlE04vQ==, + integrity: sha512-00rbDjHeLtVTqrUPwTVz2hqptscW/PQLMedMi4TU124UcaXRSiKclfQ/y+onfRQRF9ML1KlploGM6KsMKFGskQ==, } engines: { node: ">=16.0.0" } peerDependencies: @@ -4108,10 +4029,19 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - "@graphql-tools/batch-delegate@10.0.12": + "@graphql-tools/batch-delegate@10.0.15": resolution: { - integrity: sha512-bMOKge6bPGLxNDHfZTuvUrY4Q7qncurCkcFgEW2R7acBrtiKuEfOrw0sjGcLKrGbDFRzx7D6/1zRQ1cgpexUKQ==, + integrity: sha512-7g3pUP4CBNw7k11scStV8+TZYf2YsVv2EE2bKV5Gdyyp5jhWpzoIOB+nRr5lnIjGaufiLu/5V+3jV19ytDz7sw==, + } + engines: { node: ">=20.0.0" } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + "@graphql-tools/batch-delegate@10.0.18": + resolution: + { + integrity: sha512-zIsSnn2xjGmdxVdRhOwVVT1gL3lyi8t24pbbaL2UIStUg15rJb2XKlb5IWwDiwEjivJ1Xip8Eoj3joRmic6qhg==, } engines: { node: ">=20.0.0" } peerDependencies: @@ -4126,6 +4056,15 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + "@graphql-tools/batch-execute@10.0.7": + resolution: + { + integrity: sha512-vKo9XUiy2sc5tzMupXoxZbu5afVY/9yJ0+yLrM5Dhh38yHYULf3z9VC1eAwW0kj8pWpOo8d8CV3jpleGwv83PA==, + } + engines: { node: ">=20.0.0" } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + "@graphql-tools/batch-execute@9.0.19": resolution: { @@ -4162,10 +4101,19 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - "@graphql-tools/delegate@12.0.6": + "@graphql-tools/delegate@12.0.12": resolution: { - integrity: sha512-CizsslU+/FkzFwKilOI0/9xYpfuPITsqP3NyC0lS3im9eMp9iF4hQSLqsC96/b802lwTs1FoTrm3tRWWW0naqg==, + integrity: sha512-/vgLWhIwm+Mgo5VUOJQj6EOpaxXRQmA7mk8j6/8vBbPi56LoYA/UPRygcpEnm9EuXTspFKCTBil+xqThU3EmqQ==, + } + engines: { node: ">=20.0.0" } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + "@graphql-tools/delegate@12.0.9": + resolution: + { + integrity: sha512-ugJCiJb4w3bmdUbAz+nKyVVuwzzoy6BZHQ4BJXpAx1i5KIEhSevIkMYq3CZo7drCZf6FMIpcKBxv99uIhzCvhA==, } engines: { node: ">=20.0.0" } peerDependencies: @@ -4234,6 +4182,15 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + "@graphql-tools/executor-http@3.1.1": + resolution: + { + integrity: sha512-Le57fMdN7nGBp8XddkpGreCzcPGCZ+uHs1kPw/xMKPJMsn/vZUHbWJ0FY0cb0jfE3OVhbMIjjSe/OHlG3Mm3zw==, + } + engines: { node: ">=20.0.0" } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + "@graphql-tools/executor-legacy-ws@1.1.19": resolution: { @@ -4279,6 +4236,15 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + "@graphql-tools/federation@4.3.1": + resolution: + { + integrity: sha512-NjyfXfdnml4XlP2nBJro+h5ecrCy2amFsxmAXWsfdEqZEEegCnW6NNAT4IWZzoInTsPM7Rpjjm45z/tsfS/APA==, + } + engines: { node: ">=20.0.0" } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + "@graphql-tools/git-loader@8.0.26": resolution: { @@ -4306,10 +4272,10 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - "@graphql-tools/graphql-file-loader@8.1.9": + "@graphql-tools/graphql-file-loader@8.1.12": resolution: { - integrity: sha512-rkLK46Q62Zxift8B6Kfw6h8SH3pCR3DPCfNeC/lpLwYReezZz+2ARuLDFZjQGjW+4lpMwiAw8CIxDyQAUgqU6A==, + integrity: sha512-Nma7gBgJoUbqXWTmdHjouo36tjzewA8MptVcHoH7widzkciaUVzBhriHzqICFB/dVxig//g9MX8s1XawZo7UAg==, } engines: { node: ">=16.0.0" } peerDependencies: @@ -4342,10 +4308,10 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - "@graphql-tools/import@7.1.9": + "@graphql-tools/import@7.1.12": resolution: { - integrity: sha512-mHzOgyfzsAgstaZPIFEtKg4GVH4FbDHeHYrSs73mAPKS5F59/FlRuUJhAoRnxbVnc3qIZ6EsWBjOjNbnPK8viA==, + integrity: sha512-QSsdPsdJ7yCgQ5XODyKYpC7NlB9R1Koi0R3418PT7GiRm+9O8gYXSs/23dumcOnpiLrnf4qR2aytBn1+JOAhnA==, } engines: { node: ">=16.0.0" } peerDependencies: @@ -4396,14 +4362,6 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - "@graphql-tools/optimize@1.4.0": - resolution: - { - integrity: sha512-dJs/2XvZp+wgHH8T5J2TqptT9/6uVzIYvA6uFACha+ufvdMBedkfR4b4GbT8jAKLRARiqRTxy3dctnwkTM2tdw==, - } - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - "@graphql-tools/optimize@2.0.0": resolution: { @@ -4423,81 +4381,82 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - "@graphql-tools/relay-operation-optimizer@6.5.18": + "@graphql-tools/relay-operation-optimizer@7.0.21": resolution: { - integrity: sha512-mc5VPyTeV+LwiM+DNvoDQfPqwQYhPV/cl5jOBjTgSniyaq8/86aODfMkrE2OduhQ5E00hqrkuL2Fdrgk0w1QJg==, + integrity: sha512-vMdU0+XfeBh9RCwPqRsr3A05hPA3MsahFn/7OAwXzMySA5EVnSH5R4poWNs3h1a0yT0tDPLhxORhK7qJdSWj2A==, } + engines: { node: ">=16.0.0" } peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - "@graphql-tools/relay-operation-optimizer@7.0.21": + "@graphql-tools/relay-operation-optimizer@7.1.1": resolution: { - integrity: sha512-vMdU0+XfeBh9RCwPqRsr3A05hPA3MsahFn/7OAwXzMySA5EVnSH5R4poWNs3h1a0yT0tDPLhxORhK7qJdSWj2A==, + integrity: sha512-va+ZieMlz6Fj18xUbwyQkZ34PsnzIdPT6Ccy1BNOQw1iclQwk52HejLMZeE/4fH+4cu80Q2HXi5+FjCKpmnJCg==, } engines: { node: ">=16.0.0" } peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - "@graphql-tools/relay-operation-optimizer@7.0.26": + "@graphql-tools/schema@10.0.25": resolution: { - integrity: sha512-cVdS2Hw4hg/WgPVV2wRIzZM975pW5k4vdih3hR4SvEDQVr6MmozmlTQSqzMyi9yg8LKTq540Oz3bYQa286yGmg==, + integrity: sha512-/PqE8US8kdQ7lB9M5+jlW8AyVjRGCKU7TSktuW3WNKSKmDO0MK1wakvb5gGdyT49MjAIb4a3LWxIpwo5VygZuw==, } engines: { node: ">=16.0.0" } peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - "@graphql-tools/relay-operation-optimizer@7.0.27": + "@graphql-tools/schema@10.0.30": resolution: { - integrity: sha512-rdkL1iDMFaGDiHWd7Bwv7hbhrhnljkJaD0MXeqdwQlZVgVdUDlMot2WuF7CEKVgijpH6eSC6AxXMDeqVgSBS2g==, + integrity: sha512-yPXU17uM/LR90t92yYQqn9mAJNOVZJc0nQtYeZyZeQZeQjwIGlTubvvoDL0fFVk+wZzs4YQOgds2NwSA4npodA==, } engines: { node: ">=16.0.0" } peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - "@graphql-tools/schema@10.0.25": + "@graphql-tools/schema@10.0.31": resolution: { - integrity: sha512-/PqE8US8kdQ7lB9M5+jlW8AyVjRGCKU7TSktuW3WNKSKmDO0MK1wakvb5gGdyT49MjAIb4a3LWxIpwo5VygZuw==, + integrity: sha512-ZewRgWhXef6weZ0WiP7/MV47HXiuFbFpiDUVLQl6mgXsWSsGELKFxQsyUCBos60Qqy1JEFAIu3Ns6GGYjGkqkQ==, } engines: { node: ">=16.0.0" } peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - "@graphql-tools/schema@10.0.30": + "@graphql-tools/stitch@10.1.13": resolution: { - integrity: sha512-yPXU17uM/LR90t92yYQqn9mAJNOVZJc0nQtYeZyZeQZeQjwIGlTubvvoDL0fFVk+wZzs4YQOgds2NwSA4npodA==, + integrity: sha512-o8Uy3xMzJteL/X82onTi41NLb5EDH44LApwC7+XeUFKa3wknBHyFXlrxrxX15nRgEizXWbpWqea1S88P205NgQ==, } - engines: { node: ">=16.0.0" } + engines: { node: ">=20.0.0" } peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - "@graphql-tools/schema@10.0.31": + "@graphql-tools/stitch@10.1.16": resolution: { - integrity: sha512-ZewRgWhXef6weZ0WiP7/MV47HXiuFbFpiDUVLQl6mgXsWSsGELKFxQsyUCBos60Qqy1JEFAIu3Ns6GGYjGkqkQ==, + integrity: sha512-hMBOBbiMzGeHcjy2ckaPKsgZwU3GolC5P4JaeRJ5SPEJaaRaZqHB6jzmwK1Igcy4g34DqnWj1PZFPHfC7SfAmg==, } - engines: { node: ">=16.0.0" } + engines: { node: ">=20.0.0" } peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - "@graphql-tools/stitch@10.1.10": + "@graphql-tools/stitching-directives@4.0.15": resolution: { - integrity: sha512-90sm5NvOLbymbYa81cvXkuZ7cZLLk2C1/VY8VCuFIbkVICYjY5T79cET5Nw8d5qX3LeojIF4SnK0xFYurhKxoA==, + integrity: sha512-+MNvm/psfttezbC6e3R7Fbd7WTJlNbc5hTSFZ9tW02EJlnwL+21XVQH5Ln6lJUBums7HVm1BJeB6MV/sjnBiaA==, } engines: { node: ">=20.0.0" } peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - "@graphql-tools/stitching-directives@4.0.12": + "@graphql-tools/stitching-directives@4.0.18": resolution: { - integrity: sha512-s0cXuj0hy+NrR73tm4QSMzDrWgKR+SZXBO2Glko6uK1wiJ7OlxM9PY3dfd/5LkN2h/lmuAquHrUwcnJMKpVV4w==, + integrity: sha512-CI6lDK5FLP/wn4u7ZpaJgDCWsBVlTI7A9+0TwL+cB/ZVydf8KLmtkulxMK7rZSp4RdOnadcTMgKtF4CGdsEbfw==, } engines: { node: ">=20.0.0" } peerDependencies: @@ -4548,27 +4507,28 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - "@graphql-tools/utils@9.2.1": + "@graphql-tools/wrap@10.1.4": resolution: { - integrity: sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==, + integrity: sha512-7pyNKqXProRjlSdqOtrbnFRMQAVamCmEREilOXtZujxY6kYit3tvWWSjUrcIOheltTffoRh7EQSjpy2JDCzasg==, } + engines: { node: ">=18.0.0" } peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - "@graphql-tools/wrap@10.1.4": + "@graphql-tools/wrap@11.1.12": resolution: { - integrity: sha512-7pyNKqXProRjlSdqOtrbnFRMQAVamCmEREilOXtZujxY6kYit3tvWWSjUrcIOheltTffoRh7EQSjpy2JDCzasg==, + integrity: sha512-PJ0tuiGbEOOZAJk2/pTKyzMEbwBncPBfO7Z84tCPzM/CAR4ZlAXbXjaXOw4fdi0ReUDyOG06Z8DGgEQjr68dKw==, } - engines: { node: ">=18.0.0" } + engines: { node: ">=20.0.0" } peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - "@graphql-tools/wrap@11.1.6": + "@graphql-tools/wrap@11.1.9": resolution: { - integrity: sha512-aamowNRone/LVeu2saKrl9bn7Svw1lKNPQMhy9+I1a4qt+2LhqysxcVGUJLo3/j71uv/C+4c3+bam78JyVf94w==, + integrity: sha512-dSjBNCTPS8W7lWHDgIEgY0MEDwZi1GkqTfl7bJMDs/dJfKojj4Do74LN5QJbP/bIIwJakEwVUMPA8RUYVBP9eQ==, } engines: { node: ">=20.0.0" } peerDependencies: @@ -4589,15 +4549,15 @@ packages: } engines: { node: ">=18.0.0" } - "@graphql-yoga/plugin-persisted-operations@3.18.0": + "@graphql-yoga/plugin-persisted-operations@3.18.1": resolution: { - integrity: sha512-1jizZvvW6+LyCZ7J9oxFg0PqNAphd+ltFVXZOdDB9qMr7qRxxBJ9Q6uU+m7KJZ3SoEobOddE2O/IKVcbx8FrIQ==, + integrity: sha512-0T91bjCtuiTlmdvZqHkSbZ2hDDrbhQ8D6Ke+Y8htwRm0BDT4OsuW23eE49buy3LM1CK13Dh9/bKXDvCvVAx3vg==, } engines: { node: ">=18.0.0" } peerDependencies: graphql: ^15.2.0 || ^16.0.0 - graphql-yoga: ^5.18.0 + graphql-yoga: ^5.18.1 "@graphql-yoga/subscription@5.0.5": resolution: @@ -4613,19 +4573,19 @@ packages: } engines: { node: ">=18.0.0" } - "@hono/node-server@1.19.5": + "@hono/node-server@1.19.11": resolution: { - integrity: sha512-iBuhh+uaaggeAuf+TftcjZyWh2GEgZcVGXkNtskLVoWaXhnJtC5HLHrU8W1KHDoucqO1MswwglmkWLFyiDn4WQ==, + integrity: sha512-dr8/3zEaB+p0D2n/IUrlPF1HZm586qgJNXK1a9fhg/PzdtkK7Ksd5l312tJX2yBuALqDYBlG20QEbayqPyxn+g==, } engines: { node: ">=18.14.1" } peerDependencies: hono: ^4 - "@hono/node-server@1.19.9": + "@hono/node-server@1.19.5": resolution: { - integrity: sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw==, + integrity: sha512-iBuhh+uaaggeAuf+TftcjZyWh2GEgZcVGXkNtskLVoWaXhnJtC5HLHrU8W1KHDoucqO1MswwglmkWLFyiDn4WQ==, } engines: { node: ">=18.14.1" } peerDependencies: @@ -4975,20 +4935,6 @@ packages: "@types/node": optional: true - "@isaacs/balanced-match@4.0.1": - resolution: - { - integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==, - } - engines: { node: 20 || >=22 } - - "@isaacs/brace-expansion@5.0.1": - resolution: - { - integrity: sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==, - } - engines: { node: 20 || >=22 } - "@isaacs/cliui@8.0.2": resolution: { @@ -5347,6 +5293,12 @@ packages: } engines: { node: ">=18" } + "@napi-rs/triples@1.2.0": + resolution: + { + integrity: sha512-HAPjR3bnCsdXBsATpDIP5WCrw0JcACwhhrwIAQhiR46n+jm+a2F8kBsfseAuWtSyQ+H3Yebt2k43B5dy+04yMA==, + } + "@napi-rs/wasm-runtime@0.2.12": resolution: { @@ -5574,19 +5526,19 @@ packages: } engines: { node: ">=12.4.0" } - "@omnigraph/json-schema@0.109.24": + "@omnigraph/json-schema@0.109.29": resolution: { - integrity: sha512-h16qz6nK3vI8pOGIWUNI9JRwbIV8H42SLgVzbpNmsMg2pD+GSQuOX/otr9eT/TwSOaLU7MBHpqJnZRUj3yny+A==, + integrity: sha512-bYP8YCB6mFRtMqo8SU7ihgWRiMo9MJytaMh0Or6mguQmVqQvxdSswxTVWI5F3zSkBUpIr43jb+YRVlnVtT4wzg==, } engines: { node: ">=16.0.0" } peerDependencies: graphql: "*" - "@omnigraph/openapi@0.109.30": + "@omnigraph/openapi@0.109.36": resolution: { - integrity: sha512-i9DGNrgxXWCB+oRnMOZGUfhf1aIkDhqKheac9zQhANrBQg0j4SHg1XPxLV2+dp2hXJgqZMDxYhVRXadOtpG+HQ==, + integrity: sha512-qRqoERwPQAL6RCvYh8oXS7CtuiTh9d0Y+Fmq97zHgv0rCaaPayxiyTzHSTYFccnSdUP/FVyiMo1bcN2I6OC8bw==, } engines: { node: ">=16.0.0" } peerDependencies: @@ -5649,10 +5601,10 @@ packages: peerDependencies: "@opentelemetry/api": ">=1.0.0 <1.10.0" - "@opentelemetry/core@2.5.1": + "@opentelemetry/core@2.6.0": resolution: { - integrity: sha512-Dwlc+3HAZqpgTYq0MUyZABjFkcrKTePwuiFVLjahGD8cx3enqihmpAmdgNFO1R4m/sIe5afjJrA25Prqy4NXlA==, + integrity: sha512-HLM1v2cbZ4TgYN6KEOj+Bbj8rAKriOdkF9Ed3tG25FoprSiQl7kYc+RRT6fUZGOvx0oMi5U67GoFdT+XUn8zEg==, } engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: @@ -6581,6 +6533,14 @@ packages: integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==, } + "@railway/cli@4.31.0": + resolution: + { + integrity: sha512-/88Esgbwcfm5VKSt7a2h4/sGqIJPJwR3RgFBGjhr+fHUNVh5+pqgH23nJP0Yiqn+PIQoDlHdXphbN+GpJ/1piQ==, + } + engines: { node: ">=16.0.0" } + hasBin: true + "@rainbow-me/rainbowkit@2.2.10": resolution: { @@ -7373,13 +7333,13 @@ packages: react-dom: optional: true - "@storybook/addon-onboarding@10.2.8": + "@storybook/addon-onboarding@10.2.17": resolution: { - integrity: sha512-/+TD055ZDmM325RYrDKqle51P1iT3GiFyDrcCYNOGTUEp3lAu/qplgOC0xMZudiv2y4ExlNYD26lJoGSTNHfHg==, + integrity: sha512-+WQC4RJlIFXF+ww2aNsq0pg8JaM5el29WQ9Hd2VZrB9LdjTqckuJI+5oQBZ1GFQNQDPxlif2TJfRGgI3m1wSpA==, } peerDependencies: - storybook: ^10.2.8 + storybook: ^10.2.17 "@storybook/addon-vitest@10.2.8": resolution: @@ -7478,6 +7438,16 @@ packages: typescript: ">= 4.x" webpack: ">= 4" + "@storybook/react-dom-shim@10.2.17": + resolution: + { + integrity: sha512-x9Kb7eUSZ1zGsEw/TtWrvs1LwWIdNp8qoOQCgPEjdB07reSJcE8R3+ASWHJThmd4eZf66ZALPJyerejake4Osw==, + } + 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 + storybook: ^10.2.17 + "@storybook/react-dom-shim@10.2.8": resolution: { @@ -7488,6 +7458,20 @@ packages: react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 storybook: ^10.2.8 + "@storybook/react@10.2.17": + resolution: + { + integrity: sha512-875AVMYil2X9Civil6GFZ8koIzlKxcXbl2eJ7+/GPbhIonTNmwx0qbWPHttjZXUvFuQ4RRtb9KkBwy4TCb/LeA==, + } + 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 + storybook: ^10.2.17 + typescript: ">= 4.9.x" + peerDependenciesMeta: + typescript: + optional: true + "@storybook/react@10.2.8": resolution: { @@ -7514,97 +7498,97 @@ packages: integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==, } - "@tailwindcss/node@4.1.18": + "@tailwindcss/node@4.2.1": resolution: { - integrity: sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ==, + integrity: sha512-jlx6sLk4EOwO6hHe1oCGm1Q4AN/s0rSrTTPBGPM0/RQ6Uylwq17FuU8IeJJKEjtc6K6O07zsvP+gDO6MMWo7pg==, } - "@tailwindcss/oxide-android-arm64@4.1.18": + "@tailwindcss/oxide-android-arm64@4.2.1": resolution: { - integrity: sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q==, + integrity: sha512-eZ7G1Zm5EC8OOKaesIKuw77jw++QJ2lL9N+dDpdQiAB/c/B2wDh0QPFHbkBVrXnwNugvrbJFk1gK2SsVjwWReg==, } - engines: { node: ">= 10" } + engines: { node: ">= 20" } cpu: [arm64] os: [android] - "@tailwindcss/oxide-darwin-arm64@4.1.18": + "@tailwindcss/oxide-darwin-arm64@4.2.1": resolution: { - integrity: sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A==, + integrity: sha512-q/LHkOstoJ7pI1J0q6djesLzRvQSIfEto148ppAd+BVQK0JYjQIFSK3JgYZJa+Yzi0DDa52ZsQx2rqytBnf8Hw==, } - engines: { node: ">= 10" } + engines: { node: ">= 20" } cpu: [arm64] os: [darwin] - "@tailwindcss/oxide-darwin-x64@4.1.18": + "@tailwindcss/oxide-darwin-x64@4.2.1": resolution: { - integrity: sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw==, + integrity: sha512-/f/ozlaXGY6QLbpvd/kFTro2l18f7dHKpB+ieXz+Cijl4Mt9AI2rTrpq7V+t04nK+j9XBQHnSMdeQRhbGyt6fw==, } - engines: { node: ">= 10" } + engines: { node: ">= 20" } cpu: [x64] os: [darwin] - "@tailwindcss/oxide-freebsd-x64@4.1.18": + "@tailwindcss/oxide-freebsd-x64@4.2.1": resolution: { - integrity: sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA==, + integrity: sha512-5e/AkgYJT/cpbkys/OU2Ei2jdETCLlifwm7ogMC7/hksI2fC3iiq6OcXwjibcIjPung0kRtR3TxEITkqgn0TcA==, } - engines: { node: ">= 10" } + engines: { node: ">= 20" } cpu: [x64] os: [freebsd] - "@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18": + "@tailwindcss/oxide-linux-arm-gnueabihf@4.2.1": resolution: { - integrity: sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA==, + integrity: sha512-Uny1EcVTTmerCKt/1ZuKTkb0x8ZaiuYucg2/kImO5A5Y/kBz41/+j0gxUZl+hTF3xkWpDmHX+TaWhOtba2Fyuw==, } - engines: { node: ">= 10" } + engines: { node: ">= 20" } cpu: [arm] os: [linux] - "@tailwindcss/oxide-linux-arm64-gnu@4.1.18": + "@tailwindcss/oxide-linux-arm64-gnu@4.2.1": resolution: { - integrity: sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw==, + integrity: sha512-CTrwomI+c7n6aSSQlsPL0roRiNMDQ/YzMD9EjcR+H4f0I1SQ8QqIuPnsVp7QgMkC1Qi8rtkekLkOFjo7OlEFRQ==, } - engines: { node: ">= 10" } + engines: { node: ">= 20" } cpu: [arm64] os: [linux] - "@tailwindcss/oxide-linux-arm64-musl@4.1.18": + "@tailwindcss/oxide-linux-arm64-musl@4.2.1": resolution: { - integrity: sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==, + integrity: sha512-WZA0CHRL/SP1TRbA5mp9htsppSEkWuQ4KsSUumYQnyl8ZdT39ntwqmz4IUHGN6p4XdSlYfJwM4rRzZLShHsGAQ==, } - engines: { node: ">= 10" } + engines: { node: ">= 20" } cpu: [arm64] os: [linux] - "@tailwindcss/oxide-linux-x64-gnu@4.1.18": + "@tailwindcss/oxide-linux-x64-gnu@4.2.1": resolution: { - integrity: sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g==, + integrity: sha512-qMFzxI2YlBOLW5PhblzuSWlWfwLHaneBE0xHzLrBgNtqN6mWfs+qYbhryGSXQjFYB1Dzf5w+LN5qbUTPhW7Y5g==, } - engines: { node: ">= 10" } + engines: { node: ">= 20" } cpu: [x64] os: [linux] - "@tailwindcss/oxide-linux-x64-musl@4.1.18": + "@tailwindcss/oxide-linux-x64-musl@4.2.1": resolution: { - integrity: sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==, + integrity: sha512-5r1X2FKnCMUPlXTWRYpHdPYUY6a1Ar/t7P24OuiEdEOmms5lyqjDRvVY1yy9Rmioh+AunQ0rWiOTPE8F9A3v5g==, } - engines: { node: ">= 10" } + engines: { node: ">= 20" } cpu: [x64] os: [linux] - "@tailwindcss/oxide-wasm32-wasi@4.1.18": + "@tailwindcss/oxide-wasm32-wasi@4.2.1": resolution: { - integrity: sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA==, + integrity: sha512-MGFB5cVPvshR85MTJkEvqDUnuNoysrsRxd6vnk1Lf2tbiqNlXpHYZqkqOQalydienEWOHHFyyuTSYRsLfxFJ2Q==, } engines: { node: ">=14.0.0" } cpu: [wasm32] @@ -7616,35 +7600,35 @@ packages: - "@emnapi/wasi-threads" - tslib - "@tailwindcss/oxide-win32-arm64-msvc@4.1.18": + "@tailwindcss/oxide-win32-arm64-msvc@4.2.1": resolution: { - integrity: sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA==, + integrity: sha512-YlUEHRHBGnCMh4Nj4GnqQyBtsshUPdiNroZj8VPkvTZSoHsilRCwXcVKnG9kyi0ZFAS/3u+qKHBdDc81SADTRA==, } - engines: { node: ">= 10" } + engines: { node: ">= 20" } cpu: [arm64] os: [win32] - "@tailwindcss/oxide-win32-x64-msvc@4.1.18": + "@tailwindcss/oxide-win32-x64-msvc@4.2.1": resolution: { - integrity: sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q==, + integrity: sha512-rbO34G5sMWWyrN/idLeVxAZgAKWrn5LiR3/I90Q9MkA67s6T1oB0xtTe+0heoBvHSpbU9Mk7i6uwJnpo4u21XQ==, } - engines: { node: ">= 10" } + engines: { node: ">= 20" } cpu: [x64] os: [win32] - "@tailwindcss/oxide@4.1.18": + "@tailwindcss/oxide@4.2.1": resolution: { - integrity: sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A==, + integrity: sha512-yv9jeEFWnjKCI6/T3Oq50yQEOqmpmpfzG1hcZsAOaXFQPfzWprWrlHSdGPEF3WQTi8zu8ohC9Mh9J470nT5pUw==, } - engines: { node: ">= 10" } + engines: { node: ">= 20" } - "@tailwindcss/postcss@4.1.18": + "@tailwindcss/postcss@4.2.1": resolution: { - integrity: sha512-Ce0GFnzAOuPyfV5SxjXGn0CubwGcuDB0zcdaPuCSzAa/2vII24JTkH+I6jcbXLb1ctjZMZZI6OjDaLPJQL1S0g==, + integrity: sha512-OEwGIBnXnj7zJeonOh6ZG9woofIjGrd2BORfvE5p9USYKDCZoQmfqLcfNiRWoJlRWLdNPn2IgVZuWAOM4iTYMw==, } "@tanstack/query-core@5.90.20": @@ -7710,10 +7694,10 @@ packages: peerDependencies: graphql: ^16.0.0 - "@theguild/federation-composition@0.21.3": + "@theguild/federation-composition@0.22.0": resolution: { - integrity: sha512-+LlHTa4UbRpZBog3ggAxjYIFvdfH3UMvvBUptur19TMWkqU4+n3GmN+mDjejU+dyBXIG27c25RsiQP1HyvM99g==, + integrity: sha512-bGueT2FzlwRG8ZpiCmXnheqPESxg/5FlqgczBJET5w9X7kUJr6F47BaPyL+xzY+uesyawu1KE7Nd2jvJf2AKTw==, } engines: { node: ">=18" } peerDependencies: @@ -7791,6 +7775,12 @@ packages: integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==, } + "@types/chai@5.2.3": + resolution: + { + integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==, + } + "@types/connect@3.4.38": resolution: { @@ -7947,10 +7937,10 @@ packages: integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==, } - "@types/lodash@4.17.23": + "@types/lodash@4.17.24": resolution: { - integrity: sha512-RDvF6wTulMPjrNdCoYRC8gNR880JNGT8uB+REUpC2Ns4pRqQJhGz90wh7rgdXDPpCczF3VGktDuFGVnz8zP7HA==, + integrity: sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ==, } "@types/ms@2.1.0": @@ -7965,10 +7955,10 @@ packages: integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==, } - "@types/node@20.19.33": + "@types/node@20.19.37": resolution: { - integrity: sha512-Rs1bVAIdBs5gbTIKza/tgpMuG1k3U/UMJLWecIMxNdJFDMzcM5LOiLVRYh3PilWEYDIeUDv7bpiHPLPsbydGcw==, + integrity: sha512-8kzdPJ3FsNsVIurqBs7oodNnCEVbni9yUEkaHbgptDACOPW04jimGagZ51E6+lXUwJjgnBw+hyko/lkFWCldqw==, } "@types/node@22.7.5": @@ -7977,10 +7967,10 @@ packages: integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==, } - "@types/node@25.5.0": + "@types/node@25.4.0": resolution: { - integrity: sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==, + integrity: sha512-9wLpoeWuBlcbBpOY3XmzSTG3oscB6xjBEEtn+pYXTfhyXhIxC5FsBer2KTopBlvKEiW9l13po9fq+SJY/5lkhw==, } "@types/pg-pool@2.0.6": @@ -7995,10 +7985,10 @@ packages: integrity: sha512-LF7lF6zWEKxuT3/OR8wAZGzkg4ENGXFNyiV/JeOt9z5B+0ZVwbql9McqX5c/WStFq1GaGso7H1AzP/qSzmlCKQ==, } - "@types/pg@8.16.0": + "@types/pg@8.18.0": resolution: { - integrity: sha512-RmhMd/wD+CF8Dfo+cVIy3RR5cl8CyfXQ0tGgW6XBL8L4LM/UTEbNXYRbLwU6w+CgrKBNbrQWt4FUtTfaU5jSYQ==, + integrity: sha512-gT+oueVQkqnj6ajGJXblFR4iavIXWsGAFCk3dP4Kki5+a9R4NMt0JARdk6s8cUKcfUoqP5dAtDSLU8xYUTFV+Q==, } "@types/react-blockies@1.4.4": @@ -8104,15 +8094,15 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <6.0.0" - "@typescript-eslint/eslint-plugin@8.55.0": + "@typescript-eslint/eslint-plugin@8.57.0": resolution: { - integrity: sha512-1y/MVSz0NglV1ijHC8OT49mPJ4qhPYjiK08YUQVbIOyu+5k862LKUHFkpKHWu//zmr7hDR2rhwUm6gnCGNmGBQ==, + integrity: sha512-qeu4rTHR3/IaFORbD16gmjq9+rEs9fGKdX0kF6BKSfi+gCuG3RCKLlSBYzn/bGsY9Tj7KE/DAQStbp8AHJGHEQ==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: - "@typescript-eslint/parser": ^8.55.0 - eslint: ^8.57.0 || ^9.0.0 + "@typescript-eslint/parser": ^8.57.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.0.0" "@typescript-eslint/parser@8.53.0": @@ -8125,14 +8115,14 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <6.0.0" - "@typescript-eslint/parser@8.55.0": + "@typescript-eslint/parser@8.57.0": resolution: { - integrity: sha512-4z2nCSBfVIMnbuu8uinj+f0o4qOeggYJLbjpPHka3KH1om7e+H9yLKTYgksTaHcGco+NClhhY2vyO3HsMH1RGw==, + integrity: sha512-XZzOmihLIr8AD1b9hL9ccNMzEMWt/dE2u7NyTY9jJG6YNiNthaD5XtUHVF2uCXZ15ng+z2hT3MVuxnUYhq6k1g==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.0.0" "@typescript-eslint/project-service@8.53.0": @@ -8153,6 +8143,15 @@ packages: peerDependencies: typescript: ">=4.8.4 <6.0.0" + "@typescript-eslint/project-service@8.57.0": + resolution: + { + integrity: sha512-pR+dK0BlxCLxtWfaKQWtYr7MhKmzqZxuii+ZjuFlZlIGRZm22HnXFqa2eY+90MUz8/i80YJmzFGDUsi8dMOV5w==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + typescript: ">=4.8.4 <6.0.0" + "@typescript-eslint/scope-manager@8.53.0": resolution: { @@ -8167,6 +8166,13 @@ packages: } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + "@typescript-eslint/scope-manager@8.57.0": + resolution: + { + integrity: sha512-nvExQqAHF01lUM66MskSaZulpPL5pgy5hI5RfrxviLgzZVffB5yYzw27uK/ft8QnKXI2X0LBrHJFr1TaZtAibw==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + "@typescript-eslint/tsconfig-utils@8.53.0": resolution: { @@ -8185,6 +8191,15 @@ packages: peerDependencies: typescript: ">=4.8.4 <6.0.0" + "@typescript-eslint/tsconfig-utils@8.57.0": + resolution: + { + integrity: sha512-LtXRihc5ytjJIQEH+xqjB0+YgsV4/tW35XKX3GTZHpWtcC8SPkT/d4tqdf1cKtesryHm2bgp6l555NYcT2NLvA==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + typescript: ">=4.8.4 <6.0.0" + "@typescript-eslint/type-utils@8.53.0": resolution: { @@ -8195,14 +8210,14 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <6.0.0" - "@typescript-eslint/type-utils@8.55.0": + "@typescript-eslint/type-utils@8.57.0": resolution: { - integrity: sha512-x1iH2unH4qAt6I37I2CGlsNs+B9WGxurP2uyZLRz6UJoZWDBx9cJL1xVN/FiOmHEONEg6RIufdvyT0TEYIgC5g==, + integrity: sha512-yjgh7gmDcJ1+TcEg8x3uWQmn8ifvSupnPfjP21twPKrDP/pTHlEQgmKcitzF/rzPSmv7QjJ90vRpN4U+zoUjwQ==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.0.0" "@typescript-eslint/types@8.53.0": @@ -8219,6 +8234,13 @@ packages: } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + "@typescript-eslint/types@8.57.0": + resolution: + { + integrity: sha512-dTLI8PEXhjUC7B9Kre+u0XznO696BhXcTlOn0/6kf1fHaQW8+VjJAVHJ3eTI14ZapTxdkOmc80HblPQLaEeJdg==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + "@typescript-eslint/typescript-estree@8.53.0": resolution: { @@ -8237,6 +8259,15 @@ packages: peerDependencies: typescript: ">=4.8.4 <6.0.0" + "@typescript-eslint/typescript-estree@8.57.0": + resolution: + { + integrity: sha512-m7faHcyVg0BT3VdYTlX8GdJEM7COexXxS6KqGopxdtkQRvBanK377QDHr4W/vIPAR+ah9+B/RclSW5ldVniO1Q==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + typescript: ">=4.8.4 <6.0.0" + "@typescript-eslint/utils@8.53.0": resolution: { @@ -8257,6 +8288,16 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <6.0.0" + "@typescript-eslint/utils@8.57.0": + resolution: + { + integrity: sha512-5iIHvpD3CZe06riAsbNxxreP+MuYgVUsV0n4bwLH//VJmgtt54sQeY2GszntJ4BjYCpMzrfVh2SBnUQTtys2lQ==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: ">=4.8.4 <6.0.0" + "@typescript-eslint/visitor-keys@8.53.0": resolution: { @@ -8271,6 +8312,13 @@ packages: } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + "@typescript-eslint/visitor-keys@8.57.0": + resolution: + { + integrity: sha512-zm6xx8UT/Xy2oSr2ZXD0pZo7Jx2XsCoID2IUh9YSTFRu7z+WdwYTRk6LhUftm1crwqbuoF6I8zAFeCMw0YjwDg==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + "@unrs/resolver-binding-android-arm-eabi@1.11.1": resolution: { @@ -8614,7 +8662,6 @@ packages: { integrity: sha512-SSlIG6QEVxClgl1s0LMk4xr2wg4eT3Zn/Hb81IocyqNSGfXpjtawWxKxiC5/9Z95f1INyBD6MctJbL/R1oBwIw==, } - deprecated: "Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases" "@walletconnect/events@1.0.1": resolution: @@ -8698,14 +8745,12 @@ packages: { integrity: sha512-z7h+PeLa5Au2R591d/8ZlziE0stJvdzP9jNFzFolf2RG/OiXulgFKum8PrIyXy+Rg2q95U9nRVUF9fWcn78yBA==, } - deprecated: "Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases" "@walletconnect/sign-client@2.21.1": resolution: { integrity: sha512-QaXzmPsMnKGV6tc4UcdnQVNOz4zyXgarvdIQibJ4L3EmLat73r5ZVl4c0cCOcoaV7rgM9Wbphgu5E/7jNcd3Zg==, } - deprecated: "Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases" "@walletconnect/time@1.0.2": resolution: @@ -8730,14 +8775,12 @@ packages: { integrity: sha512-mtUQvewt+X0VBQay/xOJBvxsB3Xsm1lTwFjZ6WUwSOTR1X+FNb71hSApnV5kbsdDIpYPXeQUbGt2se1n5E5UBg==, } - deprecated: "Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases" "@walletconnect/universal-provider@2.21.1": resolution: { integrity: sha512-Wjx9G8gUHVMnYfxtasC9poGm8QMiPCpXpbbLFT+iPoQskDDly8BwueWnqKs4Mx2SdIAWAwuXeZ5ojk5qQOxJJg==, } - deprecated: "Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases" "@walletconnect/utils@2.21.0": resolution: @@ -9066,6 +9109,14 @@ packages: engines: { node: ">=0.4.0" } hasBin: true + acorn@8.16.0: + resolution: + { + integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==, + } + engines: { node: ">=0.4.0" } + hasBin: true + adjust-sourcemap-loader@4.0.0: resolution: { @@ -9152,10 +9203,10 @@ packages: peerDependencies: ajv: ^8.8.2 - ajv@6.12.6: + ajv@6.14.0: resolution: { - integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, + integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==, } ajv@8.17.1: @@ -9164,6 +9215,12 @@ packages: integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==, } + ajv@8.18.0: + resolution: + { + integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==, + } + ansi-align@3.0.1: resolution: { @@ -9207,13 +9264,6 @@ packages: } engines: { node: ">=8" } - ansi-regex@6.1.0: - resolution: - { - integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==, - } - engines: { node: ">=12" } - ansi-regex@6.2.2: resolution: { @@ -9480,10 +9530,10 @@ packages: peerDependencies: axios: 0.x || 1.x - axios@1.13.5: + axios@1.13.6: resolution: { - integrity: sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==, + integrity: sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==, } axobject-query@4.1.0: @@ -9550,12 +9600,6 @@ packages: peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: - resolution: - { - integrity: sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==, - } - babel-preset-current-node-syntax@1.1.0: resolution: { @@ -9564,14 +9608,6 @@ packages: peerDependencies: "@babel/core": ^7.0.0 - babel-preset-fbjs@3.4.0: - resolution: - { - integrity: sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==, - } - peerDependencies: - "@babel/core": ^7.0.0 - babel-preset-jest@29.6.3: resolution: { @@ -9587,6 +9623,13 @@ packages: integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, } + balanced-match@4.0.4: + resolution: + { + integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==, + } + engines: { node: 18 || 20 || >=22 } + base-x@3.0.11: resolution: { @@ -9648,12 +9691,24 @@ packages: integrity: sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==, } + bn.js@4.12.3: + resolution: + { + integrity: sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g==, + } + bn.js@5.2.2: resolution: { integrity: sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==, } + bn.js@5.2.3: + resolution: + { + integrity: sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w==, + } + boolbase@1.0.0: resolution: { @@ -9691,6 +9746,13 @@ packages: integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==, } + brace-expansion@5.0.4: + resolution: + { + integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==, + } + engines: { node: 18 || 20 || >=22 } + braces@3.0.3: resolution: { @@ -9930,13 +9992,6 @@ packages: } engines: { node: ">=10" } - chalk@5.4.1: - resolution: - { - integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==, - } - engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } - chalk@5.6.2: resolution: { @@ -9989,6 +10044,13 @@ packages: } engines: { node: ">= 14.16.0" } + chownr@2.0.0: + resolution: + { + integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==, + } + engines: { node: ">=10" } + chromatic@13.3.4: resolution: { @@ -10213,13 +10275,6 @@ packages: } engines: { node: ">=20" } - commander@14.0.2: - resolution: - { - integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==, - } - engines: { node: ">=20" } - commander@14.0.3: resolution: { @@ -10437,6 +10492,18 @@ packages: typescript: optional: true + cosmiconfig@9.0.1: + resolution: + { + integrity: sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==, + } + engines: { node: ">=14" } + peerDependencies: + typescript: ">=4.9.5" + peerDependenciesMeta: + typescript: + optional: true + crc-32@1.2.2: resolution: { @@ -10543,14 +10610,14 @@ packages: webpack: optional: true - css-loader@7.1.3: + css-loader@7.1.4: resolution: { - integrity: sha512-frbERmjT0UC5lMheWpJmMilnt9GEhbZJN/heUb7/zaJYeIzj5St9HvDcfshzzOqbsS+rYpMk++2SD3vGETDSyA==, + integrity: sha512-vv3J9tlOl04WjiMvHQI/9tmIrCxVrj6PFbHemBB1iihpeRbi/I4h033eoFIhwxBBqLhI0KYFS7yvynBFhIZfTw==, } engines: { node: ">= 18.12.0" } peerDependencies: - "@rspack/core": 0.x || 1.x + "@rspack/core": 0.x || ^1.0.0 || ^2.0.0-0 webpack: ^5.27.0 peerDependenciesMeta: "@rspack/core": @@ -11182,10 +11249,10 @@ packages: } engines: { node: ">=12" } - dotenv@17.2.4: + dotenv@17.3.1: resolution: { - integrity: sha512-mudtfb4zRB4bVvdj0xRo+e6duH1csJRM8IukBqfTRvHotn9+LBXB8ynAidP9zHqoRC/fsllXgk4kCKlR21fIhw==, + integrity: sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==, } engines: { node: ">=12" } @@ -11498,10 +11565,10 @@ packages: } engines: { node: ">=10.13.0" } - enhanced-resolve@5.19.0: + enhanced-resolve@5.20.0: resolution: { - integrity: sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==, + integrity: sha512-/ce7+jQ1PQ6rVXwe+jKEg5hW5ciicHwIQUagZkp6IufBoY3YDgdTTY1azVs0qoRgVmvsNB+rbjLJxDAeHHtwsQ==, } engines: { node: ">=10.13.0" } @@ -11857,14 +11924,14 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-plugin-storybook@10.2.8: + eslint-plugin-storybook@10.2.17: resolution: { - integrity: sha512-BtysXrg1RoYT3DIrCc+svZ0+L3mbWsu7suxTLGrihBY5HfWHkJge+qjlBBR1Nm2ZMslfuFS5K0NUWbWCJRu6kg==, + integrity: sha512-LtzVBHcq+RbrhTnF1rFNpc5bmg/kmdDsw/6bIKOnyDY4r0g5ldZSNN3R/fxLrhFOL2DhmmDywN9lcFNqHCP3vQ==, } peerDependencies: eslint: ">=8" - storybook: ^10.2.8 + storybook: ^10.2.17 eslint-scope@5.1.1: resolution: @@ -11894,10 +11961,17 @@ packages: } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - eslint@9.39.2: + eslint-visitor-keys@5.0.1: resolution: { - integrity: sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==, + integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==, + } + engines: { node: ^20.19.0 || ^22.13.0 || >=24 } + + eslint@9.39.4: + resolution: + { + integrity: sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } hasBin: true @@ -12374,6 +12448,12 @@ packages: integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==, } + flatted@3.4.1: + resolution: + { + integrity: sha512-IxfVbRFVlV8V/yRaGzk0UVIcsKKHMSfYw66T/u4nTwlWteQePsxe//LjudR1AMX4tZW3WFCh3Zqa/sjlqpbURQ==, + } + follow-redirects@1.15.11: resolution: { @@ -12450,6 +12530,13 @@ packages: } engines: { node: ">=12" } + fs-minipass@2.1.0: + resolution: + { + integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==, + } + engines: { node: ">= 8" } + fs-monkey@1.1.0: resolution: { @@ -12617,12 +12704,12 @@ packages: deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true - glob@13.0.0: + glob@13.0.6: resolution: { - integrity: sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==, + integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==, } - engines: { node: 20 || >=22 } + engines: { node: 18 || 20 || >=22 } glob@7.2.3: resolution: @@ -12652,10 +12739,10 @@ packages: } engines: { node: ">=18" } - globals@17.3.0: + globals@17.4.0: resolution: { - integrity: sha512-yMqGUQVVCkD4tqjOJf3TnrvaaHDMYp4VlUSObbkIiuCPe/ofdMBFIAcBbCSRFWOnos6qRiTVStDwqPLUclaxIw==, + integrity: sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==, } engines: { node: ">=18" } @@ -12757,15 +12844,6 @@ packages: peerDependencies: graphql: 14 - 16 - graphql-scalars@1.24.2: - resolution: - { - integrity: sha512-FoZ11yxIauEnH0E5rCUkhDXHVn/A6BBfovJdimRZCQlFCl+h7aVvarKmI15zG4VtQunmCDdqdtNs6ixThy3uAg==, - } - engines: { node: ">=10" } - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - graphql-scalars@1.25.0: resolution: { @@ -12820,19 +12898,19 @@ packages: peerDependencies: graphql: ^15.2.0 || ^16.0.0 - graphql-yoga@5.18.0: + graphql-yoga@5.18.1: resolution: { - integrity: sha512-xFt1DVXS1BZ3AvjnawAGc5OYieSe56WuQuyk3iEpBwJ3QDZJWQGLmU9z/L5NUZ+pUcyprsz/bOwkYIV96fXt/g==, + integrity: sha512-GiDSlvibfY/vyurbkBOKMO+adF6bTCzKr80FYWta59s1Lx87oVo8T6Nu/0hrxrGv0SrAUkqUpcpr4Ee7XlYmBw==, } engines: { node: ">=18.0.0" } peerDependencies: graphql: ^15.2.0 || ^16.0.0 - graphql@16.12.0: + graphql@16.13.1: resolution: { - integrity: sha512-DKKrynuQRne0PNpEbzuEdHlYOMksHSUI8Zc9Unei5gTsMNA2/vMpoMz/yKba50pejK56qj98qM0SjYxAKi13gQ==, + integrity: sha512-gGgrVCoDKlIZ8fIqXBBb0pPKqDgki0Z/FSKNiQzSGj2uEYHr1tq5wmBegGwJx6QB5S5cM0khSBpi/JFHMCvsmQ==, } engines: { node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0 } @@ -12967,10 +13045,10 @@ packages: integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==, } - hono@4.12.8: + hono@4.12.7: resolution: { - integrity: sha512-VJCEvtrezO1IAR+kqEYnxUOoStaQPGrCmX3j4wDTNOcD1uRPFpGlwQUIW8niPuvHXaTUxeOUl5MMDGrl+tmO9A==, + integrity: sha512-jq9l1DM0zVIvsm3lv9Nw9nlJnMNPOcAtsbsgiUhWcFzPE99Gvo6yRTlszSLLYacMeQ6quHD6hMfId8crVHvexw==, } engines: { node: ">=16.9.0" } @@ -13146,6 +13224,12 @@ packages: } engines: { node: ">=0.8.0" } + immutable@5.1.5: + resolution: + { + integrity: sha512-t7xcm2siw+hlUM68I+UEOK+z84RzmN59as9DZ7P1l0994DKUWV7UXBMQZVxaoMSRQ+PBZbHCOoBt7a2wxOMt+A==, + } + import-fresh@3.3.1: resolution: { @@ -14194,12 +14278,6 @@ packages: engines: { node: ">=6" } hasBin: true - jsonfile@6.1.0: - resolution: - { - integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, - } - jsonfile@6.2.0: resolution: { @@ -14286,109 +14364,109 @@ packages: integrity: sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==, } - lightningcss-android-arm64@1.30.2: + lightningcss-android-arm64@1.31.1: resolution: { - integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==, + integrity: sha512-HXJF3x8w9nQ4jbXRiNppBCqeZPIAfUo8zE/kOEGbW5NZvGc/K7nMxbhIr+YlFlHW5mpbg/YFPdbnCh1wAXCKFg==, } engines: { node: ">= 12.0.0" } cpu: [arm64] os: [android] - lightningcss-darwin-arm64@1.30.2: + lightningcss-darwin-arm64@1.31.1: resolution: { - integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==, + integrity: sha512-02uTEqf3vIfNMq3h/z2cJfcOXnQ0GRwQrkmPafhueLb2h7mqEidiCzkE4gBMEH65abHRiQvhdcQ+aP0D0g67sg==, } engines: { node: ">= 12.0.0" } cpu: [arm64] os: [darwin] - lightningcss-darwin-x64@1.30.2: + lightningcss-darwin-x64@1.31.1: resolution: { - integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==, + integrity: sha512-1ObhyoCY+tGxtsz1lSx5NXCj3nirk0Y0kB/g8B8DT+sSx4G9djitg9ejFnjb3gJNWo7qXH4DIy2SUHvpoFwfTA==, } engines: { node: ">= 12.0.0" } cpu: [x64] os: [darwin] - lightningcss-freebsd-x64@1.30.2: + lightningcss-freebsd-x64@1.31.1: resolution: { - integrity: sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==, + integrity: sha512-1RINmQKAItO6ISxYgPwszQE1BrsVU5aB45ho6O42mu96UiZBxEXsuQ7cJW4zs4CEodPUioj/QrXW1r9pLUM74A==, } engines: { node: ">= 12.0.0" } cpu: [x64] os: [freebsd] - lightningcss-linux-arm-gnueabihf@1.30.2: + lightningcss-linux-arm-gnueabihf@1.31.1: resolution: { - integrity: sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==, + integrity: sha512-OOCm2//MZJ87CdDK62rZIu+aw9gBv4azMJuA8/KB74wmfS3lnC4yoPHm0uXZ/dvNNHmnZnB8XLAZzObeG0nS1g==, } engines: { node: ">= 12.0.0" } cpu: [arm] os: [linux] - lightningcss-linux-arm64-gnu@1.30.2: + lightningcss-linux-arm64-gnu@1.31.1: resolution: { - integrity: sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==, + integrity: sha512-WKyLWztD71rTnou4xAD5kQT+982wvca7E6QoLpoawZ1gP9JM0GJj4Tp5jMUh9B3AitHbRZ2/H3W5xQmdEOUlLg==, } engines: { node: ">= 12.0.0" } cpu: [arm64] os: [linux] - lightningcss-linux-arm64-musl@1.30.2: + lightningcss-linux-arm64-musl@1.31.1: resolution: { - integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==, + integrity: sha512-mVZ7Pg2zIbe3XlNbZJdjs86YViQFoJSpc41CbVmKBPiGmC4YrfeOyz65ms2qpAobVd7WQsbW4PdsSJEMymyIMg==, } engines: { node: ">= 12.0.0" } cpu: [arm64] os: [linux] - lightningcss-linux-x64-gnu@1.30.2: + lightningcss-linux-x64-gnu@1.31.1: resolution: { - integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==, + integrity: sha512-xGlFWRMl+0KvUhgySdIaReQdB4FNudfUTARn7q0hh/V67PVGCs3ADFjw+6++kG1RNd0zdGRlEKa+T13/tQjPMA==, } engines: { node: ">= 12.0.0" } cpu: [x64] os: [linux] - lightningcss-linux-x64-musl@1.30.2: + lightningcss-linux-x64-musl@1.31.1: resolution: { - integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==, + integrity: sha512-eowF8PrKHw9LpoZii5tdZwnBcYDxRw2rRCyvAXLi34iyeYfqCQNA9rmUM0ce62NlPhCvof1+9ivRaTY6pSKDaA==, } engines: { node: ">= 12.0.0" } cpu: [x64] os: [linux] - lightningcss-win32-arm64-msvc@1.30.2: + lightningcss-win32-arm64-msvc@1.31.1: resolution: { - integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==, + integrity: sha512-aJReEbSEQzx1uBlQizAOBSjcmr9dCdL3XuC/6HLXAxmtErsj2ICo5yYggg1qOODQMtnjNQv2UHb9NpOuFtYe4w==, } engines: { node: ">= 12.0.0" } cpu: [arm64] os: [win32] - lightningcss-win32-x64-msvc@1.30.2: + lightningcss-win32-x64-msvc@1.31.1: resolution: { - integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==, + integrity: sha512-I9aiFrbd7oYHwlnQDqr1Roz+fTz61oDDJX7n9tYF9FJymH1cIN1DtKw3iYt6b8WZgEjoNwVSncwF4wx/ZedMhw==, } engines: { node: ">= 12.0.0" } cpu: [x64] os: [win32] - lightningcss@1.30.2: + lightningcss@1.31.1: resolution: { - integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==, + integrity: sha512-l51N2r93WmGUye3WuFoN5k10zyvrVs0qfKBhyC5ogUQ6Ew6JUSswh78mbSO+IU3nTWsyOArqPCcShdQSadghBQ==, } engines: { node: ">= 12.0.0" } @@ -14405,10 +14483,10 @@ packages: integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, } - lint-staged@16.2.7: + lint-staged@16.3.3: resolution: { - integrity: sha512-lDIj4RnYmK7/kXMya+qJsmkRFkGolciXjrsZ6PC25GdTfWOAWetR0ZbsNXRAj1EHHImRSalc+whZFg56F5DVow==, + integrity: sha512-RLq2koZ5fGWrx7tcqx2tSTMQj4lRkfNJaebO/li/uunhCJbtZqwTuwPHpgIimAHHi/2nZIiGrkCHDCOeR1onxA==, } engines: { node: ">=20.17" } hasBin: true @@ -14856,18 +14934,6 @@ packages: } engines: { node: ">= 8" } - meros@1.3.1: - resolution: - { - integrity: sha512-eV7dRObfTrckdmAz4/n7pT1njIsIJXRIZkgCiX43xEsPNy4gjXQzOYYxmGcolAMtF7HyfqRuDBh3Lgs4hmhVEw==, - } - engines: { node: ">=13" } - peerDependencies: - "@types/node": ">=13" - peerDependenciesMeta: - "@types/node": - optional: true - meros@1.3.2: resolution: { @@ -14960,12 +15026,12 @@ packages: integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==, } - minimatch@10.1.2: + minimatch@10.2.4: resolution: { - integrity: sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw==, + integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==, } - engines: { node: 20 || >=22 } + engines: { node: 18 || 20 || >=22 } minimatch@3.1.2: resolution: @@ -14973,10 +15039,16 @@ packages: integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, } - minimatch@9.0.5: + minimatch@3.1.5: resolution: { - integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==, + integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==, + } + + minimatch@9.0.9: + resolution: + { + integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==, } engines: { node: ">=16 || 14 >=14.17" } @@ -14986,6 +15058,20 @@ packages: integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, } + minipass@3.3.6: + resolution: + { + integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==, + } + engines: { node: ">=8" } + + minipass@5.0.0: + resolution: + { + integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==, + } + engines: { node: ">=8" } + minipass@7.1.2: resolution: { @@ -14993,6 +15079,20 @@ packages: } engines: { node: ">=16 || 14 >=14.17" } + minipass@7.1.3: + resolution: + { + integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==, + } + engines: { node: ">=16 || 14 >=14.17" } + + minizlib@2.1.2: + resolution: + { + integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==, + } + engines: { node: ">= 8" } + mipd@0.0.7: resolution: { @@ -15004,6 +15104,14 @@ packages: typescript: optional: true + mkdirp@1.0.4: + resolution: + { + integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==, + } + engines: { node: ">=10" } + hasBin: true + mkdirp@3.0.1: resolution: { @@ -15080,13 +15188,6 @@ packages: integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==, } - nano-spawn@2.0.0: - resolution: - { - integrity: sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw==, - } - engines: { node: ">=20.17" } - nanoid@3.3.11: resolution: { @@ -15510,10 +15611,10 @@ packages: } engines: { node: ">= 0.4" } - ox@0.12.1: + ox@0.14.0: resolution: { - integrity: sha512-uU0llpthaaw4UJoXlseCyBHmQ3bLrQmz9rRLIAUHqv46uHuae9SE+ukYBRIPVCnlEnHKuWjDUcDFHWx9gbGNoA==, + integrity: sha512-WLOB7IKnmI3Ol6RAqY7CJdZKl8QaI44LN91OGF1061YIeN6bL5IsFcdp7+oQShRyamE/8fW/CBRWhJAOzI35Dw==, } peerDependencies: typescript: ">=5.4.0" @@ -15768,12 +15869,12 @@ packages: } engines: { node: ">=16 || 14 >=14.18" } - path-scurry@2.0.1: + path-scurry@2.0.2: resolution: { - integrity: sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==, + integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==, } - engines: { node: 20 || >=22 } + engines: { node: 18 || 20 || >=22 } path-to-regexp@6.3.0: resolution: @@ -15820,10 +15921,10 @@ packages: integrity: sha512-6lswVVSztmHiRtD6I8hw4qP/nDm1EJbKMRhf3HCYaqud7frGysPv7FYJ5noZQdhQtN2xJnimfMtvQq21pdbzyQ==, } - pg-connection-string@2.11.0: + pg-connection-string@2.12.0: resolution: { - integrity: sha512-kecgoJwhOpxYU21rZjULrmrBJ698U2RxXofKVzOn5UDj61BPj/qMb7diYUR1nLScCDbrztQFl1TaQZT0t1EtzQ==, + integrity: sha512-U7qg+bpswf3Cs5xLzRqbXbQl85ng0mfSV/J0nnA31MCLgvEaAo7CIhmeyrmJpOr7o+zm0rXK+hNnT5l9RHkCkQ==, } pg-connection-string@2.9.1: @@ -15845,10 +15946,10 @@ packages: } engines: { node: ">=4.0.0" } - pg-pool@3.11.0: + pg-pool@3.13.0: resolution: { - integrity: sha512-MJYfvHwtGp870aeusDh+hg9apvOe2zmpZJpyt+BMtzUWlVqbhFmMK6bOBXLBUPd7iRtIF9fZplDc7KrPN3PN7w==, + integrity: sha512-gB+R+Xud1gLFuRD/QgOIgGOBE2KCQPaPwkzBBGC9oG69pHTkhQeIuejVIk3/cnDyX39av2AxomQiyPT13WKHQA==, } peerDependencies: pg: ">=8.0" @@ -15859,6 +15960,12 @@ packages: integrity: sha512-pfsxk2M9M3BuGgDOfuy37VNRRX3jmKgMjcvAcWqNDpZSf4cUmv8HSOl5ViRQFsfARFn0KuUQTgLxVMbNq5NW3g==, } + pg-protocol@1.13.0: + resolution: + { + integrity: sha512-zzdvXfS6v89r6v7OcFCHfHlyG/wvry1ALxZo4LqgUoy7W9xhBDMaqOuMiF3qEV45VqsN6rdlcehHrfDtlCPc8w==, + } + pg-query-emscripten@5.1.0: resolution: { @@ -15872,10 +15979,10 @@ packages: } engines: { node: ">=4" } - pg@8.18.0: + pg@8.20.0: resolution: { - integrity: sha512-xqrUDL1b9MbkydY/s+VZ6v+xiMUmOUk7SS9d/1kpyQxoJ6U9AO1oIJyUWVZojbfe5Cc/oluutcgFG4L9RDP1iQ==, + integrity: sha512-ldhMxz2r8fl/6QkXnBD3CR9/xg694oT6DZQ2s6c/RI28OjtSOpxnPrUCGOBJ46RCUxcWdx3p6kw/xnDHjKvaRA==, } engines: { node: ">= 16.0.0" } peerDependencies: @@ -15910,14 +16017,6 @@ packages: } engines: { node: ">=12" } - pidtree@0.6.0: - resolution: - { - integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==, - } - engines: { node: ">=0.10" } - hasBin: true - pify@3.0.0: resolution: { @@ -16190,10 +16289,10 @@ packages: } engines: { node: ^10 || ^12 || >=14 } - postcss@8.5.6: + postcss@8.5.8: resolution: { - integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==, + integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==, } engines: { node: ^10 || ^12 || >=14 } @@ -16231,10 +16330,10 @@ packages: integrity: sha512-1cSoF0aCC8uaARATfrlz4VCBqE8LwZwRfLgkxJOQwAlQt6ayTmi0D9OF7nXid1POI5SZidFuG9CnlXbDfLqY/Q==, } - preact@10.28.3: + preact@10.29.0: resolution: { - integrity: sha512-tCmoRkPQLpBeWzpmbhryairGnhW9tKV6c6gr/w+RhoRoKEJwsjzipwp//1oCpGPOchvSLaAPlpcJi9MwMmoPyA==, + integrity: sha512-wSAGyk2bYR1c7t3SZ3jHcM6xy0lcBcDel6lODcs9ME6Th++Dx2KU+6D3HD8wMMKGA8Wpw7OMd3/4RGzYRpzwRg==, } prelude-ls@1.2.1: @@ -16473,17 +16572,10 @@ packages: engines: { node: ">=10.13.0" } hasBin: true - qs@6.14.0: - resolution: - { - integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==, - } - engines: { node: ">=0.6" } - - qs@6.14.1: + qs@6.15.0: resolution: { - integrity: sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==, + integrity: sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==, } engines: { node: ">=0.6" } @@ -16588,10 +16680,10 @@ packages: peerDependencies: react: ^19.2.3 - react-hook-form@7.71.1: + react-hook-form@7.71.2: resolution: { - integrity: sha512-9SUJKCGKo8HUSsCO+y0CtqkqI5nNuaDqTxyqPsZPqIwudpj4rCrAz/jZV+jn57bx5gtZKOh3neQu94DXMc+w5w==, + integrity: sha512-1CHvcDYzuRUNOflt4MOq3ZM46AronNJtQ1S7tnX6YN4y72qhgiUItpacZUAQ0TyWYci3yz1X+rXaSxiuEm86PA==, } engines: { node: ">=18.0.0" } peerDependencies: @@ -16972,10 +17064,10 @@ packages: integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==, } - resend@6.9.2: + resend@6.9.3: resolution: { - integrity: sha512-uIM6CQ08tS+hTCRuKBFbOBvHIGaEhqZe8s4FOgqsVXSbQLAhmNWpmUhG3UAtRnmcwTWFUqnHa/+Vux8YGPyDBA==, + integrity: sha512-GRXjH9XZBJA+daH7bBVDuTShr22iWCxXA8P7t495G4dM/RC+d+3gHBK/6bz9K6Vpcq11zRQKmD+B+jECwQlyGQ==, } engines: { node: ">=20" } peerDependencies: @@ -17089,10 +17181,10 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rimraf@6.1.2: + rimraf@6.1.3: resolution: { - integrity: sha512-cFCkPslJv7BAXJsYlK1dZsbP8/ZNLkCAQ0bi1hf5EKX2QHegmDFEFA6QhuYJlk7UDdc+02JjO80YSOrWPpw06g==, + integrity: sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA==, } engines: { node: 20 || >=22 } hasBin: true @@ -17312,12 +17404,6 @@ packages: integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==, } - serialize-javascript@6.0.2: - resolution: - { - integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==, - } - set-blocking@2.0.0: resolution: { @@ -17654,10 +17740,10 @@ packages: } engines: { node: ">= 0.4" } - storybook@10.2.8: + storybook@10.2.17: resolution: { - integrity: sha512-885uSIn8NQw2ZG7vy84K45lHCOSyz1DVsDV8pHiHQj3J0riCuWLNeO50lK9z98zE8kjhgTtxAAkMTy5nkmNRKQ==, + integrity: sha512-yueTpl5YJqLzQqs3CanxNdAAfFU23iP0j+JVJURE4ghfEtRmWfWoZWLGkVcyjmgum7UmjwAlqRuOjQDNvH89kw==, } hasBin: true peerDependencies: @@ -17817,13 +17903,6 @@ packages: } engines: { node: ">=8" } - strip-ansi@7.1.0: - resolution: - { - integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, - } - engines: { node: ">=12" } - strip-ansi@7.1.2: resolution: { @@ -17997,10 +18076,10 @@ packages: integrity: sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==, } - swr@2.4.0: + swr@2.4.1: resolution: { - integrity: sha512-sUlC20T8EOt1pHmDiqueUWMmRRX03W7w5YxovWX7VR2KHEPCTMly85x05vpkP5i6Bu4h44ePSMD9Tc+G2MItFw==, + integrity: sha512-2CC6CiKQtEwaEeNiqWTAw9PGykW8SR5zZX8MZk6TeAvEAnVS7Visz8WzphqgtQ8v2xz/4Q5K+j+SeMaKXeeQIA==, } peerDependencies: react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -18061,10 +18140,10 @@ packages: integrity: sha512-Oo6tHdpZsGpkKG88HJ8RR1rg/RdnEkQEfMoEk2x1XRI3F1AxeU+ijRXpiVUF4UbLfcxxRGw6TbUINKYdWVsQTQ==, } - tailwindcss@4.1.18: + tailwindcss@4.2.1: resolution: { - integrity: sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==, + integrity: sha512-/tBrSQ36vCleJkAOsy9kbNTgaxvGbyOamC30PRePTQe/o1MFwEKHQk4Cn7BNGaPtjp+PuUrByJehM1hgxfq4sw==, } tapable@2.3.0: @@ -18074,6 +18153,14 @@ packages: } engines: { node: ">=6" } + tar@6.2.1: + resolution: + { + integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==, + } + engines: { node: ">=10" } + deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + tdigest@0.1.2: resolution: { @@ -18087,10 +18174,10 @@ packages: } engines: { node: ">=18" } - terser-webpack-plugin@5.3.16: + terser-webpack-plugin@5.4.0: resolution: { - integrity: sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==, + integrity: sha512-Bn5vxm48flOIfkdl5CaD2+1CiUVbonWQ3KQPyP7/EuIl9Gbzq/gQFOzaMFUEgVjB1396tcK0SG8XcNJ/2kDH8g==, } engines: { node: ">= 10.13.0" } peerDependencies: @@ -18223,10 +18310,10 @@ packages: integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==, } - tinyexec@1.0.4: + tinyexec@1.0.2: resolution: { - integrity: sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==, + integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==, } engines: { node: ">=18" } @@ -18251,10 +18338,10 @@ packages: } engines: { node: ">=14.0.0" } - tinyrainbow@3.1.0: + tinyrainbow@3.0.3: resolution: { - integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==, + integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==, } engines: { node: ">=14.0.0" } @@ -18484,12 +18571,6 @@ packages: integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, } - tslib@2.4.1: - resolution: - { - integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==, - } - tslib@2.6.2: resolution: { @@ -18550,58 +18631,58 @@ packages: integrity: sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==, } - turbo-darwin-64@2.8.6: + turbo-darwin-64@2.8.16: resolution: { - integrity: sha512-6QeZ/aLZizekiI6tKZN0IGP1a1WYZ9c/qDKPa0rSmj2X0O0Iw/ES4rKZV40S5n8SUJdiU01EFLygHJ2oWaYKXg==, + integrity: sha512-KWa4hUMWrpADC6Q/wIHRkBLw6X6MV9nx6X7hSXbTrrMz0KdaKhmfudUZ3sS76bJFmgArBU25cSc0AUyyrswYxg==, } cpu: [x64] os: [darwin] - turbo-darwin-arm64@2.8.6: + turbo-darwin-arm64@2.8.16: resolution: { - integrity: sha512-RS4Z902vB93cQD3PJS/1IMmS0HefrB5ZXuw4ECOrxhOGz5jJVmYFJ6weDzedjoTDeYHHXGo1NoiCSHg69ngWKA==, + integrity: sha512-NBgaqBDLQSZlJR4D5XCkQq6noaO0RvIgwm5eYFJYL3bH5dNu8o0UBpq7C5DYnQI8+ybyoHFjT5/icN4LeUYLow==, } cpu: [arm64] os: [darwin] - turbo-linux-64@2.8.6: + turbo-linux-64@2.8.16: resolution: { - integrity: sha512-hCWDnDepYbrSJdByuryKFoHAGFkvgBYXr6qdaGsYhX1Wgq8isqXCQBKOo99Y/9tXDwKGEeQ7xnkdFvSL7AQ4iQ==, + integrity: sha512-VYPdcCRevI9kR/hr1H1xwXy7QQt/jNKiim1e1mjANBXD2E9VZWMkIL74J1Huad5MbU3/jw7voHOqDPLJPC2p6w==, } cpu: [x64] os: [linux] - turbo-linux-arm64@2.8.6: + turbo-linux-arm64@2.8.16: resolution: { - integrity: sha512-oS15aCYEpynG/l69xs/ZnQ0dnz0pHhfHg70Zf5J+j5Cam0/RA0MpcryjneN/9G0PmP8a/6ZxnL5nZahX+wOBPA==, + integrity: sha512-beq8tgUVI3uwkQkXJMiOr/hfxQRw54M3elpBwqgYFfemiK5LhCjjcwO0DkE8GZZfElBIlk+saMAQOZy3885wNQ==, } cpu: [arm64] os: [linux] - turbo-windows-64@2.8.6: + turbo-windows-64@2.8.16: resolution: { - integrity: sha512-eqBxqJD7H/uk9V0QO10VgwY9J2BUXejsGuzChln72Yl+o8GZwsvhOekndRxccR90J8ZO+LKO24+3VzHFh4Cu/g==, + integrity: sha512-Ig7b46iUgiOIkea/D3Z7H+zNzvzSnIJcLYFpZLA0RxbUTrbLhv9qIPwv3pT9p/abmu0LXVKHxaOo+p26SuDhzw==, } cpu: [x64] os: [win32] - turbo-windows-arm64@2.8.6: + turbo-windows-arm64@2.8.16: resolution: { - integrity: sha512-I3VEQyxIlNZ6XTg4fLKAkuhcwzIs/GD7Vs1yhelH2aUTjf08wprjBWknDqP7mjAHMpsosRrq4DtfSZEQm83Hxg==, + integrity: sha512-fOWjbEA2PiE2HEnFQrwNZKYEdjewyPc2no9GmrXklZnTCuMsxeCN39aVlKpKpim03Zq/ykIuvApGwq8ZbfS2Yw==, } cpu: [arm64] os: [win32] - turbo@2.8.6: + turbo@2.8.16: resolution: { - integrity: sha512-QMj1SQwUYehc+xJ9SxXn56UO43hfKN64/NFetVW1BwzysRqn+q0FSgrmk+IbJ+djfd8j8zXGKGeqsnUcXwQSUQ==, + integrity: sha512-u6e9e3cTTpE2adQ1DYm3A3r8y3LAONEx1jYvJx6eIgSY4bMLxIxs0riWzI0Z/IK903ikiUzRPZ2c1Ph5lVLkhA==, } hasBin: true @@ -18798,10 +18879,10 @@ packages: integrity: sha512-w9IMgQrz4O0YN1LtB7K5P63vhlIOvC7opSmouCJ+ZywlPAlO9gIkJ+otk6LvGpAs2wg4econaCz3TvQ9xPoyuQ==, } - undici@7.24.4: + undici@7.22.0: resolution: { - integrity: sha512-BM/JzwwaRXxrLdElV2Uo6cTLEjhSb3WXboncJamZ15NgUURmvlXvxa6xkwIOILIjPNo9i8ku136ZvWV0Uly8+w==, + integrity: sha512-RqslV2Us5BrllB+JeiZnK4peryVTndy9Dnqq62S3yYRRTj0tFQCwEniUy2167skdGOy3vqRzEvl1Dm4sV2ReDg==, } engines: { node: ">=20.18.1" } @@ -19161,10 +19242,10 @@ packages: typescript: optional: true - viem@2.45.3: + viem@2.47.2: resolution: { - integrity: sha512-axOD7rIbGiDHHA1MHKmpqqTz3CMCw7YpE/FVypddQMXL5i364VkNZh9JeEJH17NO484LaZUOMueo35IXyL76Mw==, + integrity: sha512-etDIwDgmDiGaPg8rUbJtUFuC3/nAJCbhMYyfh5dOcqNNkzBWTNcS2VluPSM5JVo+9U3b2hle2RkBEq3+xyvlvg==, } peerDependencies: typescript: ">=5.0.4" @@ -19435,10 +19516,10 @@ packages: integrity: sha512-khZGfAeJx6I8K9zKohEWWYN6KDlVw2DHownoe+6Vtwj1LP9WFgegXnVMSkZ/dBEBtXFwrkkydsaPFlB7f8wU2A==, } - webpack-sources@3.3.3: + webpack-sources@3.3.4: resolution: { - integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==, + integrity: sha512-7tP1PdV4vF+lYPnkMR0jMY5/la2ub5Fc/8VQrrU+lXkiM6C4TjVfGw7iKfyhnTQOsD+6Q/iKw0eFciziRgD58Q==, } engines: { node: ">=10.13.0" } @@ -19448,10 +19529,10 @@ packages: integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==, } - webpack@5.105.1: + webpack@5.105.4: resolution: { - integrity: sha512-Gdj3X74CLJJ8zy4URmK42W7wTZUJrqL+z8nyGEr4dTN0kb3nVs+ZvjbTOqRYPD7qX4tUmwyHL9Q9K6T1seW6Yw==, + integrity: sha512-jTywjboN9aHxFlToqb0K0Zs9SbBoW4zRUlGzI2tYNxVYcEi/IPpn+Xi4ye5jTLvX2YeLuic/IvxNot+Q1jMoOw==, } engines: { node: ">=10.13.0" } hasBin: true @@ -19740,6 +19821,12 @@ packages: integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, } + yallist@4.0.0: + resolution: + { + integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, + } + yaml-ast-parser@0.0.43: resolution: { @@ -19949,14 +20036,14 @@ snapshots: "@jridgewell/gen-mapping": 0.3.13 "@jridgewell/trace-mapping": 0.3.31 - "@apollo/client@3.14.0(@types/react@19.2.8)(graphql-ws@6.0.7(crossws@0.3.5)(graphql@16.12.0)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(graphql@16.12.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)": + "@apollo/client@3.14.0(@types/react@19.2.8)(graphql-ws@6.0.7(crossws@0.3.5)(graphql@16.13.1)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(graphql@16.13.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)": dependencies: - "@graphql-typed-document-node/core": 3.2.0(graphql@16.12.0) + "@graphql-typed-document-node/core": 3.2.0(graphql@16.13.1) "@wry/caches": 1.0.1 "@wry/equality": 0.5.7 "@wry/trie": 0.5.0 - graphql: 16.12.0 - graphql-tag: 2.12.6(graphql@16.12.0) + graphql: 16.13.1 + graphql-tag: 2.12.6(graphql@16.13.1) hoist-non-react-statics: 3.3.2 optimism: 0.18.1 prop-types: 15.8.1 @@ -19966,20 +20053,20 @@ snapshots: tslib: 2.8.1 zen-observable-ts: 1.2.5 optionalDependencies: - graphql-ws: 6.0.7(crossws@0.3.5)(graphql@16.12.0)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + graphql-ws: 6.0.7(crossws@0.3.5)(graphql@16.13.1)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)) react: 19.2.3 react-dom: 19.2.3(react@19.2.3) transitivePeerDependencies: - "@types/react" - "@apollo/client@3.14.0(@types/react@19.2.8)(graphql-ws@6.0.7(crossws@0.3.5)(graphql@16.12.0)(ws@8.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(graphql@16.12.0)(react-dom@19.2.3(react@18.3.1))(react@18.3.1)": + "@apollo/client@3.14.0(@types/react@19.2.8)(graphql-ws@6.0.7(crossws@0.3.5)(graphql@16.13.1)(ws@8.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(graphql@16.13.1)(react-dom@19.2.3(react@18.3.1))(react@18.3.1)": dependencies: - "@graphql-typed-document-node/core": 3.2.0(graphql@16.12.0) + "@graphql-typed-document-node/core": 3.2.0(graphql@16.13.1) "@wry/caches": 1.0.1 "@wry/equality": 0.5.7 "@wry/trie": 0.5.0 - graphql: 16.12.0 - graphql-tag: 2.12.6(graphql@16.12.0) + graphql: 16.13.1 + graphql-tag: 2.12.6(graphql@16.13.1) hoist-non-react-statics: 3.3.2 optimism: 0.18.1 prop-types: 15.8.1 @@ -19989,51 +20076,34 @@ snapshots: tslib: 2.8.1 zen-observable-ts: 1.2.5 optionalDependencies: - graphql-ws: 6.0.7(crossws@0.3.5)(graphql@16.12.0)(ws@8.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + graphql-ws: 6.0.7(crossws@0.3.5)(graphql@16.13.1)(ws@8.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) react: 18.3.1 react-dom: 19.2.3(react@18.3.1) transitivePeerDependencies: - "@types/react" - "@ardatan/relay-compiler@12.0.0(graphql@16.12.0)": + "@ardatan/relay-compiler@12.0.3(graphql@16.13.1)": dependencies: - "@babel/core": 7.29.0 "@babel/generator": 7.29.1 "@babel/parser": 7.29.0 "@babel/runtime": 7.27.6 - "@babel/traverse": 7.29.0 - "@babel/types": 7.29.0 - babel-preset-fbjs: 3.4.0(@babel/core@7.29.0) chalk: 4.1.2 fb-watchman: 2.0.2 - fbjs: 3.0.5 - glob: 7.2.3 - graphql: 16.12.0 + graphql: 16.13.1 immutable: 3.7.6 invariant: 2.2.4 nullthrows: 1.1.1 relay-runtime: 12.0.0 signedsource: 1.0.0 - yargs: 15.4.1 transitivePeerDependencies: - encoding - - supports-color - "@ardatan/relay-compiler@12.0.3(graphql@16.12.0)": + "@ardatan/relay-compiler@13.0.0(graphql@16.13.1)": dependencies: - "@babel/generator": 7.29.1 - "@babel/parser": 7.29.0 - "@babel/runtime": 7.27.6 - chalk: 4.1.2 - fb-watchman: 2.0.2 - graphql: 16.12.0 - immutable: 3.7.6 + "@babel/runtime": 7.28.6 + graphql: 16.13.1 + immutable: 5.1.5 invariant: 2.2.4 - nullthrows: 1.1.1 - relay-runtime: 12.0.0 - signedsource: 1.0.0 - transitivePeerDependencies: - - encoding "@asamuzakjp/css-color@3.2.0": dependencies: @@ -20148,19 +20218,6 @@ snapshots: transitivePeerDependencies: - supports-color - "@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.29.0)": - dependencies: - "@babel/core": 7.29.0 - "@babel/helper-annotate-as-pure": 7.27.3 - "@babel/helper-member-expression-to-functions": 7.27.1 - "@babel/helper-optimise-call-expression": 7.27.1 - "@babel/helper-replace-supers": 7.27.1(@babel/core@7.29.0) - "@babel/helper-skip-transparent-expression-wrappers": 7.27.1 - "@babel/traverse": 7.29.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - "@babel/helper-create-class-features-plugin@7.28.6(@babel/core@7.28.5)": dependencies: "@babel/core": 7.28.5 @@ -20273,15 +20330,6 @@ snapshots: transitivePeerDependencies: - supports-color - "@babel/helper-replace-supers@7.27.1(@babel/core@7.29.0)": - dependencies: - "@babel/core": 7.29.0 - "@babel/helper-member-expression-to-functions": 7.27.1 - "@babel/helper-optimise-call-expression": 7.27.1 - "@babel/traverse": 7.29.0 - transitivePeerDependencies: - - supports-color - "@babel/helper-replace-supers@7.28.6(@babel/core@7.28.5)": dependencies: "@babel/core": 7.28.5 @@ -20356,23 +20404,6 @@ snapshots: transitivePeerDependencies: - supports-color - "@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.29.0)": - dependencies: - "@babel/core": 7.29.0 - "@babel/helper-create-class-features-plugin": 7.27.1(@babel/core@7.29.0) - "@babel/helper-plugin-utils": 7.27.1 - transitivePeerDependencies: - - supports-color - - "@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.29.0)": - dependencies: - "@babel/compat-data": 7.28.6 - "@babel/core": 7.29.0 - "@babel/helper-compilation-targets": 7.28.6 - "@babel/helper-plugin-utils": 7.27.1 - "@babel/plugin-syntax-object-rest-spread": 7.8.3(@babel/core@7.29.0) - "@babel/plugin-transform-parameters": 7.27.7(@babel/core@7.29.0) - "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.5)": dependencies: "@babel/core": 7.28.5 @@ -20425,11 +20456,6 @@ snapshots: "@babel/core": 7.28.5 "@babel/helper-plugin-utils": 7.27.1 - "@babel/plugin-syntax-flow@7.27.1(@babel/core@7.29.0)": - dependencies: - "@babel/core": 7.29.0 - "@babel/helper-plugin-utils": 7.27.1 - "@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.5)": dependencies: "@babel/core": 7.28.5 @@ -20607,11 +20633,6 @@ snapshots: "@babel/core": 7.28.5 "@babel/helper-plugin-utils": 7.27.1 - "@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.29.0)": - dependencies: - "@babel/core": 7.29.0 - "@babel/helper-plugin-utils": 7.27.1 - "@babel/plugin-transform-async-generator-functions@7.28.6(@babel/core@7.28.5)": dependencies: "@babel/core": 7.28.5 @@ -20635,16 +20656,6 @@ snapshots: "@babel/core": 7.28.5 "@babel/helper-plugin-utils": 7.27.1 - "@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.29.0)": - dependencies: - "@babel/core": 7.29.0 - "@babel/helper-plugin-utils": 7.27.1 - - "@babel/plugin-transform-block-scoping@7.28.0(@babel/core@7.29.0)": - dependencies: - "@babel/core": 7.29.0 - "@babel/helper-plugin-utils": 7.27.1 - "@babel/plugin-transform-block-scoping@7.28.6(@babel/core@7.28.5)": dependencies: "@babel/core": 7.28.5 @@ -20674,18 +20685,6 @@ snapshots: transitivePeerDependencies: - supports-color - "@babel/plugin-transform-classes@7.28.0(@babel/core@7.29.0)": - dependencies: - "@babel/core": 7.29.0 - "@babel/helper-annotate-as-pure": 7.27.3 - "@babel/helper-compilation-targets": 7.28.6 - "@babel/helper-globals": 7.28.0 - "@babel/helper-plugin-utils": 7.27.1 - "@babel/helper-replace-supers": 7.27.1(@babel/core@7.29.0) - "@babel/traverse": 7.29.0 - transitivePeerDependencies: - - supports-color - "@babel/plugin-transform-classes@7.28.6(@babel/core@7.28.5)": dependencies: "@babel/core": 7.28.5 @@ -20698,26 +20697,12 @@ snapshots: transitivePeerDependencies: - supports-color - "@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.29.0)": - dependencies: - "@babel/core": 7.29.0 - "@babel/helper-plugin-utils": 7.27.1 - "@babel/template": 7.28.6 - "@babel/plugin-transform-computed-properties@7.28.6(@babel/core@7.28.5)": dependencies: "@babel/core": 7.28.5 "@babel/helper-plugin-utils": 7.28.6 "@babel/template": 7.28.6 - "@babel/plugin-transform-destructuring@7.28.0(@babel/core@7.29.0)": - dependencies: - "@babel/core": 7.29.0 - "@babel/helper-plugin-utils": 7.27.1 - "@babel/traverse": 7.29.0 - transitivePeerDependencies: - - supports-color - "@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.28.5)": dependencies: "@babel/core": 7.28.5 @@ -20766,12 +20751,6 @@ snapshots: "@babel/core": 7.28.5 "@babel/helper-plugin-utils": 7.27.1 - "@babel/plugin-transform-flow-strip-types@7.27.1(@babel/core@7.29.0)": - dependencies: - "@babel/core": 7.29.0 - "@babel/helper-plugin-utils": 7.27.1 - "@babel/plugin-syntax-flow": 7.27.1(@babel/core@7.29.0) - "@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.5)": dependencies: "@babel/core": 7.28.5 @@ -20780,14 +20759,6 @@ snapshots: transitivePeerDependencies: - supports-color - "@babel/plugin-transform-for-of@7.27.1(@babel/core@7.29.0)": - dependencies: - "@babel/core": 7.29.0 - "@babel/helper-plugin-utils": 7.27.1 - "@babel/helper-skip-transparent-expression-wrappers": 7.27.1 - transitivePeerDependencies: - - supports-color - "@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.5)": dependencies: "@babel/core": 7.28.5 @@ -20797,15 +20768,6 @@ snapshots: transitivePeerDependencies: - supports-color - "@babel/plugin-transform-function-name@7.27.1(@babel/core@7.29.0)": - dependencies: - "@babel/core": 7.29.0 - "@babel/helper-compilation-targets": 7.28.6 - "@babel/helper-plugin-utils": 7.27.1 - "@babel/traverse": 7.29.0 - transitivePeerDependencies: - - supports-color - "@babel/plugin-transform-json-strings@7.28.6(@babel/core@7.28.5)": dependencies: "@babel/core": 7.28.5 @@ -20816,11 +20778,6 @@ snapshots: "@babel/core": 7.28.5 "@babel/helper-plugin-utils": 7.27.1 - "@babel/plugin-transform-literals@7.27.1(@babel/core@7.29.0)": - dependencies: - "@babel/core": 7.29.0 - "@babel/helper-plugin-utils": 7.27.1 - "@babel/plugin-transform-logical-assignment-operators@7.28.6(@babel/core@7.28.5)": dependencies: "@babel/core": 7.28.5 @@ -20831,11 +20788,6 @@ snapshots: "@babel/core": 7.28.5 "@babel/helper-plugin-utils": 7.27.1 - "@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.29.0)": - dependencies: - "@babel/core": 7.29.0 - "@babel/helper-plugin-utils": 7.27.1 - "@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.5)": dependencies: "@babel/core": 7.28.5 @@ -20852,14 +20804,6 @@ snapshots: transitivePeerDependencies: - supports-color - "@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.29.0)": - dependencies: - "@babel/core": 7.29.0 - "@babel/helper-module-transforms": 7.28.6(@babel/core@7.29.0) - "@babel/helper-plugin-utils": 7.27.1 - transitivePeerDependencies: - - supports-color - "@babel/plugin-transform-modules-commonjs@7.28.6(@babel/core@7.28.5)": dependencies: "@babel/core": 7.28.5 @@ -20931,14 +20875,6 @@ snapshots: transitivePeerDependencies: - supports-color - "@babel/plugin-transform-object-super@7.27.1(@babel/core@7.29.0)": - dependencies: - "@babel/core": 7.29.0 - "@babel/helper-plugin-utils": 7.27.1 - "@babel/helper-replace-supers": 7.27.1(@babel/core@7.29.0) - transitivePeerDependencies: - - supports-color - "@babel/plugin-transform-optional-catch-binding@7.28.6(@babel/core@7.28.5)": dependencies: "@babel/core": 7.28.5 @@ -20957,11 +20893,6 @@ snapshots: "@babel/core": 7.28.5 "@babel/helper-plugin-utils": 7.27.1 - "@babel/plugin-transform-parameters@7.27.7(@babel/core@7.29.0)": - dependencies: - "@babel/core": 7.29.0 - "@babel/helper-plugin-utils": 7.27.1 - "@babel/plugin-transform-private-methods@7.28.6(@babel/core@7.28.5)": dependencies: "@babel/core": 7.28.5 @@ -20984,21 +20915,11 @@ snapshots: "@babel/core": 7.28.5 "@babel/helper-plugin-utils": 7.27.1 - "@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.29.0)": - dependencies: - "@babel/core": 7.29.0 - "@babel/helper-plugin-utils": 7.27.1 - "@babel/plugin-transform-react-display-name@7.28.0(@babel/core@7.28.5)": dependencies: "@babel/core": 7.28.5 "@babel/helper-plugin-utils": 7.27.1 - "@babel/plugin-transform-react-display-name@7.28.0(@babel/core@7.29.0)": - dependencies: - "@babel/core": 7.29.0 - "@babel/helper-plugin-utils": 7.27.1 - "@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.28.5)": dependencies: "@babel/core": 7.28.5 @@ -21017,17 +20938,6 @@ snapshots: transitivePeerDependencies: - supports-color - "@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.29.0)": - dependencies: - "@babel/core": 7.29.0 - "@babel/helper-annotate-as-pure": 7.27.3 - "@babel/helper-module-imports": 7.28.6 - "@babel/helper-plugin-utils": 7.27.1 - "@babel/plugin-syntax-jsx": 7.27.1(@babel/core@7.29.0) - "@babel/types": 7.29.0 - transitivePeerDependencies: - - supports-color - "@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.28.5)": dependencies: "@babel/core": 7.28.5 @@ -21067,19 +20977,6 @@ snapshots: "@babel/core": 7.28.5 "@babel/helper-plugin-utils": 7.27.1 - "@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.29.0)": - dependencies: - "@babel/core": 7.29.0 - "@babel/helper-plugin-utils": 7.27.1 - - "@babel/plugin-transform-spread@7.27.1(@babel/core@7.29.0)": - dependencies: - "@babel/core": 7.29.0 - "@babel/helper-plugin-utils": 7.27.1 - "@babel/helper-skip-transparent-expression-wrappers": 7.27.1 - transitivePeerDependencies: - - supports-color - "@babel/plugin-transform-spread@7.28.6(@babel/core@7.28.5)": dependencies: "@babel/core": 7.28.5 @@ -21098,11 +20995,6 @@ snapshots: "@babel/core": 7.28.5 "@babel/helper-plugin-utils": 7.27.1 - "@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.29.0)": - dependencies: - "@babel/core": 7.29.0 - "@babel/helper-plugin-utils": 7.27.1 - "@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.5)": dependencies: "@babel/core": 7.28.5 @@ -21293,16 +21185,16 @@ snapshots: "@babel/helper-string-parser": 7.27.1 "@babel/helper-validator-identifier": 7.28.5 - "@base-org/account@2.4.0(@types/react@19.2.8)(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76)": + "@base-org/account@2.4.0(@types/react@19.2.8)(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(utf-8-validate@5.0.10)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76)": dependencies: - "@coinbase/cdp-sdk": 1.38.6(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + "@coinbase/cdp-sdk": 1.38.6(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)) "@noble/hashes": 1.4.0 clsx: 1.2.1 eventemitter3: 5.0.1 idb-keyval: 6.2.1 ox: 0.6.9(typescript@5.9.3)(zod@3.25.76) preact: 10.24.2 - viem: 2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + viem: 2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) zustand: 5.0.3(@types/react@19.2.8)(react@19.2.3)(use-sync-external-store@1.4.0(react@19.2.3)) transitivePeerDependencies: - "@types/react" @@ -21322,31 +21214,31 @@ snapshots: "@bcoe/v8-coverage@1.0.2": {} - "@chromatic-com/storybook@4.1.3(storybook@10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))": + "@chromatic-com/storybook@4.1.3(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))": dependencies: "@neoconfetti/react": 1.0.0 chromatic: 13.3.4 filesize: 10.1.6 - jsonfile: 6.1.0 - storybook: 10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10) - strip-ansi: 7.1.0 + jsonfile: 6.2.0 + storybook: 10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10) + strip-ansi: 7.1.2 transitivePeerDependencies: - "@chromatic-com/cypress" - "@chromatic-com/playwright" - "@coinbase/cdp-sdk@1.38.6(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))": + "@coinbase/cdp-sdk@1.38.6(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))": dependencies: - "@solana-program/system": 0.8.1(@solana/kit@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))) - "@solana-program/token": 0.6.0(@solana/kit@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))) - "@solana/kit": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + "@solana-program/system": 0.8.1(@solana/kit@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))) + "@solana-program/token": 0.6.0(@solana/kit@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))) + "@solana/kit": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)) "@solana/web3.js": 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10) abitype: 1.0.6(typescript@5.9.3)(zod@3.25.76) - axios: 1.13.5 - axios-retry: 4.5.0(axios@1.13.5) + axios: 1.13.6 + axios-retry: 4.5.0(axios@1.13.6) jose: 6.1.3 md5: 2.3.0 uncrypto: 0.1.3 - viem: 2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + viem: 2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) zod: 3.25.76 transitivePeerDependencies: - bufferutil @@ -21359,14 +21251,14 @@ snapshots: "@coinbase/wallet-sdk@3.9.3": dependencies: - bn.js: 5.2.2 + bn.js: 5.2.3 buffer: 6.0.3 clsx: 1.2.1 eth-block-tracker: 7.1.0 eth-json-rpc-filters: 6.0.1 eventemitter3: 5.0.4 keccak: 3.0.4 - preact: 10.28.3 + preact: 10.29.0 sha.js: 2.4.12 transitivePeerDependencies: - supports-color @@ -21379,7 +21271,7 @@ snapshots: idb-keyval: 6.2.1 ox: 0.6.9(typescript@5.9.3)(zod@3.25.76) preact: 10.24.2 - viem: 2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + viem: 2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) zustand: 5.0.3(@types/react@19.2.8)(react@19.2.3)(use-sync-external-store@1.4.0(react@19.2.3)) transitivePeerDependencies: - "@types/react" @@ -21395,11 +21287,11 @@ snapshots: dependencies: commander: 12.1.0 - "@commitlint/cli@19.8.1(@types/node@20.19.33)(typescript@5.9.3)": + "@commitlint/cli@19.8.1(@types/node@20.19.37)(typescript@5.9.3)": dependencies: "@commitlint/format": 19.8.1 "@commitlint/lint": 19.8.1 - "@commitlint/load": 19.8.1(@types/node@20.19.33)(typescript@5.9.3) + "@commitlint/load": 19.8.1(@types/node@20.19.37)(typescript@5.9.3) "@commitlint/read": 19.8.1 "@commitlint/types": 19.8.1 tinyexec: 1.0.1 @@ -21432,7 +21324,7 @@ snapshots: "@commitlint/format@19.8.1": dependencies: "@commitlint/types": 19.8.1 - chalk: 5.4.1 + chalk: 5.6.2 "@commitlint/is-ignored@19.8.1": dependencies: @@ -21446,15 +21338,15 @@ snapshots: "@commitlint/rules": 19.8.1 "@commitlint/types": 19.8.1 - "@commitlint/load@19.8.1(@types/node@20.19.33)(typescript@5.9.3)": + "@commitlint/load@19.8.1(@types/node@20.19.37)(typescript@5.9.3)": dependencies: "@commitlint/config-validator": 19.8.1 "@commitlint/execute-rule": 19.8.1 "@commitlint/resolve-extends": 19.8.1 "@commitlint/types": 19.8.1 - chalk: 5.4.1 + chalk: 5.6.2 cosmiconfig: 9.0.0(typescript@5.9.3) - cosmiconfig-typescript-loader: 6.1.0(@types/node@20.19.33)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3) + cosmiconfig-typescript-loader: 6.1.0(@types/node@20.19.37)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -21503,7 +21395,7 @@ snapshots: "@commitlint/types@19.8.1": dependencies: "@types/conventional-commits-parser": 5.0.1 - chalk: 5.4.1 + chalk: 5.6.2 "@cspotcode/source-map-support@0.8.1": dependencies: @@ -21537,7 +21429,7 @@ snapshots: "@electric-sql/pglite@0.2.13": {} - "@electric-sql/pglite@0.3.15": {} + "@electric-sql/pglite@0.3.16": {} "@emnapi/core@1.4.5": dependencies: @@ -21559,33 +21451,33 @@ snapshots: "@ensdomains/eth-ens-namehash@2.0.15": {} - "@envelop/core@5.4.0": + "@envelop/core@5.5.0": dependencies: "@envelop/instrumentation": 1.0.0 "@envelop/types": 5.2.1 "@whatwg-node/promise-helpers": 1.3.2 tslib: 2.8.1 - "@envelop/core@5.5.0": + "@envelop/core@5.5.1": dependencies: "@envelop/instrumentation": 1.0.0 "@envelop/types": 5.2.1 "@whatwg-node/promise-helpers": 1.3.2 tslib: 2.8.1 - "@envelop/extended-validation@7.1.0(@envelop/core@5.4.0)(graphql@16.12.0)": + "@envelop/extended-validation@7.1.1(@envelop/core@5.5.1)(graphql@16.13.1)": dependencies: - "@envelop/core": 5.4.0 - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) - graphql: 16.12.0 + "@envelop/core": 5.5.1 + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + graphql: 16.13.1 tslib: 2.8.1 - "@envelop/graphql-jit@11.1.0(@envelop/core@5.4.0)(graphql@16.12.0)": + "@envelop/graphql-jit@11.1.1(@envelop/core@5.5.1)(graphql@16.13.1)": dependencies: - "@envelop/core": 5.4.0 + "@envelop/core": 5.5.1 "@whatwg-node/promise-helpers": 1.3.2 - graphql: 16.12.0 - graphql-jit: 0.8.7(graphql@16.12.0) + graphql: 16.13.1 + graphql-jit: 0.8.7(graphql@16.13.1) tslib: 2.8.1 "@envelop/instrumentation@1.0.0": @@ -21901,42 +21793,42 @@ snapshots: "@escape.tech/graphql-armor-max-aliases@2.6.2": dependencies: - graphql: 16.12.0 + graphql: 16.13.1 optionalDependencies: - "@envelop/core": 5.4.0 + "@envelop/core": 5.5.0 "@escape.tech/graphql-armor-types": 0.7.0 "@escape.tech/graphql-armor-max-depth@2.4.1": dependencies: - graphql: 16.12.0 + graphql: 16.13.1 optionalDependencies: - "@envelop/core": 5.4.0 + "@envelop/core": 5.5.0 "@escape.tech/graphql-armor-types": 0.7.0 "@escape.tech/graphql-armor-max-tokens@2.5.1": dependencies: - graphql: 16.12.0 + graphql: 16.13.1 optionalDependencies: - "@envelop/core": 5.4.0 + "@envelop/core": 5.5.0 "@escape.tech/graphql-armor-types": 0.7.0 "@escape.tech/graphql-armor-types@0.7.0": dependencies: - graphql: 16.12.0 + graphql: 16.13.1 optional: true - "@eslint-community/eslint-utils@4.9.1(eslint@9.39.2(jiti@2.6.1))": + "@eslint-community/eslint-utils@4.9.1(eslint@9.39.4(jiti@2.6.1))": dependencies: - eslint: 9.39.2(jiti@2.6.1) + eslint: 9.39.4(jiti@2.6.1) eslint-visitor-keys: 3.4.3 "@eslint-community/regexpp@4.12.2": {} - "@eslint/config-array@0.21.1": + "@eslint/config-array@0.21.2": dependencies: "@eslint/object-schema": 2.1.7 debug: 4.4.3 - minimatch: 3.1.2 + minimatch: 3.1.5 transitivePeerDependencies: - supports-color @@ -21948,21 +21840,21 @@ snapshots: dependencies: "@types/json-schema": 7.0.15 - "@eslint/eslintrc@3.3.3": + "@eslint/eslintrc@3.3.5": dependencies: - ajv: 6.12.6 + ajv: 6.14.0 debug: 4.4.3 espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.1 js-yaml: 4.1.1 - minimatch: 3.1.2 + minimatch: 3.1.5 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - "@eslint/js@9.39.2": {} + "@eslint/js@9.39.4": {} "@eslint/object-schema@2.1.7": {} @@ -22245,7 +22137,7 @@ snapshots: dependencies: fast-deep-equal: 3.1.3 - "@figma/code-connect@1.4.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)": + "@figma/code-connect@1.4.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)": dependencies: boxen: 5.1.1 chalk: 4.1.2 @@ -22258,7 +22150,7 @@ snapshots: glob: 11.1.0 jsdom: 24.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) lodash: 4.17.23 - minimatch: 9.0.5 + minimatch: 9.0.9 ora: 5.4.1 parse5: 7.3.0 prettier: 2.8.8 @@ -22266,7 +22158,7 @@ snapshots: strip-ansi: 6.0.1 ts-morph: 27.0.2 typescript: 5.9.3 - undici: 7.24.4 + undici: 7.22.0 zod: 3.25.58 zod-validation-error: 3.5.4(zod@3.25.58) transitivePeerDependencies: @@ -22302,45 +22194,45 @@ snapshots: "@floating-ui/utils@0.2.10": {} - "@gemini-wallet/core@0.3.2(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))": + "@gemini-wallet/core@0.3.2(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))": dependencies: "@metamask/rpc-errors": 7.0.2 eventemitter3: 5.0.1 - viem: 2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + viem: 2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) transitivePeerDependencies: - supports-color - "@graphql-codegen/add@5.0.3(graphql@16.12.0)": + "@graphql-codegen/add@5.0.3(graphql@16.13.1)": dependencies: - "@graphql-codegen/plugin-helpers": 5.1.1(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-codegen/plugin-helpers": 5.1.1(graphql@16.13.1) + graphql: 16.13.1 tslib: 2.6.3 - "@graphql-codegen/cli@5.0.7(@parcel/watcher@2.5.6)(@types/node@20.19.33)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.12.0)(typescript@5.9.3)(utf-8-validate@5.0.10)": + "@graphql-codegen/cli@5.0.7(@parcel/watcher@2.5.6)(@types/node@20.19.37)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.13.1)(typescript@5.9.3)(utf-8-validate@5.0.10)": dependencies: "@babel/generator": 7.28.0 "@babel/template": 7.27.2 "@babel/types": 7.28.1 - "@graphql-codegen/client-preset": 4.8.3(graphql@16.12.0) - "@graphql-codegen/core": 4.0.2(graphql@16.12.0) - "@graphql-codegen/plugin-helpers": 5.1.1(graphql@16.12.0) - "@graphql-tools/apollo-engine-loader": 8.0.22(graphql@16.12.0) - "@graphql-tools/code-file-loader": 8.1.22(graphql@16.12.0) - "@graphql-tools/git-loader": 8.0.26(graphql@16.12.0) - "@graphql-tools/github-loader": 8.0.22(@types/node@20.19.33)(graphql@16.12.0) - "@graphql-tools/graphql-file-loader": 8.0.22(graphql@16.12.0) - "@graphql-tools/json-file-loader": 8.0.20(graphql@16.12.0) - "@graphql-tools/load": 8.1.2(graphql@16.12.0) - "@graphql-tools/prisma-loader": 8.0.17(@types/node@20.19.33)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.12.0)(utf-8-validate@5.0.10) - "@graphql-tools/url-loader": 8.0.33(@types/node@20.19.33)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.12.0)(utf-8-validate@5.0.10) - "@graphql-tools/utils": 10.9.1(graphql@16.12.0) + "@graphql-codegen/client-preset": 4.8.3(graphql@16.13.1) + "@graphql-codegen/core": 4.0.2(graphql@16.13.1) + "@graphql-codegen/plugin-helpers": 5.1.1(graphql@16.13.1) + "@graphql-tools/apollo-engine-loader": 8.0.22(graphql@16.13.1) + "@graphql-tools/code-file-loader": 8.1.22(graphql@16.13.1) + "@graphql-tools/git-loader": 8.0.26(graphql@16.13.1) + "@graphql-tools/github-loader": 8.0.22(@types/node@20.19.37)(graphql@16.13.1) + "@graphql-tools/graphql-file-loader": 8.0.22(graphql@16.13.1) + "@graphql-tools/json-file-loader": 8.0.20(graphql@16.13.1) + "@graphql-tools/load": 8.1.2(graphql@16.13.1) + "@graphql-tools/prisma-loader": 8.0.17(@types/node@20.19.37)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.13.1)(utf-8-validate@5.0.10) + "@graphql-tools/url-loader": 8.0.33(@types/node@20.19.37)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.13.1)(utf-8-validate@5.0.10) + "@graphql-tools/utils": 10.9.1(graphql@16.13.1) "@whatwg-node/fetch": 0.10.9 chalk: 4.1.2 cosmiconfig: 8.3.6(typescript@5.9.3) debounce: 1.2.1 detect-indent: 6.1.0 - graphql: 16.12.0 - graphql-config: 5.1.5(@types/node@20.19.33)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.12.0)(typescript@5.9.3)(utf-8-validate@5.0.10) + graphql: 16.13.1 + graphql-config: 5.1.5(@types/node@20.19.37)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.13.1)(typescript@5.9.3)(utf-8-validate@5.0.10) inquirer: 8.2.6 is-glob: 4.0.3 jiti: 1.21.7 @@ -22369,264 +22261,215 @@ snapshots: - typescript - utf-8-validate - "@graphql-codegen/client-preset@4.8.3(graphql@16.12.0)": + "@graphql-codegen/client-preset@4.8.3(graphql@16.13.1)": dependencies: "@babel/helper-plugin-utils": 7.27.1 "@babel/template": 7.28.6 - "@graphql-codegen/add": 5.0.3(graphql@16.12.0) - "@graphql-codegen/gql-tag-operations": 4.0.17(graphql@16.12.0) - "@graphql-codegen/plugin-helpers": 5.1.1(graphql@16.12.0) - "@graphql-codegen/typed-document-node": 5.1.2(graphql@16.12.0) - "@graphql-codegen/typescript": 4.1.6(graphql@16.12.0) - "@graphql-codegen/typescript-operations": 4.6.1(graphql@16.12.0) - "@graphql-codegen/visitor-plugin-common": 5.8.0(graphql@16.12.0) - "@graphql-tools/documents": 1.0.1(graphql@16.12.0) - "@graphql-tools/utils": 10.9.1(graphql@16.12.0) - "@graphql-typed-document-node/core": 3.2.0(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-codegen/add": 5.0.3(graphql@16.13.1) + "@graphql-codegen/gql-tag-operations": 4.0.17(graphql@16.13.1) + "@graphql-codegen/plugin-helpers": 5.1.1(graphql@16.13.1) + "@graphql-codegen/typed-document-node": 5.1.2(graphql@16.13.1) + "@graphql-codegen/typescript": 4.1.6(graphql@16.13.1) + "@graphql-codegen/typescript-operations": 4.6.1(graphql@16.13.1) + "@graphql-codegen/visitor-plugin-common": 5.8.0(graphql@16.13.1) + "@graphql-tools/documents": 1.0.1(graphql@16.13.1) + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) + "@graphql-typed-document-node/core": 3.2.0(graphql@16.13.1) + graphql: 16.13.1 tslib: 2.6.3 transitivePeerDependencies: - encoding - "@graphql-codegen/core@4.0.2(graphql@16.12.0)": + "@graphql-codegen/core@4.0.2(graphql@16.13.1)": dependencies: - "@graphql-codegen/plugin-helpers": 5.1.1(graphql@16.12.0) - "@graphql-tools/schema": 10.0.25(graphql@16.12.0) - "@graphql-tools/utils": 10.9.1(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-codegen/plugin-helpers": 5.1.1(graphql@16.13.1) + "@graphql-tools/schema": 10.0.25(graphql@16.13.1) + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) + graphql: 16.13.1 tslib: 2.6.3 - "@graphql-codegen/core@5.0.0(graphql@16.12.0)": + "@graphql-codegen/core@5.0.1(graphql@16.13.1)": dependencies: - "@graphql-codegen/plugin-helpers": 6.1.0(graphql@16.12.0) - "@graphql-tools/schema": 10.0.30(graphql@16.12.0) - "@graphql-tools/utils": 10.11.0(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-codegen/plugin-helpers": 6.1.1(graphql@16.13.1) + "@graphql-tools/schema": 10.0.31(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + graphql: 16.13.1 tslib: 2.6.3 - "@graphql-codegen/gql-tag-operations@4.0.17(graphql@16.12.0)": + "@graphql-codegen/gql-tag-operations@4.0.17(graphql@16.13.1)": dependencies: - "@graphql-codegen/plugin-helpers": 5.1.1(graphql@16.12.0) - "@graphql-codegen/visitor-plugin-common": 5.8.0(graphql@16.12.0) - "@graphql-tools/utils": 10.9.1(graphql@16.12.0) + "@graphql-codegen/plugin-helpers": 5.1.1(graphql@16.13.1) + "@graphql-codegen/visitor-plugin-common": 5.8.0(graphql@16.13.1) + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) auto-bind: 4.0.0 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.6.3 transitivePeerDependencies: - encoding - "@graphql-codegen/plugin-helpers@3.1.2(graphql@16.12.0)": + "@graphql-codegen/plugin-helpers@5.1.1(graphql@16.13.1)": dependencies: - "@graphql-tools/utils": 9.2.1(graphql@16.12.0) + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) change-case-all: 1.0.15 common-tags: 1.8.2 - graphql: 16.12.0 + graphql: 16.13.1 import-from: 4.0.0 - lodash: 4.17.21 - tslib: 2.4.1 + lodash: 4.17.23 + tslib: 2.6.3 - "@graphql-codegen/plugin-helpers@5.1.1(graphql@16.12.0)": + "@graphql-codegen/plugin-helpers@6.1.1(graphql@16.13.1)": dependencies: - "@graphql-tools/utils": 10.9.1(graphql@16.12.0) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) change-case-all: 1.0.15 common-tags: 1.8.2 - graphql: 16.12.0 + graphql: 16.13.1 import-from: 4.0.0 - lodash: 4.17.21 + lodash: 4.17.23 tslib: 2.6.3 - "@graphql-codegen/plugin-helpers@6.1.0(graphql@16.12.0)": + "@graphql-codegen/plugin-helpers@6.2.0(graphql@16.13.1)": dependencies: - "@graphql-tools/utils": 10.11.0(graphql@16.12.0) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) change-case-all: 1.0.15 common-tags: 1.8.2 - graphql: 16.12.0 + graphql: 16.13.1 import-from: 4.0.0 - lodash: 4.17.21 + lodash: 4.17.23 tslib: 2.6.3 - "@graphql-codegen/schema-ast@4.1.0(graphql@16.12.0)": + "@graphql-codegen/schema-ast@4.1.0(graphql@16.13.1)": dependencies: - "@graphql-codegen/plugin-helpers": 5.1.1(graphql@16.12.0) - "@graphql-tools/utils": 10.11.0(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-codegen/plugin-helpers": 5.1.1(graphql@16.13.1) + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) + graphql: 16.13.1 tslib: 2.6.3 - "@graphql-codegen/schema-ast@5.0.0(graphql@16.12.0)": + "@graphql-codegen/schema-ast@5.0.1(graphql@16.13.1)": dependencies: - "@graphql-codegen/plugin-helpers": 6.1.0(graphql@16.12.0) - "@graphql-tools/utils": 10.11.0(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-codegen/plugin-helpers": 6.1.1(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + graphql: 16.13.1 tslib: 2.6.3 - "@graphql-codegen/typed-document-node@5.1.2(graphql@16.12.0)": + "@graphql-codegen/typed-document-node@5.1.2(graphql@16.13.1)": dependencies: - "@graphql-codegen/plugin-helpers": 5.1.1(graphql@16.12.0) - "@graphql-codegen/visitor-plugin-common": 5.8.0(graphql@16.12.0) + "@graphql-codegen/plugin-helpers": 5.1.1(graphql@16.13.1) + "@graphql-codegen/visitor-plugin-common": 5.8.0(graphql@16.13.1) auto-bind: 4.0.0 change-case-all: 1.0.15 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.6.3 transitivePeerDependencies: - encoding - "@graphql-codegen/typed-document-node@6.1.5(graphql@16.12.0)": + "@graphql-codegen/typed-document-node@6.1.7(graphql@16.13.1)": dependencies: - "@graphql-codegen/plugin-helpers": 6.1.0(graphql@16.12.0) - "@graphql-codegen/visitor-plugin-common": 6.2.2(graphql@16.12.0) + "@graphql-codegen/plugin-helpers": 6.1.1(graphql@16.13.1) + "@graphql-codegen/visitor-plugin-common": 6.2.4(graphql@16.13.1) auto-bind: 4.0.0 change-case-all: 1.0.15 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.6.3 - transitivePeerDependencies: - - encoding - "@graphql-codegen/typescript-generic-sdk@4.1.0(graphql-tag@2.12.6(graphql@16.12.0))(graphql@16.12.0)": + "@graphql-codegen/typescript-generic-sdk@5.0.0(graphql-tag@2.12.6(graphql@16.13.1))(graphql@16.13.1)": dependencies: - "@graphql-codegen/plugin-helpers": 3.1.2(graphql@16.12.0) - "@graphql-codegen/visitor-plugin-common": 2.13.8(graphql@16.12.0) + "@graphql-codegen/plugin-helpers": 6.1.1(graphql@16.13.1) + "@graphql-codegen/visitor-plugin-common": 6.2.4(graphql@16.13.1) auto-bind: 4.0.0 - graphql: 16.12.0 - graphql-tag: 2.12.6(graphql@16.12.0) + graphql: 16.13.1 + graphql-tag: 2.12.6(graphql@16.13.1) tslib: 2.8.1 - transitivePeerDependencies: - - encoding - - supports-color - "@graphql-codegen/typescript-operations@4.6.1(graphql@16.12.0)": + "@graphql-codegen/typescript-operations@4.6.1(graphql@16.13.1)": dependencies: - "@graphql-codegen/plugin-helpers": 5.1.1(graphql@16.12.0) - "@graphql-codegen/typescript": 4.1.6(graphql@16.12.0) - "@graphql-codegen/visitor-plugin-common": 5.8.0(graphql@16.12.0) + "@graphql-codegen/plugin-helpers": 5.1.1(graphql@16.13.1) + "@graphql-codegen/typescript": 4.1.6(graphql@16.13.1) + "@graphql-codegen/visitor-plugin-common": 5.8.0(graphql@16.13.1) auto-bind: 4.0.0 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.6.3 transitivePeerDependencies: - encoding - "@graphql-codegen/typescript-operations@5.0.6(graphql@16.12.0)": + "@graphql-codegen/typescript-operations@5.0.9(graphql@16.13.1)": dependencies: - "@graphql-codegen/plugin-helpers": 6.1.0(graphql@16.12.0) - "@graphql-codegen/typescript": 5.0.6(graphql@16.12.0) - "@graphql-codegen/visitor-plugin-common": 6.2.1(graphql@16.12.0) + "@graphql-codegen/plugin-helpers": 6.1.1(graphql@16.13.1) + "@graphql-codegen/typescript": 5.0.9(graphql@16.13.1) + "@graphql-codegen/visitor-plugin-common": 6.2.4(graphql@16.13.1) auto-bind: 4.0.0 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.6.3 - transitivePeerDependencies: - - encoding - "@graphql-codegen/typescript-react-apollo@4.4.0(graphql@16.12.0)": + "@graphql-codegen/typescript-react-apollo@4.4.1(graphql@16.13.1)": dependencies: - "@graphql-codegen/plugin-helpers": 3.1.2(graphql@16.12.0) - "@graphql-codegen/visitor-plugin-common": 2.13.8(graphql@16.12.0) + "@graphql-codegen/plugin-helpers": 6.2.0(graphql@16.13.1) + "@graphql-codegen/visitor-plugin-common": 6.2.4(graphql@16.13.1) auto-bind: 4.0.0 change-case-all: 1.0.15 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.8.1 - transitivePeerDependencies: - - encoding - - supports-color - "@graphql-codegen/typescript-resolvers@5.1.4(graphql@16.12.0)": + "@graphql-codegen/typescript-resolvers@5.1.7(graphql@16.13.1)": dependencies: - "@graphql-codegen/plugin-helpers": 6.1.0(graphql@16.12.0) - "@graphql-codegen/typescript": 5.0.6(graphql@16.12.0) - "@graphql-codegen/visitor-plugin-common": 6.2.1(graphql@16.12.0) - "@graphql-tools/utils": 10.11.0(graphql@16.12.0) + "@graphql-codegen/plugin-helpers": 6.1.1(graphql@16.13.1) + "@graphql-codegen/typescript": 5.0.9(graphql@16.13.1) + "@graphql-codegen/visitor-plugin-common": 6.2.4(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) auto-bind: 4.0.0 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.6.3 - transitivePeerDependencies: - - encoding - "@graphql-codegen/typescript@4.1.6(graphql@16.12.0)": + "@graphql-codegen/typescript@4.1.6(graphql@16.13.1)": dependencies: - "@graphql-codegen/plugin-helpers": 5.1.1(graphql@16.12.0) - "@graphql-codegen/schema-ast": 4.1.0(graphql@16.12.0) - "@graphql-codegen/visitor-plugin-common": 5.8.0(graphql@16.12.0) + "@graphql-codegen/plugin-helpers": 5.1.1(graphql@16.13.1) + "@graphql-codegen/schema-ast": 4.1.0(graphql@16.13.1) + "@graphql-codegen/visitor-plugin-common": 5.8.0(graphql@16.13.1) auto-bind: 4.0.0 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.6.3 transitivePeerDependencies: - encoding - "@graphql-codegen/typescript@5.0.6(graphql@16.12.0)": + "@graphql-codegen/typescript@5.0.9(graphql@16.13.1)": dependencies: - "@graphql-codegen/plugin-helpers": 6.1.0(graphql@16.12.0) - "@graphql-codegen/schema-ast": 5.0.0(graphql@16.12.0) - "@graphql-codegen/visitor-plugin-common": 6.2.1(graphql@16.12.0) + "@graphql-codegen/plugin-helpers": 6.1.1(graphql@16.13.1) + "@graphql-codegen/schema-ast": 5.0.1(graphql@16.13.1) + "@graphql-codegen/visitor-plugin-common": 6.2.4(graphql@16.13.1) auto-bind: 4.0.0 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.6.3 - transitivePeerDependencies: - - encoding - - "@graphql-codegen/visitor-plugin-common@2.13.8(graphql@16.12.0)": - dependencies: - "@graphql-codegen/plugin-helpers": 3.1.2(graphql@16.12.0) - "@graphql-tools/optimize": 1.4.0(graphql@16.12.0) - "@graphql-tools/relay-operation-optimizer": 6.5.18(graphql@16.12.0) - "@graphql-tools/utils": 9.2.1(graphql@16.12.0) - auto-bind: 4.0.0 - change-case-all: 1.0.15 - dependency-graph: 0.11.0 - graphql: 16.12.0 - graphql-tag: 2.12.6(graphql@16.12.0) - parse-filepath: 1.0.2 - tslib: 2.4.1 - transitivePeerDependencies: - - encoding - - supports-color - "@graphql-codegen/visitor-plugin-common@5.8.0(graphql@16.12.0)": + "@graphql-codegen/visitor-plugin-common@5.8.0(graphql@16.13.1)": dependencies: - "@graphql-codegen/plugin-helpers": 5.1.1(graphql@16.12.0) - "@graphql-tools/optimize": 2.0.0(graphql@16.12.0) - "@graphql-tools/relay-operation-optimizer": 7.0.21(graphql@16.12.0) - "@graphql-tools/utils": 10.11.0(graphql@16.12.0) + "@graphql-codegen/plugin-helpers": 5.1.1(graphql@16.13.1) + "@graphql-tools/optimize": 2.0.0(graphql@16.13.1) + "@graphql-tools/relay-operation-optimizer": 7.0.21(graphql@16.13.1) + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) auto-bind: 4.0.0 change-case-all: 1.0.15 dependency-graph: 0.11.0 - graphql: 16.12.0 - graphql-tag: 2.12.6(graphql@16.12.0) - parse-filepath: 1.0.2 - tslib: 2.6.3 - transitivePeerDependencies: - - encoding - - "@graphql-codegen/visitor-plugin-common@6.2.1(graphql@16.12.0)": - dependencies: - "@graphql-codegen/plugin-helpers": 6.1.0(graphql@16.12.0) - "@graphql-tools/optimize": 2.0.0(graphql@16.12.0) - "@graphql-tools/relay-operation-optimizer": 7.0.26(graphql@16.12.0) - "@graphql-tools/utils": 10.11.0(graphql@16.12.0) - auto-bind: 4.0.0 - change-case-all: 1.0.15 - dependency-graph: 1.0.0 - graphql: 16.12.0 - graphql-tag: 2.12.6(graphql@16.12.0) + graphql: 16.13.1 + graphql-tag: 2.12.6(graphql@16.13.1) parse-filepath: 1.0.2 tslib: 2.6.3 transitivePeerDependencies: - encoding - "@graphql-codegen/visitor-plugin-common@6.2.2(graphql@16.12.0)": + "@graphql-codegen/visitor-plugin-common@6.2.4(graphql@16.13.1)": dependencies: - "@graphql-codegen/plugin-helpers": 6.1.0(graphql@16.12.0) - "@graphql-tools/optimize": 2.0.0(graphql@16.12.0) - "@graphql-tools/relay-operation-optimizer": 7.0.27(graphql@16.12.0) - "@graphql-tools/utils": 10.11.0(graphql@16.12.0) + "@graphql-codegen/plugin-helpers": 6.1.1(graphql@16.13.1) + "@graphql-tools/optimize": 2.0.0(graphql@16.13.1) + "@graphql-tools/relay-operation-optimizer": 7.1.1(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) auto-bind: 4.0.0 change-case-all: 1.0.15 dependency-graph: 1.0.0 - graphql: 16.12.0 - graphql-tag: 2.12.6(graphql@16.12.0) + graphql: 16.13.1 + graphql-tag: 2.12.6(graphql@16.13.1) parse-filepath: 1.0.2 tslib: 2.6.3 - transitivePeerDependencies: - - encoding - "@graphql-hive/logger@1.0.10": {} + "@graphql-hive/logger@1.1.0": {} "@graphql-hive/pubsub@2.1.1": dependencies: @@ -22638,103 +22481,107 @@ snapshots: "@graphql-hive/signal@2.0.0": {} - "@graphql-inspector/core@7.1.2(graphql@16.12.0)": + "@graphql-inspector/core@7.1.2(graphql@16.13.1)": dependencies: dependency-graph: 1.0.0 - graphql: 16.12.0 + graphql: 16.13.1 object-inspect: 1.13.2 tslib: 2.6.2 - "@graphql-mesh/cache-inmemory-lru@0.8.23(graphql@16.12.0)": + "@graphql-mesh/cache-inmemory-lru@0.8.26(graphql@16.13.1)": dependencies: - "@graphql-mesh/types": 0.104.20(graphql@16.12.0) - "@graphql-mesh/utils": 0.104.22(graphql@16.12.0) + "@graphql-mesh/types": 0.104.23(graphql@16.13.1) + "@graphql-mesh/utils": 0.104.25(graphql@16.13.1) "@whatwg-node/disposablestack": 0.0.6 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.8.1 transitivePeerDependencies: - "@nats-io/nats-core" - ioredis - "@graphql-mesh/cache-localforage@0.105.23(graphql@16.12.0)": + "@graphql-mesh/cache-localforage@0.105.26(graphql@16.13.1)": dependencies: - "@graphql-mesh/cache-inmemory-lru": 0.8.23(graphql@16.12.0) - "@graphql-mesh/types": 0.104.20(graphql@16.12.0) - "@graphql-mesh/utils": 0.104.22(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-mesh/cache-inmemory-lru": 0.8.26(graphql@16.13.1) + "@graphql-mesh/types": 0.104.23(graphql@16.13.1) + "@graphql-mesh/utils": 0.104.25(graphql@16.13.1) + graphql: 16.13.1 localforage: 1.10.0 tslib: 2.8.1 transitivePeerDependencies: - "@nats-io/nats-core" - ioredis - "@graphql-mesh/cli@0.100.27(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.12.0)(utf-8-validate@5.0.10)": - dependencies: - "@graphql-codegen/core": 5.0.0(graphql@16.12.0) - "@graphql-codegen/typed-document-node": 6.1.5(graphql@16.12.0) - "@graphql-codegen/typescript": 5.0.6(graphql@16.12.0) - "@graphql-codegen/typescript-generic-sdk": 4.1.0(graphql-tag@2.12.6(graphql@16.12.0))(graphql@16.12.0) - "@graphql-codegen/typescript-operations": 5.0.6(graphql@16.12.0) - "@graphql-codegen/typescript-resolvers": 5.1.4(graphql@16.12.0) - "@graphql-mesh/config": 0.108.27(graphql@16.12.0) - "@graphql-mesh/cross-helpers": 0.4.12(graphql@16.12.0) - "@graphql-mesh/http": 0.106.25(graphql@16.12.0) - "@graphql-mesh/include": 0.3.22(graphql@16.12.0) - "@graphql-mesh/runtime": 0.106.24(graphql@16.12.0) - "@graphql-mesh/store": 0.104.24(graphql@16.12.0) - "@graphql-mesh/types": 0.104.20(graphql@16.12.0) - "@graphql-mesh/utils": 0.104.22(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) + "@graphql-mesh/cli@0.100.36(@types/node@25.4.0)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.13.1)(utf-8-validate@5.0.10)": + dependencies: + "@graphql-codegen/core": 5.0.1(graphql@16.13.1) + "@graphql-codegen/typed-document-node": 6.1.7(graphql@16.13.1) + "@graphql-codegen/typescript": 5.0.9(graphql@16.13.1) + "@graphql-codegen/typescript-generic-sdk": 5.0.0(graphql-tag@2.12.6(graphql@16.13.1))(graphql@16.13.1) + "@graphql-codegen/typescript-operations": 5.0.9(graphql@16.13.1) + "@graphql-codegen/typescript-resolvers": 5.1.7(graphql@16.13.1) + "@graphql-mesh/config": 0.108.31(graphql@16.13.1) + "@graphql-mesh/cross-helpers": 0.4.12(graphql@16.13.1) + "@graphql-mesh/http": 0.106.29(graphql@16.13.1) + "@graphql-mesh/include": 0.3.26(graphql@16.13.1) + "@graphql-mesh/incontext-sdk-codegen": 0.0.2(@types/node@25.4.0)(graphql@16.13.1) + "@graphql-mesh/runtime": 0.106.27(graphql@16.13.1) + "@graphql-mesh/store": 0.104.27(graphql@16.13.1) + "@graphql-mesh/types": 0.104.23(graphql@16.13.1) + "@graphql-mesh/utils": 0.104.25(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) "@whatwg-node/promise-helpers": 1.3.2 - ajv: 8.17.1 + ajv: 8.18.0 change-case: 4.1.2 - cosmiconfig: 9.0.0(typescript@5.9.3) - dotenv: 17.2.4 - graphql: 16.12.0 - graphql-import-node: 0.0.5(graphql@16.12.0) - graphql-tag: 2.12.6(graphql@16.12.0) - graphql-ws: 6.0.7(crossws@0.3.5)(graphql@16.12.0)(ws@8.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + cosmiconfig: 9.0.1(typescript@5.9.3) + dotenv: 17.3.1 + graphql: 16.13.1 + graphql-import-node: 0.0.5(graphql@16.13.1) + graphql-tag: 2.12.6(graphql@16.13.1) + graphql-ws: 6.0.7(crossws@0.3.5)(graphql@16.13.1)(ws@8.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) json-bigint-patch: 0.0.9 json5: 2.2.3 mkdirp: 3.0.1 open: 7.4.2 pascal-case: 3.1.2 - rimraf: 6.1.2 + rimraf: 6.1.3 tslib: 2.8.1 typescript: 5.9.3 ws: 8.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) yargs: 17.7.2 transitivePeerDependencies: - "@fastify/websocket" + - "@logtape/logtape" - "@nats-io/nats-core" + - "@types/node" - bufferutil - crossws - - encoding - graphql-sock - ioredis + - pino - supports-color - utf-8-validate + - winston - "@graphql-mesh/config@0.108.27(graphql@16.12.0)": - dependencies: - "@envelop/core": 5.4.0 - "@graphql-mesh/cache-localforage": 0.105.23(graphql@16.12.0) - "@graphql-mesh/cross-helpers": 0.4.12(graphql@16.12.0) - "@graphql-mesh/merger-bare": 0.105.24(graphql@16.12.0) - "@graphql-mesh/merger-stitching": 0.105.24(graphql@16.12.0) - "@graphql-mesh/runtime": 0.106.24(graphql@16.12.0) - "@graphql-mesh/store": 0.104.24(graphql@16.12.0) - "@graphql-mesh/types": 0.104.20(graphql@16.12.0) - "@graphql-mesh/utils": 0.104.22(graphql@16.12.0) - "@graphql-tools/code-file-loader": 8.1.28(graphql@16.12.0) - "@graphql-tools/graphql-file-loader": 8.1.9(graphql@16.12.0) - "@graphql-tools/load": 8.1.8(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) - "@graphql-yoga/plugin-persisted-operations": 3.18.0(graphql-yoga@5.18.0(graphql@16.12.0))(graphql@16.12.0) - "@whatwg-node/fetch": 0.10.9 + "@graphql-mesh/config@0.108.31(graphql@16.13.1)": + dependencies: + "@envelop/core": 5.5.1 + "@graphql-mesh/cache-localforage": 0.105.26(graphql@16.13.1) + "@graphql-mesh/cross-helpers": 0.4.12(graphql@16.13.1) + "@graphql-mesh/merger-bare": 0.105.27(graphql@16.13.1) + "@graphql-mesh/merger-stitching": 0.105.27(graphql@16.13.1) + "@graphql-mesh/runtime": 0.106.27(graphql@16.13.1) + "@graphql-mesh/store": 0.104.27(graphql@16.13.1) + "@graphql-mesh/types": 0.104.23(graphql@16.13.1) + "@graphql-mesh/utils": 0.104.25(graphql@16.13.1) + "@graphql-tools/code-file-loader": 8.1.28(graphql@16.13.1) + "@graphql-tools/graphql-file-loader": 8.1.12(graphql@16.13.1) + "@graphql-tools/load": 8.1.8(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + "@graphql-yoga/plugin-persisted-operations": 3.18.1(graphql-yoga@5.18.1(graphql@16.13.1))(graphql@16.13.1) + "@whatwg-node/fetch": 0.10.13 camel-case: 4.1.2 - graphql: 16.12.0 - graphql-yoga: 5.18.0(graphql@16.12.0) + graphql: 16.13.1 + graphql-yoga: 5.18.1(graphql@16.13.1) param-case: 3.0.4 pascal-case: 3.1.2 tslib: 2.8.1 @@ -22743,23 +22590,23 @@ snapshots: - ioredis - supports-color - "@graphql-mesh/cross-helpers@0.4.12(graphql@16.12.0)": + "@graphql-mesh/cross-helpers@0.4.12(graphql@16.13.1)": dependencies: - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + graphql: 16.13.1 path-browserify: 1.0.1 - "@graphql-mesh/fusion-composition@0.8.27(graphql@16.12.0)": + "@graphql-mesh/fusion-composition@0.8.32(graphql@16.13.1)": dependencies: - "@graphql-mesh/utils": 0.104.22(graphql@16.12.0) - "@graphql-tools/schema": 10.0.31(graphql@16.12.0) - "@graphql-tools/stitching-directives": 4.0.12(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) - "@theguild/federation-composition": 0.21.3(graphql@16.12.0) + "@graphql-mesh/utils": 0.104.25(graphql@16.13.1) + "@graphql-tools/schema": 10.0.31(graphql@16.13.1) + "@graphql-tools/stitching-directives": 4.0.15(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + "@theguild/federation-composition": 0.22.0(graphql@16.13.1) change-case: 4.1.2 - graphql: 16.12.0 - graphql-scalars: 1.25.0(graphql@16.12.0) - minimatch: 10.1.2 + graphql: 16.13.1 + graphql-scalars: 1.25.0(graphql@16.13.1) + minimatch: 10.2.4 pluralize: 8.0.0 snake-case: 3.0.4 tslib: 2.8.1 @@ -22768,20 +22615,51 @@ snapshots: - ioredis - supports-color - "@graphql-mesh/graphql@0.104.24(@types/node@25.5.0)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.12.0)(utf-8-validate@5.0.10)": - dependencies: - "@graphql-mesh/cross-helpers": 0.4.12(graphql@16.12.0) - "@graphql-mesh/store": 0.104.24(graphql@16.12.0) - "@graphql-mesh/string-interpolation": 0.5.11(graphql@16.12.0) - "@graphql-mesh/types": 0.104.20(graphql@16.12.0) - "@graphql-mesh/utils": 0.104.22(graphql@16.12.0) - "@graphql-tools/delegate": 12.0.6(graphql@16.12.0) - "@graphql-tools/federation": 4.2.10(@types/node@25.5.0)(graphql@16.12.0) - "@graphql-tools/merge": 9.1.7(graphql@16.12.0) - "@graphql-tools/url-loader": 9.0.6(@types/node@25.5.0)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.12.0)(utf-8-validate@5.0.10) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) + "@graphql-mesh/fusion-runtime@1.8.1(@types/node@25.4.0)(graphql@16.13.1)": + dependencies: + "@envelop/core": 5.5.1 + "@envelop/instrumentation": 1.0.0 + "@graphql-hive/logger": 1.1.0 + "@graphql-mesh/cross-helpers": 0.4.12(graphql@16.13.1) + "@graphql-mesh/transport-common": 1.0.15(graphql@16.13.1) + "@graphql-mesh/types": 0.104.23(graphql@16.13.1) + "@graphql-mesh/utils": 0.104.25(graphql@16.13.1) + "@graphql-tools/batch-execute": 10.0.7(graphql@16.13.1) + "@graphql-tools/delegate": 12.0.12(graphql@16.13.1) + "@graphql-tools/executor": 1.5.1(graphql@16.13.1) + "@graphql-tools/federation": 4.3.1(@types/node@25.4.0)(graphql@16.13.1) + "@graphql-tools/merge": 9.1.7(graphql@16.13.1) + "@graphql-tools/stitch": 10.1.16(graphql@16.13.1) + "@graphql-tools/stitching-directives": 4.0.18(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + "@graphql-tools/wrap": 11.1.12(graphql@16.13.1) + "@whatwg-node/disposablestack": 0.0.6 + "@whatwg-node/promise-helpers": 1.3.2 + graphql: 16.13.1 + graphql-yoga: 5.18.1(graphql@16.13.1) + tslib: 2.8.1 + transitivePeerDependencies: + - "@logtape/logtape" + - "@nats-io/nats-core" + - "@types/node" + - ioredis + - pino + - winston + + "@graphql-mesh/graphql@0.104.24(@types/node@25.4.0)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.13.1)(utf-8-validate@5.0.10)": + dependencies: + "@graphql-mesh/cross-helpers": 0.4.12(graphql@16.13.1) + "@graphql-mesh/store": 0.104.27(graphql@16.13.1) + "@graphql-mesh/string-interpolation": 0.5.11(graphql@16.13.1) + "@graphql-mesh/types": 0.104.23(graphql@16.13.1) + "@graphql-mesh/utils": 0.104.25(graphql@16.13.1) + "@graphql-tools/delegate": 12.0.9(graphql@16.13.1) + "@graphql-tools/federation": 4.2.10(@types/node@25.4.0)(graphql@16.13.1) + "@graphql-tools/merge": 9.1.7(graphql@16.13.1) + "@graphql-tools/url-loader": 9.0.6(@types/node@25.4.0)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.13.1)(utf-8-validate@5.0.10) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) "@whatwg-node/promise-helpers": 1.3.2 - graphql: 16.12.0 + graphql: 16.13.1 lodash.get: 4.4.2 tslib: 2.8.1 transitivePeerDependencies: @@ -22793,70 +22671,94 @@ snapshots: - ioredis - utf-8-validate - "@graphql-mesh/http@0.106.25(graphql@16.12.0)": + "@graphql-mesh/http@0.106.29(graphql@16.13.1)": dependencies: - "@graphql-mesh/cross-helpers": 0.4.12(graphql@16.12.0) - "@graphql-mesh/runtime": 0.106.24(graphql@16.12.0) - "@graphql-mesh/types": 0.104.20(graphql@16.12.0) - "@graphql-mesh/utils": 0.104.22(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) + "@graphql-mesh/cross-helpers": 0.4.12(graphql@16.13.1) + "@graphql-mesh/runtime": 0.106.27(graphql@16.13.1) + "@graphql-mesh/types": 0.104.23(graphql@16.13.1) + "@graphql-mesh/utils": 0.104.25(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) "@whatwg-node/promise-helpers": 1.3.2 "@whatwg-node/server": 0.10.18 - graphql: 16.12.0 - graphql-yoga: 5.18.0(graphql@16.12.0) + graphql: 16.13.1 + graphql-yoga: 5.18.1(graphql@16.13.1) tslib: 2.8.1 transitivePeerDependencies: - "@nats-io/nats-core" - ioredis - "@graphql-mesh/include@0.3.22(graphql@16.12.0)": + "@graphql-mesh/include@0.3.26(graphql@16.13.1)": dependencies: - "@graphql-mesh/utils": 0.104.22(graphql@16.12.0) - dotenv: 17.2.4 + "@graphql-mesh/utils": 0.104.25(graphql@16.13.1) + dotenv: 17.3.1 get-tsconfig: 4.13.6 - graphql: 16.12.0 + graphql: 16.13.1 jiti: 2.6.1 sucrase: 3.35.1 transitivePeerDependencies: - "@nats-io/nats-core" - ioredis - "@graphql-mesh/merger-bare@0.105.24(graphql@16.12.0)": + "@graphql-mesh/incontext-sdk-codegen@0.0.2(@types/node@25.4.0)(graphql@16.13.1)": + dependencies: + "@graphql-codegen/core": 5.0.1(graphql@16.13.1) + "@graphql-codegen/plugin-helpers": 6.2.0(graphql@16.13.1) + "@graphql-codegen/typescript": 5.0.9(graphql@16.13.1) + "@graphql-mesh/cross-helpers": 0.4.12(graphql@16.13.1) + "@graphql-mesh/fusion-runtime": 1.8.1(@types/node@25.4.0)(graphql@16.13.1) + "@graphql-mesh/transport-common": 1.0.15(graphql@16.13.1) + "@graphql-mesh/types": 0.104.23(graphql@16.13.1) + "@graphql-mesh/utils": 0.104.25(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + "@graphql-tools/wrap": 11.1.9(graphql@16.13.1) + graphql: 16.13.1 + graphql-scalars: 1.25.0(graphql@16.13.1) + pascal-case: 3.1.2 + tslib: 2.8.1 + transitivePeerDependencies: + - "@logtape/logtape" + - "@nats-io/nats-core" + - "@types/node" + - ioredis + - pino + - winston + + "@graphql-mesh/merger-bare@0.105.27(graphql@16.13.1)": dependencies: - "@graphql-mesh/merger-stitching": 0.105.24(graphql@16.12.0) - "@graphql-mesh/types": 0.104.20(graphql@16.12.0) - "@graphql-mesh/utils": 0.104.22(graphql@16.12.0) - "@graphql-tools/schema": 10.0.31(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-mesh/merger-stitching": 0.105.27(graphql@16.13.1) + "@graphql-mesh/types": 0.104.23(graphql@16.13.1) + "@graphql-mesh/utils": 0.104.25(graphql@16.13.1) + "@graphql-tools/schema": 10.0.31(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + graphql: 16.13.1 tslib: 2.8.1 transitivePeerDependencies: - "@nats-io/nats-core" - ioredis - "@graphql-mesh/merger-stitching@0.105.24(graphql@16.12.0)": + "@graphql-mesh/merger-stitching@0.105.27(graphql@16.13.1)": dependencies: - "@graphql-mesh/store": 0.104.24(graphql@16.12.0) - "@graphql-mesh/types": 0.104.20(graphql@16.12.0) - "@graphql-mesh/utils": 0.104.22(graphql@16.12.0) - "@graphql-tools/delegate": 12.0.6(graphql@16.12.0) - "@graphql-tools/schema": 10.0.31(graphql@16.12.0) - "@graphql-tools/stitch": 10.1.10(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-mesh/store": 0.104.27(graphql@16.13.1) + "@graphql-mesh/types": 0.104.23(graphql@16.13.1) + "@graphql-mesh/utils": 0.104.25(graphql@16.13.1) + "@graphql-tools/delegate": 12.0.9(graphql@16.13.1) + "@graphql-tools/schema": 10.0.31(graphql@16.13.1) + "@graphql-tools/stitch": 10.1.13(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + graphql: 16.13.1 tslib: 2.8.1 transitivePeerDependencies: - "@nats-io/nats-core" - ioredis - "@graphql-mesh/openapi@0.109.31(graphql@16.12.0)": + "@graphql-mesh/openapi@0.109.37(graphql@16.13.1)": dependencies: - "@graphql-mesh/store": 0.104.24(graphql@16.12.0) - "@graphql-mesh/string-interpolation": 0.5.11(graphql@16.12.0) - "@graphql-mesh/types": 0.104.20(graphql@16.12.0) - "@graphql-mesh/utils": 0.104.22(graphql@16.12.0) - "@omnigraph/openapi": 0.109.30(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-mesh/store": 0.104.27(graphql@16.13.1) + "@graphql-mesh/string-interpolation": 0.5.11(graphql@16.13.1) + "@graphql-mesh/types": 0.104.23(graphql@16.13.1) + "@graphql-mesh/utils": 0.104.25(graphql@16.13.1) + "@omnigraph/openapi": 0.109.36(graphql@16.13.1) + graphql: 16.13.1 tslib: 2.8.1 transitivePeerDependencies: - "@logtape/logtape" @@ -22866,89 +22768,89 @@ snapshots: - supports-color - winston - "@graphql-mesh/runtime@0.106.24(graphql@16.12.0)": - dependencies: - "@envelop/core": 5.4.0 - "@envelop/extended-validation": 7.1.0(@envelop/core@5.4.0)(graphql@16.12.0) - "@envelop/graphql-jit": 11.1.0(@envelop/core@5.4.0)(graphql@16.12.0) - "@graphql-mesh/cross-helpers": 0.4.12(graphql@16.12.0) - "@graphql-mesh/string-interpolation": 0.5.11(graphql@16.12.0) - "@graphql-mesh/types": 0.104.20(graphql@16.12.0) - "@graphql-mesh/utils": 0.104.22(graphql@16.12.0) - "@graphql-tools/batch-delegate": 10.0.12(graphql@16.12.0) - "@graphql-tools/delegate": 12.0.6(graphql@16.12.0) - "@graphql-tools/executor": 1.5.1(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) - "@graphql-tools/wrap": 11.1.6(graphql@16.12.0) - "@whatwg-node/fetch": 0.10.9 + "@graphql-mesh/runtime@0.106.27(graphql@16.13.1)": + dependencies: + "@envelop/core": 5.5.1 + "@envelop/extended-validation": 7.1.1(@envelop/core@5.5.1)(graphql@16.13.1) + "@envelop/graphql-jit": 11.1.1(@envelop/core@5.5.1)(graphql@16.13.1) + "@graphql-mesh/cross-helpers": 0.4.12(graphql@16.13.1) + "@graphql-mesh/string-interpolation": 0.5.11(graphql@16.13.1) + "@graphql-mesh/types": 0.104.23(graphql@16.13.1) + "@graphql-mesh/utils": 0.104.25(graphql@16.13.1) + "@graphql-tools/batch-delegate": 10.0.15(graphql@16.13.1) + "@graphql-tools/delegate": 12.0.9(graphql@16.13.1) + "@graphql-tools/executor": 1.5.1(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + "@graphql-tools/wrap": 11.1.9(graphql@16.13.1) + "@whatwg-node/fetch": 0.10.13 "@whatwg-node/promise-helpers": 1.3.2 - graphql: 16.12.0 - graphql-jit: 0.8.7(graphql@16.12.0) + graphql: 16.13.1 + graphql-jit: 0.8.7(graphql@16.13.1) tslib: 2.8.1 transitivePeerDependencies: - "@nats-io/nats-core" - ioredis - "@graphql-mesh/store@0.104.24(graphql@16.12.0)": + "@graphql-mesh/store@0.104.27(graphql@16.13.1)": dependencies: - "@graphql-inspector/core": 7.1.2(graphql@16.12.0) - "@graphql-mesh/cross-helpers": 0.4.12(graphql@16.12.0) - "@graphql-mesh/types": 0.104.20(graphql@16.12.0) - "@graphql-mesh/utils": 0.104.22(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-inspector/core": 7.1.2(graphql@16.13.1) + "@graphql-mesh/cross-helpers": 0.4.12(graphql@16.13.1) + "@graphql-mesh/types": 0.104.23(graphql@16.13.1) + "@graphql-mesh/utils": 0.104.25(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + graphql: 16.13.1 tslib: 2.8.1 transitivePeerDependencies: - "@nats-io/nats-core" - ioredis - "@graphql-mesh/string-interpolation@0.5.11(graphql@16.12.0)": + "@graphql-mesh/string-interpolation@0.5.11(graphql@16.13.1)": dependencies: dayjs: 1.11.19 - graphql: 16.12.0 + graphql: 16.13.1 json-pointer: 0.6.2 lodash.get: 4.4.2 tslib: 2.8.1 - "@graphql-mesh/transform-filter-schema@0.104.22(graphql@16.12.0)": + "@graphql-mesh/transform-filter-schema@0.104.26(graphql@16.13.1)": dependencies: - "@graphql-mesh/types": 0.104.20(graphql@16.12.0) - "@graphql-mesh/utils": 0.104.22(graphql@16.12.0) - "@graphql-tools/delegate": 12.0.6(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) - "@graphql-tools/wrap": 11.1.6(graphql@16.12.0) - graphql: 16.12.0 - minimatch: 10.1.2 + "@graphql-mesh/types": 0.104.23(graphql@16.13.1) + "@graphql-mesh/utils": 0.104.25(graphql@16.13.1) + "@graphql-tools/delegate": 12.0.9(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + "@graphql-tools/wrap": 11.1.9(graphql@16.13.1) + graphql: 16.13.1 + minimatch: 10.2.4 tslib: 2.8.1 transitivePeerDependencies: - "@nats-io/nats-core" - ioredis - "@graphql-mesh/transform-rename@0.105.23(graphql@16.12.0)": + "@graphql-mesh/transform-rename@0.105.26(graphql@16.13.1)": dependencies: - "@graphql-mesh/types": 0.104.20(graphql@16.12.0) - "@graphql-mesh/utils": 0.104.22(graphql@16.12.0) - "@graphql-tools/delegate": 12.0.6(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) - "@graphql-tools/wrap": 11.1.6(graphql@16.12.0) - graphql: 16.12.0 - graphql-scalars: 1.24.2(graphql@16.12.0) + "@graphql-mesh/types": 0.104.23(graphql@16.13.1) + "@graphql-mesh/utils": 0.104.25(graphql@16.13.1) + "@graphql-tools/delegate": 12.0.9(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + "@graphql-tools/wrap": 11.1.9(graphql@16.13.1) + graphql: 16.13.1 + graphql-scalars: 1.25.0(graphql@16.13.1) tslib: 2.8.1 transitivePeerDependencies: - "@nats-io/nats-core" - ioredis - "@graphql-mesh/transport-common@1.0.14(graphql@16.12.0)": + "@graphql-mesh/transport-common@1.0.15(graphql@16.13.1)": dependencies: - "@envelop/core": 5.5.0 - "@graphql-hive/logger": 1.0.10 + "@envelop/core": 5.5.1 + "@graphql-hive/logger": 1.1.0 "@graphql-hive/pubsub": 2.1.1 "@graphql-hive/signal": 2.0.0 - "@graphql-mesh/types": 0.104.20(graphql@16.12.0) - "@graphql-tools/executor": 1.5.1(graphql@16.12.0) - "@graphql-tools/executor-common": 1.0.6(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-mesh/types": 0.104.23(graphql@16.13.1) + "@graphql-tools/executor": 1.5.1(graphql@16.13.1) + "@graphql-tools/executor-common": 1.0.6(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + graphql: 16.13.1 tslib: 2.8.1 transitivePeerDependencies: - "@logtape/logtape" @@ -22957,20 +22859,20 @@ snapshots: - pino - winston - "@graphql-mesh/transport-rest@0.9.24(graphql@16.12.0)": + "@graphql-mesh/transport-rest@0.9.28(graphql@16.13.1)": dependencies: - "@graphql-mesh/cross-helpers": 0.4.12(graphql@16.12.0) - "@graphql-mesh/string-interpolation": 0.5.11(graphql@16.12.0) - "@graphql-mesh/transport-common": 1.0.14(graphql@16.12.0) - "@graphql-mesh/types": 0.104.20(graphql@16.12.0) - "@graphql-mesh/utils": 0.104.22(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) + "@graphql-mesh/cross-helpers": 0.4.12(graphql@16.13.1) + "@graphql-mesh/string-interpolation": 0.5.11(graphql@16.13.1) + "@graphql-mesh/transport-common": 1.0.15(graphql@16.13.1) + "@graphql-mesh/types": 0.104.23(graphql@16.13.1) + "@graphql-mesh/utils": 0.104.25(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) "@whatwg-node/fetch": 0.10.13 dset: 3.1.4 - graphql: 16.12.0 + graphql: 16.13.1 graphql-fields: 2.0.3 - graphql-scalars: 1.25.0(graphql@16.12.0) - qs: 6.14.1 + graphql-scalars: 1.25.0(graphql@16.13.1) + qs: 6.15.0 tslib: 2.8.1 url-join: 4.0.1 transitivePeerDependencies: @@ -22980,36 +22882,36 @@ snapshots: - pino - winston - "@graphql-mesh/types@0.104.20(graphql@16.12.0)": + "@graphql-mesh/types@0.104.23(graphql@16.13.1)": dependencies: "@graphql-hive/pubsub": 2.1.1 - "@graphql-tools/batch-delegate": 10.0.12(graphql@16.12.0) - "@graphql-tools/delegate": 12.0.6(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) - "@graphql-typed-document-node/core": 3.2.0(graphql@16.12.0) + "@graphql-tools/batch-delegate": 10.0.15(graphql@16.13.1) + "@graphql-tools/delegate": 12.0.9(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + "@graphql-typed-document-node/core": 3.2.0(graphql@16.13.1) "@repeaterjs/repeater": 3.0.6 "@whatwg-node/disposablestack": 0.0.6 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.8.1 transitivePeerDependencies: - "@nats-io/nats-core" - ioredis - "@graphql-mesh/utils@0.104.22(graphql@16.12.0)": + "@graphql-mesh/utils@0.104.25(graphql@16.13.1)": dependencies: "@envelop/instrumentation": 1.0.0 - "@graphql-mesh/cross-helpers": 0.4.12(graphql@16.12.0) - "@graphql-mesh/string-interpolation": 0.5.11(graphql@16.12.0) - "@graphql-mesh/types": 0.104.20(graphql@16.12.0) - "@graphql-tools/batch-delegate": 10.0.12(graphql@16.12.0) - "@graphql-tools/delegate": 12.0.6(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) - "@graphql-tools/wrap": 11.1.6(graphql@16.12.0) + "@graphql-mesh/cross-helpers": 0.4.12(graphql@16.13.1) + "@graphql-mesh/string-interpolation": 0.5.11(graphql@16.13.1) + "@graphql-mesh/types": 0.104.23(graphql@16.13.1) + "@graphql-tools/batch-delegate": 10.0.15(graphql@16.13.1) + "@graphql-tools/delegate": 12.0.9(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + "@graphql-tools/wrap": 11.1.9(graphql@16.13.1) "@whatwg-node/disposablestack": 0.0.6 "@whatwg-node/fetch": 0.10.13 "@whatwg-node/promise-helpers": 1.3.2 dset: 3.1.4 - graphql: 16.12.0 + graphql: 16.13.1 js-yaml: 4.1.1 lodash.get: 4.4.2 lodash.topath: 4.5.2 @@ -23019,111 +22921,140 @@ snapshots: - "@nats-io/nats-core" - ioredis - "@graphql-tools/apollo-engine-loader@8.0.22(graphql@16.12.0)": + "@graphql-tools/apollo-engine-loader@8.0.22(graphql@16.13.1)": dependencies: - "@graphql-tools/utils": 10.9.1(graphql@16.12.0) - "@whatwg-node/fetch": 0.10.9 - graphql: 16.12.0 + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) + "@whatwg-node/fetch": 0.10.13 + graphql: 16.13.1 sync-fetch: 0.6.0-2 tslib: 2.8.1 - "@graphql-tools/batch-delegate@10.0.12(graphql@16.12.0)": + "@graphql-tools/batch-delegate@10.0.15(graphql@16.13.1)": dependencies: - "@graphql-tools/delegate": 12.0.6(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) + "@graphql-tools/delegate": 12.0.9(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) "@whatwg-node/promise-helpers": 1.3.2 dataloader: 2.2.3 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.8.1 - "@graphql-tools/batch-execute@10.0.5(graphql@16.12.0)": + "@graphql-tools/batch-delegate@10.0.18(graphql@16.13.1)": dependencies: - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) + "@graphql-tools/delegate": 12.0.12(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) "@whatwg-node/promise-helpers": 1.3.2 dataloader: 2.2.3 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.8.1 - "@graphql-tools/batch-execute@9.0.19(graphql@16.12.0)": + "@graphql-tools/batch-execute@10.0.5(graphql@16.13.1)": dependencies: - "@graphql-tools/utils": 10.9.1(graphql@16.12.0) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) "@whatwg-node/promise-helpers": 1.3.2 dataloader: 2.2.3 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.8.1 - "@graphql-tools/code-file-loader@8.1.22(graphql@16.12.0)": + "@graphql-tools/batch-execute@10.0.7(graphql@16.13.1)": dependencies: - "@graphql-tools/graphql-tag-pluck": 8.3.21(graphql@16.12.0) - "@graphql-tools/utils": 10.9.1(graphql@16.12.0) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + "@whatwg-node/promise-helpers": 1.3.2 + dataloader: 2.2.3 + graphql: 16.13.1 + tslib: 2.8.1 + + "@graphql-tools/batch-execute@9.0.19(graphql@16.13.1)": + dependencies: + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) + "@whatwg-node/promise-helpers": 1.3.2 + dataloader: 2.2.3 + graphql: 16.13.1 + tslib: 2.8.1 + + "@graphql-tools/code-file-loader@8.1.22(graphql@16.13.1)": + dependencies: + "@graphql-tools/graphql-tag-pluck": 8.3.21(graphql@16.13.1) + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) globby: 11.1.0 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.8.1 unixify: 1.0.0 transitivePeerDependencies: - supports-color - "@graphql-tools/code-file-loader@8.1.28(graphql@16.12.0)": + "@graphql-tools/code-file-loader@8.1.28(graphql@16.13.1)": dependencies: - "@graphql-tools/graphql-tag-pluck": 8.3.27(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) + "@graphql-tools/graphql-tag-pluck": 8.3.27(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) globby: 11.1.0 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.8.1 unixify: 1.0.0 transitivePeerDependencies: - supports-color - "@graphql-tools/delegate@10.2.23(graphql@16.12.0)": + "@graphql-tools/delegate@10.2.23(graphql@16.13.1)": dependencies: - "@graphql-tools/batch-execute": 9.0.19(graphql@16.12.0) - "@graphql-tools/executor": 1.5.1(graphql@16.12.0) - "@graphql-tools/schema": 10.0.30(graphql@16.12.0) - "@graphql-tools/utils": 10.9.1(graphql@16.12.0) + "@graphql-tools/batch-execute": 9.0.19(graphql@16.13.1) + "@graphql-tools/executor": 1.5.1(graphql@16.13.1) + "@graphql-tools/schema": 10.0.30(graphql@16.13.1) + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) "@repeaterjs/repeater": 3.0.6 "@whatwg-node/promise-helpers": 1.3.2 dataloader: 2.2.3 dset: 3.1.4 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.8.1 - "@graphql-tools/delegate@12.0.6(graphql@16.12.0)": + "@graphql-tools/delegate@12.0.12(graphql@16.13.1)": dependencies: - "@graphql-tools/batch-execute": 10.0.5(graphql@16.12.0) - "@graphql-tools/executor": 1.5.1(graphql@16.12.0) - "@graphql-tools/schema": 10.0.31(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) + "@graphql-tools/batch-execute": 10.0.7(graphql@16.13.1) + "@graphql-tools/executor": 1.5.1(graphql@16.13.1) + "@graphql-tools/schema": 10.0.31(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) "@repeaterjs/repeater": 3.0.6 "@whatwg-node/promise-helpers": 1.3.2 dataloader: 2.2.3 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.8.1 - "@graphql-tools/documents@1.0.1(graphql@16.12.0)": + "@graphql-tools/delegate@12.0.9(graphql@16.13.1)": dependencies: - graphql: 16.12.0 + "@graphql-tools/batch-execute": 10.0.5(graphql@16.13.1) + "@graphql-tools/executor": 1.5.1(graphql@16.13.1) + "@graphql-tools/schema": 10.0.31(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + "@repeaterjs/repeater": 3.0.6 + "@whatwg-node/promise-helpers": 1.3.2 + dataloader: 2.2.3 + graphql: 16.13.1 + tslib: 2.8.1 + + "@graphql-tools/documents@1.0.1(graphql@16.13.1)": + dependencies: + graphql: 16.13.1 lodash.sortby: 4.7.0 tslib: 2.8.1 - "@graphql-tools/executor-common@0.0.4(graphql@16.12.0)": + "@graphql-tools/executor-common@0.0.4(graphql@16.13.1)": dependencies: "@envelop/core": 5.5.0 - "@graphql-tools/utils": 10.9.1(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) + graphql: 16.13.1 - "@graphql-tools/executor-common@1.0.6(graphql@16.12.0)": + "@graphql-tools/executor-common@1.0.6(graphql@16.13.1)": dependencies: "@envelop/core": 5.5.0 - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + graphql: 16.13.1 - "@graphql-tools/executor-graphql-ws@2.0.5(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.12.0)(utf-8-validate@5.0.10)": + "@graphql-tools/executor-graphql-ws@2.0.5(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.13.1)(utf-8-validate@5.0.10)": dependencies: - "@graphql-tools/executor-common": 0.0.4(graphql@16.12.0) - "@graphql-tools/utils": 10.9.1(graphql@16.12.0) + "@graphql-tools/executor-common": 0.0.4(graphql@16.13.1) + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) "@whatwg-node/disposablestack": 0.0.6 - graphql: 16.12.0 - graphql-ws: 6.0.7(crossws@0.3.5)(graphql@16.12.0)(ws@8.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + graphql: 16.13.1 + graphql-ws: 6.0.7(crossws@0.3.5)(graphql@16.13.1)(ws@8.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) isomorphic-ws: 5.0.0(ws@8.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) tslib: 2.8.1 ws: 8.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) @@ -23133,13 +23064,13 @@ snapshots: - crossws - utf-8-validate - "@graphql-tools/executor-graphql-ws@3.1.4(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.12.0)(utf-8-validate@5.0.10)": + "@graphql-tools/executor-graphql-ws@3.1.4(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.13.1)(utf-8-validate@5.0.10)": dependencies: - "@graphql-tools/executor-common": 1.0.6(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) + "@graphql-tools/executor-common": 1.0.6(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) "@whatwg-node/disposablestack": 0.0.6 - graphql: 16.12.0 - graphql-ws: 6.0.7(crossws@0.3.5)(graphql@16.12.0)(ws@8.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + graphql: 16.13.1 + graphql-ws: 6.0.7(crossws@0.3.5)(graphql@16.13.1)(ws@8.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) isows: 1.0.7(ws@8.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) tslib: 2.8.1 ws: 8.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) @@ -23149,41 +23080,56 @@ snapshots: - crossws - utf-8-validate - "@graphql-tools/executor-http@1.3.3(@types/node@20.19.33)(graphql@16.12.0)": + "@graphql-tools/executor-http@1.3.3(@types/node@20.19.37)(graphql@16.13.1)": dependencies: "@graphql-hive/signal": 1.0.0 - "@graphql-tools/executor-common": 0.0.4(graphql@16.12.0) - "@graphql-tools/utils": 10.9.1(graphql@16.12.0) + "@graphql-tools/executor-common": 0.0.4(graphql@16.13.1) + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) "@repeaterjs/repeater": 3.0.6 "@whatwg-node/disposablestack": 0.0.6 "@whatwg-node/fetch": 0.10.9 "@whatwg-node/promise-helpers": 1.3.2 - graphql: 16.12.0 - meros: 1.3.1(@types/node@20.19.33) + graphql: 16.13.1 + meros: 1.3.2(@types/node@20.19.37) + tslib: 2.8.1 + transitivePeerDependencies: + - "@types/node" + + "@graphql-tools/executor-http@3.1.0(@types/node@25.4.0)(graphql@16.13.1)": + dependencies: + "@graphql-hive/signal": 2.0.0 + "@graphql-tools/executor-common": 1.0.6(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + "@repeaterjs/repeater": 3.0.6 + "@whatwg-node/disposablestack": 0.0.6 + "@whatwg-node/fetch": 0.10.13 + "@whatwg-node/promise-helpers": 1.3.2 + graphql: 16.13.1 + meros: 1.3.2(@types/node@25.4.0) tslib: 2.8.1 transitivePeerDependencies: - "@types/node" - "@graphql-tools/executor-http@3.1.0(@types/node@25.5.0)(graphql@16.12.0)": + "@graphql-tools/executor-http@3.1.1(@types/node@25.4.0)(graphql@16.13.1)": dependencies: "@graphql-hive/signal": 2.0.0 - "@graphql-tools/executor-common": 1.0.6(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) + "@graphql-tools/executor-common": 1.0.6(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) "@repeaterjs/repeater": 3.0.6 "@whatwg-node/disposablestack": 0.0.6 "@whatwg-node/fetch": 0.10.13 "@whatwg-node/promise-helpers": 1.3.2 - graphql: 16.12.0 - meros: 1.3.2(@types/node@25.5.0) + graphql: 16.13.1 + meros: 1.3.2(@types/node@25.4.0) tslib: 2.8.1 transitivePeerDependencies: - "@types/node" - "@graphql-tools/executor-legacy-ws@1.1.19(bufferutil@4.0.9)(graphql@16.12.0)(utf-8-validate@5.0.10)": + "@graphql-tools/executor-legacy-ws@1.1.19(bufferutil@4.0.9)(graphql@16.13.1)(utf-8-validate@5.0.10)": dependencies: - "@graphql-tools/utils": 10.9.1(graphql@16.12.0) + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) "@types/ws": 8.18.1 - graphql: 16.12.0 + graphql: 16.13.1 isomorphic-ws: 5.0.0(ws@8.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) tslib: 2.8.1 ws: 8.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) @@ -23191,11 +23137,11 @@ snapshots: - bufferutil - utf-8-validate - "@graphql-tools/executor-legacy-ws@1.1.25(bufferutil@4.0.9)(graphql@16.12.0)(utf-8-validate@5.0.10)": + "@graphql-tools/executor-legacy-ws@1.1.25(bufferutil@4.0.9)(graphql@16.13.1)(utf-8-validate@5.0.10)": dependencies: - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) "@types/ws": 8.18.1 - graphql: 16.12.0 + graphql: 16.13.1 isomorphic-ws: 5.0.0(ws@8.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) tslib: 2.8.1 ws: 8.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) @@ -23213,41 +23159,61 @@ snapshots: graphql: 16.8.2 tslib: 2.8.1 - "@graphql-tools/executor@1.5.1(graphql@16.12.0)": + "@graphql-tools/executor@1.5.1(graphql@16.13.1)": dependencies: - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) - "@graphql-typed-document-node/core": 3.2.0(graphql@16.12.0) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + "@graphql-typed-document-node/core": 3.2.0(graphql@16.13.1) "@repeaterjs/repeater": 3.0.6 "@whatwg-node/disposablestack": 0.0.6 "@whatwg-node/promise-helpers": 1.3.2 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.8.1 - "@graphql-tools/federation@4.2.10(@types/node@25.5.0)(graphql@16.12.0)": + "@graphql-tools/federation@4.2.10(@types/node@25.4.0)(graphql@16.13.1)": dependencies: - "@graphql-tools/delegate": 12.0.6(graphql@16.12.0) - "@graphql-tools/executor": 1.5.1(graphql@16.12.0) - "@graphql-tools/executor-http": 3.1.0(@types/node@25.5.0)(graphql@16.12.0) - "@graphql-tools/merge": 9.1.7(graphql@16.12.0) - "@graphql-tools/schema": 10.0.31(graphql@16.12.0) - "@graphql-tools/stitch": 10.1.10(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) - "@graphql-tools/wrap": 11.1.6(graphql@16.12.0) + "@graphql-tools/delegate": 12.0.9(graphql@16.13.1) + "@graphql-tools/executor": 1.5.1(graphql@16.13.1) + "@graphql-tools/executor-http": 3.1.0(@types/node@25.4.0)(graphql@16.13.1) + "@graphql-tools/merge": 9.1.7(graphql@16.13.1) + "@graphql-tools/schema": 10.0.31(graphql@16.13.1) + "@graphql-tools/stitch": 10.1.13(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + "@graphql-tools/wrap": 11.1.9(graphql@16.13.1) "@graphql-yoga/typed-event-target": 3.0.2 "@whatwg-node/disposablestack": 0.0.6 "@whatwg-node/events": 0.1.2 "@whatwg-node/fetch": 0.10.13 "@whatwg-node/promise-helpers": 1.3.2 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.8.1 transitivePeerDependencies: - "@types/node" - "@graphql-tools/git-loader@8.0.26(graphql@16.12.0)": + "@graphql-tools/federation@4.3.1(@types/node@25.4.0)(graphql@16.13.1)": dependencies: - "@graphql-tools/graphql-tag-pluck": 8.3.21(graphql@16.12.0) - "@graphql-tools/utils": 10.9.1(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-tools/delegate": 12.0.12(graphql@16.13.1) + "@graphql-tools/executor": 1.5.1(graphql@16.13.1) + "@graphql-tools/executor-http": 3.1.1(@types/node@25.4.0)(graphql@16.13.1) + "@graphql-tools/merge": 9.1.7(graphql@16.13.1) + "@graphql-tools/schema": 10.0.31(graphql@16.13.1) + "@graphql-tools/stitch": 10.1.16(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + "@graphql-tools/wrap": 11.1.12(graphql@16.13.1) + "@graphql-yoga/typed-event-target": 3.0.2 + "@whatwg-node/disposablestack": 0.0.6 + "@whatwg-node/events": 0.1.2 + "@whatwg-node/fetch": 0.10.13 + "@whatwg-node/promise-helpers": 1.3.2 + graphql: 16.13.1 + tslib: 2.8.1 + transitivePeerDependencies: + - "@types/node" + + "@graphql-tools/git-loader@8.0.26(graphql@16.13.1)": + dependencies: + "@graphql-tools/graphql-tag-pluck": 8.3.21(graphql@16.13.1) + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) + graphql: 16.13.1 is-glob: 4.0.3 micromatch: 4.0.8 tslib: 2.8.1 @@ -23255,122 +23221,117 @@ snapshots: transitivePeerDependencies: - supports-color - "@graphql-tools/github-loader@8.0.22(@types/node@20.19.33)(graphql@16.12.0)": + "@graphql-tools/github-loader@8.0.22(@types/node@20.19.37)(graphql@16.13.1)": dependencies: - "@graphql-tools/executor-http": 1.3.3(@types/node@20.19.33)(graphql@16.12.0) - "@graphql-tools/graphql-tag-pluck": 8.3.21(graphql@16.12.0) - "@graphql-tools/utils": 10.9.1(graphql@16.12.0) - "@whatwg-node/fetch": 0.10.9 + "@graphql-tools/executor-http": 1.3.3(@types/node@20.19.37)(graphql@16.13.1) + "@graphql-tools/graphql-tag-pluck": 8.3.21(graphql@16.13.1) + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) + "@whatwg-node/fetch": 0.10.13 "@whatwg-node/promise-helpers": 1.3.2 - graphql: 16.12.0 + graphql: 16.13.1 sync-fetch: 0.6.0-2 tslib: 2.8.1 transitivePeerDependencies: - "@types/node" - supports-color - "@graphql-tools/graphql-file-loader@8.0.22(graphql@16.12.0)": + "@graphql-tools/graphql-file-loader@8.0.22(graphql@16.13.1)": dependencies: - "@graphql-tools/import": 7.0.21(graphql@16.12.0) - "@graphql-tools/utils": 10.9.1(graphql@16.12.0) + "@graphql-tools/import": 7.0.21(graphql@16.13.1) + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) globby: 11.1.0 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.8.1 unixify: 1.0.0 transitivePeerDependencies: - supports-color - "@graphql-tools/graphql-file-loader@8.1.9(graphql@16.12.0)": + "@graphql-tools/graphql-file-loader@8.1.12(graphql@16.13.1)": dependencies: - "@graphql-tools/import": 7.1.9(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) + "@graphql-tools/import": 7.1.12(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) globby: 11.1.0 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.8.1 unixify: 1.0.0 - transitivePeerDependencies: - - supports-color - "@graphql-tools/graphql-tag-pluck@8.3.21(graphql@16.12.0)": + "@graphql-tools/graphql-tag-pluck@8.3.21(graphql@16.13.1)": dependencies: "@babel/core": 7.29.0 "@babel/parser": 7.29.0 "@babel/plugin-syntax-import-assertions": 7.27.1(@babel/core@7.29.0) "@babel/traverse": 7.29.0 "@babel/types": 7.29.0 - "@graphql-tools/utils": 10.9.1(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) + graphql: 16.13.1 tslib: 2.8.1 transitivePeerDependencies: - supports-color - "@graphql-tools/graphql-tag-pluck@8.3.27(graphql@16.12.0)": + "@graphql-tools/graphql-tag-pluck@8.3.27(graphql@16.13.1)": dependencies: "@babel/core": 7.29.0 "@babel/parser": 7.29.0 "@babel/plugin-syntax-import-assertions": 7.28.6(@babel/core@7.29.0) "@babel/traverse": 7.29.0 "@babel/types": 7.29.0 - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + graphql: 16.13.1 tslib: 2.8.1 transitivePeerDependencies: - supports-color - "@graphql-tools/import@7.0.21(graphql@16.12.0)": + "@graphql-tools/import@7.0.21(graphql@16.13.1)": dependencies: - "@graphql-tools/utils": 10.9.1(graphql@16.12.0) - "@theguild/federation-composition": 0.19.1(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) + "@theguild/federation-composition": 0.19.1(graphql@16.13.1) + graphql: 16.13.1 resolve-from: 5.0.0 tslib: 2.8.1 transitivePeerDependencies: - supports-color - "@graphql-tools/import@7.1.9(graphql@16.12.0)": + "@graphql-tools/import@7.1.12(graphql@16.13.1)": dependencies: - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) - "@theguild/federation-composition": 0.21.3(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + graphql: 16.13.1 resolve-from: 5.0.0 tslib: 2.8.1 - transitivePeerDependencies: - - supports-color - "@graphql-tools/json-file-loader@8.0.20(graphql@16.12.0)": + "@graphql-tools/json-file-loader@8.0.20(graphql@16.13.1)": dependencies: - "@graphql-tools/utils": 10.9.1(graphql@16.12.0) + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) globby: 11.1.0 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.8.1 unixify: 1.0.0 - "@graphql-tools/load@8.1.2(graphql@16.12.0)": + "@graphql-tools/load@8.1.2(graphql@16.13.1)": dependencies: - "@graphql-tools/schema": 10.0.25(graphql@16.12.0) - "@graphql-tools/utils": 10.9.1(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-tools/schema": 10.0.25(graphql@16.13.1) + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) + graphql: 16.13.1 p-limit: 3.1.0 tslib: 2.8.1 - "@graphql-tools/load@8.1.8(graphql@16.12.0)": + "@graphql-tools/load@8.1.8(graphql@16.13.1)": dependencies: - "@graphql-tools/schema": 10.0.31(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-tools/schema": 10.0.31(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + graphql: 16.13.1 p-limit: 3.1.0 tslib: 2.8.1 - "@graphql-tools/merge@9.1.1(graphql@16.12.0)": + "@graphql-tools/merge@9.1.1(graphql@16.13.1)": dependencies: - "@graphql-tools/utils": 10.9.1(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) + graphql: 16.13.1 tslib: 2.8.1 - "@graphql-tools/merge@9.1.7(graphql@16.12.0)": + "@graphql-tools/merge@9.1.7(graphql@16.13.1)": dependencies: - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + graphql: 16.13.1 tslib: 2.8.1 "@graphql-tools/merge@9.1.7(graphql@16.8.2)": @@ -23379,32 +23340,27 @@ snapshots: graphql: 16.8.2 tslib: 2.8.1 - "@graphql-tools/optimize@1.4.0(graphql@16.12.0)": - dependencies: - graphql: 16.12.0 - tslib: 2.8.1 - - "@graphql-tools/optimize@2.0.0(graphql@16.12.0)": + "@graphql-tools/optimize@2.0.0(graphql@16.13.1)": dependencies: - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.8.1 - "@graphql-tools/prisma-loader@8.0.17(@types/node@20.19.33)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.12.0)(utf-8-validate@5.0.10)": + "@graphql-tools/prisma-loader@8.0.17(@types/node@20.19.37)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.13.1)(utf-8-validate@5.0.10)": dependencies: - "@graphql-tools/url-loader": 8.0.33(@types/node@20.19.33)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.12.0)(utf-8-validate@5.0.10) - "@graphql-tools/utils": 10.9.1(graphql@16.12.0) + "@graphql-tools/url-loader": 8.0.33(@types/node@20.19.37)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.13.1)(utf-8-validate@5.0.10) + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) "@types/js-yaml": 4.0.9 - "@whatwg-node/fetch": 0.10.9 + "@whatwg-node/fetch": 0.10.13 chalk: 4.1.2 debug: 4.4.3 dotenv: 16.6.1 - graphql: 16.12.0 - graphql-request: 6.1.0(graphql@16.12.0) + graphql: 16.13.1 + graphql-request: 6.1.0(graphql@16.13.1) http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 jose: 5.10.0 js-yaml: 4.1.1 - lodash: 4.17.21 + lodash: 4.17.23 scuid: 1.1.0 tslib: 2.8.1 yaml-ast-parser: 0.0.43 @@ -23417,102 +23373,101 @@ snapshots: - supports-color - utf-8-validate - "@graphql-tools/relay-operation-optimizer@6.5.18(graphql@16.12.0)": + "@graphql-tools/relay-operation-optimizer@7.0.21(graphql@16.13.1)": dependencies: - "@ardatan/relay-compiler": 12.0.0(graphql@16.12.0) - "@graphql-tools/utils": 9.2.1(graphql@16.12.0) - graphql: 16.12.0 + "@ardatan/relay-compiler": 12.0.3(graphql@16.13.1) + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) + graphql: 16.13.1 tslib: 2.8.1 transitivePeerDependencies: - encoding - - supports-color - "@graphql-tools/relay-operation-optimizer@7.0.21(graphql@16.12.0)": + "@graphql-tools/relay-operation-optimizer@7.1.1(graphql@16.13.1)": dependencies: - "@ardatan/relay-compiler": 12.0.3(graphql@16.12.0) - "@graphql-tools/utils": 10.11.0(graphql@16.12.0) - graphql: 16.12.0 + "@ardatan/relay-compiler": 13.0.0(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + graphql: 16.13.1 tslib: 2.8.1 - transitivePeerDependencies: - - encoding - "@graphql-tools/relay-operation-optimizer@7.0.26(graphql@16.12.0)": + "@graphql-tools/schema@10.0.25(graphql@16.13.1)": dependencies: - "@ardatan/relay-compiler": 12.0.3(graphql@16.12.0) - "@graphql-tools/utils": 10.11.0(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-tools/merge": 9.1.7(graphql@16.13.1) + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) + graphql: 16.13.1 tslib: 2.8.1 - transitivePeerDependencies: - - encoding - "@graphql-tools/relay-operation-optimizer@7.0.27(graphql@16.12.0)": + "@graphql-tools/schema@10.0.30(graphql@16.13.1)": dependencies: - "@ardatan/relay-compiler": 12.0.3(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-tools/merge": 9.1.7(graphql@16.13.1) + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) + graphql: 16.13.1 tslib: 2.8.1 - transitivePeerDependencies: - - encoding - "@graphql-tools/schema@10.0.25(graphql@16.12.0)": + "@graphql-tools/schema@10.0.30(graphql@16.8.2)": dependencies: - "@graphql-tools/merge": 9.1.7(graphql@16.12.0) - "@graphql-tools/utils": 10.9.1(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-tools/merge": 9.1.7(graphql@16.8.2) + "@graphql-tools/utils": 10.11.0(graphql@16.8.2) + graphql: 16.8.2 tslib: 2.8.1 - "@graphql-tools/schema@10.0.30(graphql@16.12.0)": + "@graphql-tools/schema@10.0.31(graphql@16.13.1)": dependencies: - "@graphql-tools/merge": 9.1.7(graphql@16.12.0) - "@graphql-tools/utils": 10.11.0(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-tools/merge": 9.1.7(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + graphql: 16.13.1 tslib: 2.8.1 - "@graphql-tools/schema@10.0.30(graphql@16.8.2)": + "@graphql-tools/stitch@10.1.13(graphql@16.13.1)": dependencies: - "@graphql-tools/merge": 9.1.7(graphql@16.8.2) - "@graphql-tools/utils": 10.11.0(graphql@16.8.2) - graphql: 16.8.2 + "@graphql-tools/batch-delegate": 10.0.15(graphql@16.13.1) + "@graphql-tools/delegate": 12.0.9(graphql@16.13.1) + "@graphql-tools/executor": 1.5.1(graphql@16.13.1) + "@graphql-tools/merge": 9.1.7(graphql@16.13.1) + "@graphql-tools/schema": 10.0.31(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + "@graphql-tools/wrap": 11.1.9(graphql@16.13.1) + "@whatwg-node/promise-helpers": 1.3.2 + graphql: 16.13.1 tslib: 2.8.1 - "@graphql-tools/schema@10.0.31(graphql@16.12.0)": + "@graphql-tools/stitch@10.1.16(graphql@16.13.1)": dependencies: - "@graphql-tools/merge": 9.1.7(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-tools/batch-delegate": 10.0.18(graphql@16.13.1) + "@graphql-tools/delegate": 12.0.12(graphql@16.13.1) + "@graphql-tools/executor": 1.5.1(graphql@16.13.1) + "@graphql-tools/merge": 9.1.7(graphql@16.13.1) + "@graphql-tools/schema": 10.0.31(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + "@graphql-tools/wrap": 11.1.12(graphql@16.13.1) + "@whatwg-node/promise-helpers": 1.3.2 + graphql: 16.13.1 tslib: 2.8.1 - "@graphql-tools/stitch@10.1.10(graphql@16.12.0)": + "@graphql-tools/stitching-directives@4.0.15(graphql@16.13.1)": dependencies: - "@graphql-tools/batch-delegate": 10.0.12(graphql@16.12.0) - "@graphql-tools/delegate": 12.0.6(graphql@16.12.0) - "@graphql-tools/executor": 1.5.1(graphql@16.12.0) - "@graphql-tools/merge": 9.1.7(graphql@16.12.0) - "@graphql-tools/schema": 10.0.31(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) - "@graphql-tools/wrap": 11.1.6(graphql@16.12.0) - "@whatwg-node/promise-helpers": 1.3.2 - graphql: 16.12.0 + "@graphql-tools/delegate": 12.0.9(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + graphql: 16.13.1 tslib: 2.8.1 - "@graphql-tools/stitching-directives@4.0.12(graphql@16.12.0)": + "@graphql-tools/stitching-directives@4.0.18(graphql@16.13.1)": dependencies: - "@graphql-tools/delegate": 12.0.6(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-tools/delegate": 12.0.12(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + graphql: 16.13.1 tslib: 2.8.1 - "@graphql-tools/url-loader@8.0.33(@types/node@20.19.33)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.12.0)(utf-8-validate@5.0.10)": + "@graphql-tools/url-loader@8.0.33(@types/node@20.19.37)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.13.1)(utf-8-validate@5.0.10)": dependencies: - "@graphql-tools/executor-graphql-ws": 2.0.5(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.12.0)(utf-8-validate@5.0.10) - "@graphql-tools/executor-http": 1.3.3(@types/node@20.19.33)(graphql@16.12.0) - "@graphql-tools/executor-legacy-ws": 1.1.19(bufferutil@4.0.9)(graphql@16.12.0)(utf-8-validate@5.0.10) - "@graphql-tools/utils": 10.9.1(graphql@16.12.0) - "@graphql-tools/wrap": 10.1.4(graphql@16.12.0) + "@graphql-tools/executor-graphql-ws": 2.0.5(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.13.1)(utf-8-validate@5.0.10) + "@graphql-tools/executor-http": 1.3.3(@types/node@20.19.37)(graphql@16.13.1) + "@graphql-tools/executor-legacy-ws": 1.1.19(bufferutil@4.0.9)(graphql@16.13.1)(utf-8-validate@5.0.10) + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) + "@graphql-tools/wrap": 10.1.4(graphql@16.13.1) "@types/ws": 8.18.1 - "@whatwg-node/fetch": 0.10.9 + "@whatwg-node/fetch": 0.10.13 "@whatwg-node/promise-helpers": 1.3.2 - graphql: 16.12.0 + graphql: 16.13.1 isomorphic-ws: 5.0.0(ws@8.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) sync-fetch: 0.6.0-2 tslib: 2.8.1 @@ -23524,17 +23479,17 @@ snapshots: - crossws - utf-8-validate - "@graphql-tools/url-loader@9.0.6(@types/node@25.5.0)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.12.0)(utf-8-validate@5.0.10)": + "@graphql-tools/url-loader@9.0.6(@types/node@25.4.0)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.13.1)(utf-8-validate@5.0.10)": dependencies: - "@graphql-tools/executor-graphql-ws": 3.1.4(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.12.0)(utf-8-validate@5.0.10) - "@graphql-tools/executor-http": 3.1.0(@types/node@25.5.0)(graphql@16.12.0) - "@graphql-tools/executor-legacy-ws": 1.1.25(bufferutil@4.0.9)(graphql@16.12.0)(utf-8-validate@5.0.10) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) - "@graphql-tools/wrap": 11.1.6(graphql@16.12.0) + "@graphql-tools/executor-graphql-ws": 3.1.4(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.13.1)(utf-8-validate@5.0.10) + "@graphql-tools/executor-http": 3.1.0(@types/node@25.4.0)(graphql@16.13.1) + "@graphql-tools/executor-legacy-ws": 1.1.25(bufferutil@4.0.9)(graphql@16.13.1)(utf-8-validate@5.0.10) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + "@graphql-tools/wrap": 11.1.9(graphql@16.13.1) "@types/ws": 8.18.1 "@whatwg-node/fetch": 0.10.13 "@whatwg-node/promise-helpers": 1.3.2 - graphql: 16.12.0 + graphql: 16.13.1 isomorphic-ws: 5.0.0(ws@8.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) sync-fetch: 0.6.0 tslib: 2.8.1 @@ -23546,12 +23501,12 @@ snapshots: - crossws - utf-8-validate - "@graphql-tools/utils@10.11.0(graphql@16.12.0)": + "@graphql-tools/utils@10.11.0(graphql@16.13.1)": dependencies: - "@graphql-typed-document-node/core": 3.2.0(graphql@16.12.0) + "@graphql-typed-document-node/core": 3.2.0(graphql@16.13.1) "@whatwg-node/promise-helpers": 1.3.2 cross-inspect: 1.0.1 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.8.1 "@graphql-tools/utils@10.11.0(graphql@16.8.2)": @@ -23562,21 +23517,21 @@ snapshots: graphql: 16.8.2 tslib: 2.8.1 - "@graphql-tools/utils@10.9.1(graphql@16.12.0)": + "@graphql-tools/utils@10.9.1(graphql@16.13.1)": dependencies: - "@graphql-typed-document-node/core": 3.2.0(graphql@16.12.0) + "@graphql-typed-document-node/core": 3.2.0(graphql@16.13.1) "@whatwg-node/promise-helpers": 1.3.2 cross-inspect: 1.0.1 dset: 3.1.4 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.8.1 - "@graphql-tools/utils@11.0.0(graphql@16.12.0)": + "@graphql-tools/utils@11.0.0(graphql@16.13.1)": dependencies: - "@graphql-typed-document-node/core": 3.2.0(graphql@16.12.0) + "@graphql-typed-document-node/core": 3.2.0(graphql@16.13.1) "@whatwg-node/promise-helpers": 1.3.2 cross-inspect: 1.0.1 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.8.1 "@graphql-tools/utils@11.0.0(graphql@16.8.2)": @@ -23587,33 +23542,36 @@ snapshots: graphql: 16.8.2 tslib: 2.8.1 - "@graphql-tools/utils@9.2.1(graphql@16.12.0)": + "@graphql-tools/wrap@10.1.4(graphql@16.13.1)": dependencies: - "@graphql-typed-document-node/core": 3.2.0(graphql@16.12.0) - graphql: 16.12.0 + "@graphql-tools/delegate": 10.2.23(graphql@16.13.1) + "@graphql-tools/schema": 10.0.30(graphql@16.13.1) + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) + "@whatwg-node/promise-helpers": 1.3.2 + graphql: 16.13.1 tslib: 2.8.1 - "@graphql-tools/wrap@10.1.4(graphql@16.12.0)": + "@graphql-tools/wrap@11.1.12(graphql@16.13.1)": dependencies: - "@graphql-tools/delegate": 10.2.23(graphql@16.12.0) - "@graphql-tools/schema": 10.0.30(graphql@16.12.0) - "@graphql-tools/utils": 10.9.1(graphql@16.12.0) + "@graphql-tools/delegate": 12.0.12(graphql@16.13.1) + "@graphql-tools/schema": 10.0.31(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) "@whatwg-node/promise-helpers": 1.3.2 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.8.1 - "@graphql-tools/wrap@11.1.6(graphql@16.12.0)": + "@graphql-tools/wrap@11.1.9(graphql@16.13.1)": dependencies: - "@graphql-tools/delegate": 12.0.6(graphql@16.12.0) - "@graphql-tools/schema": 10.0.31(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) + "@graphql-tools/delegate": 12.0.9(graphql@16.13.1) + "@graphql-tools/schema": 10.0.30(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) "@whatwg-node/promise-helpers": 1.3.2 - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.8.1 - "@graphql-typed-document-node/core@3.2.0(graphql@16.12.0)": + "@graphql-typed-document-node/core@3.2.0(graphql@16.13.1)": dependencies: - graphql: 16.12.0 + graphql: 16.13.1 "@graphql-typed-document-node/core@3.2.0(graphql@16.8.2)": dependencies: @@ -23623,11 +23581,11 @@ snapshots: dependencies: tslib: 2.8.1 - "@graphql-yoga/plugin-persisted-operations@3.18.0(graphql-yoga@5.18.0(graphql@16.12.0))(graphql@16.12.0)": + "@graphql-yoga/plugin-persisted-operations@3.18.1(graphql-yoga@5.18.1(graphql@16.13.1))(graphql@16.13.1)": dependencies: "@whatwg-node/promise-helpers": 1.3.2 - graphql: 16.12.0 - graphql-yoga: 5.18.0(graphql@16.12.0) + graphql: 16.13.1 + graphql-yoga: 5.18.1(graphql@16.13.1) "@graphql-yoga/subscription@5.0.5": dependencies: @@ -23641,48 +23599,48 @@ snapshots: "@repeaterjs/repeater": 3.0.6 tslib: 2.8.1 - "@hono/node-server@1.19.5(hono@4.12.8)": + "@hono/node-server@1.19.11(hono@4.12.7)": dependencies: - hono: 4.12.8 + hono: 4.12.7 - "@hono/node-server@1.19.9(hono@4.12.8)": + "@hono/node-server@1.19.5(hono@4.12.7)": dependencies: - hono: 4.12.8 + hono: 4.12.7 - "@hono/swagger-ui@0.5.3(hono@4.12.8)": + "@hono/swagger-ui@0.5.3(hono@4.12.7)": dependencies: - hono: 4.12.8 + hono: 4.12.7 - "@hono/zod-openapi@0.19.10(hono@4.12.8)(zod@3.25.76)": + "@hono/zod-openapi@0.19.10(hono@4.12.7)(zod@3.25.76)": dependencies: "@asteasolutions/zod-to-openapi": 7.3.4(zod@3.25.76) - "@hono/zod-validator": 0.7.2(hono@4.12.8)(zod@3.25.76) - hono: 4.12.8 + "@hono/zod-validator": 0.7.2(hono@4.12.7)(zod@3.25.76) + hono: 4.12.7 openapi3-ts: 4.5.0 zod: 3.25.76 - "@hono/zod-openapi@1.2.2(hono@4.12.8)(zod@4.3.6)": + "@hono/zod-openapi@1.2.2(hono@4.12.7)(zod@4.3.6)": dependencies: "@asteasolutions/zod-to-openapi": 8.4.3(zod@4.3.6) - "@hono/zod-validator": 0.7.6(hono@4.12.8)(zod@4.3.6) - hono: 4.12.8 + "@hono/zod-validator": 0.7.6(hono@4.12.7)(zod@4.3.6) + hono: 4.12.7 openapi3-ts: 4.5.0 zod: 4.3.6 - "@hono/zod-validator@0.7.2(hono@4.12.8)(zod@3.25.76)": + "@hono/zod-validator@0.7.2(hono@4.12.7)(zod@3.25.76)": dependencies: - hono: 4.12.8 + hono: 4.12.7 zod: 3.25.76 - "@hono/zod-validator@0.7.6(hono@4.12.8)(zod@4.3.6)": + "@hono/zod-validator@0.7.6(hono@4.12.7)(zod@4.3.6)": dependencies: - hono: 4.12.8 + hono: 4.12.7 zod: 4.3.6 - "@hookform/resolvers@5.2.2(react-hook-form@7.71.1(react@19.2.3))": + "@hookform/resolvers@5.2.2(react-hook-form@7.71.2(react@19.2.3))": dependencies: "@standard-schema/utils": 0.3.0 - react-hook-form: 7.71.1(react@19.2.3) + react-hook-form: 7.71.2(react@19.2.3) "@humanfs/core@0.19.1": {} @@ -23794,65 +23752,59 @@ snapshots: "@inquirer/ansi@1.0.2": {} - "@inquirer/confirm@5.1.21(@types/node@20.19.33)": + "@inquirer/confirm@5.1.21(@types/node@20.19.37)": dependencies: - "@inquirer/core": 10.3.2(@types/node@20.19.33) - "@inquirer/type": 3.0.10(@types/node@20.19.33) + "@inquirer/core": 10.3.2(@types/node@20.19.37) + "@inquirer/type": 3.0.10(@types/node@20.19.37) optionalDependencies: - "@types/node": 20.19.33 + "@types/node": 20.19.37 - "@inquirer/confirm@5.1.21(@types/node@25.5.0)": + "@inquirer/confirm@5.1.21(@types/node@25.4.0)": dependencies: - "@inquirer/core": 10.3.2(@types/node@25.5.0) - "@inquirer/type": 3.0.10(@types/node@25.5.0) + "@inquirer/core": 10.3.2(@types/node@25.4.0) + "@inquirer/type": 3.0.10(@types/node@25.4.0) optionalDependencies: - "@types/node": 25.5.0 + "@types/node": 25.4.0 optional: true - "@inquirer/core@10.3.2(@types/node@20.19.33)": + "@inquirer/core@10.3.2(@types/node@20.19.37)": dependencies: "@inquirer/ansi": 1.0.2 "@inquirer/figures": 1.0.15 - "@inquirer/type": 3.0.10(@types/node@20.19.33) + "@inquirer/type": 3.0.10(@types/node@20.19.37) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - "@types/node": 20.19.33 + "@types/node": 20.19.37 - "@inquirer/core@10.3.2(@types/node@25.5.0)": + "@inquirer/core@10.3.2(@types/node@25.4.0)": dependencies: "@inquirer/ansi": 1.0.2 "@inquirer/figures": 1.0.15 - "@inquirer/type": 3.0.10(@types/node@25.5.0) + "@inquirer/type": 3.0.10(@types/node@25.4.0) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - "@types/node": 25.5.0 + "@types/node": 25.4.0 optional: true "@inquirer/figures@1.0.15": {} - "@inquirer/type@3.0.10(@types/node@20.19.33)": + "@inquirer/type@3.0.10(@types/node@20.19.37)": optionalDependencies: - "@types/node": 20.19.33 + "@types/node": 20.19.37 - "@inquirer/type@3.0.10(@types/node@25.5.0)": + "@inquirer/type@3.0.10(@types/node@25.4.0)": optionalDependencies: - "@types/node": 25.5.0 + "@types/node": 25.4.0 optional: true - "@isaacs/balanced-match@4.0.1": {} - - "@isaacs/brace-expansion@5.0.1": - dependencies: - "@isaacs/balanced-match": 4.0.1 - "@isaacs/cliui@8.0.2": dependencies: string-width: 5.1.2 @@ -23877,27 +23829,27 @@ snapshots: "@jest/console@29.7.0": dependencies: "@jest/types": 29.6.3 - "@types/node": 20.19.33 + "@types/node": 20.19.37 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 slash: 3.0.0 - "@jest/core@29.7.0(ts-node@10.9.2(@types/node@20.19.33)(typescript@5.9.3))": + "@jest/core@29.7.0(ts-node@10.9.2(@types/node@20.19.37)(typescript@5.9.3))": dependencies: "@jest/console": 29.7.0 "@jest/reporters": 29.7.0 "@jest/test-result": 29.7.0 "@jest/transform": 29.7.0 "@jest/types": 29.6.3 - "@types/node": 20.19.33 + "@types/node": 20.19.37 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.19.33)(ts-node@10.9.2(@types/node@20.19.33)(typescript@5.9.3)) + jest-config: 29.7.0(@types/node@20.19.37)(ts-node@10.9.2(@types/node@20.19.37)(typescript@5.9.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -23918,21 +23870,21 @@ snapshots: - supports-color - ts-node - "@jest/core@29.7.0(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3))": + "@jest/core@29.7.0(ts-node@10.9.2(@types/node@25.4.0)(typescript@5.9.3))": dependencies: "@jest/console": 29.7.0 "@jest/reporters": 29.7.0 "@jest/test-result": 29.7.0 "@jest/transform": 29.7.0 "@jest/types": 29.6.3 - "@types/node": 20.19.33 + "@types/node": 20.19.37 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.19.33)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)) + jest-config: 29.7.0(@types/node@20.19.37)(ts-node@10.9.2(@types/node@25.4.0)(typescript@5.9.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -23957,7 +23909,7 @@ snapshots: dependencies: "@jest/fake-timers": 29.7.0 "@jest/types": 29.6.3 - "@types/node": 20.19.33 + "@types/node": 20.19.37 jest-mock: 29.7.0 "@jest/expect-utils@29.7.0": @@ -23975,7 +23927,7 @@ snapshots: dependencies: "@jest/types": 29.6.3 "@sinonjs/fake-timers": 10.3.0 - "@types/node": 20.19.33 + "@types/node": 20.19.37 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -23997,7 +23949,7 @@ snapshots: "@jest/transform": 29.7.0 "@jest/types": 29.6.3 "@jridgewell/trace-mapping": 0.3.31 - "@types/node": 20.19.33 + "@types/node": 20.19.37 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -24067,7 +24019,7 @@ snapshots: "@jest/schemas": 29.6.3 "@types/istanbul-lib-coverage": 2.0.6 "@types/istanbul-reports": 3.0.4 - "@types/node": 20.19.33 + "@types/node": 20.19.37 "@types/yargs": 17.0.33 chalk: 4.1.2 @@ -24221,7 +24173,7 @@ snapshots: "@metamask/sdk@0.33.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)": dependencies: - "@babel/runtime": 7.28.4 + "@babel/runtime": 7.28.6 "@metamask/onboarding": 1.0.1 "@metamask/providers": 16.1.0 "@metamask/sdk-analytics": 0.0.5 @@ -24256,7 +24208,7 @@ snapshots: "@noble/hashes": 1.8.0 "@scure/base": 1.2.6 "@types/debug": 4.1.12 - "@types/lodash": 4.17.23 + "@types/lodash": 4.17.24 debug: 4.4.3 lodash: 4.17.23 pony-cause: 2.1.11 @@ -24312,6 +24264,8 @@ snapshots: outvariant: 1.4.3 strict-event-emitter: 0.5.1 + "@napi-rs/triples@1.2.0": {} + "@napi-rs/wasm-runtime@0.2.12": dependencies: "@emnapi/core": 1.4.5 @@ -24409,28 +24363,28 @@ snapshots: "@nolyfill/is-core-module@1.0.39": {} - "@omnigraph/json-schema@0.109.24(graphql@16.12.0)": + "@omnigraph/json-schema@0.109.29(graphql@16.13.1)": dependencies: - "@graphql-mesh/cross-helpers": 0.4.12(graphql@16.12.0) - "@graphql-mesh/string-interpolation": 0.5.11(graphql@16.12.0) - "@graphql-mesh/transport-common": 1.0.14(graphql@16.12.0) - "@graphql-mesh/transport-rest": 0.9.24(graphql@16.12.0) - "@graphql-mesh/types": 0.104.20(graphql@16.12.0) - "@graphql-mesh/utils": 0.104.22(graphql@16.12.0) - "@graphql-tools/delegate": 12.0.6(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) + "@graphql-mesh/cross-helpers": 0.4.12(graphql@16.13.1) + "@graphql-mesh/string-interpolation": 0.5.11(graphql@16.13.1) + "@graphql-mesh/transport-common": 1.0.15(graphql@16.13.1) + "@graphql-mesh/transport-rest": 0.9.28(graphql@16.13.1) + "@graphql-mesh/types": 0.104.23(graphql@16.13.1) + "@graphql-mesh/utils": 0.104.25(graphql@16.13.1) + "@graphql-tools/delegate": 12.0.9(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) "@json-schema-tools/meta-schema": 1.8.0 "@whatwg-node/fetch": 0.10.13 - ajv: 8.17.1 - ajv-formats: 3.0.1(ajv@8.17.1) + ajv: 8.18.0 + ajv-formats: 3.0.1(ajv@8.18.0) dset: 3.1.4 - graphql: 16.12.0 - graphql-compose: 9.1.0(graphql@16.12.0) + graphql: 16.13.1 + graphql-compose: 9.1.0(graphql@16.13.1) graphql-fields: 2.0.3 - graphql-scalars: 1.25.0(graphql@16.12.0) + graphql-scalars: 1.25.0(graphql@16.13.1) json-machete: 0.97.6 pascal-case: 3.1.2 - qs: 6.14.1 + qs: 6.15.0 to-json-schema: 0.2.5 tslib: 2.8.1 url-join: 4.0.1 @@ -24441,17 +24395,17 @@ snapshots: - pino - winston - "@omnigraph/openapi@0.109.30(graphql@16.12.0)": + "@omnigraph/openapi@0.109.36(graphql@16.13.1)": dependencies: - "@graphql-mesh/cross-helpers": 0.4.12(graphql@16.12.0) - "@graphql-mesh/fusion-composition": 0.8.27(graphql@16.12.0) - "@graphql-mesh/string-interpolation": 0.5.11(graphql@16.12.0) - "@graphql-mesh/types": 0.104.20(graphql@16.12.0) - "@graphql-mesh/utils": 0.104.22(graphql@16.12.0) - "@graphql-tools/utils": 11.0.0(graphql@16.12.0) - "@omnigraph/json-schema": 0.109.24(graphql@16.12.0) + "@graphql-mesh/cross-helpers": 0.4.12(graphql@16.13.1) + "@graphql-mesh/fusion-composition": 0.8.32(graphql@16.13.1) + "@graphql-mesh/string-interpolation": 0.5.11(graphql@16.13.1) + "@graphql-mesh/types": 0.104.23(graphql@16.13.1) + "@graphql-mesh/utils": 0.104.25(graphql@16.13.1) + "@graphql-tools/utils": 11.0.0(graphql@16.13.1) + "@omnigraph/json-schema": 0.109.29(graphql@16.13.1) change-case: 4.1.2 - graphql: 16.12.0 + graphql: 16.13.1 json-machete: 0.97.6 openapi-types: 12.1.3 tslib: 2.8.1 @@ -24491,7 +24445,7 @@ snapshots: "@opentelemetry/api": 1.9.0 "@opentelemetry/semantic-conventions": 1.28.0 - "@opentelemetry/core@2.5.1(@opentelemetry/api@1.9.0)": + "@opentelemetry/core@2.6.0(@opentelemetry/api@1.9.0)": dependencies: "@opentelemetry/api": 1.9.0 "@opentelemetry/semantic-conventions": 1.40.0 @@ -24531,7 +24485,7 @@ snapshots: "@opentelemetry/instrumentation-pg@0.57.0(@opentelemetry/api@1.9.0)": dependencies: "@opentelemetry/api": 1.9.0 - "@opentelemetry/core": 2.5.1(@opentelemetry/api@1.9.0) + "@opentelemetry/core": 2.6.0(@opentelemetry/api@1.9.0) "@opentelemetry/instrumentation": 0.204.0(@opentelemetry/api@1.9.0) "@opentelemetry/semantic-conventions": 1.40.0 "@opentelemetry/sql-common": 0.41.2(@opentelemetry/api@1.9.0) @@ -24631,7 +24585,7 @@ snapshots: "@opentelemetry/sql-common@0.41.2(@opentelemetry/api@1.9.0)": dependencies: "@opentelemetry/api": 1.9.0 - "@opentelemetry/core": 2.5.1(@opentelemetry/api@1.9.0) + "@opentelemetry/core": 2.6.0(@opentelemetry/api@1.9.0) "@openzeppelin/contracts@4.9.6": {} @@ -24702,7 +24656,7 @@ snapshots: "@pkgr/core@0.2.9": {} - "@pmmmwh/react-refresh-webpack-plugin@0.5.17(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-hot-middleware@2.26.1)(webpack@5.105.1)": + "@pmmmwh/react-refresh-webpack-plugin@0.5.17(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-hot-middleware@2.26.1)(webpack@5.105.4)": dependencies: ansi-html: 0.0.9 core-js-pure: 3.44.0 @@ -24712,14 +24666,14 @@ snapshots: react-refresh: 0.14.2 schema-utils: 4.3.3 source-map: 0.7.6 - webpack: 5.105.1 + webpack: 5.105.4 optionalDependencies: type-fest: 4.41.0 webpack-hot-middleware: 2.26.1 - "@ponder/utils@0.2.17(typescript@5.9.3)(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))": + "@ponder/utils@0.2.17(typescript@5.9.3)(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))": dependencies: - viem: 2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + viem: 2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) optionalDependencies: typescript: 5.9.3 @@ -25119,7 +25073,13 @@ snapshots: "@radix-ui/rect@1.1.1": {} - "@rainbow-me/rainbowkit@2.2.10(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76))": + "@railway/cli@4.31.0": + dependencies: + "@napi-rs/triples": 1.2.0 + node-fetch: 3.3.2 + tar: 6.2.1 + + "@rainbow-me/rainbowkit@2.2.10(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76))": dependencies: "@tanstack/react-query": 5.90.21(react@19.2.3) "@vanilla-extract/css": 1.17.3 @@ -25131,8 +25091,8 @@ snapshots: react-dom: 19.2.3(react@19.2.3) react-remove-scroll: 2.6.2(@types/react@19.2.8)(react@19.2.3) ua-parser-js: 1.0.40 - viem: 2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) - wagmi: 2.19.5(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76) + viem: 2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + wagmi: 2.19.5(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76) transitivePeerDependencies: - "@types/react" - babel-plugin-macros @@ -25142,7 +25102,7 @@ snapshots: dependencies: big.js: 6.2.2 dayjs: 1.11.13 - viem: 2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.22.4) + viem: 2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.22.4) transitivePeerDependencies: - bufferutil - typescript @@ -25153,7 +25113,7 @@ snapshots: dependencies: big.js: 6.2.2 dayjs: 1.11.13 - viem: 2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + viem: 2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) transitivePeerDependencies: - bufferutil - typescript @@ -25166,7 +25126,7 @@ snapshots: "@reown/appkit-wallet": 1.7.8(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10) "@walletconnect/universal-provider": 2.21.0(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) valtio: 1.13.2(@types/react@19.2.8)(react@19.2.3) - viem: 2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + viem: 2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) transitivePeerDependencies: - "@azure/app-configuration" - "@azure/cosmos" @@ -25316,7 +25276,7 @@ snapshots: "@walletconnect/logger": 2.1.2 "@walletconnect/universal-provider": 2.21.0(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) valtio: 1.13.2(@types/react@19.2.8)(react@19.2.3) - viem: 2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + viem: 2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) transitivePeerDependencies: - "@azure/app-configuration" - "@azure/cosmos" @@ -25370,7 +25330,7 @@ snapshots: "@walletconnect/universal-provider": 2.21.0(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) bs58: 6.0.0 valtio: 1.13.2(@types/react@19.2.8)(react@19.2.3) - viem: 2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + viem: 2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) transitivePeerDependencies: - "@azure/app-configuration" - "@azure/cosmos" @@ -25476,7 +25436,7 @@ snapshots: "@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)": dependencies: "@safe-global/safe-gateway-typescript-sdk": 3.23.1 - viem: 2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + viem: 2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) transitivePeerDependencies: - bufferutil - typescript @@ -25565,13 +25525,13 @@ snapshots: "@socket.io/component-emitter@3.1.2": {} - "@solana-program/system@0.8.1(@solana/kit@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))": + "@solana-program/system@0.8.1(@solana/kit@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)))": dependencies: - "@solana/kit": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + "@solana/kit": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)) - "@solana-program/token@0.6.0(@solana/kit@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))": + "@solana-program/token@0.6.0(@solana/kit@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)))": dependencies: - "@solana/kit": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + "@solana/kit": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)) "@solana/accounts@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)": dependencies: @@ -25701,7 +25661,7 @@ snapshots: transitivePeerDependencies: - fastestsmallesttextencoderdecoder - "@solana/kit@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))": + "@solana/kit@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))": dependencies: "@solana/accounts": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) "@solana/addresses": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) @@ -25715,11 +25675,11 @@ snapshots: "@solana/rpc": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) "@solana/rpc-parsed-types": 3.0.3(typescript@5.9.3) "@solana/rpc-spec-types": 3.0.3(typescript@5.9.3) - "@solana/rpc-subscriptions": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + "@solana/rpc-subscriptions": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)) "@solana/rpc-types": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) "@solana/signers": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) "@solana/sysvars": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) - "@solana/transaction-confirmation": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + "@solana/transaction-confirmation": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)) "@solana/transaction-messages": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) "@solana/transactions": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) typescript: 5.9.3 @@ -25798,14 +25758,14 @@ snapshots: transitivePeerDependencies: - fastestsmallesttextencoderdecoder - "@solana/rpc-subscriptions-channel-websocket@3.0.3(typescript@5.9.3)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))": + "@solana/rpc-subscriptions-channel-websocket@3.0.3(typescript@5.9.3)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))": dependencies: "@solana/errors": 3.0.3(typescript@5.9.3) "@solana/functional": 3.0.3(typescript@5.9.3) "@solana/rpc-subscriptions-spec": 3.0.3(typescript@5.9.3) "@solana/subscribable": 3.0.3(typescript@5.9.3) typescript: 5.9.3 - ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) "@solana/rpc-subscriptions-spec@3.0.3(typescript@5.9.3)": dependencies: @@ -25815,7 +25775,7 @@ snapshots: "@solana/subscribable": 3.0.3(typescript@5.9.3) typescript: 5.9.3 - "@solana/rpc-subscriptions@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))": + "@solana/rpc-subscriptions@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))": dependencies: "@solana/errors": 3.0.3(typescript@5.9.3) "@solana/fast-stable-stringify": 3.0.3(typescript@5.9.3) @@ -25823,7 +25783,7 @@ snapshots: "@solana/promises": 3.0.3(typescript@5.9.3) "@solana/rpc-spec-types": 3.0.3(typescript@5.9.3) "@solana/rpc-subscriptions-api": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) - "@solana/rpc-subscriptions-channel-websocket": 3.0.3(typescript@5.9.3)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + "@solana/rpc-subscriptions-channel-websocket": 3.0.3(typescript@5.9.3)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)) "@solana/rpc-subscriptions-spec": 3.0.3(typescript@5.9.3) "@solana/rpc-transformers": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) "@solana/rpc-types": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) @@ -25908,7 +25868,7 @@ snapshots: transitivePeerDependencies: - fastestsmallesttextencoderdecoder - "@solana/transaction-confirmation@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))": + "@solana/transaction-confirmation@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))": dependencies: "@solana/addresses": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) "@solana/codecs-strings": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) @@ -25916,7 +25876,7 @@ snapshots: "@solana/keys": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) "@solana/promises": 3.0.3(typescript@5.9.3) "@solana/rpc": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) - "@solana/rpc-subscriptions": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + "@solana/rpc-subscriptions": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)) "@solana/rpc-types": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) "@solana/transaction-messages": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) "@solana/transactions": 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) @@ -25960,13 +25920,13 @@ snapshots: "@solana/web3.js@1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)": dependencies: - "@babel/runtime": 7.28.4 + "@babel/runtime": 7.28.6 "@noble/curves": 1.9.7 - "@noble/hashes": 1.4.0 + "@noble/hashes": 1.8.0 "@solana/buffer-layout": 4.0.1 "@solana/codecs-numbers": 2.3.0(typescript@5.9.3) agentkeepalive: 4.6.0 - bn.js: 5.2.2 + bn.js: 5.2.3 borsh: 0.7.0 bs58: 4.0.1 buffer: 6.0.3 @@ -25991,48 +25951,48 @@ snapshots: "@starknet-io/types-js@0.7.10": {} - "@storybook/addon-designs@11.1.2(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))": + "@storybook/addon-designs@11.1.2(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))": dependencies: "@figspec/react": 2.0.1(@types/react@19.2.8)(react@19.2.3) - storybook: 10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10) + storybook: 10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10) optionalDependencies: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) transitivePeerDependencies: - "@types/react" - "@storybook/addon-onboarding@10.2.8(storybook@10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))": + "@storybook/addon-onboarding@10.2.17(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))": dependencies: - storybook: 10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10) + storybook: 10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10) - "@storybook/addon-vitest@10.2.8(@vitest/runner@4.1.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.33)(jiti@2.6.1)(jsdom@24.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.30.2)(msw@2.12.10(@types/node@20.19.33)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))": + "@storybook/addon-vitest@10.2.8(@vitest/runner@4.1.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.37)(jiti@2.6.1)(jsdom@24.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.31.1)(msw@2.12.10(@types/node@20.19.37)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))": dependencies: "@storybook/global": 5.0.0 "@storybook/icons": 2.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - storybook: 10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10) + storybook: 10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10) optionalDependencies: "@vitest/runner": 4.1.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.33)(jiti@2.6.1)(jsdom@24.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.30.2)(msw@2.12.10(@types/node@20.19.33)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.37)(jiti@2.6.1)(jsdom@24.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.31.1)(msw@2.12.10(@types/node@20.19.37)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - react - react-dom - "@storybook/builder-webpack5@10.2.8(storybook@10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(typescript@5.9.3)": + "@storybook/builder-webpack5@10.2.8(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(typescript@5.9.3)": dependencies: - "@storybook/core-webpack": 10.2.8(storybook@10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10)) + "@storybook/core-webpack": 10.2.8(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10)) case-sensitive-paths-webpack-plugin: 2.4.0 cjs-module-lexer: 1.4.3 - css-loader: 7.1.3(webpack@5.105.1) + css-loader: 7.1.4(webpack@5.105.4) es-module-lexer: 1.7.0 - fork-ts-checker-webpack-plugin: 9.1.0(typescript@5.9.3)(webpack@5.105.1) - html-webpack-plugin: 5.6.6(webpack@5.105.1) + fork-ts-checker-webpack-plugin: 9.1.0(typescript@5.9.3)(webpack@5.105.4) + html-webpack-plugin: 5.6.6(webpack@5.105.4) magic-string: 0.30.21 - storybook: 10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10) - style-loader: 4.0.0(webpack@5.105.1) - terser-webpack-plugin: 5.3.16(webpack@5.105.1) + storybook: 10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10) + style-loader: 4.0.0(webpack@5.105.4) + terser-webpack-plugin: 5.4.0(webpack@5.105.4) ts-dedent: 2.2.0 - webpack: 5.105.1 - webpack-dev-middleware: 6.1.3(webpack@5.105.1) + webpack: 5.105.4 + webpack-dev-middleware: 6.1.3(webpack@5.105.4) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.6.2 optionalDependencies: @@ -26044,9 +26004,9 @@ snapshots: - uglify-js - webpack-cli - "@storybook/core-webpack@10.2.8(storybook@10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))": + "@storybook/core-webpack@10.2.8(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))": dependencies: - storybook: 10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10) + storybook: 10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10) ts-dedent: 2.2.0 "@storybook/global@5.0.0": {} @@ -26056,7 +26016,7 @@ snapshots: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - "@storybook/nextjs@10.2.8(next@16.1.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(type-fest@4.41.0)(typescript@5.9.3)(webpack-hot-middleware@2.26.1)(webpack@5.105.1)": + "@storybook/nextjs@10.2.8(next@16.1.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(type-fest@4.41.0)(typescript@5.9.3)(webpack-hot-middleware@2.26.1)(webpack@5.105.4)": dependencies: "@babel/core": 7.28.5 "@babel/plugin-syntax-bigint": 7.8.3(@babel/core@7.28.5) @@ -26071,33 +26031,33 @@ snapshots: "@babel/preset-react": 7.28.5(@babel/core@7.28.5) "@babel/preset-typescript": 7.28.5(@babel/core@7.28.5) "@babel/runtime": 7.28.4 - "@pmmmwh/react-refresh-webpack-plugin": 0.5.17(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-hot-middleware@2.26.1)(webpack@5.105.1) - "@storybook/builder-webpack5": 10.2.8(storybook@10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(typescript@5.9.3) - "@storybook/preset-react-webpack": 10.2.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(typescript@5.9.3) - "@storybook/react": 10.2.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(typescript@5.9.3) + "@pmmmwh/react-refresh-webpack-plugin": 0.5.17(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-hot-middleware@2.26.1)(webpack@5.105.4) + "@storybook/builder-webpack5": 10.2.8(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(typescript@5.9.3) + "@storybook/preset-react-webpack": 10.2.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(typescript@5.9.3) + "@storybook/react": 10.2.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(typescript@5.9.3) "@types/semver": 7.7.1 - babel-loader: 9.2.1(@babel/core@7.28.5)(webpack@5.105.1) - css-loader: 6.11.0(webpack@5.105.1) + babel-loader: 9.2.1(@babel/core@7.28.5)(webpack@5.105.4) + css-loader: 6.11.0(webpack@5.105.4) image-size: 2.0.2 loader-utils: 3.3.1 next: 16.1.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - node-polyfill-webpack-plugin: 2.0.1(webpack@5.105.1) - postcss: 8.5.6 - postcss-loader: 8.1.1(postcss@8.5.6)(typescript@5.9.3)(webpack@5.105.1) + node-polyfill-webpack-plugin: 2.0.1(webpack@5.105.4) + postcss: 8.5.8 + postcss-loader: 8.1.1(postcss@8.5.8)(typescript@5.9.3)(webpack@5.105.4) react: 19.2.3 react-dom: 19.2.3(react@19.2.3) react-refresh: 0.14.2 resolve-url-loader: 5.0.0 - sass-loader: 16.0.5(webpack@5.105.1) + sass-loader: 16.0.5(webpack@5.105.4) semver: 7.7.3 - storybook: 10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10) - style-loader: 3.3.4(webpack@5.105.1) + storybook: 10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10) + style-loader: 3.3.4(webpack@5.105.4) styled-jsx: 5.1.7(@babel/core@7.28.5)(react@19.2.3) tsconfig-paths: 4.2.0 tsconfig-paths-webpack-plugin: 4.2.0 optionalDependencies: typescript: 5.9.3 - webpack: 5.105.1 + webpack: 5.105.4 transitivePeerDependencies: - "@rspack/core" - "@swc/core" @@ -26116,10 +26076,10 @@ snapshots: - webpack-hot-middleware - webpack-plugin-serve - "@storybook/preset-react-webpack@10.2.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(typescript@5.9.3)": + "@storybook/preset-react-webpack@10.2.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(typescript@5.9.3)": dependencies: - "@storybook/core-webpack": 10.2.8(storybook@10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10)) - "@storybook/react-docgen-typescript-plugin": 1.0.6--canary.9.0c3f3b7.0(typescript@5.9.3)(webpack@5.105.1) + "@storybook/core-webpack": 10.2.8(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10)) + "@storybook/react-docgen-typescript-plugin": 1.0.6--canary.9.0c3f3b7.0(typescript@5.9.3)(webpack@5.105.4) "@types/semver": 7.7.1 magic-string: 0.30.21 react: 19.2.3 @@ -26127,9 +26087,9 @@ snapshots: react-dom: 19.2.3(react@19.2.3) resolve: 1.22.11 semver: 7.7.4 - storybook: 10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10) + storybook: 10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10) tsconfig-paths: 4.2.0 - webpack: 5.105.1 + webpack: 5.105.4 optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: @@ -26139,7 +26099,7 @@ snapshots: - uglify-js - webpack-cli - "@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.9.3)(webpack@5.105.1)": + "@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.9.3)(webpack@5.105.4)": dependencies: debug: 4.4.3 endent: 2.1.0 @@ -26149,24 +26109,43 @@ snapshots: react-docgen-typescript: 2.4.0(typescript@5.9.3) tslib: 2.8.1 typescript: 5.9.3 - webpack: 5.105.1 + webpack: 5.105.4 transitivePeerDependencies: - supports-color - "@storybook/react-dom-shim@10.2.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))": + "@storybook/react-dom-shim@10.2.17(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))": dependencies: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - storybook: 10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10) + storybook: 10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10) - "@storybook/react@10.2.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(typescript@5.9.3)": + "@storybook/react-dom-shim@10.2.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))": + dependencies: + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + storybook: 10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10) + + "@storybook/react@10.2.17(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(typescript@5.9.3)": dependencies: "@storybook/global": 5.0.0 - "@storybook/react-dom-shim": 10.2.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10)) + "@storybook/react-dom-shim": 10.2.17(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10)) react: 19.2.3 react-docgen: 8.0.2 react-dom: 19.2.3(react@19.2.3) - storybook: 10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10) + storybook: 10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + "@storybook/react@10.2.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(typescript@5.9.3)": + dependencies: + "@storybook/global": 5.0.0 + "@storybook/react-dom-shim": 10.2.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10)) + react: 19.2.3 + react-docgen: 8.0.2 + react-dom: 19.2.3(react@19.2.3) + storybook: 10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: @@ -26180,74 +26159,74 @@ snapshots: dependencies: tslib: 2.8.1 - "@tailwindcss/node@4.1.18": + "@tailwindcss/node@4.2.1": dependencies: "@jridgewell/remapping": 2.3.5 - enhanced-resolve: 5.19.0 + enhanced-resolve: 5.20.0 jiti: 2.6.1 - lightningcss: 1.30.2 + lightningcss: 1.31.1 magic-string: 0.30.21 source-map-js: 1.2.1 - tailwindcss: 4.1.18 + tailwindcss: 4.2.1 - "@tailwindcss/oxide-android-arm64@4.1.18": + "@tailwindcss/oxide-android-arm64@4.2.1": optional: true - "@tailwindcss/oxide-darwin-arm64@4.1.18": + "@tailwindcss/oxide-darwin-arm64@4.2.1": optional: true - "@tailwindcss/oxide-darwin-x64@4.1.18": + "@tailwindcss/oxide-darwin-x64@4.2.1": optional: true - "@tailwindcss/oxide-freebsd-x64@4.1.18": + "@tailwindcss/oxide-freebsd-x64@4.2.1": optional: true - "@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18": + "@tailwindcss/oxide-linux-arm-gnueabihf@4.2.1": optional: true - "@tailwindcss/oxide-linux-arm64-gnu@4.1.18": + "@tailwindcss/oxide-linux-arm64-gnu@4.2.1": optional: true - "@tailwindcss/oxide-linux-arm64-musl@4.1.18": + "@tailwindcss/oxide-linux-arm64-musl@4.2.1": optional: true - "@tailwindcss/oxide-linux-x64-gnu@4.1.18": + "@tailwindcss/oxide-linux-x64-gnu@4.2.1": optional: true - "@tailwindcss/oxide-linux-x64-musl@4.1.18": + "@tailwindcss/oxide-linux-x64-musl@4.2.1": optional: true - "@tailwindcss/oxide-wasm32-wasi@4.1.18": + "@tailwindcss/oxide-wasm32-wasi@4.2.1": optional: true - "@tailwindcss/oxide-win32-arm64-msvc@4.1.18": + "@tailwindcss/oxide-win32-arm64-msvc@4.2.1": optional: true - "@tailwindcss/oxide-win32-x64-msvc@4.1.18": + "@tailwindcss/oxide-win32-x64-msvc@4.2.1": optional: true - "@tailwindcss/oxide@4.1.18": + "@tailwindcss/oxide@4.2.1": optionalDependencies: - "@tailwindcss/oxide-android-arm64": 4.1.18 - "@tailwindcss/oxide-darwin-arm64": 4.1.18 - "@tailwindcss/oxide-darwin-x64": 4.1.18 - "@tailwindcss/oxide-freebsd-x64": 4.1.18 - "@tailwindcss/oxide-linux-arm-gnueabihf": 4.1.18 - "@tailwindcss/oxide-linux-arm64-gnu": 4.1.18 - "@tailwindcss/oxide-linux-arm64-musl": 4.1.18 - "@tailwindcss/oxide-linux-x64-gnu": 4.1.18 - "@tailwindcss/oxide-linux-x64-musl": 4.1.18 - "@tailwindcss/oxide-wasm32-wasi": 4.1.18 - "@tailwindcss/oxide-win32-arm64-msvc": 4.1.18 - "@tailwindcss/oxide-win32-x64-msvc": 4.1.18 - - "@tailwindcss/postcss@4.1.18": + "@tailwindcss/oxide-android-arm64": 4.2.1 + "@tailwindcss/oxide-darwin-arm64": 4.2.1 + "@tailwindcss/oxide-darwin-x64": 4.2.1 + "@tailwindcss/oxide-freebsd-x64": 4.2.1 + "@tailwindcss/oxide-linux-arm-gnueabihf": 4.2.1 + "@tailwindcss/oxide-linux-arm64-gnu": 4.2.1 + "@tailwindcss/oxide-linux-arm64-musl": 4.2.1 + "@tailwindcss/oxide-linux-x64-gnu": 4.2.1 + "@tailwindcss/oxide-linux-x64-musl": 4.2.1 + "@tailwindcss/oxide-wasm32-wasi": 4.2.1 + "@tailwindcss/oxide-win32-arm64-msvc": 4.2.1 + "@tailwindcss/oxide-win32-x64-msvc": 4.2.1 + + "@tailwindcss/postcss@4.2.1": dependencies: "@alloc/quick-lru": 5.2.0 - "@tailwindcss/node": 4.1.18 - "@tailwindcss/oxide": 4.1.18 - postcss: 8.5.6 - tailwindcss: 4.1.18 + "@tailwindcss/node": 4.2.1 + "@tailwindcss/oxide": 4.2.1 + postcss: 8.5.8 + tailwindcss: 4.2.1 "@tanstack/query-core@5.90.20": {} @@ -26288,21 +26267,21 @@ snapshots: dependencies: "@testing-library/dom": 10.4.0 - "@theguild/federation-composition@0.19.1(graphql@16.12.0)": + "@theguild/federation-composition@0.19.1(graphql@16.13.1)": dependencies: constant-case: 3.0.4 debug: 4.4.1 - graphql: 16.12.0 + graphql: 16.13.1 json5: 2.2.3 lodash.sortby: 4.7.0 transitivePeerDependencies: - supports-color - "@theguild/federation-composition@0.21.3(graphql@16.12.0)": + "@theguild/federation-composition@0.22.0(graphql@16.13.1)": dependencies: constant-case: 3.0.4 debug: 4.4.3 - graphql: 16.12.0 + graphql: 16.13.1 json5: 2.2.3 lodash.sortby: 4.7.0 transitivePeerDependencies: @@ -26310,7 +26289,7 @@ snapshots: "@ts-morph/common@0.28.1": dependencies: - minimatch: 10.1.2 + minimatch: 10.2.4 path-browserify: 1.0.1 tinyglobby: 0.2.15 @@ -26354,13 +26333,18 @@ snapshots: dependencies: "@types/deep-eql": 4.0.2 + "@types/chai@5.2.3": + dependencies: + "@types/deep-eql": 4.0.2 + assertion-error: 2.0.1 + "@types/connect@3.4.38": dependencies: - "@types/node": 20.19.33 + "@types/node": 20.19.37 "@types/conventional-commits-parser@5.0.1": dependencies: - "@types/node": 20.19.33 + "@types/node": 20.19.37 "@types/d3-array@3.2.1": {} @@ -26408,7 +26392,7 @@ snapshots: "@types/graceful-fs@4.1.9": dependencies: - "@types/node": 20.19.33 + "@types/node": 20.19.37 "@types/html-minifier-terser@6.1.0": {} @@ -26433,13 +26417,13 @@ snapshots: "@types/json5@0.0.29": {} - "@types/lodash@4.17.23": {} + "@types/lodash@4.17.24": {} "@types/ms@2.1.0": {} "@types/node@12.20.55": {} - "@types/node@20.19.33": + "@types/node@20.19.37": dependencies: undici-types: 6.21.0 @@ -26447,23 +26431,23 @@ snapshots: dependencies: undici-types: 6.19.8 - "@types/node@25.5.0": + "@types/node@25.4.0": dependencies: undici-types: 7.18.2 "@types/pg-pool@2.0.6": dependencies: - "@types/pg": 8.16.0 + "@types/pg": 8.18.0 "@types/pg@8.15.5": dependencies: - "@types/node": 20.19.33 - pg-protocol: 1.11.0 + "@types/node": 20.19.37 + pg-protocol: 1.13.0 pg-types: 2.2.0 - "@types/pg@8.16.0": + "@types/pg@8.18.0": dependencies: - "@types/node": 20.19.33 + "@types/node": 20.19.37 pg-protocol: 1.11.0 pg-types: 2.2.0 @@ -26499,11 +26483,11 @@ snapshots: "@types/ws@7.4.7": dependencies: - "@types/node": 20.19.33 + "@types/node": 20.19.37 "@types/ws@8.18.1": dependencies: - "@types/node": 20.19.33 + "@types/node": 20.19.37 "@types/yargs-parser@21.0.3": {} @@ -26511,15 +26495,15 @@ snapshots: dependencies: "@types/yargs-parser": 21.0.3 - "@typescript-eslint/eslint-plugin@8.53.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)": + "@typescript-eslint/eslint-plugin@8.53.0(@typescript-eslint/parser@8.53.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)": dependencies: "@eslint-community/regexpp": 4.12.2 - "@typescript-eslint/parser": 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + "@typescript-eslint/parser": 8.53.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) "@typescript-eslint/scope-manager": 8.53.0 - "@typescript-eslint/type-utils": 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - "@typescript-eslint/utils": 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + "@typescript-eslint/type-utils": 8.53.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + "@typescript-eslint/utils": 8.53.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) "@typescript-eslint/visitor-keys": 8.53.0 - eslint: 9.39.2(jiti@2.6.1) + eslint: 9.39.4(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.4.0(typescript@5.9.3) @@ -26527,15 +26511,15 @@ snapshots: transitivePeerDependencies: - supports-color - "@typescript-eslint/eslint-plugin@8.55.0(@typescript-eslint/parser@8.55.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)": + "@typescript-eslint/eslint-plugin@8.57.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)": dependencies: "@eslint-community/regexpp": 4.12.2 - "@typescript-eslint/parser": 8.55.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - "@typescript-eslint/scope-manager": 8.55.0 - "@typescript-eslint/type-utils": 8.55.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - "@typescript-eslint/utils": 8.55.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - "@typescript-eslint/visitor-keys": 8.55.0 - eslint: 9.39.2(jiti@2.6.1) + "@typescript-eslint/parser": 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + "@typescript-eslint/scope-manager": 8.57.0 + "@typescript-eslint/type-utils": 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + "@typescript-eslint/utils": 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + "@typescript-eslint/visitor-keys": 8.57.0 + eslint: 9.39.4(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.4.0(typescript@5.9.3) @@ -26543,26 +26527,26 @@ snapshots: transitivePeerDependencies: - supports-color - "@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)": + "@typescript-eslint/parser@8.53.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)": dependencies: "@typescript-eslint/scope-manager": 8.53.0 "@typescript-eslint/types": 8.53.0 "@typescript-eslint/typescript-estree": 8.53.0(typescript@5.9.3) "@typescript-eslint/visitor-keys": 8.53.0 debug: 4.4.3 - eslint: 9.39.2(jiti@2.6.1) + eslint: 9.39.4(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - "@typescript-eslint/parser@8.55.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)": + "@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)": dependencies: - "@typescript-eslint/scope-manager": 8.55.0 - "@typescript-eslint/types": 8.55.0 - "@typescript-eslint/typescript-estree": 8.55.0(typescript@5.9.3) - "@typescript-eslint/visitor-keys": 8.55.0 + "@typescript-eslint/scope-manager": 8.57.0 + "@typescript-eslint/types": 8.57.0 + "@typescript-eslint/typescript-estree": 8.57.0(typescript@5.9.3) + "@typescript-eslint/visitor-keys": 8.57.0 debug: 4.4.3 - eslint: 9.39.2(jiti@2.6.1) + eslint: 9.39.4(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -26585,6 +26569,15 @@ snapshots: transitivePeerDependencies: - supports-color + "@typescript-eslint/project-service@8.57.0(typescript@5.9.3)": + dependencies: + "@typescript-eslint/tsconfig-utils": 8.57.0(typescript@5.9.3) + "@typescript-eslint/types": 8.57.0 + debug: 4.4.3 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + "@typescript-eslint/scope-manager@8.53.0": dependencies: "@typescript-eslint/types": 8.53.0 @@ -26595,6 +26588,11 @@ snapshots: "@typescript-eslint/types": 8.55.0 "@typescript-eslint/visitor-keys": 8.55.0 + "@typescript-eslint/scope-manager@8.57.0": + dependencies: + "@typescript-eslint/types": 8.57.0 + "@typescript-eslint/visitor-keys": 8.57.0 + "@typescript-eslint/tsconfig-utils@8.53.0(typescript@5.9.3)": dependencies: typescript: 5.9.3 @@ -26603,25 +26601,29 @@ snapshots: dependencies: typescript: 5.9.3 - "@typescript-eslint/type-utils@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)": + "@typescript-eslint/tsconfig-utils@8.57.0(typescript@5.9.3)": + dependencies: + typescript: 5.9.3 + + "@typescript-eslint/type-utils@8.53.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)": dependencies: "@typescript-eslint/types": 8.53.0 "@typescript-eslint/typescript-estree": 8.53.0(typescript@5.9.3) - "@typescript-eslint/utils": 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + "@typescript-eslint/utils": 8.53.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3 - eslint: 9.39.2(jiti@2.6.1) + eslint: 9.39.4(jiti@2.6.1) ts-api-utils: 2.4.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - "@typescript-eslint/type-utils@8.55.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)": + "@typescript-eslint/type-utils@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)": dependencies: - "@typescript-eslint/types": 8.55.0 - "@typescript-eslint/typescript-estree": 8.55.0(typescript@5.9.3) - "@typescript-eslint/utils": 8.55.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + "@typescript-eslint/types": 8.57.0 + "@typescript-eslint/typescript-estree": 8.57.0(typescript@5.9.3) + "@typescript-eslint/utils": 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3 - eslint: 9.39.2(jiti@2.6.1) + eslint: 9.39.4(jiti@2.6.1) ts-api-utils: 2.4.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: @@ -26631,6 +26633,8 @@ snapshots: "@typescript-eslint/types@8.55.0": {} + "@typescript-eslint/types@8.57.0": {} + "@typescript-eslint/typescript-estree@8.53.0(typescript@5.9.3)": dependencies: "@typescript-eslint/project-service": 8.53.0(typescript@5.9.3) @@ -26638,7 +26642,7 @@ snapshots: "@typescript-eslint/types": 8.53.0 "@typescript-eslint/visitor-keys": 8.53.0 debug: 4.4.3 - minimatch: 9.0.5 + minimatch: 9.0.9 semver: 7.7.4 tinyglobby: 0.2.15 ts-api-utils: 2.4.0(typescript@5.9.3) @@ -26653,7 +26657,7 @@ snapshots: "@typescript-eslint/types": 8.55.0 "@typescript-eslint/visitor-keys": 8.55.0 debug: 4.4.3 - minimatch: 9.0.5 + minimatch: 9.0.9 semver: 7.7.4 tinyglobby: 0.2.15 ts-api-utils: 2.4.0(typescript@5.9.3) @@ -26661,24 +26665,50 @@ snapshots: transitivePeerDependencies: - supports-color - "@typescript-eslint/utils@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)": + "@typescript-eslint/typescript-estree@8.57.0(typescript@5.9.3)": dependencies: - "@eslint-community/eslint-utils": 4.9.1(eslint@9.39.2(jiti@2.6.1)) + "@typescript-eslint/project-service": 8.57.0(typescript@5.9.3) + "@typescript-eslint/tsconfig-utils": 8.57.0(typescript@5.9.3) + "@typescript-eslint/types": 8.57.0 + "@typescript-eslint/visitor-keys": 8.57.0 + debug: 4.4.3 + minimatch: 10.2.4 + semver: 7.7.4 + tinyglobby: 0.2.15 + ts-api-utils: 2.4.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + "@typescript-eslint/utils@8.53.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)": + dependencies: + "@eslint-community/eslint-utils": 4.9.1(eslint@9.39.4(jiti@2.6.1)) "@typescript-eslint/scope-manager": 8.53.0 "@typescript-eslint/types": 8.53.0 "@typescript-eslint/typescript-estree": 8.53.0(typescript@5.9.3) - eslint: 9.39.2(jiti@2.6.1) + eslint: 9.39.4(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - "@typescript-eslint/utils@8.55.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)": + "@typescript-eslint/utils@8.55.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)": dependencies: - "@eslint-community/eslint-utils": 4.9.1(eslint@9.39.2(jiti@2.6.1)) + "@eslint-community/eslint-utils": 4.9.1(eslint@9.39.4(jiti@2.6.1)) "@typescript-eslint/scope-manager": 8.55.0 "@typescript-eslint/types": 8.55.0 "@typescript-eslint/typescript-estree": 8.55.0(typescript@5.9.3) - eslint: 9.39.2(jiti@2.6.1) + eslint: 9.39.4(jiti@2.6.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + "@typescript-eslint/utils@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)": + dependencies: + "@eslint-community/eslint-utils": 4.9.1(eslint@9.39.4(jiti@2.6.1)) + "@typescript-eslint/scope-manager": 8.57.0 + "@typescript-eslint/types": 8.57.0 + "@typescript-eslint/typescript-estree": 8.57.0(typescript@5.9.3) + eslint: 9.39.4(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -26693,6 +26723,11 @@ snapshots: "@typescript-eslint/types": 8.55.0 eslint-visitor-keys: 4.2.1 + "@typescript-eslint/visitor-keys@8.57.0": + dependencies: + "@typescript-eslint/types": 8.57.0 + eslint-visitor-keys: 5.0.1 + "@unrs/resolver-binding-android-arm-eabi@1.11.1": optional: true @@ -26779,7 +26814,7 @@ snapshots: dependencies: "@vanilla-extract/css": 1.17.3 - "@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.33)(jiti@2.6.1)(jsdom@24.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.30.2)(msw@2.12.10(@types/node@20.19.33)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))": + "@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.37)(jiti@2.6.1)(jsdom@24.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.31.1)(msw@2.12.10(@types/node@20.19.37)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))": dependencies: "@ampproject/remapping": 2.3.0 "@bcoe/v8-coverage": 1.0.2 @@ -26794,7 +26829,7 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.33)(jiti@2.6.1)(jsdom@24.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.30.2)(msw@2.12.10(@types/node@20.19.33)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.37)(jiti@2.6.1)(jsdom@24.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.31.1)(msw@2.12.10(@types/node@20.19.37)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color @@ -26809,29 +26844,29 @@ snapshots: "@vitest/expect@4.1.0": dependencies: "@standard-schema/spec": 1.1.0 - "@types/chai": 5.2.2 + "@types/chai": 5.2.3 "@vitest/spy": 4.1.0 "@vitest/utils": 4.1.0 chai: 6.2.2 - tinyrainbow: 3.1.0 + tinyrainbow: 3.0.3 - "@vitest/mocker@3.2.4(msw@2.12.10(@types/node@20.19.33)(typescript@5.9.3))(vite@7.0.5(@types/node@20.19.33)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))": + "@vitest/mocker@3.2.4(msw@2.12.10(@types/node@20.19.37)(typescript@5.9.3))(vite@7.0.5(@types/node@20.19.37)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))": dependencies: "@vitest/spy": 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - msw: 2.12.10(@types/node@20.19.33)(typescript@5.9.3) - vite: 7.0.5(@types/node@20.19.33)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + msw: 2.12.10(@types/node@20.19.37)(typescript@5.9.3) + vite: 7.0.5(@types/node@20.19.37)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) - "@vitest/mocker@4.1.0(msw@2.12.10(@types/node@25.5.0)(typescript@5.9.3))(vite@7.0.5(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))": + "@vitest/mocker@4.1.0(msw@2.12.10(@types/node@25.4.0)(typescript@5.9.3))(vite@7.0.5(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))": dependencies: "@vitest/spy": 4.1.0 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - msw: 2.12.10(@types/node@25.5.0)(typescript@5.9.3) - vite: 7.0.5(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + msw: 2.12.10(@types/node@25.4.0)(typescript@5.9.3) + vite: 7.0.5(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) "@vitest/pretty-format@3.2.4": dependencies: @@ -26839,7 +26874,7 @@ snapshots: "@vitest/pretty-format@4.1.0": dependencies: - tinyrainbow: 3.1.0 + tinyrainbow: 3.0.3 "@vitest/runner@3.2.4": dependencies: @@ -26881,21 +26916,21 @@ snapshots: dependencies: "@vitest/pretty-format": 4.1.0 convert-source-map: 2.0.0 - tinyrainbow: 3.1.0 + tinyrainbow: 3.0.3 - "@wagmi/connectors@6.2.0(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(@wagmi/core@2.22.1(@tanstack/query-core@5.90.20)(@types/react@19.2.8)(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(utf-8-validate@5.0.10)(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76)": + "@wagmi/connectors@6.2.0(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(@wagmi/core@2.22.1(@tanstack/query-core@5.90.20)(@types/react@19.2.8)(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(utf-8-validate@5.0.10)(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76))(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76)": dependencies: - "@base-org/account": 2.4.0(@types/react@19.2.8)(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76) + "@base-org/account": 2.4.0(@types/react@19.2.8)(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(utf-8-validate@5.0.10)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76) "@coinbase/wallet-sdk": 4.3.6(@types/react@19.2.8)(bufferutil@4.0.9)(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(utf-8-validate@5.0.10)(zod@3.25.76) - "@gemini-wallet/core": 0.3.2(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)) + "@gemini-wallet/core": 0.3.2(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)) "@metamask/sdk": 0.33.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) "@safe-global/safe-apps-provider": 0.18.6(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) "@safe-global/safe-apps-sdk": 9.1.0(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) - "@wagmi/core": 2.22.1(@tanstack/query-core@5.90.20)(@types/react@19.2.8)(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)) + "@wagmi/core": 2.22.1(@tanstack/query-core@5.90.20)(@types/react@19.2.8)(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)) "@walletconnect/ethereum-provider": 2.21.1(@types/react@19.2.8)(bufferutil@4.0.9)(react@19.2.3)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) cbw-sdk: "@coinbase/wallet-sdk@3.9.3" - porto: 0.2.35(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(@wagmi/core@2.22.1(@tanstack/query-core@5.90.20)(@types/react@19.2.8)(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)))(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76)) - viem: 2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + porto: 0.2.35(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(@wagmi/core@2.22.1(@tanstack/query-core@5.90.20)(@types/react@19.2.8)(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)))(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76)) + viem: 2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: @@ -26937,11 +26972,11 @@ snapshots: - ws - zod - "@wagmi/core@2.22.1(@tanstack/query-core@5.90.20)(@types/react@19.2.8)(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))": + "@wagmi/core@2.22.1(@tanstack/query-core@5.90.20)(@types/react@19.2.8)(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))": dependencies: eventemitter3: 5.0.1 mipd: 0.0.7(typescript@5.9.3) - viem: 2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + viem: 2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) zustand: 5.0.0(@types/react@19.2.8)(react@19.2.3)(use-sync-external-store@1.4.0(react@19.2.3)) optionalDependencies: "@tanstack/query-core": 5.90.20 @@ -27676,13 +27711,13 @@ snapshots: dependencies: event-target-shim: 5.0.1 - acorn-import-attributes@1.9.5(acorn@8.15.0): + acorn-import-attributes@1.9.5(acorn@8.16.0): dependencies: - acorn: 8.15.0 + acorn: 8.16.0 - acorn-import-phases@1.0.4(acorn@8.15.0): + acorn-import-phases@1.0.4(acorn@8.16.0): dependencies: - acorn: 8.15.0 + acorn: 8.16.0 acorn-jsx@5.3.2(acorn@8.15.0): dependencies: @@ -27690,10 +27725,12 @@ snapshots: acorn-walk@8.3.4: dependencies: - acorn: 8.15.0 + acorn: 8.16.0 acorn@8.15.0: {} + acorn@8.16.0: {} + adjust-sourcemap-loader@4.0.0: dependencies: loader-utils: 2.0.4 @@ -27726,16 +27763,20 @@ snapshots: optionalDependencies: ajv: 8.17.1 - ajv-keywords@3.5.2(ajv@6.12.6): + ajv-formats@3.0.1(ajv@8.18.0): + optionalDependencies: + ajv: 8.18.0 + + ajv-keywords@3.5.2(ajv@6.14.0): dependencies: - ajv: 6.12.6 + ajv: 6.14.0 ajv-keywords@5.1.0(ajv@8.17.1): dependencies: ajv: 8.17.1 fast-deep-equal: 3.1.3 - ajv@6.12.6: + ajv@6.14.0: dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 @@ -27749,6 +27790,13 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 + ajv@8.18.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.0.6 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + ansi-align@3.0.1: dependencies: string-width: 4.2.3 @@ -27767,8 +27815,6 @@ snapshots: ansi-regex@5.0.1: {} - ansi-regex@6.1.0: {} - ansi-regex@6.2.2: {} ansi-styles@4.3.0: @@ -27881,7 +27927,7 @@ snapshots: asn1.js@4.10.1: dependencies: - bn.js: 4.12.2 + bn.js: 4.12.3 inherits: 2.0.4 minimalistic-assert: 1.0.1 @@ -27932,12 +27978,12 @@ snapshots: axe-core@4.10.3: {} - axios-retry@4.5.0(axios@1.13.5): + axios-retry@4.5.0(axios@1.13.6): dependencies: - axios: 1.13.5 + axios: 1.13.6 is-retry-allowed: 2.2.0 - axios@1.13.5: + axios@1.13.6: dependencies: follow-redirects: 1.15.11 form-data: 4.0.5 @@ -27974,12 +28020,12 @@ snapshots: transitivePeerDependencies: - supports-color - babel-loader@9.2.1(@babel/core@7.28.5)(webpack@5.105.1): + babel-loader@9.2.1(@babel/core@7.28.5)(webpack@5.105.4): dependencies: "@babel/core": 7.28.5 find-cache-dir: 4.0.0 schema-utils: 4.3.3 - webpack: 5.105.1 + webpack: 5.105.4 babel-plugin-istanbul@6.1.1: dependencies: @@ -28022,8 +28068,6 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: {} - babel-preset-current-node-syntax@1.1.0(@babel/core@7.28.5): dependencies: "@babel/core": 7.28.5 @@ -28063,39 +28107,6 @@ snapshots: "@babel/plugin-syntax-private-property-in-object": 7.14.5(@babel/core@7.29.0) "@babel/plugin-syntax-top-level-await": 7.14.5(@babel/core@7.29.0) - babel-preset-fbjs@3.4.0(@babel/core@7.29.0): - dependencies: - "@babel/core": 7.29.0 - "@babel/plugin-proposal-class-properties": 7.18.6(@babel/core@7.29.0) - "@babel/plugin-proposal-object-rest-spread": 7.20.7(@babel/core@7.29.0) - "@babel/plugin-syntax-class-properties": 7.12.13(@babel/core@7.29.0) - "@babel/plugin-syntax-flow": 7.27.1(@babel/core@7.29.0) - "@babel/plugin-syntax-jsx": 7.27.1(@babel/core@7.29.0) - "@babel/plugin-syntax-object-rest-spread": 7.8.3(@babel/core@7.29.0) - "@babel/plugin-transform-arrow-functions": 7.27.1(@babel/core@7.29.0) - "@babel/plugin-transform-block-scoped-functions": 7.27.1(@babel/core@7.29.0) - "@babel/plugin-transform-block-scoping": 7.28.0(@babel/core@7.29.0) - "@babel/plugin-transform-classes": 7.28.0(@babel/core@7.29.0) - "@babel/plugin-transform-computed-properties": 7.27.1(@babel/core@7.29.0) - "@babel/plugin-transform-destructuring": 7.28.0(@babel/core@7.29.0) - "@babel/plugin-transform-flow-strip-types": 7.27.1(@babel/core@7.29.0) - "@babel/plugin-transform-for-of": 7.27.1(@babel/core@7.29.0) - "@babel/plugin-transform-function-name": 7.27.1(@babel/core@7.29.0) - "@babel/plugin-transform-literals": 7.27.1(@babel/core@7.29.0) - "@babel/plugin-transform-member-expression-literals": 7.27.1(@babel/core@7.29.0) - "@babel/plugin-transform-modules-commonjs": 7.27.1(@babel/core@7.29.0) - "@babel/plugin-transform-object-super": 7.27.1(@babel/core@7.29.0) - "@babel/plugin-transform-parameters": 7.27.7(@babel/core@7.29.0) - "@babel/plugin-transform-property-literals": 7.27.1(@babel/core@7.29.0) - "@babel/plugin-transform-react-display-name": 7.28.0(@babel/core@7.29.0) - "@babel/plugin-transform-react-jsx": 7.27.1(@babel/core@7.29.0) - "@babel/plugin-transform-shorthand-properties": 7.27.1(@babel/core@7.29.0) - "@babel/plugin-transform-spread": 7.27.1(@babel/core@7.29.0) - "@babel/plugin-transform-template-literals": 7.27.1(@babel/core@7.29.0) - babel-plugin-syntax-trailing-function-commas: 7.0.0-beta.0 - transitivePeerDependencies: - - supports-color - babel-preset-jest@29.6.3(@babel/core@7.28.5): dependencies: "@babel/core": 7.28.5 @@ -28111,6 +28122,8 @@ snapshots: balanced-match@1.0.2: {} + balanced-match@4.0.4: {} + base-x@3.0.11: dependencies: safe-buffer: 5.2.1 @@ -28137,13 +28150,17 @@ snapshots: bn.js@4.12.2: {} + bn.js@4.12.3: {} + bn.js@5.2.2: {} + bn.js@5.2.3: {} + boolbase@1.0.0: {} borsh@0.7.0: dependencies: - bn.js: 5.2.2 + bn.js: 5.2.3 bs58: 4.0.1 text-encoding-utf-8: 1.0.2 @@ -28169,6 +28186,10 @@ snapshots: dependencies: balanced-match: 1.0.2 + brace-expansion@5.0.4: + dependencies: + balanced-match: 4.0.4 + braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -28199,13 +28220,13 @@ snapshots: browserify-rsa@4.1.1: dependencies: - bn.js: 5.2.2 + bn.js: 5.2.3 randombytes: 2.1.0 safe-buffer: 5.2.1 browserify-sign@4.2.3: dependencies: - bn.js: 5.2.2 + bn.js: 5.2.3 browserify-rsa: 4.1.1 create-hash: 1.2.0 create-hmac: 1.1.7 @@ -28333,8 +28354,6 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.4.1: {} - chalk@5.6.2: {} change-case-all@1.0.15: @@ -28377,6 +28396,8 @@ snapshots: dependencies: readdirp: 4.1.2 + chownr@2.0.0: {} + chromatic@13.3.4: {} chrome-trace-event@1.0.4: {} @@ -28470,8 +28491,6 @@ snapshots: commander@14.0.0: {} - commander@14.0.2: {} - commander@14.0.3: {} commander@2.20.3: {} @@ -28565,9 +28584,9 @@ snapshots: core-util-is@1.0.3: {} - cosmiconfig-typescript-loader@6.1.0(@types/node@20.19.33)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3): + cosmiconfig-typescript-loader@6.1.0(@types/node@20.19.37)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3): dependencies: - "@types/node": 20.19.33 + "@types/node": 20.19.37 cosmiconfig: 9.0.0(typescript@5.9.3) jiti: 2.6.1 typescript: 5.9.3 @@ -28590,11 +28609,20 @@ snapshots: optionalDependencies: typescript: 5.9.3 + cosmiconfig@9.0.1(typescript@5.9.3): + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.1 + js-yaml: 4.1.1 + parse-json: 5.2.0 + optionalDependencies: + typescript: 5.9.3 + crc-32@1.2.2: {} create-ecdh@4.0.4: dependencies: - bn.js: 4.12.2 + bn.js: 4.12.3 elliptic: 6.6.1 create-hash@1.1.3: @@ -28621,13 +28649,13 @@ snapshots: safe-buffer: 5.2.1 sha.js: 2.4.12 - create-jest@29.7.0(@types/node@20.19.33)(ts-node@10.9.2(@types/node@20.19.33)(typescript@5.9.3)): + create-jest@29.7.0(@types/node@20.19.37)(ts-node@10.9.2(@types/node@20.19.37)(typescript@5.9.3)): dependencies: "@jest/types": 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.19.33)(ts-node@10.9.2(@types/node@20.19.33)(typescript@5.9.3)) + jest-config: 29.7.0(@types/node@20.19.37)(ts-node@10.9.2(@types/node@20.19.37)(typescript@5.9.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -28636,13 +28664,13 @@ snapshots: - supports-color - ts-node - create-jest@29.7.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)): + create-jest@29.7.0(@types/node@25.4.0)(ts-node@10.9.2(@types/node@25.4.0)(typescript@5.9.3)): dependencies: "@jest/types": 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)) + jest-config: 29.7.0(@types/node@25.4.0)(ts-node@10.9.2(@types/node@25.4.0)(typescript@5.9.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -28696,31 +28724,31 @@ snapshots: randombytes: 2.1.0 randomfill: 1.0.4 - css-loader@6.11.0(webpack@5.105.1): + css-loader@6.11.0(webpack@5.105.4): dependencies: - icss-utils: 5.1.0(postcss@8.5.6) - postcss: 8.5.6 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.6) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.6) - postcss-modules-scope: 3.2.1(postcss@8.5.6) - postcss-modules-values: 4.0.0(postcss@8.5.6) + icss-utils: 5.1.0(postcss@8.5.8) + postcss: 8.5.8 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.8) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.8) + postcss-modules-scope: 3.2.1(postcss@8.5.8) + postcss-modules-values: 4.0.0(postcss@8.5.8) postcss-value-parser: 4.2.0 semver: 7.7.4 optionalDependencies: - webpack: 5.105.1 + webpack: 5.105.4 - css-loader@7.1.3(webpack@5.105.1): + css-loader@7.1.4(webpack@5.105.4): dependencies: - icss-utils: 5.1.0(postcss@8.5.6) - postcss: 8.5.6 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.6) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.6) - postcss-modules-scope: 3.2.1(postcss@8.5.6) - postcss-modules-values: 4.0.0(postcss@8.5.6) + icss-utils: 5.1.0(postcss@8.5.8) + postcss: 8.5.8 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.8) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.8) + postcss-modules-scope: 3.2.1(postcss@8.5.8) + postcss-modules-values: 4.0.0(postcss@8.5.8) postcss-value-parser: 4.2.0 semver: 7.7.4 optionalDependencies: - webpack: 5.105.1 + webpack: 5.105.4 css-select@4.3.0: dependencies: @@ -28824,7 +28852,7 @@ snapshots: date-fns@2.30.0: dependencies: - "@babel/runtime": 7.28.4 + "@babel/runtime": 7.28.6 dayjs@1.11.13: {} @@ -28940,7 +28968,7 @@ snapshots: diffie-hellman@5.0.3: dependencies: - bn.js: 4.12.2 + bn.js: 4.12.3 miller-rabin: 4.0.1 randombytes: 2.1.0 @@ -29015,7 +29043,7 @@ snapshots: dotenv@16.6.1: {} - dotenv@17.2.4: {} + dotenv@17.3.1: {} drizzle-kit@0.31.9: dependencies: @@ -29026,29 +29054,29 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.41.0(@electric-sql/pglite@0.2.13)(@opentelemetry/api@1.9.0)(@types/pg@8.16.0)(kysely@0.26.3)(pg@8.18.0): + drizzle-orm@0.41.0(@electric-sql/pglite@0.2.13)(@opentelemetry/api@1.9.0)(@types/pg@8.18.0)(kysely@0.26.3)(pg@8.20.0): optionalDependencies: "@electric-sql/pglite": 0.2.13 "@opentelemetry/api": 1.9.0 - "@types/pg": 8.16.0 + "@types/pg": 8.18.0 kysely: 0.26.3 - pg: 8.18.0 + pg: 8.20.0 - drizzle-orm@0.41.0(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@types/pg@8.16.0)(kysely@0.26.3)(pg@8.18.0): + drizzle-orm@0.41.0(@electric-sql/pglite@0.3.16)(@opentelemetry/api@1.9.0)(@types/pg@8.18.0)(kysely@0.26.3)(pg@8.20.0): optionalDependencies: - "@electric-sql/pglite": 0.3.15 + "@electric-sql/pglite": 0.3.16 "@opentelemetry/api": 1.9.0 - "@types/pg": 8.16.0 + "@types/pg": 8.18.0 kysely: 0.26.3 - pg: 8.18.0 + pg: 8.20.0 - drizzle-orm@0.45.1(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@types/pg@8.16.0)(kysely@0.26.3)(pg@8.18.0): + drizzle-orm@0.45.1(@electric-sql/pglite@0.3.16)(@opentelemetry/api@1.9.0)(@types/pg@8.18.0)(kysely@0.26.3)(pg@8.20.0): optionalDependencies: - "@electric-sql/pglite": 0.3.15 + "@electric-sql/pglite": 0.3.16 "@opentelemetry/api": 1.9.0 - "@types/pg": 8.16.0 + "@types/pg": 8.18.0 kysely: 0.26.3 - pg: 8.18.0 + pg: 8.20.0 dset@3.1.4: {} @@ -29127,7 +29155,7 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.3.0 - enhanced-resolve@5.19.0: + enhanced-resolve@5.20.0: dependencies: graceful-fs: 4.2.11 tapable: 2.3.0 @@ -29387,18 +29415,18 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-next@16.1.3(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): + eslint-config-next@16.1.3(@typescript-eslint/parser@8.53.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3): dependencies: "@next/eslint-plugin-next": 16.1.3 - eslint: 9.39.2(jiti@2.6.1) + eslint: 9.39.4(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-react: 7.37.5(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-react-hooks: 7.0.1(eslint@9.39.2(jiti@2.6.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4(jiti@2.6.1)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.4(jiti@2.6.1)) + eslint-plugin-react: 7.37.5(eslint@9.39.4(jiti@2.6.1)) + eslint-plugin-react-hooks: 7.0.1(eslint@9.39.4(jiti@2.6.1)) globals: 16.4.0 - typescript-eslint: 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + typescript-eslint: 8.53.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: @@ -29407,9 +29435,9 @@ snapshots: - eslint-plugin-import-x - supports-color - eslint-config-prettier@9.1.2(eslint@9.39.2(jiti@2.6.1)): + eslint-config-prettier@9.1.2(eslint@9.39.4(jiti@2.6.1)): dependencies: - eslint: 9.39.2(jiti@2.6.1) + eslint: 9.39.4(jiti@2.6.1) eslint-import-context@0.1.9(unrs-resolver@1.11.1): dependencies: @@ -29426,25 +29454,25 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)): dependencies: "@nolyfill/is-core-module": 1.0.39 debug: 4.4.3 - eslint: 9.39.2(jiti@2.6.1) + eslint: 9.39.4(jiti@2.6.1) get-tsconfig: 4.13.6 is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4(jiti@2.6.1)) transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1)): + eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)): dependencies: debug: 4.4.3 - eslint: 9.39.2(jiti@2.6.1) + eslint: 9.39.4(jiti@2.6.1) eslint-import-context: 0.1.9(unrs-resolver@1.11.1) get-tsconfig: 4.13.6 is-bun-module: 2.0.0 @@ -29452,33 +29480,33 @@ snapshots: tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.55.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.4(jiti@2.6.1)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.53.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)): dependencies: debug: 3.2.7 optionalDependencies: - "@typescript-eslint/parser": 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.2(jiti@2.6.1) + "@typescript-eslint/parser": 8.53.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.4(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.55.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.2(jiti@2.6.1)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)): dependencies: debug: 3.2.7 optionalDependencies: - "@typescript-eslint/parser": 8.55.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.2(jiti@2.6.1) + "@typescript-eslint/parser": 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.4(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1)) + eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4(jiti@2.6.1)): dependencies: "@rtsao/scc": 1.1.0 array-includes: 3.1.9 @@ -29487,9 +29515,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.39.2(jiti@2.6.1) + eslint: 9.39.4(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.53.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -29501,13 +29529,13 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - "@typescript-eslint/parser": 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + "@typescript-eslint/parser": 8.53.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.55.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.2(jiti@2.6.1)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.4(jiti@2.6.1)): dependencies: "@rtsao/scc": 1.1.0 array-includes: 3.1.9 @@ -29516,9 +29544,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.39.2(jiti@2.6.1) + eslint: 9.39.4(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.55.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.2(jiti@2.6.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -29530,13 +29558,13 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - "@typescript-eslint/parser": 8.55.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + "@typescript-eslint/parser": 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.2(jiti@2.6.1)): + eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.4(jiti@2.6.1)): dependencies: aria-query: 5.3.2 array-includes: 3.1.9 @@ -29546,37 +29574,37 @@ snapshots: axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 9.39.2(jiti@2.6.1) + eslint: 9.39.4(jiti@2.6.1) hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 - minimatch: 3.1.2 + minimatch: 3.1.5 object.fromentries: 2.0.8 safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-prettier@5.5.5(@types/eslint@9.6.1)(eslint-config-prettier@9.1.2(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))(prettier@3.8.1): + eslint-plugin-prettier@5.5.5(@types/eslint@9.6.1)(eslint-config-prettier@9.1.2(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1))(prettier@3.8.1): dependencies: - eslint: 9.39.2(jiti@2.6.1) + eslint: 9.39.4(jiti@2.6.1) prettier: 3.8.1 prettier-linter-helpers: 1.0.1 synckit: 0.11.12 optionalDependencies: "@types/eslint": 9.6.1 - eslint-config-prettier: 9.1.2(eslint@9.39.2(jiti@2.6.1)) + eslint-config-prettier: 9.1.2(eslint@9.39.4(jiti@2.6.1)) - eslint-plugin-react-hooks@7.0.1(eslint@9.39.2(jiti@2.6.1)): + eslint-plugin-react-hooks@7.0.1(eslint@9.39.4(jiti@2.6.1)): dependencies: "@babel/core": 7.29.0 "@babel/parser": 7.29.0 - eslint: 9.39.2(jiti@2.6.1) + eslint: 9.39.4(jiti@2.6.1) hermes-parser: 0.25.1 zod: 3.25.76 zod-validation-error: 4.0.2(zod@3.25.76) transitivePeerDependencies: - supports-color - eslint-plugin-react@7.37.5(eslint@9.39.2(jiti@2.6.1)): + eslint-plugin-react@7.37.5(eslint@9.39.4(jiti@2.6.1)): dependencies: array-includes: 3.1.9 array.prototype.findlast: 1.2.5 @@ -29584,11 +29612,11 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.1 - eslint: 9.39.2(jiti@2.6.1) + eslint: 9.39.4(jiti@2.6.1) estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 - minimatch: 3.1.2 + minimatch: 3.1.5 object.entries: 1.1.9 object.fromentries: 2.0.8 object.values: 1.2.1 @@ -29598,11 +29626,11 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-storybook@10.2.8(eslint@9.39.2(jiti@2.6.1))(storybook@10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(typescript@5.9.3): + eslint-plugin-storybook@10.2.17(eslint@9.39.4(jiti@2.6.1))(storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10))(typescript@5.9.3): dependencies: - "@typescript-eslint/utils": 8.55.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.2(jiti@2.6.1) - storybook: 10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10) + "@typescript-eslint/utils": 8.55.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.4(jiti@2.6.1) + storybook: 10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10) transitivePeerDependencies: - supports-color - typescript @@ -29621,21 +29649,23 @@ snapshots: eslint-visitor-keys@4.2.1: {} - eslint@9.39.2(jiti@2.6.1): + eslint-visitor-keys@5.0.1: {} + + eslint@9.39.4(jiti@2.6.1): dependencies: - "@eslint-community/eslint-utils": 4.9.1(eslint@9.39.2(jiti@2.6.1)) + "@eslint-community/eslint-utils": 4.9.1(eslint@9.39.4(jiti@2.6.1)) "@eslint-community/regexpp": 4.12.2 - "@eslint/config-array": 0.21.1 + "@eslint/config-array": 0.21.2 "@eslint/config-helpers": 0.4.2 "@eslint/core": 0.17.0 - "@eslint/eslintrc": 3.3.3 - "@eslint/js": 9.39.2 + "@eslint/eslintrc": 3.3.5 + "@eslint/js": 9.39.4 "@eslint/plugin-kit": 0.4.1 "@humanfs/node": 0.16.7 "@humanwhocodes/module-importer": 1.0.1 "@humanwhocodes/retry": 0.4.3 "@types/estree": 1.0.8 - ajv: 6.12.6 + ajv: 6.14.0 chalk: 4.1.2 cross-spawn: 7.0.6 debug: 4.4.3 @@ -29654,7 +29684,7 @@ snapshots: is-glob: 4.0.3 json-stable-stringify-without-jsonify: 1.0.1 lodash.merge: 4.6.2 - minimatch: 3.1.2 + minimatch: 3.1.5 natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: @@ -29943,7 +29973,7 @@ snapshots: flat-cache@3.2.0: dependencies: - flatted: 3.3.3 + flatted: 3.4.1 keyv: 4.5.4 rimraf: 3.0.2 @@ -29954,6 +29984,8 @@ snapshots: flatted@3.3.3: {} + flatted@3.4.1: {} + follow-redirects@1.15.11: {} for-each@0.3.5: @@ -29970,7 +30002,7 @@ snapshots: forge-std@https://codeload.github.com/foundry-rs/forge-std/tar.gz/f5495c9b993bfc6e79dd52adfdcb7dac0a1da918: {} - fork-ts-checker-webpack-plugin@9.1.0(typescript@5.9.3)(webpack@5.105.1): + fork-ts-checker-webpack-plugin@9.1.0(typescript@5.9.3)(webpack@5.105.4): dependencies: "@babel/code-frame": 7.29.0 chalk: 4.1.2 @@ -29979,13 +30011,13 @@ snapshots: deepmerge: 4.3.1 fs-extra: 10.1.0 memfs: 3.5.3 - minimatch: 3.1.2 + minimatch: 3.1.5 node-abort-controller: 3.1.1 schema-utils: 3.3.0 semver: 7.7.4 tapable: 2.3.0 typescript: 5.9.3 - webpack: 5.105.1 + webpack: 5.105.4 form-data@4.0.5: dependencies: @@ -30007,6 +30039,10 @@ snapshots: jsonfile: 6.2.0 universalify: 2.0.1 + fs-minipass@2.1.0: + dependencies: + minipass: 3.3.6 + fs-monkey@1.1.0: {} fs.realpath@1.0.0: {} @@ -30094,7 +30130,7 @@ snapshots: dependencies: foreground-child: 3.3.1 jackspeak: 3.4.3 - minimatch: 9.0.5 + minimatch: 9.0.9 minipass: 7.1.2 package-json-from-dist: 1.0.1 path-scurry: 1.11.1 @@ -30103,23 +30139,23 @@ snapshots: dependencies: foreground-child: 3.3.1 jackspeak: 4.2.3 - minimatch: 10.1.2 + minimatch: 10.2.4 minipass: 7.1.2 package-json-from-dist: 1.0.1 - path-scurry: 2.0.1 + path-scurry: 2.0.2 - glob@13.0.0: + glob@13.0.6: dependencies: - minimatch: 10.1.2 - minipass: 7.1.2 - path-scurry: 2.0.1 + minimatch: 10.2.4 + minipass: 7.1.3 + path-scurry: 2.0.2 glob@7.2.3: dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 3.1.2 + minimatch: 3.1.5 once: 1.4.0 path-is-absolute: 1.0.1 @@ -30131,7 +30167,7 @@ snapshots: globals@16.4.0: {} - globals@17.3.0: {} + globals@17.4.0: {} globalthis@1.0.4: dependencies: @@ -30162,23 +30198,23 @@ snapshots: js-base64: 3.7.8 unicode-trie: 2.0.0 - graphql-compose@9.1.0(graphql@16.12.0): + graphql-compose@9.1.0(graphql@16.13.1): dependencies: - graphql: 16.12.0 - graphql-type-json: 0.3.2(graphql@16.12.0) + graphql: 16.13.1 + graphql-type-json: 0.3.2(graphql@16.13.1) - graphql-config@5.1.5(@types/node@20.19.33)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.12.0)(typescript@5.9.3)(utf-8-validate@5.0.10): + graphql-config@5.1.5(@types/node@20.19.37)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.13.1)(typescript@5.9.3)(utf-8-validate@5.0.10): dependencies: - "@graphql-tools/graphql-file-loader": 8.0.22(graphql@16.12.0) - "@graphql-tools/json-file-loader": 8.0.20(graphql@16.12.0) - "@graphql-tools/load": 8.1.2(graphql@16.12.0) - "@graphql-tools/merge": 9.1.1(graphql@16.12.0) - "@graphql-tools/url-loader": 8.0.33(@types/node@20.19.33)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.12.0)(utf-8-validate@5.0.10) - "@graphql-tools/utils": 10.9.1(graphql@16.12.0) + "@graphql-tools/graphql-file-loader": 8.0.22(graphql@16.13.1) + "@graphql-tools/json-file-loader": 8.0.20(graphql@16.13.1) + "@graphql-tools/load": 8.1.2(graphql@16.13.1) + "@graphql-tools/merge": 9.1.1(graphql@16.13.1) + "@graphql-tools/url-loader": 8.0.33(@types/node@20.19.37)(bufferutil@4.0.9)(crossws@0.3.5)(graphql@16.13.1)(utf-8-validate@5.0.10) + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) cosmiconfig: 8.3.6(typescript@5.9.3) - graphql: 16.12.0 + graphql: 16.13.1 jiti: 2.4.2 - minimatch: 9.0.5 + minimatch: 9.0.9 string-env-interpolation: 1.0.1 tslib: 2.8.1 transitivePeerDependencies: @@ -30192,65 +30228,60 @@ snapshots: graphql-fields@2.0.3: {} - graphql-import-node@0.0.5(graphql@16.12.0): + graphql-import-node@0.0.5(graphql@16.13.1): dependencies: - graphql: 16.12.0 + graphql: 16.13.1 - graphql-jit@0.8.7(graphql@16.12.0): + graphql-jit@0.8.7(graphql@16.13.1): dependencies: - "@graphql-typed-document-node/core": 3.2.0(graphql@16.12.0) + "@graphql-typed-document-node/core": 3.2.0(graphql@16.13.1) fast-json-stringify: 5.16.1 generate-function: 2.3.1 - graphql: 16.12.0 + graphql: 16.13.1 lodash.memoize: 4.1.2 lodash.merge: 4.6.2 lodash.mergewith: 4.6.2 - graphql-request@6.1.0(graphql@16.12.0): + graphql-request@6.1.0(graphql@16.13.1): dependencies: - "@graphql-typed-document-node/core": 3.2.0(graphql@16.12.0) + "@graphql-typed-document-node/core": 3.2.0(graphql@16.13.1) cross-fetch: 3.2.0 - graphql: 16.12.0 + graphql: 16.13.1 transitivePeerDependencies: - encoding - graphql-scalars@1.24.2(graphql@16.12.0): + graphql-scalars@1.25.0(graphql@16.13.1): dependencies: - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.8.1 - graphql-scalars@1.25.0(graphql@16.12.0): + graphql-tag@2.12.6(graphql@16.13.1): dependencies: - graphql: 16.12.0 + graphql: 16.13.1 tslib: 2.8.1 - graphql-tag@2.12.6(graphql@16.12.0): + graphql-type-json@0.3.2(graphql@16.13.1): dependencies: - graphql: 16.12.0 - tslib: 2.8.1 - - graphql-type-json@0.3.2(graphql@16.12.0): - dependencies: - graphql: 16.12.0 + graphql: 16.13.1 - graphql-ws@6.0.7(crossws@0.3.5)(graphql@16.12.0)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)): + graphql-ws@6.0.7(crossws@0.3.5)(graphql@16.13.1)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)): dependencies: - graphql: 16.12.0 + graphql: 16.13.1 optionalDependencies: crossws: 0.3.5 - ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) optional: true - graphql-ws@6.0.7(crossws@0.3.5)(graphql@16.12.0)(ws@8.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)): + graphql-ws@6.0.7(crossws@0.3.5)(graphql@16.13.1)(ws@8.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)): dependencies: - graphql: 16.12.0 + graphql: 16.13.1 optionalDependencies: crossws: 0.3.5 ws: 8.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) graphql-yoga@5.17.1(graphql@16.8.2): dependencies: - "@envelop/core": 5.4.0 + "@envelop/core": 5.5.0 "@envelop/instrumentation": 1.0.0 "@graphql-tools/executor": 1.5.0(graphql@16.8.2) "@graphql-tools/schema": 10.0.30(graphql@16.8.2) @@ -30264,23 +30295,23 @@ snapshots: lru-cache: 10.4.3 tslib: 2.8.1 - graphql-yoga@5.18.0(graphql@16.12.0): + graphql-yoga@5.18.1(graphql@16.13.1): dependencies: - "@envelop/core": 5.4.0 + "@envelop/core": 5.5.1 "@envelop/instrumentation": 1.0.0 - "@graphql-tools/executor": 1.5.1(graphql@16.12.0) - "@graphql-tools/schema": 10.0.31(graphql@16.12.0) - "@graphql-tools/utils": 10.11.0(graphql@16.12.0) + "@graphql-tools/executor": 1.5.1(graphql@16.13.1) + "@graphql-tools/schema": 10.0.31(graphql@16.13.1) + "@graphql-tools/utils": 10.11.0(graphql@16.13.1) "@graphql-yoga/logger": 2.0.1 "@graphql-yoga/subscription": 5.0.5 - "@whatwg-node/fetch": 0.10.9 + "@whatwg-node/fetch": 0.10.13 "@whatwg-node/promise-helpers": 1.3.2 "@whatwg-node/server": 0.10.18 - graphql: 16.12.0 + graphql: 16.13.1 lru-cache: 10.4.3 tslib: 2.8.1 - graphql@16.12.0: {} + graphql@16.13.1: {} graphql@16.8.2: {} @@ -30366,7 +30397,7 @@ snapshots: dependencies: react-is: 16.13.1 - hono@4.12.8: {} + hono@4.12.7: {} html-encoding-sniffer@4.0.0: dependencies: @@ -30386,7 +30417,7 @@ snapshots: relateurl: 0.2.7 terser: 5.46.0 - html-webpack-plugin@5.6.6(webpack@5.105.1): + html-webpack-plugin@5.6.6(webpack@5.105.4): dependencies: "@types/html-minifier-terser": 6.1.0 html-minifier-terser: 6.1.0 @@ -30394,7 +30425,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.3.0 optionalDependencies: - webpack: 5.105.1 + webpack: 5.105.4 htmlparser2@6.1.0: dependencies: @@ -30442,9 +30473,9 @@ snapshots: dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.5.6): + icss-utils@5.1.0(postcss@8.5.8): dependencies: - postcss: 8.5.6 + postcss: 8.5.8 idb-keyval@6.2.1: {} @@ -30462,6 +30493,8 @@ snapshots: immutable@3.7.6: {} + immutable@5.1.5: {} + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 @@ -30471,8 +30504,8 @@ snapshots: import-in-the-middle@1.15.0: dependencies: - acorn: 8.15.0 - acorn-import-attributes: 1.9.5(acorn@8.15.0) + acorn: 8.16.0 + acorn-import-attributes: 1.9.5(acorn@8.16.0) cjs-module-lexer: 1.4.3 module-details-from-path: 1.0.4 @@ -30504,7 +30537,7 @@ snapshots: cli-width: 3.0.0 external-editor: 3.1.0 figures: 3.2.0 - lodash: 4.17.21 + lodash: 4.17.23 mute-stream: 0.0.8 ora: 5.4.1 run-async: 2.4.1 @@ -30853,7 +30886,7 @@ snapshots: "@jest/expect": 29.7.0 "@jest/test-result": 29.7.0 "@jest/types": 29.6.3 - "@types/node": 20.19.33 + "@types/node": 20.19.37 chalk: 4.1.2 co: 4.6.0 dedent: 1.6.0 @@ -30873,16 +30906,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@20.19.33)(ts-node@10.9.2(@types/node@20.19.33)(typescript@5.9.3)): + jest-cli@29.7.0(@types/node@20.19.37)(ts-node@10.9.2(@types/node@20.19.37)(typescript@5.9.3)): dependencies: - "@jest/core": 29.7.0(ts-node@10.9.2(@types/node@20.19.33)(typescript@5.9.3)) + "@jest/core": 29.7.0(ts-node@10.9.2(@types/node@20.19.37)(typescript@5.9.3)) "@jest/test-result": 29.7.0 "@jest/types": 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.19.33)(ts-node@10.9.2(@types/node@20.19.33)(typescript@5.9.3)) + create-jest: 29.7.0(@types/node@20.19.37)(ts-node@10.9.2(@types/node@20.19.37)(typescript@5.9.3)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@20.19.33)(ts-node@10.9.2(@types/node@20.19.33)(typescript@5.9.3)) + jest-config: 29.7.0(@types/node@20.19.37)(ts-node@10.9.2(@types/node@20.19.37)(typescript@5.9.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -30892,16 +30925,16 @@ snapshots: - supports-color - ts-node - jest-cli@29.7.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)): + jest-cli@29.7.0(@types/node@25.4.0)(ts-node@10.9.2(@types/node@25.4.0)(typescript@5.9.3)): dependencies: - "@jest/core": 29.7.0(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)) + "@jest/core": 29.7.0(ts-node@10.9.2(@types/node@25.4.0)(typescript@5.9.3)) "@jest/test-result": 29.7.0 "@jest/types": 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)) + create-jest: 29.7.0(@types/node@25.4.0)(ts-node@10.9.2(@types/node@25.4.0)(typescript@5.9.3)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)) + jest-config: 29.7.0(@types/node@25.4.0)(ts-node@10.9.2(@types/node@25.4.0)(typescript@5.9.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -30911,7 +30944,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@20.19.33)(ts-node@10.9.2(@types/node@20.19.33)(typescript@5.9.3)): + jest-config@29.7.0(@types/node@20.19.37)(ts-node@10.9.2(@types/node@20.19.37)(typescript@5.9.3)): dependencies: "@babel/core": 7.29.0 "@jest/test-sequencer": 29.7.0 @@ -30936,13 +30969,13 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - "@types/node": 20.19.33 - ts-node: 10.9.2(@types/node@20.19.33)(typescript@5.9.3) + "@types/node": 20.19.37 + ts-node: 10.9.2(@types/node@20.19.37)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@20.19.33)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)): + jest-config@29.7.0(@types/node@20.19.37)(ts-node@10.9.2(@types/node@25.4.0)(typescript@5.9.3)): dependencies: "@babel/core": 7.29.0 "@jest/test-sequencer": 29.7.0 @@ -30967,13 +31000,13 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - "@types/node": 20.19.33 - ts-node: 10.9.2(@types/node@25.5.0)(typescript@5.9.3) + "@types/node": 20.19.37 + ts-node: 10.9.2(@types/node@25.4.0)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)): + jest-config@29.7.0(@types/node@25.4.0)(ts-node@10.9.2(@types/node@25.4.0)(typescript@5.9.3)): dependencies: "@babel/core": 7.29.0 "@jest/test-sequencer": 29.7.0 @@ -30998,8 +31031,8 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - "@types/node": 25.5.0 - ts-node: 10.9.2(@types/node@25.5.0)(typescript@5.9.3) + "@types/node": 25.4.0 + ts-node: 10.9.2(@types/node@25.4.0)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -31028,7 +31061,7 @@ snapshots: "@jest/environment": 29.7.0 "@jest/fake-timers": 29.7.0 "@jest/types": 29.6.3 - "@types/node": 20.19.33 + "@types/node": 20.19.37 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -31038,7 +31071,7 @@ snapshots: dependencies: "@jest/types": 29.6.3 "@types/graceful-fs": 4.1.9 - "@types/node": 20.19.33 + "@types/node": 20.19.37 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -31077,7 +31110,7 @@ snapshots: jest-mock@29.7.0: dependencies: "@jest/types": 29.6.3 - "@types/node": 20.19.33 + "@types/node": 20.19.37 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -31112,7 +31145,7 @@ snapshots: "@jest/test-result": 29.7.0 "@jest/transform": 29.7.0 "@jest/types": 29.6.3 - "@types/node": 20.19.33 + "@types/node": 20.19.37 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -31140,7 +31173,7 @@ snapshots: "@jest/test-result": 29.7.0 "@jest/transform": 29.7.0 "@jest/types": 29.6.3 - "@types/node": 20.19.33 + "@types/node": 20.19.37 chalk: 4.1.2 cjs-module-lexer: 1.4.3 collect-v8-coverage: 1.0.2 @@ -31186,7 +31219,7 @@ snapshots: jest-util@29.7.0: dependencies: "@jest/types": 29.6.3 - "@types/node": 20.19.33 + "@types/node": 20.19.37 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -31205,7 +31238,7 @@ snapshots: dependencies: "@jest/test-result": 29.7.0 "@jest/types": 29.6.3 - "@types/node": 20.19.33 + "@types/node": 20.19.37 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -31214,35 +31247,35 @@ snapshots: jest-worker@27.5.1: dependencies: - "@types/node": 20.19.33 + "@types/node": 20.19.37 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - "@types/node": 20.19.33 + "@types/node": 20.19.37 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@20.19.33)(ts-node@10.9.2(@types/node@20.19.33)(typescript@5.9.3)): + jest@29.7.0(@types/node@20.19.37)(ts-node@10.9.2(@types/node@20.19.37)(typescript@5.9.3)): dependencies: - "@jest/core": 29.7.0(ts-node@10.9.2(@types/node@20.19.33)(typescript@5.9.3)) + "@jest/core": 29.7.0(ts-node@10.9.2(@types/node@20.19.37)(typescript@5.9.3)) "@jest/types": 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@20.19.33)(ts-node@10.9.2(@types/node@20.19.33)(typescript@5.9.3)) + jest-cli: 29.7.0(@types/node@20.19.37)(ts-node@10.9.2(@types/node@20.19.37)(typescript@5.9.3)) transitivePeerDependencies: - "@types/node" - babel-plugin-macros - supports-color - ts-node - jest@29.7.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)): + jest@29.7.0(@types/node@25.4.0)(ts-node@10.9.2(@types/node@25.4.0)(typescript@5.9.3)): dependencies: - "@jest/core": 29.7.0(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)) + "@jest/core": 29.7.0(ts-node@10.9.2(@types/node@25.4.0)(typescript@5.9.3)) "@jest/types": 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)) + jest-cli: 29.7.0(@types/node@25.4.0)(ts-node@10.9.2(@types/node@25.4.0)(typescript@5.9.3)) transitivePeerDependencies: - "@types/node" - babel-plugin-macros @@ -31369,12 +31402,6 @@ snapshots: json5@2.2.3: {} - jsonfile@6.1.0: - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - jsonfile@6.2.0: dependencies: universalify: 2.0.1 @@ -31423,67 +31450,66 @@ snapshots: dependencies: immediate: 3.0.6 - lightningcss-android-arm64@1.30.2: + lightningcss-android-arm64@1.31.1: optional: true - lightningcss-darwin-arm64@1.30.2: + lightningcss-darwin-arm64@1.31.1: optional: true - lightningcss-darwin-x64@1.30.2: + lightningcss-darwin-x64@1.31.1: optional: true - lightningcss-freebsd-x64@1.30.2: + lightningcss-freebsd-x64@1.31.1: optional: true - lightningcss-linux-arm-gnueabihf@1.30.2: + lightningcss-linux-arm-gnueabihf@1.31.1: optional: true - lightningcss-linux-arm64-gnu@1.30.2: + lightningcss-linux-arm64-gnu@1.31.1: optional: true - lightningcss-linux-arm64-musl@1.30.2: + lightningcss-linux-arm64-musl@1.31.1: optional: true - lightningcss-linux-x64-gnu@1.30.2: + lightningcss-linux-x64-gnu@1.31.1: optional: true - lightningcss-linux-x64-musl@1.30.2: + lightningcss-linux-x64-musl@1.31.1: optional: true - lightningcss-win32-arm64-msvc@1.30.2: + lightningcss-win32-arm64-msvc@1.31.1: optional: true - lightningcss-win32-x64-msvc@1.30.2: + lightningcss-win32-x64-msvc@1.31.1: optional: true - lightningcss@1.30.2: + lightningcss@1.31.1: dependencies: detect-libc: 2.1.2 optionalDependencies: - lightningcss-android-arm64: 1.30.2 - lightningcss-darwin-arm64: 1.30.2 - lightningcss-darwin-x64: 1.30.2 - lightningcss-freebsd-x64: 1.30.2 - lightningcss-linux-arm-gnueabihf: 1.30.2 - lightningcss-linux-arm64-gnu: 1.30.2 - lightningcss-linux-arm64-musl: 1.30.2 - lightningcss-linux-x64-gnu: 1.30.2 - lightningcss-linux-x64-musl: 1.30.2 - lightningcss-win32-arm64-msvc: 1.30.2 - lightningcss-win32-x64-msvc: 1.30.2 + lightningcss-android-arm64: 1.31.1 + lightningcss-darwin-arm64: 1.31.1 + lightningcss-darwin-x64: 1.31.1 + lightningcss-freebsd-x64: 1.31.1 + lightningcss-linux-arm-gnueabihf: 1.31.1 + lightningcss-linux-arm64-gnu: 1.31.1 + lightningcss-linux-arm64-musl: 1.31.1 + lightningcss-linux-x64-gnu: 1.31.1 + lightningcss-linux-x64-musl: 1.31.1 + lightningcss-win32-arm64-msvc: 1.31.1 + lightningcss-win32-x64-msvc: 1.31.1 lilconfig@3.1.3: {} lines-and-columns@1.2.4: {} - lint-staged@16.2.7: + lint-staged@16.3.3: dependencies: - commander: 14.0.2 + commander: 14.0.3 listr2: 9.0.5 micromatch: 4.0.8 - nano-spawn: 2.0.0 - pidtree: 0.6.0 string-argv: 0.3.2 + tinyexec: 1.0.2 yaml: 2.8.2 listr2@4.0.5: @@ -31712,13 +31738,13 @@ snapshots: merge2@1.4.1: {} - meros@1.3.1(@types/node@20.19.33): + meros@1.3.2(@types/node@20.19.37): optionalDependencies: - "@types/node": 20.19.33 + "@types/node": 20.19.37 - meros@1.3.2(@types/node@25.5.0): + meros@1.3.2(@types/node@25.4.0): optionalDependencies: - "@types/node": 25.5.0 + "@types/node": 25.4.0 mersenne-twister@1.1.0: {} @@ -31731,7 +31757,7 @@ snapshots: miller-rabin@4.0.1: dependencies: - bn.js: 4.12.2 + bn.js: 4.12.3 brorand: 1.1.0 mime-db@1.52.0: {} @@ -31752,26 +31778,45 @@ snapshots: minimalistic-crypto-utils@1.0.1: {} - minimatch@10.1.2: + minimatch@10.2.4: dependencies: - "@isaacs/brace-expansion": 5.0.1 + brace-expansion: 5.0.4 minimatch@3.1.2: dependencies: brace-expansion: 1.1.12 - minimatch@9.0.5: + minimatch@3.1.5: + dependencies: + brace-expansion: 1.1.12 + + minimatch@9.0.9: dependencies: brace-expansion: 2.0.2 minimist@1.2.8: {} + minipass@3.3.6: + dependencies: + yallist: 4.0.0 + + minipass@5.0.0: {} + minipass@7.1.2: {} + minipass@7.1.3: {} + + minizlib@2.1.2: + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + mipd@0.0.7(typescript@5.9.3): optionalDependencies: typescript: 5.9.3 + mkdirp@1.0.4: {} + mkdirp@3.0.1: {} mlly@1.8.0: @@ -31789,14 +31834,14 @@ snapshots: ms@2.1.3: {} - msw@2.12.10(@types/node@20.19.33)(typescript@5.9.3): + msw@2.12.10(@types/node@20.19.37)(typescript@5.9.3): dependencies: - "@inquirer/confirm": 5.1.21(@types/node@20.19.33) + "@inquirer/confirm": 5.1.21(@types/node@20.19.37) "@mswjs/interceptors": 0.41.3 "@open-draft/deferred-promise": 2.2.0 "@types/statuses": 2.0.6 cookie: 1.1.1 - graphql: 16.12.0 + graphql: 16.13.1 headers-polyfill: 4.0.3 is-node-process: 1.2.0 outvariant: 1.4.3 @@ -31814,14 +31859,14 @@ snapshots: transitivePeerDependencies: - "@types/node" - msw@2.12.10(@types/node@25.5.0)(typescript@5.9.3): + msw@2.12.10(@types/node@25.4.0)(typescript@5.9.3): dependencies: - "@inquirer/confirm": 5.1.21(@types/node@25.5.0) + "@inquirer/confirm": 5.1.21(@types/node@25.4.0) "@mswjs/interceptors": 0.41.3 "@open-draft/deferred-promise": 2.2.0 "@types/statuses": 2.0.6 cookie: 1.1.1 - graphql: 16.12.0 + graphql: 16.13.1 headers-polyfill: 4.0.3 is-node-process: 1.2.0 outvariant: 1.4.3 @@ -31852,8 +31897,6 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nano-spawn@2.0.0: {} - nanoid@3.3.11: {} napi-postinstall@0.3.2: {} @@ -31918,7 +31961,7 @@ snapshots: node-mock-http@1.0.3: {} - node-polyfill-webpack-plugin@2.0.1(webpack@5.105.1): + node-polyfill-webpack-plugin@2.0.1(webpack@5.105.4): dependencies: assert: 2.1.0 browserify-zlib: 0.2.0 @@ -31945,7 +31988,7 @@ snapshots: url: 0.11.4 util: 0.12.5 vm-browserify: 1.1.2 - webpack: 5.105.1 + webpack: 5.105.4 node-releases@2.0.27: {} @@ -32121,7 +32164,7 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 - ox@0.12.1(typescript@5.9.3)(zod@3.22.4): + ox@0.14.0(typescript@5.9.3)(zod@3.22.4): dependencies: "@adraffy/ens-normalize": 1.11.1 "@noble/ciphers": 1.3.0 @@ -32136,7 +32179,7 @@ snapshots: transitivePeerDependencies: - zod - ox@0.12.1(typescript@5.9.3)(zod@3.25.76): + ox@0.14.0(typescript@5.9.3)(zod@3.25.76): dependencies: "@adraffy/ens-normalize": 1.11.1 "@noble/ciphers": 1.3.0 @@ -32158,7 +32201,7 @@ snapshots: "@noble/hashes": 1.8.0 "@scure/bip32": 1.7.0 "@scure/bip39": 1.6.0 - abitype: 1.0.8(typescript@5.9.3)(zod@3.25.76) + abitype: 1.2.3(typescript@5.9.3)(zod@3.25.76) eventemitter3: 5.0.1 optionalDependencies: typescript: 5.9.3 @@ -32308,12 +32351,12 @@ snapshots: path-scurry@1.11.1: dependencies: lru-cache: 10.4.3 - minipass: 7.1.2 + minipass: 7.1.3 - path-scurry@2.0.1: + path-scurry@2.0.2: dependencies: lru-cache: 11.2.6 - minipass: 7.1.2 + minipass: 7.1.3 path-to-regexp@6.3.0: {} @@ -32337,7 +32380,7 @@ snapshots: pg-cloudflare@1.3.0: optional: true - pg-connection-string@2.11.0: {} + pg-connection-string@2.12.0: {} pg-connection-string@2.9.1: {} @@ -32347,12 +32390,14 @@ snapshots: pg-int8@1.0.1: {} - pg-pool@3.11.0(pg@8.18.0): + pg-pool@3.13.0(pg@8.20.0): dependencies: - pg: 8.18.0 + pg: 8.20.0 pg-protocol@1.11.0: {} + pg-protocol@1.13.0: {} + pg-query-emscripten@5.1.0: {} pg-types@2.2.0: @@ -32363,11 +32408,11 @@ snapshots: postgres-date: 1.0.7 postgres-interval: 1.2.0 - pg@8.18.0: + pg@8.20.0: dependencies: - pg-connection-string: 2.11.0 - pg-pool: 3.11.0(pg@8.18.0) - pg-protocol: 1.11.0 + pg-connection-string: 2.12.0 + pg-pool: 3.13.0(pg@8.20.0) + pg-protocol: 1.13.0 pg-types: 2.2.0 pgpass: 1.0.5 optionalDependencies: @@ -32383,8 +32428,6 @@ snapshots: picomatch@4.0.3: {} - pidtree@0.6.0: {} - pify@3.0.0: {} pify@5.0.0: {} @@ -32459,7 +32502,7 @@ snapshots: pngjs@5.0.0: {} - ponder@0.16.3(@opentelemetry/api@1.9.0)(@types/node@20.19.33)(@types/pg@8.16.0)(bufferutil@4.0.9)(hono@4.12.8)(lightningcss@1.30.2)(terser@5.46.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76): + ponder@0.16.3(@opentelemetry/api@1.9.0)(@types/node@20.19.37)(@types/pg@8.18.0)(bufferutil@4.0.9)(hono@4.12.7)(lightningcss@1.31.1)(terser@5.46.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76): dependencies: "@babel/code-frame": 7.27.1 "@commander-js/extra-typings": 12.1.0(commander@12.1.0) @@ -32467,8 +32510,8 @@ snapshots: "@escape.tech/graphql-armor-max-aliases": 2.6.2 "@escape.tech/graphql-armor-max-depth": 2.4.1 "@escape.tech/graphql-armor-max-tokens": 2.5.1 - "@hono/node-server": 1.19.5(hono@4.12.8) - "@ponder/utils": 0.2.17(typescript@5.9.3)(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)) + "@hono/node-server": 1.19.5(hono@4.12.7) + "@ponder/utils": 0.2.17(typescript@5.9.3)(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)) abitype: 0.10.3(typescript@5.9.3)(zod@3.25.76) ansi-escapes: 7.2.0 commander: 12.1.0 @@ -32476,14 +32519,14 @@ snapshots: dataloader: 2.2.3 detect-package-manager: 3.0.2 dotenv: 16.6.1 - drizzle-orm: 0.41.0(@electric-sql/pglite@0.2.13)(@opentelemetry/api@1.9.0)(@types/pg@8.16.0)(kysely@0.26.3)(pg@8.18.0) + drizzle-orm: 0.41.0(@electric-sql/pglite@0.2.13)(@opentelemetry/api@1.9.0)(@types/pg@8.18.0)(kysely@0.26.3)(pg@8.20.0) glob: 10.5.0 graphql: 16.8.2 graphql-yoga: 5.17.1(graphql@16.8.2) - hono: 4.12.8 + hono: 4.12.7 http-terminator: 3.2.0 kysely: 0.26.3 - pg: 8.18.0 + pg: 8.20.0 pg-connection-string: 2.9.1 pg-copy-streams: 6.0.6 pg-query-emscripten: 5.1.0 @@ -32494,10 +32537,10 @@ snapshots: stacktrace-parser: 0.1.11 superjson: 2.2.2 terminal-size: 4.0.0 - viem: 2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) - vite: 5.4.21(@types/node@20.19.33)(lightningcss@1.30.2)(terser@5.46.0) - vite-node: 1.0.2(@types/node@20.19.33)(lightningcss@1.30.2)(terser@5.46.0) - vite-tsconfig-paths: 4.3.1(typescript@5.9.3)(vite@5.4.21(@types/node@20.19.33)(lightningcss@1.30.2)(terser@5.46.0)) + viem: 2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + vite: 5.4.21(@types/node@20.19.37)(lightningcss@1.31.1)(terser@5.46.0) + vite-node: 1.0.2(@types/node@20.19.37)(lightningcss@1.31.1)(terser@5.46.0) + vite-tsconfig-paths: 4.3.1(typescript@5.9.3)(vite@5.4.21(@types/node@20.19.37)(lightningcss@1.31.1)(terser@5.46.0)) ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) optionalDependencies: typescript: 5.9.3 @@ -32543,21 +32586,21 @@ snapshots: pony-cause@2.1.11: {} - porto@0.2.35(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(@wagmi/core@2.22.1(@tanstack/query-core@5.90.20)(@types/react@19.2.8)(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)))(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76)): + porto@0.2.35(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(@wagmi/core@2.22.1(@tanstack/query-core@5.90.20)(@types/react@19.2.8)(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)))(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76)): dependencies: - "@wagmi/core": 2.22.1(@tanstack/query-core@5.90.20)(@types/react@19.2.8)(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)) - hono: 4.12.8 + "@wagmi/core": 2.22.1(@tanstack/query-core@5.90.20)(@types/react@19.2.8)(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)) + hono: 4.12.7 idb-keyval: 6.2.2 mipd: 0.0.7(typescript@5.9.3) ox: 0.9.17(typescript@5.9.3)(zod@4.3.6) - viem: 2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + viem: 2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) zod: 4.3.6 zustand: 5.0.11(@types/react@19.2.8)(react@19.2.3)(use-sync-external-store@1.4.0(react@19.2.3)) optionalDependencies: "@tanstack/react-query": 5.90.21(react@19.2.3) react: 19.2.3 typescript: 5.9.3 - wagmi: 2.19.5(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76) + wagmi: 2.19.5(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76) transitivePeerDependencies: - "@types/react" - immer @@ -32567,46 +32610,46 @@ snapshots: postal-mime@2.7.3: {} - postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(yaml@2.8.2): + postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(yaml@2.8.2): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 2.6.1 - postcss: 8.5.6 + postcss: 8.5.8 tsx: 4.21.0 yaml: 2.8.2 - postcss-loader@8.1.1(postcss@8.5.6)(typescript@5.9.3)(webpack@5.105.1): + postcss-loader@8.1.1(postcss@8.5.8)(typescript@5.9.3)(webpack@5.105.4): dependencies: - cosmiconfig: 9.0.0(typescript@5.9.3) + cosmiconfig: 9.0.1(typescript@5.9.3) jiti: 1.21.7 - postcss: 8.5.6 + postcss: 8.5.8 semver: 7.7.4 optionalDependencies: - webpack: 5.105.1 + webpack: 5.105.4 transitivePeerDependencies: - typescript - postcss-modules-extract-imports@3.1.0(postcss@8.5.6): + postcss-modules-extract-imports@3.1.0(postcss@8.5.8): dependencies: - postcss: 8.5.6 + postcss: 8.5.8 - postcss-modules-local-by-default@4.2.0(postcss@8.5.6): + postcss-modules-local-by-default@4.2.0(postcss@8.5.8): dependencies: - icss-utils: 5.1.0(postcss@8.5.6) - postcss: 8.5.6 + icss-utils: 5.1.0(postcss@8.5.8) + postcss: 8.5.8 postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.2.1(postcss@8.5.6): + postcss-modules-scope@3.2.1(postcss@8.5.8): dependencies: - postcss: 8.5.6 + postcss: 8.5.8 postcss-selector-parser: 7.1.0 - postcss-modules-values@4.0.0(postcss@8.5.6): + postcss-modules-values@4.0.0(postcss@8.5.8): dependencies: - icss-utils: 5.1.0(postcss@8.5.6) - postcss: 8.5.6 + icss-utils: 5.1.0(postcss@8.5.8) + postcss: 8.5.8 postcss-selector-parser@7.1.0: dependencies: @@ -32621,7 +32664,7 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@8.5.6: + postcss@8.5.8: dependencies: nanoid: 3.3.11 picocolors: 1.1.1 @@ -32639,7 +32682,7 @@ snapshots: preact@10.24.2: {} - preact@10.28.3: {} + preact@10.29.0: {} prelude-ls@1.2.1: {} @@ -32712,7 +32755,7 @@ snapshots: "@protobufjs/path": 1.1.2 "@protobufjs/pool": 1.1.0 "@protobufjs/utf8": 1.1.0 - "@types/node": 20.19.33 + "@types/node": 20.19.37 long: 5.3.2 proxy-compare@2.6.0: {} @@ -32725,7 +32768,7 @@ snapshots: public-encrypt@4.0.3: dependencies: - bn.js: 4.12.2 + bn.js: 4.12.3 browserify-rsa: 4.1.1 create-hash: 1.2.0 parse-asn1: 5.1.7 @@ -32752,11 +32795,7 @@ snapshots: pngjs: 5.0.0 yargs: 15.4.1 - qs@6.14.0: - dependencies: - side-channel: 1.1.0 - - qs@6.14.1: + qs@6.15.0: dependencies: side-channel: 1.1.0 @@ -32840,7 +32879,7 @@ snapshots: react: 19.2.3 scheduler: 0.27.0 - react-hook-form@7.71.1(react@19.2.3): + react-hook-form@7.71.2(react@19.2.3): dependencies: react: 19.2.3 @@ -33106,7 +33145,7 @@ snapshots: requires-port@1.0.0: {} - resend@6.9.2: + resend@6.9.3: dependencies: postal-mime: 2.7.3 svix: 1.84.1 @@ -33126,7 +33165,7 @@ snapshots: adjust-sourcemap-loader: 4.0.0 convert-source-map: 1.9.0 loader-utils: 2.0.4 - postcss: 8.5.6 + postcss: 8.5.8 source-map: 0.6.1 resolve.exports@2.0.3: {} @@ -33169,9 +33208,9 @@ snapshots: dependencies: glob: 7.2.3 - rimraf@6.1.2: + rimraf@6.1.3: dependencies: - glob: 13.0.0 + glob: 13.0.6 package-json-from-dist: 1.0.1 ripemd160@2.0.1: @@ -33272,11 +33311,11 @@ snapshots: safer-buffer@2.1.2: {} - sass-loader@16.0.5(webpack@5.105.1): + sass-loader@16.0.5(webpack@5.105.4): dependencies: neo-async: 2.6.2 optionalDependencies: - webpack: 5.105.1 + webpack: 5.105.4 saxes@6.0.0: dependencies: @@ -33287,8 +33326,8 @@ snapshots: schema-utils@3.3.0: dependencies: "@types/json-schema": 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) + ajv: 6.14.0 + ajv-keywords: 3.5.2(ajv@6.14.0) schema-utils@4.3.3: dependencies: @@ -33315,10 +33354,6 @@ snapshots: tslib: 2.8.1 upper-case-first: 2.0.2 - serialize-javascript@6.0.2: - dependencies: - randombytes: 2.1.0 - set-blocking@2.0.0: {} set-cookie-parser@2.7.1: {} @@ -33557,7 +33592,7 @@ snapshots: es-errors: 1.3.0 internal-slot: 1.1.0 - storybook@10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10): + storybook@10.2.17(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.8.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(utf-8-validate@5.0.10): dependencies: "@storybook/global": 5.0.0 "@storybook/icons": 2.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -33698,10 +33733,6 @@ snapshots: dependencies: ansi-regex: 5.0.1 - strip-ansi@7.1.0: - dependencies: - ansi-regex: 6.1.0 - strip-ansi@7.1.2: dependencies: ansi-regex: 6.2.2 @@ -33726,13 +33757,13 @@ snapshots: stubborn-fs@1.2.5: {} - style-loader@3.3.4(webpack@5.105.1): + style-loader@3.3.4(webpack@5.105.4): dependencies: - webpack: 5.105.1 + webpack: 5.105.4 - style-loader@4.0.0(webpack@5.105.1): + style-loader@4.0.0(webpack@5.105.4): dependencies: - webpack: 5.105.1 + webpack: 5.105.4 styled-jsx@5.1.6(@babel/core@7.28.5)(react@19.2.3): dependencies: @@ -33785,7 +33816,7 @@ snapshots: dependencies: tslib: 2.8.1 - swr@2.4.0(react@19.2.3): + swr@2.4.1(react@19.2.3): dependencies: dequal: 2.0.3 react: 19.2.3 @@ -33817,29 +33848,37 @@ snapshots: tailwind-merge@2.6.1: {} - tailwindcss@4.1.18: {} + tailwindcss@4.2.1: {} tapable@2.3.0: {} + tar@6.2.1: + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + tdigest@0.1.2: dependencies: bintrees: 1.0.2 terminal-size@4.0.0: {} - terser-webpack-plugin@5.3.16(webpack@5.105.1): + terser-webpack-plugin@5.4.0(webpack@5.105.4): dependencies: "@jridgewell/trace-mapping": 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 - serialize-javascript: 6.0.2 terser: 5.46.0 - webpack: 5.105.1 + webpack: 5.105.4 terser@5.46.0: dependencies: "@jridgewell/source-map": 0.3.11 - acorn: 8.15.0 + acorn: 8.16.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -33847,13 +33886,13 @@ snapshots: dependencies: "@istanbuljs/schema": 0.1.3 glob: 7.2.3 - minimatch: 3.1.2 + minimatch: 3.1.5 test-exclude@7.0.1: dependencies: "@istanbuljs/schema": 0.1.3 glob: 10.5.0 - minimatch: 9.0.5 + minimatch: 9.0.9 text-encoding-utf-8@1.0.2: {} @@ -33895,7 +33934,7 @@ snapshots: tinyexec@1.0.1: {} - tinyexec@1.0.4: {} + tinyexec@1.0.2: {} tinyglobby@0.2.15: dependencies: @@ -33906,7 +33945,7 @@ snapshots: tinyrainbow@2.0.0: {} - tinyrainbow@3.1.0: {} + tinyrainbow@3.0.3: {} tinyspy@4.0.3: {} @@ -33976,12 +34015,12 @@ snapshots: dependencies: tslib: 2.8.1 - ts-jest@29.4.6(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.33)(ts-node@10.9.2(@types/node@20.19.33)(typescript@5.9.3)))(typescript@5.9.3): + ts-jest@29.4.6(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.37)(ts-node@10.9.2(@types/node@20.19.37)(typescript@5.9.3)))(typescript@5.9.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 handlebars: 4.7.8 - jest: 29.7.0(@types/node@20.19.33)(ts-node@10.9.2(@types/node@20.19.33)(typescript@5.9.3)) + jest: 29.7.0(@types/node@20.19.37)(ts-node@10.9.2(@types/node@20.19.37)(typescript@5.9.3)) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 @@ -33996,12 +34035,12 @@ snapshots: babel-jest: 29.7.0(@babel/core@7.28.5) jest-util: 29.7.0 - ts-jest@29.4.6(@babel/core@7.29.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.0))(jest-util@29.7.0)(jest@29.7.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)))(typescript@5.9.3): + ts-jest@29.4.6(@babel/core@7.29.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.0))(jest-util@29.7.0)(jest@29.7.0(@types/node@25.4.0)(ts-node@10.9.2(@types/node@25.4.0)(typescript@5.9.3)))(typescript@5.9.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 handlebars: 4.7.8 - jest: 29.7.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)) + jest: 29.7.0(@types/node@25.4.0)(ts-node@10.9.2(@types/node@25.4.0)(typescript@5.9.3)) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 @@ -34025,15 +34064,15 @@ snapshots: "@ts-morph/common": 0.28.1 code-block-writer: 13.0.3 - ts-node@10.9.2(@types/node@20.19.33)(typescript@5.9.3): + ts-node@10.9.2(@types/node@20.19.37)(typescript@5.9.3): dependencies: "@cspotcode/source-map-support": 0.8.1 "@tsconfig/node10": 1.0.11 "@tsconfig/node12": 1.0.11 "@tsconfig/node14": 1.0.3 "@tsconfig/node16": 1.0.4 - "@types/node": 20.19.33 - acorn: 8.15.0 + "@types/node": 20.19.37 + acorn: 8.16.0 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 @@ -34043,15 +34082,15 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3): + ts-node@10.9.2(@types/node@25.4.0)(typescript@5.9.3): dependencies: "@cspotcode/source-map-support": 0.8.1 "@tsconfig/node10": 1.0.11 "@tsconfig/node12": 1.0.11 "@tsconfig/node14": 1.0.3 "@tsconfig/node16": 1.0.4 - "@types/node": 25.5.0 - acorn: 8.15.0 + "@types/node": 25.4.0 + acorn: 8.16.0 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 @@ -34088,8 +34127,6 @@ snapshots: tslib@1.14.1: {} - tslib@2.4.1: {} - tslib@2.6.2: {} tslib@2.6.3: {} @@ -34098,7 +34135,7 @@ snapshots: tslib@2.8.1: {} - tsup@8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2): + tsup@8.5.1(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2): dependencies: bundle-require: 5.1.0(esbuild@0.27.1) cac: 6.7.14 @@ -34109,7 +34146,7 @@ snapshots: fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(yaml@2.8.2) + postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(yaml@2.8.2) resolve-from: 5.0.0 rollup: 4.45.1 source-map: 0.7.6 @@ -34118,7 +34155,7 @@ snapshots: tinyglobby: 0.2.15 tree-kill: 1.2.2 optionalDependencies: - postcss: 8.5.6 + postcss: 8.5.8 typescript: 5.9.3 transitivePeerDependencies: - jiti @@ -34135,32 +34172,32 @@ snapshots: tty-browserify@0.0.1: {} - turbo-darwin-64@2.8.6: + turbo-darwin-64@2.8.16: optional: true - turbo-darwin-arm64@2.8.6: + turbo-darwin-arm64@2.8.16: optional: true - turbo-linux-64@2.8.6: + turbo-linux-64@2.8.16: optional: true - turbo-linux-arm64@2.8.6: + turbo-linux-arm64@2.8.16: optional: true - turbo-windows-64@2.8.6: + turbo-windows-64@2.8.16: optional: true - turbo-windows-arm64@2.8.6: + turbo-windows-arm64@2.8.16: optional: true - turbo@2.8.6: + turbo@2.8.16: optionalDependencies: - turbo-darwin-64: 2.8.6 - turbo-darwin-arm64: 2.8.6 - turbo-linux-64: 2.8.6 - turbo-linux-arm64: 2.8.6 - turbo-windows-64: 2.8.6 - turbo-windows-arm64: 2.8.6 + turbo-darwin-64: 2.8.16 + turbo-darwin-arm64: 2.8.16 + turbo-linux-64: 2.8.16 + turbo-linux-arm64: 2.8.16 + turbo-windows-64: 2.8.16 + turbo-windows-arm64: 2.8.16 tw-animate-css@1.4.0: {} @@ -34219,13 +34256,13 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): + typescript-eslint@8.53.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3): dependencies: - "@typescript-eslint/eslint-plugin": 8.53.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - "@typescript-eslint/parser": 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + "@typescript-eslint/eslint-plugin": 8.53.0(@typescript-eslint/parser@8.53.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + "@typescript-eslint/parser": 8.53.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) "@typescript-eslint/typescript-estree": 8.53.0(typescript@5.9.3) - "@typescript-eslint/utils": 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.2(jiti@2.6.1) + "@typescript-eslint/utils": 8.53.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.4(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -34264,7 +34301,7 @@ snapshots: undici-types@7.21.0: {} - undici@7.24.4: {} + undici@7.22.0: {} unicode-canonical-property-names-ecmascript@2.0.1: {} @@ -34361,7 +34398,7 @@ snapshots: url@0.11.4: dependencies: punycode: 1.4.1 - qs: 6.14.0 + qs: 6.15.0 urlpattern-polyfill@10.1.0: {} @@ -34478,7 +34515,7 @@ snapshots: - utf-8-validate - zod - viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.22.4): + viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.22.4): dependencies: "@noble/curves": 1.9.1 "@noble/hashes": 1.8.0 @@ -34486,7 +34523,7 @@ snapshots: "@scure/bip39": 1.6.0 abitype: 1.2.3(typescript@5.9.3)(zod@3.22.4) isows: 1.0.7(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) - ox: 0.12.1(typescript@5.9.3)(zod@3.22.4) + ox: 0.14.0(typescript@5.9.3)(zod@3.22.4) ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) optionalDependencies: typescript: 5.9.3 @@ -34495,7 +34532,7 @@ snapshots: - utf-8-validate - zod - viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76): + viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76): dependencies: "@noble/curves": 1.9.1 "@noble/hashes": 1.8.0 @@ -34503,7 +34540,7 @@ snapshots: "@scure/bip39": 1.6.0 abitype: 1.2.3(typescript@5.9.3)(zod@3.25.76) isows: 1.0.7(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) - ox: 0.12.1(typescript@5.9.3)(zod@3.25.76) + ox: 0.14.0(typescript@5.9.3)(zod@3.25.76) ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) optionalDependencies: typescript: 5.9.3 @@ -34512,13 +34549,13 @@ snapshots: - utf-8-validate - zod - vite-node@1.0.2(@types/node@20.19.33)(lightningcss@1.30.2)(terser@5.46.0): + vite-node@1.0.2(@types/node@20.19.37)(lightningcss@1.31.1)(terser@5.46.0): dependencies: cac: 6.7.14 debug: 4.4.3 pathe: 1.1.2 picocolors: 1.1.1 - vite: 5.4.21(@types/node@20.19.33)(lightningcss@1.30.2)(terser@5.46.0) + vite: 5.4.21(@types/node@20.19.37)(lightningcss@1.31.1)(terser@5.46.0) transitivePeerDependencies: - "@types/node" - less @@ -34530,13 +34567,13 @@ snapshots: - supports-color - terser - vite-node@3.2.4(@types/node@20.19.33)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2): + vite-node@3.2.4(@types/node@20.19.37)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2): dependencies: cac: 6.7.14 debug: 4.4.3 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.0.5(@types/node@20.19.33)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.0.5(@types/node@20.19.37)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - "@types/node" - jiti @@ -34551,67 +34588,67 @@ snapshots: - tsx - yaml - vite-tsconfig-paths@4.3.1(typescript@5.9.3)(vite@5.4.21(@types/node@20.19.33)(lightningcss@1.30.2)(terser@5.46.0)): + vite-tsconfig-paths@4.3.1(typescript@5.9.3)(vite@5.4.21(@types/node@20.19.37)(lightningcss@1.31.1)(terser@5.46.0)): dependencies: debug: 4.4.3 globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) optionalDependencies: - vite: 5.4.21(@types/node@20.19.33)(lightningcss@1.30.2)(terser@5.46.0) + vite: 5.4.21(@types/node@20.19.37)(lightningcss@1.31.1)(terser@5.46.0) transitivePeerDependencies: - supports-color - typescript - vite@5.4.21(@types/node@20.19.33)(lightningcss@1.30.2)(terser@5.46.0): + vite@5.4.21(@types/node@20.19.37)(lightningcss@1.31.1)(terser@5.46.0): dependencies: esbuild: 0.21.5 - postcss: 8.5.6 + postcss: 8.5.8 rollup: 4.45.1 optionalDependencies: - "@types/node": 20.19.33 + "@types/node": 20.19.37 fsevents: 2.3.3 - lightningcss: 1.30.2 + lightningcss: 1.31.1 terser: 5.46.0 - vite@7.0.5(@types/node@20.19.33)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2): + vite@7.0.5(@types/node@20.19.37)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2): dependencies: esbuild: 0.25.12 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 - postcss: 8.5.6 + postcss: 8.5.8 rollup: 4.45.1 tinyglobby: 0.2.15 optionalDependencies: - "@types/node": 20.19.33 + "@types/node": 20.19.37 fsevents: 2.3.3 jiti: 2.6.1 - lightningcss: 1.30.2 + lightningcss: 1.31.1 terser: 5.46.0 tsx: 4.21.0 yaml: 2.8.2 - vite@7.0.5(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2): + vite@7.0.5(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2): dependencies: esbuild: 0.25.12 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 - postcss: 8.5.6 + postcss: 8.5.8 rollup: 4.45.1 tinyglobby: 0.2.15 optionalDependencies: - "@types/node": 25.5.0 + "@types/node": 25.4.0 fsevents: 2.3.3 jiti: 2.6.1 - lightningcss: 1.30.2 + lightningcss: 1.31.1 terser: 5.46.0 tsx: 4.21.0 yaml: 2.8.2 - vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.33)(jiti@2.6.1)(jsdom@24.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.30.2)(msw@2.12.10(@types/node@20.19.33)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.37)(jiti@2.6.1)(jsdom@24.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.31.1)(msw@2.12.10(@types/node@20.19.37)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2): dependencies: "@types/chai": 5.2.2 "@vitest/expect": 3.2.4 - "@vitest/mocker": 3.2.4(msw@2.12.10(@types/node@20.19.33)(typescript@5.9.3))(vite@7.0.5(@types/node@20.19.33)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) + "@vitest/mocker": 3.2.4(msw@2.12.10(@types/node@20.19.37)(typescript@5.9.3))(vite@7.0.5(@types/node@20.19.37)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) "@vitest/pretty-format": 3.2.4 "@vitest/runner": 3.2.4 "@vitest/snapshot": 3.2.4 @@ -34629,12 +34666,12 @@ snapshots: tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.0.5(@types/node@20.19.33)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) - vite-node: 3.2.4(@types/node@20.19.33)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.0.5(@types/node@20.19.37)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + vite-node: 3.2.4(@types/node@20.19.37)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) why-is-node-running: 2.3.0 optionalDependencies: "@types/debug": 4.1.12 - "@types/node": 20.19.33 + "@types/node": 20.19.37 jsdom: 24.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) transitivePeerDependencies: - jiti @@ -34650,10 +34687,10 @@ snapshots: - tsx - yaml - vitest@4.1.0(@opentelemetry/api@1.9.0)(@types/node@25.5.0)(jsdom@24.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(msw@2.12.10(@types/node@25.5.0)(typescript@5.9.3))(vite@7.0.5(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)): + vitest@4.1.0(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(jsdom@24.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(msw@2.12.10(@types/node@25.4.0)(typescript@5.9.3))(vite@7.0.5(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)): dependencies: "@vitest/expect": 4.1.0 - "@vitest/mocker": 4.1.0(msw@2.12.10(@types/node@25.5.0)(typescript@5.9.3))(vite@7.0.5(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) + "@vitest/mocker": 4.1.0(msw@2.12.10(@types/node@25.4.0)(typescript@5.9.3))(vite@7.0.5(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) "@vitest/pretty-format": 4.1.0 "@vitest/runner": 4.1.0 "@vitest/snapshot": 4.1.0 @@ -34667,14 +34704,14 @@ snapshots: picomatch: 4.0.3 std-env: 4.0.0 tinybench: 2.9.0 - tinyexec: 1.0.4 + tinyexec: 1.0.2 tinyglobby: 0.2.15 - tinyrainbow: 3.1.0 - vite: 7.0.5(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + tinyrainbow: 3.0.3 + vite: 7.0.5(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) why-is-node-running: 2.3.0 optionalDependencies: "@opentelemetry/api": 1.9.0 - "@types/node": 25.5.0 + "@types/node": 25.4.0 jsdom: 24.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) transitivePeerDependencies: - msw @@ -34685,14 +34722,14 @@ snapshots: dependencies: xml-name-validator: 5.0.0 - wagmi@2.19.5(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76): + wagmi@2.19.5(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76): dependencies: "@tanstack/react-query": 5.90.21(react@19.2.3) - "@wagmi/connectors": 6.2.0(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(@wagmi/core@2.22.1(@tanstack/query-core@5.90.20)(@types/react@19.2.8)(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(utf-8-validate@5.0.10)(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76) - "@wagmi/core": 2.22.1(@tanstack/query-core@5.90.20)(@types/react@19.2.8)(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(viem@2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)) + "@wagmi/connectors": 6.2.0(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(@wagmi/core@2.22.1(@tanstack/query-core@5.90.20)(@types/react@19.2.8)(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(utf-8-validate@5.0.10)(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@19.2.3))(@types/react@19.2.8)(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.2.3)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76))(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.25.76) + "@wagmi/core": 2.22.1(@tanstack/query-core@5.90.20)(@types/react@19.2.8)(react@19.2.3)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@19.2.3))(viem@2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)) react: 19.2.3 use-sync-external-store: 1.4.0(react@19.2.3) - viem: 2.45.3(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + viem: 2.47.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: @@ -34752,7 +34789,7 @@ snapshots: webidl-conversions@7.0.0: {} - webpack-dev-middleware@6.1.3(webpack@5.105.1): + webpack-dev-middleware@6.1.3(webpack@5.105.4): dependencies: colorette: 2.0.20 memfs: 3.5.3 @@ -34760,7 +34797,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.3 optionalDependencies: - webpack: 5.105.1 + webpack: 5.105.4 webpack-hot-middleware@2.26.1: dependencies: @@ -34768,11 +34805,11 @@ snapshots: html-entities: 2.6.0 strip-ansi: 6.0.1 - webpack-sources@3.3.3: {} + webpack-sources@3.3.4: {} webpack-virtual-modules@0.6.2: {} - webpack@5.105.1: + webpack@5.105.4: dependencies: "@types/eslint-scope": 3.7.7 "@types/estree": 1.0.8 @@ -34780,11 +34817,11 @@ snapshots: "@webassemblyjs/ast": 1.14.1 "@webassemblyjs/wasm-edit": 1.14.1 "@webassemblyjs/wasm-parser": 1.14.1 - acorn: 8.15.0 - acorn-import-phases: 1.0.4(acorn@8.15.0) + acorn: 8.16.0 + acorn-import-phases: 1.0.4(acorn@8.16.0) browserslist: 4.28.1 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.19.0 + enhanced-resolve: 5.20.0 es-module-lexer: 2.0.0 eslint-scope: 5.1.1 events: 3.3.0 @@ -34796,9 +34833,9 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.0 - terser-webpack-plugin: 5.3.16(webpack@5.105.1) + terser-webpack-plugin: 5.4.0(webpack@5.105.4) watchpack: 2.5.1 - webpack-sources: 3.3.3 + webpack-sources: 3.3.4 transitivePeerDependencies: - "@swc/core" - esbuild @@ -34958,6 +34995,8 @@ snapshots: yallist@3.1.1: {} + yallist@4.0.0: {} + yaml-ast-parser@0.0.43: {} yaml@2.8.0: {} diff --git a/scripts/dev.sh b/scripts/dev.sh new file mode 100755 index 000000000..d9e760459 --- /dev/null +++ b/scripts/dev.sh @@ -0,0 +1,162 @@ +#!/usr/bin/env bash +set -euo pipefail + +DAO_ID="${1:-}" + +# Colors per service +C_API="\033[34m" # blue +C_GATEWAY="\033[35m" # magenta +C_GATEFUL="\033[36m" # cyan +C_CODEGEN="\033[33m" # yellow +C_DASHBOARD="\033[32m" # green +C_SCRIPT="\033[90m" # gray (script-level logs) +C_RESET="\033[0m" + +log() { + printf "${C_SCRIPT}[dev]${C_RESET} %s\n" "$*" +} + +# Run a command silently, only showing lines that contain error/ERR/Error +run_errors_only() { + local color=$1 + local label=$2 + shift 2 + "$@" 2>&1 | while IFS= read -r line; do + if [[ "$line" =~ [Ee][Rr][Rr][Oo][Rr] ]] || [[ "$line" =~ [Ff][Aa][Ii][Ll] ]]; then + printf "${color}[%s]${C_RESET} %s\n" "$label" "$line" + fi + done +} + +# Prefix each line of a command's output with a colored tag +# Optional: pass a ready_file and ready_pattern to signal when a log line matches +run_with_prefix() { + local color=$1 + local label=$2 + local ready_file=$3 + local ready_pattern=$4 + shift 4 + "$@" 2>&1 | while IFS= read -r line; do + printf "${color}[%s]${C_RESET} %s\n" "$label" "$line" + if [ -n "$ready_file" ] && [ -n "$ready_pattern" ] && [[ "$line" == *"$ready_pattern"* ]]; then + touch "$ready_file" + ready_pattern="" # only match once + fi + done +} + +# Wait until a marker file exists +wait_for_ready() { + local ready_file=$1 + local name=$2 + local timeout=${3:-120} + local elapsed=0 + log "Waiting for $name to be ready..." + while [ ! -f "$ready_file" ]; do + sleep 1 + elapsed=$((elapsed + 1)) + if [ "$elapsed" -ge "$timeout" ]; then + log "Timed out waiting for $name" + exit 1 + fi + done + log "$name is ready" +} + +# Kill the entire process tree on exit +cleanup() { + echo "" + log "Shutting down..." + # Send TERM to all processes in our process group + trap - INT TERM EXIT + rm -f "${GATEWAY_READY:-}" "${GATEFUL_READY:-}" 2>/dev/null + kill 0 2>/dev/null || true + wait 2>/dev/null +} +trap cleanup INT TERM EXIT + +wait_for_port() { + local port=$1 + local name=$2 + local timeout=${3:-60} + local elapsed=0 + log "Waiting for $name on port $port..." + while ! (lsof -i ":$port" -sTCP:LISTEN >/dev/null 2>&1 || ss -tlnH "sport = :$port" 2>/dev/null | grep -q LISTEN); do + sleep 1 + elapsed=$((elapsed + 1)) + if [ "$elapsed" -ge "$timeout" ]; then + log "Timed out waiting for $name on port $port" + exit 1 + fi + done + log "$name is ready on port $port" +} + +# Wrap a command with `railway run` for env injection, with fallback to running locally +railway_run() { + local service=$1 + shift + if railway run -e dev -s "$service" echo ok >/dev/null 2>&1; then + railway run -e dev -s "$service" "$@" + else + log "Railway service $service not found, running locally with .env" + "$@" + fi +} + +if [ -n "$DAO_ID" ]; then + DAO_UPPER=$(echo "$DAO_ID" | tr '[:lower:]' '[:upper:]') + + # 1. Start API + log "Starting API for $DAO_ID..." + run_with_prefix "$C_API" "🐙 api" "" "" railway_run "${DAO_ID}-api" pnpm api dev -- "$DAO_ID" & + + # 2. Wait for API + wait_for_port 42069 "API" + export "DAO_API_${DAO_UPPER}=http://localhost:42069" +else + log "No DAO_ID provided, skipping local API" +fi + +GATEWAY_READY=$(mktemp) +rm -f "$GATEWAY_READY" + +log "Starting Gateway..." +run_with_prefix "$C_GATEWAY" "🌎 gateway" "$GATEWAY_READY" "Mesh running at" railway_run api-gateway pnpm gateway dev & + +# 3. Wait for Gateway +wait_for_ready "$GATEWAY_READY" "Gateway" + +GATEFUL_READY=$(mktemp) +rm -f "$GATEFUL_READY" + +log "Starting Gateful..." +run_with_prefix "$C_GATEFUL" "🚪 gateful" "$GATEFUL_READY" "🚀 REST Gateway running" railway_run gateful pnpm gateful dev & + +# 4. Wait for Gateful +wait_for_ready "$GATEFUL_READY" "Gateful" + +# 5. Start Client (codegen + build watch, errors only) +# Point codegen at the local gateway so types stay in sync +export ANTICAPTURE_GRAPHQL_ENDPOINT="http://localhost:4000/graphql" +log "Starting Client (silent, errors only)..." +run_errors_only "$C_CODEGEN" "🤝 client" pnpm client dev & + +# 6. Start Dashboard – point it at the local Gateful so local backend changes are visible +export NEXT_PUBLIC_BASE_URL="http://localhost:4000/graphql" +log "Starting Dashboard..." +run_with_prefix "$C_DASHBOARD" "📺 dashboard" "" "" pnpm dashboard dev & + +echo "" +log "All services running:" +if [ -n "$DAO_ID" ]; then + printf " ${C_API}🐙 API${C_RESET} http://localhost:42069 ($DAO_ID)\n" +fi +printf " ${C_GATEWAY}🌎 Gateway${C_RESET} http://localhost:4000\n" +printf " ${C_GATEFUL}🚪 Gateful${C_RESET} http://localhost:4001\n" +printf " ${C_CODEGEN}🤝 Client${C_RESET} codegen + build watch\n" +printf " ${C_DASHBOARD}📺 Dashboard${C_RESET} http://localhost:3000\n" +echo "" +log "Press Ctrl+C to stop all services." + +wait diff --git a/turbo.json b/turbo.json index a9c12d7f0..f81bb95f1 100644 --- a/turbo.json +++ b/turbo.json @@ -1,6 +1,5 @@ { "$schema": "https://turbo.build/schema.json", - "globalEnv": [".env"], "tasks": { "build": { "dependsOn": ["^build"], @@ -15,10 +14,49 @@ "outputs": ["storybook-static/**"], "env": ["FIGMA_TOKEN", "VALIDATE_FIGMA_TOKEN_API"] }, + "start": { + "dependsOn": ["^build"], + "persistent": true, + "cache": false, + "passThroughEnv": ["*"] + }, "clean": {}, - "lint": {}, - "lint:fix": {}, - "typecheck": {}, - "test": {} + "lint": { + "inputs": [ + "**/*.ts", + "**/*.tsx", + "**/*.js", + "**/*.jsx", + "eslint.config.*" + ] + }, + "lint:fix": { + "inputs": [ + "**/*.ts", + "**/*.tsx", + "**/*.js", + "**/*.jsx", + "eslint.config.*" + ] + }, + "typecheck": { + "dependsOn": ["^build"], + "inputs": ["**/*.ts", "**/*.tsx", "tsconfig.json", "tsconfig.*.json"] + }, + "test": { + "inputs": ["**/*.ts", "**/*.tsx", "**/*.test.*"] + }, + "codegen": { + "outputs": ["generated.ts", "types.ts"] + }, + "db:generate": { + "inputs": ["src/**/*.ts"], + "outputs": ["drizzle/**"] + }, + "dev": { + "persistent": true, + "cache": false, + "passThroughEnv": ["*"] + } } }