sourcegraph/package.json
Valery Bugakov ec6fb6c11d
web: storm search page implementation (#48262)
## Context 

This PR has two primary purposes:
1. Start testing our approach to forking pages from the default version.
2. Start testing [react-router data
loaders](https://reactrouter.com/en/main/route/loader).

## Changes 
1. Moved most of the home page logic into the Storm folder.
- There's no markup duplication right now. The source of truth is in the
Storm folder components.
- I didn't use filename-based routing just yet. Let's review it in a
separate PR.
- Removed prop-drilling from moved components. They now rely on
`useLegacyRouteContext`. Let's think about migrating those to a new
approach once we have examples of the new API to access previously
prop-drilled fields.
3. Created Storm routes. We can add routes to this constant one by one
for new pages reimplement in Storm.
4. Moved one GraphQL used on the home page from the component into the
page loader.
- Created page loader utils based on [the Storm research
issue](https://github.com/sourcegraph/sourcegraph/issues/46470).
- Removed changes I made to the `evaluateFeatureFlag` API for [this
PR](https://github.com/sourcegraph/sourcegraph/pull/47888). Will work on
them in a follow-up.
5. Added `LegacyLayoutRouteContext` to the `WebStory` to make it
compatible with updated components.
- Added `legacyLayoutRouteContext` mock, which makes most of the
`defaultProps` defined in our stories redundant.
2023-03-01 00:43:38 -08:00

504 lines
18 KiB
JSON

{
"private": true,
"description": "The Sourcegraph web app",
"license": "Apache-2.0",
"repository": {
"type": "git",
"url": "https://github.com/sourcegraph/sourcegraph"
},
"engines": {
"node": "^v16.18.1",
"pnpm": "^7.24.2"
},
"scripts": {
"deduplicate": "pnpm-deduplicate",
"format": "prettier '**/{*.{js?(on),ts?(x),graphql,md,scss},.*.js?(on)}' --list-different --config prettier.config.js --write",
"format:changed": "prettier $(git diff --diff-filter=d --name-only origin/main... && git ls-files --other --modified --exclude-standard | grep -E '\\.(js|json|ts|tsx|graphql|md|scss)$' | xargs) --write --list-different --config prettier.config.js",
"format:check": "prettier '**/{*.{js?(on),ts?(x),graphql,md,scss},.*.js?(on)}' --config prettier.config.js --check --write=false",
"format:tsconfig": "prettier --config prettier.config.js --write 'client/*/tsconfig.json'",
"_lint:js": "DOCSITE_LIST=\"$(./dev/docsite.sh -config doc/docsite.json ls)\" NODE_OPTIONS=\"--max_old_space_size=16192\" eslint",
"lint:js:changed": "pnpm _lint:js $(git diff --diff-filter=d --name-only origin/main... | grep -E '\\.[tj]sx?$' | xargs)",
"lint:js:root": "pnpm run _lint:js --quiet '*.[tj]s?(x)'",
"lint:js:all": "DOCSITE_LIST=\"$(./dev/docsite.sh -config doc/docsite.json ls)\" dev/foreach-ts-project.sh pnpm run lint:js --quiet && pnpm lint:js:root",
"_lint:css": "stylelint --quiet",
"lint:css:changed": "pnpm _lint:css --allow-empty-input \"*.none\" $(git diff --diff-filter=d --name-only origin/main... | grep -E '.s?css$' | xargs)",
"lint:css:all": "pnpm _lint:css 'client/*/src/**/*.scss'",
"lint:graphql": "graphql-schema-linter",
"build-ts": "tsc -b tsconfig.all.json",
"build-web": "pnpm --filter @sourcegraph/web run build",
"watch-web": "pnpm --filter @sourcegraph/web run watch",
"generate": "gulp generate",
"watch-generate": "gulp watchGenerate",
"test": "jest --testPathIgnorePatterns end-to-end regression integration storybook \"/out/.*test.js\" \"/out/.*test.d.ts\"",
"_test-integration": "TS_NODE_PROJECT=client/web/src/integration/tsconfig.json mocha --parallel=${CI:-\"false\"} --retries=1 --jobs=2",
"test-integration": "pnpm _test-integration \"./client/web/src/integration/**/*.test.ts\"",
"test-integration:debug": "BROWSER=chrome KEEP_BROWSER=true DEVTOOLS=true DISABLE_APP_ASSETS_MOCKING=true WINDOW_WIDTH=1920 WINDOW_HEIGHT=1080 pnpm _test-integration --retries=0 --jobs=1",
"test-browser-integration": "pnpm --filter @sourcegraph/browser run test-integration",
"_cover-integration": "nyc --hook-require=false --silent pnpm _test-integration",
"cover-integration": "nyc --hook-require=false --silent pnpm test-integration",
"cover-browser-integration": "nyc --hook-require=false --silent pnpm --filter @sourcegraph/browser test-integration",
"test-lighthouse": "SOURCEGRAPH_API_URL=https://sourcegraph.com lhci collect && lhci open",
"test-e2e": "TS_NODE_PROJECT=client/web/src/end-to-end/tsconfig.json mocha ./client/web/src/end-to-end/**/*.test.ts",
"cover-e2e": "nyc --hook-require=false --silent pnpm test-e2e",
"test-regression": "pnpm --filter @sourcegraph/web run test:regression",
"storybook": "pnpm --filter @sourcegraph/storybook run start",
"storybook:dll": "pnpm --filter @sourcegraph/storybook run start:dll",
"storybook:branded": "pnpm --filter @sourcegraph/branded run storybook",
"storybook:browser": "pnpm --filter @sourcegraph/browser run storybook",
"storybook:jetbrains": "pnpm --filter @sourcegraph/jetbrains run storybook",
"storybook:shared": "pnpm --filter @sourcegraph/shared run storybook",
"storybook:web": "pnpm --filter @sourcegraph/web run storybook",
"storybook:wildcard": "pnpm --filter @sourcegraph/wildcard run storybook",
"storybook:build": "pnpm --filter @sourcegraph/storybook run build",
"cover-storybook": "nyc --hook-require=false --silent pnpm jest client/storybook/src/coverage",
"release": "cd dev/release && pnpm run release",
"docsite:serve": "./dev/docsite.sh -config doc/docsite.json serve -http=localhost:5080",
"build-browser-extension": "pnpm --filter @sourcegraph/browser run build",
"optimize-svg-assets": "svgo --multipass --config=\"./svgo.config.js\"",
"build-vsce": "pnpm --filter @sourcegraph/vscode run build",
"watch-vsce": "pnpm --filter @sourcegraph/vscode run watch",
"postinstall": "set-project-references --save && pnpm run format:tsconfig",
"postuninstall": "set-project-references --save && pnpm run format:tsconfig"
},
"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)",
"client/storybook",
"client/shared/src/testing"
]
},
"jscpd": {
"gitignore": true,
"ignore": [
"**/__snapshots__",
"**/__fixtures__",
"**/*.svg",
"migrations",
"browser/build",
"ui",
"**/assets"
]
},
"devDependencies": {
"@atlassian/aui": "^7.10.3",
"@axe-core/puppeteer": "^4.4.2",
"@babel/cli": "^7.20.7",
"@babel/core": "^7.20.5",
"@babel/plugin-transform-typescript": "^7.20.2",
"@babel/preset-env": "^7.20.2",
"@babel/preset-react": "^7.18.6",
"@babel/preset-typescript": "^7.18.6",
"@babel/runtime": "^7.20.6",
"@bessonovs/set-project-references": "^0.0.10",
"@gql2ts/types": "^1.9.0",
"@graphql-codegen/cli": "^2.16.1",
"@graphql-codegen/typescript": "2.8.5",
"@graphql-codegen/typescript-apollo-client-helpers": "^2.2.6",
"@graphql-codegen/typescript-operations": "2.5.10",
"@istanbuljs/nyc-config-typescript": "^1.0.1",
"@jest/types": "^28.1.0",
"@lhci/cli": "0.8.1",
"@mermaid-js/mermaid-cli": "^8.13.10",
"@octokit/rest": "^16.36.0",
"@percy/cli": "^1.16.0",
"@percy/puppeteer": "^2.0.0",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.10",
"@pollyjs/adapter": "^5.0.0",
"@pollyjs/core": "^5.1.0",
"@pollyjs/persister-fs": "^5.0.0",
"@sentry/cli": "^1.74.4",
"@sentry/webpack-plugin": "^1.20.0",
"@slack/web-api": "^5.15.0",
"@sourcegraph/eslint-config": "0.32.0",
"@sourcegraph/eslint-plugin-sourcegraph": "^1.0.5",
"@sourcegraph/eslint-plugin-wildcard": "workspace:*",
"@sourcegraph/extension-api-stubs": "^1.6.1",
"@sourcegraph/prettierrc": "^3.0.3",
"@sourcegraph/stylelint-config": "^1.4.0",
"@sourcegraph/stylelint-plugin-sourcegraph": "^1.0.1",
"@sourcegraph/tsconfig": "^4.0.1",
"@statoscope/cli": "^5.24.0",
"@storybook/addon-a11y": "^6.5.14",
"@storybook/addon-actions": "^6.5.14",
"@storybook/addon-console": "^1.2.3",
"@storybook/addon-docs": "^6.5.14",
"@storybook/addon-links": "^6.5.14",
"@storybook/addon-storyshots": "^6.5.14",
"@storybook/addon-storyshots-puppeteer": "^6.5.14",
"@storybook/addon-storysource": "^6.5.14",
"@storybook/addon-toolbars": "^6.5.14",
"@storybook/addons": "^6.5.14",
"@storybook/api": "^6.5.14",
"@storybook/builder-webpack5": "^6.5.14",
"@storybook/client-api": "^6.5.14",
"@storybook/components": "^6.5.14",
"@storybook/core": "^6.5.14",
"@storybook/core-common": "^6.5.14",
"@storybook/core-events": "^6.5.14",
"@storybook/manager-webpack5": "^6.5.14",
"@storybook/react": "^6.5.14",
"@storybook/theming": "^6.5.14",
"@terminus-term/to-string-loader": "^1.1.7-beta.1",
"@testing-library/dom": "^8.13.0",
"@testing-library/jest-dom": "^5.16.4",
"@testing-library/react-hooks": "^8.0.0",
"@testing-library/user-event": "^13.5.0",
"@types/babel__core": "7.1.20",
"@types/bloomfilter": "0.0.0",
"@types/case-sensitive-paths-webpack-plugin": "2.1.6",
"@types/chrome": "0.0.127",
"@types/classnames": "2.2.10",
"@types/command-exists": "1.2.0",
"@types/compression": "1.7.2",
"@types/connect-history-api-fallback": "1.3.4",
"@types/d3-format": "2.0.0",
"@types/d3-scale": "^3.3.0",
"@types/d3-shape": "^1.3.1",
"@types/d3-time-format": "3.0.0",
"@types/d3-voronoi": "^1.1.9",
"@types/escape-html": "^1.0.1",
"@types/express": "4.17.11",
"@types/glob": "7.1.3",
"@types/got": "9.6.11",
"@types/gulp": "4.0.7",
"@types/highlight.js": "9.12.4",
"@types/history": "^4.7.11",
"@types/jest": "28.1.0",
"@types/js-cookie": "2.2.6",
"@types/js-yaml": "4.0.3",
"@types/jsdom": "12.2.4",
"@types/lodash": "4.14.167",
"@types/lru-cache": "^7.6.1",
"@types/marked": "4.0.3",
"@types/mime-types": "2.1.0",
"@types/minimatch": "^5.1.2",
"@types/mocha": "8.2.0",
"@types/mock-require": "^2.0.1",
"@types/mockdate": "2.0.0",
"@types/mz": "2.7.3",
"@types/node": "13.13.5",
"@types/node-fetch": "2.5.10",
"@types/pollyjs__adapter": "4.3.0",
"@types/pollyjs__core": "4.3.1",
"@types/pollyjs__persister-fs": "2.0.1",
"@types/prettier": "^2.7.2",
"@types/puppeteer": "^5.4.5",
"@types/react": "18.0.8",
"@types/react-calendar": "^3.5.2",
"@types/react-circular-progressbar": "1.0.2",
"@types/react-dom": "18.0.2",
"@types/react-grid-layout": "1.3.2",
"@types/react-resizable": "^3.0.2",
"@types/recharts": "1.8.23",
"@types/resize-observer-browser": "0.1.4",
"@types/rimraf": "^3.0.2",
"@types/sanitize-html": "2.3.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-client": "1.4.33",
"@types/speed-measure-webpack-plugin": "1.3.4",
"@types/svgo": "2.6.0",
"@types/testing-library__jest-dom": "5.9.5",
"@types/uuid": "8.0.1",
"@types/vscode": "^1.63.1",
"@types/webpack-bundle-analyzer": "^4.6.0",
"@types/webpack-stats-plugin": "^0.3.2",
"@types/yauzl": "^2.9.2",
"@vscode/test-electron": "^2.1.3",
"abort-controller": "^3.0.0",
"autoprefixer": "^10.2.1",
"axe-core": "^4.4.1",
"babel-jest": "^28.1.0",
"babel-loader": "^9.1.0",
"babel-plugin-istanbul": "6.1.1",
"babel-plugin-lodash": "^3.3.4",
"babel-plugin-webpack-chunkname": "^1.2.0",
"browserslist": "^4.21.3",
"buffer": "^6.0.3",
"bundlesize2": "^0.0.31",
"chalk": "^4.1.0",
"chokidar-cli": "^2.1.0",
"chromatic": "^6.11.4",
"chrome-webstore-upload-cli": "^1.2.0",
"command-exists": "^1.2.9",
"compression": "^1.7.4",
"compression-webpack-plugin": "^10.0.0",
"connect-history-api-fallback": "^1.6.0",
"cross-env": "^7.0.2",
"css-loader": "^6.7.2",
"css-minimizer-webpack-plugin": "^4.2.2",
"envalid": "^7.3.1",
"esbuild": "^0.17.7",
"eslint": "^8.13.0",
"eslint-plugin-monorepo": "^0.3.2",
"events": "^3.3.0",
"execa": "^5.0.0",
"expect": "^27.5.1",
"express": "^4.17.1",
"express-static-gzip": "^2.1.1",
"glob": "^7.1.6",
"google-auth-library": "5.7.0",
"googleapis": "^47.0.0",
"googleapis-common": "3.2.0",
"gql2ts": "^1.10.1",
"graphql": "^15.4.0",
"graphql-schema-linter": "^2.0.1",
"gulp": "^4.0.2",
"http-proxy-middleware": "^1.1.2",
"identity-obj-proxy": "^3.0.0",
"jest": "^28.1.0",
"jest-canvas-mock": "^2.3.0",
"jest-fetch-mock": "^3.0.3",
"jest-junit": "^13.0.0",
"jest-mock-extended": "^2.0.2-beta2",
"jsdom": "^16.7.0",
"json-schema-ref-parser": "^9.0.6",
"json-schema-to-typescript": "^10.1.3",
"latest-version": "^5.1.0",
"libhoney": "^3.1.1",
"license-checker": "^25.0.1",
"message-port-polyfill": "^0.2.0",
"mime-types": "^2.1.28",
"mini-css-extract-plugin": "^2.7.2",
"mocha": "^8.3.2",
"mock-require": "^3.0.3",
"mockdate": "^3.0.2",
"mz": "^2.7.0",
"node-fetch": "^2.6.7",
"nyc": "^15.1.0",
"octokit": "^2.0.7",
"open": "^7.0.4",
"p-retry": "^4.2.0",
"p-timeout": "^4.1.0",
"pnpm-deduplicate": "^0.4.1",
"postcss-cli": "^10.1.0",
"postcss-custom-media": "^8.0.0",
"postcss-focus-visible": "^5.0.0",
"postcss-loader": "^7.0.2",
"prettier": "2.8.1",
"prettier-plugin-svelte": "^2.9.0",
"process": "^0.11.10",
"punycode": "2.1.1",
"puppeteer": "^13.5.1",
"react-refresh": "^0.10.0",
"regenerator-runtime": "^0.13.7",
"rimraf": "^3.0.2",
"sass": "^1.32.4",
"sass-loader": "^13.2.0",
"shelljs": "^0.8.4",
"signale": "^1.4.0",
"simmerjs": "^0.5.6",
"sinon": "^9.0.2",
"socket.io": "^4.5.2",
"socket.io-client": "^4.5.2",
"sourcegraph": "workspace:*",
"speed-measure-webpack-plugin": "^1.5.0",
"storybook-addon-designs": "^6.3.1",
"storybook-dark-mode": "^2.0.4",
"stream-browserify": "^3.0.0",
"string-width": "^4.2.0",
"style-loader": "^3.3.1",
"stylelint": "^14.3.0",
"svgo": "^2.7.0",
"term-size": "^2.2.0",
"terser-webpack-plugin": "^5.3.6",
"ts-loader": "^9.4.2",
"ts-node": "^10.7.0",
"typed-scss-modules": "^4.1.1",
"typescript": "^4.9.3",
"utc-version": "^2.0.2",
"vsce": "^2.7.0",
"webpack": "^5.75.0",
"webpack-bundle-analyzer": "^4.7.0",
"webpack-cli": "^5.0.1",
"webpack-dev-server": "^4.11.1",
"webpack-manifest-plugin": "^5.0.0",
"webpack-stats-plugin": "^1.1.1",
"wildcard-mock-link": "^2.0.1",
"worker-loader": "^3.0.8",
"yaml": "^2.2.1",
"yauzl": "^2.10.0"
},
"dependencies": {
"@apollo/client": "^3.8.0-alpha.7",
"@codemirror/autocomplete": "^6.1.0",
"@codemirror/commands": "^6.0.1",
"@codemirror/lang-json": "^6.0.0",
"@codemirror/lang-markdown": "^6.0.0",
"@codemirror/language": "^6.2.0",
"@codemirror/lint": "^6.0.0",
"@codemirror/search": "^6.0.1",
"@codemirror/state": "^6.2.0",
"@codemirror/view": "^6.7.2",
"@graphiql/react": "^0.10.0",
"@lezer/common": "^1.0.0",
"@lezer/highlight": "^1.0.0",
"@mdi/js": "7.1.96",
"@microsoft/fetch-event-source": "^2.0.1",
"@opentelemetry/api": "^1.4.0",
"@opentelemetry/context-zone": "^1.9.1",
"@opentelemetry/core": "1.9.1",
"@opentelemetry/exporter-trace-otlp-http": "^0.35.0",
"@opentelemetry/instrumentation": "^0.35.1",
"@opentelemetry/instrumentation-fetch": "^0.35.1",
"@opentelemetry/resources": "1.9.1",
"@opentelemetry/sdk-trace-base": "1.9.1",
"@opentelemetry/sdk-trace-web": "^1.9.1",
"@opentelemetry/semantic-conventions": "^1.9.1",
"@peculiar/webcrypto": "^1.1.7",
"@reach/accordion": "^0.16.1",
"@reach/auto-id": "^0.16.0",
"@reach/combobox": "^0.16.5",
"@reach/dialog": "^0.16.2",
"@reach/menu-button": "^0.16.2",
"@reach/tabs": "^0.16.4",
"@reach/visually-hidden": "^0.16.0",
"@react-aria/live-announcer": "^3.1.0",
"@sentry/browser": "^7.8.1",
"@sourcegraph/extension-api-classes": "^1.1.0",
"@storybook/addon-controls": "^6.5.14",
"@testing-library/react": "^13.4.0",
"@visx/annotation": "^2.10.0",
"@visx/axis": "^2.11.1",
"@visx/event": "2.6.0",
"@visx/glyph": "^2.10.0",
"@visx/grid": "^2.10.0",
"@visx/group": "^2.10.0",
"@visx/responsive": "^2.10.0",
"@visx/scale": "^2.2.2",
"@visx/shape": "^2.11.1",
"@visx/text": "2.10.0",
"@visx/voronoi": "^2.10.0",
"@vscode/codicons": "^0.0.29",
"@vscode/webview-ui-toolkit": "^0.9.0",
"agent-base": "6.0.2",
"ajv": "^8.6.3",
"ajv-formats": "^2.1.1",
"apollo3-cache-persist": "^0.12.1",
"bloomfilter": "^0.0.18",
"case-sensitive-paths-webpack-plugin": "^2.3.0",
"classnames": "^2.2.6",
"comlink": "^4.3.0",
"copy-to-clipboard": "^3.3.1",
"core-js": "^3.8.2",
"d3-format": "^2.0.0",
"d3-scale": "^3.3.0",
"d3-shape": "^1.2.0",
"d3-time-format": "^3.0.0",
"d3-voronoi": "^1.1.2",
"date-fns": "^2.16.1",
"delay": "^4.4.1",
"downshift": "^3.4.8",
"escape-html": "^1.0.3",
"eventsource": "1.1.1",
"fast-json-stable-stringify": "^2.0.0",
"focus-visible": "^5.2.0",
"fzf": "^0.5.1",
"got": "^11.5.2",
"graphiql": "^1.11.5",
"highlight.js": "^10.5.0",
"highlightjs-graphql": "^1.0.2",
"history": "4.5.1",
"http-proxy-agent": "^5.0.0",
"http-status-codes": "^2.1.4",
"https-browserify": "^1.0.0",
"https-proxy-agent": "^5.0.1",
"is-absolute-url": "^3.0.3",
"iterare": "^1.2.1",
"jest-environment-jsdom": "^28.1.0",
"js-base64": "^3.7.2",
"js-cookie": "^2.2.1",
"js-yaml": "^4.1.0",
"jsonc-parser": "^3.0.0",
"linguist-languages": "^7.14.0",
"lodash": "^4.17.20",
"lru-cache": "^7.8.0",
"marked": "4.0.16",
"mdi-react": "^8.1.0",
"minimatch": "^3.0.4",
"mockdate": "^3.0.2",
"monaco-editor": "^0.24.0",
"monaco-yaml": "^3.2.1",
"nice-ticks": "^1.0.1",
"open-color": "^1.8.0",
"ordinal": "^1.0.3",
"original": "^1.0.0",
"path-browserify": "^1.0.1",
"postcss-inset": "^1.0.0",
"pretty-bytes": "^5.3.0",
"prop-types": "^15.7.2",
"react": "18.1.0",
"react-calendar": "^3.7.0",
"react-circular-progressbar": "^2.0.3",
"react-dom": "18.1.0",
"react-focus-lock": "^2.7.1",
"react-grid-layout": "1.3.4",
"react-resizable": "^3.0.4",
"react-router-dom": "^6.8.1",
"react-spring": "^9.4.2",
"react-sticky-box": "1.0.2",
"react-use-websocket": "^4.3.1",
"react-visibility-sensor": "^5.1.1",
"recharts": "^1.8.5",
"regexpp": "^3.1.0",
"resize-observer-polyfill": "^1.5.1",
"rxjs": "^6.6.3",
"sanitize-html": "^2.0.0",
"semver": "^7.3.2",
"stream-http": "^3.2.0",
"string-score": "^1.0.1",
"tabbable": "^5.1.5",
"tagged-template-noop": "^2.1.1",
"ts-key-enum": "^2.0.7",
"tslib": "^2.1.0",
"url": "^0.11.0",
"use-callback-ref": "^1.2.5",
"use-debounce": "^8.0.1",
"use-deep-compare-effect": "^1.6.1",
"use-resize-observer": "^9.0.2",
"util": "^0.12.5",
"utility-types": "^3.10.0",
"uuid": "^8.3.0",
"webext-domain-permission-toggle": "^1.0.1",
"webextension-polyfill": "^0.6.0",
"yaml-ast-parser": "^0.0.43",
"zustand": "^3.6.9"
},
"packageManager": "pnpm@7.24.2",
"pnpm": {
"packageExtensions": {
"cpu-features": {
"dependencies": {
"node-gyp": "*"
}
},
"@percy/sdk-utils": {
"dependencies": {
"ws": "*"
}
}
}
},
"resolutions": {
"@types/webpack": "5",
"history": "4.5.1",
"cssnano": "4.1.10",
"webpack": "5",
"tslib": "2.1.0"
}
}