2018-10-01 06:08:12 +00:00
|
|
|
{
|
2018-10-28 08:13:08 +00:00
|
|
|
"private": true,
|
2018-10-01 06:08:12 +00:00
|
|
|
"description": "The Sourcegraph web app",
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"repository": {
|
|
|
|
|
"type": "git",
|
|
|
|
|
"url": "https://github.com/sourcegraph/sourcegraph"
|
|
|
|
|
},
|
|
|
|
|
"engines": {
|
2019-06-14 00:02:08 +00:00
|
|
|
"node": ">=8.0.0 <13.0.0",
|
2018-10-01 06:08:12 +00:00
|
|
|
"yarn": "^1.10.1"
|
|
|
|
|
},
|
|
|
|
|
"scripts": {
|
2018-11-12 09:05:35 +00:00
|
|
|
"prettier": "prettier '**/{*.{js?(on),ts?(x),graphql,md,scss},.*.js?(on)}' --write --list-different --config prettier.config.js",
|
2019-01-11 15:46:29 +00:00
|
|
|
"prettier-check": "npm run prettier -- --write=false",
|
2019-08-06 01:39:54 +00:00
|
|
|
"all:eslint": "dev/foreach-ts-project.sh yarn -s run eslint",
|
|
|
|
|
"all:tslint": "dev/foreach-ts-project.sh yarn -s run tslint",
|
|
|
|
|
"all:stylelint": "yarn --cwd web run stylelint && yarn --cwd shared run stylelint && yarn --cwd browser run stylelint",
|
|
|
|
|
"all:typecheck": "gulp generate && dev/foreach-ts-project.sh yarn -s run typecheck -p tsconfig.json",
|
2018-11-15 08:20:11 +00:00
|
|
|
"graphql": "gulp graphQLTypes",
|
2018-11-12 09:05:35 +00:00
|
|
|
"graphql-lint": "graphql-schema-linter --old-implements-syntax --comment-descriptions cmd/frontend/graphqlbackend/schema.graphql",
|
2019-06-21 14:18:28 +00:00
|
|
|
"prepublish": "gulp generate",
|
2019-09-18 21:35:01 +00:00
|
|
|
"test": "jest --testPathIgnorePatterns e2e regression",
|
2019-05-06 22:57:51 +00:00
|
|
|
"storybook": "start-storybook -p 9001 -c .storybook",
|
|
|
|
|
"storybook:build": "build-storybook -c .storybook",
|
|
|
|
|
"storybook:smoke-test": "yarn run storybook --smoke-test",
|
2019-05-02 23:09:20 +00:00
|
|
|
"deduplicate": "yarn-deduplicate -s fewer && yarn-deduplicate -s fewer ./cmd/management-console/web/yarn.lock"
|
2018-10-01 06:08:12 +00:00
|
|
|
},
|
2018-11-12 09:05:35 +00:00
|
|
|
"browserslist": [
|
|
|
|
|
"last 1 version",
|
|
|
|
|
">1%",
|
|
|
|
|
"not dead",
|
|
|
|
|
"not <0.25%",
|
|
|
|
|
"last 1 Chrome versions",
|
|
|
|
|
"not IE > 0"
|
|
|
|
|
],
|
2019-05-03 21:20:47 +00:00
|
|
|
"jscpd": {
|
|
|
|
|
"gitignore": true,
|
|
|
|
|
"ignore": [
|
|
|
|
|
"**/__snapshots__",
|
|
|
|
|
"**/__fixtures__",
|
|
|
|
|
"**/*.svg",
|
|
|
|
|
"migrations",
|
2019-05-06 17:36:03 +00:00
|
|
|
"browser/build",
|
2019-05-03 21:20:47 +00:00
|
|
|
"ui",
|
|
|
|
|
"**/assets"
|
|
|
|
|
]
|
|
|
|
|
},
|
2018-10-01 06:08:12 +00:00
|
|
|
"devDependencies": {
|
2019-08-05 10:27:02 +00:00
|
|
|
"@babel/core": "^7.5.5",
|
|
|
|
|
"@babel/plugin-proposal-class-properties": "^7.5.5",
|
2019-09-13 19:42:49 +00:00
|
|
|
"@babel/plugin-proposal-decorators": "^7.4.4",
|
2018-12-30 08:56:48 +00:00
|
|
|
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
|
2019-08-05 10:27:02 +00:00
|
|
|
"@babel/preset-env": "^7.5.5",
|
2019-06-12 04:54:21 +00:00
|
|
|
"@babel/preset-react": "^7.0.0",
|
|
|
|
|
"@babel/preset-typescript": "^7.3.3",
|
2019-08-05 10:27:02 +00:00
|
|
|
"@babel/runtime": "^7.5.5",
|
2018-10-17 19:35:10 +00:00
|
|
|
"@gql2ts/from-schema": "^1.10.1",
|
2018-11-01 07:25:26 +00:00
|
|
|
"@gql2ts/language-typescript": "^1.9.0",
|
2019-05-16 23:26:49 +00:00
|
|
|
"@percy/puppeteer": "^1.0.8",
|
2019-06-13 03:43:15 +00:00
|
|
|
"@sourcegraph/babel-plugin-transform-react-hot-loader-wrapper": "^1.0.0",
|
2019-09-25 18:17:57 +00:00
|
|
|
"@sourcegraph/eslint-config": "^0.3.1",
|
2019-05-16 19:26:27 +00:00
|
|
|
"@sourcegraph/prettierrc": "^3.0.1",
|
2019-05-01 12:58:31 +00:00
|
|
|
"@sourcegraph/stylelint-config": "^1.1.3",
|
2019-02-13 12:01:32 +00:00
|
|
|
"@sourcegraph/tsconfig": "^4.0.0",
|
2019-09-09 01:59:07 +00:00
|
|
|
"@sourcegraph/tslint-config": "^14.0.2",
|
2019-10-23 11:29:51 +00:00
|
|
|
"@storybook/addon-actions": "^5.2.5",
|
2019-09-21 11:06:46 +00:00
|
|
|
"@storybook/addon-console": "^1.2.1",
|
2019-10-23 11:29:51 +00:00
|
|
|
"@storybook/addon-info": "^5.2.5",
|
|
|
|
|
"@storybook/addon-knobs": "^5.2.5",
|
|
|
|
|
"@storybook/addon-links": "^5.2.5",
|
|
|
|
|
"@storybook/addon-options": "^5.2.5",
|
|
|
|
|
"@storybook/addon-storyshots": "^5.2.5",
|
|
|
|
|
"@storybook/addons": "^5.2.5",
|
|
|
|
|
"@storybook/components": "^5.2.5",
|
|
|
|
|
"@storybook/react": "^5.2.5",
|
|
|
|
|
"@storybook/theming": "^5.2.5",
|
2019-11-01 09:20:21 +00:00
|
|
|
"@testing-library/react": "^9.3.1",
|
2019-11-01 12:09:19 +00:00
|
|
|
"@testing-library/react-hooks": "^2.0.3",
|
2019-10-01 07:10:50 +00:00
|
|
|
"@types/babel__core": "7.1.3",
|
2019-11-01 07:21:50 +00:00
|
|
|
"@types/chai": "4.2.4",
|
2019-09-01 11:10:57 +00:00
|
|
|
"@types/chai-as-promised": "7.1.2",
|
2019-02-22 23:23:57 +00:00
|
|
|
"@types/chalk": "2.2.0",
|
2019-11-01 08:13:34 +00:00
|
|
|
"@types/chrome": "0.0.91",
|
2019-07-02 17:21:58 +00:00
|
|
|
"@types/classnames": "2.2.9",
|
2019-03-02 10:07:19 +00:00
|
|
|
"@types/d3-axis": "1.0.12",
|
2019-03-02 10:16:31 +00:00
|
|
|
"@types/d3-scale": "2.1.1",
|
2019-03-02 10:24:47 +00:00
|
|
|
"@types/d3-selection": "1.4.1",
|
2019-11-01 08:14:00 +00:00
|
|
|
"@types/d3-shape": "1.3.2",
|
2019-03-02 10:41:51 +00:00
|
|
|
"@types/fancy-log": "1.3.1",
|
2019-11-01 15:51:57 +00:00
|
|
|
"@types/got": "9.6.8",
|
2019-08-01 07:19:17 +00:00
|
|
|
"@types/graphql": "14.2.3",
|
2019-04-02 00:45:13 +00:00
|
|
|
"@types/gulp": "4.0.6",
|
2018-12-11 06:20:30 +00:00
|
|
|
"@types/he": "1.1.0",
|
2018-11-12 09:29:11 +00:00
|
|
|
"@types/highlight.js": "9.12.3",
|
2019-09-01 07:16:18 +00:00
|
|
|
"@types/is-absolute-url": "3.0.0",
|
2019-11-01 09:23:22 +00:00
|
|
|
"@types/jest": "24.0.21",
|
2019-07-01 10:11:34 +00:00
|
|
|
"@types/jsdom": "12.2.4",
|
2019-11-01 12:10:28 +00:00
|
|
|
"@types/lodash": "4.14.144",
|
2019-05-01 15:24:13 +00:00
|
|
|
"@types/marked": "0.6.5",
|
2019-08-06 10:39:55 +00:00
|
|
|
"@types/mini-css-extract-plugin": "0.8.0",
|
2018-11-12 09:29:11 +00:00
|
|
|
"@types/mkdirp-promise": "5.0.0",
|
2019-04-12 08:05:57 +00:00
|
|
|
"@types/mockdate": "2.0.0",
|
2018-11-12 09:05:35 +00:00
|
|
|
"@types/mz": "0.0.32",
|
2019-02-05 01:29:59 +00:00
|
|
|
"@types/node": "10.12.21",
|
2019-10-07 23:32:53 +00:00
|
|
|
"@types/optimize-css-assets-webpack-plugin": "5.0.1",
|
2019-11-01 11:02:28 +00:00
|
|
|
"@types/puppeteer": "1.20.2",
|
2019-11-01 14:41:27 +00:00
|
|
|
"@types/react": "16.9.11",
|
2019-06-03 23:33:28 +00:00
|
|
|
"@types/react-circular-progressbar": "1.0.1",
|
2019-10-01 08:17:22 +00:00
|
|
|
"@types/react-dom": "16.9.1",
|
2019-07-01 07:11:21 +00:00
|
|
|
"@types/react-hot-loader": "4.1.0",
|
2019-11-01 11:03:22 +00:00
|
|
|
"@types/react-router": "5.1.2",
|
2019-09-01 17:11:16 +00:00
|
|
|
"@types/react-router-dom": "4.3.5",
|
2019-11-01 11:03:49 +00:00
|
|
|
"@types/react-stripe-elements": "1.3.4",
|
2019-11-01 16:37:56 +00:00
|
|
|
"@types/react-test-renderer": "16.9.1",
|
2019-09-01 08:18:12 +00:00
|
|
|
"@types/reactstrap": "8.0.4",
|
2019-11-01 11:00:56 +00:00
|
|
|
"@types/recharts": "1.1.22",
|
2019-04-02 03:21:15 +00:00
|
|
|
"@types/sanitize-html": "1.18.3",
|
2019-05-08 08:10:05 +00:00
|
|
|
"@types/semver": "6.0.0",
|
2019-11-01 16:39:47 +00:00
|
|
|
"@types/shelljs": "0.8.6",
|
2019-05-01 13:18:13 +00:00
|
|
|
"@types/signale": "1.2.1",
|
2019-11-01 12:14:42 +00:00
|
|
|
"@types/simmerjs": "0.5.1",
|
2019-10-02 13:38:03 +00:00
|
|
|
"@types/sinon": "7.5.0",
|
2019-11-01 12:15:11 +00:00
|
|
|
"@types/socket.io": "2.1.4",
|
2018-11-12 09:05:35 +00:00
|
|
|
"@types/socket.io-client": "1.4.32",
|
2019-06-05 23:11:23 +00:00
|
|
|
"@types/storybook__addon-actions": "3.4.3",
|
2019-06-06 04:13:48 +00:00
|
|
|
"@types/storybook__addon-info": "4.1.2",
|
2019-10-01 08:19:14 +00:00
|
|
|
"@types/storybook__addon-knobs": "5.0.4",
|
2019-06-06 03:12:37 +00:00
|
|
|
"@types/storybook__addon-options": "4.0.2",
|
2019-09-01 08:18:51 +00:00
|
|
|
"@types/storybook__addon-storyshots": "5.1.1",
|
2019-06-06 05:11:42 +00:00
|
|
|
"@types/storybook__react": "4.0.2",
|
2019-04-15 21:52:51 +00:00
|
|
|
"@types/textarea-caret": "3.0.0",
|
2019-07-02 20:22:18 +00:00
|
|
|
"@types/uuid": "3.4.5",
|
2019-10-03 09:00:37 +00:00
|
|
|
"@types/webpack": "4.39.2",
|
2019-08-05 10:28:30 +00:00
|
|
|
"@types/webpack-dev-server": "3.1.7",
|
2019-02-16 10:53:20 +00:00
|
|
|
"@types/whatwg-url": "6.4.0",
|
2019-09-20 20:21:24 +00:00
|
|
|
"abort-controller": "^3.0.0",
|
2019-07-10 13:41:22 +00:00
|
|
|
"autoprefixer": "^9.6.1",
|
2019-09-11 19:02:08 +00:00
|
|
|
"babel-jest": "^24.9.0",
|
2019-06-02 19:54:41 +00:00
|
|
|
"babel-loader": "^8.0.6",
|
2018-11-12 09:05:35 +00:00
|
|
|
"babel-plugin-lodash": "^3.3.4",
|
2019-09-21 11:10:54 +00:00
|
|
|
"browserslist": "^4.7.0",
|
2019-06-02 19:55:46 +00:00
|
|
|
"bundlesize": "^0.17.2",
|
2019-05-01 13:27:33 +00:00
|
|
|
"chai": "^4.2.0",
|
use jest for testing (#1456)
Goal: help people write reliable UI code by making it easier to write and run tests.
Using Facebook's [jest](https://jestjs.io) for tests helps us achieve this goal because:
- jest has great first-class support for testing React components (see https://jestjs.io/docs/en/tutorial-react) and is by far the most popular way that people test React components, so the bugs are ironed out and the tooling is good
- jest can run all of our tests (`shared/`, `web/`, and `client/browser/` -- and unit tests **AND** e2e tests) from the same runner (`yarn test` in the root dir)
- jest has a great `--watch` UI and a good [vscode-jest extension](https://github.com/jest-community/vscode-jest)
- debugging tests in VS Code works with no additional effort
- jest requires a lot less configuration and code to set up testing and coverage than Mocha (no `--require ts-node --require source-map-support mocha.opts --require long-stack-traces --require esm ...`, no test-time bundling required using `unit-test-utils.ts`, etc.)
**Note:** Most of the diff is from https://github.com/skovhus/jest-codemods, which automatically updates our test code to use jest style (`describe`, `test`, `expect`, etc., not `it` and `assert`).
jest appears to be the most popular tool for solving the problem that we have (testing a large web/multi-platform application), and it was surprisingly painless to set up and a joy to use.
TODOs:
- [x] Make it pass on Buildkite
- [x] Ensure e2e, screenshots-after-failures, and coverage still work on Buildkite
- [x] Test on macOS
- [x] Add docs to repo
---
Usage:
> This is also documented in `doc/dev/testing.md` and `doc/dev/web_app.md`.
- To run all unit tests, run `yarn test` from the root directory.
- To run unit tests in development (only running the tests related to uncommitted code), run `yarn test --watch`.
- And/or use [vscode-jest](https://github.com/jest-community/vscode-jest) with `jest.autoEnable: true` (and, if you want, `jest.showCoverageOnLoad: true`)
- To debug tests in VS Code, use [vscode-jest](https://github.com/jest-community/vscode-jest) and click the **Debug** code lens next to any `test('name ...', ...)` definition in your test file (be sure to set a breakpoint or break on uncaught exceptions by clicking in the left gutter).
- e2e tests:
- To run e2e tests for the browser extension: `cd client/browser && yarn test-e2e`
- To run e2e tests for the browser extension: `cd web && yarn test-e2e`
- You can also run `yarn test` from any of the individual project dirs (`shared/`, `web/`, `client/browser/`).
Usually while developing you will either have `yarn test --watch` running in a terminal or you will use vscode-jest.
---
Notes:
- There are no regressions. The following are all preserved as before: Puppeteer screenshots after test failures, jsdom tests, e2e tests, Codecov and lcov coverage, VS Code integration, etc.
- You will need to write tests using [jest matchers](https://jestjs.io/docs/en/using-matchers) (or [jest async matchers](https://jestjs.io/docs/en/asynchronous) for async code), not `assert`. They are very similar.
- You need to use `test()` instead of `it()` for defining test cases.
2018-12-17 02:13:40 +00:00
|
|
|
"chai-as-promised": "^7.1.1",
|
2019-02-22 23:23:57 +00:00
|
|
|
"chalk": "^2.4.2",
|
2019-11-01 14:35:11 +00:00
|
|
|
"chokidar-cli": "^2.1.0",
|
2018-11-15 18:18:11 +00:00
|
|
|
"chrome-webstore-upload-cli": "^1.2.0",
|
2019-10-03 08:49:09 +00:00
|
|
|
"cross-env": "^6.0.3",
|
2019-08-22 23:00:02 +00:00
|
|
|
"css-loader": "^3.2.0",
|
2019-11-01 14:44:14 +00:00
|
|
|
"eslint": "^6.6.0",
|
2019-10-07 08:58:54 +00:00
|
|
|
"execa": "^2.0.5",
|
2018-12-30 08:56:48 +00:00
|
|
|
"fancy-log": "^1.3.3",
|
2019-06-20 11:51:16 +00:00
|
|
|
"get-port": "^5.0.0",
|
2019-05-01 11:48:45 +00:00
|
|
|
"gql2ts": "^1.10.1",
|
2019-07-04 13:31:09 +00:00
|
|
|
"graphql": "^14.4.2",
|
2019-11-01 16:55:15 +00:00
|
|
|
"graphql-schema-linter": "^0.2.2",
|
2019-09-09 01:52:46 +00:00
|
|
|
"gulp": "^4.0.2",
|
2019-01-08 07:44:08 +00:00
|
|
|
"identity-obj-proxy": "^3.0.0",
|
2019-09-11 19:02:08 +00:00
|
|
|
"jest": "^24.9.0",
|
2019-11-01 18:31:23 +00:00
|
|
|
"jsdom": "^15.2.0",
|
2019-08-05 10:29:15 +00:00
|
|
|
"json-schema-ref-parser": "^7.1.0",
|
2019-10-03 08:56:50 +00:00
|
|
|
"json-schema-to-typescript": "^6.1.3",
|
2019-09-09 03:22:53 +00:00
|
|
|
"latest-version": "^5.1.0",
|
2019-08-05 10:24:43 +00:00
|
|
|
"message-port-polyfill": "^0.2.0",
|
2019-08-06 10:39:55 +00:00
|
|
|
"mini-css-extract-plugin": "^0.8.0",
|
2018-11-01 07:25:26 +00:00
|
|
|
"mkdirp-promise": "^5.0.1",
|
2019-09-21 11:07:30 +00:00
|
|
|
"mockdate": "^2.0.5",
|
2019-05-12 19:05:17 +00:00
|
|
|
"monaco-editor-webpack-plugin": "^1.7.0",
|
2018-10-01 06:08:12 +00:00
|
|
|
"mz": "^2.7.0",
|
2019-09-20 20:21:24 +00:00
|
|
|
"node-fetch": "^2.6.0",
|
2019-04-29 07:51:14 +00:00
|
|
|
"node-sass": "^4.12.0",
|
2019-08-06 10:51:42 +00:00
|
|
|
"optimize-css-assets-webpack-plugin": "^5.0.3",
|
2019-05-02 20:09:22 +00:00
|
|
|
"p-retry": "^4.1.0",
|
2019-08-28 10:40:48 +00:00
|
|
|
"postcss-focus-visible": "^4.0.0",
|
2018-11-12 09:05:35 +00:00
|
|
|
"postcss-loader": "^3.0.0",
|
2019-06-12 13:57:30 +00:00
|
|
|
"prettier": "^1.18.2",
|
2019-10-02 15:10:25 +00:00
|
|
|
"puppeteer": "1.20.0",
|
2019-06-20 11:51:16 +00:00
|
|
|
"puppeteer-firefox": "^0.5.0",
|
2019-01-08 07:44:08 +00:00
|
|
|
"react-docgen-typescript-webpack-plugin": "^1.1.0",
|
2019-09-23 19:01:17 +00:00
|
|
|
"react-hot-loader": "^4.12.14",
|
2019-10-07 09:00:31 +00:00
|
|
|
"react-test-renderer": "^16.10.2",
|
2019-09-21 11:51:39 +00:00
|
|
|
"sass-loader": "^8.0.0",
|
2018-12-30 08:56:48 +00:00
|
|
|
"shelljs": "^0.8.3",
|
2019-05-01 13:18:13 +00:00
|
|
|
"signale": "^1.4.0",
|
2019-05-03 08:40:15 +00:00
|
|
|
"simmerjs": "^0.5.6",
|
2019-10-02 13:38:03 +00:00
|
|
|
"sinon": "^7.5.0",
|
2018-12-30 08:56:48 +00:00
|
|
|
"socket.io": "^2.2.0",
|
|
|
|
|
"socket.io-client": "^2.2.0",
|
2019-08-22 22:59:34 +00:00
|
|
|
"style-loader": "^1.0.0",
|
2019-11-01 19:03:39 +00:00
|
|
|
"stylelint": "^11.1.1",
|
2019-10-03 08:55:54 +00:00
|
|
|
"terser-webpack-plugin": "^2.1.2",
|
2019-10-02 13:11:24 +00:00
|
|
|
"ts-node": "^8.4.1",
|
2019-10-01 09:22:47 +00:00
|
|
|
"tslint": "^5.20.0",
|
2019-09-10 22:24:15 +00:00
|
|
|
"typescript": "^3.6.3",
|
2019-07-04 13:31:59 +00:00
|
|
|
"utc-version": "^2.0.1",
|
2019-06-20 11:51:16 +00:00
|
|
|
"web-ext": "npm:@sourcegraph/web-ext@^3.0.0-fork.1",
|
2019-10-03 09:00:37 +00:00
|
|
|
"webpack": "^4.41.0",
|
2019-09-21 11:11:49 +00:00
|
|
|
"webpack-dev-server": "^3.8.1",
|
2019-05-02 23:09:20 +00:00
|
|
|
"worker-loader": "^2.0.0",
|
|
|
|
|
"yarn-deduplicate": "^1.1.1"
|
2018-11-12 09:05:35 +00:00
|
|
|
},
|
|
|
|
|
"dependencies": {
|
2019-11-01 10:48:25 +00:00
|
|
|
"@hot-loader/react-dom": "^16.10.2",
|
2019-09-21 11:02:29 +00:00
|
|
|
"@sentry/browser": "^5.6.3",
|
2018-11-12 09:05:35 +00:00
|
|
|
"@slimsag/react-shortcuts": "^1.2.1",
|
2019-07-18 14:17:55 +00:00
|
|
|
"@sourcegraph/codeintellify": "^6.2.2",
|
2019-02-24 10:51:21 +00:00
|
|
|
"@sourcegraph/comlink": "^3.1.1-fork.3",
|
2019-04-30 22:06:10 +00:00
|
|
|
"@sourcegraph/extension-api-classes": "^1.0.2",
|
2018-12-10 05:35:40 +00:00
|
|
|
"@sourcegraph/extension-api-types": "link:packages/@sourcegraph/extension-api-types",
|
2018-12-17 05:00:57 +00:00
|
|
|
"@sourcegraph/react-loading-spinner": "0.0.7",
|
2018-11-12 09:05:35 +00:00
|
|
|
"@sqs/jsonc-parser": "^1.0.3",
|
2019-04-03 02:10:10 +00:00
|
|
|
"bootstrap": "^4.3.1",
|
2019-02-11 03:26:22 +00:00
|
|
|
"classnames": "^2.2.6",
|
2019-08-06 10:25:45 +00:00
|
|
|
"copy-to-clipboard": "^3.2.0",
|
2019-11-01 15:05:27 +00:00
|
|
|
"core-js": "^3.3.6",
|
2019-05-01 14:28:21 +00:00
|
|
|
"d3-axis": "^1.0.12",
|
2019-10-24 16:52:48 +00:00
|
|
|
"d3-scale": "^3.2.0",
|
2019-05-02 00:04:24 +00:00
|
|
|
"d3-selection": "^1.4.0",
|
2019-05-01 14:15:35 +00:00
|
|
|
"d3-shape": "^1.3.5",
|
2019-09-22 21:18:43 +00:00
|
|
|
"date-fns": "^2.2.1",
|
2019-05-16 23:42:45 +00:00
|
|
|
"downshift": "^3.2.10",
|
2019-08-28 10:40:48 +00:00
|
|
|
"focus-visible": "^5.0.2",
|
2019-08-16 13:10:45 +00:00
|
|
|
"got": "^9.6.0",
|
2019-08-05 10:23:21 +00:00
|
|
|
"graphiql": "^0.13.2",
|
2018-12-07 18:50:22 +00:00
|
|
|
"he": "^1.2.0",
|
2019-11-01 18:14:38 +00:00
|
|
|
"highlight.js": "^9.16.2",
|
2019-08-18 21:47:05 +00:00
|
|
|
"is-absolute-url": "^3.0.1",
|
2019-08-05 09:45:42 +00:00
|
|
|
"lodash": "^4.17.15",
|
2019-09-21 11:10:00 +00:00
|
|
|
"marked": "^0.7.0",
|
2019-08-05 10:16:20 +00:00
|
|
|
"mdi-react": "^5.5.0",
|
2018-11-12 09:05:35 +00:00
|
|
|
"minimatch": "^3.0.4",
|
2019-08-05 10:22:01 +00:00
|
|
|
"monaco-editor": "^0.17.1",
|
2018-11-12 09:05:35 +00:00
|
|
|
"open-color": "^1.6.3",
|
2019-08-06 10:41:11 +00:00
|
|
|
"pretty-bytes": "^5.3.0",
|
2019-10-07 09:00:31 +00:00
|
|
|
"react": "^16.10.2",
|
2019-03-07 18:50:05 +00:00
|
|
|
"react-circular-progressbar": "^1.0.0",
|
2019-09-22 19:00:37 +00:00
|
|
|
"react-dom": "npm:@hot-loader/react-dom@^16.9.0",
|
2019-06-02 19:56:29 +00:00
|
|
|
"react-dom-confetti": "^0.1.1",
|
2019-06-07 12:41:58 +00:00
|
|
|
"react-router": "^5.0.1",
|
|
|
|
|
"react-router-dom": "^5.0.1",
|
2019-08-20 19:24:08 +00:00
|
|
|
"react-stripe-elements": "^4.0.1",
|
2019-10-02 13:37:10 +00:00
|
|
|
"react-visibility-sensor": "^5.1.1",
|
2019-08-06 11:05:27 +00:00
|
|
|
"reactstrap": "^8.0.1",
|
2019-10-15 13:44:14 +00:00
|
|
|
"recharts": "^1.7.1",
|
2019-08-06 10:39:20 +00:00
|
|
|
"regenerator-runtime": "^0.13.3",
|
2019-09-10 23:06:25 +00:00
|
|
|
"rxjs": "^6.5.3",
|
Hover actions from extensions, better handling of multiple def providers (#1313)
The goal of this PR is to make [basic-code-intel](sourcegraph/sourcegraph-basic-code-intel#9) an awesome experience when you need go-to-definition, hovers, and find-references when browsing code in any language with no configuration. That means that the initial experience of site admins and users will be much better, because they get to see code intelligence with *much* less setup required.
This incorporates the codeintellify PR sourcegraph/codeintellify#70. That PR makes it so that codeintellify (which implements our hover tooltip) supports custom actions, instead of hardcoding "Go to definition" and "Find references".
This commit makes the web app (and TODO soon the browser extension) make use of that, so that:
1. The "Go to definition" and "Find references" actions work in the same way in the web app and browser extension as all other action buttons. This means those actions are no longer hard-coded in a separate library.
2. These buttons are selectively displayed in a smarter way based on (e.g.) whether there are any registered definition or reference providers for the current document. This fixes the issue where both buttons were always shown if there was a hover, even if the client app knew they would not return anything.
3. The buttons can do smarter things, like opening up the definition panel if there are multiple definitions (instead of just jumping to the 1st definition).
4. Extensions can add their own actions to the hover, such as "Find implementations", "Show history" (eg when a func, or calls to a func, were added/removed in Git history), "Show authors", "Show users", "Show stack traces", etc.
(I initially began implementing this so that basic-code-intel could add "Go to definition (fuzzy)" to the hover using (4), but I think that the improvements in (2) and (3) actually make that unnecessary for basic-code-intel. (It's still important to prioritize precise definitions in the panel; that will come soon.) See sourcegraph/sourcegraph-basic-code-intel#9 for the basic-code-intel changes that make use of this new behavior. (Note that there are *no* new extension APIs added in this PR, just improved handling of what already exists.))
2018-12-31 07:54:14 +00:00
|
|
|
"sanitize-html": "^1.20.0",
|
2019-05-08 06:53:30 +00:00
|
|
|
"semver": "^6.0.0",
|
2018-11-12 09:05:35 +00:00
|
|
|
"sourcegraph": "link:packages/sourcegraph-extension-api",
|
|
|
|
|
"string-score": "^1.0.1",
|
2019-01-28 17:28:44 +00:00
|
|
|
"symbol-observable": "^1.2.0",
|
2019-04-15 20:44:57 +00:00
|
|
|
"textarea-caret": "^3.1.0",
|
2018-11-12 09:05:35 +00:00
|
|
|
"ts-key-enum": "^2.0.0",
|
2019-07-03 09:43:36 +00:00
|
|
|
"tslib": "^1.10.0",
|
2019-10-02 13:37:37 +00:00
|
|
|
"utility-types": "^3.8.0",
|
2019-06-03 11:19:06 +00:00
|
|
|
"uuid": "^3.3.2",
|
2019-08-07 13:04:05 +00:00
|
|
|
"webext-domain-permission-toggle": "^1.0.0",
|
2019-10-03 07:51:06 +00:00
|
|
|
"webextension-polyfill": "^0.5.0",
|
2018-11-12 09:05:35 +00:00
|
|
|
"whatwg-url": "^7.0.0"
|
2019-06-12 12:07:44 +00:00
|
|
|
},
|
|
|
|
|
"resolutions": {
|
|
|
|
|
"history": "4.5.1"
|
2018-10-01 06:08:12 +00:00
|
|
|
}
|
|
|
|
|
}
|