{ "private": true, "description": "The Sourcegraph web app", "license": "MIT", "repository": { "type": "git", "url": "https://github.com/sourcegraph/sourcegraph" }, "engines": { "node": "^v14.15.1", "yarn": "^1.22.4" }, "scripts": { "prettier": "prettier '**/{*.{js?(on),ts?(x),graphql,md,scss},.*.js?(on)}' --write --list-different --config prettier.config.js", "prettier-check": "yarn -s run prettier --write=false", "all:eslint": "dev/foreach-ts-project.sh yarn -s run eslint --quiet", "all:stylelint": "yarn --cwd client/web run stylelint && yarn --cwd client/shared run stylelint && yarn --cwd client/branded run stylelint && yarn --cwd client/browser run stylelint", "all:tsgql": "yarn --cwd client/web run tsgql validate -p . --exitOnWarn && yarn --cwd client/shared run tsgql validate -p . --exitOnWarn && yarn --cwd client/browser run tsgql validate -p . --exitOnWarn", "build-ts": "tsc -b tsconfig.all.json", "graphql-lint": "graphql-schema-linter cmd/frontend/graphqlbackend/schema.graphql", "build-web": "yarn --cwd client/web run build", "watch-web": "yarn --cwd client/web run watch", "generate": "gulp generate", "watch-generate": "gulp watchGenerate", "test": "jest --testPathIgnorePatterns end-to-end regression integration storybook", "test-integration": "TS_NODE_PROJECT=client/web/src/integration/tsconfig.json NODE_NO_WARNINGS=1 mocha --parallel=$CI --retries=1 ./client/web/src/integration/**/*.test.ts", "cover-integration": "nyc --hook-require=false yarn test-integration", "test-e2e": "TS_NODE_PROJECT=client/web/src/end-to-end/tsconfig.json mocha ./client/web/src/end-to-end/end-to-end.test.ts", "cover-e2e": "nyc --hook-require=false yarn test-e2e", "storybook": "start-storybook -p 9001 -c .storybook -s ui/assets", "build-storybook": "build-storybook -c .storybook -s ui/assets", "cover-storybook": "nyc --hook-require=false yarn jest .storybook/coverage", "deduplicate": "yarn-deduplicate -s fewer", "release": "cd dev/release && yarn run release", "docsite:serve": "./dev/docsite.sh -config doc/docsite.json serve -http=localhost:5080" }, "browserslist": [ "last 1 version", ">1%", "not dead", "not <0.25%", "last 1 Chrome versions", "not IE > 0" ], "nyc": { "extends": "@istanbuljs/nyc-config-typescript", "all": true, "extension": [ ".tsx", ".ts" ], "include": [ "client/*/src/**/*.ts?(x)" ], "exclude": [ "node_modules", "**/*.d.ts", "**/*.@(test|story).ts?(x)" ] }, "jscpd": { "gitignore": true, "ignore": [ "**/__snapshots__", "**/__fixtures__", "**/*.svg", "migrations", "browser/build", "ui", "**/assets" ] }, "devDependencies": { "@atlassian/aui": "^7.10.1", "@babel/core": "^7.12.3", "@babel/plugin-proposal-class-properties": "^7.12.1", "@babel/plugin-proposal-decorators": "^7.12.1", "@babel/preset-env": "^7.12.1", "@babel/preset-typescript": "^7.12.1", "@babel/runtime": "^7.12.5", "@gql2ts/from-schema": "^1.10.1", "@gql2ts/language-typescript": "^1.9.0", "@gql2ts/types": "^1.9.0", "@graphql-codegen/cli": "^1.19.4", "@graphql-codegen/typescript": "1.17.9", "@graphql-codegen/typescript-operations": "1.17.8", "@istanbuljs/nyc-config-typescript": "^1.0.1", "@mermaid-js/mermaid-cli": "^8.7.0", "@octokit/rest": "^16.36.0", "@percy/puppeteer": "^1.1.0", "@pollyjs/adapter": "^5.0.0", "@pollyjs/core": "^5.0.0", "@pollyjs/persister-fs": "^5.0.0", "@slack/web-api": "^5.10.0", "@sourcegraph/babel-plugin-transform-react-hot-loader-wrapper": "^1.0.0", "@sourcegraph/eslint-config": "^0.20.19", "@sourcegraph/prettierrc": "^3.0.3", "@sourcegraph/stylelint-config": "^1.1.9", "@sourcegraph/tsconfig": "^4.0.1", "@storybook/addon-actions": "^6.1.10", "@storybook/addon-console": "^1.2.1", "@storybook/addon-knobs": "^6.1.10", "@storybook/addon-links": "^6.1.10", "@storybook/addon-storyshots": "^6.1.10", "@storybook/addon-storyshots-puppeteer": "^6.1.10", "@storybook/addons": "^6.1.10", "@storybook/components": "^6.1.10", "@storybook/core": "^6.1.10", "@storybook/react": "^6.1.10", "@storybook/theming": "^6.1.10", "@testing-library/react": "^10.4.8", "@testing-library/react-hooks": "^3.4.1", "@types/babel__core": "7.1.12", "@types/chai": "4.2.14", "@types/chai-as-promised": "7.1.3", "@types/chrome": "0.0.127", "@types/classnames": "2.2.10", "@types/command-exists": "1.2.0", "@types/d3-axis": "1.0.12", "@types/d3-scale": "2.2.0", "@types/d3-selection": "1.4.1", "@types/d3-shape": "1.3.2", "@types/enzyme": "3.10.8", "@types/expect": "24.3.0", "@types/fancy-log": "1.3.1", "@types/got": "9.6.11", "@types/gulp": "4.0.7", "@types/he": "1.1.1", "@types/highlight.js": "9.12.4", "@types/is-absolute-url": "3.0.0", "@types/jest": "26.0.19", "@types/js-cookie": "2.2.6", "@types/jsdom": "12.2.4", "@types/lodash": "4.14.167", "@types/marked": "1.2.1", "@types/mime-types": "2.1.0", "@types/mini-css-extract-plugin": "1.2.1", "@types/mocha": "8.2.0", "@types/mockdate": "2.0.0", "@types/mz": "2.7.3", "@types/node": "13.13.5", "@types/optimize-css-assets-webpack-plugin": "5.0.1", "@types/pollyjs__core": "4.3.1", "@types/pollyjs__persister-fs": "2.0.1", "@types/puppeteer": "5.4.2", "@types/react": "17.0.0", "@types/react-circular-progressbar": "1.0.2", "@types/react-dom": "16.9.8", "@types/react-grid-layout": "0.17.2", "@types/react-hot-loader": "4.1.0", "@types/react-router": "5.1.9", "@types/react-router-dom": "5.1.7", "@types/react-stripe-elements": "6.0.4", "@types/react-test-renderer": "16.9.2", "@types/reactstrap": "8.4.2", "@types/recharts": "1.8.18", "@types/resize-observer-browser": "0.1.4", "@types/sanitize-html": "1.23.0", "@types/semver": "7.3.1", "@types/shelljs": "0.8.8", "@types/signale": "1.4.1", "@types/simmerjs": "0.5.1", "@types/sinon": "9.0.4", "@types/socket.io": "2.1.10", "@types/socket.io-client": "1.4.33", "@types/textarea-caret": "3.0.0", "@types/uuid": "8.0.1", "@types/webpack": "4.41.25", "@types/webpack-dev-server": "3.11.1", "abort-controller": "^3.0.0", "autoprefixer": "^10.0.4", "babel-jest": "^25.5.1", "babel-loader": "^8.2.1", "babel-plugin-lodash": "^3.3.4", "babel-preset-react-app": "^10.0.0", "browserslist": "^4.12.0", "bundlesize": "^0.18.0", "chai": "^4.2.0", "chai-as-promised": "^7.1.1", "chalk": "^4.1.0", "chokidar-cli": "^2.1.0", "chromatic": "^5.4.0", "chrome-webstore-upload-cli": "^1.2.0", "command-exists": "^1.2.9", "cross-env": "^7.0.2", "css-loader": "^3.6.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.4", "enzyme-to-json": "^3.5.0", "eslint": "^7.17.0", "eslint-formatter-lsif": "^1.0.3", "execa": "^4.0.2", "fancy-log": "^1.3.3", "get-port": "^5.1.1", "googleapis": "^47.0.0", "gql2ts": "^1.10.1", "graphql": "^15.4.0", "graphql-schema-linter": "^1.0.1", "gulp": "^4.0.2", "identity-obj-proxy": "^3.0.0", "jest": "^25.5.4", "jsdom": "^15.2.1", "json-schema-ref-parser": "^9.0.6", "json-schema-to-typescript": "^9.1.1", "latest-version": "^5.1.0", "license-checker": "^25.0.1", "message-port-polyfill": "^0.2.0", "mime-types": "^2.1.27", "mini-css-extract-plugin": "^1.3.2", "mocha": "^8.2.1", "mockdate": "^3.0.2", "monaco-editor-webpack-plugin": "^1.8.2", "mz": "^2.7.0", "node-fetch": "^2.6.0", "nyc": "^15.1.0", "open": "^7.0.4", "optimize-css-assets-webpack-plugin": "^5.0.3", "p-retry": "^4.2.0", "p-timeout": "^3.2.0", "postcss": "^8.1.14", "postcss-focus-visible": "^5.0.0", "postcss-loader": "^4.1.0", "prettier": "^2.1.2", "puppeteer": "5.5.0", "puppeteer-firefox": "^0.5.1", "raw-loader": "^4.0.1", "react-docgen-typescript-webpack-plugin": "^1.1.0", "react-hot-loader": "^4.13.0", "react-test-renderer": "^16.14.0", "sass": "^1.29.0", "sass-loader": "^10.1.0", "shelljs": "^0.8.4", "signale": "^1.4.0", "simmerjs": "^0.5.6", "sinon": "^9.0.2", "socket.io": "^2.3.0", "socket.io-client": "^2.3.0", "storybook-addon-designs": "^5.4.2", "storybook-dark-mode": "^1.0.3", "string-width": "^4.2.0", "style-loader": "^2.0.0", "stylelint": "^13.8.0", "term-size": "^2.2.0", "terser-webpack-plugin": "^4.2.3", "thread-loader": "^3.0.1", "to-string-loader": "^1.1.6", "ts-graphql-plugin": "^2.1.1", "ts-morph": "^8.1.0", "ts-node": "^9.1.0", "typescript": "^4.1.2", "utc-version": "^2.0.2", "web-ext": "^4.2.0", "webpack": "^4.44.2", "webpack-bundle-analyzer": "^3.9.0", "webpack-dev-server": "^3.11.0", "worker-loader": "^3.0.4", "yarn-deduplicate": "^2.1.1" }, "dependencies": { "@hot-loader/react-dom": "^16.14.0", "@reach/accordion": "^0.10.2", "@reach/dialog": "^0.11.2", "@reach/listbox": "^0.10.1", "@reach/menu-button": "0.10.2", "@sentry/browser": "^5.19.0", "@slimsag/react-shortcuts": "^1.2.1", "@sourcegraph/codeintellify": "^7.2.0", "@sourcegraph/extension-api-classes": "^1.1.0", "@sourcegraph/extension-api-types": "link:client/packages/@sourcegraph/extension-api-types", "@sourcegraph/react-loading-spinner": "0.0.7", "@sqs/jsonc-parser": "^1.0.3", "bootstrap": "^4.5.2", "classnames": "^2.2.6", "comlink": "^4.3.0", "copy-to-clipboard": "^3.3.1", "core-js": "^3.8.0", "d3-axis": "^1.0.12", "d3-scale": "^3.2.1", "d3-selection": "^1.4.1", "d3-shape": "^1.3.7", "date-fns": "^2.16.1", "delay": "^4.3.0", "downshift": "^3.4.8", "focus-visible": "^5.2.0", "got": "^11.5.2", "graphiql": "^1.1.0", "he": "^1.2.0", "highlight.js": "^10.4.0", "highlightjs-graphql": "^1.0.2", "is-absolute-url": "^3.0.3", "iterare": "^1.2.1", "js-cookie": "^2.2.1", "lodash": "^4.17.20", "marked": "^1.2.5", "mdi-react": "^7.3.0", "minimatch": "^3.0.4", "monaco-editor": "^0.18.1", "nice-ticks": "^1.0.1", "open-color": "^1.8.0", "pretty-bytes": "^5.3.0", "react": "^16.14.0", "react-circular-progressbar": "^2.0.3", "react-dom": "npm:@hot-loader/react-dom@^16.14.0", "react-dom-confetti": "^0.1.4", "react-focus-lock": "^2.4.1", "react-grid-layout": "^0.18.3", "react-router": "^5.2.0", "react-router-dom": "^5.2.0", "react-stripe-elements": "^6.1.2", "react-visibility-sensor": "^5.1.1", "reactstrap": "^8.4.1", "recharts": "^1.8.5", "regexpp": "^3.1.0", "rxjs": "^6.6.3", "sanitize-html": "^1.26.0", "semver": "^7.3.2", "shepherd.js": "^8.0.2", "sourcegraph": "link:client/packages/sourcegraph-extension-api", "string-score": "^1.0.1", "tagged-template-noop": "^2.1.1", "textarea-caret": "^3.1.0", "ts-key-enum": "^2.0.3", "tslib": "^2.0.3", "use-deep-compare-effect": "^1.4.0", "utility-types": "^3.10.0", "uuid": "^8.3.0", "webext-domain-permission-toggle": "^1.0.1", "webext-patterns": "^0.9.0", "webextension-polyfill": "^0.6.0" }, "resolutions": { "history": "4.5.1", "cssnano": "4.1.10" } }