{ "name": "redash-client", "version": "25.12.0-dev", "description": "The frontend part of Redash.", "main": "index.js", "scripts": { "start": "npm-run-all --parallel watch:viz webpack-dev-server", "clean": "rm -rf ./client/dist/", "build:viz": "(cd viz-lib && yarn build:babel)", "build": "yarn clean && yarn build:viz && NODE_OPTIONS=--openssl-legacy-provider NODE_ENV=production webpack", "watch:app": "NODE_OPTIONS=--openssl-legacy-provider webpack watch --progress", "watch:viz": "(cd viz-lib && yarn watch:babel)", "watch": "npm-run-all --parallel watch:*", "webpack-dev-server": "webpack-dev-server", "analyze": "yarn clean && BUNDLE_ANALYZER=on NODE_OPTIONS=--openssl-legacy-provider webpack", "analyze:build": "yarn clean && NODE_ENV=production BUNDLE_ANALYZER=on NODE_OPTIONS=--openssl-legacy-provider webpack", "lint": "yarn lint:base --ext .js --ext .jsx --ext .ts --ext .tsx ./client", "lint:fix": "yarn lint:base --fix --ext .js --ext .jsx --ext .ts --ext .tsx ./client", "lint:base": "eslint --config ./client/.eslintrc.js --ignore-path ./client/.eslintignore", "lint:ci": "yarn lint --max-warnings 0 --format junit --output-file /tmp/test-results/eslint/results.xml", "prettier": "prettier --write 'client/app/**/*.{js,jsx,ts,tsx}' 'client/cypress/**/*.{js,jsx,ts,tsx}'", "type-check": "tsc --noEmit --project client/tsconfig.json", "type-check:watch": "yarn type-check --watch", "jest": "TZ=Africa/Khartoum jest", "test": "run-s type-check jest", "test:watch": "jest --watch", "cypress": "node client/cypress/cypress.js", "preinstall": "cd viz-lib && yarn link --link-folder ../.yarn", "postinstall": "(cd viz-lib && yarn --frozen-lockfile && yarn build:babel) && yarn link --link-folder ./.yarn @redash/viz" }, "repository": { "type": "git", "url": "git+https://github.com/getredash/redash.git" }, "engines": { "node": ">16.0 <21.0", "npm": "please-use-yarn", "yarn": "^1.22.10" }, "author": "Redash Contributors", "license": "BSD-2-Clause", "bugs": { "url": "https://github.com/getredash/redash/issues" }, "homepage": "https://redash.io/", "dependencies": { "@ant-design/icons": "^4.2.1", "@redash/viz": "file:viz-lib", "ace-builds": "^1.43.3", "antd": "4.4.3", "axios": "0.27.2", "axios-auth-refresh": "3.3.6", "bootstrap": "^3.4.1", "classnames": "^2.2.6", "d3": "^3.5.17", "debug": "^3.2.7", "dompurify": "^2.0.17", "elliptic": "^6.6.0", "font-awesome": "^4.7.0", "history": "^4.10.1", "hoist-non-react-statics": "^3.3.0", "markdown": "0.5.0", "material-design-iconic-font": "^2.2.0", "mousetrap": "^1.6.1", "mustache": "^2.3.0", "numeral": "^2.0.6", "path-to-regexp": "^3.3.0", "prop-types": "^15.6.1", "query-string": "^6.9.0", "react": "16.14.0", "react-ace": "^14.0.1", "react-dom": "^16.14.0", "react-grid-layout": "^0.18.2", "react-resizable": "^1.10.1", "react-virtualized": "^9.21.2", "sql-formatter": "git+https://github.com/getredash/sql-formatter.git", "universal-router": "^8.3.0", "use-debounce": "^3.1.0", "use-media": "^1.4.0" }, "devDependencies": { "@babel/cli": "^7.22.9", "@babel/core": "^7.22.9", "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-transform-object-assign": "^7.2.0", "@babel/preset-env": "^7.22.9", "@babel/preset-react": "^7.0.0", "@babel/preset-typescript": "^7.22.5", "@cypress/code-coverage": "^3.11.0", "@percy/agent": "^0.28.7", "@percy/cypress": "^3.1.2", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.10", "@testing-library/cypress": "^8.0.7", "@types/classnames": "^2.2.10", "@types/hoist-non-react-statics": "^3.3.1", "@types/lodash": "^4.14.157", "@types/prop-types": "^15.7.3", "@types/react": "^16.14.2", "@types/react-dom": "^16.9.10", "@types/sql-formatter": "^2.3.0", "@typescript-eslint/eslint-plugin": "^2.10.0", "@typescript-eslint/parser": "^2.10.0", "assert": "^2.1.0", "atob": "^2.1.2", "babel-eslint": "^10.0.3", "babel-jest": "^24.1.0", "babel-loader": "^8.3.0", "babel-plugin-istanbul": "^6.1.1", "babel-plugin-transform-builtin-extend": "^1.1.2", "copy-webpack-plugin": "^6.4.1", "css-loader": "^5.2.7", "cypress": "^11.2.0", "dayjs": "^1.11.9", "enzyme": "^3.8.0", "enzyme-adapter-react-16": "^1.7.1", "enzyme-to-json": "^3.3.5", "eslint": "^6.7.2", "eslint-config-prettier": "^6.7.0", "eslint-config-react-app": "^5.1.0", "eslint-loader": "^4.0.2", "eslint-plugin-chai-friendly": "^0.5.0", "eslint-plugin-compat": "^3.3.0", "eslint-plugin-cypress": "^2.0.1", "eslint-plugin-flowtype": "^3.13.0", "eslint-plugin-import": "^2.18.2", "eslint-plugin-jest": "^22.2.2", "eslint-plugin-jsx-a11y": "^6.4.1", "eslint-plugin-no-only-tests": "^2.4.0", "eslint-plugin-react": "^7.17.0", "eslint-plugin-react-hooks": "^1.7.0", "file-loader": "^6.2.0", "html-webpack-plugin": "^4.5.2", "identity-obj-proxy": "^3.0.0", "jest": "^24.1.0", "less": "^3.13.1", "less-loader": "^5.0.0", "less-plugin-autoprefix": "^2.0.0", "lodash": "^4.17.21", "mini-css-extract-plugin": "^1.6.2", "mockdate": "^2.0.2", "npm-run-all": "^4.1.5", "prettier": "3.3.2", "process": "^0.11.10", "raw-loader": "^0.5.1", "react-refresh": "^0.14.0", "react-test-renderer": "^16.14.0", "request-cookies": "^1.1.0", "source-map-loader": "^1.1.3", "stream-browserify": "^3.0.0", "style-loader": "^2.0.0", "typescript": "4.1.2", "url": "^0.11.4", "url-loader": "^4.1.1", "webpack": "^5.101.3", "webpack-build-notifier": "^3.0.1", "webpack-bundle-analyzer": "^4.9.0", "webpack-cli": "^4.10.0", "webpack-dev-server": "^4.15.1", "webpack-manifest-plugin": "^5.0.1" }, "optionalDependencies": { "fsevents": "^2.3.2" }, "jest": { "rootDir": "./client", "setupFiles": [ "./app/__tests__/enzyme_setup.js", "./app/__tests__/mocks.js" ], "snapshotSerializers": [ "enzyme-to-json/serializer" ], "moduleNameMapper": { "^@/(.*)": "/app/$1", "\\.(css|less)$": "identity-obj-proxy" }, "testPathIgnorePatterns": [ "/app/__tests__/" ] }, "nyc": { "include": [ "client/app/**", "viz-lib/**" ] }, "browser": { "fs": false, "path": false }, "//": "browserslist set to 'Async functions' compatibility", "browserslist": [ "Edge >= 15", "Firefox >= 52", "Chrome >= 55", "Safari >= 10.1", "iOS >= 10.3", "Opera >= 42", "op_mob >= 46", "android >= 67", "and_chr >= 71", "and_ff >= 64", "and_uc >= 11.8", "samsung >= 6.2" ] }