diff --git a/components/distribution-plan-tool/review-distribution-plan/table/ReviewDistributionPlanTableSubscriptionFooter.tsx b/components/distribution-plan-tool/review-distribution-plan/table/ReviewDistributionPlanTableSubscriptionFooter.tsx index aeae6ec7be..3ef0099bf7 100644 --- a/components/distribution-plan-tool/review-distribution-plan/table/ReviewDistributionPlanTableSubscriptionFooter.tsx +++ b/components/distribution-plan-tool/review-distribution-plan/table/ReviewDistributionPlanTableSubscriptionFooter.tsx @@ -8,10 +8,16 @@ import { DistributionOverview } from "@/generated/models/DistributionOverview"; import { formatAddress } from "@/helpers/Helpers"; import { commonApiFetch, commonApiPost } from "@/services/api/common-api"; import { uploadDistributionPhotos } from "@/services/distribution/distributionPhotoUpload"; +import Image from "next/image"; +import type { AllowlistDescription } from "@/components/allowlist-tool/allowlist-tool.types"; import { useCallback, useContext, useEffect, useState } from "react"; import { isSubscriptionsAdmin } from "./ReviewDistributionPlanTableSubscription"; import { AutomaticAirdropsModal } from "./ReviewDistributionPlanTableSubscriptionFooterAutomaticAirdrops"; import { ConfirmTokenIdModal } from "./ReviewDistributionPlanTableSubscriptionFooterConfirmTokenId"; +import { + GithubUploadModal, + type GithubUploadResult, +} from "./ReviewDistributionPlanTableSubscriptionFooterGithubUploadModal"; import { UploadDistributionPhotosModal } from "./ReviewDistributionPlanTableSubscriptionFooterUploadPhotos"; function getErrorMessage(error: unknown): string { @@ -24,6 +30,282 @@ function getErrorMessage(error: unknown): string { return "Something went wrong."; } +function getGithubUploadTooltip( + overview: DistributionOverview | null +): string | null { + if (overview?.is_normalized === true) { + if ((overview?.photos_count ?? 0) === 0) { + return "Upload distribution photos first"; + } + if ((overview?.automatic_airdrops_count ?? 0) === 0) { + return "Upload automatic airdrops first"; + } + return null; + } + return "Finalize and normalize the distribution first"; +} + +function canPublishToGithub(overview: DistributionOverview | null): boolean { + return ( + overview?.is_normalized === true && + (overview?.photos_count ?? 0) > 0 && + (overview?.automatic_airdrops_count ?? 0) > 0 + ); +} + +function SubscriptionFooterMain({ + contract, + confirmedTokenId, + distributionPlan, + overview, + isLoadingOverview, + isResetting, + isUploading, + isUploadingAirdrops, + isFinalizing, + isUploadingToGithub, + showGithubModal, + githubUploadResult, + githubUploadError, + showConfirmTokenId, + showUploadPhotos, + showAutomaticAirdrops, + canPublish, + githubUploadTooltip, + onConfirmTokenId, + onChangeTokenId, + onResetSubscriptions, + onShowAutomaticAirdrops, + onShowUploadPhotos, + onFinalize, + onUploadToGithub, + onCloseGithubModal, + onUploadPhotos, + onUploadAirdrops, + onCloseUploadPhotos, + onCloseAutomaticAirdrops, +}: Readonly<{ + contract: string; + confirmedTokenId: string; + distributionPlan: AllowlistDescription | null; + overview: DistributionOverview | null; + isLoadingOverview: boolean; + isResetting: boolean; + isUploading: boolean; + isUploadingAirdrops: boolean; + isFinalizing: boolean; + isUploadingToGithub: boolean; + showGithubModal: boolean; + githubUploadResult: GithubUploadResult | null; + githubUploadError: string | null; + showConfirmTokenId: boolean; + showUploadPhotos: boolean; + showAutomaticAirdrops: boolean; + canPublish: boolean; + githubUploadTooltip: string | null; + onConfirmTokenId: (tokenId: string) => void; + onChangeTokenId: () => void; + onResetSubscriptions: () => void; + onShowAutomaticAirdrops: () => void; + onShowUploadPhotos: () => void; + onFinalize: () => void; + onUploadToGithub: () => void; + onCloseGithubModal: () => void; + onUploadPhotos: ( + contract: string, + tokenId: string, + files: File[] + ) => Promise; + onUploadAirdrops: ( + contract: string, + tokenId: string, + csvContent: string + ) => Promise; + onCloseUploadPhotos: () => void; + onCloseAutomaticAirdrops: () => void; +}>) { + return ( +
+
+ + Contract: The Memes - {formatAddress(contract)} | Token ID:{" "} + {confirmedTokenId} + +
+ + +
+
+
+ + +
+
+ + + + +
+ + {distributionPlan && ( + <> + + + + + )} +
+ ); +} + export function ReviewDistributionPlanTableSubscriptionFooter() { const { distributionPlan, confirmedTokenId, setConfirmedTokenId } = useContext(DistributionPlanToolContext); @@ -36,9 +318,18 @@ export function ReviewDistributionPlanTableSubscriptionFooter() { const [isUploading, setIsUploading] = useState(false); const [isUploadingAirdrops, setIsUploadingAirdrops] = useState(false); const [isFinalizing, setIsFinalizing] = useState(false); + const [isUploadingToGithub, setIsUploadingToGithub] = useState(false); + const [showGithubModal, setShowGithubModal] = useState(false); + const [githubUploadResult, setGithubUploadResult] = + useState(null); + const [githubUploadError, setGithubUploadError] = useState( + null + ); const [overview, setOverview] = useState(null); const [isLoadingOverview, setIsLoadingOverview] = useState(false); + const githubUploadTooltip = getGithubUploadTooltip(overview); + const refreshOverview = useCallback( async (contract: string, tokenId?: string) => { if (!tokenId) { @@ -147,6 +438,89 @@ export function ReviewDistributionPlanTableSubscriptionFooter() { } }; + const uploadToGithub = async (contract: string, tokenId: string) => { + setShowGithubModal(true); + setGithubUploadResult(null); + setGithubUploadError(null); + setIsUploadingToGithub(true); + try { + const response = await commonApiPost< + Record, + GithubUploadResult + >({ + endpoint: `distributions/${contract}/${tokenId}/github-upload`, + body: {}, + }); + setGithubUploadResult(response); + } catch (error: unknown) { + setGithubUploadError(getErrorMessage(error)); + } finally { + setIsUploadingToGithub(false); + } + }; + + const handleUploadPhotos = useCallback( + async (contract: string, tokenId: string, files: File[]) => { + setShowUploadPhotos(false); + setIsUploading(true); + try { + const uploadedUrls = await uploadDistributionPhotos({ + contract, + tokenId, + files, + }); + setToast({ + type: "success", + message: `Successfully uploaded ${uploadedUrls.length} photo(s)`, + }); + await refreshOverview(contract, tokenId); + } catch (error: unknown) { + setToast({ type: "error", message: getErrorMessage(error) }); + } finally { + setIsUploading(false); + } + }, + [setToast, refreshOverview] + ); + + const handleUploadAirdrops = useCallback( + async (contract: string, tokenId: string, csvContent: string) => { + setShowAutomaticAirdrops(false); + setIsUploadingAirdrops(true); + try { + const response = await commonApiPost< + { csv: string }, + { + success: boolean; + message?: string | undefined; + error?: string | undefined; + } + >({ + endpoint: `distributions/${contract}/${tokenId}/automatic_airdrops`, + body: { csv: csvContent }, + }); + if (response.success) { + setToast({ + type: "success", + message: + response.message || "Successfully uploaded automatic airdrops", + }); + await refreshOverview(contract, tokenId); + } else { + setToast({ + type: "error", + message: response.error || "Upload failed", + }); + } + } catch (error: unknown) { + setToast({ type: "error", message: getErrorMessage(error) }); + } finally { + setIsUploadingAirdrops(false); + } + }, + [setToast, refreshOverview] + ); + if (!isSubscriptionsAdmin(connectedProfile)) { return <>; } @@ -166,220 +540,44 @@ export function ReviewDistributionPlanTableSubscriptionFooter() { } const contract = MEMES_CONTRACT; + const handleResetSubscriptions = () => { + if (distributionPlan) { + resetSubscriptions(contract, confirmedTokenId, distributionPlan.id); + } + }; return ( -
-
- - Contract: The Memes - {formatAddress(contract)} | Token ID:{" "} - {confirmedTokenId} - -
- - -
-
-
- - -
-
- -
- {distributionPlan && ( - <> - - setShowUploadPhotos(false)} - existingPhotosCount={overview?.photos_count ?? 0} - confirmedTokenId={confirmedTokenId} - onUpload={async ( - contract: string, - tokenId: string, - files: File[] - ) => { - setShowUploadPhotos(false); - setIsUploading(true); - try { - const uploadedUrls = await uploadDistributionPhotos({ - contract, - tokenId, - files, - }); - - setToast({ - type: "success", - message: `Successfully uploaded ${uploadedUrls.length} photo(s)`, - }); - await refreshOverview(contract, tokenId); - } catch (error: unknown) { - setToast({ - type: "error", - message: getErrorMessage(error), - }); - } finally { - setIsUploading(false); - } - }} - /> - setShowAutomaticAirdrops(false)} - confirmedTokenId={confirmedTokenId} - onUpload={async ( - contract: string, - tokenId: string, - csvContent: string - ) => { - setShowAutomaticAirdrops(false); - setIsUploadingAirdrops(true); - try { - const response = await commonApiPost< - { csv: string }, - { - success: boolean; - message?: string | undefined; - error?: string | undefined; - } - >({ - endpoint: `distributions/${contract}/${tokenId}/automatic_airdrops`, - body: { csv: csvContent }, - }); - - if (response.success) { - setToast({ - type: "success", - message: - response.message || - "Successfully uploaded automatic airdrops", - }); - await refreshOverview(contract, tokenId); - } else { - setToast({ - type: "error", - message: response.error || "Upload failed", - }); - } - } catch (error: unknown) { - setToast({ - type: "error", - message: getErrorMessage(error), - }); - } finally { - setIsUploadingAirdrops(false); - } - }} - /> - - )} -
+ setShowAutomaticAirdrops(true)} + onShowUploadPhotos={() => setShowUploadPhotos(true)} + onFinalize={() => finalizeDistribution(contract, confirmedTokenId)} + onUploadToGithub={() => uploadToGithub(contract, confirmedTokenId)} + onCloseGithubModal={() => setShowGithubModal(false)} + onUploadPhotos={handleUploadPhotos} + onUploadAirdrops={handleUploadAirdrops} + onCloseUploadPhotos={() => setShowUploadPhotos(false)} + onCloseAutomaticAirdrops={() => setShowAutomaticAirdrops(false)} + /> ); } diff --git a/components/distribution-plan-tool/review-distribution-plan/table/ReviewDistributionPlanTableSubscriptionFooterGithubUploadModal.tsx b/components/distribution-plan-tool/review-distribution-plan/table/ReviewDistributionPlanTableSubscriptionFooterGithubUploadModal.tsx new file mode 100644 index 0000000000..f9ea6f48f6 --- /dev/null +++ b/components/distribution-plan-tool/review-distribution-plan/table/ReviewDistributionPlanTableSubscriptionFooterGithubUploadModal.tsx @@ -0,0 +1,140 @@ +"use client"; + +import CircleLoader from "@/components/distribution-plan-tool/common/CircleLoader"; +import Image from "next/image"; +import Link from "next/link"; +import { Button, Container, Modal } from "react-bootstrap"; + +const GITHUB_BASE = + "https://github.com/6529-Collections/thememecards/tree/main"; + +export type GithubUploadResult = { + success: boolean; + message?: string; + error?: string; + github_folder?: string; + deleted_files?: string[]; + uploaded_files?: string[]; +}; + +export function GithubUploadModal( + props: Readonly<{ + show: boolean; + onClose: () => void; + onRetry?: () => void; + isLoading: boolean; + result: GithubUploadResult | null; + apiError: string | null; + }> +) { + const { show, onClose, onRetry, isLoading, result, apiError } = props; + const isError = !!apiError || (!!result && !result.success); + const errorMessage = apiError ?? result?.error ?? "Upload failed"; + const canClose = !isLoading; + + let modalTitle: string; + if (isLoading) { + modalTitle = "Publish to GitHub"; + } else if (result?.success) { + modalTitle = "Published to GitHub"; + } else { + modalTitle = "Upload failed"; + } + + return ( + {}} + backdrop={isLoading ? "static" : true} + keyboard={canClose} + > + + + {modalTitle} + + +
+ + + {isLoading && ( +
+ + Uploading to GitHub… +
+ )} + {!isLoading && isError && ( +
+ {errorMessage} +
+ )} + {!isLoading && result?.success && ( +
+ {result.message && ( +

{result.message}

+ )} + {result.github_folder && ( +
+ encodeURIComponent(seg)) + .join("/")}`} + target="_blank" + rel="noopener noreferrer" + className="tw-inline-flex tw-items-center tw-gap-2 tw-rounded-lg tw-bg-iron-800 tw-px-3 tw-py-2 tw-text-sm tw-font-medium tw-text-iron-100 tw-no-underline tw-ring-1 tw-ring-iron-600 tw-transition hover:tw-bg-iron-700 hover:tw-text-white hover:tw-no-underline" + > + + View {result.github_folder} on GitHub + +
+ )} + {result.deleted_files && result.deleted_files.length > 0 && ( +
+

+ Deleted files ({result.deleted_files.length}) +

+
    + {result.deleted_files.map((f) => ( +
  • {f}
  • + ))} +
+
+ )} + {result.uploaded_files && result.uploaded_files.length > 0 && ( +
+

+ Uploaded files ({result.uploaded_files.length}) +

+
    + {result.uploaded_files.map((f) => ( +
  • {f}
  • + ))} +
+
+ )} +
+ )} +
+
+ {!isLoading && ( + + {isError && onRetry && ( + + )} + + + )} +
+ ); +} diff --git a/package-lock.json b/package-lock.json index 52679ee416..86ddc93fe0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -129,6 +129,7 @@ "autoprefixer": "^10.4.22", "babel-jest": "^29.7.0", "babel-plugin-react-compiler": "^1.0.0", + "baseline-browser-mapping": "^2.9.19", "depcheck": "^1.4.7", "dotenv": "^16.0.3", "esbuild": "^0.25.10", @@ -164,6 +165,7 @@ "tsx": "^4.20.6", "typescript": "^5.9.3", "typescript-eslint": "^8.46.2", + "yaml": "^2.4.2", "zod": "^3.25.76" } }, @@ -308,7 +310,6 @@ "node_modules/@babel/core": { "version": "7.28.5", "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", @@ -851,7 +852,6 @@ "node_modules/@capacitor/core": { "version": "7.4.1", "license": "MIT", - "peer": true, "dependencies": { "tslib": "^2.1.0" } @@ -919,7 +919,6 @@ "node_modules/@coinbase/wallet-sdk": { "version": "4.3.6", "license": "Apache-2.0", - "peer": true, "dependencies": { "@noble/hashes": "1.4.0", "clsx": "1.2.1", @@ -1701,7 +1700,6 @@ "node_modules/@fortawesome/fontawesome-svg-core": { "version": "6.7.2", "license": "MIT", - "peer": true, "dependencies": { "@fortawesome/fontawesome-common-types": "6.7.2" }, @@ -1743,7 +1741,6 @@ "node_modules/@gemini-wallet/core": { "version": "0.3.2", "license": "MIT", - "peer": true, "dependencies": { "@metamask/rpc-errors": "7.0.2", "eventemitter3": "5.0.1" @@ -3439,6 +3436,7 @@ "node_modules/@jridgewell/source-map": { "version": "0.3.11", "license": "MIT", + "peer": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" @@ -4083,7 +4081,6 @@ }, "node_modules/@metamask/sdk": { "version": "0.33.1", - "peer": true, "dependencies": { "@babel/runtime": "^7.26.0", "@metamask/onboarding": "^1.0.1", @@ -4141,7 +4138,6 @@ "node_modules/@metamask/sdk/node_modules/cross-fetch": { "version": "4.1.0", "license": "MIT", - "peer": true, "dependencies": { "node-fetch": "^2.7.0" } @@ -4289,7 +4285,6 @@ "node_modules/@nestjs/common": { "version": "11.1.9", "license": "MIT", - "peer": true, "dependencies": { "file-type": "21.1.0", "iterare": "1.2.1", @@ -4356,7 +4351,9 @@ } }, "node_modules/@next/env": { - "version": "16.1.3", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/env/-/env-16.1.6.tgz", + "integrity": "sha512-N1ySLuZjnAtN3kFnwhAwPvZah8RJxKasD7x1f8shFqhncnWZn4JMfg37diLNuoHsLAlrDfM3g4mawVdtAG8XLQ==", "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { @@ -4368,7 +4365,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "16.1.3", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.1.6.tgz", + "integrity": "sha512-wTzYulosJr/6nFnqGW7FrG3jfUUlEf8UjGA0/pyypJl42ExdVgC6xJgcXQ+V8QFn6niSG2Pb8+MIG1mZr2vczw==", "cpu": [ "arm64" ], @@ -4382,9 +4381,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.1.3.tgz", - "integrity": "sha512-aF4us2JXh0zn3hNxvL1Bx3BOuh8Lcw3p3Xnurlvca/iptrDH1BrpObwkw9WZra7L7/0qB9kjlREq3hN/4x4x+Q==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.1.6.tgz", + "integrity": "sha512-BLFPYPDO+MNJsiDWbeVzqvYd4NyuRrEYVB5k2N3JfWncuHAy2IVwMAOlVQDFjj+krkWzhY2apvmekMkfQR0CUQ==", "cpu": [ "x64" ], @@ -4398,9 +4397,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.1.3.tgz", - "integrity": "sha512-8VRkcpcfBtYvhGgXAF7U3MBx6+G1lACM1XCo1JyaUr4KmAkTNP8Dv2wdMq7BI+jqRBw3zQE7c57+lmp7jCFfKA==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.1.6.tgz", + "integrity": "sha512-OJYkCd5pj/QloBvoEcJ2XiMnlJkRv9idWA/j0ugSuA34gMT6f5b7vOiCQHVRpvStoZUknhl6/UxOXL4OwtdaBw==", "cpu": [ "arm64" ], @@ -4414,9 +4413,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.1.3.tgz", - "integrity": "sha512-UbFx69E2UP7MhzogJRMFvV9KdEn4sLGPicClwgqnLht2TEi204B71HuVfps3ymGAh0c44QRAF+ZmvZZhLLmhNg==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.1.6.tgz", + "integrity": "sha512-S4J2v+8tT3NIO9u2q+S0G5KdvNDjXfAv06OhfOzNDaBn5rw84DGXWndOEB7d5/x852A20sW1M56vhC/tRVbccQ==", "cpu": [ "arm64" ], @@ -4430,9 +4429,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.1.3.tgz", - "integrity": "sha512-SzGTfTjR5e9T+sZh5zXqG/oeRQufExxBF6MssXS7HPeZFE98JDhCRZXpSyCfWrWrYrzmnw/RVhlP2AxQm+wkRQ==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.1.6.tgz", + "integrity": "sha512-2eEBDkFlMMNQnkTyPBhQOAyn2qMxyG2eE7GPH2WIDGEpEILcBPI/jdSv4t6xupSP+ot/jkfrCShLAa7+ZUPcJQ==", "cpu": [ "x64" ], @@ -4446,9 +4445,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.1.3.tgz", - "integrity": "sha512-HlrDpj0v+JBIvQex1mXHq93Mht5qQmfyci+ZNwGClnAQldSfxI6h0Vupte1dSR4ueNv4q7qp5kTnmLOBIQnGow==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.1.6.tgz", + "integrity": "sha512-oicJwRlyOoZXVlxmIMaTq7f8pN9QNbdes0q2FXfRsPhfCi8n8JmOZJm5oo1pwDaFbnnD421rVU409M3evFbIqg==", "cpu": [ "x64" ], @@ -4462,9 +4461,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.1.3.tgz", - "integrity": "sha512-3gFCp83/LSduZMSIa+lBREP7+5e7FxpdBoc9QrCdmp+dapmTK9I+SLpY60Z39GDmTXSZA4huGg9WwmYbr6+WRw==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.1.6.tgz", + "integrity": "sha512-gQmm8izDTPgs+DCWH22kcDmuUp7NyiJgEl18bcr8irXA5N2m2O+JQIr6f3ct42GOs9c0h8QF3L5SzIxcYAAXXw==", "cpu": [ "arm64" ], @@ -4478,9 +4477,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.1.3.tgz", - "integrity": "sha512-1SZVfFT8zmMB+Oblrh5OKDvUo5mYQOkX2We6VGzpg7JUVZlqe4DYOFGKYZKTweSx1gbMixyO1jnFT4thU+nNHQ==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.1.6.tgz", + "integrity": "sha512-NRfO39AIrzBnixKbjuo2YiYhB6o9d8v/ymU9m/Xk8cyVk+k7XylniXkHwjs4s70wedVffc6bQNbufk5v0xEm0A==", "cpu": [ "x64" ], @@ -4496,7 +4495,6 @@ "node_modules/@noble/ciphers": { "version": "1.3.0", "license": "MIT", - "peer": true, "engines": { "node": "^14.21.3 || >=16" }, @@ -4645,7 +4643,6 @@ "node_modules/@opentelemetry/api": { "version": "1.9.0", "license": "Apache-2.0", - "peer": true, "engines": { "node": ">=8.0.0" } @@ -4663,7 +4660,6 @@ "node_modules/@opentelemetry/context-async-hooks": { "version": "2.2.0", "license": "Apache-2.0", - "peer": true, "engines": { "node": "^18.19.0 || >=20.6.0" }, @@ -4674,7 +4670,6 @@ "node_modules/@opentelemetry/core": { "version": "2.2.0", "license": "Apache-2.0", - "peer": true, "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" }, @@ -4688,7 +4683,6 @@ "node_modules/@opentelemetry/instrumentation": { "version": "0.208.0", "license": "Apache-2.0", - "peer": true, "dependencies": { "@opentelemetry/api-logs": "0.208.0", "import-in-the-middle": "^2.0.0", @@ -5028,7 +5022,6 @@ "node_modules/@opentelemetry/resources": { "version": "2.2.0", "license": "Apache-2.0", - "peer": true, "dependencies": { "@opentelemetry/core": "2.2.0", "@opentelemetry/semantic-conventions": "^1.29.0" @@ -5043,7 +5036,6 @@ "node_modules/@opentelemetry/sdk-trace-base": { "version": "2.2.0", "license": "Apache-2.0", - "peer": true, "dependencies": { "@opentelemetry/core": "2.2.0", "@opentelemetry/resources": "2.2.0", @@ -5059,7 +5051,6 @@ "node_modules/@opentelemetry/semantic-conventions": { "version": "1.38.0", "license": "Apache-2.0", - "peer": true, "engines": { "node": ">=14" } @@ -5705,7 +5696,6 @@ "version": "1.57.0", "devOptional": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "playwright": "1.57.0" }, @@ -5719,7 +5709,6 @@ "node_modules/@popperjs/core": { "version": "2.11.8", "license": "MIT", - "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" @@ -7668,7 +7657,6 @@ "node_modules/@solana/kit": { "version": "3.0.3", "license": "MIT", - "peer": true, "dependencies": { "@solana/accounts": "3.0.3", "@solana/addresses": "3.0.3", @@ -8199,7 +8187,6 @@ "node_modules/@tanstack/query-core": { "version": "5.90.11", "license": "MIT", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" @@ -8208,7 +8195,6 @@ "node_modules/@tanstack/react-query": { "version": "5.90.11", "license": "MIT", - "peer": true, "dependencies": { "@tanstack/query-core": "5.90.11" }, @@ -8391,7 +8377,8 @@ "node_modules/@types/aria-query": { "version": "5.0.4", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/babel__core": { "version": "7.20.5", @@ -8447,6 +8434,7 @@ "node_modules/@types/eslint": { "version": "9.6.1", "license": "MIT", + "peer": true, "dependencies": { "@types/estree": "*", "@types/json-schema": "*" @@ -8455,6 +8443,7 @@ "node_modules/@types/eslint-scope": { "version": "3.7.7", "license": "MIT", + "peer": true, "dependencies": { "@types/eslint": "*", "@types/estree": "*" @@ -8738,7 +8727,6 @@ "node_modules/@types/node": { "version": "20.19.25", "license": "MIT", - "peer": true, "dependencies": { "undici-types": "~6.21.0" } @@ -8783,7 +8771,6 @@ "node_modules/@types/react": { "version": "19.2.3", "license": "MIT", - "peer": true, "dependencies": { "csstype": "^3.0.2" } @@ -8791,7 +8778,6 @@ "node_modules/@types/react-dom": { "version": "19.2.3", "license": "MIT", - "peer": true, "peerDependencies": { "@types/react": "^19.2.0" } @@ -8885,7 +8871,6 @@ "version": "8.48.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", "@typescript-eslint/scope-manager": "8.48.0", @@ -8922,7 +8907,6 @@ "version": "8.48.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.48.0", "@typescript-eslint/types": "8.48.0", @@ -9517,6 +9501,7 @@ "node_modules/@wagmi/core/node_modules/zustand": { "version": "5.0.0", "license": "MIT", + "peer": true, "engines": { "node": ">=12.20.0" }, @@ -9598,7 +9583,6 @@ "node_modules/@walletconnect/ethereum-provider": { "version": "2.21.1", "license": "Apache-2.0", - "peer": true, "dependencies": { "@reown/appkit": "1.7.8", "@walletconnect/jsonrpc-http-connection": "1.0.8", @@ -10562,7 +10546,6 @@ "node_modules/@walletconnect/ethereum-provider/node_modules/ws": { "version": "8.18.0", "license": "MIT", - "peer": true, "engines": { "node": ">=10.0.0" }, @@ -10989,6 +10972,7 @@ "node_modules/@webassemblyjs/ast": { "version": "1.14.1", "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/helper-numbers": "1.13.2", "@webassemblyjs/helper-wasm-bytecode": "1.13.2" @@ -10996,19 +10980,23 @@ }, "node_modules/@webassemblyjs/floating-point-hex-parser": { "version": "1.13.2", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.13.2", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.14.1", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.13.2", "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.13.2", "@webassemblyjs/helper-api-error": "1.13.2", @@ -11017,11 +11005,13 @@ }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.13.2", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.14.1", "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", @@ -11032,6 +11022,7 @@ "node_modules/@webassemblyjs/ieee754": { "version": "1.13.2", "license": "MIT", + "peer": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" } @@ -11039,17 +11030,20 @@ "node_modules/@webassemblyjs/leb128": { "version": "1.13.2", "license": "Apache-2.0", + "peer": true, "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { "version": "1.13.2", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.14.1", "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", @@ -11064,6 +11058,7 @@ "node_modules/@webassemblyjs/wasm-gen": { "version": "1.14.1", "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-wasm-bytecode": "1.13.2", @@ -11075,6 +11070,7 @@ "node_modules/@webassemblyjs/wasm-opt": { "version": "1.14.1", "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", @@ -11085,6 +11081,7 @@ "node_modules/@webassemblyjs/wasm-parser": { "version": "1.14.1", "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-api-error": "1.13.2", @@ -11097,6 +11094,7 @@ "node_modules/@webassemblyjs/wast-printer": { "version": "1.14.1", "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" @@ -11108,11 +11106,13 @@ }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "peer": true }, "node_modules/@xtuc/long": { "version": "4.2.2", - "license": "Apache-2.0" + "license": "Apache-2.0", + "peer": true }, "node_modules/abab": { "version": "2.0.6", @@ -11141,7 +11141,6 @@ "node_modules/acorn": { "version": "8.15.0", "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -11168,6 +11167,7 @@ "node_modules/acorn-import-phases": { "version": "1.0.4", "license": "MIT", + "peer": true, "engines": { "node": ">=10.13.0" }, @@ -11236,6 +11236,7 @@ "node_modules/ajv-formats": { "version": "2.1.1", "license": "MIT", + "peer": true, "dependencies": { "ajv": "^8.0.0" }, @@ -11251,6 +11252,7 @@ "node_modules/ajv-formats/node_modules/ajv": { "version": "8.17.1", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -11264,7 +11266,8 @@ }, "node_modules/ajv-formats/node_modules/json-schema-traverse": { "version": "1.0.0", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/ansi-escapes": { "version": "4.3.2", @@ -11637,7 +11640,6 @@ "node_modules/axios": { "version": "1.13.2", "license": "MIT", - "peer": true, "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.4", @@ -11715,7 +11717,6 @@ "version": "1.0.0", "devOptional": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/types": "^7.26.0" } @@ -11795,7 +11796,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.8.32", + "version": "2.9.19", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.19.tgz", + "integrity": "sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==", "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.js" @@ -11950,7 +11953,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.8.25", "caniuse-lite": "^1.0.30001754", @@ -12021,7 +12023,6 @@ "version": "4.0.9", "hasInstallScript": true, "license": "MIT", - "peer": true, "dependencies": { "node-gyp-build": "^4.3.0" }, @@ -12255,7 +12256,6 @@ "node_modules/chart.js": { "version": "4.5.1", "license": "MIT", - "peer": true, "dependencies": { "@kurkle/color": "^0.3.0" }, @@ -12336,6 +12336,7 @@ "node_modules/chrome-trace-event": { "version": "1.0.4", "license": "MIT", + "peer": true, "engines": { "node": ">=6.0" } @@ -12596,6 +12597,16 @@ "node": ">=10" } }, + "node_modules/cosmiconfig/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, "node_modules/crc-32": { "version": "1.2.2", "license": "Apache-2.0", @@ -13354,7 +13365,8 @@ "node_modules/dom-accessibility-api": { "version": "0.5.16", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/dom-helpers": { "version": "5.2.1", @@ -13468,7 +13480,6 @@ "node_modules/eciesjs": { "version": "0.4.16", "license": "MIT", - "peer": true, "dependencies": { "@ecies/ciphers": "^0.2.4", "@noble/ciphers": "^1.3.0", @@ -13508,8 +13519,7 @@ }, "node_modules/emoji-mart": { "version": "5.6.0", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/emoji-regex": { "version": "10.6.0", @@ -13592,6 +13602,7 @@ "node_modules/enhanced-resolve": { "version": "5.18.3", "license": "MIT", + "peer": true, "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -13734,7 +13745,8 @@ }, "node_modules/es-module-lexer": { "version": "1.7.0", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/es-object-atoms": { "version": "1.1.1", @@ -13886,7 +13898,6 @@ "version": "9.39.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -14081,7 +14092,6 @@ "version": "2.32.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", @@ -14744,8 +14754,7 @@ }, "node_modules/eventemitter2": { "version": "6.4.9", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/eventemitter3": { "version": "5.0.1", @@ -14908,7 +14917,8 @@ "url": "https://opencollective.com/fastify" } ], - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "peer": true }, "node_modules/fastest-stable-stringify": { "version": "2.0.2", @@ -15429,7 +15439,8 @@ }, "node_modules/glob-to-regexp": { "version": "0.4.1", - "license": "BSD-2-Clause" + "license": "BSD-2-Clause", + "peer": true }, "node_modules/glob/node_modules/minimatch": { "version": "10.1.1", @@ -15751,7 +15762,9 @@ } }, "node_modules/hono": { - "version": "4.11.4", + "version": "4.11.7", + "resolved": "https://registry.npmjs.org/hono/-/hono-4.11.7.tgz", + "integrity": "sha512-l7qMiNee7t82bH3SeyUCt9UF15EVmaBvsppY2zQtrbIhl/yzBTny+YUxsVjSjQ6gaqaeVtZmGocom8TzBlA4Yw==", "license": "MIT", "engines": { "node": ">=16.9.0" @@ -16684,6 +16697,7 @@ "node_modules/isomorphic.js": { "version": "0.2.5", "license": "MIT", + "peer": true, "funding": { "type": "GitHub Sponsors ❤", "url": "https://github.com/sponsors/dmonad" @@ -20064,6 +20078,7 @@ "node_modules/lib0": { "version": "0.2.114", "license": "MIT", + "peer": true, "dependencies": { "isomorphic.js": "^0.2.4" }, @@ -20146,6 +20161,7 @@ "node_modules/loader-runner": { "version": "4.3.1", "license": "MIT", + "peer": true, "engines": { "node": ">=6.11.5" }, @@ -20230,6 +20246,7 @@ "version": "1.5.0", "dev": true, "license": "MIT", + "peer": true, "bin": { "lz-string": "bin/bin.js" } @@ -21327,11 +21344,12 @@ } }, "node_modules/next": { - "version": "16.1.3", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/next/-/next-16.1.6.tgz", + "integrity": "sha512-hkyRkcu5x/41KoqnROkfTm2pZVbKxvbZRuNvKXLRXxs3VfyO0WhY50TQS40EuKO9SW3rBj/sF3WbVwDACeMZyw==", "license": "MIT", - "peer": true, "dependencies": { - "@next/env": "16.1.3", + "@next/env": "16.1.6", "@swc/helpers": "0.5.15", "baseline-browser-mapping": "^2.8.3", "caniuse-lite": "^1.0.30001579", @@ -21345,14 +21363,14 @@ "node": ">=20.9.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "16.1.3", - "@next/swc-darwin-x64": "16.1.3", - "@next/swc-linux-arm64-gnu": "16.1.3", - "@next/swc-linux-arm64-musl": "16.1.3", - "@next/swc-linux-x64-gnu": "16.1.3", - "@next/swc-linux-x64-musl": "16.1.3", - "@next/swc-win32-arm64-msvc": "16.1.3", - "@next/swc-win32-x64-msvc": "16.1.3", + "@next/swc-darwin-arm64": "16.1.6", + "@next/swc-darwin-x64": "16.1.6", + "@next/swc-linux-arm64-gnu": "16.1.6", + "@next/swc-linux-arm64-musl": "16.1.6", + "@next/swc-linux-x64-gnu": "16.1.6", + "@next/swc-linux-x64-musl": "16.1.6", + "@next/swc-win32-arm64-msvc": "16.1.6", + "@next/swc-win32-x64-msvc": "16.1.6", "sharp": "^0.34.4" }, "peerDependencies": { @@ -22469,7 +22487,6 @@ }, "node_modules/playwright/node_modules/fsevents": { "version": "2.3.2", - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22504,7 +22521,6 @@ "node_modules/porto": { "version": "0.2.35", "license": "MIT", - "peer": true, "dependencies": { "hono": "^4.10.3", "idb-keyval": "^6.2.1", @@ -22651,7 +22667,6 @@ "node_modules/porto/node_modules/zod": { "version": "4.1.13", "license": "MIT", - "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } @@ -22680,7 +22695,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -22817,7 +22831,6 @@ "version": "3.7.4", "dev": true, "license": "MIT", - "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -22909,6 +22922,7 @@ "version": "27.5.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", @@ -22922,6 +22936,7 @@ "version": "5.2.0", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -22932,7 +22947,8 @@ "node_modules/pretty-format/node_modules/react-is": { "version": "17.0.2", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/prismjs": { "version": "1.30.0", @@ -22989,7 +23005,6 @@ "node_modules/prop-types": { "version": "15.8.1", "license": "MIT", - "peer": true, "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -23276,6 +23291,7 @@ "node_modules/randombytes": { "version": "2.1.0", "license": "MIT", + "peer": true, "dependencies": { "safe-buffer": "^5.1.0" } @@ -23283,7 +23299,6 @@ "node_modules/react": { "version": "19.2.3", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -23328,7 +23343,6 @@ "node_modules/react-dom": { "version": "19.2.3", "license": "MIT", - "peer": true, "dependencies": { "scheduler": "^0.27.0" }, @@ -23382,7 +23396,6 @@ "node_modules/react-redux": { "version": "9.2.0", "license": "MIT", - "peer": true, "dependencies": { "@types/use-sync-external-store": "^0.0.6", "use-sync-external-store": "^1.4.0" @@ -23547,7 +23560,6 @@ "node_modules/readable-stream": { "version": "3.6.2", "license": "MIT", - "peer": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -23598,8 +23610,7 @@ }, "node_modules/redux": { "version": "5.0.1", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/redux-thunk": { "version": "3.1.0", @@ -23621,8 +23632,7 @@ }, "node_modules/reflect-metadata": { "version": "0.2.2", - "license": "Apache-2.0", - "peer": true + "license": "Apache-2.0" }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", @@ -23780,6 +23790,7 @@ "node_modules/require-from-string": { "version": "2.0.2", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -23908,7 +23919,6 @@ "node_modules/rollup": { "version": "4.53.3", "license": "MIT", - "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -24032,7 +24042,6 @@ "node_modules/rxjs": { "version": "7.8.2", "license": "Apache-2.0", - "peer": true, "dependencies": { "tslib": "^2.1.0" } @@ -24125,7 +24134,6 @@ "node_modules/sass": { "version": "1.94.2", "license": "MIT", - "peer": true, "dependencies": { "chokidar": "^4.0.0", "immutable": "^5.0.2", @@ -24183,6 +24191,7 @@ "node_modules/schema-utils": { "version": "4.3.3", "license": "MIT", + "peer": true, "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -24215,6 +24224,7 @@ "node_modules/schema-utils/node_modules/ajv-keywords": { "version": "5.1.0", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -24224,7 +24234,8 @@ }, "node_modules/schema-utils/node_modules/json-schema-traverse": { "version": "1.0.0", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/screenfull": { "version": "5.2.0", @@ -24279,6 +24290,7 @@ "node_modules/serialize-javascript": { "version": "6.0.2", "license": "BSD-3-Clause", + "peer": true, "dependencies": { "randombytes": "^2.1.0" } @@ -24580,7 +24592,6 @@ "node_modules/socket.io-client": { "version": "4.8.1", "license": "MIT", - "peer": true, "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.2", @@ -25226,7 +25237,6 @@ "node_modules/tailwindcss": { "version": "3.4.18", "license": "MIT", - "peer": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", @@ -25286,7 +25296,6 @@ "node_modules/tailwindcss/node_modules/jiti": { "version": "1.21.7", "license": "MIT", - "peer": true, "bin": { "jiti": "bin/jiti.js" } @@ -25334,6 +25343,7 @@ "node_modules/tapable": { "version": "2.3.0", "license": "MIT", + "peer": true, "engines": { "node": ">=6" }, @@ -25345,6 +25355,7 @@ "node_modules/terser": { "version": "5.44.1", "license": "BSD-2-Clause", + "peer": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.15.0", @@ -25361,6 +25372,7 @@ "node_modules/terser-webpack-plugin": { "version": "5.3.14", "license": "MIT", + "peer": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", @@ -25393,6 +25405,7 @@ "node_modules/terser-webpack-plugin/node_modules/jest-worker": { "version": "27.5.1", "license": "MIT", + "peer": true, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -25405,6 +25418,7 @@ "node_modules/terser-webpack-plugin/node_modules/supports-color": { "version": "8.1.1", "license": "MIT", + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -25417,11 +25431,13 @@ }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/terser/node_modules/source-map-support": { "version": "0.5.21", "license": "MIT", + "peer": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -25508,8 +25524,7 @@ }, "node_modules/three": { "version": "0.163.0", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/throttle-debounce": { "version": "3.0.1", @@ -25780,14 +25795,12 @@ }, "node_modules/tslib": { "version": "2.8.1", - "license": "0BSD", - "peer": true + "license": "0BSD" }, "node_modules/tsx": { "version": "4.21.0", "devOptional": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "~0.27.0", "get-tsconfig": "^4.7.5" @@ -25809,7 +25822,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -25826,7 +25838,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -25843,7 +25854,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -25860,7 +25870,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -25875,7 +25884,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -25892,7 +25900,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -25909,7 +25916,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -25926,7 +25932,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -25943,7 +25948,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -25960,7 +25964,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -25977,7 +25980,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -25994,7 +25996,6 @@ "cpu": [ "loong64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -26011,7 +26012,6 @@ "cpu": [ "mips64el" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -26028,7 +26028,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -26045,7 +26044,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -26062,7 +26060,6 @@ "cpu": [ "s390x" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -26079,7 +26076,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -26096,7 +26092,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -26113,7 +26108,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -26130,7 +26124,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -26147,7 +26140,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -26164,7 +26156,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -26181,7 +26172,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -26198,7 +26188,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -26215,7 +26204,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -26232,7 +26220,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -26383,7 +26370,6 @@ "node_modules/typescript": { "version": "5.9.3", "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -26848,7 +26834,6 @@ "version": "5.0.10", "hasInstallScript": true, "license": "MIT", - "peer": true, "dependencies": { "node-gyp-build": "^4.3.0" }, @@ -26898,7 +26883,6 @@ "node_modules/valtio": { "version": "2.1.7", "license": "MIT", - "peer": true, "dependencies": { "proxy-compare": "^3.0.1" }, @@ -26951,7 +26935,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@noble/curves": "1.9.1", "@noble/hashes": "1.8.0", @@ -27078,7 +27061,6 @@ "node_modules/wagmi": { "version": "2.19.5", "license": "MIT", - "peer": true, "dependencies": { "@wagmi/connectors": "6.2.0", "@wagmi/core": "2.22.1", @@ -27130,7 +27112,6 @@ "node_modules/wagmi/node_modules/@wagmi/core": { "version": "2.22.1", "license": "MIT", - "peer": true, "dependencies": { "eventemitter3": "5.0.1", "mipd": "0.0.7", @@ -27156,7 +27137,6 @@ "node_modules/wagmi/node_modules/use-sync-external-store": { "version": "1.4.0", "license": "MIT", - "peer": true, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } @@ -27214,6 +27194,7 @@ "node_modules/watchpack": { "version": "2.4.4", "license": "MIT", + "peer": true, "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -27248,6 +27229,7 @@ "node_modules/webpack": { "version": "5.103.0", "license": "MIT", + "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", @@ -27305,6 +27287,7 @@ "node_modules/webpack/node_modules/eslint-scope": { "version": "5.1.1", "license": "BSD-2-Clause", + "peer": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -27316,6 +27299,7 @@ "node_modules/webpack/node_modules/estraverse": { "version": "4.3.0", "license": "BSD-2-Clause", + "peer": true, "engines": { "node": ">=4.0" } @@ -27506,7 +27490,6 @@ "node_modules/ws": { "version": "8.18.3", "license": "MIT", - "peer": true, "engines": { "node": ">=10.0.0" }, @@ -27574,11 +27557,19 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "1.10.2", - "dev": true, + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "devOptional": true, "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, "engines": { - "node": ">= 6" + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" } }, "node_modules/yargs": { @@ -27633,7 +27624,6 @@ "node_modules/zod": { "version": "3.25.76", "license": "MIT", - "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/package.json b/package.json index 0528986b32..1f8e543526 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,8 @@ "postbuild": "next-sitemap --config next-sitemap.config.ts", "start": "next start -p 3001", "test": "cross-env NODE_ENV=test jest --silent --verbose=false --coverageReporters=none", - "test-json": "cross-env NODE_ENV=test jest --silent --json --outputFile=test-results/jest-results.json --forceExit ; npm run test-extract-failed-names", + "test:no-coverage": "cross-env NODE_ENV=test jest --silent --verbose=false --coverage=false", + "test-json": "cross-env NODE_ENV=test jest --silent --json --outputFile=test-results/jest-results.json --coverage=false --forceExit ; npm run test-extract-failed-names", "test-json-changed": "cross-env NODE_ENV=test jest --silent --json --outputFile=test-results/jest-results.json --changedSince=main --coverage=false --forceExit ; npm run test-extract-failed-names", "test-extract-failed-names": "node test-results/list-failed-tests.cjs", "test:e2e": "playwright test", @@ -168,6 +169,7 @@ "autoprefixer": "^10.4.22", "babel-jest": "^29.7.0", "babel-plugin-react-compiler": "^1.0.0", + "baseline-browser-mapping": "^2.9.19", "depcheck": "^1.4.7", "dotenv": "^16.0.3", "esbuild": "^0.25.10", @@ -203,6 +205,7 @@ "tsx": "^4.20.6", "typescript": "^5.9.3", "typescript-eslint": "^8.46.2", + "yaml": "^2.4.2", "zod": "^3.25.76" }, "overrides": {