{
  "name": "@quantumblack/kedro-viz",
  "version": "12.3.0",
  "description": "Kedro-Viz is an interactive development tool for building data science pipelines with Kedro.",
  "main": "lib/components/app/index.js",
  "module": "lib/components/app/index.mjs",
  "exports": {
    ".": {
      "import": "./lib/components/app/index.mjs",
      "require": "./lib/components/app/index.js"
    },
    "./lib/styles/styles.min.css": "./lib/styles/styles.min.css",
    "./lib/utils/data/*": "./lib/utils/data/*"
  },
  "files": [
    "lib"
  ],
  "homepage": ".",
  "repository": {
    "type": "git",
    "url": "https://github.com/kedro-org/kedro-viz.git"
  },
  "proxy": "http://localhost:4142/",
  "scripts": {
    "dev": "vite",
    "build": "vite build && cp ./dist/index.html ./dist/404.html",
    "build:esm": "rm -rf esm && vite build --config vite.esm.config.js",
    "preview": "vite preview",
    "start": "REACT_APP_DATA_SOURCE=$DATA NODE_OPTIONS=\"--dns-result-order=ipv4first\" npm-run-all -p dev start:lib",
    "start:dev": "rm -rf node_modules/.cache && npm run start",
    "start:lib": "rm -rf lib && babel src --out-dir lib --copy-files --watch",
    "lib": "npm-run-all -s lib:clean lib:copy lib:vite lib:prune",
    "lib:clean": "rm -rf lib",
    "lib:copy": "cp -rf src lib",
    "lib:vite": "vite build --config vite.lib.config.js",
    "lib:prune": "find lib -type f -name '*.test.*' -delete && find lib -type f -name '*.scss' -delete && find lib -type f -name '*.jsx' -delete && rm -f lib/utils/worker.js lib/utils/worker.blob.js lib/utils/graph-worker.js",
    "lib-test": "npm-run-all -s lib lib-test:setup lib-test:serve",
    "lib-test:setup": "node ./tools/test-lib/setup.js",
    "lib-test:serve": "node ./tools/test-lib/serve.js",
    "format": "prettier --write \"src/**/*.{js,jsx,ts,tsx,json,css,scss,md}\"",
    "lint": "npm-run-all -p lint:js lint:scss",
    "lint:js": "eslint src/ --fix",
    "lint:scss": "stylelint 'src/**/*.scss' --fix",
    "test": "jest src --env=jsdom",
    "test:watch": "jest --watch src --env=jsdom",
    "test:coverage": "npm test -- --coverage --watchAll=false",
    "test:ci": "npm test -- --watchAll=false --maxWorkers=2",
    "test:debug": "node --inspect-brk node_modules/.bin/jest --runInBand --no-cache",
    "cy:dev": "cypress open",
    "cy:test": "./cypress/support/cy.start.sh local",
    "cy:ci": "./cypress/support/cy.start.sh ci",
    "snyk-protect": "snyk protect",
    "snyk-test": "snyk test -prune-repeated-subdependencies",
    "prepublishOnly": "npm-run-all -s test:ci lint build lib"
  },
  "dependencies": {
    "@emotion/react": "^11.10.6",
    "@emotion/styled": "^11.10.6",
    "@mui/icons-material": "^5.11.9",
    "@mui/material": "^5.11.10",
    "@mui/system": "^5.14.18",
    "@mui/x-tree-view": "^6.17.0",
    "@reduxjs/toolkit": "^2.8.2",
    "batching-toposort": "^1.2.0",
    "classnames": "^2.3.1",
    "d3": "^7.6.1",
    "d3-fetch": "^2.0.0",
    "d3-interpolate": "^2.0.1",
    "d3-interpolate-path": "^2.2.3",
    "d3-selection": "^2.0.0",
    "d3-shape": "^2.1.0",
    "d3-transition": "^2.0.0",
    "d3-zoom": "^2.0.0",
    "dayjs": "^1.10.7",
    "deepmerge": "^4.2.2",
    "highlight.js": "^10.7.3",
    "isomorphic-dompurify": "^2.28.0",
    "kiwi.js": "^1.1.3",
    "lodash": "^4.17.21",
    "mermaid": "^11.12.2",
    "plotly.js-dist-min": "^2.26.0",
    "react-custom-scrollbars-2": "^4.5.0",
    "react-json-view": "^1.21.3",
    "react-plotly.js": "^2.5.1",
    "react-redux": "^8.1.3",
    "react-router-dom": "^5.3.0",
    "redux": "^4.1.2",
    "redux-mock-store": "^1.5.4",
    "redux-thunk": "^2.4.2",
    "redux-watch": "^1.2.0",
    "reselect": "^4.1.5",
    "seedrandom": "^3.0.5",
    "sinon": "^12.0.1",
    "svg-crowbar": "^0.6.5",
    "what-input": "^5.2.10"
  },
  "overrides": {
    "react-json-view": {
      "react": "$react",
      "react-dom": "$react-dom",
      "react-json-view": "^1.21.3"
    }
  },
  "peerDependencies": {
    "react": "^18.2.0",
    "react-dom": "^18.2.0"
  },
  "devDependencies": {
    "@babel/cli": "^7.14.5",
    "@babel/core": "^7.27.4",
    "@babel/plugin-proposal-class-properties": "^7.18.6",
    "@babel/plugin-proposal-private-methods": "^7.18.6",
    "@babel/plugin-proposal-private-property-in-object": "^7.21.11",
    "@babel/plugin-transform-runtime": "^7.27.4",
    "@babel/preset-env": "^7.27.2",
    "@babel/preset-react": "^7.27.1",
    "@testing-library/jest-dom": "^6.6.3",
    "@testing-library/react": "^14.3.1",
    "@testing-library/user-event": "^14.5.1",
    "@vitejs/plugin-react": "^4.5.1",
    "babel-jest": "^30.0.0-beta.3",
    "babel-loader": "^10.0.0",
    "babel-plugin-transform-import-meta": "^2.3.3",
    "babel-plugin-transform-remove-imports": "^1.7.0",
    "canvas": "^2.7.0",
    "cross-env": "7.0.3",
    "css-loader": "^6.4.0",
    "cypress": "^13.3.0",
    "eslint": "^8.57.1",
    "eslint-config-react-app": "^7.0.1",
    "eslint-plugin-cypress": "^2.15.2",
    "husky": "^4.3.8",
    "identity-obj-proxy": "^3.0.0",
    "jest": "^29.7.0",
    "jest-environment-jsdom": "^29.7.0",
    "lint-staged": "^10.5.4",
    "mini-css-extract-plugin": "^1.6.2",
    "npm-run-all": "^4.1.5",
    "postcss-loader": "^8.1.1",
    "prettier": "^2.3.1",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "react-error-overlay": "^6.0.9",
    "sass": "^1.54.4",
    "sass-loader": "^14.1.1",
    "snyk": "^1.639.0",
    "stylelint": "^15.10.1",
    "stylelint-config-prettier": "^8.0.2",
    "stylelint-config-standard": "^34.0.0",
    "stylelint-config-standard-scss": "^10.0.0",
    "stylelint-order": "^6.0.3",
    "stylelint-prettier": "^1.2.0",
    "vite": "^6.3.5",
    "webpack-cli": "^4.7.2",
    "whatwg-fetch": "^3.6.20"
  },
  "husky": {
    "hooks": {
      "pre-commit": "lint-staged",
      "pre-push": "npm run test:ci"
    }
  },
  "lint-staged": {
    "src/**/*.scss": [
      "stylelint --fix"
    ],
    "src/**/*.{js,jsx,ts,tsx,json,css,scss,md}": [
      "prettier --single-quote --write"
    ],
    "src/**/*.{js,jsx,ts,tsx}": [
      "eslint src/ --fix"
    ]
  },
  "jest": {
    "testEnvironment": "jsdom",
    "setupFilesAfterEnv": [
      "<rootDir>/src/setupTests.js"
    ],
    "transform": {
      "^.+\\.[jt]sx?$": "babel-jest"
    },
    "transformIgnorePatterns": [
      "/node_modules/(?!d3|d3-array|internmap|delaunator|robust-predicates)"
    ],
    "moduleNameMapper": {
      "\\.(css|scss)$": "identity-obj-proxy",
      "^(.*)\\?worker&inline$": "$1"
    },
    "maxWorkers": 5
  },
  "browserslist": [
    ">0.2%",
    "not dead",
    "not ie <= 11",
    "not op_mini all"
  ],
  "snyk": true
}