{ "name": "cellxgene", "version": "1.3.0", "license": "MIT", "description": "cellxgene is a web application for the interactive exploration of single cell sequence data.", "repository": "https://github.com/chanzuckerberg/cellxgene", "scripts": { "build": "npm run clean && webpack --config", "clean": "rimraf build", "dev": "npm run build -- configuration/webpack/webpack.config.dev.js", "e2e": "jest --config __tests__/e2e/e2eJestConfig.json e2e/e2e.test.js", "e2e-annotations": "jest --config __tests__/e2e/e2eJestConfig.json e2e/e2eAnnotations.test.js", "fmt": "eslint --fix src __tests__", "lint": "eslint --fix src __tests__", "prod": "npm run build -- configuration/webpack/webpack.config.prod.js", "test": "jest --testPathIgnorePatterns e2e", "prepare": "cd .. && husky install client/.husky" }, "engineStrict": true, "engines": { "npm": ">=9.6.7", "node": "^18.17.0" }, "eslintConfig": { "extends": "./configuration/eslint/eslint.js" }, "eslintIgnore": [ "src/util/stateManager/matrix_generated.js" ], "resolutions": { "eslint-scope": "3.7.1" }, "browserslist": [ "Chrome > 60", "iOS >= 10.3", "Firefox >= 60", "Edge >= 79", "not Explorer > 0", "not Safari > 0" ], "dependencies": { "@babel/eslint-parser": "^7.15.0", "@blueprintjs/core": "^3.44.0", "@blueprintjs/icons": "^3.19.0", "@blueprintjs/popover2": "^0.11.2", "@blueprintjs/select": "^3.16.0", "abort-controller": "^3.0.0", "core-js": "^3.16.3", "d3": "^4.10.0", "d3-scale-chromatic": "^1.5.0", "flatbuffers": "^1.11.0", "fuzzysort": "^1.1.4", "gl-mat4": "^1.2.0", "gl-matrix": "^3.3.0", "gl-vec3": "^1.1.3", "is-number": "^7.0.0", "lodash.clonedeep": "^4.5.0", "lodash.difference": "^4.5.0", "lodash.foreach": "^4.5.0", "lodash.pull": "^4.1.0", "lodash.sortby": "^4.7.0", "lodash.uniq": "^4.5.0", "memoize-one": "^5.1.1", "pako": "^2.0.3", "react": "^17.0.2", "react-async": "^10.0.1", "react-dom": "^17.0.2", "react-flip-toolkit": "^7.0.12", "react-helmet": "^6.1.0", "react-icons": "^4.2.0", "react-redux": "^7.2.0", "redux": "^4.0.5", "redux-thunk": "^2.3.0", "regenerator-runtime": "^0.13.7", "regl": "^2.1.0", "sha1": "^1.1.1", "tinyqueue": "^2.0.3", "whatwg-fetch": "^3.2.0" }, "devDependencies": { "@babel/core": "^7.25.2", "@babel/plugin-proposal-class-properties": "^7.10.4", "@babel/plugin-proposal-decorators": "^7.13.15", "@babel/plugin-proposal-export-namespace-from": "^7.10.4", "@babel/plugin-proposal-function-bind": "^7.10.5", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", "@babel/plugin-proposal-optional-chaining": "^7.10.4", "@babel/plugin-transform-private-property-in-object": "^7.22.11", "@babel/plugin-transform-react-constant-elements": "^7.13.13", "@babel/plugin-transform-runtime": "^7.13.15", "@babel/preset-env": "^7.22.20", "@babel/preset-react": "^7.13.13", "@babel/register": "^7.13.16", "@babel/runtime": "^7.13.16", "@blueprintjs/eslint-plugin": "^0.3.0", "@sentry/webpack-plugin": "^1.15.0", "babel-jest": "^26.1.0", "babel-loader": "^8.1.0", "babel-preset-modern-browsers": "^15.0.2", "chalk": "^4.1.0", "cheerio": "^1.0.0-rc.6", "clean-css": "^5.1.2", "clean-webpack-plugin": "^4.0.0-alpha.0", "codecov": "^3.7.1", "css-loader": "^5.2.4", "css-minimizer-webpack-plugin": "^4.0.0", "eslint": "^7.24.0", "eslint-config-airbnb": "^18.2.0", "eslint-config-prettier": "^8.2.0", "eslint-plugin-compat": "^4.2.0", "eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-filenames": "^1.3.2", "eslint-plugin-import": "^2.24.2", "eslint-plugin-jest": "^24.3.5", "eslint-plugin-jsx-a11y": "^6.3.1", "eslint-plugin-react": "^7.23.2", "eslint-plugin-react-hooks": "^4.0.8", "expect-puppeteer": "^5.0.0", "express": "^4.17.1", "file-loader": "^6.0.0", "html-webpack-plugin": "^5.3.1", "husky": "^7.0.2", "jest": "^27.0.6", "jest-circus": "^27.0.6", "jest-environment-puppeteer": "^5.0.1", "jest-fetch-mock": "^3.0.3", "jest-puppeteer": "^6.2.0", "json-loader": "^0.5.7", "lint-staged": "^10.2.11", "lodash": "^4.17.21", "lodash.every": "^4.6.0", "lodash.filter": "^4.6.0", "lodash.isnumber": "^3.0.3", "lodash.map": "^4.6.0", "lodash.zip": "^4.2.0", "mini-css-extract-plugin": "^1.5.0", "prettier": "^2.0.5", "puppeteer": "^10.4.0", "rimraf": "^3.0.2", "serve-favicon": "^2.5.0", "terser-webpack-plugin": "^5.1.1", "webpack": "^5.94.0", "webpack-cli": "^4.6.0", "webpack-dev-middleware": "^4.1.0", "webpack-merge": "^5.0.9", "webpack-obsolete-plugin": "^1.0.5" }, "jest": { "testMatch": [ "**/__tests__/**/?(*.)(spec|test).js?(x)" ], "setupFiles": [ "./__tests__/setupMissingGlobals.js" ], "coverageDirectory": "./coverage/", "collectCoverage": true }, "babel": { "env": { "test": { "presets": [ "@babel/preset-env", "@babel/preset-react" ], "plugins": [ "@babel/plugin-proposal-function-bind", [ "@babel/plugin-proposal-decorators", { "legacy": true } ], [ "@babel/plugin-proposal-class-properties", { "loose": true } ], [ "@babel/plugin-transform-private-methods", { "loose": true } ], [ "@babel/plugin-transform-private-property-in-object", { "loose": true } ], "@babel/plugin-proposal-export-namespace-from", "@babel/plugin-transform-react-constant-elements", "@babel/plugin-transform-runtime", "@babel/plugin-proposal-optional-chaining", "@babel/plugin-proposal-nullish-coalescing-operator" ] } } } }