{
  "name": "redisinsight",
  "productName": "Redis Insight",
  "description": "Redis Insight",
  "license": "SSPL",
  "private": true,
  "scripts": {
    "dev:ui": "cross-env npm run dev --prefix redisinsight/ui",
    "dev:ui:coverage": "cross-env COLLECT_COVERAGE=true npm run dev --prefix redisinsight/ui",
    "dev:api": "cross-env npm run start:dev --prefix redisinsight/api",
    "dev:electron:ui": "cross-env RI_APP_PORT=8080 RI_APP_TYPE=ELECTRON NODE_ENV=development npm run dev --prefix redisinsight/ui",
    "dev:electron:api": "cross-env RI_APP_PORT=5540 RI_APP_TYPE=ELECTRON NODE_ENV=development USE_TCP_CLOUD_AUTH=true npm run start:dev --prefix redisinsight/api",
    "dev:electron": "cross-env RI_APP_TYPE=ELECTRON RI_AUTO_BOOTSTRAP=false NODE_ENV=development USE_TCP_CLOUD_AUTH=true npm run dev --prefix redisinsight/desktop",
    "dev:desktop": "concurrently \"npm run dev:electron:api\" \"npm run dev:electron:ui\" \"npm run dev:electron\"",
    "build:ui": "cross-env NODE_ENV=production RI_APP_TYPE=web npm run build --prefix redisinsight/ui",
    "build:renderer": "cross-env NODE_ENV=production RI_APP_TYPE=ELECTRON npm run build --prefix redisinsight/ui -- --emptyOutDir && copyfiles ./redisinsight/desktop/splash.html ./redisinsight/dist/renderer -f",
    "stats:ui": "npm run stats --prefix redisinsight/ui",
    "build": "cross-env NODE_ENV=development concurrently \"npm run build:main\" \"npm run build:renderer\"",
    "build:stage": "cross-env NODE_ENV=staging TS_NODE_TRANSPILE_ONLY=true TS_NODE_PROJECT=./configs/tsconfig.json concurrently \"npm run build:api:stage && npm run build:main:stage\" \"npm run build:renderer\"",
    "build:prod": "cross-env NODE_ENV=production concurrently \"npm run build:api && npm run build:main\" \"npm run build:renderer\"",
    "build:api": "npm run build:prod --prefix redisinsight/api",
    "build:api:stage": "npm run build:stage --prefix redisinsight/api",
    "build:main": "cross-env NODE_ENV=production TS_NODE_TRANSPILE_ONLY=true TS_NODE_PROJECT=./configs/tsconfig.json webpack --config ./configs/webpack.config.main.prod.ts",
    "build:main:stage": "cross-env TS_NODE_TRANSPILE_ONLY=true TS_NODE_PROJECT=./configs/tsconfig.json webpack --config ./configs/webpack.config.main.stage.ts",
    "build:defaults": "npm run build:defaults --prefix redisinsight/api",
    "generate:api-client": "node ./scripts/generate-api-client.js",
    "i18n:extract": "i18next-cli extract",
    "i18n:check": "node ./scripts/check-i18n-locales.js",
    "build:statics": "npm run build:defaults && sh ./scripts/build-statics.sh",
    "build:statics:win": "npm run build:defaults && .\\scripts\\build-statics.cmd",
    "rebuild": "electron-rebuild --parallel --types prod,dev,optional --module-dir redisinsight",
    "lint": "eslint . --ext .js,.jsx,.ts,.tsx --cache --cache-strategy content",
    "lint:ui": "eslint ./redisinsight/ui --ext .js,.jsx,.ts,.tsx --cache --cache-strategy content",
    "lint:api": "eslint ./redisinsight/api --ext .js,.ts --cache --cache-strategy content",
    "lint:desktop": "eslint ./redisinsight/desktop --cache --cache-strategy content",
    "prettier": "prettier --check .",
    "prettier:update": "prettier --write .",
    "prettier:fix": "prettier --write",
    "package": "npm run package:dev",
    "package:prod": "node ./scripts/prebuild.js dist && npm run build:prod && electron-builder build -p never",
    "package:stage": "node ./scripts/prebuild.js dist && npm run build:stage && electron-builder build -p never -c.mac.bundleVersion=$GITHUB_RUN_ID",
    "package:mas": "electron-builder build -p never -m mas:universal -c.mac.bundleVersion=$GITHUB_RUN_ID -c ./electron-builder-mas.js",
    "package:mas:dev": "electron-builder build -p never -m mas-dev:universal -c ./electron-builder-mas.js",
    "package:dev": "npm run build && cross-env DEBUG=electron-builder electron-builder build -p never",
    "package:win": "npm run build:prod && electron-builder build --win --x64 -p never",
    "package:mac": "npm run build:prod && electron-builder build --mac -p never",
    "package:mac:arm": "npm run build:prod && electron-builder build --mac --arm64 -p never",
    "package:linux": "npm run build:prod && electron-builder build --linux -p never",
    "postinstall": "patch-package && vite optimize -c ./redisinsight/ui/vite.config.mjs",
    "test": "jest -w 1",
    "test:api": "npm run test --prefix redisinsight/api",
    "test:api:integration": "npm run test:api --prefix redisinsight/api",
    "test:watch": "jest --watch -w 1",
    "test:cov": "cross-env NODE_OPTIONS='' jest --testLocationInResults --json --outputFile=\"report/coverage/report.json\" --silent --coverage --no-cache --forceExit -w 3",
    "test:cov:unit": "jest --group=-component --coverage -w 1",
    "test:cov:component": "jest --group=component --coverage -w 1",
    "type-check": "npm run type-check --prefix redisinsight/ui && npm run type-check --prefix redisinsight/api && npm run type-check --prefix redisinsight/desktop && tsc --project configs/tsconfig.json --noEmit",
    "tscheck": "npm run tscheck --prefix redisinsight/ui && npm run tscheck --prefix redisinsight/api && npm run tscheck --prefix redisinsight/desktop",
    "tscheck:force": "npm run tscheck:force --prefix redisinsight/ui && npm run tscheck:force --prefix redisinsight/api && npm run tscheck:force --prefix redisinsight/desktop",
    "sb": "storybook dev -p 6006",
    "build-sb": "storybook build",
    "deps:audit": "node scripts/dependency-audit-report.mjs",
    "test:scripts": "node --test scripts/lib/*.test.mjs",
    "test:security": "node --import tsx --test tests/security/*.test.mts"
  },
  "lint-staged": {
    "*.{js,jsx,ts,tsx}": [
      "eslint --cache"
    ]
  },
  "build": {
    "extends": "./electron-builder.json"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/RedisInsight/RedisInsight.git"
  },
  "author": {
    "name": "Redis Ltd.",
    "email": "support@redis.com",
    "url": "https://redis.com/redis-enterprise/redis-insight"
  },
  "bugs": {
    "url": "https://github.com/RedisInsight/RedisInsight/issues"
  },
  "keywords": [
    "redisinsight",
    "redis",
    "electron",
    "react",
    "nest",
    "typescript",
    "sass",
    "webpack",
    "vite"
  ],
  "homepage": "https://github.com/RedisInsight/RedisInsight#readme",
  "overrides": {
    "trim": "0.0.3",
    "word-wrap": "1.2.4",
    "semver": "7.7.4",
    "eslint-plugin-sonarjs": {
      "semver": "^7.8.5"
    },
    "rawproto": {
      "protobufjs": "^7.6.5"
    },
    "@electron/notarize": "2.3.2",
    "@elastic/eui": {
      "prismjs": "~1.30.0"
    },
    "react-router-dom": {
      "react-router": {
        "path-to-regexp": "^1.9.0"
      }
    },
    "form-data": "^4.0.6",
    "@sentry/core": "10.73.0",
    "@types/react": "18.2.1",
    "@types/react-dom": "18.2.1"
  },
  "devDependencies": {
    "@aivenio/tsc-output-parser": "2.1.1",
    "@babel/plugin-proposal-decorators": "^7.29.7",
    "@babel/preset-env": "^7.29.7",
    "@babel/preset-react": "^7.29.7",
    "@babel/preset-typescript": "^7.29.7",
    "@electron/rebuild": "^4.2.0",
    "@faker-js/faker": "^8.4.1",
    "@pmmmwh/react-refresh-webpack-plugin": "^0.6.3",
    "@sentry/vite-plugin": "^5.4.0",
    "@sentry/webpack-plugin": "^5.4.0",
    "@storybook/addon-a11y": "^9.1.19",
    "@storybook/addon-docs": "^9.1.11",
    "@storybook/addon-links": "^9.1.11",
    "@storybook/addon-themes": "^9.1.11",
    "@storybook/react-vite": "^9.1.11",
    "@svgr/webpack": "^8.1.0",
    "@teamsupercell/typings-for-css-modules-loader": "^2.4.0",
    "@testing-library/jest-dom": "^6.2.0",
    "@testing-library/react": "^13.3.0",
    "@testing-library/react-hooks": "^8.0.1",
    "@testing-library/user-event": "^14.6.7",
    "@types/classnames": "^2.3.4",
    "@types/d3": "^7.4.3",
    "@types/detect-port": "^1.3.5",
    "@types/dompurify": "^3.2.0",
    "@types/electron-store": "^3.2.0",
    "@types/express": "^5.0.6",
    "@types/file-saver": "^2.0.7",
    "@types/html-entities": "^1.3.4",
    "@types/ioredis": "^4.26.0",
    "@types/is-glob": "^4.0.4",
    "@types/jest": "^29.5.14",
    "@types/js-yaml": "^4.0.9",
    "@types/json-bigint": "^1.0.4",
    "@types/lodash": "^4.17.25",
    "@types/node": "14.18.63",
    "@types/pako": "^2.0.4",
    "@types/react": "18.2.1",
    "@types/react-dom": "18.2.1",
    "@types/react-router-dom": "^5.3.3",
    "@types/react-virtualized": "^9.22.3",
    "@types/react-window-infinite-loader": "^1.0.6",
    "@types/segment-analytics": "^0.0.38",
    "@types/semver": "^7.7.0",
    "@types/styled-components": "^5.1.34",
    "@types/supertest": "^2.0.8",
    "@types/text-encoding": "^0.0.40",
    "@types/webpack-env": "^1.18.8",
    "@typescript-eslint/eslint-plugin": "^7.18.0",
    "@typescript-eslint/parser": "^7.18.0",
    "@vitejs/plugin-react": "^4.7.0",
    "@vitejs/plugin-react-swc": "^3.6.0",
    "assert": "^2.1.0",
    "babel-preset-vite": "^1.1.3",
    "concurrently": "^9.2.4",
    "construct-style-sheets-polyfill": "^3.1.0",
    "copyfiles": "^2.4.1",
    "core-js": "^3.50.0",
    "cross-env": "^7.0.2",
    "css-loader": "^5.0.1",
    "css-minimizer-webpack-plugin": "^8.0.0",
    "csv-parser": "^3.2.1",
    "csv-stringify": "^6.8.3",
    "deep-object-diff": "^1.1.9",
    "dotenv": "^16.4.5",
    "electron": "^43.7.1",
    "electron-builder": "26.16.1",
    "electron-builder-notarize": "^1.5.2",
    "electron-debug": "^3.2.0",
    "electron-devtools-installer": "^3.2.1",
    "esbuild-plugin-react-virtualized": "^1.0.6",
    "eslint": "^8.57.1",
    "eslint-config-airbnb": "^19.0.4",
    "eslint-config-airbnb-typescript": "^18.0.0",
    "eslint-config-prettier": "^10.1.8",
    "eslint-import-resolver-webpack": "^0.13.11",
    "eslint-plugin-compat": "^6.2.1",
    "eslint-plugin-import": "^2.31.0",
    "eslint-plugin-jest": "^28.9.0",
    "eslint-plugin-jsx-a11y": "^6.10.2",
    "eslint-plugin-prettier": "^5.5.6",
    "eslint-plugin-promise": "^7.3.0",
    "eslint-plugin-react": "^7.37.2",
    "eslint-plugin-react-hooks": "^5.0.0",
    "eslint-plugin-sonarjs": "^4.2.0",
    "eslint-plugin-storybook": "^9.1.11",
    "file-loader": "^6.0.0",
    "fishery": "^2.4.0",
    "google-auth-library": "^10.9.1",
    "googleapis": "^125.0.0",
    "html-webpack-plugin": "^5.6.8",
    "i18next-cli": "^1",
    "identity-obj-proxy": "^3.0.0",
    "istanbul-lib-coverage": "^3.2.2",
    "jest": "^29.7.0",
    "jest-environment-jsdom": "^29.7.0",
    "jest-fixed-jsdom": "^0.0.11",
    "jest-html-reporters": "^3.1.7",
    "jest-runner-groups": "^2.2.0",
    "jest-watch-typeahead": "^2.2.2",
    "jest-when": "^4.0.3",
    "json-stable-stringify": "^1.3.0",
    "license-checker": "^25.0.1",
    "lint-staged": "^16.4.0",
    "mini-css-extract-plugin": "2.10.2",
    "moment": "^2.30.1",
    "msw": "2.15.0",
    "patch-package": "^8.0.1",
    "prettier": "3.9.6",
    "react-refresh": "^0.19.0",
    "redux-mock-store": "^1.5.5",
    "redux-thunk": "^3.1.0",
    "regenerator-runtime": "^0.14.1",
    "rimraf": "^3.0.2",
    "sass": "npm:sass-embedded@1.75.0",
    "socket.io-mock": "^1.3.2",
    "source-map-support": "^0.5.19",
    "storybook": "^9.1.19",
    "style-loader": "^2.0.0",
    "supertest": "^4.0.2",
    "terser-webpack-plugin": "^5.6.1",
    "text-encoding": "^0.7.0",
    "ts-jest": "^29.4.12",
    "ts-loader": "^9.6.2",
    "ts-mockito": "^2.6.1",
    "ts-node": "^10.9.2",
    "tsconfig-paths": "^3.9.0",
    "tsconfig-paths-webpack-plugin": "^4.2.0",
    "tsx": "^4.23.13",
    "typescript": "^4.0.5",
    "url-loader": "^4.1.0",
    "vite": "^6.4.3",
    "vite-bundle-visualizer": "1.2.1",
    "vite-plugin-compression2": "^2.5.3",
    "vite-plugin-ejs": "^1.8.0",
    "vite-plugin-electron": "^0.29.1",
    "vite-plugin-electron-renderer": "^0.14.7",
    "vite-plugin-istanbul": "^7.2.1",
    "vite-plugin-react-click-to-component": "^3.0.0",
    "vite-plugin-svgr": "^4.2.0",
    "webpack": "^5.110.3",
    "webpack-bundle-analyzer": "^4.10.2",
    "webpack-cli": "^5.1.4",
    "webpack-merge": "^5.10.0",
    "whatwg-fetch": "^3.6.20"
  },
  "dependencies": {
    "@elastic/datemath": "^5.0.3",
    "@elastic/eui": "34.6.0",
    "@redis-ui/components": "^44.0.2",
    "@redis-ui/icons": "^6.9.3",
    "@redis-ui/styles": "^15.0.0",
    "@redis-ui/table": "^3.7.0",
    "@reduxjs/toolkit": "^2.12.0",
    "@sentry/electron": "^7.18.0",
    "@sentry/react": "^10.73.0",
    "@stablelib/snappy": "^1.0.3",
    "@types/json-dup-key-validator": "^1.0.2",
    "ajv": "^8.20.0",
    "axios": "^1.20.0",
    "brotli-dec-wasm": "^2.3.2",
    "buffer": "^6.0.3",
    "classnames": "^2.5.1",
    "connection-string": "^4.4.0",
    "d3": "^7.9.0",
    "date-fns": "^3.6.0",
    "date-fns-tz": "^3.2.0",
    "dompurify": "^3.4.14",
    "electron-context-menu": "^3.1.0",
    "electron-log": "^4.2.4",
    "electron-store": "^8.2.0",
    "electron-updater": "^6.8.9",
    "file-saver": "^2.0.5",
    "formik": "^2.4.9",
    "fzstd": "^0.1.1",
    "get-port": "^7.2.0",
    "html-entities": "^2.6.0",
    "html-react-parser": "^1.2.4",
    "i18next": "^23.16",
    "java-object-serialization": "^0.1.2",
    "js-yaml": "^4.3.2",
    "json-bigint": "^1.0.0",
    "json-dup-key-validator": "^1.0.3",
    "jszip": "^3.10.1",
    "lodash": "^4.18.1",
    "lz4js": "^0.2.0",
    "modern-normalize": "^3.0.1",
    "monaco-editor": "^0.48.0",
    "monaco-yaml": "^5.1.1",
    "msgpackr": "^1.12.1",
    "node-abi": "^4.35.0",
    "pako": "^2.2.0",
    "php-serialize": "^5.1.3",
    "pickleparser": "^0.2.1",
    "rawproto": "^0.7.15",
    "react": "^18.3.1",
    "react-contenteditable": "^3.3.5",
    "react-dom": "^18.3.1",
    "react-focus-on": "^3.10.2",
    "react-hotkeys-hook": "^3.3.1",
    "react-i18next": "^13.5",
    "react-markdown": "^9.1.0",
    "react-monaco-editor": "^0.59.0",
    "react-redux": "^9.2.0",
    "react-resizable-panels": "^3.0.6",
    "react-rnd": "^10.5.3",
    "react-router-dom": "^5.3.4",
    "react-virtualized": "^9.22.2",
    "react-virtualized-auto-sizer": "^1.0.26",
    "react-vtree": "^3.0.0-beta.3",
    "react-window": "^1.8.11",
    "react-window-infinite-loader": "^1.0.10",
    "redux": "^5.0.1",
    "rehype-stringify": "^10.0.1",
    "remark-gfm": "^4.0.1",
    "remark-parse": "^11.0.0",
    "remark-rehype": "^11.1.2",
    "semver": "7.7.4",
    "socket.io-client": "^4.8.3",
    "styled-components": "^5.0.0",
    "unified": "^11.0.5",
    "unist-util-visit": "^5.0.0",
    "url-parse": "^1.5.10",
    "uuid": "^14.0.0"
  },
  "engines": {
    "node": ">=24.x",
    "npm": ">=11.10.0"
  }
}