{ "name": "metabase", "private": true, "version": "0.0.0", "description": "Metabase Analytics Report Server", "repository": "https://github.com/metabase/metabase", "license": "private", "engines": { "node": "4.4.7", "npm": "2.15.9" }, "dependencies": { "ace-builds": "^1.2.2", "babel-polyfill": "^6.6.1", "chevrotain": "0.21.0", "classnames": "^2.1.3", "color": "^1.0.3", "crossfilter": "^1.3.12", "cxs": "^3.0.4", "d3": "^3.5.17", "dc": "^2.0.0", "diff": "^3.2.0", "history": "3", "humanize-plus": "^1.8.1", "icepick": "^1.1.0", "iframe-resizer": "^3.5.11", "inflection": "^1.7.1", "isomorphic-fetch": "^2.2.1", "js-cookie": "^2.1.2", "jsrsasign": "^7.1.0", "leaflet": "^1.0.1", "leaflet.heat": "^0.2.0", "leaflet-draw": "^0.4.9", "moment": "2.14.1", "node-libs-browser": "^2.0.0", "normalizr": "^3.0.2", "number-to-locale-string": "^1.0.1", "password-generator": "^2.0.1", "prop-types": "^15.5.7", "react": "^15.5.4", "react-addons-css-transition-group": "^15.5.2", "react-addons-perf": "^15.2.1", "react-addons-shallow-compare": "^15.2.1", "react-ansi-style": "^1.0.0", "react-collapse": "^2.3.3", "react-copy-to-clipboard": "^4.2.3", "react-dom": "^15.5.4", "react-draggable": "^2.2.3", "react-element-to-jsx-string": "^6.3.0", "react-height": "^2.1.1", "react-motion": "^0.4.5", "react-redux": "^5.0.4", "react-resizable": "^1.0.1", "react-retina-image": "^2.0.4", "react-router": "3", "react-router-redux": "^4.0.8", "react-sortable": "^1.2.0", "react-textarea-autosize": "^4.0.5", "react-virtualized": "^9.7.2", "recompose": "^0.23.1", "redux": "^3.5.2", "redux-actions": "^2.0.1", "redux-auth-wrapper": "^1.0.0", "redux-form": "5", "redux-logger": "^3.0.1", "redux-promise": "^0.5.0", "redux-router": "^2.1.2", "redux-thunk": "^2.0.1", "reselect": "^3.0.0", "resize-observer-polyfill": "^1.3.2", "screenfull": "^3.0.0", "simple-statistics": "^3.0.0", "stack-source-map": "^1.0.4", "tether": "^1.2.0", "underscore": "^1.8.3", "z-index": "0.0.1" }, "devDependencies": { "@slack/client": "^3.5.4", "babel-cli": "^6.11.4", "babel-core": "^6.20.0", "babel-eslint": "^7.1.1", "babel-loader": "^6.2.4", "babel-plugin-add-react-displayname": "^0.0.4", "babel-plugin-transform-builtin-extend": "^1.1.2", "babel-plugin-transform-decorators-legacy": "^1.3.4", "babel-plugin-transform-flow-strip-types": "^6.8.0", "babel-preset-es2015": "^6.6.0", "babel-preset-react": "^6.5.0", "babel-preset-stage-0": "^6.5.0", "babel-register": "^6.11.6", "banner-webpack-plugin": "^0.2.3", "concurrently": "^3.1.0", "css-loader": "^0.28.0", "documentation": "^4.0.0-rc.1", "enzyme": "^2.7.0", "eslint": "^3.5.0", "eslint-import-resolver-webpack": "^0.8.0", "eslint-loader": "^1.6.0", "eslint-plugin-flowtype": "^2.22.0", "eslint-plugin-import": "^2.2.0", "eslint-plugin-jasmine": "^2.2.0", "eslint-plugin-react": "^6.3.0", "exports-loader": "^0.6.3", "extract-text-webpack-plugin": "^1.0.1", "file-loader": "^0.11.1", "flow-bin": "^0.37.4", "fs-promise": "^2.0.2", "glob": "^7.1.1", "html-webpack-harddisk-plugin": "^0.1.0", "html-webpack-plugin": "^2.14.0", "image-diff": "^1.6.3", "imports-loader": "^0.7.0", "jasmine": "^2.4.1", "jasmine-core": "^2.4.1", "jasmine-promises": "^0.4.1", "jasmine-reporters": "^2.2.0", "jasmine-spec-reporter": "^3.0.0", "jest": "^19.0.2", "json-loader": "^0.5.4", "jsonwebtoken": "^7.2.1", "karma": "^1.3.0", "karma-chrome-launcher": "^2.0.0", "karma-jasmine": "^1.1.0", "karma-junit-reporter": "^1.1.0", "karma-nyan-reporter": "^0.2.2", "karma-webpack": "^1.7.0", "lint-staged": "^3.3.1", "postcss-cssnext": "^2.4.0", "postcss-import": "^9.0.0", "postcss-loader": "^1.2.1", "postcss-url": "^6.0.4", "prettier": "^0.22.0", "promise-loader": "^1.0.0", "react-hot-loader": "^1.3.0", "react-test-renderer": "^15.5.4", "sauce-connect-launcher": "^1.1.1", "selenium-webdriver": "^2.53.3", "sinon": "^2.3.1", "style-loader": "^0.16.1", "unused-files-webpack-plugin": "^3.0.0", "webchauffeur": "^1.2.0", "webpack": "^1.14.0", "webpack-dev-server": "^1.16.2", "webpack-hot-middleware": "^2.14.0", "webpack-postcss-tools": "^1.1.2" }, "scripts": { "dev": "yarn && concurrently --kill-others -p name -n 'backend,frontend' -c 'blue,green' 'lein ring server' 'yarn run build-hot'", "lint": "yarn run lint-eslint && yarn run lint-prettier", "lint-eslint": "eslint --ext .js --ext .jsx --max-warnings 0 frontend/src frontend/test", "lint-prettier": "prettier --tab-width 4 -l 'frontend/src/metabase/{qb,new_question}/**/*.js*' 'frontend/src/metabase-lib/**/*.js' || (echo '\nThese files are not formatted correctly. Did you forget to run \"yarn run prettier\"?' && false)", "flow": "flow check", "test": "yarn run test-jest && yarn run test-karma", "test-karma": "karma start frontend/test/karma.conf.js --single-run", "test-karma-watch": "karma start frontend/test/karma.conf.js --auto-watch --reporters nyan", "test-jest": "jest --maxWorkers=10 --config jest.unit.conf.json", "test-jest-watch": "jest --maxWorkers=10 --config jest.unit.conf.json --watch", "test-integrated": "babel-node ./frontend/test/run-integrated-tests.js", "test-integrated-watch": "babel-node ./frontend/test/run-integrated-tests.js --watch", "test-e2e": "JASMINE_CONFIG_PATH=./frontend/test/e2e/support/jasmine.json jasmine", "test-e2e-dev": "./frontend/test/e2e-with-persistent-browser.js", "test-e2e-sauce": "USE_SAUCE=true yarn run test-e2e", "build": "webpack --bail", "build-watch": "webpack --watch", "build-hot": "NODE_ENV=hot webpack-dev-server --progress", "start": "yarn run build && lein ring server", "precommit": "lint-staged", "preinstall": "echo $npm_execpath | grep -q yarn || echo '\\033[0;33mSorry, npm is not supported. Please use Yarn (https://yarnpkg.com/).\\033[0m'", "prettier": "prettier --tab-width 4 --write 'frontend/src/metabase/{qb,new_question}/**/*.js*' 'frontend/src/metabase-lib/**/*.js'", "docs": "documentation build -f html -o frontend/docs frontend/src/metabase-lib/lib/**" }, "lint-staged": { "frontend/src/metabase/{qb,new_question}/**/*.js*": [ "prettier --tab-width 4 --write", "git add" ], "frontend/src/metabase-lib/**/*.js*": [ "prettier --tab-width 4 --write", "git add" ] } }