sourcegraph/package.json

470 lines
17 KiB
JSON
Raw Normal View History

{
use a single Webpack/TypeScript build Previously, there were 2 Webpack and TypeScript builds: in `.` and `./enterprise`. This was because these used to live in separate repositories. Now that they are in the same repository, we can combine them. The benefit of combining them is reduced complexity and duplication. The work to combine the builds consisted of: - Removing all Webpack/TypeScript build config files from `enterprise/`, such as `tsconfig.json`, `webpack.config.ts`, `package.json`, etc. - Rewriting import paths in `enterprise/**/*.ts?(x)` to use relative file paths instead of importing from `@sourcegraph/webapp`. - Removing all `dist`-related tasks from the root build config. (These were only used to export a package that `enterprise/` could use in its separate build.) In combining the builds, some additional changes were required: - Upgraded Webpack and various Webpack-related packages. - Switched back to the now-recommended (no longer deprecated) webpack-dev-server from webpack-serve. - Removed the node-sass-import-once helper because (1) it did not appear to be effective and (2) it resulted in a ModuleNotFoundError when importing a `.css` file in a dependency that itself imported a `.css` file with a relative path. (The usual solution for this is to use resolve-url-loader, but that is incompatible with node-sass-import-once. The reason this problem started occurring now is likely due to upgrading sass-loader or related packages, and that was necessitated by other errors that are not worth describing here.) - Remove thread-loader. It did not actually speed up Webpack build times.
2018-10-28 08:13:08 +00:00
"private": true,
"description": "The Sourcegraph web app",
"license": "Apache-2.0",
"repository": {
"type": "git",
"url": "https://github.com/sourcegraph/sourcegraph"
},
"engines": {
"node": "^v20.8.0",
"pnpm": "^8.9.2"
},
"scripts": {
"format": "prettier '**/{*.{js?(on),ts?(x),graphql,md,scss},.*.js?(on)}' --list-different --config prettier.config.js --write",
2023-06-13 17:36:30 +00:00
"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:ci": "prettier $( { git diff --diff-filter=d --name-only \"$(git merge-base $COMMIT_SHA $BUILDKITE_PULL_REQUEST_BASE_BRANCH)\" $COMMIT_SHA && git ls-files --other --modified --exclude-standard ; } | grep -E '\\.(js|json|ts|tsx|graphql|md|scss)$' | xargs) --config prettier.config.js --check --write=false",
"_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:web": "DOCSITE_LIST=\"$(./dev/docsite.sh -config doc/docsite.json ls)\" pnpm --filter @sourcegraph/web run lint:js --quiet",
"lint:js:all": "DOCSITE_LIST=\"$(./dev/docsite.sh -config doc/docsite.json ls)\" dev/foreach-non-web-client-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 --build tsconfig.json --emitDeclarationOnly",
"build-web": "pnpm --filter @sourcegraph/web run build",
"watch-web": "pnpm --filter @sourcegraph/web run watch",
"generate": "pnpm --filter @sourcegraph/shared run generate",
"test": "vitest",
"_test-integration": "TS_NODE_PROJECT=client/web/src/integration/tsconfig.json mocha --parallel=${CI:-\"false\"} --retries=1 --jobs=2",
2023-10-23 17:59:06 +00:00
"test-integration": "NODE_ENV=production 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",
"test-e2e": "TS_NODE_PROJECT=client/web/src/end-to-end/tsconfig.json mocha ./client/web/src/end-to-end/**/*.test.ts",
"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",
"docsite:serve": "./dev/docsite.sh -config doc/docsite.json serve -http=localhost:5080",
"build-browser-extension": "pnpm --filter @sourcegraph/browser run build",
"chromatic": "CHROMATIC=true pnpm run _chromatic --storybook-config-dir client/storybook/src --build-script-name=storybook:build",
"_chromatic": "chromatic"
},
"jscpd": {
"gitignore": true,
"ignore": [
"**/__snapshots__",
"**/__fixtures__",
"**/*.svg",
"migrations",
"browser/build",
"ui",
"**/assets"
]
},
"devDependencies": {
"@atlassian/aui": "^7.10.3",
"@axe-core/puppeteer": "^4.4.2",
"@gql2ts/types": "^1.9.0",
2022-12-14 12:09:06 +00:00
"@graphql-codegen/cli": "^2.16.1",
"@graphql-codegen/plugin-helpers": "^5.0.1",
2022-12-14 12:09:06 +00:00
"@graphql-codegen/typescript": "2.8.5",
"@graphql-codegen/typescript-apollo-client-helpers": "^2.2.6",
"@graphql-codegen/typescript-operations": "2.5.10",
"@ianvs/prettier-plugin-sort-imports": "^3.7.1",
"@octokit/rest": "^16.36.0",
"@percy/cli": "^1.24.0",
"@percy/puppeteer": "^2.0.2",
"@pollyjs/adapter": "^5.0.0",
"@pollyjs/core": "^5.1.0",
"@pollyjs/persister-fs": "^5.0.0",
"@remix-run/server-runtime": "^1.17.0",
"@sentry/cli": "^1.74.4",
"@sentry/esbuild-plugin": "^2.7.1",
"@slack/web-api": "^5.15.0",
"@sourcegraph/eslint-config": "0.37.1",
"@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",
"@storybook/addon-a11y": "^7.4.6",
"@storybook/addon-actions": "^7.4.6",
"@storybook/addon-console": "^2.0.0",
"@storybook/addon-controls": "^7.4.6",
"@storybook/addon-designs": "^7.0.5",
"@storybook/addon-links": "^7.4.6",
"@storybook/addon-storysource": "^7.4.6",
"@storybook/addon-toolbars": "^7.4.6",
"@storybook/addons": "^7.4.6",
"@storybook/api": "^7.4.6",
"@storybook/builder-vite": "^7.4.6",
"@storybook/cli": "^7.4.6",
"@storybook/client-api": "^7.4.6",
"@storybook/components": "^7.4.6",
"@storybook/core-common": "^7.4.6",
"@storybook/core-events": "^7.4.6",
"@storybook/react": "^7.4.6",
"@storybook/react-vite": "^7.4.6",
"@storybook/theming": "^7.4.6",
"@storybook/types": "^7.4.6",
"@testing-library/dom": "^8.13.0",
"@testing-library/jest-dom": "^6.1.4",
"@testing-library/react-hooks": "^8.0.0",
"@testing-library/user-event": "^13.5.0",
2021-12-03 03:28:20 +00:00
"@types/bloomfilter": "0.0.0",
"@types/body-parser": "^1.19.2",
"@types/chrome": "0.0.127",
"@types/classnames": "2.2.10",
"@types/command-exists": "1.2.0",
2021-12-03 03:28:20 +00:00
"@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-scale-chromatic": "^3.0.3",
"@types/d3-shape": "^1.3.1",
2021-12-03 03:28:20 +00:00
"@types/d3-time-format": "3.0.0",
"@types/d3-voronoi": "^1.1.9",
"@types/dedent": "^0.7.0",
"@types/dompurify": "^3.0.0",
"@types/escape-html": "^1.0.1",
2021-12-03 03:28:20 +00:00
"@types/express": "4.17.11",
"@types/glob": "7.1.3",
"@types/google-spreadsheet": "^3.3.1",
"@types/got": "9.6.11",
"@types/highlight.js": "9.12.4",
"@types/history": "^4.7.11",
"@types/isomorphic-fetch": "^0.0.36",
"@types/js-cookie": "2.2.6",
2021-12-03 03:28:20 +00:00
"@types/js-yaml": "4.0.3",
"@types/jsdom": "12.2.4",
"@types/lodash": "4.14.167",
"@types/lru-cache": "^7.6.1",
2022-04-11 09:17:07 +00:00
"@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",
2021-01-01 08:40:16 +00:00
"@types/mz": "2.7.3",
"@types/node": "20.8.0",
2021-12-03 03:28:20 +00:00
"@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/semver": "7.3.1",
"@types/shelljs": "0.8.8",
"@types/signale": "1.4.1",
"@types/simmerjs": "0.5.4",
"@types/sinon": "9.0.4",
"@types/stream-json": "^1.7.3",
"@types/uuid": "8.0.1",
"@types/vscode": "^1.76.0",
"@types/vscode-webview": "^1.57.1",
"@types/whatwg-url": "^11.0.3",
"@types/yauzl": "^2.9.2",
"@vitejs/plugin-react": "^3.1.0",
"@vscode/test-electron": "^2.3.2",
"@vscode/vsce": "^2.19.0",
2019-09-20 20:21:24 +00:00
"abort-controller": "^3.0.0",
"autoprefixer": "^10.2.1",
"axe-core": "^4.4.1",
"bundlesize2": "^0.0.31",
"chalk": "^4.1.0",
"chokidar-cli": "^2.1.0",
2024-03-15 18:30:13 +00:00
"chromatic": "^11.0.8",
"chrome-webstore-upload-cli": "^1.2.0",
"command-exists": "^1.2.9",
"compression": "^1.7.4",
"concurrently": "^7.6.0",
"connect-history-api-fallback": "^1.6.0",
"cross-env": "^7.0.2",
"dedent": "^0.7.0",
"dompurify": "^3.0.6",
2022-07-29 03:22:05 +00:00
"envalid": "^7.3.1",
"esbuild": "^0.17.14",
"eslint": "^8.52.0",
"eslint-plugin-monorepo": "^0.3.2",
"eslint-plugin-react": "^7.33.2",
"eslint-plugin-storybook": "^0.6.15",
"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",
"happy-dom": "^12.10.1",
"http-proxy-middleware": "^2.0.6",
"identity-obj-proxy": "^3.0.0",
"jsdom": "^24.0.0",
"json-schema-ref-parser": "^9.0.6",
"json-schema-to-typescript": "^10.1.3",
"latest-version": "^5.1.0",
2022-07-29 03:22:05 +00:00
"libhoney": "^3.1.1",
"license-checker": "^25.0.1",
"message-port-polyfill": "^0.2.0",
"mime-types": "^2.1.28",
"mocha": "^8.3.2",
"mock-require": "^3.0.3",
"mockdate": "^3.0.2",
"mz": "^2.7.0",
"node-fetch": "^2.6.7",
"nodemon": "^2.0.20",
"octokit": "^2.0.7",
"open": "^7.0.4",
"p-retry": "^4.2.0",
"p-timeout": "^4.1.0",
2023-02-03 03:14:25 +00:00
"postcss-cli": "^10.1.0",
2021-05-10 10:35:01 +00:00
"postcss-custom-media": "^8.0.0",
"postcss-focus-visible": "^5.0.0",
"prettier": "2.8.1",
"prettier-plugin-svelte": "^2.9.0",
"punycode": "2.1.1",
"puppeteer": "^13.5.1",
"regenerator-runtime": "^0.13.7",
"resolve-bin": "^1.0.1",
"rimraf": "^3.0.2",
"sass": "^1.32.4",
"shelljs": "^0.8.4",
"signale": "^1.4.0",
2019-05-03 08:40:15 +00:00
"simmerjs": "^0.5.6",
"sinon": "^9.0.2",
"sourcegraph": "workspace:*",
"storybook-dark-mode": "^3.0.1",
"stream-browserify": "^3.0.0",
"string-width": "^4.2.0",
"strip-ansi": "^6.0.1",
"stylelint": "^14.3.0",
"term-size": "^2.2.0",
"text-table": "^0.2.0",
"ts-dedent": "^2.2.0",
2024-03-15 18:30:13 +00:00
"ts-node": "^10.9.2",
"typed-scss-modules": "^4.1.1",
"typescript": "^5.0.2",
"utc-version": "^2.0.2",
"vite": "^4.1.4",
2023-10-23 17:59:06 +00:00
"vite-plugin-turbosnap": "^1.0.3",
"vitest": "1.0.0-beta.4",
"vitest-fetch-mock": "^0.2.2",
"vsce": "^2.7.0",
"wildcard-mock-link": "^2.0.1",
"yaml": "^2.2.1",
"yauzl": "^2.10.0"
use single root package.json, do not build intermediate shared code (#936) * remove enterprise workspace (build together with webapp) * remove sourcegraph-extension-api workspace * directly import graphqlschema instead of symlinking * remove unneeded symlink (file now lives in this package) * noEmit on extensions-client-common & refer to graphql schema in webapp only * update paths @sourcegraph/extensions-client-common/{lib => src} * remove unneeded workspace for and deps from extensions-client-common * extensions-client-common compiles * update paths in browser-extensions * webapp compiles with ecc node_modules deleted * compiling after adding back ecc node_modules * root gulpfile working * mv packages/webapp -> web * replace "packages/webapp" with "web" * mv packages/browser-extensions client/browser * remove broken phabricator dev script see https://github.com/sourcegraph/sourcegraph/issues/938 * replace "packages/browser-extensions" with "client/browser" * mv packages/extensions-client-common shared * update paths * yarn.lock for browser ext * update paths to graphqlschema * tslint paths * LinkOrSpan * update gql * client/browser typechecks * client/browser tslint * tsconfig.json combining * rearrange gulpfiles * clean up schema gulp tasks * before linking a lot of deps * webpack build working * more consolidation * add more common deps * almost done w browser ext * WIP just tried adding base.config.ts symlinks true to try to fix the issues where multiple highlight.js caused hovers to fail due to no highlighting, and multiple rxjs type errors (codeintellify and sourcegraph/sourcegraph) showing up only in webpack. hypothesis is that this is due to webpack not resolving symlinks and so "seeing" multiple pkgs. * hovers working, fixed resolve issue, just needed to add rxjs to root package.json * regenerate lockfiles * add browser ext to procfile * add back builds * manually sync contribution.schema.json * import schema json files directly, no copying * update import paths * wip typescript build doc * move enterprise/src/ into src/ for ease of typescript build * wip build doc * wip * use a single root package.json * update yarn.lock * prettier * set up .bin symlinks * prettier * all:typecheck * fix * fix all:typecheck * fix schema output path * add back .bin links * fix link * fix gulpfiles * only include gulpfile in root tsconfig * clean up gulpfiles * generate * fix node_modules paths in webpack * sort * simplify tsconfig * ignore generated files * fix bundlesize paths * fix enterprise build * fix tsconfigs * fix back tsconfigs * fix * TMP * fix path * TIP * WIP * transpileonly in tests because we have already typechecked it * fix browser ext test * remove browser ext from procfile for now * fix enterprise paths
2018-11-12 09:05:35 +00:00
},
"dependencies": {
2023-02-21 11:13:32 +00:00
"@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/legacy-modes": "^6.3.1",
"@codemirror/lint": "^6.0.0",
"@codemirror/search": "^6.0.1",
"@codemirror/state": "^6.4.0",
"@codemirror/view": "^6.26.3",
2024-02-13 21:51:15 +00:00
"@date-fns/utc": "^1.1.1",
"@graphiql/react": "^0.10.0",
"@lezer/common": "^1.0.0",
"@lezer/highlight": "^1.0.0",
"@mdi/js": "7.1.96",
"@microsoft/fast-web-utilities": "^6.0.0",
"@microsoft/fetch-event-source": "^2.0.1",
"@opencodegraph/client": "^0.0.1",
"@opencodegraph/codemirror-extension": "^0.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",
"@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",
"@stripe/react-stripe-js": "^2.7.0",
"@stripe/stripe-js": "^3.3.0",
"@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/webview-ui-toolkit": "^1.2.2",
"agent-base": "6.0.2",
2021-10-26 15:20:51 +00:00
"ajv": "^8.6.3",
"ajv-formats": "^2.1.1",
"apollo3-cache-persist": "^0.12.1",
"bloomfilter": "^0.0.18",
"buffer": "^6.0.3",
"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-scale-chromatic": "^3.0.0",
"d3-shape": "^1.2.0",
"d3-time-format": "^3.0.0",
"d3-voronoi": "^1.1.2",
"date-fns": "^3.3.1",
"delay": "^4.4.1",
Improved completions (#53720) Closes #53642 This PR makes some changes to the prompting structure for claude-instant-based completions. It makes two important changes: * Use a `<CODE></CODE>`-style syntax for marking generated code, rather than triple backticks. (We actually use `<CODE5711>` as the delimiter. for uniqueness.) * Strip any trailing whitespace from the prompt to claude-instant Note: This new prompt ignores the suffix. I haven't yet discovered a good suffix-aware prompt yet. As a baseline, I suppose we could just include the suffix as a context snippet for now, but I'd like to address that after this is merged. <table valign=top> <thead> <tr> <th>Before</th> <th>After</th> </tr> </thead> <tbody> <tr valign=top> <td> <img src="https://github.com/sourcegraph/sourcegraph/assets/1646931/f045e19e-4c3b-4784-8642-2de80217d83f"/> Single-line completions, low quality, sensitive to whitespace perturbations </td> <td> <img src="https://github.com/sourcegraph/sourcegraph/assets/1646931/f5703713-dc33-43ce-a431-f78ee5a04c71"/> Multi-line completion, high quality </td> </tr> <tr valign=top> <td></td> <td> <img src="https://github.com/sourcegraph/sourcegraph/assets/1646931/e92f31b9-f47c-424f-83c1-6fdaaa931e03"/> Responses are also robust to whitespace changes (compare cursor position with above) </td> </tr> <tr valign=top> <td> <img src="https://github.com/sourcegraph/sourcegraph/assets/1646931/916d8127-dcf8-4e7d-9c71-786f89af5fd1"/> Generating an entire class is tough, even with good context, with low quality single-line completions. </td> <td> <img src="https://github.com/sourcegraph/sourcegraph/assets/1646931/64a95783-a7c3-4196-8b8a-818a4842e6aa"/> Can generate the entire class more or less on the first try with good context. </td> </tr> <tr valign=top> <td> <img src="https://github.com/sourcegraph/sourcegraph/assets/1646931/7b4c3479-f630-4090-a9ce-facd310658fc"/> </td> <td> <img src="https://github.com/sourcegraph/sourcegraph/assets/1646931/264053f3-c4df-4066-98e0-a41cad6de516"/> Generates the whole function from a partial signature line. Note that we don't yet handle the case where the output "runs on" for a bit here. This should be addressed in a follow-up PR. </td> </tr> <tr> <td> <img src="https://github.com/sourcegraph/sourcegraph/assets/1646931/76535c69-38fc-4f3d-b011-5060e6fa4a52"/> </td> <td> <img src="https://github.com/sourcegraph/sourcegraph/assets/1646931/adfea480-e9f1-4e92-b179-0efb4c4c19be"/> Better formatted, complete code. </td> </tr> <tr valign=top> <td> <img src="https://github.com/sourcegraph/sourcegraph/assets/1646931/e213be3b-b610-4796-84f3-95f7e931c154"/> Generated code doesn't conform well to function name or description </td> <td> <img src="https://github.com/sourcegraph/sourcegraph/assets/1646931/f7df838b-431d-4178-b9d3-997ccd1aa302"/> Code conforms better to function name or description </td> </tr> </tbody> </table> ## Test plan - [ ] Add unit tests - [ ] Reviewer should test --------- Co-authored-by: Valery Bugakov <skymk1@gmail.com> Co-authored-by: Philipp Spiess <hello@philippspiess.com>
2023-06-26 08:19:47 +00:00
"detect-indent": "^6.1.0",
"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.2",
"got": "^11.5.2",
"graphiql": "^1.11.5",
app: experimental Tauri branch (#50620) This is experimental support for building the Cody App using Tauri. For an overview of what Tauri is and why I think it will help us with the App, see [this Slack message](https://sourcegraph.slack.com/archives/C04F9E7GUDP/p1680729850086159). ### Developing To try it out, checkout this branch and then in two separate terminals run: ``` sg start app ``` ``` go build \ -o .bin/backend-aarch64-apple-darwin \ -tags dist \ -ldflags '-X github.com/sourcegraph/sourcegraph/internal/conf/deploy.forceType=app' \ ./enterprise/cmd/sourcegraph pnpm tauri dev ``` This will open a Tauri window connected to your dev server. We will follow-up to integrate this into `sg start app` more properly soon. ### Creating a release ``` ./enterprise/dev/app/build-release.sh ``` This will first invoke esbuild to generate the bundles; then it will run `go build` to create the Go backend binary; and then finally it will invoke `pnpm tauri build` to produce the macOS app. Once that command finishes, you'll find the app in `./src-tauri/target/release/bundle/` (make sure you wait for it to finish, it will open a window and move things around before it is done.) ## Next steps / things to follow up on - Familiarize more folks on the team with this code; add better docs - Make `sg start app` automatically use Tauri, without needing to e.g. run the `pnpm tauri dev` command separately. - Use GitHub actions to start building+releasing versions of this in our CI pipeline - Make `./enterprise/dev/app/build-release.sh` work on Linux - Make `./enterprise/dev/app/build-release.sh` produce a Universal macOS binary, not just for Apple Silicon - Start hacking, making improvements to the whole experience :) ## Test plan - [x] Myself, Juliana, and William are happy with this as a starting point and are able to run/develop with it. - [x] The changes have limited blast radius, should only affect App and we'll have more time to make improvements before releasing this version to any users. - [x] We can continue releasing the old-style App version to users just in case we should want/need to create a release before this new version is ready. --------- Signed-off-by: Stephen Gutekanst <stephen@sourcegraph.com> Co-authored-by: William Bezuidenhout <william.bezuidenhout@sourcegraph.com>
2023-04-21 17:48:47 +00:00
"handlebars": "^4.7.7",
"highlight.js": "^10.5.0",
"highlightjs-graphql": "^1.0.2",
"history": "4.5.1",
"http-proxy-agent": "^5.0.0",
2021-11-17 10:18:38 +00:00
"http-status-codes": "^2.1.4",
"https-browserify": "^1.0.0",
"https-proxy-agent": "^5.0.1",
"ignore": "^5.3.0",
"is-absolute-url": "^3.0.3",
"isomorphic-fetch": "^3.0.0",
"iterare": "^1.2.1",
JetBrains: Encoding and bug fixes (#36282) This PR fixes a lot if bugs that we had with our preview component. Specifically we: - Change the content encoding in our JS -> Java bridge to be a base64 representation to avoid issues in the JSON parsing libraries (it would through before we could even do any workarounds in user space). - Use a proper base64 encoding library on the JS side that handles all Unicode characters (`btoa()` would error on some files with `[Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.](https://stackoverflow.com/questions/23223718/failed-to-execute-btoa-on-window-the-string-to-be-encoded-contains-characte)`). - Make the `content` field optional in the JS -> Java bridge to support files with no preview out of the box (We use this for when previewing binary files but also for types that do not have a preview). **Note: We need to change the Java side rendering to use a label instead of the editor component when content is null.** - We fix `getCharacterCountUntilLine` to ignore `\r\n` the same way that our content preparation is doing so that index match again. - We query `highlight` in the Blob query to get a server-side error when the file we download is a binary file. We can use this to: - Avoid downloading the file when it's a binary - Know when we do not want to render a preview - Add all support match types to `getFirstResultId()` to properly select the right match to preview automatically (previously this would either be the first content match if one content match was in the search result list or _nothing_).
2022-05-31 14:20:53 +00:00
"js-base64": "^3.7.2",
"js-cookie": "^2.2.1",
2021-10-26 15:20:51 +00:00
"js-yaml": "^4.1.0",
2022-07-01 16:59:43 +00:00
"jsonc-parser": "^3.0.0",
"linguist-languages": "^7.14.0",
"linkifyjs": "^4.1.0",
app: experimental Tauri branch (#50620) This is experimental support for building the Cody App using Tauri. For an overview of what Tauri is and why I think it will help us with the App, see [this Slack message](https://sourcegraph.slack.com/archives/C04F9E7GUDP/p1680729850086159). ### Developing To try it out, checkout this branch and then in two separate terminals run: ``` sg start app ``` ``` go build \ -o .bin/backend-aarch64-apple-darwin \ -tags dist \ -ldflags '-X github.com/sourcegraph/sourcegraph/internal/conf/deploy.forceType=app' \ ./enterprise/cmd/sourcegraph pnpm tauri dev ``` This will open a Tauri window connected to your dev server. We will follow-up to integrate this into `sg start app` more properly soon. ### Creating a release ``` ./enterprise/dev/app/build-release.sh ``` This will first invoke esbuild to generate the bundles; then it will run `go build` to create the Go backend binary; and then finally it will invoke `pnpm tauri build` to produce the macOS app. Once that command finishes, you'll find the app in `./src-tauri/target/release/bundle/` (make sure you wait for it to finish, it will open a window and move things around before it is done.) ## Next steps / things to follow up on - Familiarize more folks on the team with this code; add better docs - Make `sg start app` automatically use Tauri, without needing to e.g. run the `pnpm tauri dev` command separately. - Use GitHub actions to start building+releasing versions of this in our CI pipeline - Make `./enterprise/dev/app/build-release.sh` work on Linux - Make `./enterprise/dev/app/build-release.sh` produce a Universal macOS binary, not just for Apple Silicon - Start hacking, making improvements to the whole experience :) ## Test plan - [x] Myself, Juliana, and William are happy with this as a starting point and are able to run/develop with it. - [x] The changes have limited blast radius, should only affect App and we'll have more time to make improvements before releasing this version to any users. - [x] We can continue releasing the old-style App version to users just in case we should want/need to create a release before this new version is ready. --------- Signed-off-by: Stephen Gutekanst <stephen@sourcegraph.com> Co-authored-by: William Bezuidenhout <william.bezuidenhout@sourcegraph.com>
2023-04-21 17:48:47 +00:00
"lit-html": "^2.7.2",
"lodash": "^4.17.21",
"lodash-es": "^4.17.21",
"lru-cache": "^7.8.0",
"marked": "4.0.16",
update mdi-react, modify last sync icon (#26617) Updates `mdi-react` to latest version in order to fix #26016 - Last sync time icon has been changed to `weather-cloudy-clock` (fixes #26016) - before: ![image](https://user-images.githubusercontent.com/206864/138783780-43da183a-770d-4a3b-8cbc-b26b516dd88f.png) - after: ![image](https://user-images.githubusercontent.com/206864/138783790-66adc2f5-c851-4fa3-854c-7f808c51c7a4.png) - Some icons have been renamed in the new version of MDI: - `user` -> `account` - `users` -> `account-multiple` - `do-not-disturb` -> `minus-circle` - `error` -> `alert-circle` - The `amazon` icon has been [removed](https://github.com/Templarian/MaterialDesign/issues/5409) from the latest MDI. I've replaced with the `aws` icon which should be fine for the one scenario we use it in (adding a repo from AWS Code Commit). - before: ![image](https://user-images.githubusercontent.com/206864/138782276-22f51ed6-19c0-43b8-a91c-33b6bd7ac014.png) - after: ![image](https://user-images.githubusercontent.com/206864/138782317-8f5a0740-ac6a-4bf5-b5f0-b79fcf505816.png) - The `cancel` icon has been flipped in the latest MDI to match other icons with the same symbol and meaning (e.g. `account-cancel`) - before: ![image](https://user-images.githubusercontent.com/206864/138782743-95295273-89d3-41fb-8ece-b78e9335434a.png) - after: ![image](https://user-images.githubusercontent.com/206864/138782764-100fb24d-9755-41f0-b6dd-bc1bf170155e.png) - The `book-open-variant` icon that we use for API docs has been changed to have text in it. I have changed it to `book-open-blank-variant` so it remains blank.
2021-10-26 21:26:35 +00:00
"mdi-react": "^8.1.0",
use single root package.json, do not build intermediate shared code (#936) * remove enterprise workspace (build together with webapp) * remove sourcegraph-extension-api workspace * directly import graphqlschema instead of symlinking * remove unneeded symlink (file now lives in this package) * noEmit on extensions-client-common & refer to graphql schema in webapp only * update paths @sourcegraph/extensions-client-common/{lib => src} * remove unneeded workspace for and deps from extensions-client-common * extensions-client-common compiles * update paths in browser-extensions * webapp compiles with ecc node_modules deleted * compiling after adding back ecc node_modules * root gulpfile working * mv packages/webapp -> web * replace "packages/webapp" with "web" * mv packages/browser-extensions client/browser * remove broken phabricator dev script see https://github.com/sourcegraph/sourcegraph/issues/938 * replace "packages/browser-extensions" with "client/browser" * mv packages/extensions-client-common shared * update paths * yarn.lock for browser ext * update paths to graphqlschema * tslint paths * LinkOrSpan * update gql * client/browser typechecks * client/browser tslint * tsconfig.json combining * rearrange gulpfiles * clean up schema gulp tasks * before linking a lot of deps * webpack build working * more consolidation * add more common deps * almost done w browser ext * WIP just tried adding base.config.ts symlinks true to try to fix the issues where multiple highlight.js caused hovers to fail due to no highlighting, and multiple rxjs type errors (codeintellify and sourcegraph/sourcegraph) showing up only in webpack. hypothesis is that this is due to webpack not resolving symlinks and so "seeing" multiple pkgs. * hovers working, fixed resolve issue, just needed to add rxjs to root package.json * regenerate lockfiles * add browser ext to procfile * add back builds * manually sync contribution.schema.json * import schema json files directly, no copying * update import paths * wip typescript build doc * move enterprise/src/ into src/ for ease of typescript build * wip build doc * wip * use a single root package.json * update yarn.lock * prettier * set up .bin symlinks * prettier * all:typecheck * fix * fix all:typecheck * fix schema output path * add back .bin links * fix link * fix gulpfiles * only include gulpfile in root tsconfig * clean up gulpfiles * generate * fix node_modules paths in webpack * sort * simplify tsconfig * ignore generated files * fix bundlesize paths * fix enterprise build * fix tsconfigs * fix back tsconfigs * fix * TMP * fix path * TIP * WIP * transpileonly in tests because we have already typechecked it * fix browser ext test * remove browser ext from procfile for now * fix enterprise paths
2018-11-12 09:05:35 +00:00
"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",
"process": "^0.11.10",
"prop-types": "^15.7.2",
"re2js": "^0.4.1",
"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-icons": "^4.12.0",
"react-resizable": "^3.0.4",
"react-router-dom": "^6.8.1",
"react-spring": "^9.4.2",
"react-sticky-box": "1.0.2",
"react-visibility-sensor": "^5.1.1",
"recharts": "^1.8.5",
"regexpp": "^3.1.0",
"resize-observer-polyfill": "^1.5.1",
web: Update rxjs to v7 (#61122) A side goal for the web rewrite is to leave the existing code base in a better state than before. I recently [added a hacky workaround](https://github.com/sourcegraph/sourcegraph/blob/da5ddc99b65398c3cb14f075db217f1fb374095a/client/web-sveltekit/vite.config.ts#L82-L101) to make the Svelte version work properly with different rxjs versions. But the whole point of the rewrite is to not have to do these things anymore. So this is my attempt of upgrading rsjx in the main repo to v7. I worked through the list of breaking changes in the [rxjs documentation](https://rxjs.dev/deprecations/breaking-changes) and fixed TypeScript issues to the best of my abilities. Most notable changes: - The custom `combineLatestOrDefault` operator was rewritten to avoid using rxjs internals, and the `.lift` method (side note: the corresponding tests do not cover all expected behavior, but issues had been caught through other tests) - Where necessary `.toPromise()` was replaced with `lastValueFrom` or `firstValueFrom`. My assumption was that since we don't get runtime errors for the existing code, it's save to assume that the corresponding observables emit at least one value, i.e. `.toPromise()` did not return `undefined`. Only in some places I added a default value where it was easy to deduce what it should be. - The generic type in `of()` was removed - The generic type in `concat()` was removed - `Subject.next` seemed to have allowed `undefined` to be passed even if the subject's types didn't allow that. If the subject's type couldn't be extended to include `undefined` I changed the code to not pass `undefined`. - The generic type signature of `defaultIfEmpty` changed. - Where possible I replaced `Subscribable` with `ObservableInput`, but we also have a copy of the old `Subscribable` interface in the `sourcegraph` package, and that makes things more complicated. - I simplified unnecessary Promise/Observable interop where necessary. A lot of the complex rxjs logic and usage of changed interfaces, such as `Subscribable`, is in extensions related code, which is not used in the web app anymore, but is still at least imported in the browser extensions code. Most of it is probably not used anymore, which makes the migration somewhat simpler.
2024-03-18 13:02:57 +00:00
"rxjs": "^7.8.1",
"semver": "^7.3.2",
"stream-http": "^3.2.0",
"stream-json": "^1.7.5",
"tagged-template-noop": "^2.1.1",
"ts-key-enum": "^2.0.7",
"tslib": "^2.1.0",
Bump various webpack build related dependencies (#45328) * Bump webpack-cli None of the documented breaking changes should affect us, and the dev stack still works. * Bump webpack-dev-server New version doesn't require the separate plugin anymore, and also not the HMR plugin to be manually added, so removed it. Also addressed logged deprecation warnings. * Bump webpack-manifest-plugin Now written in typescript, so the @types package is no longer required. * Bump webpack * Bump bundle-analyzer * Bump webpack-stats-plugin * Bump ts-loader * Bump terser-webpack-plugin This now comes with types bundled, so could remove the @types package. * Bump compression-webpack-plugin * Bump css-minimizer-webpack-plugin Now comes with types, so dropped @types package. * Bump mini-css-extract-plugin According to changelog should be a bunch faster and use less memory, also comes with types shipped now. * Bump html-webpack-plugin * Bump types package * Bump css-loader The breaking changes don't seem to affect us, this version promises better performance. * Bump sass-loader * Bump style-loader Supposedly has a small performance improvement. * Bump postcss Nothing breaking us noted in the changelog. * Dedupe yarn lockfile * Bump @sentry/webpack-plugin * Bump @statoscope/webpack-plugin * Bump @types/case-sensitive-paths-webpack-plugin * Bump babel-loader No breaking changes should affect us (only dropped webpack v4) * Bump @pmmmwh/react-refresh-webpack-plugin No breaking changes, fixes a memory leak that could cause performance penalties. * Bump nodejs to latest 16 release * Bump engine * Fixup jetbrains build Somehow there's no URL replacement configured, not sure why URL is a problem now but wasn't before? I didn't bump esbuild
2022-12-07 15:32:40 +00:00
"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",
"vscode-uri": "^3.0.7",
"webext-domain-permission-toggle": "^1.0.1",
"webextension-polyfill": "^0.6.0",
"whatwg-url": "^14.0.0",
"yaml-ast-parser": "^0.0.43",
"zustand": "^3.6.9"
},
"packageManager": "pnpm@8.9.2",
"pnpm": {
"packageExtensions": {
"hnswlib-node": {
"dependencies": {
"node-gyp": "*"
}
},
"deasync": {
"dependencies": {
"node-gyp": "*"
}
},
"cpu-features": {
"dependencies": {
"node-gyp": "*"
}
},
"@percy/sdk-utils": {
"dependencies": {
"ws": "*"
}
},
"@graphql-codegen/cli@5": {
"peerDependencies": {
"@graphql-codegen/typescript": "*",
"@graphql-codegen/typescript-operations": "*",
svelte: Towards a better data fetching and GraphQL authoring experience (#59383) This PR refactors almost all of the prototypes GraphQL queries to take advantage of GraphQLs compossibility via fragments. The goal is to provide a more structured approach to authoring and executing GraphQL queries, with the following advantages: - Data dependency co-location makes it easier to maintain/extend individual components. - Data fetching happens in specific, predictable places (layout and page loaders). On a high level it works like this: - Components declare their data dependencies in `<Component>.gql` files next to them. Thanks to GraphQL code generation they can import the corresponding TypeScript types via `import type { SomeFragment} from './<Component>.gql'`. - Higher level components compose the fragments of their children. - At the page/layout level `page.gql`/`layout.gql` files define the queries, composed from the data dependencies of the page/layout. - The page/layout data loaders can import queries directly from the corresponding `.gql` file. Authoring the `.gql` files should be relatively easily if the graphql language server is setup. The changes in the `.graphlrc` file make all fragments globally available which means that every fragment needs to be unique and we don't need to use unofficial `#import` directives inside `.gql` files. There are a couple of things to consider though: - Caching: If different pages/layouts fetch the same data with different queries, we won't leverage caching without additional setup. That's something I still need to look into. That also means that sometimes we might want to use a shared queries instead of composition/co-location, if caching is more important. - Shared layout data: Some data fetched in layouts is accessed by sub-layouts/sub-pages, but the layout doesn't know which sub-layout/sub-page is loaded, making query composition more difficult. So it far it seems that data shared this way is rather limited/constrained. So my current approach is to have components/pages define fragments following a specific naming convention, and have the loaders that provide this data compose them. Examples for this is `SearchInput_AuthorizedUser` and `RepoPage_ResolvedRevision`. This is not ideal because it has to be remembered to embed this fragment in the right place, but it's not worse than the current situation (where we often don't know where the query providing some data is defined). - On demand data fetching: Not all data is necessary for rendering a page, some data is only fetched when in response to some user interaction. The layout/page loader should still be the place that executes the query, but instead of doing it on page load it passes a function to the page to fetch the data on demand. This way we can maintain data co-location and fetching in loaders. For an example see the `fetchCommitHistory` function. NOTE: I expect there to be changes to this approach as we uncover more data loading requirements.
2024-01-09 09:33:30 +00:00
"@graphql-codegen/near-operation-file-preset": "*",
"@graphql-codegen/typed-document-node": "*"
}
}
}
},
"resolutions": {
"browserify-zlib": "0.2.0",
"history": "4.5.1",
"cssnano": "4.1.10",
2023-02-13 22:57:52 +00:00
"tslib": "2.1.0"
}
}