diff --git a/README.md b/README.md index 3aed51a4..1def639f 100644 --- a/README.md +++ b/README.md @@ -11,8 +11,8 @@ See the [website](https://foil.xyz), [app](https://app.foil.xyz), and [docs](htt - Start the app - `pnpm run dev:app` and access at http://localhost:3000 - Connect your wallet application to http://localhost:8545 (Chain ID 13370) **Remember to reset the nonce in the wallet after restarting the node.** -- Start the data service - - `pnpm run dev:data` and access at http://localhost:3001 +- Start the API + - `pnpm run dev:api` and access at http://localhost:3001 - Start the website - `pnpm run dev:website` and access at http://localhost:3002 - Start the docs @@ -23,6 +23,7 @@ See the [website](https://foil.xyz), [app](https://app.foil.xyz), and [docs](htt - Go to `/packages/protocol` - Bump the version in `/packages/protocol/package.json` - Verify there are no issues with `pnpm simulate-deploy:sepolia --rpc-url --private-key ` + Then: ``` pnpm deploy:sepolia --rpc-url --private-key diff --git a/package.json b/package.json index 7f100d49..aeaee771 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "dev:app": "pnpm --filter app run dev", "dev:docs": "pnpm --filter docs run dev", "dev:website": "pnpm --filter website run dev", - "dev:data": "concurrently \"NODE_ENV=development pnpm --filter data run dev:service\" \"NODE_ENV=development pnpm --filter data run dev:worker\"", + "dev:api": "concurrently \"NODE_ENV=development pnpm --filter api run dev:service\" \"NODE_ENV=development pnpm --filter api run dev:worker\"", "start:reindex-market": "pnpm --filter data run start:reindex-market", "start:reindex-missing": "pnpm --filter data run start:reindex-missing" }, diff --git a/packages/data/.env.sample b/packages/api/.env.sample similarity index 100% rename from packages/data/.env.sample rename to packages/api/.env.sample diff --git a/packages/data/.gitignore b/packages/api/.gitignore similarity index 100% rename from packages/data/.gitignore rename to packages/api/.gitignore diff --git a/packages/data/LICENSE b/packages/api/LICENSE similarity index 100% rename from packages/data/LICENSE rename to packages/api/LICENSE diff --git a/packages/data/package.json b/packages/api/package.json similarity index 98% rename from packages/data/package.json rename to packages/api/package.json index 7714f82e..2db121dc 100644 --- a/packages/data/package.json +++ b/packages/api/package.json @@ -1,5 +1,5 @@ { - "name": "@foil/data", + "name": "@foil/api", "version": "1.0.0", "private": true, "license": "MIT", diff --git a/packages/data/schema.graphql b/packages/api/schema.graphql similarity index 100% rename from packages/data/schema.graphql rename to packages/api/schema.graphql diff --git a/packages/data/src/constants.ts b/packages/api/src/constants.ts similarity index 100% rename from packages/data/src/constants.ts rename to packages/api/src/constants.ts diff --git a/packages/data/src/controllers/abi/collateralAbi.json b/packages/api/src/controllers/abi/collateralAbi.json similarity index 100% rename from packages/data/src/controllers/abi/collateralAbi.json rename to packages/api/src/controllers/abi/collateralAbi.json diff --git a/packages/data/src/controllers/market.ts b/packages/api/src/controllers/market.ts similarity index 100% rename from packages/data/src/controllers/market.ts rename to packages/api/src/controllers/market.ts diff --git a/packages/data/src/controllers/marketHelpers.ts b/packages/api/src/controllers/marketHelpers.ts similarity index 100% rename from packages/data/src/controllers/marketHelpers.ts rename to packages/api/src/controllers/marketHelpers.ts diff --git a/packages/data/src/controllers/price.ts b/packages/api/src/controllers/price.ts similarity index 100% rename from packages/data/src/controllers/price.ts rename to packages/api/src/controllers/price.ts diff --git a/packages/data/src/db.ts b/packages/api/src/db.ts similarity index 100% rename from packages/data/src/db.ts rename to packages/api/src/db.ts diff --git a/packages/data/src/fixtures.ts b/packages/api/src/fixtures.ts similarity index 100% rename from packages/data/src/fixtures.ts rename to packages/api/src/fixtures.ts diff --git a/packages/data/src/graphql/loaders.ts b/packages/api/src/graphql/loaders.ts similarity index 100% rename from packages/data/src/graphql/loaders.ts rename to packages/api/src/graphql/loaders.ts diff --git a/packages/data/src/graphql/resolvers/index.ts b/packages/api/src/graphql/resolvers/index.ts similarity index 99% rename from packages/data/src/graphql/resolvers/index.ts rename to packages/api/src/graphql/resolvers/index.ts index 1a8bb35d..fa0f562d 100644 --- a/packages/data/src/graphql/resolvers/index.ts +++ b/packages/api/src/graphql/resolvers/index.ts @@ -1,5 +1,4 @@ import { Resolver, Query, Arg, Int, FieldResolver, Root } from "type-graphql"; -import { Between, In } from "typeorm"; import dataSource from "../../db"; import { Market } from "../../models/Market"; import { Resource } from "../../models/Resource"; @@ -65,6 +64,7 @@ const mapPositionToType = (position: Position): PositionType => ({ borrowedQuoteToken: position.borrowedQuoteToken, lpBaseToken: position.lpBaseToken, lpQuoteToken: position.lpQuoteToken, + isSettled: position.isSettled, }); const mapTransactionToType = (transaction: Transaction): TransactionType => ({ diff --git a/packages/data/src/graphql/types/index.ts b/packages/api/src/graphql/types/index.ts similarity index 97% rename from packages/data/src/graphql/types/index.ts rename to packages/api/src/graphql/types/index.ts index a6b19e3d..b7b53e8b 100644 --- a/packages/data/src/graphql/types/index.ts +++ b/packages/api/src/graphql/types/index.ts @@ -91,6 +91,9 @@ export class PositionType { @Field(() => String, { nullable: true }) lpQuoteToken: string | null; + + @Field(() => Boolean, { nullable: true }) + isSettled: boolean | null; } @ObjectType() diff --git a/packages/data/src/helpers.ts b/packages/api/src/helpers.ts similarity index 100% rename from packages/data/src/helpers.ts rename to packages/api/src/helpers.ts diff --git a/packages/data/src/instrument.ts b/packages/api/src/instrument.ts similarity index 100% rename from packages/data/src/instrument.ts rename to packages/api/src/instrument.ts diff --git a/packages/data/src/interfaces.ts b/packages/api/src/interfaces.ts similarity index 100% rename from packages/data/src/interfaces.ts rename to packages/api/src/interfaces.ts diff --git a/packages/data/src/middleware.ts b/packages/api/src/middleware.ts similarity index 100% rename from packages/data/src/middleware.ts rename to packages/api/src/middleware.ts diff --git a/packages/data/src/models/CollateralTransfer.ts b/packages/api/src/models/CollateralTransfer.ts similarity index 100% rename from packages/data/src/models/CollateralTransfer.ts rename to packages/api/src/models/CollateralTransfer.ts diff --git a/packages/data/src/models/Epoch.ts b/packages/api/src/models/Epoch.ts similarity index 100% rename from packages/data/src/models/Epoch.ts rename to packages/api/src/models/Epoch.ts diff --git a/packages/data/src/models/Event.ts b/packages/api/src/models/Event.ts similarity index 100% rename from packages/data/src/models/Event.ts rename to packages/api/src/models/Event.ts diff --git a/packages/data/src/models/IndexPrice.ts b/packages/api/src/models/IndexPrice.ts similarity index 100% rename from packages/data/src/models/IndexPrice.ts rename to packages/api/src/models/IndexPrice.ts diff --git a/packages/data/src/models/Market.ts b/packages/api/src/models/Market.ts similarity index 100% rename from packages/data/src/models/Market.ts rename to packages/api/src/models/Market.ts diff --git a/packages/data/src/models/MarketParams.ts b/packages/api/src/models/MarketParams.ts similarity index 100% rename from packages/data/src/models/MarketParams.ts rename to packages/api/src/models/MarketParams.ts diff --git a/packages/data/src/models/MarketPrice.ts b/packages/api/src/models/MarketPrice.ts similarity index 100% rename from packages/data/src/models/MarketPrice.ts rename to packages/api/src/models/MarketPrice.ts diff --git a/packages/data/src/models/Position.ts b/packages/api/src/models/Position.ts similarity index 100% rename from packages/data/src/models/Position.ts rename to packages/api/src/models/Position.ts diff --git a/packages/data/src/models/RenderJob.ts b/packages/api/src/models/RenderJob.ts similarity index 100% rename from packages/data/src/models/RenderJob.ts rename to packages/api/src/models/RenderJob.ts diff --git a/packages/data/src/models/Resource.ts b/packages/api/src/models/Resource.ts similarity index 100% rename from packages/data/src/models/Resource.ts rename to packages/api/src/models/Resource.ts diff --git a/packages/data/src/models/ResourcePrice.ts b/packages/api/src/models/ResourcePrice.ts similarity index 100% rename from packages/data/src/models/ResourcePrice.ts rename to packages/api/src/models/ResourcePrice.ts diff --git a/packages/data/src/models/Transaction.ts b/packages/api/src/models/Transaction.ts similarity index 100% rename from packages/data/src/models/Transaction.ts rename to packages/api/src/models/Transaction.ts diff --git a/packages/data/src/resourcePriceFunctions/celestiaIndexer.ts b/packages/api/src/resourcePriceFunctions/celestiaIndexer.ts similarity index 100% rename from packages/data/src/resourcePriceFunctions/celestiaIndexer.ts rename to packages/api/src/resourcePriceFunctions/celestiaIndexer.ts diff --git a/packages/data/src/resourcePriceFunctions/evmIndexer.ts b/packages/api/src/resourcePriceFunctions/evmIndexer.ts similarity index 100% rename from packages/data/src/resourcePriceFunctions/evmIndexer.ts rename to packages/api/src/resourcePriceFunctions/evmIndexer.ts diff --git a/packages/data/src/resourcePriceFunctions/iResourcePriceIndexer.ts b/packages/api/src/resourcePriceFunctions/iResourcePriceIndexer.ts similarity index 100% rename from packages/data/src/resourcePriceFunctions/iResourcePriceIndexer.ts rename to packages/api/src/resourcePriceFunctions/iResourcePriceIndexer.ts diff --git a/packages/data/src/sentry.ts b/packages/api/src/sentry.ts similarity index 100% rename from packages/data/src/sentry.ts rename to packages/api/src/sentry.ts diff --git a/packages/data/src/service.ts b/packages/api/src/service.ts similarity index 98% rename from packages/data/src/service.ts rename to packages/api/src/service.ts index 02d4356a..af1e7d3a 100644 --- a/packages/data/src/service.ts +++ b/packages/api/src/service.ts @@ -251,7 +251,7 @@ const startServer = async () => { "/markets", handleAsyncErrors(async (req, res, next) => { const markets = await marketRepository.find({ - relations: ["epochs"], + relations: ["epochs", "resource"], }); const formattedMarkets = markets.map((market) => ({ @@ -434,7 +434,7 @@ const startServer = async () => { const positions = await positionRepository.find({ where, - relations: ["epoch", "epoch.market"], + relations: ["epoch", "epoch.market", "epoch.market.resource"], order: { positionId: "ASC" }, }); @@ -478,7 +478,7 @@ const startServer = async () => { positionId: Number(positionId), epoch: { market: { id: market.id } }, }, - relations: ["epoch", "epoch.market"], + relations: ["epoch", "epoch.market", "epoch.market.resource"], }); if (!position) { @@ -517,7 +517,8 @@ const startServer = async () => { .innerJoinAndSelect("transaction.position", "position") .innerJoinAndSelect("position.epoch", "epoch") .innerJoinAndSelect("epoch.market", "market") - .innerJoinAndSelect("transaction.event", "event") // Join Event data + .innerJoinAndSelect("market.resource", "resource") + .innerJoinAndSelect("transaction.event", "event") .where("market.chainId = :chainId", { chainId }) .andWhere("market.address = :address", { address }) .orderBy("position.positionId", "ASC") @@ -957,7 +958,7 @@ const startServer = async () => { const positions = await positionRepository.find({ where: { owner: address }, - relations: ["epoch", "epoch.market", "transactions"], + relations: ["epoch", "epoch.market", "epoch.market.resource", "transactions"], }); const transactions = await transactionRepository.find({ @@ -966,6 +967,7 @@ const startServer = async () => { "position", "position.epoch", "position.epoch.market", + "position.epoch.market.resource", "event", ], }); @@ -1444,6 +1446,16 @@ const startServer = async () => { const hydratedTransaction = { ...transaction, + position: { + ...transaction.position, + epoch: { + ...transaction.position?.epoch, + market: { + ...transaction.position?.epoch?.market, + resource: transaction.position?.epoch?.market?.resource + } + } + }, collateralDelta: "0", baseTokenDelta: "0", quoteTokenDelta: "0", @@ -1484,9 +1496,9 @@ const startServer = async () => { hydratedPositions.push(hydratedTransaction); // set up for next transaction - lastBaseToken = BigInt(currentBaseTokenBalance); - lastQuoteToken = BigInt(currentQuoteTokenBalance); - lastCollateral = BigInt(currentCollateralBalance); + lastBaseToken = BigInt(transaction.baseToken); + lastQuoteToken = BigInt(transaction.quoteToken); + lastCollateral = BigInt(transaction.collateral); } return hydratedPositions; }; diff --git a/packages/data/src/serviceUtil.ts b/packages/api/src/serviceUtil.ts similarity index 100% rename from packages/data/src/serviceUtil.ts rename to packages/api/src/serviceUtil.ts diff --git a/packages/data/src/worker.ts b/packages/api/src/worker.ts similarity index 100% rename from packages/data/src/worker.ts rename to packages/api/src/worker.ts diff --git a/packages/data/tsconfig.json b/packages/api/tsconfig.json similarity index 100% rename from packages/data/tsconfig.json rename to packages/api/tsconfig.json diff --git a/packages/app/src/app/admin/page.tsx b/packages/app/src/app/admin/page.tsx index 9cd9038d..8835a8cf 100644 --- a/packages/app/src/app/admin/page.tsx +++ b/packages/app/src/app/admin/page.tsx @@ -4,10 +4,8 @@ import axios from 'axios'; import { useState } from 'react'; -import { useSignMessage } from 'wagmi'; import { Button } from '@/components/ui/button'; -import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Dialog, DialogContent, @@ -15,92 +13,19 @@ import { DialogTitle, } from '@/components/ui/dialog'; import { Input } from '@/components/ui/input'; -import { toast } from '~/hooks/use-toast'; import MarketsTable from '~/lib/components/MarketsTable'; -import { - ADMIN_AUTHENTICATE_MSG, - API_BASE_URL, -} from '~/lib/constants/constants'; +import { API_BASE_URL } from '~/lib/constants/constants'; import type { RenderJob } from '~/lib/interfaces/interfaces'; -const JobStatus = ({ - job, - lastRefresh, -}: { - job: RenderJob; - lastRefresh: string; -}) => { - return ( - - - Job Status - - -
- {Object.entries(job).map(([key, value]) => ( -
-

{key}:

-

{value}

-
- ))} -
-

Last Refresh:

-

{lastRefresh}

-
-
-
-
- ); -}; - const Admin = () => { - const [chainId, setChainId] = useState(''); - const [address, setAddress] = useState(''); const [job, setJob] = useState(); - const [lastRefresh, setLastRefresh] = useState(''); const [loadingAction, setLoadingAction] = useState<{ [actionName: string]: boolean; }>({}); - const [reindexOpen, setReindexOpen] = useState(false); const [statusOpen, setStatusOpen] = useState(false); - const { signMessageAsync } = useSignMessage(); const [manualServiceId, setManualServiceId] = useState(''); const [manualJobId, setManualJobId] = useState(''); - const handleReindex = async () => { - try { - setLoadingAction((prev) => ({ ...prev, reindex: true })); - const timestamp = Date.now(); - - const signature = await signMessageAsync({ - message: ADMIN_AUTHENTICATE_MSG, - }); - const response = await axios.get( - `${API_BASE_URL}/reindex?chainId=${chainId}&address=${address}&signature=${signature}×tamp=${timestamp}` - ); - if (response.data.success && response.data.job) { - setJob(response.data.job); - } else { - setJob(undefined); - toast({ - title: 'Failed to get position from uniswap', - description: `Unable to reindex: ${response.data.error}`, - variant: 'destructive', - }); - } - setLoadingAction((prev) => ({ ...prev, reindex: false })); - } catch (e: any) { - console.error('error:', e); - setJob(undefined); - toast({ - title: 'Failed to get position from uniswap', - description: `Unable to reindex: ${e?.response?.data?.error}`, - variant: 'destructive', - }); - setLoadingAction((prev) => ({ ...prev, reindex: false })); - } - }; - const handleGetStatus = async () => { const serviceId = manualServiceId || job?.serviceId; const jobId = manualJobId || job?.id; @@ -114,7 +39,6 @@ const Admin = () => { if (response.data.success && response.data.job) { setJob(response.data.job); - setLastRefresh(new Date().toISOString()); } setLoadingAction((prev) => ({ ...prev, getStatus: false })); }; @@ -124,55 +48,9 @@ const Admin = () => {
-
- - - - Reindex Market - -
-
- -
- -
- -
- - - - {job ? : null} -
-
-
- diff --git a/packages/app/src/app/resources/[id]/page.tsx b/packages/app/src/app/resources/[id]/page.tsx index bfefa38c..728086d8 100644 --- a/packages/app/src/app/resources/[id]/page.tsx +++ b/packages/app/src/app/resources/[id]/page.tsx @@ -3,7 +3,7 @@ import { useQuery } from '@tanstack/react-query'; import { type ColumnDef } from '@tanstack/react-table'; import { format } from 'date-fns'; -import { ChevronRight } from 'lucide-react'; +import { ChevronRight, Loader2 } from 'lucide-react'; import Link from 'next/link'; import React from 'react'; import { formatUnits } from 'viem'; @@ -159,7 +159,8 @@ const generatePlaceholderIndexPrices = () => { const renderPriceDisplay = ( isLoading: boolean, - price: ResourcePrice | undefined + price: ResourcePrice | undefined, + resourceId: string ) => { if (isLoading) { return Loading...; @@ -169,15 +170,17 @@ const renderPriceDisplay = ( return No price data; } + const unit = resourceId === 'celestia-blobspace' ? 'μTIA' : 'gwei'; + return ( - gwei + {unit} ); }; const MarketContent = ({ params }: { params: { id: string } }) => { - const { data: resources } = useResources(); + const { data: resources, isLoading: isLoadingResources } = useResources(); const category = MARKET_CATEGORIES.find((c) => c.id === params.id); const { data: latestPrice, isLoading: isPriceLoading } = useLatestResourcePrice(params.id); @@ -222,6 +225,14 @@ const MarketContent = ({ params }: { params: { id: string } }) => { ); } + if (isLoadingResources) { + return ( +
+ +
+ ); + } + // Get the current resource and its markets const resource = resources?.find((r) => r.slug === params.id); const epochs = @@ -253,7 +264,7 @@ const MarketContent = ({ params }: { params: { id: string } }) => { Current Price
- {renderPriceDisplay(isPriceLoading, latestPrice)} + {renderPriceDisplay(isPriceLoading, latestPrice, params.id)}
diff --git a/packages/app/src/app/subscribe/page.tsx b/packages/app/src/app/subscribe/page.tsx index 003a2ccc..987afe94 100644 --- a/packages/app/src/app/subscribe/page.tsx +++ b/packages/app/src/app/subscribe/page.tsx @@ -44,6 +44,7 @@ const SUBSCRIPTIONS_QUERY = gql` borrowedBaseToken borrowedQuoteToken collateral + isSettled epoch { id epochId @@ -53,7 +54,6 @@ const SUBSCRIPTIONS_QUERY = gql` id chainId address - name } } } @@ -164,7 +164,8 @@ const useSubscriptions = (address?: string) => { const activePositions = positionsData.positions.filter( (position: any) => !position.isLP && // Not an LP position - BigInt(position.baseToken) > BigInt(0) // Has positive baseToken + BigInt(position.baseToken) > BigInt(0) && // Has positive baseToken + !position.isSettled // Not settled ); // For each position, fetch its transactions @@ -225,7 +226,7 @@ const SubscriptionsList = () => { const containerRef = useRef(null); const isInView = useIsInViewport(containerRef); - if (isLoading) { + if (isLoading || isResourcesLoading) { return (
@@ -268,8 +269,13 @@ const SubscriptionsList = () => { return (
{subscriptions.map((subscription) => { - const resource = resources?.find( - (r) => r.name === subscription.epoch.market.name + const resource = resources?.find((r) => + r.markets.some( + (m) => + m.chainId === subscription.epoch.market.chainId && + m.address.toLowerCase() === + subscription.epoch.market.address.toLowerCase() + ) ); return ( @@ -287,8 +293,8 @@ const SubscriptionsList = () => { className="rounded-full" /> )} -

- {subscription.epoch.market.name} +

+ {resource?.name || 'Unknown Resource'}

@@ -394,7 +400,6 @@ const SubscribeContent = () => { const [isAnalyticsOpen, setIsAnalyticsOpen] = useState(false); const [prefilledSize, setPrefilledSize] = useState(null); const { address } = useAccount(); - const { openConnectModal } = useConnectModal(); const [shouldOpenAfterConnect, setShouldOpenAfterConnect] = useState(false); // Add effect to open dialog when wallet is connected after button click @@ -408,18 +413,43 @@ const SubscribeContent = () => { const { markets } = useMarketList(); const currentTime = Math.floor(Date.now() / 1000); - // Find the gas market - const gasMarket = useMemo( - () => markets.find((market) => market.name === 'Ethereum Gas'), - [markets] - ); + // Find all gas markets + const gasMarkets = useMemo(() => { + if (!resources) return []; + const ethGasResource = resources.find((r) => r.name === 'Ethereum Gas'); + if (!ethGasResource) return []; + console.log('Resources:', resources); + console.log('Eth Gas Resource:', ethGasResource); + console.log('Markets:', markets); + + // Filter markets based on the resource's markets array + const filteredMarkets = markets.filter((market) => + ethGasResource.markets.some( + (resourceMarket) => + resourceMarket.chainId === market.chainId && + resourceMarket.address.toLowerCase() === market.address.toLowerCase() + ) + ); - // Get the next epoch or most recent epoch + console.log('Filtered Gas Markets:', filteredMarkets); + return filteredMarkets; + }, [markets, resources]); + + // Get all epochs from gas markets and find the target epoch const targetEpoch = useMemo(() => { - if (!gasMarket) return null; + if (!gasMarkets.length) return null; + + // Collect all epochs from gas markets with their corresponding market data + const allEpochs = gasMarkets.flatMap((market) => + market.epochs.map((epoch) => ({ + ...epoch, + market, + })) + ); + console.log('All Epochs:', allEpochs); // Sort epochs by start time - const sortedEpochs = [...gasMarket.epochs].sort( + const sortedEpochs = allEpochs.sort( (a, b) => a.startTimestamp - b.startTimestamp ); @@ -427,10 +457,13 @@ const SubscribeContent = () => { const nextEpoch = sortedEpochs.find( (epoch) => epoch.startTimestamp > currentTime ); + console.log('Current Time:', currentTime); + console.log('Next Epoch:', nextEpoch); + console.log('Most Recent Epoch:', sortedEpochs[sortedEpochs.length - 1]); // If no future epoch, get the most recent one return nextEpoch || sortedEpochs[sortedEpochs.length - 1] || null; - }, [gasMarket, currentTime]); + }, [gasMarkets, currentTime]); const handleNewSubscription = () => { setIsDialogOpen(true); @@ -448,7 +481,7 @@ const SubscribeContent = () => { ); } - if (!gasMarket || !targetEpoch) { + if (!gasMarkets.length || !targetEpoch) { return (
Gas market not found @@ -458,8 +491,8 @@ const SubscribeContent = () => { return (
diff --git a/packages/app/src/lib/components/MarketsTable/index.tsx b/packages/app/src/lib/components/MarketsTable/index.tsx index 4a07604c..94c13451 100644 --- a/packages/app/src/lib/components/MarketsTable/index.tsx +++ b/packages/app/src/lib/components/MarketsTable/index.tsx @@ -136,19 +136,27 @@ const MarketsTable: React.FC = () => { const { signMessageAsync } = useSignMessage(); const [missingBlocks, setMissingBlocks] = useState({}); - const data = useMemo( - () => - markets.flatMap((market) => - market.epochs.map((epoch) => ({ + const data = useMemo(() => { + const flattenedData = markets.flatMap((market) => + market.epochs.map((epoch) => { + console.log( + 'Processing epoch:', + epoch.epochId, + 'for market:', + market.address + ); + return { ...epoch, market, marketAddress: market.address, chainId: market.chainId, isPublic: market.public, - })) - ), - [markets] - ); + }; + }) + ); + console.log('Flattened market data:', flattenedData); + return flattenedData; + }, [markets]); // Simplify fetchMissingBlocks to only fetch resource price blocks const fetchMissingBlocks = async (market: Market, epochId: number) => { @@ -647,8 +655,18 @@ const EpochItem: React.FC<{ }, [isSettlementSuccess]); const { data: latestPrice, isLoading: isLatestPriceLoading } = useQuery({ - queryKey: ['latestPrice', `${market?.chainId}:${market?.address}`], + queryKey: [ + 'latestPrice', + `${market?.chainId}:${market?.address}`, + epoch.epochId, + ], queryFn: async () => { + console.log( + 'Fetching price for epoch:', + epoch.epochId, + 'market:', + market.address + ); const response = await fetch( `${API_BASE_URL}/prices/index/latest?contractId=${market.chainId}:${market.address}&epochId=${epoch.epochId}` ); @@ -816,7 +834,11 @@ const SettlementPriceTableCell: React.FC<{ }, [stEthPerTokenResult.data]); const { data: latestPrice, isLoading: isLatestPriceLoading } = useQuery({ - queryKey: ['latestPrice', `${market?.chainId}:${market?.address}`], + queryKey: [ + 'latestPrice', + `${market?.chainId}:${market?.address}`, + epoch.epochId, + ], queryFn: async () => { const response = await fetch( `${API_BASE_URL}/prices/index/latest?contractId=${market.chainId}:${market.address}&epochId=${epoch.epochId}` diff --git a/packages/app/src/lib/components/foil/Liquidity/AddEditLiquidity/index.tsx b/packages/app/src/lib/components/foil/Liquidity/AddEditLiquidity/index.tsx index 85d26912..72b8330e 100644 --- a/packages/app/src/lib/components/foil/Liquidity/AddEditLiquidity/index.tsx +++ b/packages/app/src/lib/components/foil/Liquidity/AddEditLiquidity/index.tsx @@ -920,7 +920,6 @@ const AddEditLiquidity: React.FC = () => { return ( ); diff --git a/packages/app/src/lib/components/foil/epochHeader.tsx b/packages/app/src/lib/components/foil/epochHeader.tsx index c2be3d85..769d94b2 100644 --- a/packages/app/src/lib/components/foil/epochHeader.tsx +++ b/packages/app/src/lib/components/foil/epochHeader.tsx @@ -46,7 +46,7 @@ const EpochHeader = () => {

- {currentMarket ? currentMarket.name : 'Market Name Not Found'} + {currentMarket?.resource?.name || 'Market Name Not Found'}

diff --git a/packages/app/src/lib/components/foil/liquidityPositionsTable.tsx b/packages/app/src/lib/components/foil/liquidityPositionsTable.tsx index a9f5e7e4..eeee8021 100644 --- a/packages/app/src/lib/components/foil/liquidityPositionsTable.tsx +++ b/packages/app/src/lib/components/foil/liquidityPositionsTable.tsx @@ -145,7 +145,7 @@ const createColumns = ( id: 'market', header: 'Market', accessorFn: (row: any) => - `${row.epoch.market.name} (Epoch ${row.epoch.epochId})`, + `${row.epoch.market.resource.name} (Epoch ${row.epoch.epochId})`, }, { id: 'position', diff --git a/packages/app/src/lib/components/foil/marketsTable.tsx b/packages/app/src/lib/components/foil/marketsTable.tsx index fc5b332c..2f78f009 100644 --- a/packages/app/src/lib/components/foil/marketsTable.tsx +++ b/packages/app/src/lib/components/foil/marketsTable.tsx @@ -40,14 +40,14 @@ const MarketsTable = () => { .filter((market: any) => { if (!selectedResource) return true; const resource = resources?.find((r) => r.slug === selectedResource); - return resource && market.name === resource.name; + return resource && market.resource.name === resource.name; }) .flatMap((market: any) => market.epochs.map((epoch: any) => { const startDate = new Date(epoch.startTimestamp * 1000); const endDate = new Date(epoch.endTimestamp * 1000); return { - marketName: market.name, + marketName: market.resource.name, epochId: epoch.epochId, period: `${format(startDate, 'PPpp')} - ${format( endDate, diff --git a/packages/app/src/lib/components/foil/traderPositionsTable.tsx b/packages/app/src/lib/components/foil/traderPositionsTable.tsx index f9ed791a..7e6c3e93 100644 --- a/packages/app/src/lib/components/foil/traderPositionsTable.tsx +++ b/packages/app/src/lib/components/foil/traderPositionsTable.tsx @@ -172,8 +172,8 @@ const TraderPositionsTable: React.FC = ({ positions }) => { { id: 'market', header: 'Market', - accessorFn: (row) => - `${row.epoch.market.name} (Epoch ${row.epoch.epochId})`, + accessorFn: (row: any) => + `${row.epoch.market.resource.name} (Epoch ${row.epoch.epochId})`, }, { id: 'position', diff --git a/packages/app/src/lib/components/foil/transactionTable.tsx b/packages/app/src/lib/components/foil/transactionTable.tsx index 62598b24..3fe60d89 100644 --- a/packages/app/src/lib/components/foil/transactionTable.tsx +++ b/packages/app/src/lib/components/foil/transactionTable.tsx @@ -64,8 +64,12 @@ const TransactionTable: React.FC = ({ transactions }) => { { id: 'market', header: 'Market', - accessorFn: (row) => - `${row.position.epoch.market.name} (Epoch ${row.position.epoch.epochId})`, + accessorFn: (row) => { + const marketName = + row.position?.epoch?.market?.resource?.name || 'Unknown Market'; + const epochId = row.position?.epoch?.epochId || ''; + return `${marketName} (Epoch ${epochId})`; + }, }, { id: 'position', diff --git a/packages/app/src/lib/context/MarketListProvider.tsx b/packages/app/src/lib/context/MarketListProvider.tsx index 35a3fa00..be2f9df0 100644 --- a/packages/app/src/lib/context/MarketListProvider.tsx +++ b/packages/app/src/lib/context/MarketListProvider.tsx @@ -14,6 +14,11 @@ export interface Market { chainId: number; address: string; collateralAsset: string; + resource: { + id: number; + name: string; + slug: string; + }; epochs: Array<{ id: number; epochId: number; diff --git a/packages/app/src/lib/context/MarketProvider.tsx b/packages/app/src/lib/context/MarketProvider.tsx index 1b8594e4..e0c13733 100644 --- a/packages/app/src/lib/context/MarketProvider.tsx +++ b/packages/app/src/lib/context/MarketProvider.tsx @@ -76,18 +76,28 @@ export const MarketProvider: React.FC = ({ const { data: latestPrice } = useQuery({ queryKey: ['latestPrice', `${state.chainId}:${state.address}`], queryFn: async () => { - const response = await fetch( - `${API_BASE_URL}/prices/index/latest?contractId=${state.chainId}:${state.address}&epochId=${state.epoch}` - ); - if (!response.ok) { - throw new Error('Network response was not ok'); + try { + const response = await fetch( + `${API_BASE_URL}/prices/index/latest?contractId=${state.chainId}:${state.address}&epochId=${state.epoch}` + ); + if (!response.ok) { + // Return null instead of throwing for 404s + if (response.status === 404) { + console.warn('Price data not available yet'); + return null; + } + throw new Error('Network response was not ok'); + } + const data = await response.json(); + return data.price; + } catch (error) { + console.error('Error fetching latest price:', error); + return null; } - const data = await response.json(); - return data.price; }, enabled: state.chainId !== 0 && state.epoch !== 0, refetchInterval: () => { - const currentTime = Math.floor(Date.now() / 1000); // Convert to Unix timestamp + const currentTime = Math.floor(Date.now() / 1000); if (state.averagePrice && currentTime > state.endTime) { return false; } @@ -214,7 +224,11 @@ export const MarketProvider: React.FC = ({ useEffect(() => { console.log('latestPrice =', latestPrice); - if (latestPrice !== undefined && stEthPerTokenResult.data) { + if ( + latestPrice !== undefined && + latestPrice !== null && + stEthPerTokenResult.data + ) { const stEthPerToken = Number( gweiToEther(stEthPerTokenResult.data as bigint) ); @@ -226,6 +240,15 @@ export const MarketProvider: React.FC = ({ averagePrice: averageResourcePriceinWstEth, stEthPerToken, })); + } else if (latestPrice === null) { + // When price data is not available, set averagePrice to null/0 + setState((currentState) => ({ + ...currentState, + averagePrice: 0, + stEthPerToken: stEthPerTokenResult.data + ? Number(gweiToEther(stEthPerTokenResult.data as bigint)) + : undefined, + })); } }, [latestPrice, stEthPerTokenResult.data]); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2acd69dd..d4b6c7de 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,6 +12,85 @@ importers: specifier: ^8.2.2 version: 8.2.2 + packages/api: + dependencies: + '@apollo/server': + specifier: ^4.11.3 + version: 4.11.3(encoding@0.1.13)(graphql@16.10.0) + '@sentry/cli': + specifier: ^2.39.0 + version: 2.39.0(encoding@0.1.13) + '@sentry/node': + specifier: ^8.40.0 + version: 8.40.0 + class-validator: + specifier: ^0.14.1 + version: 0.14.1 + cors: + specifier: ^2.8.5 + version: 2.8.5 + dataloader: + specifier: ^2.2.3 + version: 2.2.3 + discord.js: + specifier: ^14.16.3 + version: 14.16.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + dotenv: + specifier: ^16.4.5 + version: 16.4.5 + express: + specifier: ^4.21.1 + version: 4.21.2 + graphql: + specifier: ^16.10.0 + version: 16.10.0 + pg: + specifier: ^8.13.1 + version: 8.13.1 + reflect-metadata: + specifier: ^0.2.2 + version: 0.2.2 + sqlite3: + specifier: ^5.1.7 + version: 5.1.7 + tsconfig-paths: + specifier: ^4.2.0 + version: 4.2.0 + type-graphql: + specifier: 2.0.0-rc.2 + version: 2.0.0-rc.2(class-validator@0.14.1)(graphql-scalars@1.24.0(graphql@16.10.0))(graphql@16.10.0) + typeorm: + specifier: ^0.3.20 + version: 0.3.20(pg@8.13.1)(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@20.17.10)(typescript@5.7.2)) + typescript: + specifier: ^5.7.2 + version: 5.7.2 + viem: + specifier: ^2.21.49 + version: 2.21.49(bufferutil@4.0.8)(typescript@5.7.2)(utf-8-validate@5.0.10)(zod@3.23.8) + devDependencies: + '@types/cors': + specifier: ^2.8.17 + version: 2.8.17 + '@types/express': + specifier: ^4.17.21 + version: 4.17.21 + '@types/node': + specifier: ^20.17.6 + version: 20.17.10 + '@typescript-eslint/eslint-plugin': + specifier: ^7.18.0 + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.7.2))(eslint@9.15.0(jiti@2.4.0))(typescript@5.7.2) + '@typescript-eslint/parser': + specifier: ^7.18.0 + version: 7.18.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.7.2) + eslint: + specifier: ^9.15.0 + version: 9.15.0(jiti@2.4.0) + tsx: + specifier: ^4.19.2 + version: 4.19.2 + packages/app: dependencies: '@apollo/client': @@ -235,85 +314,6 @@ importers: specifier: ^5.5.4 version: 5.6.2 - packages/data: - dependencies: - '@apollo/server': - specifier: ^4.11.3 - version: 4.11.3(encoding@0.1.13)(graphql@16.10.0) - '@sentry/cli': - specifier: ^2.39.0 - version: 2.39.0(encoding@0.1.13) - '@sentry/node': - specifier: ^8.40.0 - version: 8.40.0 - class-validator: - specifier: ^0.14.1 - version: 0.14.1 - cors: - specifier: ^2.8.5 - version: 2.8.5 - dataloader: - specifier: ^2.2.3 - version: 2.2.3 - discord.js: - specifier: ^14.16.3 - version: 14.16.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) - dotenv: - specifier: ^16.4.5 - version: 16.4.5 - express: - specifier: ^4.21.1 - version: 4.21.1 - graphql: - specifier: ^16.10.0 - version: 16.10.0 - pg: - specifier: ^8.13.1 - version: 8.13.1 - reflect-metadata: - specifier: ^0.2.2 - version: 0.2.2 - sqlite3: - specifier: ^5.1.7 - version: 5.1.7 - tsconfig-paths: - specifier: ^4.2.0 - version: 4.2.0 - type-graphql: - specifier: 2.0.0-rc.2 - version: 2.0.0-rc.2(class-validator@0.14.1)(graphql-scalars@1.24.0(graphql@16.10.0))(graphql@16.10.0) - typeorm: - specifier: ^0.3.20 - version: 0.3.20(pg@8.13.1)(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@20.17.6)(typescript@5.7.2)) - typescript: - specifier: ^5.7.2 - version: 5.7.2 - viem: - specifier: ^2.21.49 - version: 2.21.49(bufferutil@4.0.8)(typescript@5.7.2)(utf-8-validate@5.0.10)(zod@3.23.8) - devDependencies: - '@types/cors': - specifier: ^2.8.17 - version: 2.8.17 - '@types/express': - specifier: ^4.17.21 - version: 4.17.21 - '@types/node': - specifier: ^20.17.6 - version: 20.17.6 - '@typescript-eslint/eslint-plugin': - specifier: ^7.18.0 - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.7.2))(eslint@9.15.0(jiti@2.4.0))(typescript@5.7.2) - '@typescript-eslint/parser': - specifier: ^7.18.0 - version: 7.18.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.7.2) - eslint: - specifier: ^9.15.0 - version: 9.15.0(jiti@2.4.0) - tsx: - specifier: ^4.19.2 - version: 4.19.2 - packages/docs: dependencies: react: @@ -4523,93 +4523,47 @@ packages: resolution: {integrity: sha512-1esQdgSUCww9XAntO4pr7uAM5cfGhLsgTK9MEwAKNfvpMYJi9NUTYa3A7AZmdA8V6107Lo4OD7peIPrDRbaDCg==} engines: {node: '>= 14'} - '@sentry/cli-darwin@2.38.2': - resolution: {integrity: sha512-21ywIcJCCFrCTyiF1o1PaT7rbelFC2fWmayKYgFElnQ55IzNYkcn8BYhbh/QknE0l1NBRaeWMXwTTdeoqETCCg==} - engines: {node: '>=10'} - os: [darwin] - '@sentry/cli-darwin@2.39.0': resolution: {integrity: sha512-D3MbVK1gv3NIdwocYESbSWsiDRphmnXILFKKvfqTqnJ07oMh8qHh+saCBCUj8sECSinZIvWJP2weERg4zy8WsA==} engines: {node: '>=10'} os: [darwin] - '@sentry/cli-linux-arm64@2.38.2': - resolution: {integrity: sha512-4Fp/jjQpNZj4Th+ZckMQvldAuuP0ZcyJ9tJCP1CCOn5poIKPYtY6zcbTP036R7Te14PS4ALOcDNX3VNKfpsifA==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux, freebsd] - '@sentry/cli-linux-arm64@2.39.0': resolution: {integrity: sha512-TAm5xQlrXr8aznQqvBvhTfS8+hbBdpoQ7SMVWtwI00Pf0dcg0N/yTGKAh9d25broPnZNyA2UjOrL4LuwLMc9Xw==} engines: {node: '>=10'} cpu: [arm64] os: [linux, freebsd] - '@sentry/cli-linux-arm@2.38.2': - resolution: {integrity: sha512-+AiKDBQKIdQe4NhBiHSHGl0KR+b//HHTrnfK1SaTrOm9HtM4ELXAkjkRF3bmbpSzSQCS5WzcbIxxCJOeaUaO0A==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux, freebsd] - '@sentry/cli-linux-arm@2.39.0': resolution: {integrity: sha512-vL0X4hbujasgse7+ip06eOmgAxwQe82MFPZHtJhGz4okVwKkfaXat+2Quzl5qPpTBMNLbRCTQVs+yROF7MaNew==} engines: {node: '>=10'} cpu: [arm] os: [linux, freebsd] - '@sentry/cli-linux-i686@2.38.2': - resolution: {integrity: sha512-6zVJN10dHIn4R1v+fxuzlblzVBhIVwsaN/S7aBED6Vn1HhAyAcNG2tIzeCLGeDfieYjXlE2sCI82sZkQBCbAGw==} - engines: {node: '>=10'} - cpu: [x86, ia32] - os: [linux, freebsd] - '@sentry/cli-linux-i686@2.39.0': resolution: {integrity: sha512-Vytl5egCAuzOQeex8m/iKBGYKM+7uVBCZnEGlx+QJy7OgK9N/UEepeGZ8ISuoZJC4lQKHTi2eve5ZweXwdBLyw==} engines: {node: '>=10'} cpu: [x86, ia32] os: [linux, freebsd] - '@sentry/cli-linux-x64@2.38.2': - resolution: {integrity: sha512-4UiLu9zdVtqPeltELR5MDGKcuqAdQY9xz3emISuA6bm+MXGbt2W1WgX+XY3GElwjZbmH8qpyLUEd34sw6sdcbQ==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux, freebsd] - '@sentry/cli-linux-x64@2.39.0': resolution: {integrity: sha512-eeuQKiqffU8lzsG3PLCBtHPnla25pnir5H2v1EoBc/Q7N/zuwUWhKzrecxbS4H9hPQQD88NfW9JxHSLCGclxQA==} engines: {node: '>=10'} cpu: [x64] os: [linux, freebsd] - '@sentry/cli-win32-i686@2.38.2': - resolution: {integrity: sha512-DYfSvd5qLPerLpIxj3Xu2rRe3CIlpGOOfGSNI6xvJ5D8j6hqbOHlCzvfC4oBWYVYGtxnwQLMeDGJ7o7RMYulig==} - engines: {node: '>=10'} - cpu: [x86, ia32] - os: [win32] - '@sentry/cli-win32-i686@2.39.0': resolution: {integrity: sha512-kkQo5rrEToR8H1zKpnOyAaMi4xFVOg5RhklwiB1YDlv6+cpy4lWISNWkUhVpe6jMIHaxvADLzYOPwbyBVsWiqg==} engines: {node: '>=10'} cpu: [x86, ia32] os: [win32] - '@sentry/cli-win32-x64@2.38.2': - resolution: {integrity: sha512-W5UX58PKY1hNUHo9YJxWNhGvgvv2uOYHI27KchRiUvFYBIqlUUcIdPZDfyzetDfd8qBCxlAsFnkL2VJSNdpA9A==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - '@sentry/cli-win32-x64@2.39.0': resolution: {integrity: sha512-QVuw/WIWKRASGOKmVUiXIDGIFSqMFUZFWR2wSPmbTqxgTTsoDNYBQIYLsOw/bT+tkZBMiUxVdsdDKofPlHwzdw==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@sentry/cli@2.38.2': - resolution: {integrity: sha512-CR0oujpAnhegK2pBAv6ZReMqbFTuNJLDZLvoD1B+syrKZX+R+oxkgT2e1htsBbht+wGxAsluVWsIAydSws1GAA==} - engines: {node: '>= 10'} - hasBin: true - '@sentry/cli@2.39.0': resolution: {integrity: sha512-1Zb2F/yuccNqzbgj/I12Rktm0vtOobkG6I75/6o9Tk+nNuCD7tC+SO5b8bUDKrc3gDE+AI067wbaPKnXXjAwig==} engines: {node: '>= 10'} @@ -5175,9 +5129,6 @@ packages: '@types/node@20.17.10': resolution: {integrity: sha512-/jrvh5h6NXhEauFFexRin69nA0uHJ5gwk4iDivp/DeoEua3uwCUto6PC86IpRITBOs4+6i2I56K5x5b6WYGXHA==} - '@types/node@20.17.6': - resolution: {integrity: sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==} - '@types/node@22.9.0': resolution: {integrity: sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==} @@ -8319,10 +8270,6 @@ packages: exponential-backoff@3.1.1: resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} - express@4.21.1: - resolution: {integrity: sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==} - engines: {node: '>= 0.10.0'} - express@4.21.2: resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} engines: {node: '>= 0.10.0'} @@ -11819,9 +11766,6 @@ packages: resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} engines: {node: 20 || >=22} - path-to-regexp@0.1.10: - resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==} - path-to-regexp@0.1.12: resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} @@ -15631,7 +15575,7 @@ snapshots: '@babel/traverse': 7.25.6 '@babel/types': 7.25.6 convert-source-map: 2.0.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -15731,7 +15675,7 @@ snapshots: '@babel/helper-plugin-utils': 7.24.8 debug: 4.4.0(supports-color@8.1.1) lodash.debounce: 4.0.8 - resolve: 1.22.8 + resolve: 1.22.10 transitivePeerDependencies: - supports-color @@ -16833,7 +16777,7 @@ snapshots: '@babel/parser': 7.25.6 '@babel/template': 7.25.0 '@babel/types': 7.25.6 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -17586,7 +17530,7 @@ snapshots: '@eslint/config-array@0.19.0': dependencies: '@eslint/object-schema': 2.1.4 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -17596,7 +17540,7 @@ snapshots: '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) espree: 9.6.1 globals: 13.24.0 ignore: 5.3.2 @@ -17610,7 +17554,7 @@ snapshots: '@eslint/eslintrc@3.2.0': dependencies: ajv: 6.12.6 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) espree: 10.3.0 globals: 14.0.0 ignore: 5.3.2 @@ -18126,7 +18070,7 @@ snapshots: '@humanwhocodes/config-array@0.13.0': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -18516,7 +18460,7 @@ snapshots: bufferutil: 4.0.8 cross-fetch: 4.0.0(encoding@0.1.13) date-fns: 2.30.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) eciesjs: 0.3.20 eventemitter2: 6.4.9 readable-stream: 3.6.2 @@ -18545,7 +18489,7 @@ snapshots: '@types/uuid': 10.0.0 bowser: 2.11.0 cross-fetch: 4.0.0(encoding@0.1.13) - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) eciesjs: 0.3.20 eth-rpc-errors: 4.0.3 eventemitter2: 6.4.9 @@ -20530,7 +20474,7 @@ snapshots: dependencies: '@babel/core': 7.25.2 '@sentry/babel-plugin-component-annotate': 2.22.6 - '@sentry/cli': 2.38.2(encoding@0.1.13) + '@sentry/cli': 2.39.0(encoding@0.1.13) dotenv: 16.4.5 find-up: 5.0.0 glob: 9.3.5 @@ -20540,67 +20484,27 @@ snapshots: - encoding - supports-color - '@sentry/cli-darwin@2.38.2': - optional: true - '@sentry/cli-darwin@2.39.0': optional: true - '@sentry/cli-linux-arm64@2.38.2': - optional: true - '@sentry/cli-linux-arm64@2.39.0': optional: true - '@sentry/cli-linux-arm@2.38.2': - optional: true - '@sentry/cli-linux-arm@2.39.0': optional: true - '@sentry/cli-linux-i686@2.38.2': - optional: true - '@sentry/cli-linux-i686@2.39.0': optional: true - '@sentry/cli-linux-x64@2.38.2': - optional: true - '@sentry/cli-linux-x64@2.39.0': optional: true - '@sentry/cli-win32-i686@2.38.2': - optional: true - '@sentry/cli-win32-i686@2.39.0': optional: true - '@sentry/cli-win32-x64@2.38.2': - optional: true - '@sentry/cli-win32-x64@2.39.0': optional: true - '@sentry/cli@2.38.2(encoding@0.1.13)': - dependencies: - https-proxy-agent: 5.0.1 - node-fetch: 2.7.0(encoding@0.1.13) - progress: 2.0.3 - proxy-from-env: 1.1.0 - which: 2.0.2 - optionalDependencies: - '@sentry/cli-darwin': 2.38.2 - '@sentry/cli-linux-arm': 2.38.2 - '@sentry/cli-linux-arm64': 2.38.2 - '@sentry/cli-linux-i686': 2.38.2 - '@sentry/cli-linux-x64': 2.38.2 - '@sentry/cli-win32-i686': 2.38.2 - '@sentry/cli-win32-x64': 2.38.2 - transitivePeerDependencies: - - encoding - - supports-color - '@sentry/cli@2.39.0(encoding@0.1.13)': dependencies: https-proxy-agent: 5.0.1 @@ -20990,7 +20894,7 @@ snapshots: '@swc/helpers@0.5.5': dependencies: '@swc/counter': 0.1.3 - tslib: 2.8.0 + tslib: 2.8.1 '@synthetixio/core-contracts@3.6.4': {} @@ -21280,7 +21184,7 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 20.17.6 + '@types/node': 20.17.10 '@types/cacheable-request@6.0.3': dependencies: @@ -21297,19 +21201,19 @@ snapshots: '@types/connect@3.4.36': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.10 '@types/connect@3.4.38': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.10 '@types/conventional-commits-parser@5.0.0': dependencies: - '@types/node': 22.9.0 + '@types/node': 20.17.10 '@types/cors@2.8.17': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.10 '@types/d3-array@3.2.1': {} @@ -21357,7 +21261,7 @@ snapshots: '@types/express-serve-static-core@4.19.5': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.10 '@types/qs': 6.9.16 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -21376,7 +21280,7 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.16.5 + '@types/node': 20.17.10 '@types/glob@8.1.0': dependencies: @@ -21448,7 +21352,7 @@ snapshots: '@types/mysql@2.15.26': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.10 '@types/node-fetch@2.6.12': dependencies: @@ -21471,10 +21375,6 @@ snapshots: dependencies: undici-types: 6.19.8 - '@types/node@20.17.6': - dependencies: - undici-types: 6.19.8 - '@types/node@22.9.0': dependencies: undici-types: 6.19.8 @@ -21499,7 +21399,7 @@ snapshots: '@types/pg@8.6.1': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.10 pg-protocol: 1.7.0 pg-types: 2.2.0 @@ -21552,12 +21452,12 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 20.17.6 + '@types/node': 20.17.10 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 20.17.6 + '@types/node': 20.17.10 '@types/send': 0.17.4 '@types/shimmer@1.2.0': {} @@ -21566,7 +21466,7 @@ snapshots: '@types/tedious@4.0.14': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.10 '@types/triple-beam@1.3.5': {} @@ -21582,7 +21482,7 @@ snapshots: '@types/ws@8.5.13': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.10 '@types/yargs-parser@21.0.3': {} @@ -21596,7 +21496,7 @@ snapshots: '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2)': dependencies: - '@eslint-community/regexpp': 4.11.1 + '@eslint-community/regexpp': 4.12.1 '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.6.2) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.1)(typescript@5.6.2) @@ -21614,7 +21514,7 @@ snapshots: '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3)': dependencies: - '@eslint-community/regexpp': 4.11.1 + '@eslint-community/regexpp': 4.12.1 '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.6.3) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.1)(typescript@5.6.3) @@ -21632,7 +21532,7 @@ snapshots: '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.7.2))(eslint@9.15.0(jiti@2.4.0))(typescript@5.7.2)': dependencies: - '@eslint-community/regexpp': 4.11.1 + '@eslint-community/regexpp': 4.12.1 '@typescript-eslint/parser': 7.18.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.7.2) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/type-utils': 7.18.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.7.2) @@ -21654,7 +21554,7 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.2) '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) eslint: 8.57.1 optionalDependencies: typescript: 5.6.2 @@ -21667,7 +21567,7 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3) '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) eslint: 8.57.1 optionalDependencies: typescript: 5.6.3 @@ -21680,7 +21580,7 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2) '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) eslint: 9.15.0(jiti@2.4.0) optionalDependencies: typescript: 5.7.2 @@ -21696,7 +21596,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.2) '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.6.2) - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) eslint: 8.57.1 ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: @@ -21708,7 +21608,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3) '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.6.3) - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) eslint: 8.57.1 ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: @@ -21720,7 +21620,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2) '@typescript-eslint/utils': 7.18.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.7.2) - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) eslint: 9.15.0(jiti@2.4.0) ts-api-utils: 1.3.0(typescript@5.7.2) optionalDependencies: @@ -21734,7 +21634,7 @@ snapshots: dependencies: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 @@ -21749,7 +21649,7 @@ snapshots: dependencies: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 @@ -21764,7 +21664,7 @@ snapshots: dependencies: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 @@ -21815,7 +21715,7 @@ snapshots: '@typescript/vfs@1.6.0(typescript@5.6.2)': dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) typescript: 5.6.2 transitivePeerDependencies: - supports-color @@ -22707,13 +22607,13 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) transitivePeerDependencies: - supports-color agent-base@7.1.1: dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -22863,7 +22763,7 @@ snapshots: array-buffer-byte-length@1.0.1: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 is-array-buffer: 3.0.4 array-flatten@1.1.1: {} @@ -25142,8 +25042,8 @@ snapshots: es-get-iterator@1.1.3: dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 + call-bind: 1.0.8 + get-intrinsic: 1.2.6 has-symbols: 1.0.3 is-arguments: 1.1.1 is-map: 2.0.3 @@ -25320,29 +25220,29 @@ snapshots: optionalDependencies: source-map: 0.2.0 - eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): + eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1))(eslint@8.57.1): dependencies: confusing-browser-globals: 1.0.11 eslint: 8.57.1 - eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1) object.assign: 4.1.5 object.entries: 1.1.8 semver: 6.3.1 - eslint-config-airbnb-typescript@18.0.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2))(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): + eslint-config-airbnb-typescript@18.0.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2))(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1))(eslint@8.57.1): dependencies: '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2) '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.6.2) eslint: 8.57.1 - eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1))(eslint@8.57.1) transitivePeerDependencies: - eslint-plugin-import - eslint-config-airbnb@19.0.4(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1))(eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.1))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.1))(eslint-plugin-react@7.36.1(eslint@8.57.1))(eslint@8.57.1): + eslint-config-airbnb@19.0.4(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1))(eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.1))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.1))(eslint-plugin-react@7.36.1(eslint@8.57.1))(eslint@8.57.1): dependencies: eslint: 8.57.1 - eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) - eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1))(eslint@8.57.1) + eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1) eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.1) eslint-plugin-react: 7.36.1(eslint@8.57.1) eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1) @@ -25377,8 +25277,8 @@ snapshots: '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.6.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint@8.57.1) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.1) eslint-plugin-react: 7.36.1(eslint@8.57.1) eslint-plugin-react-hooks: 5.0.0(eslint@8.57.1) @@ -25398,12 +25298,12 @@ snapshots: '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2) '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.6.2) eslint: 8.57.1 - eslint-config-airbnb: 19.0.4(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1))(eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.1))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.1))(eslint-plugin-react@7.36.1(eslint@8.57.1))(eslint@8.57.1) - eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) - eslint-config-airbnb-typescript: 18.0.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2))(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + eslint-config-airbnb: 19.0.4(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1))(eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.1))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.1))(eslint-plugin-react@7.36.1(eslint@8.57.1))(eslint@8.57.1) + eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1))(eslint@8.57.1) + eslint-config-airbnb-typescript: 18.0.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2))(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1))(eslint@8.57.1) eslint-config-prettier: 9.1.0(eslint@8.57.1) - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1) - eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0)(eslint@8.57.1) + eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1) eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.1) eslint-plugin-prettier: 5.2.1(eslint-config-prettier@9.1.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.3.3) eslint-plugin-react: 7.36.1(eslint@8.57.1) @@ -25430,7 +25330,7 @@ snapshots: eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1): dependencies: '@nolyfill/is-core-module': 1.0.39 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) enhanced-resolve: 5.17.1 eslint: 8.57.1 eslint-module-utils: 2.11.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1))(eslint@8.57.1) @@ -25446,38 +25346,38 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0)(eslint@8.57.1): dependencies: '@nolyfill/is-core-module': 1.0.39 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) enhanced-resolve: 5.17.1 eslint: 8.57.1 - eslint-module-utils: 2.11.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + eslint-module-utils: 2.11.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0)(eslint@8.57.1))(eslint@8.57.1) fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.2.1 is-glob: 4.0.3 optionalDependencies: - eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint@8.57.1): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1): dependencies: '@nolyfill/is-core-module': 1.0.39 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) enhanced-resolve: 5.17.1 eslint: 8.57.1 - eslint-module-utils: 2.11.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + eslint-module-utils: 2.11.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.2.1 is-glob: 4.0.3 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node @@ -25495,40 +25395,40 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.11.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): + eslint-module-utils@2.11.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0)(eslint@8.57.1))(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.6.2) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-module-utils@2.11.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): + eslint-module-utils@2.11.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.6.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint@8.57.1) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): + eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.6.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint@8.57.1) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): + eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -25539,7 +25439,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.11.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + eslint-module-utils: 2.11.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1))(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -25556,7 +25456,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): + eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -25567,7 +25467,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.11.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1))(eslint@8.57.1) + eslint-module-utils: 2.11.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint-plugin-import@2.30.0)(eslint@8.57.1))(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -25584,7 +25484,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -25595,7 +25495,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -25755,7 +25655,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) escape-string-regexp: 4.0.0 eslint-scope: 8.2.0 eslint-visitor-keys: 4.2.0 @@ -26238,42 +26138,6 @@ snapshots: exponential-backoff@3.1.1: {} - express@4.21.1: - dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.3 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookie: 0.7.1 - cookie-signature: 1.0.6 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 2.0.0 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.3.1 - fresh: 0.5.2 - http-errors: 2.0.0 - merge-descriptors: 1.0.3 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 0.1.10 - proxy-addr: 2.0.7 - qs: 6.13.0 - range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.19.0 - serve-static: 1.16.2 - setprototypeof: 1.2.0 - statuses: 2.0.1 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - express@4.21.2: dependencies: accepts: 1.3.8 @@ -26549,7 +26413,7 @@ snapshots: foreground-child@3.3.0: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 signal-exit: 4.1.0 forever-agent@0.6.1: {} @@ -26904,7 +26768,7 @@ snapshots: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 3.0.4 + minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 @@ -27611,7 +27475,7 @@ snapshots: dependencies: '@tootallnate/once': 1.1.2 agent-base: 6.0.2 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) transitivePeerDependencies: - supports-color optional: true @@ -27627,7 +27491,7 @@ snapshots: http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.1 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -27656,14 +27520,14 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) transitivePeerDependencies: - supports-color https-proxy-agent@7.0.5: dependencies: agent-base: 7.1.1 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -27850,7 +27714,7 @@ snapshots: any-signal: 2.1.2 bignumber.js: 9.1.2 cids: 1.1.9 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) form-data: 3.0.1 ipfs-core-types: 0.3.1(node-fetch@2.7.0(encoding@0.1.13)) ipfs-core-utils: 0.7.2(encoding@0.1.13)(node-fetch@2.7.0(encoding@0.1.13)) @@ -27983,13 +27847,13 @@ snapshots: is-arguments@1.1.1: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 has-tostringtag: 1.0.2 is-array-buffer@3.0.4: dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 + call-bind: 1.0.8 + get-intrinsic: 1.2.6 is-arrayish@0.2.1: {} @@ -28009,7 +27873,7 @@ snapshots: is-boolean-object@1.1.2: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 has-tostringtag: 1.0.2 is-buffer@1.1.6: {} @@ -28166,7 +28030,7 @@ snapshots: is-shared-array-buffer@1.0.3: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 is-stream-ended@0.1.4: {} @@ -28216,8 +28080,8 @@ snapshots: is-weakset@2.0.3: dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 + call-bind: 1.0.8 + get-intrinsic: 1.2.6 is-windows@1.0.2: {} @@ -28406,7 +28270,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.9.1 + '@types/node': 20.17.10 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -29067,7 +28931,7 @@ snapshots: minipass-fetch: 1.4.1 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 - negotiator: 0.6.3 + negotiator: 0.6.4 promise-retry: 2.0.1 socks-proxy-agent: 6.2.1 ssri: 8.0.1 @@ -29833,7 +29697,7 @@ snapshots: micromark@4.0.0: dependencies: '@types/debug': 4.1.12 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.1 @@ -30573,7 +30437,7 @@ snapshots: object-is@1.1.6: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 object-keys@0.4.0: {} @@ -30951,8 +30815,6 @@ snapshots: lru-cache: 11.0.1 minipass: 7.1.2 - path-to-regexp@0.1.10: {} - path-to-regexp@0.1.12: {} path-type@1.1.0: @@ -32090,9 +31952,9 @@ snapshots: require-in-the-middle@7.4.0: dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) module-details-from-path: 1.0.3 - resolve: 1.22.8 + resolve: 1.22.10 transitivePeerDependencies: - supports-color @@ -32566,9 +32428,9 @@ snapshots: side-channel@1.0.6: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 es-errors: 1.3.0 - get-intrinsic: 1.2.4 + get-intrinsic: 1.2.6 object-inspect: 1.13.2 signal-exit@3.0.7: {} @@ -32662,7 +32524,7 @@ snapshots: socks-proxy-agent@6.2.1: dependencies: agent-base: 6.0.2 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) socks: 2.8.3 transitivePeerDependencies: - supports-color @@ -33563,14 +33425,14 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - ts-node@10.9.2(@types/node@20.17.6)(typescript@5.7.2): + ts-node@10.9.2(@types/node@20.17.10)(typescript@5.7.2): 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.17.6 + '@types/node': 20.17.10 acorn: 8.12.1 acorn-walk: 8.3.4 arg: 4.1.3 @@ -33780,7 +33642,7 @@ snapshots: typedarray@0.0.6: {} - typeorm@0.3.20(pg@8.13.1)(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@20.17.6)(typescript@5.7.2)): + typeorm@0.3.20(pg@8.13.1)(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@20.17.10)(typescript@5.7.2)): dependencies: '@sqltools/formatter': 1.2.5 app-root-path: 3.1.0 @@ -33788,19 +33650,19 @@ snapshots: chalk: 4.1.2 cli-highlight: 2.1.11 dayjs: 1.11.13 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) dotenv: 16.4.5 glob: 10.4.5 mkdirp: 2.1.6 reflect-metadata: 0.2.2 sha.js: 2.4.11 - tslib: 2.7.0 + tslib: 2.8.1 uuid: 9.0.1 yargs: 17.7.2 optionalDependencies: pg: 8.13.1 sqlite3: 5.1.7 - ts-node: 10.9.2(@types/node@20.17.6)(typescript@5.7.2) + ts-node: 10.9.2(@types/node@20.17.10)(typescript@5.7.2) transitivePeerDependencies: - supports-color @@ -34232,7 +34094,7 @@ snapshots: vite-node@1.6.0(@types/node@22.9.1)(terser@5.37.0): dependencies: cac: 6.7.14 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) pathe: 1.1.2 picocolors: 1.1.1 vite: 5.4.6(@types/node@22.9.1)(terser@5.37.0) @@ -35348,7 +35210,7 @@ snapshots: which-typed-array@1.1.15: dependencies: available-typed-arrays: 1.0.7 - call-bind: 1.0.7 + call-bind: 1.0.8 for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.2 diff --git a/render.yaml b/render.yaml index 95cf6a8a..a770b060 100644 --- a/render.yaml +++ b/render.yaml @@ -7,8 +7,8 @@ services: type: web env: node plan: standard - buildCommand: pnpm --prefix packages/data install - startCommand: pnpm --prefix packages/data start:service + buildCommand: pnpm --prefix packages/api install + startCommand: pnpm --prefix packages/api start:service autoDeploy: true envVars: - key: DATABASE_URL @@ -22,8 +22,8 @@ services: type: worker env: node plan: standard - buildCommand: pnpm --prefix packages/data install - startCommand: pnpm --prefix packages/data start:worker + buildCommand: pnpm --prefix packages/api install + startCommand: pnpm --prefix packages/api start:worker autoDeploy: true envVars: - key: DATABASE_URL