{
  "name": "@uniswap/interface",
  "version": "1.1.0",
  "description": "Uniswap Interface",
  "license": "GPL-3.0-or-later",
  "scripts": {
    "ajv": "node scripts/compile-ajv-validators.js",
    "anvil:mainnet": "dotenv -- bash -c 'RUST_LOG=debug anvil --fork-url https://${REACT_APP_QUICKNODE_ENDPOINT_NAME}.quiknode.pro/${REACT_APP_QUICKNODE_ENDPOINT_TOKEN} --hardfork prague'",
    "anvil:base": "dotenv -- bash -c 'RUST_LOG=debug anvil --fork-url https://${REACT_APP_QUICKNODE_ENDPOINT_NAME}.base-mainnet.quiknode.pro/${REACT_APP_QUICKNODE_ENDPOINT_TOKEN} --hardfork prague --port 8546'",
    "check:deps:usage": "depcheck",
    "check:circular": "concurrently \"../../scripts/check-circular-imports.sh ./src/pages/App.tsx 2\" \"../../scripts/check-circular-imports.sh ./src/setupTests.ts 0\"",
    "sitemap:generate": "node scripts/generate-sitemap.js",
    "start": "craco start",
    "vite:dev": "ROLLDOWN_OPTIONS_VALIDATION=loose vite dev",
    "vite:build": "ROLLDOWN_OPTIONS_VALIDATION=loose vite build",
    "vite:preview": "ROLLDOWN_OPTIONS_VALIDATION=loose vite preview",
    "start:cloud": "NODE_OPTIONS=--dns-result-order=ipv4first PORT=3001 REACT_APP_SKIP_CSP=1 npx wrangler@4.14.4 pages dev --compatibility-flags=nodejs_compat --compatibility-date=2023-08-01 --proxy=3001 --port=3000 -- yarn start",
    "build:production": "NODE_OPTIONS=--max-old-space-size=8192 craco build",
    "build:production:analyze": "UNISWAP_ANALYZE_BUNDLE_SIZE=static craco build",
    "analyze": "source-map-explorer 'build/static/js/*.js' --no-border-checks --gzip",
    "serve": "serve build -s -l 3000",
    "format": "../../scripts/prettier.sh",
    "lint": "yarn eslint --ignore-path .gitignore --cache --cache-location node_modules/.cache/eslint/ .",
    "lint:fix": "yarn eslint --ignore-path .gitignore --cache --cache-location node_modules/.cache/eslint/ . --fix",
    "playwright:test": "playwright test",
    "typecheck": "tsc && yarn typecheck:cloud && yarn typecheck:cypress",
    "typecheck:cloud": "tsc -p functions/tsconfig.json",
    "typecheck:cypress": "tsc -p cypress/tsconfig.json",
    "find:unused": "bash scripts/delete-unused-assets.sh",
    "test": "craco test --watchAll=false",
    "test:set1": "craco test --testPathPattern='src/components'",
    "test:set2": "craco test --testPathPattern='src/(pages|state)'",
    "test:set3": "craco test --testPathPattern='src/(hooks|nft|utils)'",
    "test:set4": "craco test --testPathPattern='src/(?!components|pages|state|hooks|nft|utils).*'",
    "test:watch": "craco test",
    "test:bundle": "node -r esbuild-register ./src/test-utils/bundle-size-test.ts",
    "snapshots": "craco test -u",
    "test:cloud": "yarn jest functions --config=functions/jest.config.json",
    "cypress:open": "cypress open --browser chrome --e2e",
    "cypress:run": "cypress run --browser chrome --e2e",
    "deduplicate": "yarn-deduplicate --strategy=highest",
    "storybook:run": "storybook dev -p 6006",
    "storybook:run:with-tests": "concurrently -s second -n \"SB RUN,SB TEST WATCH\" -c \"magenta,blue\" \"yarn storybook:run --quiet\" \"wait-on tcp:127.0.0.1:6006 -t 600000 && yarn storybook:test --watch\"",
    "storybook:build": "storybook build",
    "storybook:test": "test-storybook --excludeTags=\"no-tests\" --testTimeout 60000",
    "storybook:test:standalone": "concurrently -k -s first -n \"SB BUILD,SB TEST\" -c \"magenta,blue\" \"yarn storybook:build && http-server storybook-static --port 6006 --silent\" \"wait-on --timeout 600000 tcp:127.0.0.1:6006 && yarn storybook:test --maxWorkers=2\""
  },
  "husky": {
    "hooks": {
      "pre-commit": "lint-staged"
    }
  },
  "lint-staged": {
    "yarn.lock": [
      "yarn deduplicate"
    ]
  },
  "jest": {
    "collectCoverageFrom": [
      "src/**/*.ts*",
      "!src/**/*.d.ts",
      "!src/abis/types/**",
      "!src/constants/**/*.ts",
      "!src/graphql/**/__generated__/**",
      "!src/locales/**",
      "!src/test-utils/**",
      "!src/types/v3/**"
    ],
    "coveragePathIgnorePatterns": [
      ".snap"
    ]
  },
  "browserslist": {
    "production": [
      ">0.5%",
      "not dead"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "devDependencies": {
    "@babel/preset-env": "7.26.0",
    "@chromatic-com/storybook": "3.2.4",
    "@cloudflare/workers-types": "4.20231025.0",
    "@craco/craco": "7.1.0",
    "@crowdin/cli": "3.14.0",
    "@ethersproject/experimental": "5.7.0",
    "@playwright/test": "1.49.1",
    "@storybook/addon-essentials": "8.5.2",
    "@storybook/addon-interactions": "8.5.2",
    "@storybook/blocks": "8.5.2",
    "@storybook/preset-create-react-app": "8.5.2",
    "@storybook/react": "8.5.2",
    "@storybook/react-webpack5": "8.5.2",
    "@storybook/test": "8.5.2",
    "@storybook/test-runner": "0.21.0",
    "@swc/core": "1.3.72",
    "@swc/jest": "0.2.29",
    "@swc/plugin-styled-components": "1.5.97",
    "@testing-library/jest-dom": "6.6.3",
    "@testing-library/react": "16.1.0",
    "@testing-library/react-hooks": "8.0.1",
    "@testing-library/user-event": "14.5.1",
    "@typechain/ethers-v5": "7.2.0",
    "@types/array.prototype.flat": "1.2.5",
    "@types/array.prototype.flatmap": "1.2.6",
    "@types/chrome": "0.0.304",
    "@types/d3": "7.4.3",
    "@types/jest": "29.5.14",
    "@types/ms": "0.7.31",
    "@types/multicodec": "1.0.0",
    "@types/node": "22.13.1",
    "@types/qs": "6.9.2",
    "@types/react": "18.3.18",
    "@types/react-dom": "18.3.1",
    "@types/react-redux": "7.1.30",
    "@types/react-virtualized-auto-sizer": "1.0.0",
    "@types/react-window": "1.8.2",
    "@types/rebass": "4.0.7",
    "@types/styled-components": "5.1.25",
    "@types/testing-library__cypress": "5.0.13",
    "@types/uuid": "9.0.1",
    "@types/wcag-contrast": "3.0.0",
    "@types/xml2js": "0.4.14",
    "@uniswap/default-token-list": "11.19.0",
    "@uniswap/eslint-config": "workspace:^",
    "@vercel/og": "0.5.8",
    "@vitejs/plugin-react": "4.4.1",
    "@wagmi/core": "2.17.2",
    "babel-jest": "29.7.0",
    "babel-plugin-react-compiler": "19.1.0-rc.2",
    "browser-cache-mock": "0.1.7",
    "concurrently": "8.2.2",
    "cypress": "12.17.4",
    "cypress-hardhat": "2.5.3",
    "depcheck": "1.4.7",
    "detect-package-manager": "3.0.2",
    "dotenv": "16.0.3",
    "dotenv-cli": "7.1.0",
    "esbuild-register": "3.6.0",
    "eslint": "8.44.0",
    "eslint-plugin-import": "2.27.5",
    "eslint-plugin-rulesdir": "0.2.2",
    "eslint-plugin-storybook": "0.8.0",
    "hardhat": "2.22.16",
    "http-server": "14.1.1",
    "husky": "8.0.3",
    "jest": "29.7.0",
    "jest-extended": "4.0.2",
    "jest-fail-on-console": "3.3.0",
    "jest-fetch-mock": "3.0.3",
    "jest-styled-components": "7.2.0",
    "lint-staged": "14.0.1",
    "madge": "6.1.0",
    "path-browserify": "1.0.1",
    "playwright": "1.49.1",
    "postinstall-postinstall": "2.1.0",
    "process": "0.11.10",
    "prop-types": "15.8.1",
    "react-compiler-runtime": "rc",
    "react-scripts": "5.0.1",
    "resize-observer-polyfill": "1.5.1",
    "serve": "14.2.4",
    "source-map-explorer": "2.5.3",
    "start-server-and-test": "2.0.0",
    "storybook": "8.5.2",
    "storybook-addon-pseudo-states": "4.0.2",
    "swc-loader": "0.2.6",
    "terser": "5.24.0",
    "terser-webpack-plugin": "5.3.9",
    "ts-jest": "29.2.5",
    "tsafe": "1.6.4",
    "typescript": "5.3.3",
    "vite": "npm:rolldown-vite@latest",
    "vite-bundle-analyzer": "0.20.2",
    "vite-plugin-commonjs": "0.10.4",
    "vite-plugin-node-polyfills": "0.23.0",
    "vite-plugin-svgr": "4.3.0",
    "vite-tsconfig-paths": "5.1.4",
    "wait-on": "8.0.2",
    "webpack": "5.90.0",
    "webpack-bundle-analyzer": "4.10.2",
    "webpack-retry-chunk-load-plugin": "3.1.1",
    "wrangler": "3.15.0",
    "yarn-deduplicate": "6.0.0"
  },
  "dependencies": {
    "@amplitude/analytics-browser": "1.12.1",
    "@apollo/client": "3.10.4",
    "@datadog/browser-logs": "5.20.0",
    "@datadog/browser-rum": "5.23.3",
    "@datadog/browser-rum-react": "6.3.0",
    "@graphql-codegen/cli": "3.3.1",
    "@graphql-codegen/client-preset": "3.0.1",
    "@graphql-codegen/typescript": "3.0.4",
    "@graphql-codegen/typescript-operations": "3.0.4",
    "@graphql-codegen/typescript-react-apollo": "3.3.7",
    "@graphql-codegen/typescript-resolvers": "3.2.1",
    "@juggle/resize-observer": "3.4.0",
    "@popperjs/core": "2.11.8",
    "@reach/dialog": "0.10.5",
    "@reach/portal": "0.10.5",
    "@reduxjs/toolkit": "1.9.3",
    "@rive-app/canvas": "2.19.0",
    "@rive-app/react-canvas": "4.13.0",
    "@svgr/webpack": "8.0.1",
    "@tamagui/core": "1.125.17",
    "@tamagui/portal": "1.125.17",
    "@tamagui/react-native-svg": "1.125.17",
    "@tanstack/query-sync-storage-persister": "5.75.0",
    "@tanstack/react-query": "5.77.2",
    "@tanstack/react-query-persist-client": "5.77.2",
    "@tanstack/react-table": "8.21.2",
    "@types/react-scroll-sync": "0.9.0",
    "@uniswap/analytics": "1.7.0",
    "@uniswap/analytics-events": "2.42.0",
    "@uniswap/client-explore": "0.0.17",
    "@uniswap/client-pools": "0.0.17",
    "@uniswap/merkle-distributor": "1.0.1",
    "@uniswap/permit2-sdk": "1.3.0",
    "@uniswap/router-sdk": "2.0.2",
    "@uniswap/sdk-core": "7.7.2",
    "@uniswap/token-lists": "1.0.0-beta.33",
    "@uniswap/uniswapx-sdk": "3.0.0-beta.7",
    "@uniswap/universal-router-sdk": "4.19.5",
    "@uniswap/v2-core": "1.0.1",
    "@uniswap/v2-sdk": "4.15.2",
    "@uniswap/v3-core": "1.0.1",
    "@uniswap/v3-periphery": "1.4.4",
    "@uniswap/v3-sdk": "3.25.2",
    "@uniswap/v4-sdk": "1.21.2",
    "@visx/group": "2.17.0",
    "@visx/responsive": "3.12.0",
    "@visx/shape": "2.18.0",
    "@web3-react/core": "8.2.3",
    "@web3-react/empty": "8.2.3",
    "ajv": "8.11.0",
    "ajv-formats": "2.1.1",
    "array.prototype.flat": "1.3.2",
    "array.prototype.flatmap": "1.3.2",
    "buffer": "6.0.3",
    "cids": "1.1.6",
    "copy-to-clipboard": "3.3.3",
    "d3": "7.6.1",
    "date-fns": "2.30.0",
    "ethers": "5.7.2",
    "expo-crypto": "12.8.1",
    "fancy-canvas": "2.1.0",
    "framer-motion": "10.17.6",
    "graphql": "16.6.0",
    "i18next": "23.10.0",
    "jotai": "1.3.7",
    "jpeg-js": "0.4.4",
    "jsbi": "3.2.5",
    "lightweight-charts": "4.1.1",
    "localforage": "1.10.0",
    "ms": "2.1.3",
    "multicodec": "3.2.1",
    "multihashes": "4.0.2",
    "nock": "13.3.3",
    "png-ts": "0.0.3",
    "polished": "3.3.2",
    "polyfill-object.fromentries": "1.0.1",
    "qs": "6.11.0",
    "react": "18.3.1",
    "react-dom": "18.3.1",
    "react-feather": "2.0.10",
    "react-helmet-async": "2.0.4",
    "react-i18next": "14.1.0",
    "react-infinite-scroll-component": "6.1.0",
    "react-is": "18.3.1",
    "react-native-gesture-handler": "2.21.2",
    "react-native-reanimated": "3.16.7",
    "react-popper": "2.3.0",
    "react-redux": "8.0.5",
    "react-router-dom": "6.10.0",
    "react-scroll-sync": "0.11.2",
    "react-virtualized-auto-sizer": "1.0.20",
    "react-window": "1.8.9",
    "rebass": "4.0.7",
    "redux": "4.2.1",
    "redux-persist": "6.0.0",
    "redux-saga": "1.2.2",
    "sonner": "1.7.2",
    "styled-components": "5.3.11",
    "tiny-invariant": "1.3.1",
    "ts-loader": "9.5.1",
    "typed-redux-saga": "1.5.0",
    "ui": "workspace:^",
    "uniswap": "workspace:^",
    "use-resize-observer": "9.1.0",
    "utilities": "workspace:^",
    "uuid": "9.0.0",
    "video-extensions": "1.2.0",
    "viem": "2.30.5",
    "wagmi": "2.15.4",
    "wcag-contrast": "3.0.0",
    "web-vitals": "2.1.4",
    "xml2js": "0.6.2",
    "zone.js": "0.12.0"
  },
  "engines": {
    "npm": "please-use-yarn",
    "node": "=22.13.1",
    "yarn": ">=3.2.3"
  },
  "sideEffects": [
    "*.css",
    "**/sideEffects.ts",
    "**/tracing/index.ts"
  ]
}
